オブジェクトを連結した部分で分割する
[ctrl+l]と[p](Selection)を割れなくなるまで繰り返す。
import bpy s=bpy.context.scene o=s.objects.active def separate_object(o): if o.type!='MESH': return m=o.data # deselect all bpy.ops.object.mode_set(mode='EDIT', toggle=False) bpy.ops.mesh.select_all(action='DESELECT') bpy.ops.object.mode_set(mode='OBJECT', toggle=False) while True: if len(m.verts)==0: break print(len(m.verts)) # select first m.verts[0].select=True # select linked bpy.ops.object.mode_set(mode='EDIT', toggle=False) bpy.ops.mesh.select_linked() bpy.ops.object.mode_set(mode='OBJECT', toggle=False) if m.total_vert_sel==len(m.verts): break bpy.ops.object.mode_set(mode='EDIT', toggle=False) bpy.ops.mesh.separate(type='SELECTED') bpy.ops.object.mode_set(mode='OBJECT', toggle=False) separate_object(o)