Макрос запрос Klipper M204
Насколько я понимаю, следующий макрос каким-то образом управляет ускорением и ускорением для замедления.
Как мне установить нужную скорость, скажем, ускорение в этом макросе?
Если ускорение установлено в этом макросе, а также в слайсере, таком как Cura, какое значение в конечном итоге будет реализовано?
Я был бы очень признателен, если бы кто-нибудь объяснил мне, что происходит в условном выражении макроса. У меня нет опыта работы с php-ботом на Python.
[gcode_macro M204]
rename_existing: M204.1
gcode:
{% set f = params.F|default(0.5)|float %}
{% if 'S' in params %}
{% set s = params.S|float %}
SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f }
{% else %}
{% if 'P' in params %}
{% set p = params.P|float %}
{% if 'T' in params %}
{% set t = params.T|float %}
{% if p < t %}
SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f }
{% else %}
SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f }
{% endif %}
{% else %}
SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f }
{% endif %}
{% elif 'T' in params %}
{% set t = params.T|float %}
SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f }
{% endif %}
{% endif %}
@General raid, 👍0
1 ответ
Команда M204
— это то, как gcode устанавливает ускорение для последующих движений (до тех пор, пока следующая команда M204
не изменит его). Эта команда появляется в gcode, сгенерированном слайсером с "управлением ускорением" включено. Вы также можете написать его вручную в своем начальном gcode (не очень полезно, если управление ускорением не отключено, поскольку первый слайсер M204
переопределит его, но может быть полезен для начальной строки и т. д.) или отправить его вручную через сеанс терминала/через терминал Octoprint/и т. д.
Макрос, который вы видите, переопределяет команду M204
и заменяет ее командой, которая делает несколько вещей:
Использует слишком сложную лестницу из предложений if/else для принятия параметров Marlin
P
иT
в командуM204
для отдельных ускорений печати и перемещения, но затем игнорирует их и использует только минимальное из двух.Принимает новый параметр
F
(вероятно, означающий фактор) и устанавливает параметр Klipper "ускорение до замедления" установка этого коэффициента умножает на запрошенное ускорение. Это позволяет "ускорить до замедления"; должно постоянно поддерживаться на любом желаемом проценте предела ускорения, даже при изменении ускорения.
Помимо того, что лестница if/else представляет собой беспорядок, этот макрос не может сохранить фактор, переданный F
, поэтому, если слайсер не знает, что нужно выдавать F
каждый раз, когда он выдает команду M204
, она всегда будет сбрасывать коэффициент до 0,5
(значение по умолчанию выше) каждый раз, когда изменяется ускорение. Klipper позволяет определять постоянные переменные для макросов gcode; это, вероятно, то, что автор хотел сделать, но не знал, как это сделать.
В целом вышеизложенное выглядит не очень полезным. «Ускорение до замедления»; это сомнительная функция для начала, а с формирователем ввода, возможно, она просто делает ваши отпечатки намного медленнее без каких-либо преимуществ. Современная рекомендация большинства людей заключается в том, что вы просто устанавливаете max_accel_to_decel
на 999999999 в своей конфигурации, чтобы отключить его, вместо того, чтобы проходить через обручи, чтобы изменить его динамически, как это, пока вы включили формирование ввода .
В любом случае наличие этого макроса никоим образом не мешает управлению ускорением слайсером, и вам не придется "использовать" этот макрос вообще. Его цель не в том, чтобы вы "использовали" это, но для того, чтобы перехватывать команды M204
, выдаваемые слайсером, и заставлять их делать что-то дополнительное.
- Клиппер, похоже, не настраивает Z после BED_MESH_CALIBRATE
- В чем разница между Линейным опережением и опережением давления
- "Unable to read TMC UART 'extruder' register IFCNTт" - Клиппер и Робин Нано
- Creality Sonic Pad выдает ошибку после первых нескольких строк печати
- Можно ли сохранить значения коррекции перекоса в файле printer.cfg в Klipper?
- Ender 3 S1 Pro – смещение по оси Z постоянно меняется
- В чем разница между параметрами position_min и position_endstop в конфигурационном файле Klipper?
- Степперы застряли с Клиппером но работают с Марлином