[Bf-blender-cvs] [851baa40a19] master: Operator: Add 'dissolve_and_intersect' option for 'Extrude and Move on Normals'

Germano Cavalcante noreply at git.blender.org
Wed Apr 15 21:03:26 CEST 2020


Commit: 851baa40a19df6dd7989d933da6b96090b29ec17
Author: Germano Cavalcante
Date:   Wed Apr 15 16:02:16 2020 -0300
Branches: master
https://developer.blender.org/rB851baa40a19df6dd7989d933da6b96090b29ec17

Operator: Add 'dissolve_and_intersect' option for 'Extrude and Move on Normals'

This allows easy choice of operators when editing keymaps

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

M	release/scripts/startup/bl_operators/view3d.py

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

diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py
index fcabee94a89..4a6791f1627 100644
--- a/release/scripts/startup/bl_operators/view3d.py
+++ b/release/scripts/startup/bl_operators/view3d.py
@@ -72,13 +72,19 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
     bl_label = "Extrude and Move on Normals"
     bl_idname = "view3d.edit_mesh_extrude_move_normal"
 
+    dissolve_and_intersect: BoolProperty(
+            name="dissolve_and_intersect",
+            default=False,
+            description="Dissolves adjacent faces and intersects new geometry"
+            )
+
     @classmethod
     def poll(cls, context):
         obj = context.active_object
         return (obj is not None and obj.mode == 'EDIT')
 
     @staticmethod
-    def extrude_region(context, use_vert_normals):
+    def extrude_region(context, use_vert_normals, dissolve_and_intersect):
         mesh = context.object.data
 
         totface = mesh.total_face_sel
@@ -91,6 +97,17 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
                     'INVOKE_REGION_WIN',
                     TRANSFORM_OT_shrink_fatten={},
                 )
+            elif dissolve_and_intersect:
+                bpy.ops.mesh.extrude_region_dissolve_move_intersect(
+                    'INVOKE_REGION_WIN',
+                    MESH_OT_extrude_region={
+                        "use_dissolve_ortho_edges": True,
+                    },
+                    TRANSFORM_OT_translate={
+                        "orient_type": 'NORMAL',
+                        "constraint_axis": (False, False, True),
+                    },
+                )
             else:
                 bpy.ops.mesh.extrude_region_move(
                     'INVOKE_REGION_WIN',
@@ -119,7 +136,7 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
         return {'FINISHED'}
 
     def execute(self, context):
-        return VIEW3D_OT_edit_mesh_extrude_move.extrude_region(context, False)
+        return VIEW3D_OT_edit_mesh_extrude_move.extrude_region(context, False, self.dissolve_and_intersect)
 
     def invoke(self, context, _event):
         return self.execute(context)



More information about the Bf-blender-cvs mailing list