Я работаю над моделью Blender 3D. И я использую BMesh.Зачем менять адрес BMFace с изменением режима объекта MESH?
И я сохраняю адрес BMFace в переменной (sel_f) в режиме EDIT.
И я выхожу из режима EDIT. и войдите в режим OBJECT.
И снова войдите в режим EDIT с BMesh.
И я называю переменной sel_f с «sel_f.select = True»
Но я получаю сообщение об ошибке «данные BMesh типа BMFace был удален.»
Так что я reDefined 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?