Klipper: включение питания перед самонаведением

Я бы хотел заставить Клиппера включить питание (используя M80) перед наведением. Для этой цели я пытаюсь переопределить G28:

[gcode_macro G28]
rename_existing: G28_BASE
gcode:
  M80
  G28_BASE { rawparams }

Но по какой-то причине это не работает, я получаю следующую ошибку:

G-Code macro rename of different types ('G28' vs 'G28_BASE')

Разве G28 не переопределяется? Есть ли другой способ добиться желаемого поведения?

, 👍3


2 ответа


Лучший ответ:

3

Из-за того, что параметры работают по-разному (Sx vs NAME=x) для команд стиля gcode и расширенных Klipper, переименование должно быть "того же типа" команды. G28_BASE не соответствует шаблону, который считается "стилем gcode". Вместо этого используйте G9028 или G28.1 или что-то еще, и это должно сработать.


,

Спасибо, это сработало нормально, @Denis Itskovich


1

Помимо использования другого макроса, также можно использовать [homing_override], который позволяет переопределить последовательность наведения.

Вы можете написать простой homing_override типа (непроверенный!)

[homing_override]
axes: xyz
gcode:
  M80
  G28

и с вами покончено.

Имейте в виду, что это очень простое переопределение будет содержать все оси при каждом вызове самонаведения: "G28 X0" также будет содержать Y и Z. Вы можете проверять на дому только то, что запрошено, см. Здесь, но это становится более сложным.

,

Спасибо, я это видел. Но я решил не использовать это именно по той причине, которую вы упомянули: я хотел бы иметь возможность передавать аргументы как есть в реализацию G28 по умолчанию, @Denis Itskovich

Если вы проверите предоставленную мной ссылку, он разместит только то, что запрашивается, установив флажок "{% if params .X определяется %}{% set home_x = True %}{% endif %}" и так далее, @FarO

Спасибо за разъяснение, @Denis Itskovich