####################################################################
# Helper macros
# - MOVE_SPEED
# - NOTIFY_BED
# - NOTIFY_EXTRUDER
# - ZC - calibrate z and move to front to measure
# - TZC - Test Z Calibration
####################################################################

[gcode_macro MOVE_SPEED]
description: move along certain patterns with selected speed
gcode:
  {% set F=params.F|default(3000)|int %}
  {% set N=params.N|default(1)|int %}
  {% if printer.idle_timeout.state != "Printing" %}
    {% if "xyz" in printer.toolhead.homed_axes %}
      M118 moving N={N} with F={F}
      {% set X0=275 %}
      {% set X1=25 %}
      {% set Y0=275 %}
      {% set Y1=25 %}
      ; start
      G0 X{X0} Y{Y0} F3000
      G0 F{F}
      {% for i in range(N) %}
        M118 move {(i+1)}/{N}
        ; move 1
        G0 X{X1} Y{Y0}
        G0 X{X0} Y{Y1}
        ; move 2
        G0 X{X0} Y{Y0}
        G0 X{X1} Y{Y1}
        ; move 3
        G0 X{X0} Y{Y1}
        G0 X{X1} Y{Y0}
        ; move 4
        G0 X{X1} Y{Y1}
        G0 X{X0} Y{Y0}
      {% endfor %}
      M118 done
    {% else %}
      M118 Printer not homed
    {% endif %}
  {% else %}
    M118 Already printing
  {% endif %}


[gcode_macro NOTIFY_BED]
gcode:
  {% set BED=params.BED|default(0)|int %}
  M117 HEATING BED from {printer.heater_bed.temperature} to {BED}
  M118 HEATING BED from {printer.heater_bed.temperature} to {BED}


[gcode_macro NOTIFY_EXTRUDER]
gcode:
  {% set EXTRUDER=params.EXTRUDER|default(0)|int %}
  M117 HEATING EXTRUDER from {printer.extruder.temperature} to {EXTRUDER}
  M118 HEATING EXTRUDER from {printer.extruder.temperature} to {EXTRUDER}