Просмотр исходного кода

Use correct material profile in extruder stack

The material profile is more specific inside a material profile if the machine has material quality profiles.

Contributes to issue CURA-844.
Ghostkeeper 8 лет назад
Родитель
Сommit
a0df0c76de

+ 5 - 3
plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py

@@ -73,13 +73,15 @@ class MachineInstance:
         config.set("general", "version", "2") # Hard-code version 2, since if this number changes the programmer MUST change this entire function.
 
         import VersionUpgrade21to22 # Import here to prevent circular dependencies.
+        has_machine_qualities = self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality()
         type_name = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._type_name)
         active_material = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_material_name)
         variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name)
+        variant_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariantForMaterials(self._variant_name, type_name)
         active_profile = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_profile_name)
-        if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles.
-            active_profile += "_" + active_material + "_" + variant #That means that the profile was split into multiple.
-        if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #The current settings profile is now machine-specific.
+        if has_machine_qualities: #This machine now has machine-quality profiles.
+            active_profile += "_" + active_material + "_" + variant
+            active_material += "_" + variant_materials #That means that the profile was split into multiple.
             current_settings = "empty" #The profile didn't know the definition ID when it was upgraded, so it will have been invalid. Sorry, your current settings are lost now.
         else:
             current_settings = self._name + "_current_settings"

+ 0 - 1
plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py

@@ -146,7 +146,6 @@ class Profile:
                     config_copy.read_dict(config) #Copy the config to a new ConfigParser instance.
                     variant_id_new_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariantForMaterials(variant_id, translated_machine)
                     config_copy.set("metadata", "material", "{material}_{variant}".format(material = material_id, variant = variant_id_new_materials))
-                    config_copy.set("general", "name", self._name + " " + material_id + " " + variant_id) #DEBUG
                     configs.append(config_copy)
         else:
             configs.append(config)