Допускаются ли круглые скобки в комментарии G-кода?
Мне интересно, действителен ли этот фрагмент G-кода:
G0 (Некоторый комментарий (его команда G0)) Y10 Z-5
Я протестировал это на своем китайском станке с ЧПУ, и он удаляет комментарий и работает безупречно.
Машина обрабатывает это как G0Y10Z-5
, что кажется мне правильным подходом.
Однако я никогда не видел такого комментария в реальной практике ЧПУ. Было бы неплохо, если бы кто-нибудь смог протестировать его на своем ЧПУ/3D-принтере.
Многие симуляторы G-кода в Интернете не могут обработать такую строку в своем парсере, так что это меня смущает. Я ничего не нашел об этом ни в RepRap Wiki, ни даже в Google.
@Jan Vorisek, 👍10
Обсуждение2 ответа
Лучший ответ:
Похоже, что комментарии внутри круглых скобок не допускаются в многочисленных парсерах (т. е. Марлин). Это, по-видимому, верно для большинства 3D-принтеров. Классические фрезерные станки с ЧПУ используют скобки без проблем.
Он должен работать на принтерах Prusa, как указано в их Вики. К сожалению, о вложенности комментариев нет ни слова.
Однако я нашел комментарий к cnczone.com форумы, касающиеся вложенности комментариев в круглые скобки.
Печатные символы и пробел внутри круглых скобок-это комментарий. Левая скобка всегда начинает комментарий. Комментарий заканчивается первой правой скобкой, найденной после этого.
Как только левая скобка помещается в строку, соответствующая правая скобка должна появиться перед концом строки.
Комментарии не могут быть вложенными; это ошибка, если левая скобка найдена после начала комментария и до конца комментария.
Вот пример строки, содержащей комментарий:
G80 M5 (stop motion)
Источник: cnczone.com
Это не универсально допустимый G-код, и то, как он обрабатывается, зависит от реализации. Вы можете использовать этот стиль комментариев на некоторых машинах, но не на всех.
В отличие от того, как синтаксический анализ был реализован в Marlin (очень распространенная прошивка 3D-принтера), он будет работать нормально, если строка комментария не содержит символов X, Y, Z, E или F. Парсер просто ищет первое вхождение X/Y/Z/E/F, а затем пытается разобрать бит текста, появляющийся после этого символа, в число. Если строка не может быть проанализирована как число, то по умолчанию она равна 0. Например,
G0 (Некоторый комментарий, содержащий символ Y) Y10 Z-5
будет интерпретироваться как G0 Y0 Z-5
, а не как G0 Y10 Z-5
, потому что ") " (строка, появляющаяся после первого вхождения "Y") не анализирует ни одно допустимое число. Ваш пример работает нормально, потому что строка комментария не содержит никаких специальных символов.
Marlin поддерживает комментарии в конце строки, которые должны начинаться с точки с запятой и продолжаться до конца строки.
Вот как это работало в старых версиях Marlin. Более новые версии Marlin имеют более продвинутый парсер, но он все равно не будет хорошо работать с этими комментариями в стиле скобок. Лучше всего избегать их, так как совместимость не гарантируется.
Для меня это звучит еще более странно. Нет никаких комментариев по поводу такого поведения, например, в RepRap https://reprap.org/wiki/G-code#Comments, @Jan Vorisek
@JanVorisek Я только что заметил, что в новых версиях Marlin он немного отличается. Тем не менее, комментарии в стиле скобок не поддерживаются., @Tom van der Zanden
Вы правы. Просто проверил несколько парсеров, включая Марлина. Я пришел к выводу, что большинство прошивок 3D-принтеров анализируют только точки с запятой в качестве комментариев. Похоже, скобки есть/были? предпочтительный способ работы на фрезерных станках с ЧПУ. Я буду придерживаться точки с запятой, так как в основном забочусь о 3D-печати. Спасибо за ваше время в любом случае :-), @Jan Vorisek
- Выпуск фрезерования круглого контура с ЧПУ – 3018 Pro
- Какова "Подробная классификация форматов" стандарта ISO 6983 (спецификация G-кода)
- Как установить полностью динамическую область построения графика?
- Интерпретация G-кода для ответа на вопрос о геометрии полученной фигуры
- Есть ли G-код для ожидания?
- Для чего используется G92 в G-коде
- Написание G-кода : проведите пальцем в начале печати
- Используя автоматическое выравнивание стола, нужно ли инициировать G29 перед каждой печатью?
КСТАТИ ... Добро пожаловать в 3D-печать! :o), @Pᴀᴜʟsᴛᴇʀ2
Почему бы просто не использовать start-of-line " ; " и избежать всех рисков?, @Carl Witthoft
За символическую плату : -) я напишу регулярное выражение , которое вытащит все "( * )" и заменит новой строкой "; * " Пусть начнутся войны пламени sed vs awk., @Carl Witthoft
Ты прав, Карл. Я просто заботился о стороннем коде, который мне, возможно, когда-нибудь понадобится обработать. Я лично использую только ; комментарии. :-), @Jan Vorisek