From 2d89720c44b91c42c35b3468bb2c9c6e1110ca01 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 30 Jul 2024 08:55:27 +0200 Subject: [PATCH] Start using the 'force_depends_on_settings' property. This is useful if the relations between settings are cross-extruder, which can happen when a setting that is currently limited to one extruder, depends on another setting (in a value-formula of the like) which is currently limited to _another_ extruder. Note that Irenamed the 'depends_on_settings' to 'force_depends_on_settings' as the former may imply that you should do it for _all_ dependant settings, instead of it being the exception (as we expect that this will occur rarely -- for example in multi-material rafts). CURA-12050 --- cura/CuraApplication.py | 3 +++ resources/definitions/fdmprinter.def.json | 12 ++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 3bdf7aa126..9de367c414 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -414,6 +414,9 @@ class CuraApplication(QtApplication): SettingDefinition.addSupportedProperty("settable_globally", DefinitionPropertyType.Any, default=True, read_only=True) + SettingDefinition.addSupportedProperty("force_depends_on_settings", DefinitionPropertyType.Any, default=[], + read_only=True) + # From which stack the setting would inherit if not defined per object (handled in the engine) # AND for settings which are not settable_per_mesh: # which extruder is the only extruder this setting is obtained from diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 045bec05a4..3e0eddf5fa 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6499,7 +6499,8 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" + "limit_to_extruder": "raft_interface_extruder_nr", + "force_depends_on_settings": [ "raft_base_thickness" ] }, "raft_interface_line_spacing": { @@ -6515,7 +6516,8 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" + "limit_to_extruder": "raft_interface_extruder_nr", + "force_depends_on_settings": [ "raft_base_thickness" ] }, "raft_interface_z_offset": { @@ -6531,7 +6533,8 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" + "limit_to_extruder": "raft_interface_extruder_nr", + "force_depends_on_settings": [ "raft_base_thickness" ] }, "raft_interface_infill_overlap": { @@ -6784,7 +6787,8 @@ "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", "settable_per_mesh": false, "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" + "limit_to_extruder": "raft_interface_extruder_nr", + "force_depends_on_settings": [ "raft_base_thickness" ] }, "raft_surface_speed": {