diff --git a/cura/Arrange.py b/cura/Arrange.py index 2ce9cfe344..5cbd2b25ad 100755 --- a/cura/Arrange.py +++ b/cura/Arrange.py @@ -53,7 +53,7 @@ class Arrange: points = copy.deepcopy(vertices._points) shape_arr = ShapeArray.fromPolygon(points, scale = scale) arranger.place(0, 0, shape_arr) - + # If a build volume was set, add the disallowed areas if Arrange.build_volume: disallowed_areas = Arrange.build_volume.getDisallowedAreas() diff --git a/cura/ArrangeObjectsJob.py b/cura/ArrangeObjectsJob.py index 17bc9b0333..3158fcc887 100755 --- a/cura/ArrangeObjectsJob.py +++ b/cura/ArrangeObjectsJob.py @@ -46,6 +46,7 @@ class ArrangeObjectsJob(Job): last_priority = start_priority last_size = None grouped_operation = GroupedOperation() + found_solution_for_all = True for idx, (size, node, offset_shape_arr, hull_shape_arr) in enumerate(nodes_arr): # For performance reasons, we assume that when a location does not fit, # it will also not fit for the next object (while what can be untrue). @@ -70,6 +71,7 @@ class ArrangeObjectsJob(Job): grouped_operation.addOperation(TranslateOperation(node, Vector(x, center_y, y), set_position = True)) else: Logger.log("d", "Arrange all: could not find spot!") + found_solution_for_all = False grouped_operation.addOperation(TranslateOperation(node, Vector(200, center_y, - idx * 20), set_position = True)) status_message.setProgress((idx + 1) / len(nodes_arr) * 100) @@ -78,3 +80,7 @@ class ArrangeObjectsJob(Job): grouped_operation.push() status_message.hide() + + 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()