Contact me: hankecnc@gmail.com

360 度圆弧运动的机器位置无效 #743

推推 grbl 3年前 (2023-01-23) 302次浏览

打开
Overdrivr 打开了这个问题 2019 年 10 月 21 日 · 5 条评论
打开

360 度圆弧运动的机器位置无效#743

Overdrivr 打开了这个问题 2019 年 10 月 21 日 · 5 条评论

注释

360 度圆弧运动的机器位置无效 #743
过载 评论了 2019 年 10 月 21 日  

你好,

我们正在大量使用 GRBL,最近我们发现 GRBL 会为罕见的圆周运动产生无效运动。

当圆弧运动具有相同的起点和终点时,bCNC 将此运动解释为完整的 360 度圆弧,而看起来 GRBL 将其随机解释为 0 度或 360 度圆弧(可能是数值稳定性问题?)。我所说的随机是指同一部分的不同旋转(0、90、180、270)会导致不同的 GRBL 运动。

例如,下面的同心圆表示最终移动一个完整的 360 度弧,但看起来它会导致 GRBL 的零度运动:

(...)
G01 X-1964.503 Y123.761 Z-18
G03 X-1965.409 Y127.282 Z-18 I-5.235 J0.530
( ARC MOTION BELOW HAS SAME START AND END)
G03 X-1965.409 Y127.282 Z-18 I-9.091 J-6.282
(...)

在 bCNC 中,所讨论的运动会产生一个完美的圆:

360 度圆弧运动的机器位置无效 #743

但在 GRBL 中(使用提供命令和解析状态的 python 脚本模拟),它会导致不同的运动(最后一个弧线丢失),旋转 90 度:

360 度圆弧运动的机器位置无效 #743

但是旋转 270 度时运动是正确的:

360 度圆弧运动的机器位置无效 #743

360 度圆弧运动的机器位置无效 #743
贡献者

感谢您的报告。如您所说,可能是数字错误。您能否提供您的 Grbl 设置、$I 构建信息输出以及您对默认固件所做的任何更改的任何详细信息?当我可以在此处重现问题时,更容易找到问题。

360 度圆弧运动的机器位置无效 #743
作者

当然,最新的 GRBL 1.1h 会发生这种情况,没有对源代码进行修改。

$0 | Step pulse, microseconds  | 10
$1 | Step idle delay, milliseconds  | 25
$2 | Step port invert, mask | 0
$3 | Direction port invert, mask | 6
$4 | Step enable invert, boolean | 0
$5 | Limit pins invert, boolean | 0
$6 | Probe pin invert, boolean | 0
$10 | Status report, mask | 3
$11 | Junction deviation, mm | 0.010
$12 | Arc tolerance, mm | 0.002
$13 | Report inches, boolean | 0
$20 | Soft limits, boolean | 0
$21 | Hard limits, boolean | 0
$22 | Homing cycle, boolean | 0
$23 | Homing dir invert, mask | 0
$24 | Homing feed, mm/min | 25
$25 | Homing seek, mm/min | 500
$26 | Homing debounce, milliseconds | 250
$27 | Homing pull-off, mm | 1.000
$30 | Max spindle speed, RPM | 1000
$31 | Min spindle speed, RPM | 0
$32 | Laser mode, boolean | 0
$100 | X steps/mm | 66.100
$101 | Y steps/mm | 116.300
$102 | Z steps/mm | 642.500
$110 | X Max rate, mm/min | 15000
$111 | Y Max rate, mm/min | 15000
$112 | Z Max rate, mm/min | 3000
$120 | X Acceleration, mm/sec^2 | 80
$121 | Y Acceleration, mm/sec^2 | 80
$122 | Z Acceleration, mm/sec^2 | 50
$130 | X Max travel, mm | 200
$131 | Y Max travel, mm | 200
$132 | Z Max travel, mm | 200
$I
[VER:1.1h.20190825:]
[OPT:V,15,128]
ok

这是要重现的 NC 文件:

EP18_2500x1250_Batch2_Plaque3.main[d=7.9mm].nc.zip

360 度圆弧运动的机器位置无效 #743
作者

不好意思,点错了

360 度圆弧运动的机器位置无效 #743 Overdrivr 重新打开了这个 2019 年 10 月 22 日
360 度圆弧运动的机器位置无效 #743

当我有机会时,我也会研究它。此刻,我正坐在一家餐厅里,虽然我身上没有 Arduino……

嗯…只是作为一种解决方法;你能编辑你的后处理器来为这种情况生成多段弧形移动吗(所以一个完整的圆可能会输出两个或三个移动)?

360 度圆弧运动的机器位置无效 #743
作者

@bdurbrow这就是我们最终实施的。

我可以帮助解决这个问题,但是是否有测试套件可以为这个错误编写回归测试?

zappen999 添加了对引用此问题的 zappen999/g-code-builder 的提交 2021 年 1 月 13 日

喜欢 (0)