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 ?