diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7645e88b7e..4285f9ac1d 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -43,7 +43,7 @@ from UM.Scene.Selection import Selection from UM.Scene.ToolHandle import ToolHandle from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.InstanceContainer import InstanceContainer -from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType +from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType, toIntConversion from UM.Settings.SettingFunction import SettingFunction from UM.Settings.Validator import Validator from UM.View.SelectionPass import SelectionPass # For typing. @@ -382,11 +382,12 @@ class CuraApplication(QtApplication): SettingDefinition.addSupportedProperty("resolve", DefinitionPropertyType.Function, default=None, depends_on="value") - SettingDefinition.addSettingType("extruder", None, str, Validator) - SettingDefinition.addSettingType("optional_extruder", None, str, None) + SettingDefinition.addSettingType("extruder", None, toIntConversion, Validator) + SettingDefinition.addSettingType("optional_extruder", None, toIntConversion, None) SettingDefinition.addSettingType("[int]", None, str, None) + def _initializeSettingFunctions(self): """Adds custom property types, settings types, and extra operators (functions). diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b1cbb07904..07e9f2e8f6 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4366,6 +4366,7 @@ "default_value": "0", "value": "support_extruder_nr", "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", + "resolve": "max(extruderValues('support_interface_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false, "children": @@ -4378,6 +4379,7 @@ "default_value": "0", "value": "support_interface_extruder_nr", "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", + "resolve": "max(extruderValues('support_roof_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -4389,6 +4391,7 @@ "default_value": "0", "value": "support_interface_extruder_nr", "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", + "resolve": "max(extruderValues('support_bottom_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false } @@ -5421,6 +5424,7 @@ "default_value": "0", "value": "int(defaultExtruderPosition())", "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') != 'none' or resolveOrValue('prime_tower_brim_enable'))", + "resolve": "max(extruderValues('adhesion_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false, "children": @@ -5444,6 +5448,7 @@ "default_value": "0", "value": "adhesion_extruder_nr", "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", + "resolve": "max(extruderValues('raft_base_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -5455,6 +5460,7 @@ "default_value": "0", "value": "adhesion_extruder_nr", "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", + "resolve": "max(extruderValues('raft_interface_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -5466,6 +5472,7 @@ "default_value": "0", "value": "adhesion_extruder_nr", "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", + "resolve": "max(extruderValues('raft_surface_extruder_nr'))", "settable_per_mesh": false, "settable_per_extruder": false }