##### # FILAMENT MANAGEMENT ##### [gcode_macro UNLOAD_FILAMENT] description: Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams. gcode: SAVE_GCODE_STATE NAME=unload_state G91 {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %} M117 Heating... # Heat up hotend to provided temp or 220 as default as that should work OK with most filaments. M104 S{params.TEMP|default(220, true)} TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(220, true)} {% endif %} {% set unload_speed = printer["gcode_macro RatOS"].filament_unload_speed|float * 60 %} {% set unload_length = printer["gcode_macro RatOS"].filament_unload_length|float %} M117 Unloading filament... # Extrude a bit G0 E10 F300 # Extract filament to cold end area G0 E-3 F3600 # Wait for three seconds G4 P3000 # Push back the filament to smash any stringing G0 E3 F3600 # Extract back fast in to the cold zone G0 E-10 F3600 G4 P1000 # Continue extraction slowly, allow the filament time to cool solid before it reaches the gears G0 E-{unload_length} F{unload_speed} M117 Filament unloaded! RESPOND MSG="Filament unloaded! Please inspect the tip of the filament before reloading." UPDATE_DELAYED_GCODE ID=_IDLE_HEATER_SHUTDOWN DURATION={printer["gcode_macro RatOS"].load_unload_idle_delay} RESTORE_GCODE_STATE NAME=unload_state [gcode_macro LOAD_FILAMENT] description: Loads new filament. Note: be careful with PETG, make sure you inspect the tip of your filament before loading to avoid jams. gcode: SAVE_GCODE_STATE NAME=load_state G91 # Heat up hotend to provided temp or 220 as default as that should work OK with most filaments. {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %} FORCE_MOVE STEPPER=extruder DISTANCE=15 VELOCITY=10 ACCEL=1000 M117 Heating... M104 S{params.TEMP|default(230, true)} TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(230, true)} {% endif %} {% set load_speed = printer["gcode_macro RatOS"].filament_load_speed|float * 60 %} {% set load_length = printer["gcode_macro RatOS"].filament_load_length|float %} {% set load_second_speed = printer["gcode_macro RatOS"].filament_load_second_speed|float * 60 %} {% set load_second_length = printer["gcode_macro RatOS"].filament_load_second_length|float %} M117 Loading filament... # Load the filament into the hotend area. G0 E{load_length} F{load_speed} # Wait a secod G4 P1000 # Purge G0 E{load_second_length} F{load_second_speed} #G0 E40 F100 # Wait for purge to complete M400 M117 Filament loaded! RESPOND MSG="Filament loaded!" UPDATE_DELAYED_GCODE ID=_IDLE_HEATER_SHUTDOWN DURATION={printer["gcode_macro RatOS"].load_unload_idle_delay} RESTORE_GCODE_STATE NAME=load_state