diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 4588982bf2..c83ffb655d 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -154,6 +154,8 @@ class StartSliceJob(Job): if stack.getProperty("machine_extruder_count", "value") > 1: for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): self._buildExtruderMessage(extruder_stack) + else: + self._buildExtruderMessageFromGlobalStack(stack) for group in object_groups: group_message = self._slice_message.addRepeatedMessage("object_lists") @@ -226,6 +228,19 @@ class StartSliceJob(Job): setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() + ## Create extruder message from global stack + def _buildExtruderMessageFromGlobalStack(self, stack): + message = self._slice_message.addRepeatedMessage("extruders") + + for key in stack.getAllKeys(): + # Do not send settings that are not settable_per_extruder. + if not stack.getProperty(key, "settable_per_extruder"): + continue + setting = message.getMessage("settings").addRepeatedMessage("settings") + setting.name = key + setting.value = str(stack.getProperty(key, "value")).encode("utf-8") + Job.yieldThread() + ## Sends all global settings to the engine. # # The settings are taken from the global stack. This does not include any