From de7f32da195858805f399aeececa4c89c6959ee8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 13:25:51 +0200 Subject: [PATCH] Convert global_inherits_stack to int before slicing Sometimes it was accidentally converted to a float when it passes through Javascript. Contributes to issue CURA-2055. --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 5b948c90ab..fc9fd05b44 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -227,7 +227,7 @@ class StartSliceJob(Job): # global_inherits_stack property. def _buildGlobalInheritsStackMessage(self, stack): for key in stack.getAllKeys(): - extruder = int(stack.getProperty(key, "global_inherits_stack")) + extruder = int(round(float(stack.getProperty(key, "global_inherits_stack")))) if extruder >= 0: #Set to a specific extruder. setting_extruder = self._slice_message.addRepeatedMessage("global_inherits_stack") setting_extruder.name = key diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index a580382845..e487870d8a 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -62,7 +62,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. - if int(stack_nr) >= 0: #Only if it defines an extruder stack. + if float(stack_nr) >= 0: #Only if it defines an extruder stack. extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) settings.addInstance(new_instance)