{ "gcode_macro PAUSE" = { description = "Pause the running print"; rename_existing = "PAUSE_BASE"; variable_extrude = 1.0; gcode = '' ##### read E from pause macro ##### {% set E = printer["gcode_macro PAUSE"].extrude|float %} ##### set park positon for x and y ##### # default is your max posion from your printer.cfg {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} ##### calculate save lift position ##### {% set max_z = printer.toolhead.axis_maximum.z|float %} {% set act_z = printer.toolhead.position.z|float %} {% if act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% else %} {% set z_safe = max_z - act_z %} {% endif %} ##### end of definitions ##### PAUSE_BASE G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} {% if "xyz" in printer.toolhead.homed_axes %} G1 Z{z_safe} F900 G90 G1 X{x_park} Y{y_park} F6000 {% else %} {action_respond_info("Printer not homed")} {% endif %} ''; }; "gcode_macro RESUME" = { description = "Resume a paused print"; rename_existing = "RESUME_BASE"; gcode = '' ##### read E from pause macro ##### {% set E = printer["gcode_macro PAUSE"].extrude|float %} #### get VELOCITY parameter if specified #### {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} ##### end of definitions ##### {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} ''; }; "gcode_macro CANCEL_PRINT" = { description = "Cancel the running print"; rename_existing = "CANCEL_PRINT_BASE"; gcode = '' TURN_OFF_HEATERS CLEAR_PAUSE SDCARD_RESET_FILE CANCEL_PRINT_BASE END_PRINT ''; }; "gcode_macro START_PRINT" = { description = "Start of print base sequence"; variable_bed_temp = 60; variable_extruder_temp = 200; gcode = '' # Start bed heating M140 S{bed_temp} # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=0.0 # Home the printer G28 # Use absolute coordinates G90 # Reset extruder distance G92 E0 # Move the nozzle near the bed #G1 Z5 F3000 # Move the nozzle very close to the bed #G1 Z0.15 F300 # Wait for bed to reach temperature M190 S{bed_temp} # Set and wait for nozzle to reach temperature M109 S{extruder_temp} # Prime the nozzle G1 X-3 F500 # Move out of print volume # G1 E4 F500 # Build a bit of pressure # G1 Y60 E9 F500 # start purge line # G1 Y100 E12.5 F500 # finish purge line # Prime the nozzle G1 Y140 E15 F1500 ''; }; "gcode_macro END_PRINT" = { description = "End-of-print sequence"; gcode = '' # Turn off bed, extruder, and fan M140 S0 M104 S0 M107 # Move nozzle away from print while retracting G91 G1 X-2 Y-2 E-5 F300 # Raise nozzle by 10mm G1 Z10 F3000 # Home X axis G28 X G90 # Move bed forward G1 Y180 # Disable X, Y and extruder steppers M84 X Y E ''; }; }