diff --git a/cura/Machines/QualityChangesGroup.py b/cura/Machines/QualityChangesGroup.py index ad320a7006..5ff5af3657 100644 --- a/cura/Machines/QualityChangesGroup.py +++ b/cura/Machines/QualityChangesGroup.py @@ -2,6 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application +from UM.ConfigurationErrorMessage import ConfigurationErrorMessage from .QualityGroup import QualityGroup @@ -13,14 +14,14 @@ class QualityChangesGroup(QualityGroup): def addNode(self, node: "QualityNode"): extruder_position = node.metadata.get("position") + + if extruder_position is None and self.node_for_global is not None or extruder_position in self.nodes_for_extruders: #We would be overwriting another node. + ConfigurationErrorMessage.getInstance().addFaultyContainers(node.metadata["id"]) + return + if extruder_position is None: #Then we're a global quality changes profile. - if self.node_for_global is not None: - raise RuntimeError("{group} tries to overwrite the existing node_for_global {original_global} with {new_global}".format(group = self, original_global = self.node_for_global, new_global = node)) self.node_for_global = node else: #This is an extruder's quality changes profile. - if extruder_position in self.nodes_for_extruders: - raise RuntimeError("%s tries to overwrite the existing nodes_for_extruders position [%s] %s with %s" % - (self, extruder_position, self.node_for_global, node)) self.nodes_for_extruders[extruder_position] = node def __str__(self) -> str: