开源改变世界!!

沿着(待)给定的线探测… #107

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

沿着(待)给定的线探测…#107

deHarro 打开了这个问题 2019 年 5 月 2 日 · 7条评论

评论

沿着(待)给定的线探测... #107
德哈罗 评论了 2019 年 5 月 2 日  

嗨,马丁,

我再次有一个非常特殊的问题需要解决,自然是关于使用 OCP 进行探测和雕刻 ;-)

简短:您的算法是否支持一维高度“地图”?
Long:
你已经意识到我在模型火车方面的活动了。
现在我在处理 ROKAL 机车和“现代”铁路材料时面临一个众所周知的问题。[edit] 早在 2004 年,我就已经在我的主页上写过一些关于这个问题的文章[/edit]
最初的 ROKAL 导轨由某种硬纸板制成,作为轨枕 (Schwellen) 材料,导轨本身 (die Laufschienen) 由薄金属制成板材。这些旧导轨在运行特性方面非常粗糙,早在 2004 年,我就决定用 Tillig 或 BTTB 的新导轨更换所有这些旧导轨。
这些用于 TT 尺寸模型的现代导轨由塑料轨枕和金属板制成,但外观和性能远远超出。

到目前为止完全没有问题,但现在我们来到十字路口和道岔……
这里我们面临的问题是,在某些时候在十字路口滚动时,车轮必须被引导到没有外部引导侧的区域对于其中一个轮子。
为了避免这个问题,聪明的工程师开发了导向装置,通过在相对车轮的内半径上引导车轴来防止车轴偏离。
这假定了一个轴的两个车轮的内表面之间的给定距离。
在这里我们遇到了问题:ROKAL 机车(和货车)在车轮之间有 8.5 .. 9 毫米的间隙,Tillig、BTTB 和其他现代滚动材料具有大约 10 毫米的间隙。
十字路口和道岔被相应地建模,从而防止 ROKAL 材料在这些新的十字路口上运行。

好的,我有一个 CNC 路由器 – 应该很容易解决这个问题……
但是看看:

沿着(待)给定的线探测... #107

我建造了一个钻机来固定交叉路口的可移动部分(这是所谓的“Doppelkreuzungsweiche”,它允许对角线运输以及沿着两侧的曲线)进行铣削。

在放大的图像中,您可以看到弯曲引导处的铣削标记(红色圆圈):

沿着(待)给定的线探测... #107

正如您可能意识到的那样,铣削痕迹不是连续的,而是散布在路径上的。

这就是为什么我认为我必须沿着投影的铣削路径探测高度,以便在铣削时遵循明显存在的高度曲率。

问题是双重的(至少):
首先,我必须定义 OCP 必须沿其获取探针的路径(假设沿此路径的探针高度可以映射到曲线)。
其次,我必须对齐铣削路径以在铣削时完全遵循指导。

这第二个话题本身就是另一个问题。
我试图通过在 CAD 程序中叠加一张十字路口的照片来解决这个问题,但自然地,光学系统总是会出现失真,所以我不得不对铣削路径的半径做出假设。
外轨和内导轨之间的沟槽宽约 1 毫米,必须在该沟槽中进行探测。

如果 OCP 具有横向探测功能并分别计算后续高度探测和铣削本身的 X/Y 路径,这将非常有帮助。

对于我的第一次尝试(不是很成功,我已经杀死了其中三个十字路口),我尝试通过在不接触材料的情况下沿着指定的铣削路径移动手写笔来对齐十字路口,一遍又一遍地匹配手写笔和材料,直到我认为,它可能适合……不同的结果。如前所述,到目前为止,我还没有 100% 的结果:(
知道,有 4 条四条曲线路径和四条直线路径要铣削(每侧各两条)。

在这方面,非常感谢探测横向功能:)
我知道,这是一个非常具体的功能,但无论如何请考虑一下。
谢谢!

[编辑]
关于“计算 X/Y 路径”我想到了类似 3 点的东西来描述一个圆——谢天谢地,曲线的几何形状是从一个圆导出的——然后标记这个圆的一部分以分别探测到被碾磨。
[/编辑]

哈拉尔德

沿着(待)给定的线探测... #107
所有者

嗨,哈拉尔德,

很抱歉,但这将是一个明确的否定(至少对于将其实施到 OpenCNCPilot 中)。这是特定用例的方式,以保证将其放入 OpenCNCPilot 中。我确实考虑过允许具有任意探测位置(而不是固定网格)的高度图,但当时所需的数学对我来说太难了。

