# M600: Filament Change. This macro will pause the printer, move the # tool to the change position, and retract the filament 50mm. Adjust # the retraction settings for your own extruder. After filament has # been changed, the print can be resumed from its previous position # with the "RESUME" gcode. [gcode_macro M600] default_parameter_X: 50 default_parameter_Y: 0 default_parameter_Z: 10 gcode: SAVE_GCODE_STATE NAME=M600_state PAUSE G91 G1 E-.8 F2700 G1 Z{Z} G90 G1 X{X} Y{Y} F3000 G91 G1 E-50 F1000 G1 X0.1 F3000 G1 E-50 F1000 G1 X-0.1 F3000 G1 E-50 F1000 G1 X0.1 F3000 G1 E-50 F1000 G1 X-0.1 F3000 G1 E-50 F1000 G1 X0.1 F3000 G1 E-50 F1000 G1 X-0.1 F3000 RESTORE_GCODE_STATE NAME=M600_state # HMM? verify Does not work cause if it's sent by octoprint klipper will assume that octoprint must pause, which it won't.... #[gcode_macro BED_LEVEL] #gcode: # Bed leveling Ender 3 by ingenioso3D # Modified by elproducts CHEP FilamentFriday.com # G90 # G28 # Home all axis # G1 Z5 # Lift Z axis # G1 X32 Y36 # Move to Position 1 # G1 Z0 # PAUSE # G1 Z10 # Lift Z axis # G1 X32 Y206 # Move to Position 2 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X202 Y206 # Move to Position 3 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X202 Y36 # Move to Position 4 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X117 Y121 # Move to Position 5 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X32 Y206 # Move to Position 2 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X202 Y206 # Move to Position 3 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X202 Y36 # Move to Position 4 # G1 Z0 # PAUSE # G1 Z5 # Lift Z axis # G1 X32 Y36 # Move to Position 1 # G1 Z0 # PAUSE # # G28 # M84 # disable motors [gcode_macro PARK_WAIT] default_parameter_X: 0 #edit to your park position default_parameter_Y: 230 #edit to your park position default_parameter_Z: 10 #edit to your park position default_parameter_E: 20 #edit to your retract length default_parameter_MILLIS: 5 gcode: SAVE_GCODE_STATE NAME=PAUSE_state G91 G1 E-{E} F2100 G1 Z{Z} G90 G1 X{X} Y{Y} F6000 G4 P{MILLIS} G91 G1 E{E} F2100 G90 RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 [gcode_macro PAUSE] rename_existing: BASE_PAUSE default_parameter_X: 0 #edit to your park position default_parameter_Y: 230 #edit to your park position default_parameter_Z: 10 #edit to your park position default_parameter_E: 20 #edit to your retract length gcode: SAVE_GCODE_STATE NAME=PAUSE_state BASE_PAUSE G91 G1 E-{E} F2100 G1 Z{Z} G90 G1 X{X} Y{Y} F6000 [gcode_macro RESUME] rename_existing: BASE_RESUME default_parameter_E: 5 #edit to your retract length gcode: G91 G1 E{E} F2100 G90 RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 BASE_RESUME [gcode_macro CANCEL_PRINT] rename_existing: BASE_CANCEL_PRINT gcode: TURN_OFF_HEATERS CLEAR_PAUSE SDCARD_RESET_FILE BASE_CANCEL_PRINT [gcode_macro PRIME_LINE] gcode: G92 E0 # Reset Extruder G1 Z2.0 F3000 # Move Z Axis up little to prevent scratching of Heat Bed G1 X0.1 Y20 Z0.3 F5000.0 # Move to start position G1 X0.1 Y200.0 Z0.3 F1500.0 E15 # Draw the first line G1 X0.4 Y200.0 Z0.3 F5000.0 # Move to side a little G1 X0.4 Y20 Z0.3 F1500.0 E30 # Draw the second line G92 E0 # Reset Extruder G1 Z2.0 F3000 # Move Z Axis up little to prevent scratching of Heat Bed G1 X5 Y20 Z0.3 F5000.0 # Move over to prevent blob squish [gcode_macro START_PRINT] gcode: # Use absolute coordinates G90 # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=0.93 # Home the printer G28 # Prime line PRIME_LINE [gcode_macro END_PRINT] gcode: G91 # Relative positioning G1 E-2 F2700 # Retract a bit G1 E-2 Z0.2 F2400 # Retract and raise Z G1 X5 Y5 F3000 # Wipe out G1 Z10 #Raise Z more G90 # Absolute positionning G1 X0 Y200 # Present print M106 S0 # Turn-off fan M104 S0 # Turn-off hotend M140 S0 # Turn-off bed M84 X Y E # Disable all steppers but Z