开源改变世界!!

高度探测问题 #104

推推 grbl 2年前 (2023-02-10) 124次浏览
关闭
deHarro 打开了这个问题 2019 年 4 月 14 日 · 10 条评论
关闭

高度探测问题#104

deHarro 打开了这个问题 2019 年 4 月 14 日 · 10 条评论

评论

高度探测问题 #104
德哈罗 评论了 2019 年 4 月 14 日  

嗨,马丁,
我决定自己开一个问题来研究我对 OCP 的探索。
再一次,请不要被我的作品冒犯!我会很高兴地让我相信我做错了什么,OCP 是对的。

那么,我做了什么,尤其是为了什么?

简而言之:
我认为 CNC 路由器应该雕刻出与 g 代码中定义的深度完全相同的沟槽。

长版本:
几周或一个月前我意识到我的高度图在探测并将地图应用到 g 代码后并没有立即产生干净的布局。通常,我想,好吧,我做错了什么,手动更正高度调整并得到一个合适的布局。

然后,两天前,你提到,你也有这方面的问题。这让我的钟声响起,我开始对此进行调查。
背景,如上所述:我们的路由器机制和您的代码应该能够在可能出现的所有情况下保持沟槽的估计深度。
会说,如果我将雕刻深度设置为 0.04 毫米并且 OCP 探测偏移量为 0.02,将此偏移量计算到 g 代码中,那么得到的沟槽应该距离覆铜表面 0.04 毫米,而不仅仅是 0.025毫米左右。

在现实世界中,我的路由器在按上述方式操作时几乎不会划伤覆铜板的表面。所以我认为,有一些可能的改进,我想找到原因。

你强调你确定,OCP 中的数学做得很好,我相信你检查过的是真的 :-)
你可能已经检查了你提出的测试方法(“尝试用公式生成高度图(见“New HigheMap”对话框的底部)并使不平整度足够大,可以用眼睛看到),一遍又一遍地确定这一点。

因此,考虑到该过程的正确性,我采用了另一种方式,将探测过程包括在测试链中。

我将两块板焊接到另一块板上以获得两个不同的探测高度:

高度探测问题 #104
高度探测问题 #104

然后我安装了我的 pogo 式测试针(弹簧加载以防止意外将针刺入电路板)并开始探测一个非常小的区域,刚好足以容纳四个以 Z=0 作为目标深度的孔:

高度探测问题 #104

探测的设置是这样的:

高度探测问题 #104

(我知道,下沉速度太高了,但是对于这个用我的弹簧加载钻头进行的测试没问题)。

生成的高度图是这样的:

高度探测问题 #104

当我将地图应用到我的 g 代码时,我得到了这个:

高度探测问题 #104

在上图中看不清楚,但也许您可以发现两条线,这两条线标志着钻头进入双板的运动。这分别来自代码中的第 5 行和第 7 行(红色圆圈)。

我想这是 Estlcam 的一个错误(?),我不是在寻找它,而是无意中被绊倒了。我必须对此进行调查,不知道这是否是我可以在 Estlcam 中调整的参数。
Estlcam 使用“G00 Z0.5000”到达电路板上方 0.5 毫米,这显然不是由 OCP 处理的,然后使用“G01 Z0.0000 F100 S12000”进行实际孔,OCP 已正确调整。

到目前为止,对于 Estlcam,现在回到 OCP……
如果我从 g 代码中删除那些有问题的 G0 Z0.5 命令,我的测试位将以不同的高度接触电路板的表面,一切都很好而且安全。覆盖(g 代码和地图)的高度绝对正常,并且与地图和 g 代码的值一致。

到目前为止,我关于 OCP 中可能存在错误的理论被打破了。
我仍然不清楚进行实际布局时的偏差。

哈拉尔德

高度探测问题 #104
作者

我做了一些额外的测试,在材料中钻孔(例如雕刻布局时)。
这里也没有明显的错误。

我按照你的建议投降并应用了一些 µ 手册。

哈拉尔德

高度探测问题 #104
作者
德哈罗 评论了 2019 年 4 月 15 日  

再次返回…完成更多测试。

我没有注意这个事实,但回想起来它一直在那里。
我总能发现的唯一偏差是 Z=0 之间的差异,我通过发出为归位 Z 定义的以下宏得到

G38.2Z-10F20
G92Z0
$J=G91F100Z1

和探测值,在相同的起始位置 (X=Y=0) 导出。
在原位探测时,我得到的读数总是约为 0.02(正好是 0.019 .. 0.022)。

如果我考虑到这一点,我会达到我们在雕刻电路板时得到的偏差幅度(记住,我开始争论雕刻时得到的这个 20µ 偏移量)。

让我们算一下:我必须将我的 Z 轴从探测到的零点向下调整两到三下。
2..3 次点击,200 步/转,导程 3 毫米/转导致 … 40µ .. 45µ。
-> 经验教训:单击一次就足够了……;-)

好的,与您建议的 5µ 增量相比,这很重,但是当我们考虑到您以 0.05 作为深度开始而我的深度值以前是 0.04 时,差异越来越小。

我很确定,如果我从我的 g 代码文件中的每个 Z 值中减去这 20µ,我将在应用探测地图后从一开始就得到想要的结果。

但回到事实:
你能解释一下,为什么我的宏(见上文)和你的探测算法在 Z=0 时得出不同的值吗?

哈拉尔德

高度探测问题 #104

在原位探测时,我得到的读数总是约为 0.02(正好是 0.019 .. 0.022)。

我也测试过一次并得出相同的结论。不知何故,探测总是偏离几微米,这肯定与软件有关(不确定是 GRBL 还是 OCP)。

我很确定,如果我从我的 g 代码文件中的每个 Z 值中减去这 20µ,我将在应用探测地图后从一开始就得到想要的结果。

这正是我过去几个月所做的。在以 -50μm 布线且深度不够时,我决定以 -80μm 布线,电路板完美无缺。这对我来说并不难,因为一旦你测量和测试了所需的布线深度并相应地生成你的 gcode,电路板看起来会非常好,即使探测不准确也没关系。它确实不准确,并且可以调整误差。

高度探测问题 #104
作者

嗨,Can,
好的,感谢您的确认!

我自己有点完美主义,但遗憾的是我不能自己制作这么好的软件。但我相信 Martin 会找到问题,只是为了从他的程序中消除这种偏差 :)
或者他至少会解释,为什么必须以这种特定的方式解决这个问题……

哈拉尔德

高度探测问题 #104
所有者

大家好,

手动和自动探测之间的这种差异来自于 grbl 进行探测的方式。grbl 在感觉到接触时不会立即停止,而是在有限的时间内减速。这意味着触点关闭的位置(存储在高度图中)不等于机器停止的位置(您的宏将其用作 Z=0)。
当然,这一切都假设您始终使用相同的进给速率进行探测。

应用高度图后,刀具路径的高度是相对于接触点的所需深度。工作坐标系在这里根本不重要,您可以将 Z 原点设置在铜上方一毫米处,它仍然可以正常工作。

如果您始终需要比原来的 0.04 毫米更深的铣削深度,只需增加它即可。至少在这方面,OpenCNCPilot 没有错:)

马丁

高度探测问题 #104
作者

嗨马丁,
感谢您的解释。当我阅读它时,它对我来说是完全清楚的,我将按照 Can (@sirsenor) 的描述来规避这个问题。

哈拉尔德