Contact me: hankecnc@gmail.com

ArcFit 不工作 #998

推推 grbl 3年前 (2023-02-02) 297次浏览
关闭
sfinexer 打开了这个问题 2018 年 10 月 10 日 · 9条评论
关闭

ArcFit 不工作#998

sfinexer 打开了这个问题 2018 年 10 月 10 日 · 9条评论

注释

ArcFit 不工作 #998
贡献者

我带来了 g 代码和视频。
g代码:
test.nc.zip
视频:
http ://cnc.tiven.ru/ssr-2018-10-09_23.13.37.mp4

ArcFit 不工作 #998
合作者
哈维 评论了 2018 年 10 月 11 日  

ArcFit 不工作 #998

这是太杂乱的形状,弧形拟合可能永远不会适用于此。10mm 的精度也太高
了。您应该坚持使用 0.5mm 之类的值。

但你是真的!

我刚刚在圆弧拟合算法中发现了一些错误,但我不知道如何修复它。如果你想在 lib/bpath.py 中查看它。这是检查两个后续段是向左还是向右转向的代码(因为在弧形中所有段都应该朝一个方向转向)。这也是为什么您永远无法使用此算法来弧拟合您在 g 代码中提供的随机不稳定线的原因(它们经常改变方向)。该算法旨在与先前细分为直线的圆弧一起使用,因此您可以恢复原始圆弧。您可能会用它来替换某些片段,但我怀疑它会让您的图像看起来更平滑。

        def arcFit(self, prec=0.5, numseg=10):
                def arcdir(A,B):
                        #FIXME: here is some bug. A and B is not used at all, but it works better this way. Have to figure out what's going$
                        TA = tmpath[0].tangentEnd()
                        TB = tmpath[1].tangentStart()
                        if (( TA[0] * TB[1] ) - ( TA[1] * TB[0] )) < 0:
                                return 1
                        return 0

两条越野车线应该看起来像这样:

                        TA = A.tangentEnd()
                        TB = B.tangentStart()

但是,当我修复它时它会完全停止工作!也就是说还有其他问题!

像你这样经常改变方向的形状很可能会触发这个错误并产生大圆圈。就像发生在你身上一样。

ArcFit 不工作 #998
贡献者作者

我检查了新功能的工作,发现某处有错误。
我是第一次在 python 上编程,我习惯了 C/C++。

ArcFit 不工作 #998
贡献者作者
斯芬克斯 评论了 2018 年 10 月 12 日  

@Harvie,我指出的更重要的问题:
#997

程序中显然某处存在错误,不允许使用负坐标。

Harvie 向 Harvie/bCNC 添加了引用此问题的提交 2018 年 10 月 14 日

ArcFit 不工作 #998
合作者

我已经解决了这个问题。现在我成功地将弧线安装到您的 g 代码中。但正如我所说…因为你的路径太乱了,我只能 arcfit 1-5%。这是此类弧的示例:

ArcFit 不工作 #998

ArcFit 不工作 #998
贡献者作者

我认为如果路径不好,那么我们必须忽略它,而不是建立弧线。

ArcFit 不工作 #998
合作者

我认为如果路径不好,那么我们必须忽略它,而不是建立弧线。

但这正是发生的事情。这就是为什么只有 3% 的路径被 arcfited。因为其余部分没有合适的弧线。这意味着 97% 的路径都被忽略了。所以我不确定你的意思。今天我添加了帮助以明确此插件的用途。

有一个错误在整个地方产生了那个有趣的圈子(就像在你的视频中一样)。但这不再是我昨天修复的情况。

ArcFit 不工作 #998
合作者
哈维 评论了 2018 年 10 月 15 日  

我做了一些改进,我已经设法将您的草图缩小到几乎一半大小:
test-mrg.nc.zip

在保持外观的同时:
ArcFit 不工作 #998

ArcFit 不工作 #998

ArcFit 不工作 #998
合作者
哈维 评论了 2018 年 10 月 15 日  

现在我用相同的设置和更好的算法缩小到第三个尺寸:

测试mrg2.nc.zip

ArcFit 不工作 #998

它可能看起来更糟,但您始终可以使用相同的算法将精度提高到 0.4mm(或更高):

ArcFit 不工作 #998

ArcFit 不工作 #998
合作者
哈维 评论了 2018 年 11 月 7 日  

我做了一些改进,通过正确的设置,我能够将您的 g 代码复杂性降低 50%,而不会出现任何奇怪的伪影(如上一篇文章中所示)。

我还通过降低圆弧的精度然后删除所有直线来进行有趣的测试。这将 g 代码大小减少了 5 倍。它不是很有用,因为东西变得过于简化和扭曲,但如果你不需要精度,你可以看到有多少弧可以适合:

ArcFit 不工作 #998

它看起来既垃圾又令人毛骨悚然,但我有点喜欢奇怪的“Egon Schiele”外观,只需与他的作品进行比较即可:-D

ArcFit 不工作 #998