开源改变世界

自动重新执行文件次数 #478

推推 grbl 2年前 (2023-02-01) 171次浏览
关闭
MohamadAlsadi 打开了这个问题 2017 年 1 月 2 日 · 19条评论
关闭

自动重新执行文件次数#478

MohamadAlsadi 打开了这个问题 2017 年 1 月 2 日 · 19条评论

注释

自动重新执行文件次数 #478

我需要在 bCNC 中添加文本框以重新执行 Gcode 文件,次数等于文本框中的值自动无需用户干预。因为我需要切割相同形状的次数。
请帮我添加这个未来

自动重新执行文件次数 #478
所有者

我不喜欢在显示屏上添加太多专用按钮。已经很乱了。实现它的最简单的选择是在命令行中添加一个参数,如
RUN
,它将按堆栈中的原样推送 gcode。
当然此时它不能进行任何区分,所以它也会添加页眉/页脚。

自动重新执行文件次数 #478
贡献者

–run 已经是一个 arg 选项

自动重新执行文件次数 #478

@effer
我不明白你在说什么@effer 请给我更多解释?

自动重新执行文件次数 #478
贡献者

@MohamadAlsadi之前已经有用户提出过类似的请求。所以有一个可以在启动时运行 bCNC 的行参数。将它与要加载的文件的名称结合起来,您可以直接运行该文件。
无论如何,这不会按照您的要求重复工作。
我正在寻找是否可以在 gcode 中使用 python 这可以完成,但似乎%wait%if 运行特殊命令存在一些问题。
@vlachoudis %if 运行似乎无法正确编译命令。它子串了错误数量的字符。我错了吗?

自动重新执行文件次数 #478
作者
穆罕默德阿尔萨迪 评论了 2017 年 1 月 7 日  

亲爱的,拜托,拜托,所有的故事都是:腼腆的正文 G 代码(没有页眉和页脚)并将其粘贴到原始 G 代码正文下的多个编号。
我们需要文本框在单击时输入报告和按钮的数量,操作粘贴执行次数等于文本框中的数字
我该怎么做?
@vlachoudis
@effer

自动重新执行文件次数 #478

@MohamadAlsadi为什么不使用文本编辑器将 G 代码主体连同多个工作偏移一起复制并粘贴到新文件中?

自动重新执行文件次数 #478
贡献者

这只是一个解决方法:我已经使用了 tiles 插件@vlachoudis并适应您的需求。您可以以此为基础来满足您非常特殊的需求。

我不能在这里上传 python 文件,所以你必须把文件 copies.txt 在这里,并重命名为 copies.py。然后将文件移动到 bCNC 文件夹中的插件目录。

副本.txt

Start o restart bCNC 你会在tools–>cam menu–>Copies中发现一个新功能

自动重新执行文件次数 #478

这是非常基本的,只需输入必须复制(重复)代码的次数,然后点击执行。
希望这会帮助您找到方法。

自动重新执行文件次数 #478

@effer
谢谢亲爱的,但我需要在编辑点击中而不是在工具选项卡中。请

自动重新执行文件次数 #478
作者
穆罕默德阿尔萨迪 评论了 2017 年 1 月 8 日  

@effer
我的朋友,我只需要重写正文,没有页眉和页脚。你的代码重复每一件事(如果用户选择它们,则为页眉正文页脚)并且需要用户选择正文来重复它。我需要没有用户进入的自动选择的身体
每个块必须以行“g0 x0 y0”开始并以两行“g4 P0.01”和行“g10 l20 p1 y0”结束
例如:for 3 repeat

标头
主体
g0 x0 y0
主体
g4 P0.01
g10 l20 p1 y0

g0 x0 y0
主体
g4 P0.01
g10 l20 p1 y0

g0 x0 y0
主体
g4 P0.01
g10 l20 p1 y0

页脚

自动重新执行文件次数 #478
作者
穆罕默德阿尔萨迪 评论了 2017 年 1 月 8 日  

