[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4068] trunk/py/scripts/addons/ space_view3d_panel_measure.py: * Measure Panel - Version 0.9.0

Martin Buerbaum martin.buerbaum at gmx.at
Wed Dec 19 11:13:18 CET 2012


Revision: 4068
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4068
Author:   pontiac
Date:     2012-12-19 10:13:18 +0000 (Wed, 19 Dec 2012)
Log Message:
-----------
* 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)

Modified Paths:
--------------
    trunk/py/scripts/addons/space_view3d_panel_measure.py

Modified: trunk/py/scripts/addons/space_view3d_panel_measure.py
===================================================================
--- trunk/py/scripts/addons/space_view3d_panel_measure.py	2012-12-19 02:45:32 UTC (rev 4067)
+++ trunk/py/scripts/addons/space_view3d_panel_measure.py	2012-12-19 10:13:18 UTC (rev 4068)
@@ -27,7 +27,7 @@
     "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 @@
 
 
 # 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 @@
 # 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 @@
                 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 @@
 # 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 @@
                 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



More information about the Bf-extensions-cvs mailing list