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

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

Зачем нужно перемещаться в центр стола?

  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 → Подъем

Конфигурация 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 %}

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

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