Marlin - замедление скорости печати
В настоящее время я использую прошивку Marlin (1.1.0-RC7 - 31 июля 2016) и хотел бы поэкспериментировать со скоростью печати.
В файле Marlin_main.cpp
Я вижу в функции process_next_command()
переменную current_command
, которая (предположительно) содержит значения G-кода для расстояния перемещения и скорости подачи (speed).
Я ожидаю, что фактическая команда для путешествия будет выглядеть примерно так:
G1 X50 Y25.3 E22.4 F1500
но я никак не могу понять, где именно он находится. Я предполагаю, что если я смогу изменить F1500
на F200
, я смогу эффективно замедлить скорость печати.
Я знаю о строке 753 в файле configuration.h
:
#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25} // ( мм/сек)
Я не заинтересован в установке фиксированной медленной скорости подачи, но предпочел бы изменить отдельные команды G-кода. Кто-нибудь может сказать мне, где я могу найти фактическую команду G-Code для ее редактирования?
@make it happen, 👍4
1 ответ
Команды G-code отсутствуют в прошивке. Вы пытаетесь найти в коде что-то, чего там просто нет. Ваш слайсер отвечает за создание файла g-кода, который затем можно отправить на принтер (либо распечатав с SD-карты), либо с помощью хост-программы, такой как repetier или cura. Команды в файле G-code затем выполняются прошивкой, но они не являются ее частью.
То, как на самом деле обрабатываются команды, не является тривиальным, и это происходит в нескольких местах.
Команды обрабатываются в process_commands
Marlin_main.cpp . При чтении команды G1 он вызывает get_coordinates
для анализа значений X / Y / Z / feedrate из команды. Затем вызывается
функция prepare_move, которая применяет необходимые преобразования (зажим для конечных точек и обратную кинематику, если у вас есть дельта) перед вызовом plan_buffer_line
(который находится в planner.cpp
), который выполняет еще некоторую предварительную обработку и вычисляет "блок", который помещается в буфер. Затем вызывается planner_recalculate, который перебирает блоки, чтобы найти для них возможные шаблоны ускорения. Наконец, прерывание (в stepper.cpp ,
ISR(TIMER1_COMPA_vect)
) периодически считывает блоки из буфера и фактически отправляет сигналы на степперы.
- Marlin Регулировка скорости подачи
- В чем разница между M420 S и M420 S1?
- Можно ли регулировать скорость печати на лету?
- M502 сбросит все настраиваемые настройки к их "заводским настройкам по умолчанию", какие это настройки?
- Как установить размер буфера G-кода на Marlin?
- Что такое команда M73 Q17 S43 G-code?
- Решение Cura заменить углы->дуги для увеличения угловой скорости?
- Сопло очень медленно перемещается из исходного положения в начальное
Я понимаю, что команд G-Code нет в прошивке, я просто пытаюсь найти точную часть, где они извлекаются и выполняются. Я хотел бы отредактировать полученный код до того, как он будет выполнен., @make it happen
@makeithappen Это не было ясно из вашего вопроса. Я отредактировал свой ответ, чтобы объяснить (примерно), как работает планирование движения. Я не понимаю, почему вы идете по пути прошивки, если вы хотите изменить F1500 на F200, просто сделайте это перед отправкой файла на принтер!, @Tom van der Zanden