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