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:
authormeta-androcto <meta.androcto1@gmail.com>2017-03-20 02:33:38 +0300
committermeta-androcto <meta.androcto1@gmail.com>2017-03-20 02:33:38 +0300
commit8e3bfa5506ea110fe6793401b53da17c61061167 (patch)
tree8e53f830a72b434928b07b99befe8762431a4ed3 /mesh_extra_tools/mesh_help.py
parent9007bcd10713e55168235e9e8420b17172674638 (diff)
initial commit mesh edit tools: T50680
Diffstat (limited to 'mesh_extra_tools/mesh_help.py')
-rw-r--r--mesh_extra_tools/mesh_help.py215
1 files changed, 215 insertions, 0 deletions
diff --git a/mesh_extra_tools/mesh_help.py b/mesh_extra_tools/mesh_help.py
new file mode 100644
index 00000000..7d06c40c
--- /dev/null
+++ b/mesh_extra_tools/mesh_help.py
@@ -0,0 +1,215 @@
+# gpl authors: lijenstina, meta-androcto
+
+# Note: this script contains the Help Operator used by the various functions
+# Usage: add a key string the dictionary with the list of strings to pass to labels in this file
+# and call the operator from the add-on UI draw function by passing the help_ids parameter
+# If the size of the pop-up if needed, define popup_size in the call by using varibles
+# Example (variable prop):
+# prop = layout.row("mesh.extra_tools_help")
+# prop.help_ids = "default"
+# prop.popup_size = 400
+
+
+import bpy
+from bpy.types import Operator
+from bpy.props import (
+ StringProperty,
+ IntProperty,
+ )
+
+
+class MESH_OT_extra_tools_help(Operator):
+ bl_idname = "mesh.extra_tools_help"
+ bl_label = ""
+ bl_options = {'REGISTER'}
+
+ help_ids = StringProperty(
+ name="ID of the Operator to display",
+ options={'HIDDEN'},
+ default="default"
+ )
+ popup_size = IntProperty(
+ name="Size of the Help Pop-up Menu",
+ default=350,
+ min=100,
+ max=600,
+ )
+
+ def draw(self, context):
+ layout = self.layout
+ pick_help = help_custom_draw(self.help_ids)
+
+ for line_text in pick_help:
+ layout.label(line_text)
+
+ def execute(self, context):
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ return context.window_manager.invoke_popup(self, width=self.popup_size)
+
+
+def help_custom_draw(identifier="default"):
+ # A table of lists containing the help text under an index key that is the script name
+ # If several returns are needed per file, add some suffix after the script name
+ # and call them separately
+ # In case nothing is passed from the UI call, the returned list is default
+ # If undefined one is passed, it will return a warning message
+ help_text = {"default": [
+ "This is a placeholder text",
+ "Please fill up the entries in the " + __name__ + " script",
+ ],
+ "random_vertices": [
+ "To use:",
+ "Make a selection or selection of Vertices",
+ "Randomize displaced positions",
+ "Note:",
+ "There is an option to use Vertex Weights for displacement",
+ "Before use, don't forget to assign after updating the Group Weight",
+ ],
+ "mesh_vertex_chamfer": [
+ "To use:",
+ "Make a selection or selection of vertices",
+ "Result is a triangle Chamfer, works on a single vertex",
+ "Note:",
+ "The difference to the vertex Bevel is that original geometry",
+ "(selected vertices) can be kept as an option",
+ "Limitation:",
+ "In some cases, may need to press F to fill the result",
+ ],
+ "mesh_filletplus": [
+ "To use:",
+ "Select two adjacent edges and press Fillet button",
+ "Limitation:",
+ "Works on a mesh whose all faces share the same normal",
+ "(Flat Surface - faces have the same direction)",
+ "Planes with already round corners can produce unsatisfactory results",
+ "Only boundary edges will be evaluated",
+ ],
+ "mesh_offset_edges": [
+ "To use:",
+ "Make a selection or selection of Edges",
+ "Extrude, rotate extrusions and more",
+ "Limitation:",
+ "Operates only on separate Edge loops selections",
+ "(i.e. Edge loops that are not connected by a selected edge)",
+ ],
+ "mesh_edge_roundifier": [
+ "To use:",
+ "Select a single or multiple Edges",
+ "Make Arcs with various parameters",
+ "Reference, Rotation, Scaling, Connection and Offset",
+ "Note:",
+ "The Mode - Reset button restores the default values",
+ ],
+ "mesh_edges_length": [
+ "To use:",
+ "Select a single or multiple Edges",
+ "Change length with various parameters",
+ "Limitation:",
+ "Does not operate on edges that share a vertex",
+ "If the selection wasn't done in Edge Selection mode,",
+ "the option Active will not work (due to Blender's limitation)",
+ ],
+ "mesh_to_wall": [
+ "To use:",
+ "Extrudes flat along edges",
+ "Adds depth on both sides of an edge wire",
+ "Limitation:",
+ "Works best on Flat surfaces i.e. Ground Plan like geometry",
+ ],
+ "mesh_mextrude_plus": [
+ "To use:",
+ "Make a selection of Faces",
+ "Extrude with Rotation, Scaling, Variation,",
+ "Randomization and Offset parameters",
+ "Limitation:",
+ "Works only with selections that enclose Faces",
+ "(i.e. all Edges or Vertices of a Face selected)",
+ ],
+ "mesh_extrude_and_reshape": [
+ "To use:",
+ "Extrude Face and merge Edge intersections,",
+ "between the mesh and the new Edges",
+ "Note:",
+ "If selected Vertices don't form Face they will be",
+ "still extruded in the same direction",
+ "Limitation:",
+ "Works only with the last selected face",
+ "(or all Edges or Vertices of a Face selected)",
+ ],
+ "face_inset_fillet": [
+ "To use:",
+ "Select one or multiple faces and inset",
+ "Inset square, circle or outside",
+ "Note:",
+ "Radius: use remove doubles to tidy joins",
+ "Out: select and use normals flip before extruding",
+ "Limitation:",
+ "Using the Out option, sometimes can lead to unsatisfactory results",
+ ],
+ "mesh_cut_faces": [
+ "To use:",
+ "Make a selection or selection of Faces",
+ "Some Functions work on a plane only",
+ "Limitation:",
+ "The selection must include at least two Faces with adjacent edges",
+ "(Selections not sharing edges will not work)",
+ ],
+ "split_solidify": [
+ "To use:",
+ "Make a selection or selection of Faces",
+ "Split Faces and Extrude results",
+ "Similar to a shatter/explode effect",
+ ],
+ "mesh_fastloop": [
+ "To use:",
+ "Activate the tool and hover over the mesh in the general area",
+ "for the loop and left click once to confirm the loop placement",
+ "Slide using the mouse to fine tune its position, left click to confirm",
+ "Repeat the operations if needed for new loops",
+ "Press Esc. twice to exit the tool",
+ "Limitation:",
+ "The tool has the same limitations as Loop Cut and Slide",
+ "In the Operator Panel, only the last loop can be tweaked",
+ ],
+ "mesh_pen_tool": [
+ "To use:",
+ "Press Ctrl + D key or click Draw button",
+ "To draw along x use SHIFT + MOUSEMOVE",
+ "To draw along y use ALT + MOUSEMOVE",
+ "Press Ctrl to toggle Extrude at Cursor tool",
+ "Right click to finish drawing or",
+ "Press Esc to cancel",
+ ],
+ "pkhg_faces": [
+ "To use:",
+ "Needs a Face Selection in Edit Mode",
+ "Select an option from Face Types drop down list",
+ "Extrude, rotate extrusions and more",
+ "Toggle Edit Mode after use",
+ "Note:",
+ "After using the operator, normals could need repair,",
+ "or Removing Doubles",
+ ],
+ }
+
+ if identifier in help_text:
+ return help_text[identifier]
+
+ return ["ERROR:", "Help Operator", "Undefined call to the Dictionary"]
+
+
+# register
+def register():
+ bpy.utils.register_module(__name__)
+ pass
+
+
+def unregister():
+ bpy.utils.unregister_module(__name__)
+ pass
+
+
+if __name__ == "__main__":
+ register()