blenderで面の一括分離

面は手作業で剥がすことができますが、面が多いと時間がかかるので、スクリプトで一括剥がしします。

まず手作業から。最初のCubeです。

Tabで編集モードにします。

面を選択して、yキー。

もう分離されているので、後は移動すればよいです。

2面選択して、yした場合には、2面がくっついた状態で、剥がれます。

ですので、全部を選択して一括で剥がすことはできません。

では、スクリプトです。
オブジェクト中の各面を一つずつ選択して、splitで分離します。

>>> import bmesh
>>> bm = bmesh.from_edit_mesh(C.object.data)
>>> for f in bm.faces:
...     bpy.ops.mesh.select_all(action='DESELECT')
...     f.select = True
...     bpy.ops.mesh.split()
{'FINISHED'}
{'FINISHED'}

(省略)

{'FINISHED'}

>>>

分離した面を、移動させて、分離したことがわかるようにしましょう。
calc_center_median()は、面の中点を取得してくれます。

>>> for f in bm.faces:
...     offs = f.calc_center_median()
...     for v in f.verts:
...         v.co = v.co + offs
>>> bm.update_edit_mesh(C.object.data)

移動したので、meshを更新します。

>>> bmesh.update_edit_mesh(C.object.data)

タイトルの絵は、Sphereですが、要領はCubeと同様です。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA