Как добавить автоматическое выравнивание стола перед печатью?
Я хочу добавить автоматическое выравнивание стола перед каждой печатью. Когда я включаю автоматический уровень стола в конфигурации.h, он показывает только авто стол в меню. Я нашел этот код в cardreader.cpp
void CardReader::openAndPrintFile(const char *name) {
char cmd[4 + strlen(name) + 1]; // Room for "M23 ", filename, and null
sprintf_P(cmd, PSTR("M23 %s"), name);
for (char *c = &cmd[4]; *c; c++) *c = tolower(*c);
enqueue_and_echo_command(cmd);
enqueue_and_echo_commands_P(PSTR("M24"));
}
и изменил его на
void CardReader::openAndPrintFile(const char *name) {
char cmd[4 + strlen(name) + 1]; // Room for "M23 ", filename, and null
sprintf_P(cmd, PSTR("M23 %s"), name);
for (char *c = &cmd[4]; *c; c++) *c = tolower(*c);
enqueue_and_echo_command("G28");
enqueue_and_echo_command("G29");
enqueue_and_echo_command(cmd);
enqueue_and_echo_commands_P(PSTR("M24"));
}
Теперь перед каждой печатью принтер выполняет автоматическое заполнение два раза, но при запуске печати автоматическое заполнение игнорируется, и принтер действует так же, как до выполнения автоматического заполнения.
Пожалуйста, помогите мне решить эту проблему.
Я использую прошивку Marlin 1.1.0.
@Hadi Barak, 👍10
Обсуждение5 ответов
Я не настолько хорошо владею G-кодом, но в Современном механическом цехе: Понимание G27, G28, G29 и G30 я нашел эти описания кодов G28 и G29, которые вы добавили:
G28: Для любых буквенных адресов осей, включенных в команду G28, машина сначала переместится (при быстром перемещении) в промежуточное положение на этих осях. Затем он быстро вернется в нулевое положение возврата по заданным осям.G29: G29 также является двухэтапной командой. Во-первых, это приводит к перемещению машины (в соответствии с указаниями осей) в промежуточное положение, используемое в последней командеG28. Во-вторых, это заставляет машину переместиться в положение, указанное в командеG29.
Поэтому мне кажется, что вам нужна только одна из этих двух команд. Похоже, что измененный вами код запускается отдельно при запуске, а не для каждой отдельной печати. Я бы сначала попробовал вашу модификацию с каждой командой G отдельно, чтобы вы могли точно увидеть, в чем разница на вашем оборудовании.
Я не знаю, как обойти связанный с этим код, но, похоже, вам нужно будет внести изменения в другом месте, например, непосредственно перед тем, как какой-либо цикл отправит последовательные команды на принтер.
Надеюсь, это поможет, несмотря на мою ограниченную беглость...
Эти описания, которые вы нашли, относятся к командам G28/G29 на профессиональных станках с ЧПУ. В прошивке 3D-принтера они были (неправильно)использованы для других целей. G28 выполняет последовательность наведения на конечные точки (этот вид - но не совсем - соответствует вашему описанию), в то время как G29 инициирует автоматическое выравнивание стола., @Tom van der Zanden
Вместо того, чтобы изменять встроенное ПО для обработки этого, вы рассматривали сценарий предварительной обработки на вашем компьютере, чтобы получить G29 в коде G, а затем добавить пару G28/G29 в начале файла, если G29 не найден?
После повторного прочтения вопроса кажется, что это, возможно, единственный способ решить проблемы в данном случае, если только Octoprint не может сделать то же самое, что и предварительный процесс., @Sean Houlihane
@SeanHoulihane Я добавил ответ, в котором описывается, как это сделать с помощью OctoPrint, @0scar
С Marlin 1.1.0 вы можете автоматически запускать файл G-кода при включении принтера с уже имеющейся SD-картой.
Добавьте файл с именем auto0.g в корень вашей карты, содержащий следующий G-код:
G28 ;Auto-homing
G29 ;Bed leveling
Обычно карту выравнивания стола следует повторно использовать для всех последующих отпечатков до тех пор, пока принтер не будет выключен.
Возможно предоставить до 10 файлов, от auto0.g до auto9.g.
Хотели бы вы опубликовать это (или его производное) в качестве ответа на вопрос Могут ли сценарии G-кода запускаться автоматически при вставке SD-карты при использовании Marlin Firmware?, @Greenonline
Вместо того, чтобы размещать G28 (домашний) и G29 (рабочий стол) в конфигурации, я бы поместил его в срез для создания G-кода в качестве кода для предварительной печати. Это автоматически добавит это в начало любого среза G-кода, обеспечивая самонаводку и выравнивание при каждом запуске G-кода.
Другой ответ, который делает именно то, что вы хотите, предполагает использование сервера печати. Сервер печати-это приложение, которое запускает инструкции к принтеру через USB-соединение с другого устройства, это может быть ваш компьютер/ноутбук или выделенный Raspberry Pi (небольшой и доступный компьютер). Одним из таких приложений, описанных здесь далее, является OctoPrint (это вполне может быть сделано с другими приложениями, но сначала это нужно проверить!), это приложение сервера печати позволяет интегрировать множество сторонних плагинов в дополнение к обширному набору функций, которые у него уже есть из коробки. Одной из таких функций являются сценарии GCODE (специально написанные таким образом, чтобы соответствовать опции в меню настроек печати OctoPi); на этом снимке экрана показаны некоторые подробности:

Как видно из изображения, существуют определенные "события", доступные для обработки команд G-кода в определенных случаях, например, непосредственно перед началом печати. Вы можете использовать этот envent для вставки своих команд выравнивания.
Пожалуйста, обратите внимание, что на изображении вы найдете странные команды G-кода, такие как OCTO100 и OCTO110, которые являются функцией плагина под названием "Системные команды GCODE", которая позволяет запускать сценарии оболочки для планирования вентилятора. Я просто отключаю питание вентилятора, когда принтер простаивает, чтобы избавиться от шума, когда принтер просто работает на холостом ходу, вентилятор нужен только при повышенной температуре.
- Повторная калибровка исходного положения
- Как установить границы Z-зонда в прошивке при использовании автоматического выравнивания стола?
- Как увеличить количество точек зондирования для датчика BLTouch в прошивке Marlin?
- Marlin Регулировка скорости подачи
- Как установить смещение Z для дома
- Указание смещения Z в прошивке Marlin
- BLTouch Зондирование Периодически Терпит Неудачу
- Как добавить параметры меню в жидкокристаллическое меню (прошивка Marlin)?
Почему бы вам просто не добавить команды автоматического выравнивания в свой стартовый G-код (в вашем слайсере)?, @Tom van der Zanden
Я хочу, чтобы это было автоматически, иногда у меня есть только файл g-кода, и редактировать их все невозможно, @Hadi Barak
@HadiBarak При правильной настройке у вас будет возможность автоматически выровнять стол перед ручным запуском печати. Это будет в разделе Подготовка -> выравнивание стола (или как там называется эта опция). Добавление его в начальный G-код-лучшее решение. Но убедитесь, что вы поставили его после G28 (автоматическое наведение). Вы не можете автоматически запускать команду при печати чего-либо, потому что это контролируется стартовым G-кодом., @Granny
@HadiBarak вы можете редактировать Gcode с помощью любого текстового редактора, просто нужно добавить G29 после G28., @Fernando Baltazar