From be8fc9f3f1c5eb2e7dcda6cae3a10c0762783ba4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 7 Mar 2018 19:59:06 +0100 Subject: [PATCH] CURA-4870 Manage the case when there is an empty material or variant in the printer and Cura needs to apply this configuration --- cura/Settings/MachineManager.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index de7a08a65a..767021e2df 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1032,13 +1032,22 @@ class MachineManager(QObject): position = str(extruder_configuration.position) variant_container_node = self._variant_manager.getVariantNode(self._global_container_stack.definition.getId(), extruder_configuration.hotendID) material_container_node = self._material_manager.getMaterialNodeByType(self._global_container_stack, extruder_configuration.hotendID,extruder_configuration.material.guid) - self._setVariantNode(position, variant_container_node) - self._setMaterial(position, material_container_node) + if variant_container_node: + self._setVariantNode(position, variant_container_node) + else: + self._global_container_stack.extruders[position].variant = self._empty_variant_container + + if material_container_node: + self._setMaterial(position, material_container_node) + else: + self._global_container_stack.extruders[position].material = self._empty_material_container self._updateMaterialWithVariant(position) if configuration.buildplateConfiguration is not None: global_variant_container_node = self._variant_manager.getBuildplateVariantNode(self._global_container_stack.definition.getId(), configuration.buildplateConfiguration) self._setGlobalVariant(global_variant_container_node) + else: + self._global_container_stack.variant = self._empty_variant_container self._updateQualityWithMaterial() @pyqtSlot("QVariant")