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:
authorlijenstina <lijenstina@gmail.com>2017-06-03 14:37:35 +0300
committerlijenstina <lijenstina@gmail.com>2017-06-03 14:37:35 +0300
commit9c045fdd8808b8745d0af66ce7dda1e0da592332 (patch)
tree20ac5b516277df002f4977c5c1437b0891889f26 /add_curve_extra_objects/__init__.py
parent77a836a2455bac9f56d6b3ae65bb37a64dea1b1c (diff)
Add Curve Extra Objects: Cleanup, refactor some code
Bumped version to 0.1.2 Pep8 cleanup Consistent property definitions Remove star imports Some small UI fixes Reorder the submenu items types Alphabetically Add Curve braid: merge in the bpybraid and braid scripts since they are relatively small Add Simple Curve - use a property group for scene props Add list of Menus and Panels available in the User Preferences
Diffstat (limited to 'add_curve_extra_objects/__init__.py')
-rw-r--r--add_curve_extra_objects/__init__.py172
1 files changed, 129 insertions, 43 deletions
diff --git a/add_curve_extra_objects/__init__.py b/add_curve_extra_objects/__init__.py
index f328ed9d..ae8cdf89 100644
--- a/add_curve_extra_objects/__init__.py
+++ b/add_curve_extra_objects/__init__.py
@@ -15,19 +15,20 @@
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
-# Contributed to by
+# Contributed to by:
# testscreenings, Alejandro Omar Chocano Vasquez, Jimmy Hazevoet, meta-androcto #
-# Cmomoney, Jared Forsyth, Adam Newgas, Spivak Vladimir
+# Cmomoney, Jared Forsyth, Adam Newgas, Spivak Vladimir, Jared Forsyth, Atom #
+# Antonio Osprite, Marius Giurgi (DolphinDream)
bl_info = {
"name": "Extra Objects",
"author": "Multiple Authors",
- "version": (0, 1),
+ "version": (0, 1, 2),
"blender": (2, 76, 0),
"location": "View3D > Add > Curve > Extra Objects",
"description": "Add extra curve object types",
"warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
+ "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
"Scripts/Curve/Curve_Objects",
"category": "Add Curve"
}
@@ -58,11 +59,21 @@ else:
from . import add_curve_spirofit_bouncespline
import bpy
-from bpy.types import Menu, AddonPreferences
-from bpy.props import StringProperty, IntProperty, BoolProperty
+from bpy.types import (
+ Menu,
+ AddonPreferences,
+ )
+from bpy.props import (
+ StringProperty,
+ BoolProperty,
+ )
-def convert_old_presets(data_path, msg_data_path, old_preset_subdir, new_preset_subdir, fixdic={}, ext=".py"):
- ''' convert old presets '''
+
+def convert_old_presets(data_path, msg_data_path, old_preset_subdir,
+ new_preset_subdir, fixdic={}, ext=".py"):
+ """
+ convert old presets
+ """
def convert_presets(self, context):
if not getattr(self, data_path, False):
@@ -104,6 +115,7 @@ def convert_old_presets(data_path, msg_data_path, old_preset_subdir, new_preset_
file_preset = open(new_file_path, 'w')
file_preset.write("import bpy\n")
file_preset.write("op = bpy.context.active_operator\n")
+
for prop, value in vars(op).items():
if isinstance(value, str):
file_preset.write("op.%s = '%s'\n" % (prop, str(value)))
@@ -114,37 +126,106 @@ def convert_old_presets(data_path, msg_data_path, old_preset_subdir, new_preset_
setattr(self, msg_data_path, "Converted %d old presets" % len(files))
return None
+
return convert_presets
+# Addons Preferences
+
class CurveExtraObjectsAddonPreferences(AddonPreferences):
bl_idname = __name__
- spiral_fixdic = {"spiral_type": ['ARCH', 'ARCH', 'LOG', 'SPHERE', 'TORUS'],
- "curve_type": ['POLY', 'NURBS'],
- "spiral_direction": ['COUNTER_CLOCKWISE', 'CLOCKWISE']
- }
- update_spiral_presets_msg = StringProperty(default="Nothing to do")
+ spiral_fixdic = {
+ "spiral_type": ['ARCH', 'ARCH', 'LOG', 'SPHERE', 'TORUS'],
+ "curve_type": ['POLY', 'NURBS'],
+ "spiral_direction": ['COUNTER_CLOCKWISE', 'CLOCKWISE']
+ }
+ update_spiral_presets_msg = StringProperty(
+ default="Nothing to do"
+ )
update_spiral_presets = BoolProperty(
name="Update Old Presets",
description="Update presets to reflect data changes",
default=False,
- update=convert_old_presets("update_spiral_presets", # this props name
- "update_spiral_presets_msg", # message prop
- "operator/curve.spirals",
- "curve_extras/curve.spirals",
- fixdic=spiral_fixdic)
+ update=convert_old_presets(
+ "update_spiral_presets", # this props name
+ "update_spiral_presets_msg", # message prop
+ "operator/curve.spirals",
+ "curve_extras/curve.spirals",
+ fixdic=spiral_fixdic
+ )
+ )
+ show_menu_list = BoolProperty(
+ name="Menu List",
+ description="Show/Hide the Add Menu items",
+ default=False
+ )
+ show_panel_list = BoolProperty(
+ name="Panels List",
+ description="Show/Hide the Panel items",
+ default=False
)
def draw(self, context):
layout = self.layout
- layout.label(text="Spirals")
+ box = layout.box()
+ box.label(text="Spirals:")
+
if self.update_spiral_presets:
- layout.label(self.update_spiral_presets_msg, icon='FILE_TICK')
+ box.label(self.update_spiral_presets_msg, icon="FILE_TICK")
else:
- layout.prop(self, "update_spiral_presets")
+ box.prop(self, "update_spiral_presets")
+
+ icon_1 = "TRIA_RIGHT" if not self.show_menu_list else "TRIA_DOWN"
+ box = layout.box()
+ box.prop(self, "show_menu_list", emboss=False, icon=icon_1)
+
+ if self.show_menu_list:
+ box.label(text="Items located in the Add Menu > Curve (default shortcut Ctrl + A):",
+ icon="LAYER_USED")
+ box.label(text="2D Objects:", icon="LAYER_ACTIVE")
+ box.label(text="Angle, Arc, Circle, Distance, Ellipse, Line, Point, Polygon,",
+ icon="LAYER_USED")
+ box.label(text="Polygon ab, Rectangle, Rhomb, Sector, Segment, Trapezoid",
+ icon="LAYER_USED")
+ box.label(text="Curve Profiles:", icon="LAYER_ACTIVE")
+ box.label(text="Arc, Arrow, Cogwheel, Cycloid, Flower, Helix (3D),",
+ icon="LAYER_USED")
+ box.label(text="Noise (3D), Nsided, Profile, Rectangle, Splat, Star",
+ icon="LAYER_USED")
+ box.label(text="Curve Spirals:", icon="LAYER_ACTIVE")
+ box.label(text="Archemedian, Logarithmic, Spheric, Torus",
+ icon="LAYER_USED")
+ box.label(text="Knots:", icon="LAYER_ACTIVE")
+ box.label(text="Torus Knots Plus, Celtic Links, Braid Knot",
+ icon="LAYER_USED")
+ box.label(text="Curly Curve", icon="LAYER_ACTIVE")
+ box.label(text="Bevel/Taper:", icon="LAYER_ACTIVE")
+ box.label(text="Add Curve as Bevel, Add Curve as Taper",
+ icon="LAYER_USED")
+
+ box.label(text="Items located in the Add Menu > Surface (default shortcut Ctrl + A):",
+ icon="LAYER_USED")
+ box.label(text="Wedge, Cone, Star, Plane",
+ icon="LAYER_ACTIVE")
-class INFO_MT_curve_knots_add1(bpy.types.Menu):
+ icon_2 = "TRIA_RIGHT" if not self.show_panel_list else "TRIA_DOWN"
+ box = layout.box()
+ box.prop(self, "show_panel_list", emboss=False, icon=icon_2)
+
+ if self.show_panel_list:
+ box.label(text="Panel located in 3D View Tools Region > Create:",
+ icon="LAYER_ACTIVE")
+ box.label(text="Spline:", icon="LAYER_ACTIVE")
+ box.label(text="SpiroFit, Bounce Spline, Catenary", icon="LAYER_USED")
+ box.label(text="Panel located in 3D View Tools Region > Tools:",
+ icon="LAYER_ACTIVE")
+ box.label(text="Simple Curve:", icon="LAYER_ACTIVE")
+ box.label(text="Available if the Active Object is a Curve was created with 2D Objects",
+ icon="LAYER_USED")
+
+
+class INFO_MT_curve_knots_add1(Menu):
# Define the "Extras" menu
bl_idname = "curve_knots_add"
bl_label = "Plants"
@@ -152,13 +233,10 @@ class INFO_MT_curve_knots_add1(bpy.types.Menu):
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("curve.torus_knot_plus",
- text="Torus Knot Plus")
- layout.operator("curve.celtic_links",
- text="Celtic Links")
- layout.operator("mesh.add_braid",
- text="Braid Knot")
+ layout.operator("curve.torus_knot_plus", text="Torus Knot Plus")
+ layout.operator("curve.celtic_links", text="Celtic Links")
+ layout.operator("mesh.add_braid", text="Braid Knot")
# Define "Extras" menus
@@ -166,31 +244,38 @@ def menu_func(self, context):
if context.mode != 'OBJECT':
# fix in D2142 will allow to work in EDIT_CURVE
return None
+
layout = self.layout
- layout.operator_menu_enum("mesh.curveaceous_galore",
- "ProfileType",
- icon='CURVE_DATA')
- layout.operator_menu_enum("curve.spirals",
- "spiral_type",
- icon='CURVE_DATA')
+ layout.operator_menu_enum("mesh.curveaceous_galore", "ProfileType",
+ icon='CURVE_DATA')
+ layout.operator_menu_enum("curve.spirals", "spiral_type",
+ icon='CURVE_DATA')
layout.separator()
+
layout.menu("curve_knots_add", text="Knots", icon='CURVE_DATA')
layout.separator()
- layout.operator("curve.curlycurve", text="Curly Curve", icon='CURVE_DATA')
- layout.menu("OBJECT_MT_bevel_taper_curve_menu", text="Bevel/Taper", icon='CURVE_DATA')
+ layout.operator("curve.curlycurve", text="Curly Curve",
+ icon='CURVE_DATA')
+ layout.menu("OBJECT_MT_bevel_taper_curve_menu", text="Bevel/Taper",
+ icon='CURVE_DATA')
def menu_surface(self, context):
- layout = self.layout
self.layout.separator()
if context.mode == 'EDIT_SURFACE':
- self.layout.operator("curve.smooth_x_times", text="Special Smooth", icon="MOD_CURVE")
+ self.layout.operator("curve.smooth_x_times",
+ text="Special Smooth", icon="MOD_CURVE")
elif context.mode == 'OBJECT':
- self.layout.operator("object.add_surface_wedge", text="Wedge", icon="MOD_CURVE")
- self.layout.operator("object.add_surface_cone", text="Cone", icon="MOD_CURVE")
- self.layout.operator("object.add_surface_star", text="Star", icon="MOD_CURVE")
- self.layout.operator("object.add_surface_plane", text="Plane", icon="MOD_CURVE")
+ self.layout.operator("object.add_surface_wedge", text="Wedge",
+ icon="SURFACE_DATA")
+ self.layout.operator("object.add_surface_cone", text="Cone",
+ icon="SURFACE_DATA")
+ self.layout.operator("object.add_surface_star", text="Star",
+ icon="SURFACE_DATA")
+ self.layout.operator("object.add_surface_plane", text="Plane",
+ icon="SURFACE_DATA")
+
def register():
add_curve_simple.register()
@@ -201,8 +286,8 @@ def register():
# Add "Extras" menu to the "Add Surface" menu
bpy.types.INFO_MT_surface_add.append(menu_surface)
-def unregister():
+def unregister():
add_curve_simple.unregister()
# Remove "Extras" menu from the "Add Curve" menu.
bpy.types.INFO_MT_curve_add.remove(menu_func)
@@ -211,5 +296,6 @@ def unregister():
bpy.utils.unregister_module(__name__)
+
if __name__ == "__main__":
register()