Gracias Gracias:  0
Resultados 1 al 2 de 2

Tema: Bevel a cubo creado cara a cara en python

  1. #1
    Blender Newbie Avatar de Husalban
    Fecha de ingreso
    Jul 2009
    Ubicación
    BadaYork
    Mensajes
    223

    Blender Bevel a cubo creado cara a cara en python

    Buenas,
    Estoy intentando darle un poco de biselado a un especie de cubo que he creado vértice a vértice y añadiendo las caras con addFace y tal...

    El caso es que el script bevel_center no funciona con este cubo que he hecho. Sin embargo si que me funciona con otros objetos creados con primitivas como cube, cone, etc...

    Si entro en edición y pulos w->bevel pues si me lo hace, pero claro quiero hacerlo por código.

    ¿Alguna idea de como hacerlo o de por qué me puede estar fallando?

    Si no me he explicado bien os pego el código para que veais a que me refiero...

    Gracias !

  2. #2
    Blender Newbie Avatar de Husalban
    Fecha de ingreso
    Jul 2009
    Ubicación
    BadaYork
    Mensajes
    223

    Respuesta: Bevel a cubo creado cara a cara en python

    Ya he conseguido hacerlo. No sé por qué creando el cubo de una manera no le afecta pero creandolo de otra sip...

    Bueno, os pego el código por si a alguien le interesa;

    Código:
    # Librerías necesarias;
    import Blender
    from Blender import Scene, Object, Mesh, Material, NMesh
    import random
    import math
    from random import *
    from Blender.BGL import *
    from Blender.Draw import *
    from bevel_center import *
    import bpy
    
    # Obtener la escena actual
    escena = Scene.GetCurrent()
    
    def crear_cubo2(vértices=None):
    	
    	# Vector con las 6 caras indicando con qué vértices se creara cada una;
    	caras= [ [2,0,1,3], [6,4,5,7], [5,1,3,7], [6,2,0,4], [4,0,1,5], [6,2,3,7] ]
    	#Creamos una mlla vacía;
    	me = bpy.data.meshes.new('myMesh') 
    	#Le añadimos los vértices que nos llegan por parámetro;
    	me.verts.extend(vértices) 
    	#Y creamos las caras;
    	me.faces.extend(caras) 
    	
    	# Devolvemos la malla creada
    	return me
    
    def crear_cubo(vértices=None):
    	
    	# Creamos una malla vacía;
    	mesh = NMesh.GetRaw()
    	
    	# Creamos los 8 verétices que formaran el cubo con el vector de entrada;
    	v1=NMesh.Vert(vértices[0][0],vértices[0][1],vértices[0][2]) 
    	v2=NMesh.Vert(vértices[1][0],vértices[1][1],vértices[1][2])
    	v3=NMesh.Vert(vértices[2][0],vértices[2][1],vértices[2][2])
    	v4=NMesh.Vert(vértices[3][0],vértices[3][1],vértices[3][2])
    	v5=NMesh.Vert(vértices[4][0],vértices[4][1],vértices[4][2])
    	v6=NMesh.Vert(vértices[5][0],vértices[5][1],vértices[5][2])
    	v7=NMesh.Vert(vértices[6][0],vértices[6][1],vértices[6][2])
    	v8=NMesh.Vert(vértices[7][0],vértices[7][1],vértices[7][2])
    
    	# Y los añadimos a la malla creada	
    	mesh.verts.append(v1)
    	mesh.verts.append(v2)
    	mesh.verts.append(v3)
    	mesh.verts.append(v4)
    	mesh.verts.append(v5)
    	mesh.verts.append(v6)
    	mesh.verts.append(v7)
    	mesh.verts.append(v8)
    
    	# Vamos creando las caras que formaran el cubo.
    	# A la hora de añadir los vértices de cada cara es importante el orden.
    	# Hay que ir añadiéndolos en sentido contrario a las agujas del reloj
    	# para que se vayan creando las aristas adecuadamente;
    	
    	# Cara inferior
    	faceVertList = [] 
    	faceVertList.append(v3)
    	faceVertList.append(v1)
    	faceVertList.append(v2)
    	faceVertList.append(v4)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    	
    	# Cara superior
    	faceVertList = []		#En cada nueva cara inicializamos el vector de vértices
    	faceVertList.append(v7)
    	faceVertList.append(v5)
    	faceVertList.append(v6)
    	faceVertList.append(v8)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    	
    	# Cara lateral derecha;
    	faceVertList = []
    	faceVertList.append(v6)
    	faceVertList.append(v2)
    	faceVertList.append(v4)
    	faceVertList.append(v8)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    	
    	# Cara lateral izquierda;
    	faceVertList = []
    	faceVertList.append(v7)
    	faceVertList.append(v3)
    	faceVertList.append(v1)
    	faceVertList.append(v5)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    	
    	# Cara delantera;
    	faceVertList = []
    	faceVertList.append(v5)
    	faceVertList.append(v1)
    	faceVertList.append(v2)
    	faceVertList.append(v6)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    	
    	# Cara Trasera;
    	faceVertList = []
    	faceVertList.append(v7)
    	faceVertList.append(v3)
    	faceVertList.append(v4)
    	faceVertList.append(v8)
    	newFace = Blender.NMesh.Face(faceVertList)
    	mesh.addFace(newFace)
    
    	# Devolvemos la malla creada
    	return mesh
    
    def cubos():
    	vértices = [[0,0,0],[1,0,0],[0,1,0],[1,1,0],[0,0,1],[1,0,1],[0,1,1],[1,1,1]]
    	
    	# Este bevel no funciona;	
    	cajaMesh = crear_cubo(vértices)
    	caja = escena.objects.new(cajaMesh, "Cubo")
    	caja.select(1)
    	bevel()
    
    	# Con la primitiva Cube siempre funciona
    	cajaMesh2 = Mesh.Primitives.Cube(1)
    	caja2 = escena.objects.new(cajaMesh2, "Cubo3")
    	caja2.setLocation(3, 1,1)
    	caja2.select(1)
    	bevel()
    
    	# De esta otra forma si que funciona;
    	cajaMesh3 = crear_cubo2(vértices)
    	caja3 = escena.objects.new(cajaMesh3, 'myObj')
    	caja3.setLocation(-3, 1,1)	
    	caja3.select(1)
    	bevel()	
    
    def pantalla_sel():
    
    	Button("Cubos",1,30,220,150,30)
    
    # Eventos del sistema
    def event(evt,vala):
    	if (evt==ESCKEY):
    		Exit()
    
    # Eventos definidos por nosotros
    def bevent(evt):
    	if (evt==1):
    		cubos()
    		Blender.Redraw()
    		
    # Subrutinas que se ejectuaran al inicio;
    Register(pantalla_sel,event,bevent)	
    
    Blender.Redraw()

Temas similares

  1. Cara
    Por ciberspace en el foro Trabajos Finalizados
    Respuestas: 8
    Último mensaje: 12-06-2013, 11:15
  2. Hexagon cara
    Por lombardo en el foro Trabajos en Proceso
    Respuestas: 1
    Último mensaje: 11-03-2013, 15:28
  3. Blender Imagenes diferentes en cada cara del cubo
    Por Lycan en el foro Modelado
    Respuestas: 6
    Último mensaje: 30-04-2010, 22:47
  4. Blender:Python Crear un cubo
    Por neobarry en el foro Todo menos Infografía
    Respuestas: 5
    Último mensaje: 02-05-2006, 15:10
  5. 3ds Max Cara de payaso modelo3d creado por Fiz3d
    Por Fiz3d_ en el foro Trabajos Finalizados
    Respuestas: 16
    Último mensaje: 12-02-2003, 11:59

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •