我正在使用 Blender 3D 进行建模。我使用 BMesh。
我在编辑模式下将 BMFace 的地址保存到变量 (sel_f) 中。
我退出编辑模式。并进入对象模式。
我再次使用 BMesh 进入 EDIT 模式。
我用“sel_f.select = True”调用 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?