[Blender] Bevel a cubo creado cara a cara en python

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):
T# Vector con las 6 caras indicando con que vértices se creara cada una, tcaras= [ [2,0,1,3], [6,4,5,7], [5,1,3,7], [6,2,0,4], [4,0,1,5], [6,2,3,7] ] t#creamos una mlla vacía, tme = Bpy, data, meshes, new(mymesh) t#le añadimos los vértices que nos llegan por parámetro, tme, vértices, extend(vértices) t#y creamos las caras, tme, Faces, extend(caras) t# devolvemos la malla creada treturn me. Def crear_cubo (vértices=none):
T# creamos una malla vacía, tmesh = nmesh. Getraw() t# creamos los 8 verétices que formaran el cubo con el Vector de entrada, TV1=nmesh. Vert(vértices[0][0], vértices[0][1], vértices[0][2]) tv2=nmesh. Vert(vértices[1][0], vértices[1][1], vértices[1][2]) TV3=nmesh. Vert(vértices[2][0], vértices[2][1], vértices[2][2]) tv4=nmesh. Vert(vértices[3][0], vértices[3][1], vértices[3][2]) tv5=nmesh. Vert(vértices[4][0], vértices[4][1], vértices[4][2]) tv6=nmesh. Vert(vértices[5][0], vértices[5][1], vértices[5][2]) tv7=nmesh. Vert(vértices[6][0], vértices[6][1], vértices[6][2]) tv8=nmesh. Vert(vértices[7][0], vértices[7][1], vértices[7][2]) t# y los añadimos a la malla creada tmesh, vértices, append(v1) tmesh, vértices, append(v2) tmesh, vértices, append(v3) tmesh, vértices, append(v4) tmesh, vértices, append(v5) tmesh, vértices, append(v6) tmesh, vértices, append(v7) tmesh, vértices, append(v t# vamos creando las caras que formaran el cubo t# a la hora de añadir los vértices de cada cara es importante el orden t# hay que ir añadiéndolos en sentido contrario a las agujas del reloj t# para que se vayan creando las aristas adecuadamente, t# cara inferior tfacevertlist = [] tfacevertlist, append(v3) tfacevertlist, append(v1) tfacevertlist, append(v2) tfacevertlist, append(v4) tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# cara superior tfacevertlist = [] #en cada nueva cara inicializamos el Vector de vértices tfacevertlist, append(v7) tfacevertlist, append(v5) tfacevertlist, append(v6) tfacevertlist, append(v tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# cara lateral derecha, tfacevertlist = [] tfacevertlist, append(v6) tfacevertlist, append(v2) tfacevertlist, append(v4) tfacevertlist, append(v tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# cara lateral izquierda, tfacevertlist = [] tfacevertlist, append(v7) tfacevertlist, append(v3) tfacevertlist, append(v1) tfacevertlist, append(v5) tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# cara delantera, tfacevertlist = [] tfacevertlist, append(v5) tfacevertlist, append(v1) tfacevertlist, append(v2) tfacevertlist, append(v6) tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# cara trasera, tfacevertlist = [] tfacevertlist, append(v7) tfacevertlist, append(v3) tfacevertlist, append(v4) tfacevertlist, append(v tnewface = Blender. Nmesh. Face (facevertlist) tmesh, addface (newface) t# devolvemos la malla creada treturn 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] t# este bevel no funciona, tcajamesh = crear_cubo (vértices) tcaja = escena, objects, new(cajamesh, cubo) tcaja, select(1) tbevel() t# con la primitiva Cube siempre funciona tcajamesh2 = Mesh. Primitives. Cube (1) tcaja2 = escena, objects, new(cajamesh2, cubo3) tcaja2.setlocation(3, 1,1) tcaja2.select(1) tbevel() t# de esta otra forma sí que funciona, tcajamesh3 = crear_cubo2(vértices) tcaja3 = escena, objects, new(cajamesh3, myobj) tcaja3.setlocation(-3, 1,1) tcaja3.select(1) tbevel(). Def pantalla_sel():
Button(cubos,1,30,220,150,30).
# eventos del sistema. Def event(evt, ala):
If (evt==esckey):
Exit().
# eventos definidos por nosotros. Def bevent(evt):
If (evt==1):
Cubos() Blender. Redraw() t.
# subrutinas que se ejectuaran al inicio. Register(pantalla_sel, event, bevent). Blender. Redraw()

Ver más sobre el tema y los comentarios en el foro