评论
@juankygali,为什么要用之字形而不是蛇形? |
你好@sfinexer. 是的,我想改进代码以进行“蛇形”运动,但到那时它只是一个测试。 然而,它花了很多时间来处理……我不确定我是否正在接近它。 抱歉,我不明白你说的“vyzhech”是什么意思? |
@juankygali翻译 )) 烧录/烫画。 我认为这是一个非常有用的插件。 |
#933的副本 |
@sfinexer好的,我明白了,所以你需要做和我几乎一样的过程。但是你是从 Inkscape 获取 gcode 文件吗?也许 Inkscape 可以使我试图获得的过程……只是想知道。我这样做的目的是直接从 Eagle 获取 gcode,然后在 bCNC 中处理它。
我会将 python 文件上传到此线程,但在此之前我想清理代码并可能修改以制作“蛇形”动作。 |
使用 intersection 你可以让它只在路线内进行水平布局,而不是在水平布局上浪费时间而不会燃烧。处理需要很长时间(我不知道是否可以通过某种方式更快地完成)。交集适用于 gcode。然后你必须烧掉轨道的形状。(我在某个时候上传了类似的东西 – 即使在开发中 – 对于带有 2 个不同直径刀具的 PCB)。 |
你好@MARIOBASZ并感谢您的支持。 首先,我看到 intersection 函数是执行此操作的方法,但后来我意识到 isInside 函数已经在使用它了……所以会不一样吗? 关于使用 pocket 操作,我试过了,但我什么也得不到,因为它崩溃了。也许我做错了什么。 对不起,我的无知,但我在这个话题上的知识是有限的。 祝好。 |
@juankygali我已经为您提供了指向#933的链接。intersection 有一些bug,在某些情况下会影响isinside。如果您能帮我弄清楚发生了什么,我会非常高兴,因为岛屿和选项卡都依赖于此代码。 顺便说一句,你使用最新的 git master 吗?有一些关于此代码的检查尚未发布。 |
希望您能找到里面的不便!如果没有空间在内部生成它,而不是什么都不生成,Pocket 就会崩溃。如果有人可以修改它,那将是一个帮助。 |
啊,好的@MARIOBASZ, 我明白你的意思。好吧,在我的情况下,目的是水平移动,尽管我不需要在某些区域燃烧。那是因为 PCB 会有很多走线,而且我认为只在内部路径一条一条地通过比沿着整块板逐行通过会更耗时。只是行驶距离的问题。 |
@sfinexer我让插件能够使用蛇形动作来生成 gcode 如果你想尝试一些东西,我会附上插件的文件……至少它适用于 1 路径设计。 |
我认为 Inside 的问题是在边界线上,如果两条迹线相交 |
这是一个非常有趣的结果@MARIOBASZ. 你是怎么得到的?我正在尝试但没有结果。 首先,我认为您将痕迹隔离开来,然后生成线条图案(使用一些插件),最后使两者有所不同……对吗?如果你能给我解释一下就好了 |
@juankygail, |
通过split2contourn改变eulerize可以防止程序被阻塞。((第 79 和 80 行) |
@MARIOBASZ我一直在按照您解释的步骤进行操作,结果很有趣。也许这离解决我的问题还很远,但我认为这是一个很好的方法。 它有效但只需要一条路径,暂时不知道为什么
不确定这两个函数在做什么,但正如你所说,我看到在某些时候 eulerize 崩溃了……我将它更改为 split2contours 并且似乎有效。 |
如果我没记错的话,交集只考虑了两个对象。必须继续评估其余的选定块。你是程序员吗?我不是在我的机器上发送我修改过的东西(我认为有时会产生一些错误,也许是重叠线的问题?)我不是程序员也许你可以帮我自动化任务:我做了一个变体来转换对象对于实体,如果它们都“相交”,则它适用于两个或多个对象。如果对象A与B相交,C与D相交,D与B与E相交,则没有连接所有的图形,生成一个实体AB,又生成一个CDE。我没有时间(和热情)继续完善它。 |
小心这个问题:#1175 |
我正在阅读所引用的问题,我看到您正在尝试做与我类似的事情。 我的编程知识很差,我几乎看不懂代码,我需要很多时间来开发一些有用的东西……但我试图制作插件,因为我无法让机器按照我想要的方式运行(搬进来水平线,内部燃烧)与任何插件或它们的混合。 所以,关于你的目的,我想到了一些问题: |
Eulerize() 是正在进行的实验性功能,我创建它是因为我不知道我可以使用 split2contours…如果事实证明 split2contours() 做同样的事情,我想我会完全删除它。 |
更新插件 |
我从来没有用过激光或pirograph插件,你解决了线之间重合相交的问题吗? |
用 2 个草莓铣削,0.10 + 0.70 如果我想要在大多数地方轨道之间的分离就是这样(我有在小分离焊接时产生短路的技能)。或者用字母制作一张海报,角度更明显而不是那么圆: |
目前,我只测试了不相交的路径。那是因为我在 bCNC 中加载的 pcb 不会有交叉路径。不过,我会测试它。
是的,我试过了,按照你的步骤。差异效果很好,但生成的结果与我需要的相反。有了交集,事情就失败了,它只走了一条路。我按照你说的加入了街区,但结果是一样的……也许它需要更多的测试。 关于使用 2 种工具进行铣削的目的,我相信我明白了:使用最大的内部区域进行铣削,使用其他工具对形状进行轮廓加工,对吗?自动生成似乎更复杂的gcode。如您所见,我的“方法”有点简陋,但非常简单。此外,与水平线铣削相比,铣削形状不会花费更长的时间吗?事实上,我不知道铣削,也许这不是继续进行的理想方式,但我提出了这种情况。 |
我不这么认为,因为重合段的问题似乎取决于函数 intersectPath,或者它在差异插件中的应用。我看到 intersectPath 不止一次返回同一个交点。也许它正在造成一些混乱……
它只在里面燃烧,G0 运动写在路径外面。
是的,pattern=raster flatten。一有进展我会第一时间更新。 |
精彩的!! |
如果可以,请分享插件或将其上传到 Github。我想试试。 |
不错的结果@MARIOBASZ 这是我现在拥有的插件: |
@juankygali Please learn git basics (how to do fork,clone,commit,pull,push,log,status,pull request,etc…) |
嗨,我正在尝试开发一个插件来以特定方式处理 gcode,以便我的机器可以“打印”PCB 在水平线上的移动。机器的行为将是:在路径内部进行蚀刻(PCB 的痕迹)。
我的想法是检测路径内的点来决定我们是否必须蚀刻。通过处理位于棋盘上的虚拟点地图,它将生成 gcode 来执行所有水平传递。它类似于 pyrograph 插件,但从 gcode 文件开始,而不是图像文件。
我得到的结果如下: 在这个测试中,我看到插件正在运行,尽管它花费了很多时间。我在路径内使用 G1 命令移动(绘制了连续的线条,不准确,但这是为分辨率参数赋予更高值的问题)

测试具有很多路径的文件: 处理过程中消耗的时间很多…它不起作用,因为插件在检测内部路径时失败(没有在路径内部生成 G1 命令,函数 isInside() 返回 false) .

我把我用来做检测的代码部分放在:
不确定我是否正确使用函数 isInside()
我希望你能帮助我。如果需要,我会留下孔代码。请问我是否有不清楚的地方。
非常感谢!!