|
@@ -4,7 +4,9 @@
|
|
from UM.Mesh.MeshWriter import MeshWriter
|
|
from UM.Mesh.MeshWriter import MeshWriter
|
|
from UM.Logger import Logger
|
|
from UM.Logger import Logger
|
|
from UM.Application import Application
|
|
from UM.Application import Application
|
|
|
|
+import UM.Settings.ContainerRegistry
|
|
|
|
|
|
|
|
+from cura.CuraApplication import CuraApplication
|
|
from cura.Settings.ExtruderManager import ExtruderManager
|
|
from cura.Settings.ExtruderManager import ExtruderManager
|
|
|
|
|
|
import re #For escaping characters in the settings.
|
|
import re #For escaping characters in the settings.
|
|
@@ -72,14 +74,30 @@ class GCodeWriter(MeshWriter):
|
|
prefix_length = len(prefix)
|
|
prefix_length = len(prefix)
|
|
|
|
|
|
container_with_profile = stack.findContainer({"type": "quality"})
|
|
container_with_profile = stack.findContainer({"type": "quality"})
|
|
- serialized = container_with_profile.serialize()
|
|
|
|
|
|
+ machine_manager = CuraApplication.getInstance().getMachineManager()
|
|
|
|
+
|
|
|
|
+ # Duplicate the current quality profile and update it with any user settings.
|
|
|
|
+ flat_quality_id = machine_manager.duplicateContainer(container_with_profile.getId())
|
|
|
|
+ flat_quality = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = flat_quality_id)[0]
|
|
|
|
+ user_settings = stack.getTop()
|
|
|
|
+ for key in user_settings.getAllKeys():
|
|
|
|
+ flat_quality.setProperty(key, "value", user_settings.getProperty(key, "value"))
|
|
|
|
+
|
|
|
|
+ serialized = flat_quality.serialize()
|
|
|
|
|
|
data = {"global_quality": serialized}
|
|
data = {"global_quality": serialized}
|
|
|
|
|
|
manager = ExtruderManager.getInstance()
|
|
manager = ExtruderManager.getInstance()
|
|
for extruder in manager.getMachineExtruders(stack.getBottom().getId()):
|
|
for extruder in manager.getMachineExtruders(stack.getBottom().getId()):
|
|
extruder_quality = extruder.findContainer({"type": "quality"})
|
|
extruder_quality = extruder.findContainer({"type": "quality"})
|
|
- extruder_serialized = extruder_quality.serialize()
|
|
|
|
|
|
+
|
|
|
|
+ flat_extruder_quality_id = machine_manager.duplicateContainer(extruder_quality.getId())
|
|
|
|
+ flat_extruder_quality = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id=flat_extruder_quality_id)[0]
|
|
|
|
+ extruder_user_settings = extruder.getTop()
|
|
|
|
+ for key in extruder_user_settings.getAllKeys():
|
|
|
|
+ flat_extruder_quality.setProperty(key, "value", extruder_user_settings.getProperty(key, "value"))
|
|
|
|
+
|
|
|
|
+ extruder_serialized = flat_extruder_quality.serialize()
|
|
data.setdefault("extruder_quality", []).append(extruder_serialized)
|
|
data.setdefault("extruder_quality", []).append(extruder_serialized)
|
|
|
|
|
|
json_string = json.dumps(data)
|
|
json_string = json.dumps(data)
|