私はBlender 3Dでモデリングを行っています。 そして私はBMeshを使います。オブジェクトのMESHモードが変更されてBMFaceアドレスが変更されるのはなぜですか?
そして、BMIFaceのアドレスを変数(sel_f)にEDITモードで保存します。
EDITモードから抜け出す。 OBJECTモードに入ります。
さらに、BMeshでEDITモードに入ります。
と私は
「sel_f.select =真」でsel_f変数を呼び出すが、私はエラーメッセージが表示され、「タイプBMFaceのBMeshデータが削除されました。」
私はbmを再定義しました。
しかし、新しいsel_f変数を持つ古いsel_fは同じアドレスではありません。
なぜ同じではありませんか?
以下のスクリプト例をご覧ください。オブジェクトは、データをメッシュ
>>> import bmesh
>>>
>>> obj = bpy.context.active_object
>>> me = obj.data
>>> bm = bmesh.from_edit_mesh(me)
>>>
>>> sel_f = bm.select_history[-1]
>>>
>>> sel_f
〈BMFace(0x1E2918B0), index=2, totverts=4〉
Change MESH mode to "OBJECT mode" by manually. not by bpy script as below.
# bpy.ops.object.mode_set(mode="OBJECT")
again Change MESH mode to "EDIT mode" by manually. not by bpy script as below.
# bpy.ops.object.mode_set(mode="EDIT")
>>> sel_f # i know that this is normalcy.
〈BMFace dead at 0x0DBE2F68〉
>>> bm = bmesh.from_edit_mesh(me)
>>> sel_f = bm.select_history[-1]
>>> sel_f
〈BMFace(0x10FD3698), index=2, totverts=4〉 # Why not Same with above a address of BMFace?