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:
authorMartin Buerbaum <martin.buerbaum@gmx.at>2012-12-19 14:13:18 +0400
committerMartin Buerbaum <martin.buerbaum@gmx.at>2012-12-19 14:13:18 +0400
commitfa202a6e4c708084c1e6bea40558fe285da878aa (patch)
treeaabe9d83bedf3b30bc61050bc14363f4143e522a /space_view3d_panel_measure.py
parent8cb79fd3f44ecb5fa9e2260511b002a9c7b2d649 (diff)
* Measure Panel - Version 0.9.0
* Update for correct calculation of feet-inch (Patch by Alessandro Sala) * Upped precision for display to 5 digits (same as Blender)
Diffstat (limited to 'space_view3d_panel_measure.py')
-rw-r--r--space_view3d_panel_measure.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/space_view3d_panel_measure.py b/space_view3d_panel_measure.py
index 2d861301..22e30d85 100644
--- a/space_view3d_panel_measure.py
+++ b/space_view3d_panel_measure.py
@@ -27,7 +27,7 @@ bl_info = {
"author": "Buerbaum Martin (Pontiac), TNae (Normal patch)," \
" Benjamin Lauritzen (Loonsbury; Volume code)," \
" Alessandro Sala (patch: Units in 3D View)",
- "version": (0, 8, 9),
+ "version": (0, 9, 0),
"blender": (2, 6, 0),
"location": "View3D > Properties > Measure Panel",
"description": "Measure distances between objects",
@@ -82,7 +82,7 @@ from bpy_extras.mesh_utils import ngon_tessellate
# Precicion for display of float values.
-PRECISION = 4
+PRECISION = 5
# Name of the custom properties as stored in the scene.
COLOR_LOCAL = (1.0, 0.5, 0.0, 0.8)
@@ -102,6 +102,7 @@ LINE_WIDTH_DIST = 2
# and formatting options.
# Returned data is meant to be passed to formatDistance().
# Original by Alessandro Sala (Feb, 12th 2012)
+# Update by Alessandro Sala (Dec, 18th 2012)
def getUnitsInfo():
scale = bpy.context.scene.unit_settings.scale_length
unit_system = bpy.context.scene.unit_settings.system
@@ -110,9 +111,9 @@ def getUnitsInfo():
scale_steps = ((1000, 'km'), (1, 'm'), (1 / 100, 'cm'),
(1 / 1000, 'mm'), (1 / 1000000, '\u00b5m'))
elif unit_system == 'IMPERIAL':
- scale_steps = ((1760, 'mi'), (1, 'yd'), (1 / 3, '\''),
- (1 / 36, '"'), (1 / 36000, 'thou'))
- scale *= 1.0936133
+ scale_steps = ((5280, 'mi'), (1, '\''),
+ (1 / 12, '"'), (1 / 12000, 'thou'))
+ scale /= 0.3048 # BU to feet
else:
scale_steps = ((1, ' BU'),)
separate_units = False
@@ -123,13 +124,13 @@ def getUnitsInfo():
# Converts a distance from BU into the measuring system
# described by units_info.
# Original by Alessandro Sala (Feb, 12th 2012)
+# Update by Alessandro Sala (Dec, 18th 2012)
def convertDistance(val, units_info):
scale, scale_steps, separate_units = units_info
sval = val * scale
- rsval = round(sval, PRECISION)
idx = 0
while idx < len(scale_steps) - 1:
- if rsval >= scale_steps[idx][0]:
+ if sval >= scale_steps[idx][0]:
break
idx += 1
factor, suffix = scale_steps[idx]
@@ -138,14 +139,14 @@ def convertDistance(val, units_info):
dval = str(round(sval, PRECISION)) + suffix
else:
ival = int(sval)
- dval = str(ival) + suffix
+ dval = str(round(ival, PRECISION)) + suffix
fval = sval - ival
idx += 1
while idx < len(scale_steps):
fval *= scale_steps[idx - 1][0] / scale_steps[idx][0]
if fval >= 1:
dval += ' ' \
- + str(round(fval, 1)) \
+ + ("%.1f" % fval) \
+ scale_steps[idx][1]
break
idx += 1