[Bf-extensions-cvs] [b9ec717] master: add mode_set object/edit - without this it is broken

zeffii noreply at git.blender.org
Fri Jul 29 22:35:57 CEST 2016


Commit: b9ec717be542cba76a514f657e490c29210c6bf2
Author: zeffii
Date:   Fri Jul 29 22:35:57 2016 +0200
Branches: master
https://developer.blender.org/rBACb9ec717be542cba76a514f657e490c29210c6bf2

add mode_set object/edit - without this it is broken

===================================================================

M	mesh_tiny_cad/VTX.py

===================================================================

diff --git a/mesh_tiny_cad/VTX.py b/mesh_tiny_cad/VTX.py
index 1418459..8a8c4e8 100644
--- a/mesh_tiny_cad/VTX.py
+++ b/mesh_tiny_cad/VTX.py
@@ -143,8 +143,16 @@ class TCAutoVTX(bpy.types.Operator):
         return {'CANCELLED'}
 
     def execute(self, context):
+
+        # final attempt to enter unfragmented bm/mesh
+        # ghastly, but what can I do? it works with these
+        # fails without.
+        bpy.ops.object.mode_set(mode='OBJECT')
+        bpy.ops.object.mode_set(mode='EDIT')
+
         obj = context.active_object
         me = obj.data
+
         bm = bmesh.from_edit_mesh(me)
         bm.verts.ensure_lookup_table()
         bm.edges.ensure_lookup_table()
@@ -152,16 +160,18 @@ class TCAutoVTX(bpy.types.Operator):
         edges = [e for e in bm.edges if e.select and not e.hide]
 
         if len(edges) == 2:
-            bm = do_vtx_if_appropriate(bm, edges)
-            if isinstance(bm, set):
-                msg = messages.get(bm.pop())
+            message = do_vtx_if_appropriate(bm, edges)
+            if isinstance(message, set):
+                msg = messages.get(message.pop())
                 return self.cancel_message(msg)
+            bm = message
         else:
             return self.cancel_message('select two edges!')
 
         bm.verts.index_update()
         bm.edges.index_update()
         bmesh.update_edit_mesh(me, True)
+
         return {'FINISHED'}



More information about the Bf-extensions-cvs mailing list