Página 1 de 1

script para hacer teclados

Publicado: Mar Mar 06, 2012 12:19 pm
por eduard10000
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))

Re: script para hacer teclados

Publicado: Mar Mar 06, 2012 1:45 pm
por eduard10000
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\")