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: Скорость перемещения 3600 мм/мин (60 мм/с), быстрое перемещение
Почему необходимо перемещение в центр нагревательного стола?
- Предотвращение столкновений: Предотвращает удар сопла о ручки выравнивания или другие препятствия на краю стола во время калибровки
- Повышение точности: Центр стола обычно является самой ровной областью, калибровка более точна
- Совместимость: Поддержка различных датчиков, таких как ALPS, BL-Touch, EDDY и других
Как изменить скорость перемещения?
- Найдите строку
G0 X{max_x / 2} Y{max_y / 2} F3600 - Замените
F3600на необходимое значение скорости - Рекомендуемый диапазон: F1800-F3600 (30-60 мм/с)
Пример использования
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 → Восстановление температуры
Связанные ресурсы
- Официальная документация Klipper - Homing Override
- Официальная документация Klipper - Force Move
- Справочник по G-кодам
Loading...