Flatten equation in UFP settings export

This commit is contained in:
c.lamboo 2022-10-06 15:49:51 +02:00
parent cb6c19c1c6
commit ccf9a47f08

View file

@ -12,6 +12,7 @@ from PyQt6.QtCore import QBuffer
from UM.Application import Application
from UM.Logger import Logger
from UM.Settings.SettingFunction import SettingFunction
from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement.
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType
from UM.PluginRegistry import PluginRegistry # To get the g-code writer.
@ -233,11 +234,17 @@ class UFPWriter(MeshWriter):
# Add global user or quality changes
global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges)
for setting in global_flattened_changes.getAllKeys():
settings["global"]["changes"][setting] = str(global_flattened_changes.getProperty(setting, "value"))
value = global_flattened_changes.getProperty(setting, "value")
if isinstance(property_value, SettingFunction):
property_value = property_value(value)
settings["global"]["changes"][setting] = value
# Get global all settings values without user or quality changes
for setting in global_stack.getAllKeys():
settings["global"]["all_settings"][setting] = str(global_stack.getProperty(setting, "value"))
value = global_stack.getProperty(setting, "value")
if isinstance(property_value, SettingFunction):
property_value = property_value(value)
settings["global"]["all_settings"][setting] = value
for i, extruder in enumerate(global_stack.extruderList):
# Add extruder fields to settings dictionary
@ -249,10 +256,16 @@ class UFPWriter(MeshWriter):
# Add extruder user or quality changes
extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges)
for setting in extruder_flattened_changes.getAllKeys():
settings[f"extruder_{i}"]["changes"][setting] = str(extruder_flattened_changes.getProperty(setting, "value"))
value = extruder_flattened_changes.getProperty(setting, "value")
if isinstance(property_value, SettingFunction):
property_value = property_value(value)
settings[f"extruder_{i}"]["changes"][setting] = value
# Get extruder all settings values without user or quality changes
for setting in extruder.getAllKeys():
settings[f"extruder_{i}"]["all_settings"][setting] = str(extruder.getProperty(setting, "value"))
value = extruder.getProperty(setting, "value")
if isinstance(property_value, SettingFunction):
property_value = property_value(value)
settings[f"extruder_{i}"]["all_settings"][setting] = value
return settings