[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