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

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