diff --git a/macros/macros.cfg b/macros/macros.cfg index 486ea60..3a6f971 100644 --- a/macros/macros.cfg +++ b/macros/macros.cfg @@ -1,18 +1,27 @@ [pause_resume] [display_status] +[gcode_macro _globals] +variable_pre_purge_prime_length: 1.4 +gcode: + SET_GCODE_VARIABLE MACRO=_globals VARIABLE=pre_purge_prime_length VALUE={ variable_pre_purge_prime_length } + [gcode_macro PURGE_LINE] # https://github.com/JoeCat1207/V0.1-Purge-line-SuperSlicer/blob/main/Purgeline.txt gcode: - G0 Y0 X40 F4000 ; go to tongue of print bed - G1 Z0.2 F500.0 ; move bed to nozzle - G92 E0.0 ; reset extruder - G1 E1.40 F500 ; pre-purge prime LENGTH SHOULD MATCH YOUR PRINT_END RETRACT - G1 X80 E8.0 F500.0 ; intro line 1 - G1 Y0.3 ; move in a little - G1 X40 E8.0 F500.0 ; second line - G92 E0.0 ; reset extruder - G1 Z2.0 ; move nozzle to prevent scratch + {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length %} + {% if not PRE_PURGE_PRIME_LENGTH %} + {action_raise_error('Pre purge prime length not found')} + {% endif %} + G0 Y0 X40 F4000 ; go to tongue of print bed + G1 Z0.2 F500.0 ; move bed to nozzle + G92 E0.0 ; reset extruder + G1 E{PRE_PURGE_PRIME_LENGTH} F500 ; pre-purge prime LENGTH SHOULD MATCH YOUR PRINT_END RETRACT + G1 X80 E8.0 F500.0 ; intro line 1 + G1 Y0.3 ; move in a little + G1 X40 E8.0 F500.0 ; second line + G92 E0.0 ; reset extruder + G1 Z2.0 ; move nozzle to prevent scratch # DELETEME # [gcode_macro CANCEL_PRINT] @@ -58,10 +67,14 @@ gcode: [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - please customize for your slicer of choice gcode: - M400 ; wait for buffer to clear - G92 E0 ; zero the extruder - G1 E-1.40 F400 ; retract filament - G91 ; relative positioning + {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length %} + {% if not PRE_PURGE_PRIME_LENGTH %} + {action_raise_error('Pre purge prime length not found')} + {% endif %} + M400 ; wait for buffer to clear + G92 E0 ; zero the extruder + G1 E-{PRE_PURGE_PRIME_LENGTH} F400 ; retract filament + G91 ; relative positioning # Get Boundaries {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}