也就是说,grbl 绝对有能力做到这一点,但您需要编写一些自定义 PC 软件来配合它。
横向探测就像发送“G38.2 X/Y <…>”一样简单(不确定您是否可以一次移动多个轴以进行对角线探测)

我建议选择一些你选择的编程语言(我会使用 python 来完成这种工作)并专门为此编写一个脚本。为了快速验证概念,您还可以手动探测几个点并将这些点用作 CAD 软件中的参考。您可以从“手动探测”选项卡复制探测结果的确切位置。

马丁

沿着(待)给定的线探测... #107
作者

嗨,马丁,

我预计会有一些朝这个方向的反应,但不问只会半途而废;)
无论如何,谢谢您的解释!

有一个问题仍未得到解答:OCP 是否能够探测并随后遵循一维高度路径?(在相应地调整给定的 g 代码的意义上遵循)
或者数学是否绑定到至少两行的网格?
没有这种能力,所有其他想法都是徒劳的。

谢谢!
哈拉尔德

沿着(待)给定的线探测... #107
所有者

实际上,我不确定如果沿一个维度将大小设置为零会发生什么,这可能会导致错误。数学也适用于一维(至少沿着一条直线),但我很确定这需要实施一些通常不需要的特殊情况。

沿着(待)给定的线探测... #107
作者
德哈罗 评论了 2019 年 5 月 3 日  

我测试了将一个坐标设置为零。
生成的测试模式崩溃了,没有什么可以探测 OCP :(

我已经想过通过点动命令设置探测坐标,然后用宏进行探测,但有了这个发现就没有机会了。

但是等等…
如果我将一个坐标设置为,假设为 0.01,则 OCP 至少绘制一条线(实际上是两条非常靠近的直线)进行探测。

沿着(待)给定的线探测... #107

所以我可能会通过手动设置 X 和 Y 来获取探测点。

完成探测后,我将增加两条线之间的距离(每条线具有相同的高度)(通过编辑地图文件),使其尽可能宽以覆盖整个曲线。

沿着(待)给定的线探测... #107

这将导致类似这样的结果(在 paint.net 中完成)

沿着(待)给定的线探测... #107

这样做应该会达到预期的效果吧?

悬而未决的“唯一”事情是路由器上的对齐方式。
哦,是的,以及要雕刻的确切半径的定义。

嗯,用于执行探测的宏…
是否可以通过执行宏来填充探测图?
请记住,我想通过发出点动命令来设置 X/Y 坐标,然后执行一个先前定义的宏,该宏在给定点进行探测,结果应进入探测图。
请问宏的内容应该是什么?

哈拉尔德

沿着(待)给定的线探测... #107
作者

你好@martin2250
不好意思,我又想推这个话题了……

关于我的问题:
原则上是否有可能以及我的宏的内容应该是什么,以便将探针读数放入我上面描述的 OCP 的“线性图”中?

或者我可以为此使用“手动探测”吗?
(鼠标悬停在“save pos”的帮助下会有所不同)

感谢!
哈拉尔德

沿着(待)给定的线探测... #107
所有者

嗨,哈拉尔德,

抱歉没有早点回来。无法使用宏来填充高度图的点。您需要手动编辑 hmap 文件以输入探测结果:

  • 设置你的工件
  • 生成跨越零件的 2xN 点高度图
  • 对于高度图中的每个 x 坐标,将工具移动到该 x 并在您想要探测的右侧 y 坐标上注视
  • 探测这一点 (G38.2…) 并将 Z 高度传输到 hmap 文件中的两个关联点

要生成刀具路径:

  • 在沿轨道的多个点(沿 x 等距)
    ——将工具移动到那个 x——
    移动 y,这样你就可以切入你想要铣削的墙旁边
    ——将工具放到 z 高度低于顶部边缘墙
    ——使用“G38.2 Y-5 F20”(或类似的)沿着 y 探测墙的确切位置
  • 将坐标传输到您选择的 CAD 工具,并使用它们作为参考来重新创建轨道曲线
  • 导出刀具路径
  • 如上所述应用高度贴图

我希望我涵盖了所有内容,我现在很累
Martin

沿着(待)给定的线探测... #107
作者

嗨,马丁,
真遗憾 – 但无论如何还是感谢您的快速浏览!
听起来很合理,应该可以工作。
如果没有,我会回来… ;-)

谢谢!
哈拉尔德