[Bf-extensions-cvs] [258c32a] master: Fix T37555: Update 3D toolbox for changes to the BMesh API.
Campbell Barton
noreply at git.blender.org
Wed Nov 20 19:02:14 CET 2013
Commit: 258c32a95672b532bd383fc6ca464127381ae651
Author: Campbell Barton
Date: Thu Nov 21 04:59:05 2013 +1100
http://developer.blender.org/rBA258c32a95672b532bd383fc6ca464127381ae651
Fix T37555: Update 3D toolbox for changes to the BMesh API.
===================================================================
M object_print3d_utils/mesh_helpers.py
M object_print3d_utils/operators.py
===================================================================
diff --git a/object_print3d_utils/mesh_helpers.py b/object_print3d_utils/mesh_helpers.py
index 4996ca6..450e238 100644
--- a/object_print3d_utils/mesh_helpers.py
+++ b/object_print3d_utils/mesh_helpers.py
@@ -54,7 +54,7 @@ def bmesh_copy_from_object(obj, transform=True, triangulate=True, apply_modifier
bm.transform(obj.matrix_world)
if triangulate:
- bmesh.ops.triangulate(bm, faces=bm.faces, use_beauty=True)
+ bmesh.ops.triangulate(bm, faces=bm.faces)
return bm
@@ -103,6 +103,9 @@ def bmesh_check_self_intersect_object(obj):
"""
import bpy
+ if not obj.data.polygons:
+ return array.array('i', ())
+
# Heres what we do!
#
# * Take original Mesh.
@@ -115,7 +118,7 @@ def bmesh_check_self_intersect_object(obj):
# Triangulate
bm = bmesh_copy_from_object(obj, transform=False, triangulate=False)
face_map_index_org = {f: i for i, f in enumerate(bm.faces)}
- ret = bmesh.ops.triangulate(bm, faces=bm.faces, use_beauty=False)
+ ret = bmesh.ops.triangulate(bm, faces=bm.faces)
face_map = ret["face_map"]
# map new index to original index
face_map_index = {i: face_map_index_org[face_map.get(f, f)] for i, f in enumerate(bm.faces)}
@@ -196,7 +199,7 @@ def bmesh_check_thick_object(obj, thickness):
bm = bmesh_copy_from_object(obj, transform=True, triangulate=False)
# map original faces to their index.
face_index_map_org = {f: i for i, f in enumerate(bm.faces)}
- ret = bmesh.ops.triangulate(bm, faces=bm.faces, use_beauty=False)
+ ret = bmesh.ops.triangulate(bm, faces=bm.faces)
face_map = ret["face_map"]
del ret
# old edge -> new mapping
diff --git a/object_print3d_utils/operators.py b/object_print3d_utils/operators.py
index 7548d16..7ebf595 100644
--- a/object_print3d_utils/operators.py
+++ b/object_print3d_utils/operators.py
@@ -543,6 +543,10 @@ class Print3DScaleToVolume(Operator):
volume = sum(calc_volume(obj) for obj in context.selected_editable_objects
if obj.type == 'MESH')
+ if volume == 0.0:
+ self.report({'WARNING'}, "Object has zero volume")
+ return {'CANCELLED'}
+
self.volume_init = self.volume = abs(volume)
wm = context.window_manager
@@ -582,12 +586,17 @@ class Print3DScaleToBounds(Operator):
if context.mode == 'EDIT_MESH':
length, axis = calc_length([Vector(v) * obj.matrix_world
- for v in context.edit_object.bound_box])
+ for obj in [context.edit_object]
+ for v in obj.bound_box])
else:
length, axis = calc_length([Vector(v) * obj.matrix_world
for obj in context.selected_editable_objects
if obj.type == 'MESH' for v in obj.bound_box])
+ if length == 0.0:
+ self.report({'WARNING'}, "Object has zero bounds")
+ return {'CANCELLED'}
+
self.length_init = self.length = length
self.axis_init = axis
More information about the Bf-extensions-cvs
mailing list