开源改变世界

宏按钮提案 – 征求意见 #681

推推 grbl 3年前 (2023-01-30) 137次浏览
打开
bdring 打开了这个问题 2020 年 11 月 25 日 · 10 条评论
打开

宏按钮提案 – 征求意见#681

bdring 打开了这个问题 2020 年 11 月 25 日 · 10 条评论

注释

宏按钮提案 - 征求意见 #681
所有者

宏按钮提案 – 征求意见

我们目前支持两种类型的宏。

  • WebUI:您可以将 gcode 文件上传到 ESP32 上的闪存(非 SD)存储。然后,您可以为 WebUI 创建一个按钮,并指定一个文件在按下时运行。
  • 用户宏按钮:这些是连接到控制器的 1 到 4 个物理按钮。按下按钮时,它会执行用户提供的功能。这可以通过运行静态 gcode 或程序执行任何操作,“如果这样那么那样”类型的东西。

宏按钮是一项普遍要求的功能,但编码要求让一些人望而却步。提案是有一个默认的基本模式,其中物理按钮像 WebUI 一样工作,还有一个高级模式,您可以在其中提供功能。会有像$User/Macro0= 这样的设置会告诉按钮要做什么。

问题是设置应该提供什么。

  • 一行 Gcode?(篇幅有限)
  • 要从 SD 卡运行的文件?(这些文件可能有点短暂)
  • 从ESP32的NVS(Flash)运行的文件(更稳定,但目前需要WebUI上传)
  • 与某种前缀混合(可能令人困惑)
    • GC:G53G0Z-1(用于 gcode)
    • NVS:\foo.nc(从 ESP32 运行文件 /foo.nc)
    • SD::\bar.nc(从 SD 卡运行 /bar.nc)

设置名称$User/Macro0=好还是有更好的名称?

想法……评论?

宏按钮提案 - 征求意见 #681 bdring 添加了 增强 新功能或要求标签 2020 年 11 月 25 日
宏按钮提案 - 征求意见 #681
合作者
米奇布拉德利 评论了 2020 年 11 月 25 日  

我们有现有的命令 $LocalFS/Run=filename 和 $SD/Run=filename 。也许宏设置的值只是逐字命令。

$User/Macro0=G20
$User/Macro1=$SD/Run=foo.nc
$User/Macro2=$LocalFS/Run=bar.nc

宏按钮提案 - 征求意见 #681
合作者
米奇布拉德利 评论了 2020 年 11 月 25 日  

对于逐字 GCode,我们可以使用 & 作为行分隔符,在传递之前将其转换为换行符。我不知道 GCode 中对 & 的任何现有使用——尽管我没有进行详尽的搜索。或者我们可以修改 gcode 解析器以识别 & 作为换行符的替代。如果某些 GCode 程序包含 & 字符,前者 – 翻译 & – 会更安全 – 尽管我目前看不出它们是如何工作的,除非它们在注释中。如果我们修改解析器,我们可以忽略 & 内部注释。

宏按钮提案 - 征求意见 #681
所有者作者

我喜欢。在做任何其他事情之前进行简单的替换可能是最简单的。

宏按钮提案 - 征求意见 #681

我更喜欢“命令文件”来执行像 Command0.txt .. Command4.txt。
文件的内容可以是一行 gcode、要执行的文件的名称等。编辑文本文件是大多数用户的能力范围内。随着时间的推移,可以扩展格式/语言以满足未来的需要。

宏按钮提案 - 征求意见 #681
所有者作者

@HuubBuis这是选项之一@MitchBradley正在谈论。foo.nc 和 bar.nc 都是命令文件。一个存储在 ESP32 上,一个存储在 SD 卡上。

我调整了代码,这 4 个宏工作正常。

$User/Macro3=$LocalFS/Run=upg30.nc
$User/Macro2=$SD/Run=upg30.nc
$User/Macro1=G53G0Z-1&G28
$User/Macro0=G28
宏按钮提案 - 征求意见 #681

我提出了另一个有用的(我认为)选项,一个向 GUI 发送(推送)消息的“宏”,因此 GUI 可以响应按钮。

宏按钮提案 - 征求意见 #681

是否可以运行这样的函数并从 GCode 中运行它并使用宏按钮?

void sequencerelays(){
digitalWrite(E1, HIGH);
延迟(500);
数字写入(E2,高);
延迟(200);
数字写入(E2,低);
延迟(200);
数字写入(E1,低);
延迟(500);
}

宏按钮提案 - 征求意见 #681
所有者作者

是的,

通过 GCode你已经可以做到这一点。您将设置 (2) 个数字 I/O 引脚并使用以下 gcode 控制它们。

M62P0
G4P0.5
M62P1
G4P0.5
M63P0
G4P0.5
M63P1
G4P0.5

通过按钮宏设置那些相同的引脚并创建下面的宏,这与 gcode 相同,& 字符用作行尾。

$User/Macro0=M62P0&G4P0.5&M62P1&G4P0.5&M63P0&G4P0.5&M63P1&G4P0.5
宏按钮提案 - 征求意见 #681
里尔曼奇 评论了 2020 年 12 月 7 日  

实际上,我可以想到像这样的更长的序列,它在一个 gcode 中使用了多次(20-30 次)。
通过从 gcode 定义和调用 arduino 函数的方法,可以添加很多功能,包括等待输入状态和任何基于 if/else 序列的传感器。

宏按钮提案 - 征求意见 #681

我不得不删除 Custom 目录中的所有其他文件,因为它一直说在 coreXY.cpp 中找不到 etc/settings.h。此目录中只有我自己的服装文件,我控制我的真空吸尘器(很棒)

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
增强新功能或要求
项目

还没有

发展

没有分支机构或拉取请求

5人参加
宏按钮提案 - 征求意见 #681宏按钮提案 - 征求意见 #681宏按钮提案 - 征求意见 #681宏按钮提案 - 征求意见 #681宏按钮提案 - 征求意见 #681

喜欢 (0)