Skip to main content

Homing Override - 归位覆盖配置

概述

本页面提供两个 Klipper 归位覆盖(Homing Override)参考配置,用于优化 3D 打印机的归位流程,提高安全性和精度。

配置列表

配置功能描述适用场景
配置一基础归位覆盖 + 热床居中标准归位流程优化
配置二喷嘴温度检查 + 安全归位高温环境下的安全归位

配置一:基础归位覆盖

功能说明

  • 自动检测 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. 150 改为你需要的温度值
  3. 两处必须同时修改为相同的值
  4. 保存并重启 Klipper

使用示例

G28            ; 全部归位 → 温度检查 → 降温(如需)→ 移动中心 → 归位 Z → 恢复温度

相关资源


Loading...