[Bf-extensions-cvs] [7ba05c9] origin: Adding a script 'add_dimension' v3.9.3 to the repository
cwolf3d
noreply at git.blender.org
Sun May 17 20:11:36 CEST 2015
Commit: 7ba05c9adff53d793126518bbec4d2c41ab5ff6c
Author: cwolf3d
Date: Sun May 17 20:45:57 2015 +0300
Branches: origin
https://developer.blender.org/rBAC7ba05c9adff53d793126518bbec4d2c41ab5ff6c
Adding a script 'add_dimension' v3.9.3 to the repository
===================================================================
A add_dimension.py
===================================================================
diff --git a/add_dimension.py b/add_dimension.py
new file mode 100644
index 0000000..5c24a4e
--- /dev/null
+++ b/add_dimension.py
@@ -0,0 +1,3266 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and / or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+bl_info = {
+ 'name': 'Dimension',
+ 'author': 'Spivak Vladimir (http://cwolf3d.korostyshev.net)',
+ 'version': (3, 9, 3),
+ 'blender': (2, 7, 4),
+ 'location': 'View3D > Add > Curve',
+ 'description': 'Adds Dimension',
+ 'warning': '', # used for warning icon and text in addons panel
+ 'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Curve/Dimension',
+ 'tracker_url': 'http://developer.blender.org/T37151',
+ 'category': 'Add Curve'}
+
+
+##------------------------------------------------------------
+#### import modules
+import bpy
+from bpy.props import *
+from mathutils import *
+from math import *
+from bpy.app.handlers import persistent
+
+# Add a TextCurve
+def addText(string = '', loc = ((0, 0, 0)), textsize = 1, align = 'CENTER', offset_y = 0, font = ''):
+
+ tcu = bpy.data.curves.new(string + 'Data', 'FONT')
+ text = bpy.data.objects.new(string + 'Text', tcu)
+ tcu.body = string
+ tcu.align = align
+ tcu.size = textsize
+ tcu.offset_y = offset_y
+ if font == '':
+ fnt = bpy.data.fonts[0]
+ else:
+ fnt = bpy.data.fonts.load(font)
+ tcu.font = fnt
+ text.location = loc
+ bpy.context.scene.objects.link(text)
+
+ return text
+
+##------------------------------------------------------------
+# Dimension: Linear-1
+def Linear1(width = 2, length = 2, dsize = 1, depth = 0.1, center = False, arrow = 'Arrow1', arrowdepth = 0.1, arrowlength = 0.25):
+
+ newpoints = []
+
+ w = 1
+ if width < 0:
+ w = -1
+ l = 1
+ if length < 0:
+ l = -1
+
+ if center:
+ center1 = w * depth / 2
+ center2 = w * depth / 2
+ else:
+ center1 = 0
+ center2 = w * depth
+
+ if arrow == 'Arrow1':
+ newpoints.append([-center1, 0, 0]) #1
+ newpoints.append([-center1, length, 0]) #2
+ newpoints.append([-center1, length + l * dsize, 0]) #3
+ newpoints.append([center2, length + l * dsize, 0]) #4
+ newpoints.append([center2, length + l * dsize / 2 + l * depth / 100, 0]) #5
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2 + l * arrowdepth + l * depth / 2, 0]) #6
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2 + l * depth / 2, 0]) #7
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2 + l * depth / 2, 0]) #8
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2 + l * arrowdepth + l * depth / 2, 0]) #9
+ newpoints.append([width-center2, length + l * dsize / 2 + l * depth / 100, 0]) #10
+ newpoints.append([width-center2, length + l * dsize, 0]) #11
+ newpoints.append([width + center1, length + l * dsize, 0]) #12
+ newpoints.append([width + center1, length, 0]) #13
+ newpoints.append([width + center1, 0, 0]) #14
+ newpoints.append([width-center2, 0, 0]) #15
+ newpoints.append([width-center2, length, 0]) #16
+ newpoints.append([width-center2, length + l * dsize / 2-l * depth / 100, 0]) #17
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2-l * arrowdepth-l * depth / 2, 0]) #18
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2-l * depth / 2, 0]) #19
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2-l * depth / 2, 0]) #20
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2-l * arrowdepth-l * depth / 2, 0]) #21
+ newpoints.append([center2, length + l * dsize / 2-l * depth / 100, 0]) #22
+ newpoints.append([center2, length, 0]) #23
+ newpoints.append([center2, 0, 0]) #24
+
+ elif arrow == 'Arrow2':
+ newpoints.append([-center1, 0, 0]) #1
+ newpoints.append([-center1, length, 0]) #2
+ newpoints.append([-center1, length + l * dsize, 0]) #3
+ newpoints.append([center2, length + l * dsize, 0]) #4
+ newpoints.append([center2, length + l * dsize / 2 + l * depth / 100, 0]) #5
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2 + l * arrowdepth + l * depth / 2, 0]) #6
+ newpoints.append([center2 + w * arrowlength * 3 / 4, length + l * dsize / 2 + l * depth / 2, 0]) #7
+ newpoints.append([width-center2-w * arrowlength * 3 / 4, length + l * dsize / 2 + l * depth / 2, 0]) #8
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2 + l * arrowdepth + l * depth / 2, 0]) #9
+ newpoints.append([width-center2, length + l * dsize / 2 + l * depth / 100, 0]) #10
+ newpoints.append([width-center2, length + l * dsize, 0]) #11
+ newpoints.append([width + center1, length + l * dsize, 0]) #12
+ newpoints.append([width + center1, length, 0]) #13
+ newpoints.append([width + center1, 0, 0]) #14
+ newpoints.append([width-center2, 0, 0]) #15
+ newpoints.append([width-center2, length, 0]) #16
+ newpoints.append([width-center2, length + l * dsize / 2-l * depth / 100, 0]) #17
+ newpoints.append([width-center2-w * arrowlength, length + l * dsize / 2-l * arrowdepth-l * depth / 2, 0]) #18
+ newpoints.append([width-center2-w * arrowlength * 3 / 4, length + l * dsize / 2-l * depth / 2, 0]) #19
+ newpoints.append([center2 + w * arrowlength * 3 / 4, length + l * dsize / 2-l * depth / 2, 0]) #20
+ newpoints.append([center2 + w * arrowlength, length + l * dsize / 2-l * arrowdepth-l * depth / 2, 0]) #21
+ newpoints.append([center2, length + l * dsize / 2-l * depth / 100, 0]) #22
+ newpoints.append([center2, length, 0]) #23
+ newpoints.append([center2, 0, 0]) #24
+
+ elif arrow == 'Serifs1':
+ b = sqrt(depth * depth / 2)
+ x = sin(radians(45)) * arrowlength * w
+ y = cos(radians(45)) * arrowlength * l
+ newpoints.append([-center1, 0, 0]) #1
+ newpoints.append([-center1, length, 0]) #2
+ newpoints.append([-center1, length + l * dsize / 2-l * depth / 2-l * b, 0]) #3
+ newpoints.append([-center1-x, length + l * dsize / 2-l * depth / 2-l * b-y, 0]) #4
+ newpoints.append([-center1-w * b-x, length + l * dsize / 2-l * depth / 2-y, 0]) #5
+ newpoints.append([-center1, length + l * dsize / 2 + l * depth / 2, 0]) #9
+ newpoints.append([-center1, length + l * dsize, 0]) #10
+ newpoints.append([center2, length + l * dsize, 0]) #11
+ newpoints.append([center2, length + l * dsize / 2 + l * depth / 2 + l * b, 0]) #12
+ newpoints.append([center2 + x, length + l * dsize / 2 + l * depth / 2 + l * b + y, 0]) #13
+ newpoints.append([center2 + w * b + x, length + l * dsize / 2 + l * depth / 2 + y, 0]) #14
+ newpoints.append([center2 + w * b, length + l * dsize / 2 + l * depth / 2, 0]) #15
+ newpoints.append([width-center2, length + l * dsize / 2 + l * depth / 2, 0]) #16
+ newpoints.append([width-center2, length + l * dsize, 0]) #17
+ newpoints.append([width + center1, length + l * dsize, 0]) #18
+ newpoints.append([width + center1, length + l * dsize / 2 + l * depth / 2 + l * b, 0]) #19
+ newpoints.append([width + center1 + x, length + l * dsize / 2 + l * depth / 2 + l * b + y, 0]) #20
+ newpoints.append([width + center1 + w * b + x, length + l * dsize / 2 + l * depth / 2 + y, 0]) #21
+ newpoints.append([width + center1, length + l * dsize / 2-l * depth / 2, 0]) #25
+ newpoints.append([width + center1, length, 0]) #26
+ newpoints.append([width + center1, 0, 0]) #27
+ newpoints.append([width-center2, 0, 0]) #28
+ newpoints.append([width-center2, length, 0]) #29
+ newpoints.append([width-center2, length + l * dsize / 2-l * depth / 2-l * b, 0]) #30
+ newpoints.append([width-center2-x, length + l * dsize / 2-l * depth / 2-l * b-y, 0]) #31
+ newpoints.append([width-center2-w * b-x, length + l * dsize / 2-l * depth / 2-y, 0]) #32
+ newpoints.append([width-center2-w * b, length + l * dsize / 2-l * depth / 2, 0]) #33
+ newpoints.append([center2, length + l * dsize / 2-l * depth / 2, 0]) #34
+ newpoints.append([center2, length, 0]) #35
+ newpoints.append([center2, 0, 0]) #36
+
+ elif arrow == 'Serifs2':
+ b = sqrt(depth * depth / 2)
+ x = sin(radians(45)) * arrowlength * w
+ y = cos(radians(45)) * arrowlength * l
+ newpoints.append([-center1, 0, 0]) #1
+ newpoints.append([-center1, length, 0]) #2
+ newpoints.append([-center1, length + l * dsize / 2-l * depth / 2-l * b, 0]) #3
+ newpoints.append([-center1-x, length + l * dsize / 2-l * depth / 2-l * b-y, 0]) #4
+ newpoints.append([-center1-w * b-x, length + l * dsize / 2-l * depth / 2-y, 0]) #5
+ newpoints.append([-center1-w * b, length + l * dsize / 2-l * depth / 2, 0]) #6
+ newpoints.append([-center1-w * dsize / 2, length + l * dsize / 2-l * depth / 2, 0]) #7
+ newpoints.append([-center1-w * dsize / 2, length + l * dsize / 2 + l * depth / 2, 0]) #8
+ newpoints.append([-center1, length + l * dsize / 2 + l * depth / 2, 0]) #9
+ newpoints.append([-center1, length + l * dsize, 0]) #10
+ newpoints.append([center2, length + l * dsize, 0]) #11
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list