Homing Override - Конфигурация переопределения процедуры парковки
Обзор
На этой странице представлены две эталонные конфигурации переопределения процедуры парковки (Homing Override) для Klipper, предназначенные для оптимизации процесса парковки 3D-принтера, повышения безопасности и точности.
Список конфигураций
| Конфигурация | Описание функции | Сценарий применения |
|---|---|---|
| Конфигурация 1 | Базовое переопределение парковки + центрирование стола | Оптимизация стандартной процедуры парковки |
| Конфигурация 2 | Проверка температуры сопла + безопасная парковка | Безопасная парковка в условиях высокой температуры |
Конфигурация 1: Базовое переопределение парковки
Описание функции
- Автоматическое определение, была ли ось 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 → Подъем
Конфигурация 2: Переопределение парковки с температурной защитой
Описание функции
- Включает все функции Конфигурации 1.
- Добавляет проверку температуры сопла.
- Автоматическое охлаждение до безопасной температуры при слишком высокой температуре.
- Восстановление исходных температурных настроек после завершения парковки.
Полная конфигурация
[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-code
Loading...