Added new PURGE/PRIME macros; added G2 anti-string to end

This commit is contained in:
Zach Schimke 2021-08-20 14:59:39 -07:00
parent 3f1c4f24e2
commit 8e48e3eb80
3 changed files with 48 additions and 50 deletions

View File

@ -9,20 +9,6 @@ gcode:
SAVE_CONFIG SAVE_CONFIG
# Do nozzle priming
[gcode_macro PRIME_EXTRUDER]
gcode:
M117 Priming
G92 E0
G1 X4.1 Y0 Z2.0 F6000
G1 X4.1 Y20 Z0.3 F6000.0
G1 X4.1 Y80.0 Z0.3 F600.0 E9
G1 X4.1 Y120.0 Z0.3 F600.0 E12
G92 E0
G1 F2400 E-0.2 # Small retract to remove pressure
G1 Z2.0 F3000
[gcode_macro CLEAN_EXTRUDER] [gcode_macro CLEAN_EXTRUDER]
gcode: gcode:
M117 Cleaning # Indicate nozzle clean in progress on LCD M117 Cleaning # Indicate nozzle clean in progress on LCD

25
macros.d/purge_prime.cfg Normal file
View File

@ -0,0 +1,25 @@
# Do nozzle purge
[gcode_macro PURGE_EXTRUDER]
gcode:
SAVE_GCODE_STATE NAME=PURGE
M117 Purging line
G1 Z0.2 F6000.0
G91
G1 Z2 E9 F1000 ; Slowly rise printhead while purging
G90
RESTORE_GCODE_STATE NAME=PURGE
# Do nozzle priming
[gcode_macro PRIME_EXTRUDER]
gcode:
SAVE_GCODE_STATE NAME=PRIME
M117 Prime Line
G0 X15.0 Z0.2 F200 ; Go to X15
G92 E0 ; reset extrusion distance
G1 X65.0 E9 F1000 ; 9mm over 50mm
G1 X105.0 E10 F1000 ; 10mm over 40mm
G92 E0 ; reset extrusion distance
G1 F2400 E-0.1 ; Small retract to remove pressure
G1 Z2 F6000 ; Lift Z
RESTORE_GCODE_STATE NAME=PRIME

View File

@ -24,7 +24,7 @@ gcode:
# Start preheating the bed # Start preheating the bed
M117 Heating bed M117 Heating bed
_LCD_KNOB COLOR=RED BLINK=1 _STATUS_LED COLOR=RED BLINK=1
M140 S{T_BED} M140 S{T_BED}
# Perform a G28 'home' (if needed) # Perform a G28 'home' (if needed)
@ -33,7 +33,7 @@ gcode:
# Check to see if we need more time preheating the bed, if so # Check to see if we need more time preheating the bed, if so
{% if printer.heater_bed.temperature < params.T_BED|float*0.85 %} {% if printer.heater_bed.temperature < params.T_BED|float*0.85 %}
M117 Heating bed to 85% M117 Heating bed to 85%
G1 X{mid_x} Y{mid_y} Z10 F6000 G0 X{mid_x} Y{mid_y} Z10 F20000
M106 M106
M190 S{params.T_BED|float*0.85} M190 S{params.T_BED|float*0.85}
{% endif %} {% endif %}
@ -46,61 +46,48 @@ gcode:
M107 M107
# Move the nozzle near the bed # Move the nozzle near the bed
G1 X0.1 Y0.1 Z2.0 F6000 G0 X0 Y{MAX_Y} Z2.0 F20000
G1 Z0.3 F6000
M117 Heating toolhead M117 Heating toolhead
M109 S{T_EXTRUDER} M109 S{T_EXTRUDER}
# Prime line # Prime line
_STATUS_LED COLOR=GREEN BLINK=1
PURGE_EXTRUDER
PRIME_EXTRUDER PRIME_EXTRUDER
M117 Printing M117
_STATUS_LED COLOR=BLUE BLINK=1
[gcode_macro END_PRINT] [gcode_macro END_PRINT]
variable_print_done: 'false' variable_print_done: 'false'
gcode: gcode:
SAVE_GCODE_STATE NAME=STATE_PRINT_END
##### Get Boundaries ##### ##### Get Boundaries #####
{% set max_x = printer.toolhead.axis_maximum.x|float %}
{% set max_y = printer.toolhead.axis_maximum.y|float %} {% set max_y = printer.toolhead.axis_maximum.y|float %}
{% set max_z = printer.toolhead.axis_maximum.z|float %} {% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_x = printer.toolhead.position.x|float %} {% set mid_x = (printer.toolhead.axis_maximum.z|float / 2)|float %}
{% set act_y = printer.toolhead.position.y|float %}
{% set act_z = printer.toolhead.position.z|float %}
##### Calculate save move ##### SAVE_GCODE_STATE NAME=STATE_PRINT_END
{% if act_x < (max_x - 20.0) %} M400 ; Wait for buffer to clear
{% set x_safe = 20.0 %}
{% else %} # Anti-Stringing
{% set x_safe = -20.0 %} G92 E0 ; zero the extruder
{% endif %} G1 E-2.0 F3600 ; retract 2mm of filament at 60mm/s
{% if act_y < (max_y - 20.0) %} G91 ; relative positioning
{% set y_safe = 20.0 %} G1 X1 F20000 ; move 1mm to the side at 333mm/sec
{% else %} G2 E0 I-1 ; do a no extrusion circle move with a 0.5mm radius centered on orig
{% set y_safe = -20.0 %} G1 Z5.00 F3000 ; move up by 5mm @ 50mm/sec to clear the print
{% endif %} G90 ; absolute positioning
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
M400
G92 E0
G1 E-2 F1800
G91
G0 Z{z_safe} F3600
G0 X{x_safe} Y{y_safe} F20000 ; move nozzle to remove stringing
TURN_OFF_HEATERS TURN_OFF_HEATERS
M107 M107
G90 G90
G0 X60 Y{max_y} F18000 G0 X60 Y{max_y} F20000
G0 Z{max_z} F6000
BED_MESH_CLEAR BED_MESH_CLEAR
M300 ; Play a tone M300 ; Play a tone
_LCD_KNOB COLOR=GREEN _STATUS_LED COLOR=GREEN
UPDATE_DELAYED_GCODE ID=_CLEAR_DISPLAY DURATION=10 UPDATE_DELAYED_GCODE ID=_CLEAR_DISPLAY DURATION=10
SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=print_done VALUE='"true"' SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=print_done VALUE='"true"'
RESTORE_GCODE_STATE NAME=STATE_PRINT_END RESTORE_GCODE_STATE NAME=STATE_PRINT_END