mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 11:17:49 -06:00
Fix loading material diameter and GUID from XML file
This commit is contained in:
parent
932a9d23f0
commit
944318d44a
1 changed files with 22 additions and 9 deletions
|
@ -426,6 +426,8 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
meta_data["base_file"] = self.id
|
meta_data["base_file"] = self.id
|
||||||
meta_data["status"] = "unknown" # TODO: Add material verfication
|
meta_data["status"] = "unknown" # TODO: Add material verfication
|
||||||
|
|
||||||
|
global_setting_values = {}
|
||||||
|
|
||||||
inherits = data.find("./um:inherits", self.__namespaces)
|
inherits = data.find("./um:inherits", self.__namespaces)
|
||||||
if inherits is not None:
|
if inherits is not None:
|
||||||
inherited = self._resolveInheritance(inherits.text)
|
inherited = self._resolveInheritance(inherits.text)
|
||||||
|
@ -455,6 +457,9 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
continue
|
continue
|
||||||
meta_data[tag_name] = entry.text
|
meta_data[tag_name] = entry.text
|
||||||
|
|
||||||
|
if tag_name in self.__material_metadata_setting_map:
|
||||||
|
global_setting_values[self.__material_metadata_setting_map[tag_name]] = entry.text
|
||||||
|
|
||||||
if "description" not in meta_data:
|
if "description" not in meta_data:
|
||||||
meta_data["description"] = ""
|
meta_data["description"] = ""
|
||||||
|
|
||||||
|
@ -467,18 +472,20 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
tag_name = _tag_without_namespace(entry)
|
tag_name = _tag_without_namespace(entry)
|
||||||
property_values[tag_name] = entry.text
|
property_values[tag_name] = entry.text
|
||||||
|
|
||||||
|
if tag_name in self.__material_properties_setting_map:
|
||||||
|
global_setting_values[self.__material_properties_setting_map[tag_name]] = entry.text
|
||||||
|
|
||||||
meta_data["approximate_diameter"] = round(float(property_values.get("diameter", 2.85))) # In mm
|
meta_data["approximate_diameter"] = round(float(property_values.get("diameter", 2.85))) # In mm
|
||||||
meta_data["properties"] = property_values
|
meta_data["properties"] = property_values
|
||||||
|
|
||||||
self.setDefinition(ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
|
self.setDefinition(ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
|
||||||
|
|
||||||
global_compatibility = True
|
global_compatibility = True
|
||||||
global_setting_values = {}
|
|
||||||
settings = data.iterfind("./um:settings/um:setting", self.__namespaces)
|
settings = data.iterfind("./um:settings/um:setting", self.__namespaces)
|
||||||
for entry in settings:
|
for entry in settings:
|
||||||
key = entry.get("key")
|
key = entry.get("key")
|
||||||
if key in self.__material_property_setting_map:
|
if key in self.__material_settings_setting_map:
|
||||||
global_setting_values[self.__material_property_setting_map[key]] = entry.text
|
global_setting_values[self.__material_settings_setting_map[key]] = entry.text
|
||||||
elif key in self.__unmapped_settings:
|
elif key in self.__unmapped_settings:
|
||||||
if key == "hardware compatible":
|
if key == "hardware compatible":
|
||||||
global_compatibility = parseBool(entry.text)
|
global_compatibility = parseBool(entry.text)
|
||||||
|
@ -497,8 +504,8 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
settings = machine.iterfind("./um:setting", self.__namespaces)
|
settings = machine.iterfind("./um:setting", self.__namespaces)
|
||||||
for entry in settings:
|
for entry in settings:
|
||||||
key = entry.get("key")
|
key = entry.get("key")
|
||||||
if key in self.__material_property_setting_map:
|
if key in self.__material_settings_setting_map:
|
||||||
machine_setting_values[self.__material_property_setting_map[key]] = entry.text
|
machine_setting_values[self.__material_settings_setting_map[key]] = entry.text
|
||||||
elif key in self.__unmapped_settings:
|
elif key in self.__unmapped_settings:
|
||||||
if key == "hardware compatible":
|
if key == "hardware compatible":
|
||||||
machine_compatibility = parseBool(entry.text)
|
machine_compatibility = parseBool(entry.text)
|
||||||
|
@ -560,8 +567,8 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
settings = hotend.iterfind("./um:setting", self.__namespaces)
|
settings = hotend.iterfind("./um:setting", self.__namespaces)
|
||||||
for entry in settings:
|
for entry in settings:
|
||||||
key = entry.get("key")
|
key = entry.get("key")
|
||||||
if key in self.__material_property_setting_map:
|
if key in self.__material_settings_setting_map:
|
||||||
hotend_setting_values[self.__material_property_setting_map[key]] = entry.text
|
hotend_setting_values[self.__material_settings_setting_map[key]] = entry.text
|
||||||
elif key in self.__unmapped_settings:
|
elif key in self.__unmapped_settings:
|
||||||
if key == "hardware compatible":
|
if key == "hardware compatible":
|
||||||
hotend_compatibility = parseBool(entry.text)
|
hotend_compatibility = parseBool(entry.text)
|
||||||
|
@ -591,7 +598,7 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
|
|
||||||
def _addSettingElement(self, builder, instance):
|
def _addSettingElement(self, builder, instance):
|
||||||
try:
|
try:
|
||||||
key = UM.Dictionary.findKey(self.__material_property_setting_map, instance.definition.key)
|
key = UM.Dictionary.findKey(self.__material_settings_setting_map, instance.definition.key)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -606,7 +613,7 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
return material_name
|
return material_name
|
||||||
|
|
||||||
# Map XML file setting names to internal names
|
# Map XML file setting names to internal names
|
||||||
__material_property_setting_map = {
|
__material_settings_setting_map = {
|
||||||
"print temperature": "default_material_print_temperature",
|
"print temperature": "default_material_print_temperature",
|
||||||
"heated bed temperature": "material_bed_temperature",
|
"heated bed temperature": "material_bed_temperature",
|
||||||
"standby temperature": "material_standby_temperature",
|
"standby temperature": "material_standby_temperature",
|
||||||
|
@ -618,6 +625,12 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
__unmapped_settings = [
|
__unmapped_settings = [
|
||||||
"hardware compatible"
|
"hardware compatible"
|
||||||
]
|
]
|
||||||
|
__material_properties_setting_map = {
|
||||||
|
"diameter": "material_diameter"
|
||||||
|
}
|
||||||
|
__material_metadata_setting_map = {
|
||||||
|
"GUID": "material_guid"
|
||||||
|
}
|
||||||
|
|
||||||
# Map XML file product names to internal ids
|
# Map XML file product names to internal ids
|
||||||
# TODO: Move this to definition's metadata
|
# TODO: Move this to definition's metadata
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue