Разрешены ли скобки в комментарии G-кода?

9

Мне интересно, если этот кусок G-кода является действительным:

G0 (Some comment (Its G0 command)) Y10 Z-5

Я проверил это на своем китайском станке с ЧПУ, и он удаляет комментарий и работает безупречно.

Машина обрабатывает это так G0Y10Z-5, как мне кажется, правильный подход.

Однако я никогда не видел такого комментария в реальной практике ЧПУ. Было бы неплохо, если бы кто-нибудь смог проверить это на своем ЧПУ / 3D-принтере.

Многие симуляторы G-кода в интернете не могут обработать такую ​​строку в своем парсере, поэтому меня это смущает. Я не нашел ничего об этом в RepRap Wiki или даже в Google.

Ян Ворисек
источник
Кстати ... Добро пожаловать в 3D-печать! : o)
Pᴀᴜʟsᴛᴇʀ2
1
Почему бы просто не использовать начало строки ";" и избежать всех рисков?
Карл Виттофт
За номинальную плату :-), я напишу регулярное выражение, которое вытаскивает все "(*)" и заменяет новой строкой "; *" Пусть начнутся войны пламени sed vs awk.
Карл Виттофт
Вы правы, Карл. Я просто заботился о стороннем коде, который, возможно, когда-нибудь мне понадобится. Я лично использую только; Комментарии. :-)
Ян Ворисек

Ответы:

12

Это не универсальный G-код, и то, как он обрабатывается, зависит от реализации. Вы можете использовать этот стиль комментариев на некоторых машинах, но не на всех.

Способ, используемый для анализа в Marlin (очень распространенная прошивка для 3D-принтеров), будет работать нормально, если строка комментария не будет содержать символы X, Y, Z, E или F. Парсер просто ищет первое вхождение X / Y / Z / E / F и затем пытается разобрать бит текста, появляющийся после этого символа, в число. Если строка не может быть проанализирована как число, по умолчанию вместо нее используется 0. Например,

 G0 (Some comment containing the character Y) Y10 Z-5

будет интерпретироваться как, G0 Y0 Z-5а не как G0 Y10 Z-5, потому что ")" (строка, появляющаяся после первого вхождения "Y") не анализируется с любым допустимым числом. Ваш пример работает нормально, потому что строка комментария не содержит никаких специальных символов.

Марлин поддерживает комментарии в конце строки, которые должны начинаться с точки с запятой и продолжаться до конца строки.

Так работало в старых версиях Marlin. Более новые версии Marlin имеют более продвинутый синтаксический анализатор, но он все равно не будет хорошо работать с этими комментариями в виде скобок. Лучше всего избегать их, так как совместимость не гарантируется.

Том ван дер Занден
источник
Это звучит еще более странно для меня. Нет комментариев об этом поведении, например, в RepRap reprap.org/wiki/G-code#Comments
Jan Vorisek
@JanVorisek Я только что заметил, что он немного отличается в новых версиях Marlin. Тем не менее комментарии в скобках не поддерживаются.
Том ван дер Занден
1
Вы правы. Только что проверил несколько парсеров, включая Марлина. Я пришел к выводу, что большинство прошивок 3D-принтера анализируют только точки с запятой в качестве комментариев. Похоже, скобки есть / были? предпочтительным способом в фрезерных станках с ЧПУ. Я буду придерживаться точки с запятой, так как меня больше всего интересует 3D-печать. В любом случае, спасибо за ваше время :-)
Jan Vorisek
4

Похоже, что комментарии в скобках не допускаются во многих парсерах (например, Marlin). Похоже, что это верно для большинства 3D-принтеров. Классические фрезерные станки с ЧПУ используют скобки без проблем.

Он должен работать на принтерах Prusa, как указано в их вики . К сожалению, нет слов о вложенности комментариев.

Однако я нашел комментарий на форумах cnczone.com относительно вложенности комментариев в скобках.

Печатные символы и пробелы в скобках - это комментарий. Левая скобка всегда начинает комментарий. Комментарий заканчивается на первой правой круглой скобке, найденной после.

После того, как в строку помещена левая скобка, соответствующая правая скобка должна появиться перед концом строки.

Комментарии не могут быть вложенными; Это ошибка, если после начала комментария и до конца комментария обнаружена левая скобка.

Вот пример строки, содержащей комментарий: G80 M5 (stop motion)

Источник: cnczone.com

Ян Ворисек
источник