diff options
author | Vladimir Spivak(cwolf3d) <cwolf3d@gmail.com> | 2020-05-03 19:55:52 +0300 |
---|---|---|
committer | Vladimir Spivak(cwolf3d) <cwolf3d@gmail.com> | 2020-05-03 19:55:52 +0300 |
commit | 2d8edd6dedc8dae2f5ac9afa2cbb867373c476ed (patch) | |
tree | 2a4b13f36e3e279c459c56ab4695b44864662200 /add_mesh_extra_objects | |
parent | ba2aed9efbdbbd1d6b06124fefa914cc588a6eec (diff) |
Fix T76049: Errors after adding a Gear or Worm (extra objects)
Diffstat (limited to 'add_mesh_extra_objects')
-rw-r--r-- | add_mesh_extra_objects/Wallfactory.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/__init__.py | 3 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_beam_builder.py | 27 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_gears.py | 18 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_gemstones.py | 18 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_honeycomb.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_pipe_joint.py | 50 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_pyramid.py | 9 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_rocks/rockgen.py | 39 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_round_brilliant.py | 9 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_round_cube.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_star.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_supertoroid.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_teapot.py | 37 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_torusknot.py | 10 | ||||
-rw-r--r-- | add_mesh_extra_objects/add_mesh_twisted_torus.py | 9 |
16 files changed, 247 insertions, 32 deletions
diff --git a/add_mesh_extra_objects/Wallfactory.py b/add_mesh_extra_objects/Wallfactory.py index a4e87574..ede91fc3 100644 --- a/add_mesh_extra_objects/Wallfactory.py +++ b/add_mesh_extra_objects/Wallfactory.py @@ -665,6 +665,10 @@ class add_mesh_wallb(Operator, object_utils.AddObjectHelper): if not self.ConstructTog: return {'FINISHED'} + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + # enter the settings for the wall dimensions (area) # start can't be zero - min/max don't matter [if max less than end] but zero don't workie. # start can't exceed end. @@ -917,6 +921,12 @@ class add_mesh_wallb(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def WallParameters(): diff --git a/add_mesh_extra_objects/__init__.py b/add_mesh_extra_objects/__init__.py index 4f00c450..14bde07d 100644 --- a/add_mesh_extra_objects/__init__.py +++ b/add_mesh_extra_objects/__init__.py @@ -249,6 +249,9 @@ def Extras_contex_menu(self, context): obj = context.object layout = self.layout + if obj == None: + return + if 'Gear' in obj.data.keys(): props = layout.operator("mesh.primitive_gear", text="Change Gear") props.change = True diff --git a/add_mesh_extra_objects/add_mesh_beam_builder.py b/add_mesh_extra_objects/add_mesh_beam_builder.py index ceda4ffc..38944c58 100644 --- a/add_mesh_extra_objects/add_mesh_beam_builder.py +++ b/add_mesh_extra_objects/add_mesh_beam_builder.py @@ -730,11 +730,6 @@ class addBeam(Operator, object_utils.AddObjectHelper): default=0, description="Angle beam edges" ) - Cursor: BoolProperty( - name="Use 3D Cursor", - default=False, - description="Draw the beam where the 3D Cursor is" - ) def draw(self, context): layout = self.layout @@ -742,7 +737,6 @@ class addBeam(Operator, object_utils.AddObjectHelper): box = layout.box() split = box.split(factor=0.85, align=True) split.prop(self, "Type", text="") - split.prop(self, "Cursor", text="") box.prop(self, "beamZ") box.prop(self, "beamX") @@ -760,6 +754,10 @@ class addBeam(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -781,21 +779,11 @@ class addBeam(Operator, object_utils.AddObjectHelper): bpy.ops.transform.rotate(value=1.570796, constraint_axis=[False, True, False]) bpy.ops.object.transform_apply(location=False, rotation=True, scale=False) - if self.Cursor: - if beamObj.select_get() is True: - # we also have to check if we're considered to be in 3D View (view3d) - if bpy.ops.view3d.snap_selected_to_cursor.poll(): - bpy.ops.view3d.snap_selected_to_cursor() - else: - self.Cursor = False - obj.data["Beam"] = True obj.data["change"] = False for prm in BeamParameters(): obj.data[prm] = getattr(self, prm) - return {'FINISHED'} - if bpy.context.mode == "EDIT_MESH": active_object = context.active_object name_active_object = active_object.name @@ -808,6 +796,12 @@ class addBeam(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def BeamParameters(): @@ -818,6 +812,5 @@ def BeamParameters(): "beamY", "beamW", "edgeA", - "Cursor", ] return BeamParameters diff --git a/add_mesh_extra_objects/add_mesh_gears.py b/add_mesh_extra_objects/add_mesh_gears.py index 44128330..9170952a 100644 --- a/add_mesh_extra_objects/add_mesh_gears.py +++ b/add_mesh_extra_objects/add_mesh_gears.py @@ -683,6 +683,9 @@ class AddGear(Operator, object_utils.AddObjectHelper): return context.scene is not None def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -738,6 +741,12 @@ class AddGear(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def invoke(self, context, event): @@ -894,6 +903,9 @@ class AddWormGear(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -950,6 +962,12 @@ class AddWormGear(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def WormGearParameters(): diff --git a/add_mesh_extra_objects/add_mesh_gemstones.py b/add_mesh_extra_objects/add_mesh_gemstones.py index 5829794b..c47e4131 100644 --- a/add_mesh_extra_objects/add_mesh_gemstones.py +++ b/add_mesh_extra_objects/add_mesh_gemstones.py @@ -278,6 +278,9 @@ class AddDiamond(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -333,6 +336,12 @@ class AddDiamond(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def DiamondParameters(): @@ -417,6 +426,9 @@ class AddGem(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -472,6 +484,12 @@ class AddGem(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def GemParameters(): diff --git a/add_mesh_extra_objects/add_mesh_honeycomb.py b/add_mesh_extra_objects/add_mesh_honeycomb.py index ef7d34db..73dea1d6 100644 --- a/add_mesh_extra_objects/add_mesh_honeycomb.py +++ b/add_mesh_extra_objects/add_mesh_honeycomb.py @@ -272,6 +272,10 @@ class add_mesh_honeycomb(bpy.types.Operator, object_utils.AddObjectHelper): return context.scene is not None def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ ('HoneyComb' in context.active_object.data.keys()) and (self.change == True): @@ -314,6 +318,12 @@ class add_mesh_honeycomb(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def HoneyCombParameters(): diff --git a/add_mesh_extra_objects/add_mesh_pipe_joint.py b/add_mesh_extra_objects/add_mesh_pipe_joint.py index 00902ad5..65876136 100644 --- a/add_mesh_extra_objects/add_mesh_pipe_joint.py +++ b/add_mesh_extra_objects/add_mesh_pipe_joint.py @@ -169,6 +169,10 @@ class AddElbowJoint(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + radius = self.radius div = self.div @@ -259,6 +263,12 @@ class AddElbowJoint(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} @@ -360,6 +370,10 @@ class AddTeeJoint(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + radius = self.radius div = self.div @@ -514,6 +528,12 @@ class AddTeeJoint(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def WyeJointParameters(): @@ -622,6 +642,10 @@ class AddWyeJoint(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + radius = self.radius div = self.div @@ -786,6 +810,12 @@ class AddWyeJoint(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} @@ -911,6 +941,10 @@ class AddCrossJoint(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + radius = self.radius div = self.div @@ -1122,6 +1156,12 @@ class AddCrossJoint(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} @@ -1198,6 +1238,10 @@ class AddNJoint(Operator, object_utils.AddObjectHelper): box.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + radius = self.radius div = self.div number = self.number @@ -1353,4 +1397,10 @@ class AddNJoint(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} diff --git a/add_mesh_extra_objects/add_mesh_pyramid.py b/add_mesh_extra_objects/add_mesh_pyramid.py index cfc086ff..c70988b7 100644 --- a/add_mesh_extra_objects/add_mesh_pyramid.py +++ b/add_mesh_extra_objects/add_mesh_pyramid.py @@ -162,6 +162,9 @@ class AddPyramid(bpy.types.Operator, object_utils.AddObjectHelper): col.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -195,6 +198,12 @@ class AddPyramid(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def PyramidParameters(): diff --git a/add_mesh_extra_objects/add_mesh_rocks/rockgen.py b/add_mesh_extra_objects/add_mesh_rocks/rockgen.py index 26f15d97..7279d904 100644 --- a/add_mesh_extra_objects/add_mesh_rocks/rockgen.py +++ b/add_mesh_extra_objects/add_mesh_rocks/rockgen.py @@ -174,6 +174,9 @@ def createMeshObject(context, verts, edges, faces, name): # Update mesh geometry after adding stuff. mesh.update() + if bpy.context.mode == "EDIT_MESH": + bpy.ops.object.mode_set(mode='OBJECT') + return object_utils.object_data_add(context, mesh, operator=None) @@ -749,7 +752,7 @@ def generateRocks(context, scaleX, skewX, scaleY, skewY, scaleZ, skewZ, scale_fac, detail, display_detail, deform, rough, smooth_fac, smooth_it, numOfRocks=1, userSeed=1.0, - scaleDisplace=False, randomSeed=True): + scaleDisplace=False, randomSeed=True, use_enter_edit_mode=False): global LASTROCK sigmaX = 0 sigmaY = 0 @@ -823,6 +826,8 @@ def generateRocks(context, scaleX, skewX, scaleY, skewY, scaleZ, skewZ, else: muZ = scaleZ + rocks = [] + for i in range(numOfRocks): # todo: enable different random values for each (x,y,z) corrdinate for # each vertex. This will add additional randomness to the shape of the @@ -928,13 +933,20 @@ def generateRocks(context, scaleX, skewX, scaleY, skewY, scaleZ, skewZ, bpy.ops.mesh.normals_make_consistent() bpy.ops.object.editmode_toggle() + if use_enter_edit_mode: + for m in rock.modifiers: + m.show_in_editmode = True + m.show_on_cage = True + # Store the last value of i: shift = i + rocks.append(rock) + # Add the shift to LASTROCK: LASTROCK += shift + 1 - return + return rocks # Much of the code below is more-or-less imitation of other addons and as such @@ -1087,12 +1099,10 @@ class OBJECT_OT_add_mesh_rock(bpy.types.Operator): box.prop(self, 'user_seed') box.prop(self, 'preset_values') - @classmethod - def poll(cls, context): - return context.mode == 'OBJECT' - # return (context.object is not None and context.object.mode == 'OBJECT') - def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False # The following "if" block loads preset values: if self.lastPreset != int(self.preset_values): @@ -1120,7 +1130,7 @@ class OBJECT_OT_add_mesh_rock(bpy.types.Operator): # *** Eliminated "deform_Var" and "rough_Var" so the script is not # as complex to use. May add in again as advanced features. *** if self.use_generate: - generateRocks(context, + rocks = generateRocks(context, self.scale_X, self.skew_X, self.scale_Y, @@ -1137,10 +1147,19 @@ class OBJECT_OT_add_mesh_rock(bpy.types.Operator): self.num_of_rocks, self.user_seed, self.use_scale_dis, - self.use_random_seed) + self.use_random_seed, + use_enter_edit_mode) - return {'FINISHED'} + for rock in rocks: + rock.select_set(True) + + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + + return {'FINISHED'} # Register: def menu_func_rocks(self, context): diff --git a/add_mesh_extra_objects/add_mesh_round_brilliant.py b/add_mesh_extra_objects/add_mesh_round_brilliant.py index cd796a53..49232151 100644 --- a/add_mesh_extra_objects/add_mesh_round_brilliant.py +++ b/add_mesh_extra_objects/add_mesh_round_brilliant.py @@ -422,6 +422,9 @@ class MESH_OT_primitive_brilliant_add(Operator, object_utils.AddObjectHelper): # call mesh/object generator function with user inputs def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ @@ -466,6 +469,12 @@ class MESH_OT_primitive_brilliant_add(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def BrilliantParameters(): diff --git a/add_mesh_extra_objects/add_mesh_round_cube.py b/add_mesh_extra_objects/add_mesh_round_cube.py index 3be67b5b..3c261908 100644 --- a/add_mesh_extra_objects/add_mesh_round_cube.py +++ b/add_mesh_extra_objects/add_mesh_round_cube.py @@ -388,6 +388,10 @@ class AddRoundCube(Operator, object_utils.AddObjectHelper): ) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + if self.arc_div <= 0 and self.lin_div <= 0: self.report({'ERROR'}, "Either Arc Divisions or Linear Divisions must be greater than zero") @@ -441,6 +445,12 @@ class AddRoundCube(Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def check(self, context): diff --git a/add_mesh_extra_objects/add_mesh_star.py b/add_mesh_extra_objects/add_mesh_star.py index 105648e3..30573864 100644 --- a/add_mesh_extra_objects/add_mesh_star.py +++ b/add_mesh_extra_objects/add_mesh_star.py @@ -202,6 +202,10 @@ class AddStar(bpy.types.Operator, object_utils.AddObjectHelper): col.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ ('Star' in context.active_object.data.keys()) and (self.change == True): @@ -256,6 +260,12 @@ class AddStar(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def StarParameters(): diff --git a/add_mesh_extra_objects/add_mesh_supertoroid.py b/add_mesh_extra_objects/add_mesh_supertoroid.py index 6aec60b5..af63ca2a 100644 --- a/add_mesh_extra_objects/add_mesh_supertoroid.py +++ b/add_mesh_extra_objects/add_mesh_supertoroid.py @@ -199,6 +199,10 @@ class add_supertoroid(bpy.types.Operator, object_utils.AddObjectHelper): col.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + props = self.properties # check how the radii properties must be used @@ -274,6 +278,12 @@ class add_supertoroid(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def SuperToroidParameters(): diff --git a/add_mesh_extra_objects/add_mesh_teapot.py b/add_mesh_extra_objects/add_mesh_teapot.py index c583bb7a..e4ddbecb 100644 --- a/add_mesh_extra_objects/add_mesh_teapot.py +++ b/add_mesh_extra_objects/add_mesh_teapot.py @@ -9,9 +9,10 @@ import mathutils import io import operator import functools +from bpy_extras import object_utils -class AddTeapot(bpy.types.Operator): +class AddTeapot(bpy.types.Operator, object_utils.AddObjectHelper): bl_idname = "mesh.primitive_teapot_add" bl_label = "Add Teapot" bl_description = "Construct a teapot or teaspoon mesh" @@ -31,16 +32,42 @@ class AddTeapot(bpy.types.Operator): default='1', ) + def draw(self, context): + layout = self.layout + + box = layout.box() + box.prop(self, 'resolution') + + box = layout.box() + box.prop(self, 'objecttype') + + # generic transform props + box = layout.box() + box.prop(self, 'align', expand=True) + box.prop(self, 'location', expand=True) + box.prop(self, 'rotation', expand=True) + def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + cmode = bpy.context.mode verts, faces = make_teapot(self.objecttype, self.resolution) # Actually create the mesh object from this geometry data. - obj = create_mesh_object(context, verts, [], faces, "Teapot") + obj = create_mesh_object(self, context, verts, [], faces, "Teapot") bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.remove_doubles() if cmode != "EDIT_MESH": bpy.ops.object.mode_set(mode=cmode) + + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} @@ -56,7 +83,7 @@ def create_mesh_face_hack(faces): faces[:] = faces_copy -def create_mesh_object(context, verts, edges, faces, name): +def create_mesh_object(self, context, verts, edges, faces, name): create_mesh_face_hack(faces) @@ -66,8 +93,8 @@ def create_mesh_object(context, verts, edges, faces, name): mesh.from_pydata(verts, edges, faces) # Update mesh geometry after adding stuff. mesh.update() - from bpy_extras import object_utils - return object_utils.object_data_add(context, mesh, operator=None) + + return object_utils.object_data_add(context, mesh, operator=self) # ========================== diff --git a/add_mesh_extra_objects/add_mesh_torusknot.py b/add_mesh_extra_objects/add_mesh_torusknot.py index 73a0b80f..ac666289 100644 --- a/add_mesh_extra_objects/add_mesh_torusknot.py +++ b/add_mesh_extra_objects/add_mesh_torusknot.py @@ -138,6 +138,10 @@ class AddTorusKnot(bpy.types.Operator, object_utils.AddObjectHelper): col.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False + if bpy.context.mode == "OBJECT": if context.selected_objects != [] and context.active_object and \ ('TorusKnot' in context.active_object.data.keys()) and (self.change == True): @@ -177,6 +181,12 @@ class AddTorusKnot(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def TorusKnotParameters(): diff --git a/add_mesh_extra_objects/add_mesh_twisted_torus.py b/add_mesh_extra_objects/add_mesh_twisted_torus.py index 8bc10169..ba6b4fc1 100644 --- a/add_mesh_extra_objects/add_mesh_twisted_torus.py +++ b/add_mesh_extra_objects/add_mesh_twisted_torus.py @@ -225,6 +225,9 @@ class AddTwistedTorus(bpy.types.Operator, object_utils.AddObjectHelper): col.prop(self, 'rotation', expand=True) def execute(self, context): + # turn off 'Enter Edit Mode' + use_enter_edit_mode = bpy.context.preferences.edit.use_enter_edit_mode + bpy.context.preferences.edit.use_enter_edit_mode = False if self.use_abso is True: extra_helper = (self.abso_major_rad - self.abso_minor_rad) * 0.5 @@ -288,6 +291,12 @@ class AddTwistedTorus(bpy.types.Operator, object_utils.AddObjectHelper): context.active_object.name = name_active_object bpy.ops.object.mode_set(mode='EDIT') + if use_enter_edit_mode: + bpy.ops.object.mode_set(mode = 'EDIT') + + # restore pre operator state + bpy.context.preferences.edit.use_enter_edit_mode = use_enter_edit_mode + return {'FINISHED'} def TwistedTorusParameters(): |