diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 5c6769bc7d..124cff73d8 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1236,7 +1236,7 @@ class MachineManager(QObject): ## Given a printer definition name, select the right machine instance. In case it doesn't exist, create a new # instance with the same network key. @pyqtSlot(str) - def switchPrinterType(self, machine_name: str): + def switchPrinterType(self, machine_name: str) -> None: # Don't switch if the user tries to change to the same type of printer if self.activeMachineDefinitionName == machine_name: return @@ -1247,6 +1247,8 @@ class MachineManager(QObject): # If there is no machine, then create a new one and set it to the non-hidden instance if not new_machine: new_machine = CuraStackBuilder.createMachine(machine_definition_id + "_sync", machine_definition_id) + if not new_machine: + return new_machine.addMetaDataEntry("um_network_key", self.activeMachineNetworkKey) new_machine.addMetaDataEntry("connect_group_name", self.activeMachineNetworkGroupName) new_machine.addMetaDataEntry("hidden", False) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 76afb6b47e..9375e5d6ee 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -606,9 +606,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader): machine_name = self._container_registry.uniqueName(self._machine_info.name) global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id) - extruder_stack_dict = global_stack.extruders + if global_stack: #Only switch if creating the machine was successful. + extruder_stack_dict = global_stack.extruders - self._container_registry.addContainer(global_stack) + self._container_registry.addContainer(global_stack) else: # Find the machine global_stack = self._container_registry.findContainerStacks(name = self._machine_info.name, type = "machine")[0]