From a9a533b61d5d90b3bb607cbe786d0079d3fff7e0 Mon Sep 17 00:00:00 2001 From: "j.delarago" Date: Wed, 16 Feb 2022 15:15:31 +0100 Subject: [PATCH 1/2] Duplicate modifier meshes for all objects in one at a time mode. CURA-8031 --- plugins/CuraEngineBackend/StartSliceJob.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 7e01e96b06..97871af8fc 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -205,6 +205,12 @@ class StartSliceJob(Job): # Get the objects in their groups to print. object_groups = [] if stack.getProperty("print_sequence", "value") == "one_at_a_time": + modifier_mesh_nodes = [] + + for node in DepthFirstIterator(self._scene.getRoot()): + if node.callDecoration("isNonPrintingMesh"): + modifier_mesh_nodes.append(node) + for node in OneAtATimeIterator(self._scene.getRoot()): temp_list = [] @@ -221,7 +227,7 @@ class StartSliceJob(Job): temp_list.append(child_node) if temp_list: - object_groups.append(temp_list) + object_groups.append(temp_list + modifier_mesh_nodes) Job.yieldThread() if len(object_groups) == 0: Logger.log("w", "No objects suitable for one at a time found, or no correct order found") From 61ba4426adc6faa9a813f2286fc61e8ba54b97fc Mon Sep 17 00:00:00 2001 From: "j.delarago" Date: Wed, 16 Feb 2022 16:05:43 +0100 Subject: [PATCH 2/2] Add check for build plate number to modifier mesh list. CURA-8031 --- plugins/CuraEngineBackend/StartSliceJob.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 97871af8fc..74e55ffe2d 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -208,7 +208,8 @@ class StartSliceJob(Job): modifier_mesh_nodes = [] for node in DepthFirstIterator(self._scene.getRoot()): - if node.callDecoration("isNonPrintingMesh"): + build_plate_number = node.callDecoration("getBuildPlateNumber") + if node.callDecoration("isNonPrintingMesh") and build_plate_number == self._build_plate_number: modifier_mesh_nodes.append(node) for node in OneAtATimeIterator(self._scene.getRoot()):