开源改变世界!!

检索当前加载的 GCode 的边界框 #709

推推 grbl 2年前 (2023-02-03) 80次浏览
关闭
dzervas 打开了这个问题 2021 年 7 月 30 日 · 7条评论
关闭

检索当前加载的 GCode 的边界框#709

dzervas 打开了这个问题 2021 年 7 月 30 日 · 7条评论

评论

检索当前加载的 GCode 的边界框 #709
杰尔瓦斯 评论了 2021 年 7 月 30 日  

我正在研究#32(更像是 React 中https://github.com/kreso-t/cncjs-kt-ext的现代小部件端口),我在计算探测应该开始的区域时遇到了问题. 我目前看不到任何简单的方法来获取当前加载的 GCode ( xminxmaxyminymax) 的边界框。它们是在https://github.com/cncjs/cncjs/blob/master/src/app/widgets/Visualizer/Visualizer.jsx#L968中计算的,但我无法从我的小部件中提取数据 – 使用 pubsub在https://github.com/cncjs/cncjs/blob/master/src/app/widgets/GCode/index.jsx#L218-L247不能被小部件使用,因为据我所知,pubsub 是进程本地的,不能被外部小部件访问(所以我必须将我的小部件集成到 CNCjs 中,这可能不是你喜欢的).

有什么我想念的吗?我可以将 pubsub API 作为已安装的小部件(如样板小部件)进行交互吗?也许我应该打开一个 PR,在事件中公开有关 gcode 的这些数据gcode:load


编辑:回购:https ://github.com/dzervas/cncjs-widget-autoleveler – 自述文件暂时无关紧要

检索当前加载的 GCode 的边界框 #709

与其更改 gcode:load 事件的 API,更好的方法是创建一个新事件。更改现有 API 会与现有代码产生各种兼容性问题。添加新事件提供了更清晰的迁移路径。

检索当前加载的 GCode 的边界框 #709

另一种方法是从 cncjs-shopfloor-tablet 中获取边界框计算代码。这样做可以避免更改 cncjs 本身。cncjs 的代码修改不是太难,但是如果你想部署给其他人,你就会遇到发布问题。如果您有兴趣,请查看https://github.com/cncjs/cncjs-shopfloor-tablet/blob/master/src/toolpath-displayer.js中的 showToolpath 。它首先处理 gcode 以确定边界框,然后使用边界框计算用于显示刀具路径的 2D 投影的比例因子。所有代码都在该 repo 中,使用相当简单的 javascript,在名称以“simple”开头的文件中。

检索当前加载的 GCode 的边界框 #709
作者
杰尔瓦斯 评论了 2021 年 8 月 2 日  

避免代码复杂性会很好 – 但毕竟,我不确定它会支持多少扩展

是的,既然你提到了,改变一个事件就是自找麻烦。现在我将复制代码,如果扩展获得牵引力,它将与 cncjs 集成(毕竟这是一个固定的问题)然后我可以像往常一样使用 pubsub

检索当前加载的 GCode 的边界框 #709
作者

pubsub 到控制器事件桥听起来如何?促进代码重用和一个非常简单和引人注目的更改,如果/当一个小部件被集成到 cncjs 中时必须完成,并且具有完美的向后兼容性而不会阻止任何东西。例如,pubsubgcode:bbox将成为常规活动pubsub:gcode:bbox

检索当前加载的 GCode 的边界框 #709

主要问题是没有人发布新版本的 cncjs。对于具有合适技能的人来说,编码相对容易,而且很有趣。发布管理、维护和支持只是工作,而且很多。

检索当前加载的 GCode 的边界框 #709
作者

哎呀,旧的维护问题……该项目在维护方面是否“停止”了?

检索当前加载的 GCode 的边界框 #709

查看提交历史…