Перейти к основному содержанию

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 мм/с), быстрое перемещение

Почему необходимо перемещение в центр нагревательного стола?

  1. Предотвращение столкновений: Предотвращает удар сопла о ручки выравнивания или другие препятствия на краю стола во время калибровки
  2. Повышение точности: Центр стола обычно является самой ровной областью, калибровка более точна
  3. Совместимость: Поддержка различных датчиков, таких как 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 %}

Логика защиты по температуре

  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...