diff --git a/.github/workflows/cura-all-installers.yml b/.github/workflows/cura-all-installers.yml index 25f56063af..e8501875a8 100644 --- a/.github/workflows/cura-all-installers.yml +++ b/.github/workflows/cura-all-installers.yml @@ -1,5 +1,5 @@ name: Cura All Installers -run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }} +run-name: ${{ inputs.cura_conan_version }} for Windows ${{ inputs.build_windows }}, MacOS ${{ inputs.build_macos }}, Linux ${{ inputs.build_linux }} on: workflow_dispatch: diff --git a/resources/definitions/vzbot_base.def.json b/resources/definitions/vzbot_base.def.json index a3802664d4..37f2c987f7 100644 --- a/resources/definitions/vzbot_base.def.json +++ b/resources/definitions/vzbot_base.def.json @@ -1,112 +1,203 @@ { - "name": "VzBot Base", "version": 2, + "name": "VzBot Base", "inherits": "fdmprinter", - "metadata": + "metadata": { "visible": false, "author": "Chris, ckvsoft.at", "manufacturer": "VzBot", "file_formats": "text/x-gcode", - "first_start_actions": ["MachineSettingsAction"], - "machine_extruder_trains": { "0": "vzbot_extruder_0" }, - + "first_start_actions": [ "MachineSettingsAction" ], "has_machine_quality": true, "has_materials": true, "has_variants": true, - "variants_name": "Nozzle Size", + "machine_extruder_trains": { "0": "vzbot_extruder_0" }, + "preferred_material": "generic_abs", "preferred_quality_type": "standard", "preferred_variant_name": "0.4mm Nozzle", - "preferred_material": "generic_abs" + "variants_name": "Nozzle Size" }, "overrides": { - "machine_name": { "default_value": "VzBot" }, - "machine_width": { "default_value": 330 }, - "machine_depth": { "default_value": 330 }, - "machine_height": { "default_value": 400 }, - "gantry_height": { "value": 34 }, - "machine_heated_bed": { "default_value": true }, - "machine_max_acceleration_x": { "default_value": 15000 }, - "machine_max_acceleration_y": { "default_value": 15000 }, - "machine_max_acceleration_z": { "default_value": 2000 }, - "machine_acceleration": { "default_value": 15000 }, - "machine_max_jerk_xy": { "default_value": 20 }, - "machine_max_jerk_z": { "default_value": 1 }, - "machine_max_jerk_e": { "default_value": 60 }, - "machine_steps_per_mm_x": { "default_value": 80 }, - "machine_steps_per_mm_y": { "default_value": 80 }, - "machine_steps_per_mm_z": { "default_value": 400 }, - "machine_endstop_positive_direction_x": { "default_value": true }, - "machine_endstop_positive_direction_y": { "default_value": true }, - "machine_endstop_positive_direction_z": { "default_value": false }, - "machine_feeder_wheel_diameter": { "default_value": 7.5 }, - "machine_head_with_fans_polygon": { "default_value": [ [-35, 65], [-35, -50], [35, -50], [35, 65] ] }, - "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_feedrate_e": { "default_value": 120 }, - "machine_gcode_flavor": { "default_value": "Marlin" }, - "machine_start_gcode": { "default_value": "start_print B={material_bed_temperature_layer_0} H={material_print_temperature_layer_0} C={build_volume_temperature}" }, - "machine_end_gcode": { "default_value": "end_print" }, - "adhesion_type": { "default_value": "skirt" }, - "retraction_amount": { "default_value": 0.65 }, - "skirt_brim_minimal_length": { "default_value": 550 }, - "retraction_speed": { "default_value": 30, "maximum_value_warning": 130 }, - "retraction_retract_speed": { "maximum_value_warning": 130 }, - "retraction_prime_speed": { "value": "math.ceil(retraction_speed * 0.4)", "maximum_value_warning": 130 }, - "retraction_hop_enabled": { "default_value": true }, - "retraction_hop": { "default_value": 0.2 }, - "retraction_combing": { "value": "'noskin'" }, - "retraction_combing_max_distance": { "default_value": 10 }, - "travel_avoid_other_parts": { "default_value": false }, - "speed_print": { "value": 300, "maximum_value_warning": 1001 }, - "speed_infill": { "maximum_value_warning": 1001 }, - "speed_travel": { "value": 300, "maximum_value_warning": 1001 }, - "speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)", "maximum_value_warning": 1001 }, - "speed_layer_0": { "value": "math.ceil(speed_print * 0.25)", "maximum_value_warning": 1001 }, - "speed_wall": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 }, - "speed_wall_0": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 }, - "speed_wall_x": { "value": "math.ceil(speed_print)", "maximum_value_warning": 1001 }, - "speed_topbottom": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 }, - "speed_roofing": { "value": "math.ceil(speed_print * 0.5)", "maximum_value_warning": 1001 }, - "speed_slowdown_layers": { "default_value": 4 }, - "roofing_layer_count": { "value": 1 }, - "optimize_wall_printing_order": { "default_value": true }, - "infill_enable_travel_optimization": { "default_value": true }, - "minimum_polygon_circumference": { "default_value": 0.2 }, - "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, - "bridge_settings_enabled": { "default_value": true }, - "bridge_wall_coast": { "default_value": 10 }, - "bridge_fan_speed": { "default_value": 100 }, - "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, - "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, - "alternate_extra_perimeter": { "default_value": true }, - "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, - "cool_min_layer_time": { "default_value": 15 }, - "cool_fan_speed_min": { "value": "cool_fan_speed" }, - "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, - "cool_fan_full_layer": { "value": 4 }, - "layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" }, - "line_width": { "value": "machine_nozzle_size * 1.125" }, - "wall_line_width": { "value": "machine_nozzle_size" }, - "fill_outline_gaps": { "default_value": true }, - "meshfix_maximum_resolution": { "default_value": 0.01 }, - "infill_before_walls": { "default_value": false }, - "zig_zaggify_infill": { "value": true }, - "min_infill_area": { "default_value": 5.0 }, - "acceleration_enabled": { "default_value": false }, - "acceleration_print": { "default_value": 15000, "maximum_value_warning": 50000 }, - "acceleration_wall_0": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_wall_x": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_layer_0": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_travel_layer_0": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_roofing": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_topbottom": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_travel": { "value": 20000, "maximum_value_warning": 50000 }, - "acceleration_skirt_brim": { "value": 15000, "maximum_value_warning": 50000 }, - "acceleration_print_layer_0": { "value": 15000, "maximum_value_warning": 50000 }, - "jerk_enabled": { "default_value": false }, - "jerk_wall_0": { "value": 10 }, - "jerk_roofing": { "value": 10 } + "acceleration_enabled": { "default_value": true }, + "acceleration_infill": { "maximum_value_warning": 50000 }, + "acceleration_layer_0": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_print": + { + "default_value": 15000, + "maximum_value_warning": 50000 + }, + "acceleration_print_layer_0": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_roofing": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_skirt_brim": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_topbottom": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_travel": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_travel_layer_0": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_wall": { "maximum_value_warning": 50000 }, + "acceleration_wall_0": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "acceleration_wall_x": + { + "maximum_value_warning": 50000, + "value": 15000 + }, + "adhesion_type": { "default_value": "skirt" }, + "alternate_extra_perimeter": { "default_value": true }, + "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, + "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, + "bridge_settings_enabled": { "default_value": true }, + "bridge_wall_coast": { "default_value": 10 }, + "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, + "cool_fan_full_layer": { "value": 4 }, + "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, + "gantry_height": { "value": 34 }, + "infill_before_walls": { "default_value": false }, + "infill_enable_travel_optimization": { "default_value": true }, + "infill_pattern": { "value": "'grid' if infill_sparse_density > 40 else 'cubic'" }, + "infill_sparse_density": { "value": 35 }, + "jerk_roofing": { "value": 10 }, + "jerk_wall_0": { "value": 10 }, + "layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" }, + "line_width": { "value": "machine_nozzle_size * 1.125" }, + "machine_acceleration": { "default_value": 15000 }, + "machine_depth": { "default_value": 330 }, + "machine_end_gcode": { "default_value": "end_print" }, + "machine_endstop_positive_direction_x": { "default_value": true }, + "machine_endstop_positive_direction_y": { "default_value": true }, + "machine_endstop_positive_direction_z": { "default_value": false }, + "machine_feeder_wheel_diameter": { "default_value": 7.5 }, + "machine_gcode_flavor": { "default_value": "Marlin" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-35, 65], + [-35, -50], + [35, -50], + [35, 65] + ] + }, + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 400 }, + "machine_max_acceleration_x": { "default_value": 15000 }, + "machine_max_acceleration_y": { "default_value": 15000 }, + "machine_max_acceleration_z": { "default_value": 2000 }, + "machine_max_feedrate_e": { "default_value": 120 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_jerk_e": { "default_value": 60 }, + "machine_max_jerk_xy": { "default_value": 20 }, + "machine_max_jerk_z": { "default_value": 1 }, + "machine_name": { "default_value": "VzBot" }, + "machine_start_gcode": { "default_value": "start_print B={material_bed_temperature_layer_0} H={material_print_temperature_layer_0} C={build_volume_temperature}" }, + "machine_steps_per_mm_x": { "default_value": 80 }, + "machine_steps_per_mm_y": { "default_value": 80 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 330 }, + "meshfix_maximum_resolution": { "default_value": 0.01 }, + "min_infill_area": { "default_value": 5.0 }, + "minimum_polygon_circumference": { "default_value": 0.2 }, + "optimize_wall_printing_order": { "default_value": true }, + "retraction_amount": { "default_value": 0.65 }, + "retraction_combing": { "value": "'noskin'" }, + "retraction_combing_max_distance": { "default_value": 10 }, + "retraction_hop": { "default_value": 0.2 }, + "retraction_prime_speed": + { + "maximum_value_warning": 150, + "value": "math.ceil(retraction_speed * 0.4)" + }, + "retraction_retract_speed": { "maximum_value_warning": 150 }, + "retraction_speed": + { + "default_value": 45, + "maximum_value_warning": 150 + }, + "roofing_layer_count": { "value": 1 }, + "skin_monotonic": { "default_value": true }, + "skirt_brim_minimal_length": { "default_value": 550 }, + "speed_infill": { "maximum_value_warning": 1001 }, + "speed_layer_0": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print * 0.25)" + }, + "speed_print": + { + "maximum_value_warning": 1001, + "value": 300 + }, + "speed_roofing": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print * 0.5)" + }, + "speed_topbottom": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print * 0.5)" + }, + "speed_travel": + { + "maximum_value_warning": 1001, + "value": 300 + }, + "speed_travel_layer_0": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_travel * 0.4)" + }, + "speed_wall": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print * 0.5)" + }, + "speed_wall_0": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print * 0.5)" + }, + "speed_wall_x": + { + "maximum_value_warning": 1001, + "value": "math.ceil(speed_print)" + }, + "travel_avoid_other_parts": { "default_value": false }, + "wall_line_width": { "value": "machine_nozzle_size" }, + "wall_overhang_angle": { "default_value": 75 }, + "wall_overhang_speed_factor": { "default_value": 50 }, + "xy_offset_layer_0": { "value": 0.3 }, + "z_seam_type": { "value": "'back'" }, + "zig_zaggify_infill": { "value": true } } -} +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 5742e12a3c..41ab40eb31 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -52,8 +52,13 @@ Item id: intentSelection onClicked: menu.opened ? menu.close() : menu.open() - anchors.right: profileWarningReset.left - width: UM.Theme.getSize("print_setup_big_item").width - profileWarningReset.width + // Anchoring to the right makes much more sense here, but for some reason this component compresses from the right + // and then expands from the left afterwards. This pushes it left by profileWarningReset.width + // The solution is to anchor from the other direction so this does not happen. + anchors.left: parent.left + // This leftMargin gives us the same spacing as anchoring to the right on profileWarningReset + anchors.leftMargin: parent.width - UM.Theme.getSize("print_setup_big_item").width + width: profileWarningReset.visible ? UM.Theme.getSize("print_setup_big_item").width - profileWarningReset.width - UM.Theme.getSize("default_margin").width : UM.Theme.getSize("print_setup_big_item").width height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height hoverEnabled: true @@ -157,6 +162,7 @@ Item id: profileWarningReset width: childrenRect.width anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter fullWarning: false } diff --git a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml index 1aa10a9b42..646e835cb2 100644 --- a/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml +++ b/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml @@ -233,18 +233,19 @@ Popup right: parent.right } - height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height + height: textLabel.contentHeight + UM.Theme.getSize("default_margin").height contentItem: Item { width: parent.width - height: childrenRect.height + height: parent.height UM.Label { id: textLabel text: manageProfilesButton.text height: contentHeight + anchors.verticalCenter: parent.verticalCenter } UM.Label { @@ -252,6 +253,7 @@ Popup text: Cura.Actions.manageProfiles.shortcut color: UM.Theme.getColor("text_lighter") height: contentHeight + anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width } @@ -266,7 +268,7 @@ Popup Item { width: 2 - height: UM.Theme.getSize("default_radius").width + height: UM.Theme.getSize("default_radius").width } } } diff --git a/resources/qml/PrintSetupSelector/ProfileWarningReset.qml b/resources/qml/PrintSetupSelector/ProfileWarningReset.qml index 5e6a3d8157..c44fcc8cc2 100644 --- a/resources/qml/PrintSetupSelector/ProfileWarningReset.qml +++ b/resources/qml/PrintSetupSelector/ProfileWarningReset.qml @@ -13,13 +13,14 @@ Item property bool fullWarning: true // <- Can you see the warning icon and the text, or is it just the buttons? height: visible ? UM.Theme.getSize("action_button_icon").height : 0 - visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality + width: visible ? childrenRect.width: 0 + visible: Cura.MachineManager.hasUserSettings || (fullWarning && Cura.MachineManager.hasCustomQuality) Rectangle { id: warningIcon visible: fullWarning - color: UM.Theme.getColor("um_yellow_5") + color: UM.Theme.getColor("warning") height: UM.Theme.getSize("action_button_icon").height width: visible ? height : 0 radius: width @@ -30,6 +31,7 @@ Item } UM.ColorImage { + id: warningIconImage height: UM.Theme.getSize("action_button_icon").height width: height source: UM.Theme.getIcon("Warning", "low") @@ -45,7 +47,7 @@ Item { left: warningIcon.right verticalCenter: parent.verticalCenter - leftMargin: UM.Theme.getSize("thin_margin").width + leftMargin: visible ? UM.Theme.getSize("thin_margin").width : 0 } wrapMode: Text.WordWrap @@ -54,7 +56,7 @@ Item State { name: "settings changed and custom quality" - when: Cura.SimpleModeSettingsManager.isProfileCustomized && Cura.MachineManager.hasCustomQuality + when: Cura.MachineManager.hasUserSettings && Cura.MachineManager.hasCustomQuality PropertyChanges { target: warning @@ -63,7 +65,6 @@ Item return catalog.i18nc("@info, %1 is the name of the custom profile", "%1 custom profile is active and you overwrote some settings.").arg(profile_name) } } - }, State { @@ -80,7 +81,21 @@ Item }, State { - name: "settings changed" + name: "recommended settings changed" + when: Cura.MachineManager.hasUserSettings + PropertyChanges + { + target: warning + text: + { + var profile_name = Cura.MachineManager.activeQualityOrQualityChangesName; + return catalog.i18nc("@info %1 is the name of a profile", "Recommended settings (for %1) were altered.").arg(profile_name); + } + } + }, + State + { + name: "custom settings changed" when: Cura.SimpleModeSettingsManager.isProfileCustomized PropertyChanges { @@ -99,7 +114,7 @@ Item { id: resetToDefaultQualityButton height: UM.Theme.getSize("action_button_icon").height - width: height + width: visible ? height : 0 iconSource: UM.Theme.getIcon("ArrowReset") anchors { @@ -107,10 +122,11 @@ Item verticalCenter: parent.verticalCenter } + visible: enabled color: enabled ? UM.Theme.getColor("accent_1") : UM.Theme.getColor("disabled") hoverColor: UM.Theme.getColor("primary_hover") - enabled: Cura.MachineManager.hasCustomQuality || Cura.SimpleModeSettingsManager.isProfileCustomized + enabled: (fullWarning && Cura.MachineManager.hasCustomQuality) || Cura.MachineManager.hasUserSettings onClicked: Cura.MachineManager.resetToUseDefaultQuality() UM.ToolTip @@ -126,7 +142,7 @@ Item Item { id: buttonsSpacer - width: UM.Theme.getSize("action_button_icon").height + width: compareAndSaveButton.visible ? UM.Theme.getSize("default_margin").width : 0 anchors.right: compareAndSaveButton.left } @@ -134,7 +150,7 @@ Item { id: compareAndSaveButton height: UM.Theme.getSize("action_button_icon").height - width: height + width: visible ? height : 0 iconSource: UM.Theme.getIcon("Save") anchors { @@ -142,10 +158,11 @@ Item verticalCenter: parent.verticalCenter } + visible: enabled color: enabled ? UM.Theme.getColor("accent_1") : UM.Theme.getColor("disabled") hoverColor: UM.Theme.getColor("primary_hover") - enabled: Cura.SimpleModeSettingsManager.isProfileCustomized + enabled: Cura.MachineManager.hasUserSettings onClicked: CuraApplication.showCompareAndSaveProfileChanges ( Cura.MachineManager.hasCustomQuality ?