开源改变世界

G2/G3错误32:平面内无轴字(规则太严) #222

推推 grbl 3年前 (2023-02-08) 177次浏览
打开
kimstik 打开了这个问题 2022 年 11 月 28 日 · 5 条评论
打开

G2/G3错误32:平面内无轴字(规则太严)#222

kimstik 打开了这个问题 2022 年 11 月 28 日 · 5 条评论

评论

G2/G3错误32:平面内无轴字(规则太严) #222

我在 vanilla GRBL gnea/grbl#1178中发现了潜在的问题

grblHAL 在 gcode.c 中有相似之处

                    if (!(axis_words.mask & (bit(plane.axis_0)|bit(plane.axis_1))))
                        FAIL(Status_GcodeNoAxisWordsInPlane); // [No axis words in plane]
G2/G3错误32:平面内无轴字(规则太严) #222
贡献者

改成

                    if (gc_block.words.r && !(axis_words.mask & (bit(plane.axis_0)|bit(plane.axis_1))))
                        FAIL(Status_GcodeNoAxisWordsInPlane); // [No axis words in plane]

修理?

G2/G3错误32:平面内无轴字(规则太严) #222

您的修复仅对 R 模式有意义?
原始检查在 Arc 模式下是正确的,而在平面内开始和结束坐标相同的 helix 模式下无效。

G2/G3错误32:平面内无轴字(规则太严) #222
贡献者

您的修复仅对 R 模式有意义?

不,检查只会针对LinuxCNC 规范中的 R 格式弧执行:

“如果出现以下情况,则为错误:

  • 所选平面的轴的两个轴词都被省略了”

对于中心格式的圆弧不需要检查,因为参数不正确会报错33?

G2/G3错误32:平面内无轴字(规则太严) #222
贡献者

参考3.5.3.2 NIST RS247NGC中的中心格式弧

“如果出现以下情况,则为错误:
• X 和 Y 均被省略,
• I 和 J 均被省略。”

ETC…

因此 Grbl 和 grblHAL 符合 NIST 规范,LinuxCNC 不是吗?我没有要检查的 LinuxCNC 实例,因此无法验证这一点。所以现在我将按原样保留代码。

G2/G3错误32:平面内无轴字(规则太严) #222
作者

看来你是对的。以下案例不符合“NIST RS274NGC 解释器”规范:

G17
G2 X7 Y0 Z-1 I-7 J0
Z-2 I-7 J0

就 NIST 解释器而言,这段代码是错误的。

另一点是:如果 [逻辑、完整和全面] 但不符合 NIST,不执行代码的原因是什么?
我错过了什么吗?

实际上我看不出有什么理由对弧做例外,并指定不改变的坐标词。听起来像是无用的代码噪音。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
G2/G3错误32:平面内无轴字(规则太严) #222G2/G3错误32:平面内无轴字(规则太严) #222

喜欢 (0)