Contact me: hankecnc@gmail.com

G代码错误33 #230

推推 grbl 3年前 (2023-01-21) 399次浏览
关闭
vMeph 打开了这个问题 2017 年 7 月 16 日 · 54条评论
关闭

G代码错误33#230

vMeph 打开了这个问题 2017 年 7 月 16 日 · 54条评论

注释

G代码错误33 #230

我正在使用 Fusion 360,在某些 G 代码中出现错误 33 我正在查看文件,我看到了类似的代码,但有些代码没有出错
,这是 UGS 平台中检测到的错误代码之一,机器停止运行,然后我必须点击继续
G3X271。 4427Y20.7057J0.0373

G代码错误33 #230

错误 33 表示目标位置不正确,但我们不能从那一行代码中分辨出来。为了计算我们需要圆弧的起始位置,这将是先前命令的 X、Y 位置。

G代码错误33 #230
贡献者

@vMeph: 请在此错误之前提供 g 代码。我想开始收集所有这些 Fusion 360 问题,看看是否存在一些共性。

G代码错误33 #230
作者
vMeph 评论了 2017 年 7 月 17 日  

@chamnit @109JB
我不确定问题到底出在哪里,因为我不得不跳过并忽略这么多行。
此设计出现的问题 是使用了 3D 并行操作
G代码错误33 #230

这是出现问题的部分中的文件
fileW33.txt

G代码错误33 #230

@vMeph您是否尝试过 UGS 以外的方式来发送代码?

G代码错误33 #230
作者

@neilferreri 不,我没有尝试过其他
我一直使用 UGS 平台

G代码错误33 #230

我不确定问题到底出在哪里,因为我不得不跳过并忽略这么多行。

如果出现错误,则继续没有意义,您需要解决原因。

使用 GrblPanel 运行您的文件,我在第 141 行收到错误 33。

G代码错误33 #230
USBCNC 评论了 2017 年 7 月 17 日  

它发生在这一行
if (delta_r > (0.001f*gc_block.values.r)) { FAIL(STATUS_GCODE_INVALID_TARGET); } /
当delta_r = 0.0107002258 r = 0.0372999981
gc_block.values = {f=100.000000 ijk=0x00a39950 {0.000000000, 0.0372999981, 0.000000000} l=0 ‘\0’ …}

G代码错误33 #230

错误行周围的 GCODE 行是。
G2 Y30.2403 Z-4 J-0.0699 K0.1426
G1 Y21.546 Z-4
G0 Z5
X271.443 Y20.695
Z2
G1 Z-3.974 F100
G3 X271.4427 Y20.7057 J0.0373

G代码错误33 #230

将第 142 行从
G3 X271.4427 Y20.7057 J0.0373 修改
为 G3 X271.443 Y20.695 J0.0373
解决了这个问题。请查看第 139 行
X271.443 Y20.695
是 X 和 Y 所在的位置。该圆正尝试转到带有 J0.0373 的 X271.4427 Y20.7057,根据计算,这将不是一个圆。
检测不在 UGS 中,而是在 GRBL 固件中。

G代码错误33 #230
贡献者

我想我应该问:为什么 Fusion360 生成半径为 37 微米、弧长为 10 微米的弧?在这种精度水平下,四舍五入成为一个大问题。大多数业余爱好者的 CNC 无法分辨 25-50 微米以下的尺寸。在这一点上只编写一条短线会更好。有没有办法强制 Fusion360 忽略小圆弧?

G代码错误33 #230
X3ms蛇 评论了 2017 年 7 月 17 日 通过电子邮件
G代码错误33 #230

我想我应该问:为什么 Fusion360 生成半径为 37 微米、弧长为 10 微米的弧?

