mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 09:17:50 -06:00
Properly send profile and setting changes to the engine
This includes everything from the profile and all settings with child settings.
This commit is contained in:
parent
6fa6b1ac5d
commit
fd8185fcb9
1 changed files with 28 additions and 25 deletions
|
@ -179,32 +179,11 @@ class CuraEngineBackend(Backend):
|
||||||
verts[:,1] *= -1
|
verts[:,1] *= -1
|
||||||
obj.vertices = verts.tostring()
|
obj.vertices = verts.tostring()
|
||||||
|
|
||||||
if object.getDecorator(SettingOverrideDecorator):
|
self._handlePerObjectSettings(object, obj)
|
||||||
object_settings = object.callDecoration("getAllSettings")
|
|
||||||
for key, value in object_settings.items():
|
|
||||||
if key == "profile":
|
|
||||||
for key, value in value.getChangedSettings().items():
|
|
||||||
setting = obj.settings.add()
|
|
||||||
setting.name = key
|
|
||||||
setting.value = str(value).encode()
|
|
||||||
else:
|
|
||||||
setting = obj.settings.add()
|
|
||||||
setting.name = key
|
|
||||||
setting.value = str(value).encode()
|
|
||||||
|
|
||||||
first = group[0]
|
# Hack to add per-object settings also to the "MeshGroup" in CuraEngine
|
||||||
if first.getDecorator(SettingOverrideDecorator):
|
# We really should come up with a better solution for this.
|
||||||
object_settings = first.callDecoration("getAllSettings")
|
self._handlePerObjectSettings(group[0], group_message)
|
||||||
for key, value in object_settings.items():
|
|
||||||
if key == "profile":
|
|
||||||
for key, value in value.getChangedSettings().items():
|
|
||||||
setting = group_message.settings.add()
|
|
||||||
setting.name = key
|
|
||||||
setting.value = str(value).encode()
|
|
||||||
else:
|
|
||||||
setting = group_message.settings.add()
|
|
||||||
setting.name = key
|
|
||||||
setting.value = str(value).encode()
|
|
||||||
|
|
||||||
self._scene.releaseLock()
|
self._scene.releaseLock()
|
||||||
self._socket.sendMessage(slice_message)
|
self._socket.sendMessage(slice_message)
|
||||||
|
@ -306,3 +285,27 @@ class CuraEngineBackend(Backend):
|
||||||
job.start()
|
job.start()
|
||||||
else:
|
else:
|
||||||
self._layer_view_active = False
|
self._layer_view_active = False
|
||||||
|
|
||||||
|
def _handlePerObjectSettings(self, node, message):
|
||||||
|
profile = node.callDecoration("getProfile")
|
||||||
|
if profile:
|
||||||
|
for key, value in profile.getChangedSettings().items():
|
||||||
|
setting = message.settings.add()
|
||||||
|
setting.name = key
|
||||||
|
setting.value = str(value).encode()
|
||||||
|
|
||||||
|
object_settings = node.callDecoration("getAllSettings")
|
||||||
|
if not object_settings:
|
||||||
|
return
|
||||||
|
|
||||||
|
for key, value in object_settings.items():
|
||||||
|
setting = message.settings.add()
|
||||||
|
setting.name = key
|
||||||
|
setting.value = str(value.getValue()).encode()
|
||||||
|
|
||||||
|
for child in value.getAllChildren():
|
||||||
|
setting = message.settings.add()
|
||||||
|
setting.name = child.getKey()
|
||||||
|
setting.value = str(child.getValue()).encode()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue