[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4368] contrib/py/scripts/addons/ object_print3d_utils: print cm3 for volume and cm2 for area.
Campbell Barton
ideasman42 at gmail.com
Tue Mar 12 19:20:42 CET 2013
Revision: 4368
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4368
Author: campbellbarton
Date: 2013-03-12 18:20:42 +0000 (Tue, 12 Mar 2013)
Log Message:
-----------
print cm3 for volume and cm2 for area.
Modified Paths:
--------------
contrib/py/scripts/addons/object_print3d_utils/mesh_helpers.py
contrib/py/scripts/addons/object_print3d_utils/operators.py
Modified: contrib/py/scripts/addons/object_print3d_utils/mesh_helpers.py
===================================================================
--- contrib/py/scripts/addons/object_print3d_utils/mesh_helpers.py 2013-03-12 14:17:13 UTC (rev 4367)
+++ contrib/py/scripts/addons/object_print3d_utils/mesh_helpers.py 2013-03-12 18:20:42 UTC (rev 4368)
@@ -189,7 +189,7 @@
def bmesh_check_thick_object(obj, thickness):
-
+
import bpy
# Triangulate
Modified: contrib/py/scripts/addons/object_print3d_utils/operators.py
===================================================================
--- contrib/py/scripts/addons/object_print3d_utils/operators.py 2013-03-12 14:17:13 UTC (rev 4367)
+++ contrib/py/scripts/addons/object_print3d_utils/operators.py 2013-03-12 18:20:42 UTC (rev 4368)
@@ -36,6 +36,16 @@
from . import report
+def clean_float(text):
+ # strip trailing zeros: 0.000 -> 0.0
+ index = text.rfind(".")
+ if index != -1:
+ index += 2
+ head, tail = text[:index], text[index:]
+ tail = tail.rstrip("0")
+ text = head + tail
+ return text
+
# ---------
# Mesh Info
@@ -45,16 +55,22 @@
bl_label = "Print3D Info Volume"
def execute(self, context):
+ scene = context.scene
+ unit = scene.unit_settings
+ scale = 1.0 if unit.system == 'NONE' else unit.scale_length
obj = context.active_object
bm = mesh_helpers.bmesh_copy_from_object(obj)
- area = mesh_helpers.bmesh_calc_volume(bm)
+ volume = mesh_helpers.bmesh_calc_volume(bm)
bm.free()
-
- # TODO, units!
- report.update(("Volume: %.4f" % area,
- None))
+ info = []
+ info.append(("Volume: %s³" % clean_float("%.4f" % volume),
+ None))
+ info.append(("%s cm³" % clean_float("%.4f" % ((volume * scale) / (0.01 * 0.01 * 0.01) )),
+ None))
+
+ report.update(*info)
return {'FINISHED'}
@@ -64,16 +80,20 @@
bl_label = "Print3D Info Area"
def execute(self, context):
+ scene = context.scene
+ unit = scene.unit_settings
+ scale = 1.0 if unit.system == 'NONE' else unit.scale_length
obj = context.active_object
bm = mesh_helpers.bmesh_copy_from_object(obj)
area = mesh_helpers.bmesh_calc_area(bm)
bm.free()
-
- # TODO, units!
+
info = []
- info.append(("Area: %.4f" % area,
+ info.append(("Area: %s²" % clean_float("%.4f" % area),
None))
+ info.append(("%s cm²" % clean_float("%.4f" % ((area * scale) / (0.01 * 0.01))),
+ None))
report.update(*info)
return {'FINISHED'}
@@ -331,7 +351,7 @@
else:
return {'CANCELLED'}
-
+
class Print3DCleanThin(Operator):
"""Ensure minimum thickness"""
bl_idname = "mesh.print3d_clean_thin"
@@ -384,7 +404,7 @@
try:
for i in bm_array:
- elems[i].select_set(True)
+ elems[i].select_set(True)
except:
# possible arrays are out of sync
self.report({'WARNING'}, "Report is out of date, re-run check")
More information about the Bf-extensions-cvs
mailing list