script para hacer teclados

Preguntas y respuestas relacionadas con el uso y desarrollo de scripts Python y plugins para Blender 3D
Responder
eduard10000
Mensajes: 39
Registrado: Jue May 06, 2010 6:25 pm
Nombre:

script para hacer teclados

Mensaje por eduard10000 » Mar Mar 06, 2012 12:19 pm

hola buenos dias, estoy empesando a desarrollar script en python 2.6x, yo soy programador aunque muy nuevo con la api de python en blender, estoy teniendo un problema al aplicar los modificadores les dejo aqui el codigo

Código: Seleccionar todo


#----------------------------------------------------------
# File meshes.py
#----------------------------------------------------------
import bpy
 
def createMesh(name, origin, verts, edges, faces):
	# Create mesh and object
	me = bpy.data.meshes.new(name+\'Mesh\')
	ob = bpy.data.objects.new(name, me)
	ob.location = origin
	ob.show_name = True
	# Link object to scene
	bpy.context.scene.objects.link(ob)
 
	# Create mesh from given verts, edges, faces. Either edges or
	# faces should be [], or you ask for problems
	me.from_pydata(verts, edges, faces)
 
	# Update mesh with new data
	me.update(calc_edges=True)
	return ob
 
def run(origin):
	(x,y,z) = (0.707107, 0.258819, 0.965926)
	verts1 = ((1, 1, 1),(0, 1, 1),(0, 0, 1),(1, 0, 1),(1, 1, 0),(0, 1, 0),(0, 0, 0),(1, 0, 0))
	faces1 = ((0,1,2,3),(4,5,6,7),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7))
	ob1 = createMesh(\'Solid\', origin, verts1, [], faces1)
    
    #apply bevel
    ob1.modifiers.new(name=\"algo\",type=\"BEVEL\") # [color=#006633]no me funciona no se porque[/color]
	

	ob1.select = True
	bpy.ops.transform.translate(value=(0,2,0))
	return
 
if __name__ == \"__main__\":
	run((0,0,0))

eduard10000
Mensajes: 39
Registrado: Jue May 06, 2010 6:25 pm
Nombre:

Re: script para hacer teclados

Mensaje por eduard10000 » Mar Mar 06, 2012 1:45 pm

ya encontre cual era el problema el tema era que las modificaciones se deben aplicar en el main

boton de teclado generado por script

Código: Seleccionar todo

def createMesh(name, origin, verts, edges, faces):
    # Create mesh and object
    me = bpy.data.meshes.new(name+\'Mesh\')
    ob = bpy.data.objects.new(name, me)
    ob.location = origin
    ob.show_name = True
    # Link object to scene
    bpy.context.scene.objects.link(ob)
 
    # Create mesh from given verts, edges, faces. Either edges or
    # faces should be [], or you ask for problems
    me.from_pydata(verts, edges, faces)
 
    # Update mesh with new data
    me.update(calc_edges=True)
    return ob
 
def run(origin,tam):
    tam[0]=tam[0]/2
    tam[1]=tam[1]/2
    tam[2]=tam[2]/2
    (x,y,z) = tam
    r=0.85 #reduccion de la parte de arriba
    m=(y*(1-r))  #mover en el eje de arriba
    verts1 = ((x,y,-z), (x,-y,-z), (-x,-y,-z), (-x,y,-z),(x*r,y*r+m,z), (x*r,-y*r+m,z), (-x*r,-y*r+m,z), (-x*r,y*r+m,z))
    faces1 = ((0,1,5,4), (1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7))
    ob1 = createMesh(\'Solid\', origin, verts1, [], faces1)
      
    #apply bevel
    #ob1.modifiers.new(name=\"angulo\",type\"BEVEL\")
    
    
    # Move second object out of the way
    ob1.select = False
    bpy.ops.transform.translate(value=(0,2,0))
    return ob1
 
if __name__ == \"__main__\":
    ob2=run((0,0,0),[1,1,0.5])
    ob2.modifiers.new(name=\"algo\",type=\"BEVEL\")

Responder