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:
authorSpivak Vladimir (cwolf3d) <cwolf3d@gmail.com>2019-09-20 20:10:08 +0300
committerSpivak Vladimir (cwolf3d) <cwolf3d@gmail.com>2019-09-20 20:10:42 +0300
commit8bb3714e9570bfcd29bb61179d98e208a7bc1304 (patch)
treeb1bd7ffb9c928ab1cee3eb540c9b2ea656d2e42b /add_mesh_extra_objects
parent17727caac2a985b787bcef3b66c7c3cd2430ea67 (diff)
Addon: Mesh Extra Objects: Added soft limiters in Gear and WormGear. Added restore materials if you go back to change parameters.
Diffstat (limited to 'add_mesh_extra_objects')
-rw-r--r--add_mesh_extra_objects/add_mesh_gears.py82
1 files changed, 47 insertions, 35 deletions
diff --git a/add_mesh_extra_objects/add_mesh_gears.py b/add_mesh_extra_objects/add_mesh_gears.py
index e92857b8..b4f92143 100644
--- a/add_mesh_extra_objects/add_mesh_gears.py
+++ b/add_mesh_extra_objects/add_mesh_gears.py
@@ -586,69 +586,69 @@ class AddGear(Operator):
number_of_teeth: IntProperty(name="Number of Teeth",
description="Number of teeth on the gear",
min=2,
- #max=265,
+ soft_max=1000,
default=12
)
radius: FloatProperty(name="Radius",
description="Radius of the gear, negative for crown gear",
- #min=-100.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=1.0
)
addendum: FloatProperty(name="Addendum",
description="Addendum, extent of tooth above radius",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.1
)
dedendum: FloatProperty(name="Dedendum",
description="Dedendum, extent of tooth below radius",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.1
)
angle: FloatProperty(name="Pressure Angle",
description="Pressure angle, skewness of tooth tip",
- #min=0.0,
- #max=radians(45.0),
+ soft_min=radians(-45.0),
+ soft_max=radians(45.0),
unit='ROTATION',
default=radians(20.0)
)
base: FloatProperty(name="Base",
description="Base, extent of gear below radius",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.2
)
width: FloatProperty(name="Width",
description="Width, thickness of gear",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.2
)
skew: FloatProperty(name="Skewness",
description="Skew of teeth",
- #min=radians(-90.0),
- #max=radians(90.0),
+ soft_min=radians(-360.0),
+ soft_max=radians(360.0),
unit='ROTATION',
default=radians(0.0)
)
conangle: FloatProperty(name="Conical angle",
description="Conical angle of gear",
- #min=0.0,
- #max=radians(90.0),
+ soft_min=radians(-360.0),
+ soft_max=radians(360.0),
unit='ROTATION',
default=radians(0.0)
)
crown: FloatProperty(name="Crown",
description="Inward pointing extend of crown teeth",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.0
)
@@ -682,12 +682,18 @@ class AddGear(Operator):
if 'Gear' in obj.data.keys():
oldmesh = obj.data
oldmeshname = obj.data.name
+ oldmeshmaterials = obj.data.materials
+
mesh, verts_tip, verts_valley = AddGearMesh(self, context)
obj.data = mesh
try:
bpy.ops.object.vertex_group_remove(all=True)
except:
pass
+
+ for material in oldmeshmaterials:
+ obj.data.materials.append(material)
+
bpy.data.meshes.remove(oldmesh)
obj.data.name = oldmeshname
else:
@@ -787,69 +793,69 @@ class AddWormGear(Operator):
name="Number of Teeth",
description="Number of teeth on the gear",
min=1,
- #max=265,
+ soft_max=1000,
default=12
)
number_of_rows: IntProperty(
name="Number of Rows",
description="Number of rows on the worm gear",
min=0,
- #max=265,
+ soft_max=1000,
default=32
)
radius: FloatProperty(
name="Radius",
description="Radius of the gear, negative for crown gear",
- #min=-100.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=1.0
)
addendum: FloatProperty(
name="Addendum",
description="Addendum, extent of tooth above radius",
- #min=0.01,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.1
)
dedendum: FloatProperty(
name="Dedendum",
description="Dedendum, extent of tooth below radius",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.1
)
angle: FloatProperty(
name="Pressure Angle",
description="Pressure angle, skewness of tooth tip",
- #min=0.0,
- #max=radians(45.0),
+ soft_min=radians(-45.0),
+ soft_max=radians(45.0),
default=radians(20.0),
unit='ROTATION'
)
row_height: FloatProperty(
name="Row Height",
description="Height of each Row",
- #min=0.05,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.2
)
skew: FloatProperty(
name="Skewness per Row",
description="Skew of each row",
- #min=radians(-90.0),
- #max=radians(90.0),
+ soft_min=radians(-360.0),
+ soft_max=radians(360.0),
default=radians(11.25),
unit='ROTATION'
)
crown: FloatProperty(
name="Crown",
description="Inward pointing extend of crown teeth",
- #min=0.0,
- #max=100.0,
+ soft_min=-1000.0,
+ soft_max=1000.0,
unit='LENGTH',
default=0.0
)
@@ -879,12 +885,18 @@ class AddWormGear(Operator):
if 'WormGear' in obj.data.keys():
oldmesh = obj.data
oldmeshname = obj.data.name
+ oldmeshmaterials = obj.data.materials
+
mesh, verts_tip, verts_valley = AddWormGearMesh(self, context)
obj.data = mesh
try:
bpy.ops.object.vertex_group_remove(all=True)
except:
pass
+
+ for material in oldmeshmaterials:
+ obj.data.materials.append(material)
+
bpy.data.meshes.remove(oldmesh)
obj.data.name = oldmeshname
else: