Do not slice a model if it is only one on a build plane and has setting from non_printing_mesh

CURA-4703
This commit is contained in:
Aleksei S 2017-12-13 11:58:59 +01:00
parent d70bd0ebc9
commit 5c5f08e9ca

View file

@ -131,12 +131,21 @@ class StartSliceJob(Job):
Logger.log("w", "No objects suitable for one at a time found, or no correct order found")
else:
temp_list = []
is_non_printing_mesh = False
for node in DepthFirstIterator(self._scene.getRoot()):
if type(node) is SceneNode and node.getMeshData() and node.getMeshData().getVertices() is not None:
if not getattr(node, "_outside_buildarea", False) or getattr(node, "_non_printing_mesh", False):
_non_printing_mesh = getattr(node, "_non_printing_mesh", False)
if not getattr(node, "_outside_buildarea", False) or _non_printing_mesh:
temp_list.append(node)
if _non_printing_mesh:
is_non_printing_mesh = True
Job.yieldThread()
#If list has one node and it has non printing settings then remove it from list
# otherwise CuraEngine will crash
if len(temp_list) == 1 and is_non_printing_mesh:
temp_list.clear()
if temp_list:
object_groups.append(temp_list)