diff --git a/cura/Settings/QualitySettingsModel.py b/cura/Settings/QualitySettingsModel.py index 64052fe4e3..2d02d27f72 100644 --- a/cura/Settings/QualitySettingsModel.py +++ b/cura/Settings/QualitySettingsModel.py @@ -159,7 +159,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): profile_value = None for container in containers: new_value = container.getProperty(definition.key, "value") - if new_value: + if new_value is not None: profile_value = new_value user_value = None @@ -170,7 +170,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): if extruder_stack: user_value = extruder_stack[0].getTop().getProperty(definition.key, "value") - if not profile_value and not user_value: + if profile_value is None and user_value is None: continue if is_multi_extrusion: diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b1cad3eb68..8520b381c9 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -630,8 +630,7 @@ "value": "line_width", "enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"", "settable_per_mesh": false, - "settable_per_extruder": true, - "global_inherits_stack": "adhesion_extruder_nr" + "settable_per_extruder": true }, "support_line_width": { @@ -645,6 +644,7 @@ "type": "float", "enabled": "support_enable", "value": "line_width", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -657,7 +657,8 @@ "minimum_value": "0.0001", "maximum_value_warning": "machine_nozzle_size * 2", "type": "float", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable')", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable')", + "global_inherits_stack": "support_interface_extruder_nr", "value": "line_width", "settable_per_mesh": false, "settable_per_extruder": true @@ -1459,6 +1460,7 @@ "value": "speed_print", "enabled": "support_enable", "settable_per_mesh": false, + "global_inherits_stack": "support_extruder_nr", "settable_per_extruder": true, "children": { @@ -1474,6 +1476,7 @@ "maximum_value_warning": "150", "value": "speed_support", "enabled": "support_enable", + "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1487,7 +1490,8 @@ "minimum_value": "0.1", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", "value": "speed_support / 1.5", "settable_per_mesh": false, "settable_per_extruder": true @@ -1729,6 +1733,7 @@ "value": "acceleration_print", "enabled": "acceleration_enabled and support_enable", "settable_per_mesh": false, + "global_inherits_stack": "support_extruder_nr", "settable_per_extruder": true, "children": { "acceleration_support_infill": { @@ -1742,6 +1747,7 @@ "minimum_value_warning": "100", "maximum_value_warning": "10000", "enabled": "acceleration_enabled and support_enable", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1755,7 +1761,8 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "acceleration_enabled and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -1848,8 +1855,6 @@ "global_inherits_stack": "adhesion_extruder_nr" }, - - "jerk_enabled": { "label": "Enable Jerk Control", "description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.", @@ -1950,6 +1955,7 @@ "enabled": "jerk_enabled and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, + "global_inherits_stack": "support_extruder_nr", "children": { "jerk_support_infill": { "label": "Support Infill Jerk", @@ -1962,6 +1968,7 @@ "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "jerk_enabled and support_enable", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1975,7 +1982,8 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "jerk_enabled and extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "jerk_enabled and extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2295,7 +2303,7 @@ "minimum_value": "0", "maximum_value": "90", "default_value": 50, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, @@ -2314,7 +2322,7 @@ }, "default_value": "zigzag", "enabled": "support_enable", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2325,6 +2333,7 @@ "type": "bool", "default_value": true, "enabled": "support_enable and (support_pattern == 'zigzag')", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2338,6 +2347,7 @@ "maximum_value_warning": "100", "default_value": 15, "enabled": "support_enable", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true, "children": { @@ -2351,6 +2361,7 @@ "default_value": 2.66, "enabled": "support_enable", "value": "(support_line_width * 100) / support_infill_rate * (2 if support_pattern == \"grid\" else (3 if support_pattern == \"triangles\" else 1))", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2365,7 +2376,7 @@ "minimum_value": "0", "maximum_value_warning": "10", "default_value": 0.1, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true, "children": @@ -2381,7 +2392,7 @@ "type": "float", "enabled": "support_enable", "value": "extruderValue(support_extruder_nr, 'support_z_distance')", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "settable_per_mesh": true }, "support_bottom_distance": @@ -2393,7 +2404,7 @@ "maximum_value_warning": "10", "default_value": 0.1, "value": "extruderValue(support_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and support_type == 'everywhere'", "settable_per_mesh": true @@ -2409,7 +2420,7 @@ "minimum_value": "0", "maximum_value_warning": "10", "default_value": 0.7, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, @@ -2422,7 +2433,7 @@ "z_overrides_xy": "Z overrides X/Y" }, "default_value": "z_overrides_xy", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, @@ -2435,8 +2446,8 @@ "maximum_value_warning": "10", "default_value": 0.2, "value": "machine_nozzle_size / 2", - "global_inherits_stack": "support_extruder_nr", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_xy_overrides_z') == 'z_overrides_xy'", + "global_inherits_stack": "support_infill_extruder_nr", + "enabled": "support_enable and extruderValue(support_infill_extruder_nr, 'support_xy_overrides_z') == 'z_overrides_xy'", "settable_per_mesh": true }, "support_bottom_stair_step_height": @@ -2446,7 +2457,7 @@ "unit": "mm", "type": "float", "default_value": 0.3, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "minimum_value": "0", "maximum_value_warning": "1.0", "enabled": "support_enable", @@ -2459,7 +2470,7 @@ "unit": "mm", "type": "float", "default_value": 2.0, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "minimum_value_warning": "0", "maximum_value_warning": "10", "enabled": "support_enable", @@ -2472,7 +2483,7 @@ "unit": "mm", "type": "float", "default_value": 0.2, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "minimum_value_warning": "-0.5", "maximum_value_warning": "5.0", "enabled": "support_enable", @@ -2496,9 +2507,9 @@ "type": "float", "default_value": 1, "minimum_value": "0", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr", "maximum_value_warning": "10", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true, "children": { @@ -2509,11 +2520,11 @@ "unit": "mm", "type": "float", "default_value": 1, - "value": "extruderValue(support_extruder_nr, 'support_interface_height')", + "value": "extruderValue(support_interface_extruder_nr, 'support_interface_height')", "minimum_value": "0", - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_interface_extruder_nr", "maximum_value_warning": "10", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true }, "support_bottom_height": @@ -2523,12 +2534,12 @@ "unit": "mm", "type": "float", "default_value": 1, - "value": "extruderValue(support_extruder_nr, 'support_interface_height')", + "value": "extruderValue(support_interface_extruder_nr, 'support_interface_height')", "minimum_value": "0", - "minimum_value_warning": "extruderValue(support_extruder_nr, 'support_bottom_stair_step_height')", - "global_inherits_stack": "support_extruder_nr", + "minimum_value_warning": "extruderValue(support_interface_extruder_nr, 'support_bottom_stair_step_height')", + "global_inherits_stack": "support_interface_extruder_nr", "maximum_value_warning": "10", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true } } @@ -2541,9 +2552,9 @@ "type": "float", "default_value": 0.3, "minimum_value": "0", - "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "support_interface_height", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true }, "support_interface_density": @@ -2555,8 +2566,8 @@ "default_value": 100, "minimum_value": "0", "maximum_value_warning": "100", - "global_inherits_stack": "support_extruder_nr", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -2570,8 +2581,8 @@ "default_value": 0.4, "minimum_value": "0", "value": "0 if support_interface_density == 0 else (support_interface_line_width * 100) / support_interface_density * (2 if support_interface_pattern == \"grid\" else (3 if support_interface_pattern == \"triangles\" else 1))", - "global_inherits_stack": "support_extruder_nr", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2591,8 +2602,8 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", - "global_inherits_stack": "support_extruder_nr", - "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_interface_extruder_nr", + "enabled": "extruderValue(support_interface_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2602,7 +2613,7 @@ "description": "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof.", "type": "bool", "default_value": true, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true }, @@ -2613,10 +2624,10 @@ "unit": "mm", "type": "float", "default_value": 3.0, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "minimum_value": "0", "maximum_value_warning": "10", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", + "enabled": "support_enable and extruderValue(support_infill_extruder_nr, 'support_use_towers')", "settable_per_mesh": true }, "support_minimal_diameter": @@ -2626,11 +2637,11 @@ "unit": "mm", "type": "float", "default_value": 3.0, - "global_inherits_stack": "support_extruder_nr", + "global_inherits_stack": "support_infill_extruder_nr", "minimum_value": "0", "maximum_value_warning": "10", - "maximum_value": "extruderValue(support_extruder_nr, 'support_tower_diameter')", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", + "maximum_value": "extruderValue(support_infill_extruder_nr, 'support_tower_diameter')", + "enabled": "support_enable and extruderValue(support_infill_extruder_nr, 'support_use_towers')", "settable_per_mesh": true }, "support_tower_roof_angle": @@ -2642,8 +2653,8 @@ "minimum_value": "0", "maximum_value": "90", "default_value": 65, - "global_inherits_stack": "support_extruder_nr", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", + "global_inherits_stack": "support_infill_extruder_nr", + "enabled": "support_enable and extruderValue(support_infill_extruder_nr, 'support_use_towers')", "settable_per_mesh": true } } @@ -2736,8 +2747,7 @@ "maximum_value_warning": "2500", "enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"", "settable_per_mesh": false, - "settable_per_extruder": true, - "global_inherits_stack": "adhesion_extruder_nr" + "settable_per_extruder": true }, "brim_width": { @@ -3273,7 +3283,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and machine_extruder_count > 1 and extruderValue(support_extruder_nr, 'support_interface_enable')", + "enabled": "support_enable and machine_extruder_count > 1 and extruderValue(support_interface_extruder_nr, 'support_interface_enable')", "settable_per_mesh": false, "settable_per_extruder": false } @@ -3684,6 +3694,7 @@ "maximum_value": "90", "default_value": 30, "enabled": "support_conical_enabled and support_enable", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": true }, "support_conical_min_width": @@ -3697,6 +3708,7 @@ "maximum_value_warning": "100.0", "type": "float", "enabled": "support_conical_enabled and support_enable", + "global_inherits_stack": "support_infill_extruder_nr", "settable_per_mesh": true }, "magic_fuzzy_skin_enabled":