diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index db25822654..c3e5390736 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -984,7 +984,9 @@ class CuraApplication(QtApplication): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) if not node.isSelectable(): continue # i.e. node with layer data - nodes.append(node) + # Skip nodes that are too big + if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: + nodes.append(node) self.arrange(nodes, fixed_nodes = []) ## Arrange Selection diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py old mode 100644 new mode 100755 index 870f165487..40dbc221d6 --- a/cura/MultiplyObjectsJob.py +++ b/cura/MultiplyObjectsJob.py @@ -47,13 +47,18 @@ class MultiplyObjectsJob(Job): root = scene.getRoot() arranger = Arrange.create(scene_root=root) - offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(current_node, min_offset=self._min_offset) + 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) + else: + node_too_big = True nodes = [] found_solution_for_all = True for i in range(self._count): # We do place the nodes one by one, as we want to yield in between. - node, solution_found = arranger.findNodePlacement(current_node, offset_shape_arr, hull_shape_arr) - if not solution_found: + if not node_too_big: + node, solution_found = arranger.findNodePlacement(current_node, offset_shape_arr, hull_shape_arr) + if node_too_big or not solution_found: found_solution_for_all = False new_location = node.getPosition() new_location = new_location.set(z = 100 - i * 20) @@ -72,4 +77,4 @@ class MultiplyObjectsJob(Job): if not found_solution_for_all: no_full_solution_message = Message(i18n_catalog.i18nc("@info:status", "Unable to find a location within the build volume for all objects")) - no_full_solution_message.show() \ No newline at end of file + no_full_solution_message.show()