アストラルプリズム

PC、スマホ、ゲームなどの備忘録と日記

blender python bmeshをオブジェクトモードで使う方法

編集モードにしてからbmesh.from_edit_mesh(obj.data)してたけど編集モードにしなくてもbmesh使える。
頂点の座標だけ取ってすぐ別のオブジェクトを編集したいときとかに便利。こんなのあるなんて知らなかったよ…。

編集モードを使う場合

import bpy, bmesh

obj = bpy.context.object
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.from_edit_mesh(obj.data)
print(bm.faces[0].edges[0].verts[0].co) 


オブジェクトモードで使う場合

import bpy,bmesh

obj = bpy.context.object
bm = bmesh.new()
bm.from_mesh(obj.data)
bm.faces.ensure_lookup_table()
print(bm.faces[0].edges[0].verts[0].co)