Browse Source

Handle error due to missing quality_changes in 3MF loading

CURA-7078
Lipu Fei 5 years ago
parent
commit
dcaa10e409
1 changed files with 5 additions and 1 deletions
  1. 5 1
      plugins/3MFReader/ThreeMFWorkspaceReader.py

+ 5 - 1
plugins/3MFReader/ThreeMFWorkspaceReader.py

@@ -750,7 +750,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
 
             quality_changes_info = self._machine_info.quality_changes_info
             quality_changes_quality_type = quality_changes_info.global_info.parser["metadata"]["quality_type"]
-            quality_changes_intent_category_per_extruder = {position: info.parser["metadata"].get("intent_category", "default") for position, info in quality_changes_info.extruder_info_dict.items()}
+
+            # quality changes container may not be present for every extruder. Prepopulate the dict with default values.
+            quality_changes_intent_category_per_extruder = {position: "default" for position in self._machine_info.extruder_info_dict}
+            for position, info in quality_changes_info.extruder_info_dict.items():
+                quality_changes_intent_category_per_extruder[position] = info.parser["metadata"].get("intent_category", "default")
 
             quality_changes_name = quality_changes_info.name
             create_new = self._resolve_strategies.get("quality_changes") != "override"