开源改变世界

I 或 J 值较大的错误 33 (?) #574

推推 grbl 3年前 (2023-01-22) 190次浏览

打开
Cdriko 打开了这个问题 2018 年 12 月 10 日 · 3条评论
打开

I 或 J 值较大的错误 33 (?)#574

Cdriko 打开了这个问题 2018 年 12 月 10 日 · 3条评论

注释

I 或 J 值较大的错误 33 (?) #574

你好
,我在 inkscape 中使用 gcodetools 衍生工具来生成 gocode。
Sudently,使用点线,它生成了许多具有非常大半径的 G3 路径,而不仅仅是线。
结果是这样的:
`;(…)
G0 X33.9176 Y243.2292

M03
G1 F3500.000000 S255
G03 X36.2921 Y243.2228 I237.1478 J52084.2875 F3500.000000 S255
G1 F3500.000000 S255
G03 X39.0374 Y243.2154 I-24.982060.95
J95

G0 X39.6771 Y243.2126

M03
G1 F3500.000000 S255
G1 X44.7973 Y243.1988
M05

G0 X45.4372 Y243.1959

M03
G1 F3500.000000 S255
G02 X48.1825 Y243.1886 I2604.9744 J-485351.2826
G1 F3500.000000 S255
G03 X50.5575 Y243.1824 I41.402 J17696`8596 …)
M05
;(

但是在每个 G02 或 G03 处,我都有一个错误 33。
可能是因为 I 和 J 的值太大了???

如何修复?

I 或 J 值较大的错误 33 (?) #574
贡献者

在那些大半径和短目标距离处,一条直线大致相同。不幸的是,这是 32 位浮点数学的限制。我想 Grbl 可以寻找像这样的边缘情况并为您插入一条短线,但只剩下有限的闪存来插入这样的代码。

I 或 J 值较大的错误 33 (?) #574
作者
崔科 评论了 2018 年 12 月 11 日  

谢谢。
所以我做了一个 python 循环来截断长浮点数。一开始,ti 似乎可以工作,但在第 1626 行,我在这一行之后遇到了同样的错误:

`

G1 F3500.000000 S255
G02 X56.6168 Y325.5949 I-97892。J-102606
G1 F3500.000000 S255
G02 X56.443 Y324.8939 I-49900。J64662.5`

也许甚至比值都短于 7 个数字,插值的结果溢出堆栈?

I 或 J 值较大的错误 33 (?) #574

您应该像这样将 G02 转换为 G01
G1 F3500.000000 S255
G01 X56.6168 Y325.5949
G01 X56.443 Y324.8939

请注意,实际移动的距离非常短,只有 0.72 毫米,您不会看到圆弧和直线之间的区别。

更好的方法是告诉您的 Gcode 生成器为您执行此操作,即为任何短于 1 毫米且半径大于 5000 毫米的线段生成线 (G01)

喜欢 (0)