2016-09-17 56 views
0

如何創建一個段與例如30個verices,然後每綠黨在給定數量綠黨和鉤空的AA段與掛鉤養育在段連接一個空的每一個veritces,所有這通過在Blender 3D中的Python?創建到分段

回答

0

我會說,這是令人沮喪,但嘗試幾種不同的方法後,這是我工作的一種方式。

import bpy 
import bmesh 

num_verts = 30 

scn = bpy.context.scene 
D = bpy.data.objects 

verts = [] 
edges = [] 
for i in range(num_verts): 
    verts += [(i, 0.0, 0.0)] 
    if i > 0: 
     edges += [(i, i-1)] 

mesh_data = bpy.data.meshes.new("hooked verts") 
mesh_data.from_pydata(verts, edges, []) 
mesh_data.update() 
obj = D.new("Hooked line", mesh_data) 
obj.select = True 
scn.objects.link(obj) 
scn.objects.active = obj 

bpy.ops.object.mode_set(mode='EDIT') 

for i in range(len(obj.data.vertices)): 
    bm = bmesh.from_edit_mesh(obj.data) 
    bpy.ops.mesh.select_all(action='DESELECT') 
    bm.verts.ensure_lookup_table() 
    bm.verts[i].select = True 
    bpy.ops.object.hook_add_newob() 
    bpy.context.selected_objects[0].name = 'Hook' 
    bm.free() 

bpy.ops.object.mode_set(mode='OBJECT') 

要將鉤子分配到一個頂點,所述對象需要在編輯模式與所選擇的所希望的頂點。看起來,添加鉤子操作員弄亂了編輯網格數據,因此在創建第一個鉤子修改器後,網格數據不再有效。解決方案 - 重新創建bmesh數據並在創建每個鉤子後選擇一個頂點。