G代码注释中是否允许使用括号?


9

我想知道这段G代码是否有效:

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

我已经在我的中国CNC机床上对此进行了测试,它去除了注释并可以完美地工作。

机器对此进行处理,G0Y10Z-5这对我来说似乎是正确的方法。

但是,我从未在真正的CNC实践中看到过这样的评论。如果有人能够在其CNC / 3D打印机上对其进行测试,那就太好了。

互联网上的许多G代码模拟器都无法在其解析器中处理这样的行,这让我感到困惑。我在RepRap Wiki甚至Google上都没有找到有关它的任何信息。


顺便说一句...欢迎来到3D打印!:O)
Pᴀᴜʟsᴛᴇʀ2

1
为什么不只使用行首“;”来避免所有风险?
卡尔·威索夫特

以象征性的费用:-),我将编写一个正则表达式,将所有“(*)”取出,并用新行“; *”代替,让sed与awk的火焰大战开始。
卡尔·威索夫特

你是对的卡尔。我只是关心某天可能需要处理的第三方代码。我只使用; 注释。:-)
Jan Vorisek '18年

Answers:


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中工作的方式。较新的Marlin版本具有更高级的解析器,但仍不能与这些括号样式的注释一起使用。最好避免使用它们,因为不能保证兼容性。


这听起来对我来说更奇怪。在RepRap reprap.org/wiki/G-code#Comments
Jan Vorisek '18

@JanVorisek我刚刚注意到,在较新版本的Marlin中它略有不同。不过,不支持括号样式的注释。
汤姆·范德赞丹

1
你是对的。刚刚检查了包括Marlin在内的几个解析器。我得出的结论是,大多数3D打印机固件仅将分号解析为注释。看起来是圆括号了吗?CNC铣床中的首选方式。在我主要关心3D打印时,我会坚持使用分号。无论如何,谢谢您的时间:-)
Jan Vorisek

4

看起来在许多解析器(即Marlin)中,括号内的注释都是不允许的。对于大多数3D打印机来说,这似乎是正确的。经典的CNC铣床使用括号没有问题。

Wiki中所述,它应可在Prusa打印机上使用。不幸的是,没有关于嵌套注释的任何消息。

但是,我在cnczone.com论坛上找到了有关括号内注释嵌套的注释。

括号内的可打印字符和空白是注释。左括号总是开始注释。注释在其后的第一个右括号处结束。

将左括号放在行上后,匹配的右括号必须出现在行尾之前。

注释不能嵌套;如果在注释的开头之后和注释的结尾之前找到左括号,则会出现错误。

这是包含注释的行的示例: G80 M5 (stop motion)

资料来源:cnczone.com

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.