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-коду
Loading...