From ccbc00c2ee688090057056537dcca01694e7dba8 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 6 Jun 2019 11:16:30 +0200 Subject: [PATCH 1/4] Don't prime-blob when print-sequence is one-at-a-time. [CURA-6414] --- resources/definitions/builder_premium_large.def.json | 2 +- resources/definitions/builder_premium_medium.def.json | 2 +- resources/definitions/builder_premium_small.def.json | 2 +- resources/definitions/fdmprinter.def.json | 2 +- resources/definitions/ultimaker3.def.json | 2 +- resources/definitions/ultimaker_s5.def.json | 2 +- resources/definitions/winbo_dragonl4.def.json | 2 +- resources/definitions/winbo_mini2.def.json | 2 +- resources/definitions/winbo_superhelper105.def.json | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json index 3ceae8d63f..feb6082c55 100644 --- a/resources/definitions/builder_premium_large.def.json +++ b/resources/definitions/builder_premium_large.def.json @@ -55,7 +55,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json index 5f608ba2a8..cea28b4bea 100644 --- a/resources/definitions/builder_premium_medium.def.json +++ b/resources/definitions/builder_premium_medium.def.json @@ -55,7 +55,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index a19773ec05..688a62d02c 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -54,7 +54,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ebbb6a5a3c..0c05fd45b8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4622,7 +4622,7 @@ "label": "Enable Prime Blob", "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", "type": "bool", - "resolve": "any(extruderValues('prime_blob_enable'))", + "resolve": "any(extruderValues('prime_blob_enable')) and resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": true, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index d2cd0376d3..1ad2579295 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -79,7 +79,7 @@ "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_blob_enable": { "enabled": true, "default_value": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 0ebd956aa1..0fb94e8f55 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -69,7 +69,7 @@ "machine_end_gcode": { "default_value": "" }, "prime_tower_position_x": { "default_value": 345 }, "prime_tower_position_y": { "default_value": 222.5 }, - "prime_blob_enable": { "enabled": true, "default_value": false }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": false }, "speed_travel": { diff --git a/resources/definitions/winbo_dragonl4.def.json b/resources/definitions/winbo_dragonl4.def.json index bf52a785e9..7340f52739 100644 --- a/resources/definitions/winbo_dragonl4.def.json +++ b/resources/definitions/winbo_dragonl4.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nM9998\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F800 X585 E12\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, diff --git a/resources/definitions/winbo_mini2.def.json b/resources/definitions/winbo_mini2.def.json index f1c94ca07e..5b94b9a3fa 100644 --- a/resources/definitions/winbo_mini2.def.json +++ b/resources/definitions/winbo_mini2.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F1000 Z3\nG1 F4000 X0\nG1 F4000 Y0\nG1 F1000 Z0.2\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, diff --git a/resources/definitions/winbo_superhelper105.def.json b/resources/definitions/winbo_superhelper105.def.json index ac78467a2a..0a10d3c7e9 100644 --- a/resources/definitions/winbo_superhelper105.def.json +++ b/resources/definitions/winbo_superhelper105.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, From 960a20652afdc2ee136a9fc93a5df346cce7273f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 6 Jun 2019 12:30:05 +0200 Subject: [PATCH 2/4] Add warning state for prime blob and CheckBox CURA-6414 --- resources/definitions/fdmprinter.def.json | 3 +- resources/qml/Settings/SettingCheckBox.qml | 52 ++++++++++++++++------ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0c05fd45b8..f9ff188bb8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4626,7 +4626,8 @@ "default_value": false, "settable_per_mesh": false, "settable_per_extruder": true, - "enabled": false + "enabled": false, + "warning_value": "True if resolveOrValue('print_sequence') == 'one_at_a_time' else None" }, "extruder_prime_pos_x": { diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 8c0c58f371..694c4125ea 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -91,27 +91,27 @@ SettingItem } width: height - color: - { - if (!enabled) - { - return UM.Theme.getColor("setting_control_disabled") - } - if (control.containsMouse || control.activeFocus) - { - return UM.Theme.getColor("setting_control_highlight") - } - return UM.Theme.getColor("setting_control") - } - radius: UM.Theme.getSize("setting_control_radius").width border.width: UM.Theme.getSize("default_lining").width + border.color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled_border") } + switch (propertyProvider.properties.validationState) + { + case "ValidatorState.Invalid": + case "ValidatorState.Exception": + case "ValidatorState.MinimumError": + case "ValidatorState.MaximumError": + return UM.Theme.getColor("setting_validation_error"); + case "ValidatorState.MinimumWarning": + case "ValidatorState.MaximumWarning": + return UM.Theme.getColor("setting_validation_warning"); + } + // Validation is OK. if (control.containsMouse || control.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") @@ -119,6 +119,30 @@ SettingItem return UM.Theme.getColor("setting_control_border") } + color: { + if (!enabled) + { + return UM.Theme.getColor("setting_control_disabled") + } + switch (propertyProvider.properties.validationState) + { + case "ValidatorState.Invalid": + case "ValidatorState.Exception": + case "ValidatorState.MinimumError": + case "ValidatorState.MaximumError": + return UM.Theme.getColor("setting_validation_error_background") + case "ValidatorState.MinimumWarning": + case "ValidatorState.MaximumWarning": + return UM.Theme.getColor("setting_validation_warning_background") + } + // Validation is OK. + if (control.containsMouse || control.activeFocus) + { + return UM.Theme.getColor("setting_control_highlight") + } + return UM.Theme.getColor("setting_control") + } + UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter From 47ecdda0bcae14330626632171196a6e74f21d56 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 6 Jun 2019 12:31:04 +0200 Subject: [PATCH 3/4] Show prime blob by default CURA-6414 So user can see if it's in a warning state. --- resources/definitions/builder_premium_large.def.json | 2 +- resources/definitions/builder_premium_medium.def.json | 2 +- resources/definitions/builder_premium_small.def.json | 2 +- resources/definitions/ultimaker3.def.json | 2 +- resources/definitions/ultimaker_s5.def.json | 2 +- resources/definitions/winbo_dragonl4.def.json | 2 +- resources/definitions/winbo_mini2.def.json | 2 +- resources/definitions/winbo_superhelper105.def.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json index feb6082c55..3ceae8d63f 100644 --- a/resources/definitions/builder_premium_large.def.json +++ b/resources/definitions/builder_premium_large.def.json @@ -55,7 +55,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json index cea28b4bea..5f608ba2a8 100644 --- a/resources/definitions/builder_premium_medium.def.json +++ b/resources/definitions/builder_premium_medium.def.json @@ -55,7 +55,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index 688a62d02c..a19773ec05 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -54,7 +54,7 @@ "prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_min_volume": { "default_value": 50 }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 1ad2579295..d2cd0376d3 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -79,7 +79,7 @@ "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": true }, + "prime_blob_enable": { "enabled": true, "default_value": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 0fb94e8f55..0ebd956aa1 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -69,7 +69,7 @@ "machine_end_gcode": { "default_value": "" }, "prime_tower_position_x": { "default_value": 345 }, "prime_tower_position_y": { "default_value": 222.5 }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": false }, + "prime_blob_enable": { "enabled": true, "default_value": false }, "speed_travel": { diff --git a/resources/definitions/winbo_dragonl4.def.json b/resources/definitions/winbo_dragonl4.def.json index 7340f52739..bf52a785e9 100644 --- a/resources/definitions/winbo_dragonl4.def.json +++ b/resources/definitions/winbo_dragonl4.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nM9998\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F800 X585 E12\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, diff --git a/resources/definitions/winbo_mini2.def.json b/resources/definitions/winbo_mini2.def.json index 5b94b9a3fa..f1c94ca07e 100644 --- a/resources/definitions/winbo_mini2.def.json +++ b/resources/definitions/winbo_mini2.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F1000 Z3\nG1 F4000 X0\nG1 F4000 Y0\nG1 F1000 Z0.2\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, diff --git a/resources/definitions/winbo_superhelper105.def.json b/resources/definitions/winbo_superhelper105.def.json index 0a10d3c7e9..ac78467a2a 100644 --- a/resources/definitions/winbo_superhelper105.def.json +++ b/resources/definitions/winbo_superhelper105.def.json @@ -41,7 +41,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." }, "machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" }, - "prime_blob_enable": { "enabled": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, + "prime_blob_enable": { "enabled": true }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, From fd8dfb4185de0cd48c396d6286618b501892316d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 14 Jun 2019 11:39:48 +0200 Subject: [PATCH 4/4] Fix resolve/value/warning definition for enable prime blob. [CURA-6414] --- resources/definitions/fdmprinter.def.json | 1 - resources/definitions/ultimaker3.def.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f9ff188bb8..633325ce76 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4622,7 +4622,6 @@ "label": "Enable Prime Blob", "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", "type": "bool", - "resolve": "any(extruderValues('prime_blob_enable')) and resolveOrValue('print_sequence') != 'one_at_a_time'", "default_value": false, "settable_per_mesh": false, "settable_per_extruder": true, diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index d2cd0376d3..a297d33c82 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -79,7 +79,7 @@ "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_blob_enable": { "enabled": true, "default_value": true }, + "prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" },