From e866c03b50481af10bb89748002b435596eba392 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 3 Apr 2017 11:12:20 +0200 Subject: [PATCH] Fixed multiplyObject group. CURA-3239 --- cura/Arrange.py | 2 +- cura/CuraApplication.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cura/Arrange.py b/cura/Arrange.py index 303d0c6804..6437532b21 100755 --- a/cura/Arrange.py +++ b/cura/Arrange.py @@ -143,7 +143,7 @@ class Arrange: Logger.log("d", "Current buildplate: \n%s" % str(arranger._occupied[::10, ::10])) return arranger - ## Find placement for a node and place it + ## Find placement for a node (using offset shape) and place it (using hull shape) # def findNodePlacements(self, node, offset_shape_arr, hull_shape_arr, count = 1, step = 1): # offset_shape_arr, hull_shape_arr, arranger -> nodes, arranger diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index e34d02a704..7610ca5302 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -856,17 +856,17 @@ class CuraApplication(QtApplication): if not node and object_id != 0: # Workaround for tool handles overlapping the selected object node = Selection.getSelectedObject(0) + current_node = node + # Find the topmost group + while current_node.getParent() and current_node.getParent().callDecoration("isGroup"): + current_node = current_node.getParent() + root = self.getController().getScene().getRoot() arranger = Arrange.create(scene_root = root) - offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = min_offset) - nodes = arranger.findNodePlacements(node, offset_shape_arr, hull_shape_arr, count = count) + offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(current_node, min_offset = min_offset) + nodes = arranger.findNodePlacements(current_node, offset_shape_arr, hull_shape_arr, count = count) if nodes: - current_node = node - # Find the topmost group - while current_node.getParent() and current_node.getParent().callDecoration("isGroup"): - current_node = current_node.getParent() - op = GroupedOperation() for new_node in nodes: op.addOperation(AddSceneNodeOperation(new_node, current_node.getParent()))