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),快速移动
为什么需要移动到热床中心?
- 避免碰撞:防止喷嘴在热床边缘归位时撞到调平旋钮或其他障碍物
- 提高精度:热床中心通常是热床最平整的区域,归位更准确
- 兼容: 支持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 %}
温度保护逻辑
- 检查温度:判断喷嘴目标温度或实际温度是否 ≥ 150°C
- 打开风扇:M106 S255 全速打开冷却风扇
- 等待降温:M109 S150 等待喷嘴降温到 150°C
- 关闭风扇:M106 S0 关闭风扇准备归位
- 执行归位:移动中心 → 归位 Z → 抬升
- 恢复状态:恢复到原来的目标温度和风扇速度
如何修改温度阈值
- 找到两处标注 【可修改】 的地方
- 将
150改为你需要的温度值 - 两处必须同时修改为相同的值
- 保存并重启 Klipper
使用示例
G28 ; 全部归位 → 温度检查 → 降温(如需)→ 移动中心 → 归位 Z → 恢复温度
相关资源
Loading...