开源改变世界

功能请求:抑制发送到机器的 gcode 中的 gcode 注释。 #444 关闭

推推 grbl 5小时前 4次浏览
关闭
@gsrunion

描述

根据https://community.carbide3d.com/t/so5-pro-inline-comment-firmware-issue/64097,Shapeoko 5 Pro 固件中存在一个错误,导致机器在内联 gcode 注释上阻塞。

虽然这个问题最终需要他们自己解决,但将 gcode 注释转发到机器没有任何意义。我建议对 gsender 进行修改,在将 gcode 发送到机器时删除所有 gcode 注释。

活动

克格洛文

kglovern 评论道 2024年1月15日

成员

我们将在接下来的几个版本中对此进行研究。

格斯鲁尼翁

gsrunion 评论道 2024年1月16日

作者

太棒了!谢谢。JavaScript 不是我的强项,不过我可能会尝试发个 PR。

哈曼詹姆

hamanjam 评论道 2024年1月16日

我实际上编辑了我的后处理器,添加了更多注释,例如文件路径和保存日期。如果您不需要注释,如果它们导致控制器出现问题,编辑后处理器删除它们可能会更容易。解析注释可能很困难。有没有特定的 Shapeoko 后处理器不产生注释?

为了在发送之前进行剥离,您必须使用正则表达式来停止“(”和“)”之间的任何内容,类似于:

字符串.replace(/([^()]*)/g, ”)

此解决方案取自类似的具有示例的线程:

https://stackoverflow.com/questions/640001/how-can-i-remove-text-within-parentheses-with-a-regex

格斯鲁尼翁

gsrunion 评论道 2024年1月16日

作者

据我了解,GSender 端的探测例程也会插入内联注释。

返回 .replace ( ‘M6’ , ‘(M6) ) ;

这里至少有一个例子。在 gcode 文件中替换它们很容易。鉴于 C3D 已经将 gcode 内部保存到其设计文件格式中,后处理器对我来说没有选择余地。 

哈曼詹姆

hamanjam 评论道 2024年1月16日

有趣的是,在“检查”模式下,它会将命令更改为注释(我假设只是为了在调试时取消发送实际命令),我发现这是一个问题。我看不出定期向控制器发送注释有什么好处,因为 grbl 基本上会忽略注释,我们实际上永远看不到它们。

听起来你的选择非常有限,只能使用专有应用程序和文件格式。使用其基础架构之外的任何工具,似乎都需要大量的手动 gcode 编辑。学习曲线和成本是缺点,但切换到更“开放”的工具似乎更容易一些,但我完全理解你想使用自己熟悉的工具。我查看了我的 Shapeoko 的 Vectric 后处理器,他们只添加了 Vectric 品牌注释,这些注释很容易被删除。很遗憾你不能在 C3D 中编辑你的 pp。希望在固件修复之前你能找到解决办法(真的很惊讶它已经存在这么久了)。

格斯鲁尼翁

gsrunion 评论道 2024年1月16日

作者
格斯鲁尼翁

gsrunion 评论道 2024年1月16日

作者

bracketCommentLine = / \s * \( . * \) * \) / gm ;

 

bracketCommentLine = / \( [ ^ \) ] * \) / gm ;

 

这可能是我正在寻找的正则表达式,也许是进行替换的正确位置。

格斯鲁尼翁

gsrunion 评论道 2024年1月16日

作者

#448我尝试按照此处的指导进行更改。https ://community.carbide3d.com/t/gsender-any-special-steps-to-use/72349/39

克格洛文

kglovern 评论道 2024年1月26日

成员

这会合并到 1.4.1 版本中。感谢大家的反馈/pull request。

喜欢 (0)