From 5287cc3dfd30438969b3e7e90b82f4a5442195ff Mon Sep 17 00:00:00 2001 From: Vlad Gribinchuk Date: Wed, 20 Feb 2019 16:39:50 +0200 Subject: [PATCH 1/3] Feature: "Wipe Script" --- resources/definitions/fdmprinter.def.json | 197 ++++++++++++++++++++++ 1 file changed, 197 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 677fbf565d..7315f82f0a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6954,6 +6954,203 @@ "type": "float", "enabled": "bridge_settings_enabled and bridge_enable_more_layers", "settable_per_mesh": true + }, + "clean_between_layers": + { + "label": "Wipe Nozzle Between Layers", + "description": "Whether to include nozzle wipe G-Code between layers.", + "default_value": false, + "type": "bool", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "max_extrusion_before_wipe": + { + "label": "Material Volume Between Wipes", + "description": "Maximum material, that can be extruded before another nozzle wipe is initiated.", + "default_value": 10, + "type": "float", + "unit": "mm³", + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_retraction_enable": + { + "label": "Wipe Retraction Enable", + "description": "Retract the filament when the nozzle is moving over a non-printed area.", + "type": "bool", + "default_value": true, + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_retraction_amount": + { + "label": "Wipe Retraction Distance", + "description": "Amount to retract the filament so it does not ooze during the wipe sequence.", + "unit": "mm", + "type": "float", + "default_value": 1, + "minimum_value_warning": "-0.0001", + "maximum_value_warning": "10.0", + "enabled": "wipe_retraction_enable and clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_retraction_extra_prime_amount": + { + "label": "Wipe Retraction Extra Prime Amount", + "description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.", + "unit": "mm³", + "type": "float", + "default_value": 0, + "minimum_value_warning": "-0.0001", + "maximum_value_warning": "10.0", + "enabled": "wipe_retraction_enable and clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "wipe_retraction_speed": + { + "label": "Wipe Retraction Speed", + "description": "The speed at which the filament is retracted and primed during a wipe retraction move.", + "unit": "mm/s", + "type": "float", + "default_value": 5, + "minimum_value": "0", + "minimum_value_warning": "1", + "maximum_value": "machine_max_feedrate_e", + "maximum_value_warning": "70", + "enabled": "wipe_retraction_enable and clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": + { + "wipe_retraction_retract_speed": + { + "label": "Wipe Retraction Retract Speed", + "description": "The speed at which the filament is retracted during a wipe retraction move.", + "unit": "mm/s", + "type": "float", + "default_value": 3, + "minimum_value": "0", + "maximum_value": "machine_max_feedrate_e", + "minimum_value_warning": "1", + "maximum_value_warning": "70", + "enabled": "wipe_retraction_enable and clean_between_layers", + "value": "retraction_speed", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "wipe_retraction_prime_speed": + { + "label": "Retraction Prime Speed", + "description": "The speed at which the filament is primed during a wipe retraction move.", + "unit": "mm/s", + "type": "float", + "default_value": 2, + "minimum_value": "0", + "maximum_value": "machine_max_feedrate_e", + "minimum_value_warning": "1", + "maximum_value_warning": "70", + "enabled": "wipe_retraction_enable and clean_between_layers", + "value": "retraction_speed", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } + }, + "wipe_pause": + { + "label": "Wipe Pause", + "description": "Pause after the unretract.", + "unit": "s", + "type": "float", + "default_value": 0, + "minimum_value": "0", + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_hop_enable": + { + "label": "Wipe Z Hop When Retracted", + "description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", + "type": "bool", + "default_value": true, + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_hop_amount": + { + "label": "Wipe Z Hop Height", + "description": "The height difference when performing a Z Hop.", + "unit": "mm", + "type": "float", + "default_value": 1, + "enabled": "wipe_hop_enable and clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_hop_speed": + { + "label": "Wipe Hop Speed", + "description": "Speed to move the z-axis during the hop.", + "unit": "mm/s", + "type": "float", + "default_value": 100, + "minimum_value": "0", + "minimum_value_warning": "1", + "enabled": "wipe_hop_enable and clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_brush_pos_x": + { + "label": "Wipe Brush X Position", + "description": "X location where wipe script will start.", + "type": "float", + "unit": "mm", + "default_value": 100, + "minimum_value_warning": "0", + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_repeat_count": + { + "label": "Wipe Repeat Count", + "description": "Number of times to move the nozzle across the brush.", + "type": "int", + "minimum_value": "0", + "default_value": 5, + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false + }, + "wipe_move_distance": + { + "label": "Wipe Move Distance", + "description": "The distance to move the head back and forth across the brush.", + "unit": "mm", + "type": "float", + "default_value": 20, + "enabled": "clean_between_layers", + "settable_per_mesh": false, + "settable_per_extruder": true, + "settable_per_meshgroup": false } } }, From 6e955f780b115a86197b1c8b2e2d892efbfe8cf6 Mon Sep 17 00:00:00 2001 From: Vlad Gribinchuk Date: Wed, 3 Apr 2019 13:45:19 +0300 Subject: [PATCH 2/3] Change description of clean_between_layers to make the relation this setting to retract_at_layer_change more clear for user --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7315f82f0a..4eae788b32 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6958,7 +6958,7 @@ "clean_between_layers": { "label": "Wipe Nozzle Between Layers", - "description": "Whether to include nozzle wipe G-Code between layers.", + "description": "Whether to include nozzle wipe G-Code between layers. Enabling this setting could influence behavior of retract at layer change. Please use Wipe Retraction settings to control retraction at layers where the wipe script will be working.", "default_value": false, "type": "bool", "settable_per_mesh": false, From a56e088ee0926d722ef3f19704651a2fa3108662 Mon Sep 17 00:00:00 2001 From: Vlad Gribinchuk Date: Wed, 3 Apr 2019 13:46:37 +0300 Subject: [PATCH 3/3] Put all of wiping settings to expert.cfg file to allow also browsing them --- resources/setting_visibility/expert.cfg | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index d83a7775c5..7754555ba7 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -382,3 +382,18 @@ adaptive_layer_height_enabled adaptive_layer_height_variation adaptive_layer_height_variation_step adaptive_layer_height_threshold +clean_between_layers +max_extrusion_before_wipe +wipe_retraction_enable +wipe_retraction_amount +wipe_retraction_extra_prime_amount +wipe_retraction_speed +wipe_retraction_retract_speed +wipe_retraction_prime_speed +wipe_pause +wipe_hop_enable +wipe_hop_amount +wipe_hop_speed +wipe_brush_pos_x +wipe_repeat_count +wipe_move_distance