diff --git a/cura/Arranging/Arranger.py b/cura/Arranging/Arranger.py index 684fa1258b..fd93ab1846 100644 --- a/cura/Arranging/Arranger.py +++ b/cura/Arranging/Arranger.py @@ -5,7 +5,7 @@ if TYPE_CHECKING: class Arranger: - def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = True) -> Tuple["GroupedOperation", int]: + def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = False) -> Tuple["GroupedOperation", int]: """ Find placement for a set of scene nodes, but don't actually move them just yet. :param add_new_nodes_in_scene: Whether to create new scene nodes before applying the transformations and rotations @@ -16,7 +16,7 @@ class Arranger: """ raise NotImplementedError - def arrange(self, add_new_nodes_in_scene: bool = True) -> bool: + def arrange(self, add_new_nodes_in_scene: bool = False) -> bool: """ Find placement for a set of scene nodes, and move them by using a single grouped operation. :param add_new_nodes_in_scene: Whether to create new scene nodes before applying the transformations and rotations diff --git a/cura/Arranging/GridArrange.py b/cura/Arranging/GridArrange.py index 82ce7bc224..23c14e248b 100644 --- a/cura/Arranging/GridArrange.py +++ b/cura/Arranging/GridArrange.py @@ -64,7 +64,7 @@ class GridArrange(Arranger): self._allowed_grid_idx = self._build_plate_grid_ids.difference(self._fixed_nodes_grid_ids) - def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = True) -> Tuple[GroupedOperation, int]: + def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = False) -> Tuple[GroupedOperation, int]: # Find the sequence in which items are placed coord_build_plate_center_x = self._build_volume_bounding_box.width * 0.5 + self._build_volume_bounding_box.left coord_build_plate_center_y = self._build_volume_bounding_box.depth * 0.5 + self._build_volume_bounding_box.back @@ -77,7 +77,8 @@ class GridArrange(Arranger): grouped_operation = GroupedOperation() for grid_id, node in zip(sequence, self._nodes_to_arrange): - grouped_operation.addOperation(AddSceneNodeOperation(node, scene_root)) + if add_new_nodes_in_scene: + grouped_operation.addOperation(AddSceneNodeOperation(node, scene_root)) grid_x, grid_y = grid_id operation = self._moveNodeOnGrid(node, grid_x, grid_y) grouped_operation.addOperation(operation) diff --git a/cura/Arranging/Nest2DArrange.py b/cura/Arranging/Nest2DArrange.py index ea45fe0b8e..bad57c5045 100644 --- a/cura/Arranging/Nest2DArrange.py +++ b/cura/Arranging/Nest2DArrange.py @@ -124,7 +124,7 @@ class Nest2DArrange(Arranger): return found_solution_for_all, node_items - def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = True) -> Tuple[GroupedOperation, int]: + def createGroupOperationForArrange(self, add_new_nodes_in_scene: bool = False) -> Tuple[GroupedOperation, int]: scene_root = Application.getInstance().getController().getScene().getRoot() found_solution_for_all, node_items = self.findNodePlacement() diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 29f50d88b2..9a61a1c4f0 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -243,7 +243,7 @@ class CuraActions(QObject): # Add the new nodes to the scene, and arrange them arranger = GridArrange(nodes, application.getBuildVolume(), fixed_nodes) - group_operation, not_fit_count = arranger.createGroupOperationForArrange() + group_operation, not_fit_count = arranger.createGroupOperationForArrange(add_new_nodes_in_scene = True) group_operation.push() # deselect currently selected nodes, and select the new nodes