diff options
author | fieldOfView <aldo@fieldofview.com> | 2018-03-23 18:35:36 +0300 |
---|---|---|
committer | fieldOfView <aldo@fieldofview.com> | 2018-03-23 18:35:36 +0300 |
commit | 78b49e8400b62472c322e2b755482372fdf57588 (patch) | |
tree | e61d9689e734b1a5141b2883c3e2f874e75d5d62 /cura/MultiplyObjectsJob.py | |
parent | 977eb8c94d3364b98b27582700942884bfce8b3a (diff) |
When multiplying a parented node, multiply the parent instead (like groups)
Diffstat (limited to 'cura/MultiplyObjectsJob.py')
-rw-r--r-- | cura/MultiplyObjectsJob.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py index b9f37ec6f8..3444da249f 100644 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -32,14 +32,19 @@ class MultiplyObjectsJob(Job): root = scene.getRoot() arranger = Arrange.create(scene_root=root) + processed_nodes = [] nodes = [] for node in self._objects: # If object is part of a group, multiply group current_node = node - while current_node.getParent() and current_node.getParent().callDecoration("isGroup"): + while current_node.getParent() and (current_node.getParent().callDecoration("isGroup") or current_node.getParent().callDecoration("isSliceable")): current_node = current_node.getParent() + if current_node in processed_nodes: + continue + processed_nodes.append(current_node) + node_too_big = False if node.getBoundingBox().width < 300 or node.getBoundingBox().depth < 300: offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(current_node, min_offset=self._min_offset) |