この記事は3Dプリンターアドベントカレンダーの1日目の記事です。
ノズルベッド間の調整のために特定位置(xyが中央かつz=0)に移動するG1コマンドを記載しただけのマクロを用意して使ってます。
G1コマンドを実行するためには事前にホーミングが済んでいる必要がありますが、パッと見ただけではホーミングが済んでいるかわかりません。 状態を考えるのが無駄なので、マクロ内にG28を刺し込んで毎回ホーミングが実行されるようにしていました。 しかし、プロービングもあるので微妙に待ち時間が長いのが気になっていました。
別件でklipperのgcodeを読む機会があり、その時に「いけそうだな」と思ったので調べました。
調査結果
ホーミング状態の確認と、状態を確認してスキップできることがわかりました。
以下は、xyz全軸ホーミング済みの場合にG28をスキップする処理です。
{% if printer.toolhead.homed_axes != "xyz" %} G28 {% endif %}
わざわざホーミングしなおしてほしくないマクロの中で置き換えることでいい感じになるんじゃないかと思います。