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

3D打印 g代码 数控
2021-05-11 03:48:40

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

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

我已经在我的中国数控机床上测试过这个,它去掉了评论并且完美地工作。

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

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

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

2个回答

这不是普遍有效的 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 版本有一个更高级的解析器,但它仍然不能很好地处理这些括号样式的注释。最好避免它们,因为不能保证兼容性。

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

它应该在 Prusa 打印机上工作,如他们的Wiki 中所述不幸的是,没有关于嵌套评论的词。

然而,我在 cnczone.com 论坛上发现了一条关于括号内嵌套评论的评论。

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

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

注释不能嵌套;如果在注释开始之后和注释结束之前发现左括号,则是错误的。

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

资料来源:cnczone.com