メインコンテンツにスキップ

Homing Override - ホーミングオーバーライド設定

概要

このページでは、3Dプリンターのホーミングプロセスを最適化し、安全性と精度を向上させるための2つのKlipperホーミングオーバーライド(Homing Override)参考設定を提供します。

設定リスト

設定機能説明適用シナリオ
設定一基本ホーミングオーバーライド + ヒートベッド中央移動標準ホーミングプロセスの最適化
設定二ノズル温度チェック + 安全ホーミング高温環境下での安全なホーミング

設定一:基本ホーミングオーバーライド

機能説明

  • Z軸が既に原点復帰済みか自動検出、未復帰時は仮想Z位置を設定
  • Z軸原点復帰前にヒートベッド中心位置へ自動移動
  • 独立したX、Y、Z原点復帰コマンドをサポート
  • printer.configfile.configを使用してプリンターの最大移動範囲を読み取り

完全な設定

[force_move]
enable_force_move: true

[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}

; Z軸が原点復帰していない場合、仮想位置を設定して上昇
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}

{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}

{% if home_all or 'X' in params %}
G28 X
{% endif %}

{% if home_all or 'Y' in params %}
G28 Y
{% endif %}

{% if home_all or 'Z' in params %}
; ヒートベッド中心へ移動【重要】Z軸原点復帰時の衝突防止
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000
{% endif %}

主要コード説明

G0 X{max_x / 2} Y{max_y / 2} F3600

このコード行は、Z軸を原点復帰させる前に、ノズルをヒートベッドの中心位置に移動させる役割を果たします。

  • X{max_x / 2}:X軸を最大移動範囲の半分(ヒートベッド中心X座標)に移動
  • Y{max_y / 2}:Y軸を最大移動範囲の半分(ヒートベッド中心Y座標)に移動
  • F3600:移動速度は3600mm/min(60mm/s)、高速移動

なぜヒートベッド中心に移動する必要があるのか?

  1. 衝突回避:ノズルがヒートベッド端で原点復帰する際、レベル調整ノブやその他の障害物に衝突するのを防ぐ
  2. 精度向上:ヒートベッド中心は通常、ベッドが最も平坦な領域であり、原点復帰がより正確
  3. 互換性:ALPS、BL-Touch、EDDYなど様々なプローブをサポート

移動速度の変更方法

  • G0 X{max_x / 2} Y{max_y / 2} F3600 の行を見つける
  • F3600 を必要な速度値に変更する
  • 推奨範囲:F1800-F3600(30-60mm/s)

使用例

G28 ; 全軸原点復帰 → Z軸検出 → XY軸原点復帰 → 中心移動 → Z軸原点復帰 → 上昇

設定二:温度保護付きホーミングオーバーライド

機能説明

  • 設定一の全機能を含む
  • ノズル温度チェックを追加
  • 温度が高すぎる場合、安全温度まで自動冷却
  • 原点復帰完了後、元の温度設定を復元

完全な設定

[force_move]
enable_force_move: true

[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% set e_target = printer.extruder.target %} ; 目標温度を保存
{% set fan_speed = printer.fan.speed %} ; ファン速度を保存

; Z軸が原点復帰していない場合、仮想位置を設定して上昇
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}

{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}

{% if home_all or 'X' in params %}
G28 X
{% endif %}

{% if home_all or 'Y' in params %}
G28 Y
{% endif %}

{% if home_all or 'Z' in params %}
; 温度チェック【変更可能】150を任意の温度閾値に変更
{% if e_target >= 150 or printer.extruder.temperature >= 150 %}
M106 S255 ; ファンを全速で回して冷却を補助
M109 S150 ; 150°Cまで冷却を待機【変更可能】
{% endif %}
M106 S0 ; ファンを停止

; ヒートベッド中心へ移動【重要】Z軸原点復帰時の衝突防止
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000

; 温度とファン速度を復元
M109 S{e_target}
M106 S{fan_speed}
{% endif %}

温度保護ロジック

  1. 温度チェック:ノズルの目標温度または実測温度が150°C以上か判断
  2. ファン起動:M106 S255 で冷却ファンを全速回転
  3. 冷却待機:M109 S150 でノズルが150°Cまで冷却されるのを待機
  4. ファン停止:M106 S0 でファンを停止し、原点復帰準備
  5. 原点復帰実行:中心移動 → Z軸原点復帰 → 上昇
  6. 状態復元:元の目標温度とファン速度に復元

温度閾値の変更方法

  1. 【変更可能】 と記載された2箇所を見つける
  2. 150 を必要な温度値に変更する
  3. 両方の箇所を同じ値に変更する必要がある
  4. 保存してKlipperを再起動する

使用例

G28 ; 全軸原点復帰 → 温度チェック → 冷却(必要な場合)→ 中心移動 → Z軸原点復帰 → 温度復元

関連リソース


Loading...