@effer
如果工具页面中的按钮没问题。但是来自正文的每个副本大多数都以“g0 x0 y0”行开始,以两行“g4 P0.01”结束,然后是“g10 l20 p1 y0”行
,例如:for 3 repeat

标头

g0 x0 y0 // 开始第一次复制
body
g4 P0.01 //
g10 l20 p1 y0 // 结束第一次复制

g0 x0 y0 // 开始二次拷贝
body
g4 P0.01 //
g10 l20 p1 y0 // 结束二次拷贝

g0 x0 y0 //开始第三次拷贝

g4 P0.01 //
g10 l20 p1 y0 //结束第三次拷贝

页脚

自动重新执行文件次数 #478
贡献者

副本.txt

如果您需要在插件中编辑页眉或页脚,您可以从 bCNC 进行。要在文本框中换行,请使用 SHIFT+CTRL+ENTER

自动重新执行文件次数 #478

自动重新执行文件次数 #478

@effer
谢谢,我的朋友

自动重新执行文件次数 #478
所有者

我喜欢的解决方案@effer,任何人都可以根据自己的需要制作自定义插件,而不是增加基本代码。

自动重新执行文件次数 #478
贡献者

谢谢@vlachoudis. 你看看 %wait 和 %if 运行吗?您认为可以将这些命令附加到 gcode 来再次运行代码吗?

自动重新执行文件次数 #478
所有者

@effer%wait 和 %if 运行有什么问题?无论如何,现在重新运行代码是不可能的,因为这些命令不支持分支。我们应该在程序中放置某种流程控制,以允许循环、函数定义等。但是,将它与编辑器和显示画布链接起来会很麻烦,因为它会失去 1 对 1 的关系要绘制的线条和项目。

自动重新执行文件次数 #478
贡献者

@vlachoudis我借此机会澄清一下。
关于这个请求,我的第一个想法是使用 gcode 中的一些 python 来解决它。所以我认为在底部添加一个%wait(清空 grbl 缓冲区)和一个%if 运行 initRun()会成功。我错了。

  1. %wait是如何工作的?使用以下所有行还是仅使用同一行中的命令?
  2. 我错了吗,或者如果我在%if 运行的同一行中写了一些代码,它不会通过 compileLine() 方法中的return compile(line[1:],””,”exec”)正确编译?

我从来没有深入思考过在画布渲染中混合使用 gcode 和 python 的后果。真是一团糟。集成 python 代码也是一种罪过,不能全速使用它,只能用于一些非常特定的用途。

自动重新执行文件次数 #478
所有者

@MohamadAlsadi实际上不需要额外的插件,因为“Tile”可以完成这项工作。如果指定 dx=0 和 dy=0, ny=1 他可以使用 nx 作为重复次数。

@effer

  1. %wait,暂停内部发送器,直到到此为止的所有命令都完成,grbl 返回“ok”并且 Rx grbl 缓冲区为空。有一些特定的情况是强制性的,例如在探测中,我们希望在探测命令完成后同步执行 python 代码。否则 bCNC 将在将它们推送到 grbl 时执行以下行,这将产生错误的结果,因为探针变量尚未更新。
  2. 你为什么这样讲?
    确实在画布中混合 gcode 和 python 是一团糟。每行 gcode 的程序只为 gcode 行保留一个指向绘制对象的指针。
    我在这里没有任何干净简单的方法来使用 python 的全部功能,这很好。
    就像现在的程序一样,它是一组带有多个 python 插入的 gcode 行。使用脚本的所有功能必须以另一种方式完成,一个内部带有 gcode 行的 python 程序。在这种情况下,我们可以将所有内容渲染为单个对象,所有编辑/CAM 功能都将消失。
自动重新执行文件次数 #478

@vlachoudis
谢谢,我的朋友 。我希望你的答复早点到来。
不过非常感谢你