Предпринимаются ли попытки стандартизировать G-код для принтеров FFF/FDM?
Rep-Rap project wiki содержит информацию о различных диалектах G-кода для 3D-принтеров FFF/FDM.
Я погуглил, но не смог найти, были ли какие-либо попытки в сообществе DIY стандартизировать существующие диалекты более или менее?
Например, команда M115 должна возвращать метаинформацию о версии и возможностях прошивки. Но почти каждая популярная прошивка делает это немного по-другому: иногда они просто используют разные разделители, иногда константы также структурно различаются.
Результатом (как я вижу) является некоторое стандартное подмножество команд G-Кода, которые могут быть расширены с помощью диалектов от различных поставщиков прошивки. Вероятно, что-то похожее (но лучше) на то, что есть в мире SQL.
Есть ли какие-то серьезные минусы для этого?
@Denys P., 👍2
1 ответ
G-Код-RS-274/NGC
Нет необходимости пытаться стандартизировать G-код, сам G-код уже стандартизирован: это NIST RS274/NGC, или часто сокращенный AIN RS-274, и он был разработан не только для FDM-принтеров, но и для любого движущегося инструмента. Силовые токарные станки, ЧПУ и лазерные резцы-все они могут работать на RS-274! G0 и G1 всегда движутся, G28-это всегда процедура самонаведения и так далее. Чтобы показать, как стандарт RS-274 эволюционировал с течением времени, ознакомьтесь с более старым вариантом документа-каноническими командами механической обработки NISTIR 597.
Реализация не стандартизирована!
Однако из-за конструкции данной машины точная процедура выполнения этих команд должна быть различной для разных конструкций. Например, в картезианском принтере самонаведение в стиле пруса обычно движется отрицательно в X, Y и Z, в этом порядке, один за другим. Но в дельта-принтере это, скорее всего, приведет вашу печатающую головку в незаконное положение: печатающая головка сначала будет выведена из объема печати, а затем никогда не попадет ни в один конечный упор, так как они установлены в верхней части принтера. Вместо этого все оси дельты одновременно движутся вверх по самонаведению, останавливая каждую ось, когда они достигают своего конечного упора вверху, а затем вся установка в унисон движется вниз к печатной плате. На фрезерном станке, токарном станке или фрезерном станке операция G28 обычно начинается с того, что инструмент отодвигается от рабочего объема, затем перемещается в положение 0 и только после этого перемещает инструмент обратно в рабочую зону, чтобы избежать фиксации.
G & M-командные пробелы
Еще одно предостережение заключается в том, что стандартизация через документ NIST охватывает только коды G0 - G99 и M0-M49- с пробелами. Что приводит нас к кодовому блоку М - Разное. Это не полностью определено в документе. FANUC setup использует несколько более распространенных M-команд, но может содержать больше. CNCcookbook имеет только 16 общих M-команд, ни одна из них не является отчетной. Autodesk объявляет даже только 11 наиболее распространенных команд M-block: M0 - M9 и M30. Из них связанные с хладагентом, как правило, не имеют отношения к FDM.
M115
M115 и M503 сообщают о функциях за пределами областей, которые были в значительной степени определены нормирующим агентством и, таким образом, возникли по мере необходимости в развитии, пока они не сформировали неопределенные де-факто отраслевые стандарты. Это означает, что сам стандарт не содержит их, но все и боб знают, что эти команды предназначены для того, чтобы сообщать прошивку и настройки отчетов соответственно, потому что некоторые популярные машины начали с этого.
Эти две команды должны сообщить программатору, что такое мозги машины и настройки, и как таковые они также подчиняются руководству по стилю учреждения программирования - документ нормы не содержит руководства по стилю, оставляя его свободным для любой реализации выбранного стиля. Рабочий пример-М115 Марлина.
Однако, есть причины, по которым программатор может отключить М115 но имейте М503: Промышленные машины, особенно такие, с содержанием договоров, как правило, не позволяют пользователям получить доступ к прошивки в некоторых отношениях, чтобы с одной стороны сохранить их от возиться с машиной слишком много, а с другой убедиться в том, что только лицензированный специалист может открыть некоторые функции создания отчетов с помощью пользовательских команд. С другой стороны, M503 сообщает о текущем состоянии настроек, которые могут быть изменены пользователем или его сервисным специалистом с учетом различных требований к печати.
- Есть ли G-код для ожидания?
- Для чего используется G92 в G-коде
- Написание G-кода : проведите пальцем в начале печати
- Используя автоматическое выравнивание стола, нужно ли инициировать G29 перед каждой печатью?
- Cura: установить z-смещение
- Одновременный нагрев экструдера и стола при запуске печати
- В чем разница между M420 S и M420 S1?
- Код для перемещения вверх по оси Z после завершения печати
Спасибо, что приложили столько усилий в своем ответе. Это действительно хорошо, и я ценю это. Но я имел в виду именно некоторые общие стандарты в отношении команд, которые не указаны в NIST RS274/NGC. Проблема, на мой взгляд, заключается в том, что прошивка для принтеров для хобби/недорогих принтеров управляется сообществом, и все реализуют протокол немного по-другому. Это очень естественно - у нас было то же самое в начале эры ИНТЕРНЕТА. Но я хочу сказать, должны ли мы собрать всех вместе и начать обсуждение какого-то общего протокола и/или формата?, @Denys P.
Стандарт Де-факто для G-кода в основном разработан Marlin, который очень хорошо работает почти с полным набором FANUC (безопасен для очень немногих afaik) и большим количеством команд afaict. Если вы хотите спросить кого-нибудь, вам придется спросить NIST о включении 3D-принтеров в стандарт RS274/NGC, который затем может принять стандарт де-факто., @Trish
Я могу согласиться с этим. За исключением этого, Prusa также оказывает большое влияние на этот сектор рынка. Вики-страница Rep-Рэпа-отличный координационный пункт, но было бы приятнее пойти дальше. :), @Denys P.
Насколько мне известно, то, что мы используем в качестве G-кода, является базой FANUC, на которой Prusa Research, Ultimaker (через Cura) и команды Marlin, которые несколько перемешаны, в значительной степени разработали то, что им было нужно больше, на основе этого и определили общий набор новых команд, но я не могу выяснить, что они конкретно добавили., @Trish