2013-03-01 213 views
2

編程方式創建一個模式,我想通過程序生成的攪拌機3D模型 喜歡的東西:在攪拌機

createcube(loc,axis) 

我該怎麼辦呢?
(使用Python ?,怎麼樣?)
(我想用它來創建3D分形)

回答

6

是的。 Python是Blender的一種內置語言。你可以在Blender UI上做的所有事情都可以在python代碼中完成。

這是一些示例代碼來創建網格:

#---------------------------------------------------------- 
# 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 = ((x,x,-1), (x,-x,-1), (-x,-x,-1), (-x,x,-1), (0,0,1)) 
    faces1 = ((1,0,4), (4,2,1), (4,3,2), (4,0,3), (0,1,2,3)) 
    ob1 = createMesh('Solid', origin, verts1, [], faces1) 
    verts2 = ((x,x,0), (y,-z,0), (-z,y,0)) 
    edges2 = ((1,0), (1,2), (2,0)) 
    ob2 = createMesh('Edgy', origin, verts2, edges2, []) 

    # Move second object out of the way 
    ob1.select = False 
    ob2.select = True 
    bpy.ops.transform.translate(value=(0,2,0)) 
    return 

if __name__ == "__main__": 
    run((0,0,0)) 

從這裏複製: http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Meshes

進入這個鏈接,看看如果你發現你在找什麼來解決。

+0

謝謝,這很有用。 – 2013-03-01 05:13:13

+0

歡迎你,我只是回答你的需要。讓我知道你是否需要關於這個話題的更多幫助。我會盡力解決:) – 2013-03-01 05:22:36