因为帖子允许它(-:
有一个选项可以完全关闭圆弧,但帖子中也有一个设置最小值,半径。低于该半径的线段将被转换为一个或多个线段。
详情这里…
https://forums.autodesk.com/t5/fusion-360-computer-aided/arc-radius-too-small/td-p/5551526

G代码错误33 #230
作者

@swarfer
我现在不在家,但我认为融合中有一个设置可以指定最小弧度公差,最佳值设置是多少?

G代码错误33 #230
贡献者

@swarfer:链接简要说明您可以更改最小弦长。如果是这样,您需要将该值设置为大于 0.1 毫米的值。恕我直言,弦长远比半径重要,但两者都是必要的。

@vMeph:我可能会将其设置为 0.1 毫米或更大。如果您有高精度要求,它可能会更低。但就像我上面提到的,我认为弦长对误差计算的影响更大。所以也尝试设置它。

G代码错误33 #230
作者

@chamnit
为 GRBL 可以处理而不会产生半径和弦长错误的最小值设置会很棒

稍后我会看看 sets fusion 有什么用

G代码错误33 #230
贡献者

@vMeph: 我之前考虑过它,当有闪存和额外的速度时,我确实将它放在下一个版本的开发列表中。328p 上的浮点运算速度很慢并且占用了大量空间。它仍然可能适合,但还没有花时间充实完整的实现。这些 Fusion360 问题在 Autodesk 方面并未得到改善。所以我可能必须安装一些东西。我们将会看到。

G代码错误33 #230
作者

@chamnit
这是 Fusion 360 为 grbl 设置的默认值
G代码错误33 #230

G代码错误33 #230
贡献者

我一直在研究这个问题,并得出结论,这不是 Grbl。Fusion360 正在生成非常可怕的弧线。Grbl 产生的每个错误都在做它应该做的事情。

例如,第 1776 行编写了一个 G2 圆弧,如下所示:G2 X152.445 Y151.9257 J-0.032起始位置为X152.445 Y151.935. X 不变,Y 之间的区别是-0.0093mm。它应该绘制一个半径为 180 度的顺时针圆弧0.00465mm。相反,Fusion360 表示圆弧半径为0.032mm. 它差了将近一个数量级。我检查的其他错误显示了相同类型的问题。

它们似乎也都受到0.01mm最小弦长后置设置的限制。可以合理地得出结论,这不是精度错误,而是 Fusion360 工具链中处理最小弦长(以及可能的其他情况)时某处的错误。此外,我怀疑它在他们的后处理脚本中的某个地方。

如果我安装一个补丁来忽略像这样的短弦长错误,我只会让这个 Fusion360 错误持续存在。充其量,这只是一个补丁。不是解决方案。我可能会安装编译时选项来执行此操作,但默认情况下不会启用它。

AFAIK,Fusion360 是不断抛出此无效弧错误的两个 CAM 程序之一。另一个我认为是 MakerCAM。我只记得它是开源的,没有被很多用户使用或维护得很好,并且弧线生成工具可能编写得不好。AutoDesk 没有以开源和资金不足为借口。

G代码错误33 #230
作者

@chamnit 不知道这是否有帮助
这是 Fusion 360 原始后处理器
grbl.txt
这是@Strooom更新后处理器
OpenbuildsGRBL.txt

我用的是 Strooom 后处理器

G代码错误33 #230

使用螺旋斜坡时,我让 Fusion360 生成了使机器剧烈崩溃的圆弧。我将相同的文件发布到非 Grbl 机器上,一切正常,并且在发布到 Grbl 时禁用 G2/G3 也解决了这个问题。

bug(s?) 肯定出现在默认的 Fusion 帖子中。简单地禁用 Grbl 侧的小弧不是一个安全的修复,因为有时它会产生大而完全可疑的弧……

不幸的是,我没有费心保存文件来重现这个……

G代码错误33 #230
贡献者

@vMeph: 我看了帖子文件。我不知道是什么,如果有的话,错误是什么。其中的大部分函数调用都不在这些帖子文件中。我认为这些错误存在于这些处理最小弧弦和半径设置的内部 Fusion360 后期文件中。如果您不是 Fusion360 用户,很难知道当您更改其中一些后期设置时情况会发生什么变化。您始终可以尝试更改最小弦长和圆弧半径,然后以$C检查模式将其发送到 Grbl 以查看它是否会引发任何错误。如果他们这样做,请将它们张贴在这里。

@matthewSorensen: 感谢提供数据。我对大弧度也是一个问题并不感到惊讶。您还记得您在非 Grbl 机器上使用的是哪个帖子吗?我想看看帖子配置有何不同。

G代码错误33 #230
作者
vMeph 评论了 2017 年 7 月 18 日  

@chamnit 我使用我之前发布的文件做了一些测试,这就是我想出的

minimumChordLenght 0.3 minimumCircularLenght 0.3 无错误
minimumChordLenght 0.3 minimumCircularLenght 0.2 错误
minimumChordLenght 0.2 minimumCircularLenght 0.3 无错误
minimumChordLenght 0.1 minimumCircularLenght 0.3 错误

任何低于这个看起来的东西都会一直产生错误我做的
其他设计我从来没有发现错误不知道为什么这个会产生错误

G代码错误33 #230
贡献者

@vMeph: 有趣的。看起来他们都相互依赖并且每个都会引起问题。我不确定这是否会解决所有未来的问题,并且这些结果可能与您的特定程序有关。此外,0.3mm弦长和圆弧半径都非常大。我想知道这是否意味着 Fusion360 会为比这更小的圆弧生成多个小的线性拟合,或者它是否只生成一条直线而不是圆弧?如果是第一个,那么你应该可以开始了。

为了将来参考,Fusion360论坛声明该设置allowedCircularPlanes = 0将在生成的 g 代码中禁用 G2/3 弧,并且只对所有内容进行 G1 线近似。这几乎可以保证工作。

G代码错误33 #230

@vMeph @matthewSorensen您可以共享遇到问题的 Fusion 360 文件吗?我的很多 CAD 工作和大部分 CAM 都使用 Fusion 360,但我没有注意到这些错误。我刚刚运行了几个 F360 生成的 gCode 文件,没有看到错误。我确信微小的弧线是一个错误,但可能是针对特定的 CAM 操作/设置。我从未见过 Fusion 生成的任何东西会导致机器崩溃,并且@vMeph通过非理想地忽略那些微小的弧形移动,您的文件已完成。

G代码错误33 #230
作者

@neilferreri 文件在上面,使用的凸轮操作是 3d 平行

G代码错误33 #230

@vMeph我指的是实际的 .f3d 文件。我无法通过对任何文件进行任何操作来重现错误。

G代码错误33 #230

@vMeph我用默认的 grbl post 创建了 gCode,没有错误。稍后我将有更多时间查看导出的文件。尝试使用默认值。

G代码错误33 #230
贡献者

@neilferreri: 有趣的。Stooom 的帖子与当前的 Fusion360 默认帖子之间没有太大区别。他的帖子基本上增加了弧值中的位数,以帮助进行数字舍入。据我所知,唯一值得注意的是在 Stroom 的版本中公差值从 0.002mm 增加到 0.005mm。

G代码错误33 #230
贡献者

@neilferreri: 请发布新的 gcode 文件。我想看一看。

G代码错误33 #230

@chamnit我会在回到电脑前立即发布。

G代码错误33 #230
作者
vMeph 评论了 2017 年 7 月 19 日  

@neilferreri@chamnit 我也很好奇结果会怎样,想知道这是我做错了什么还是融合做错了什么

我最初更改了 Strooom 后处理,但我也尝试使用原始后处理器,但仍然有相同的错误

我改变了岗位,因为我会把我的钻头放在材料上面,我会在那里标记我的工作位置,每次我开始工作时,主轴都会打开并在 XY 上移动,然后升高 Z,我很想知道为什么正在这样做,结果是我在被要求做这份工作之前从来没有提高过 Z,我真傻哈哈

这就是 Fusion 360 的后处理器的工作方式

1- 启动主轴(会划伤材料)
2 – 将 XY 移动到位置(会划伤材料)
3 – 向上移动 Z
4 – 向下移动 Z 并开始铣削

above order dont have logic to me or is just me?

so i changed the code of post processor in this order that sounded more logic to me

1 – move Z up
2 – go to X Y position
3 – turns the spindle On

喜欢 (0)