Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Spivak(cwolf3d) <cwolf3d@gmail.com>2020-05-03 19:55:52 +0300
committerVladimir Spivak(cwolf3d) <cwolf3d@gmail.com>2020-05-03 19:55:52 +0300
commit2d8edd6dedc8dae2f5ac9afa2cbb867373c476ed (patch)
tree2a4b13f36e3e279c459c56ab4695b44864662200
parentba2aed9efbdbbd1d6b06124fefa914cc588a6eec (diff)
Fix T76049: Errors after adding a Gear or Worm (extra objects)
-rw-r--r--add_mesh_extra_objects/Wallfactory.py10
-rw-r--r--add_mesh_extra_objects/__init__.py3
-rw-r--r--add_mesh_extra_objects/add_mesh_beam_builder.py27
-rw-r--r--add_mesh_extra_objects/add_mesh_gears.py18
-rw-r--r--add_mesh_extra_objects/add_mesh_gemstones.py18
-rw-r--r--add_mesh_extra_objects/add_mesh_honeycomb.py10
-rw-r--r--add_mesh_extra_objects/add_mesh_pipe_joint.py50
-rw-r--r--add_mesh_extra_objects/add_mesh_pyramid.py9
-rw-r--r--add_mesh_extra_objects/add_mesh_rocks/rockgen.py39
-rw-r--r--add_mesh_extra_objects/add_mesh_round_brilliant.py9
-rw-r--r--add_mesh_extra_objects/add_mesh_round_cube.py10
-rw-r--r--add_mesh_extra_objects/add_mesh_star.py10
-rw-r--r--add_mesh_extra_objects/add_mesh_supertoroid.py10
-rw-r--r--add_mesh_extra_objects/add_mesh_teapot.py37
-rw-r--r--add_mesh_extra_objects/add_mesh_torusknot.py10
-rw-r--r--add_mesh_extra_objects/add_mesh_twisted_torus.py9
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():