[gcode_macro start_print] gcode: # todo check if printer is able to print {% set calibrate = printer["gcode_macro VARIABLES"].caliabrate %} CALIBRATE SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 G90 # absolute positioningofnon G92 E0 # reset extruder origin G1 Z5 F5000 #lift nozzle G1 y240 X240 F5000 #move to edge M104 S{params.EXTRUDER_TEMP}; set extruder temp M140 S{params.BED_TEMP} ; set bed temp M109 S{params.EXTRUDER_TEMP}; Wait for extruder temp M190S{params.BED_TEMP}; Wait for bed temp [gcode_macro stop_print] gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 G1 Z80 # M84 ; disable motors #M104 S0 ; turn off temperature [gcode_macro PAUSE] rename_existing: BASE_PAUSE gcode: # Parameters {% set z = params.Z|default(10)|int %} ; z hop amount {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 ; disable filament sensor SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max G91 ; relative positioning G1 Z{z} F900 ; raise Z up by z hop amount {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } ; if z max is exceeded, show message and set zhop value for resume to 0 SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 ; absolute positioning G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y-5} F6000 ; park toolhead at rear center SAVE_GCODE_STATE NAME=PAUSEPARK ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error) # M104 S0 ; turn off hotend SET_IDLE_TIMEOUT TIMEOUT=43200 ; set timeout to 12 hours {% endif %} [gcode_macro RESUME] rename_existing: BASE_RESUME variable_zhop: 0 variable_etemp: 0 gcode: # Parameters {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 ; enable filament sensor #INITIAL_RGB ; reset LCD color SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error) G91 ; relative positioning M83 ; relative extruder positioning {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 ; prime nozzle by E, lower Z back down {% else %} G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend) {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 ; restore position BASE_RESUME ; resume print {% endif %} [gcode_macro CANCEL_PRINT] rename_existing: BASE_CANCEL_PRINT gcode: SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value CLEAR_PAUSE SDCARD_RESET_FILE PRINT_END BASE_CANCEL_PRINT