Contact me: hankecnc@gmail.com

当 gcode 命令完成执行时获取信息 #1070

推推 grbl 3年前 (2023-02-02) 509次浏览
打开
qvisionsa 开了这个issue 2018 年 11 月 29 日 · 10 条评论
打开

当 gcode 命令完成执行时获取信息#1070

qvisionsa 开了这个issue 2018 年 11 月 29 日 · 10 条评论

注释

当 gcode 命令完成执行时获取信息 #1070

您好,我最近在使用您出色的软件,我正在尝试创建一个插件。
在我的插件中,我正在发送像 G0X0Y20 这样的命令,我想问你是否有办法知道一个命令何时在发送另一个命令之前完成执行。
我正在扫描一个区域以使用我的相机查找点,但代码在机器从上一个命令停止之前完成。
那可能吗?

感谢
Stelios Malakoudis

当 gcode 命令完成执行时获取信息 #1070 哈维 补充道 问题 标签 2018 年 11 月 29 日
当 gcode 命令完成执行时获取信息 #1070
合作者

我正在尝试创建一个插件。

我为你的努力感到高兴!请确保您在编写插件时使用最新的 bCNC git 版本。

我想问你是否有办法在发送另一个命令之前知道一个命令何时完成执行。

哇。这是一个棘手的问题。是和不是。这有某种基础设施,但我不能保证它不会改变,因为它一团糟而且我不喜欢它。就像一周前我正在修复一些与此相关的东西,我对它目前的工作方式并不满意……

我正在用我的相机扫描一个区域来寻找点

您是否正在使用某种计算机视觉来自动跟踪轮廓并将形状数字化?

我对 bCNC 中自动探测的工作方式不太满意,从长远来看,我想修改探测/扫描框架以允许更复杂的扫描方案和用例。例如#946 #956也许我们可以共同创建一些通用的基础设施,以便轻松实施“扫描插件”。然而,现在我正忙于让 0.9.15 版本变得平静和稳定(我们真的需要它,因为上一个版本是一年多以前的……)

您能否详细说明您到底想做什么以及您希望如何实现这一目标?我想我们可以讨论它以找到实现您的插件的最佳解决方案。

当 gcode 命令完成执行时获取信息 #1070 哈维 补充道 增强 自调匀整和探测 研究和代码清理 需要更多思考的长期想法标签 2018 年 11 月 29 日
当 gcode 命令完成执行时获取信息 #1070
作者

感谢您的答复!我是 BCNC 和 Python(2.7) 的新手,但我正在努力。
我想创建一个插件来估计零件的原点和旋转(在我的例子中是印刷设计),然后将转换应用于 g 代码文件并进行切割。
我正在使用带有 aruco 标记的 opencv 来估计位置和旋转。
插件的第一部分已经完成。我可以扫描一个小区域以找到标记并重新定位在 0,0。
这部分可能有效,因为距离很小。
要找到大约 500 毫米外的第二个标记,我将退出代码。我的意思是我的命令循环在到达标记之前完成。
是否有指示 gcode 命令何时完成的方法或布尔变量?

当 gcode 命令完成执行时获取信息 #1070
合作者

Sender.py我使用以下代码片段self.running == False and state in ("Idle"):
但我讨厌它是如何工作的(基本上你必须在忙碌的等待中轮询它)。所以我计划改变它来模拟同步行为。

我想创建一个插件来估计零件的原点和旋转(在我的例子中是印刷设计),然后将转换应用于 g 代码文件并进行切割。

我们已经拥有非常相似的功能。参见探针->定向特征。

我正在使用带有 aruco 标记的 opencv

为什么要使用 aruco 标记?对我来说,这听起来太具体了。您要使用拖刀切割预印纸吗?为什么各个打印件之间的旋转不一致?

当 gcode 命令完成执行时获取信息 #1070
作者

我将使用拖刀切割许多相同的打印输出。我放在桌子上的每份打印输出都可能有倾斜的位置。查看程序的用户界面,我注意到运行、空闲等状态发生了变化。是否有一个状态变量来保存这些信息?

当 gcode 命令完成执行时获取信息 #1070
合作者
哈维 评论了 2018 年 11 月 29 日  

是否有保存此信息的状态变量?

是的。CNC.vars["state"],但您还想检查一下Sender.running,因为 CNC 在运行时可能处于空闲状态,所以有一些 g 代码会导致这种情况。例如:G4

我要用拖刀

您是否尝试过最新的 git bCNC 中提供的新 dragknife 后处理器功能?

当 gcode 命令完成执行时获取信息 #1070
作者

嗨,Harvie,
今天我会尝试你的建议,然后我会告诉你。
我看到了 dragknife 功能,但我不明白它是如何工作的。有这方面的文件吗?

当 gcode 命令完成执行时获取信息 #1070
合作者

我看到了 dragknife 功能,但我不明白它是如何工作的。有这方面的文件吗?

还不是真的,只有几张图片:https ://github.com/vlachoudis/bCNC/wiki/Drag-Knife

它补偿了 draknife 尖端偏移。您输入刀尖距旋转轴的距离并将该变换应用于所需的形状。

当 gcode 命令完成执行时获取信息 #1070
作者

嗨 Harvie,
我正在根据您的建议测试我的代码,但我失败了。
但是我在 Sender 模块中发现了一个返回控制器状态的函数。所以我认为这是在控制器“运行”时获得响应的好点。
我明天会试一试,然后告诉你。
您是否在代码中实现了可观察模式?

当 gcode 命令完成执行时获取信息 #1070
合作者

您是否在代码中实现了可观察模式?

你是什​​么意思?

当 gcode 命令完成执行时获取信息 #1070

grbl 并没有真正让检查它的命令状态变得容易。

一种方法可能是简单地轮询当前的“dro”坐标,当它们到达您的预期位置时返回,然后检查空闲状态。

另一种更复杂的方法是创建一个状态机,然后轮询状态和状态变化。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
项目

还没有

发展

没有分支机构或拉取请求

3人参加
当 gcode 命令完成执行时获取信息 #1070当 gcode 命令完成执行时获取信息 #1070当 gcode 命令完成执行时获取信息 #1070

喜欢 (0)