Skip to main content

Pause and Cancel Print Custom Positions

This page is used to configure _CLIENT_VARIABLE in Mainsail / Fluidd client macros to control the park position, retraction length, and movement speed during pause, resume, and cancel print operations.

Prerequisites

  • [include mainsail.cfg] or [include fluidd.cfg] must be included in printer.cfg.
  • Add the macro below to printer.cfg or a separate macro file.
  • Save and restart Klipper after modification.
Important Notes
  • False indicates not enabled, True indicates enabled.
  • The gcode: at the end of the configuration file must be preserved and cannot be deleted.
  • Custom park coordinates must be within the machine's X/Y soft limit range.

Chinese Translation

printer.cfg
[gcode_macro _CLIENT_VARIABLE]
### Pause macro related custom settings
variable_use_custom_pos : False ; Whether to use X/Y custom park coordinates [True/False]
variable_custom_park_x : 0.0 ; X position when pausing print
variable_custom_park_y : 0.0 ; Y position when pausing print
variable_custom_park_dz : 2.0 ; Z-axis lift distance when pausing print, in mm

### Cancel print related custom settings
variable_park_at_cancel : False ; Whether to move to park position when canceling print [True/False]
variable_park_at_cancel_x : None ; X position after canceling print
variable_park_at_cancel_y : None ; Y position after canceling print

### Extruder actions during pause, resume, and cancel
variable_retract : 1.0 ; Retraction length when pausing print, in mm
variable_cancel_retract : 5.0 ; Retraction length when canceling print, in mm
variable_speed_retract : 35.0 ; Retraction speed, in mm/s
variable_unretract : 1.0 ; Extrusion length when resuming print, in mm
variable_speed_unretract : 35.0 ; Resume extrusion speed, in mm/s
variable_speed_hop : 15.0 ; Z-axis movement speed, in mm/s
variable_speed_move : 100.0 ; XY movement speed, in mm/s

### Idle timeout settings
### One day is 86400 seconds
variable_idle_timeout : 86400 ; Set to 0 to not modify or restore idle_timeout

# If setting variable_use_fw_retract to True, [firmware_retraction] must be defined in printer.cfg
variable_use_fw_retract : False ; Whether to use firmware retraction instead of manual retraction [True/False]
variable_runout_sensor : "" ; Filament runout sensor config name, e.g., "filament_switch_sensor runout"

# Custom macros only support single-line commands; for multiple commands, create a separate macro and call it here.
variable_user_pause_macro : "" ; Executed after PAUSE_BASE
variable_user_resume_macro: "" ; Executed before RESUME_BASE
variable_user_cancel_macro: "" ; Executed before CANCEL_PRINT_BASE
gcode:

English (Original)

printer.cfg
[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos : False ; use custom park coordinates for x,y [True/False]
variable_custom_park_x : 0.0 ; custom x position; value must be within your defined min and max of X
variable_custom_park_y : 0.0 ; custom y position; value must be within your defined min and max of Y
variable_custom_park_dz : 2.0 ; custom dz value; the value in mm to lift the nozzle when move to park position
variable_retract : 1.0 ; the value to retract while PAUSE
variable_cancel_retract : 5.0 ; the value to retract while CANCEL_PRINT
variable_speed_retract : 35.0 ; retract speed in mm/s
variable_unretract : 1.0 ; the value to unretract while RESUME
variable_speed_unretract : 35.0 ; unretract speed in mm/s
variable_speed_hop : 15.0 ; z move speed in mm/s
variable_speed_move : 100.0 ; move speed in mm/s
variable_park_at_cancel : False ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False]
variable_park_at_cancel_x : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
variable_park_at_cancel_y : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
# !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!!
variable_use_fw_retract : False ; use fw_retraction instead of the manual version [True/False]
variable_idle_timeout : 0 ; time in sec until idle_timeout kicks in. Value 0 means that no value will be set or restored
variable_runout_sensor : "" ; If a sensor is defined, it will be used to cancel the execution of RESUME in case no filament is detected.
# Specify the config name of the runout sensor e.g "filament_switch_sensor runout". Hint use the same as in your printer.cfg
# !!! Custom macros, please use with care and review the section of the corresponding macro.
# These macros are for simple operations like setting a status LED. Please make sure your macro does not interfere with the basic macro functions.
# Only single line commands are supported, please create a macro if you need more than one command.
variable_user_pause_macro : "" ; Everything inside the "" will be executed after the klipper base pause (PAUSE_BASE) function
variable_user_resume_macro: "" ; Everything inside the "" will be executed before the klipper base resume (RESUME_BASE) function
variable_user_cancel_macro: "" ; Everything inside the "" will be executed before the klipper base cancel (CANCEL_PRINT_BASE) function
gcode:
Loading...