V0: Conditionals

Macros#

These macros are just quality of life types of things and are not required for operation of a printer connected via Klipper.

WARNING

These work for me and may not work for you.

They may destroy your printer.

You have been warned!

Conditional macros#

Conditional

# conditioinal G28
[gcode_macro CG28]
gcode:
    {% if "xyz" not in printer.toolhead.homed_axes %}
        G28
    {% endif %}

Parking macros#

Parking

# Park front center
[gcode_macro PARKFRONT]
gcode:
    CG28                              ; home if not already homed
    SAVE_GCODE_STATE NAME=PARKFRONT
    G90                               ; absolute positioning
    G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} Z{printer.toolhead.axis_maximum.z/2} F6000
    RESTORE_GCODE_STATE NAME=PARKFRONT


# Park front center, but low down.
[gcode_macro PARKFRONTLOW]
gcode:
    CG28                             ; home if not already homed
    SAVE_GCODE_STATE NAME=PARKFRONT
    G90                              ; absolute positioning
    G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} Z20 F6000
    RESTORE_GCODE_STATE NAME=PARKFRONT


# Park top rear left
[gcode_macro PARKREAR]
gcode:
    CG28                             ; home if not already homed
    SAVE_GCODE_STATE NAME=PARKREAR
    G90                              ; absolute positioning
    G0 X{printer.toolhead.axis_minimum.x+10} Y{printer.toolhead.axis_maximum.y-10} Z{printer.toolhead.axis_maximum.z-50} F6000
    RESTORE_GCODE_STATE NAME=PARKREAR


# Park at center of build volume
[gcode_macro PARKCENTER]
gcode:
    CG28                              ; home if not already homed
    SAVE_GCODE_STATE NAME=PARKCENTER
    G90                               ; absolute positioning
    G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y/2} Z{printer.toolhead.axis_maximum.z/2} F6000
    RESTORE_GCODE_STATE NAME=PARKCENTER


# Park 15mm above center of bed
[gcode_macro PARKBED]
gcode:
    CG28                               ; home if not already homed
    SAVE_GCODE_STATE NAME=PARKBED
    G90                                ; absolute positioning
    G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y/2} Z15 F6000
    RESTORE_GCODE_STATE NAME=PARKBED