# LOAD_FILAMENT, UNLOAD_FILAMENT (based on the KlipperScreen recommended macros) [gcode_macro LOAD_FILAMENT] variable_load_distance: 60 variable_purge_distance: 20 gcode: {% set speed = params.SPEED|default(15) %} {% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 15 %} SAVE_GCODE_STATE NAME=load_state G91 G92 E0 G1 E{load_distance} F{max_velocity} # fast-load G1 E{purge_distance} F{speed} # purge RESTORE_GCODE_STATE NAME=load_state [gcode_macro UNLOAD_FILAMENT] variable_unload_distance: 100 variable_purge_distance: 0 gcode: {% set speed = params.SPEED|default(15) %} {% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 30 %} SAVE_GCODE_STATE NAME=unload_state G91 G92 E0 G1 E{purge_distance} F{speed} # purge G1 E-20 F100# unload G1 E-{unload_distance} F{max_velocity} # fast-unload RESTORE_GCODE_STATE NAME=unload_state