开源改变世界

M6 Remap 不正确处理口袋! #400

推推 grbl 2年前 (2023-01-29) 155次浏览
关闭
gmoccapy 打开了这个问题 2018 年 1 月 21 日 · 12条评论
关闭

M6 Remap 不正确处理口袋!#400

gmoccapy 打开了这个问题 2018 年 1 月 21 日 · 12条评论

注释

M6 Remap 不正确处理口袋! #400
合作者

如果你重新映射 M6 代码,根据 stdglue.py 文件,它应该作为参数传输

self.params[“tool_in_spindle”]
self.params[“selected_tool”]
self.params[“current_pocket”]
self.params[“selected_pocket”]

但是LinuxCNC没有正确处理pocket关系。
只需将工具 3 放入刀槽 8 并调用 T3 M6,它应该返回刀槽 8 但实际上返回刀槽 3!

解决此问题的任何提示将不胜感激。

诺伯特

M6 Remap 不正确处理口袋! #400
合作者
安迪普 评论了 2018 年 1 月 21 日 通过电子邮件
M6 Remap 不正确处理口袋! #400
合作者作者
gmoccapy 评论了 2018 年 1 月 23 日  

我已经查看了您的分支机构,实施该分支机构会很棒,但在此之前,我们应该找到一个介于两者之间的解决方案。

我不使用随机工具更换器,但想象一下:
您有一个带 10 个刀位的工具更换器,但您有 30 个可用和测量的工具,所有工具都在工具表中。

现在你需要 8 个工具来完成一项工作,即。工具 1、2、3、4、6、10、25、26
要使用它们,您需要将它们放入更换器中,假设您使用口袋 1 至 8。
将它们放入更换器中很快就完成了,但现在您需要编辑您的工具文件,将它们放在正确的口袋中并为它们提供正确的工具编号。

妈的,你的cam软件还包括了30个工具,不知道口袋!
今后这将是一场大灾难。

我用一些 python 代码编写了一个小的 glade 面板。要从口袋中取出工具,我只需单击该工具,python 脚本会通过添加 100 自动更改口袋编号,因此取出工具 3,会将工具文件编辑为口袋 103。所以现在我点击空的pocket 和一个窗口会弹出,问我要放在那个口袋里的女巫工具,我输入 25,工具将从口袋 25 移动到口袋 3。我什至没有触摸工具编辑器!

所有这些都按预期工作,但如果我启动一个程序并且解释器找到 T25 M6,他会尝试从口袋 25 而不是口袋 3 获取该工具。所以我需要在使用任何 gcode 文件之前对文件进行大量编辑.

恕我直言,这是不可接受的!

所以我看了一下 tool_parse.cc
在这里添加类似的东西怎么样

toolTable[pocket].pocketno = 口袋

并在 interp_find.cc
中的 find_tool_pocket 更改
*pocket = i;
成为
*pocket = tool_table[i].pocketno

不幸的是,我只是 C++ 的第一步,我没有足够的勇气做出这样的改变,因为我不知道代码是否需要在任何其他地方接触。

如果这有帮助,我可以分享我的 python 代码,因为我确实使用字典来处理上述所有工具文件修改,并且该代码确实返回了正确的口袋号码。

诺伯特

M6 Remap 不正确处理口袋! #400
合作者作者

我对代码进行了一些尝试,并将我的更改推送为:

newbynobi__master_tool_pockets

我到达了一个状态,在重新映射模块中报告的口袋是正确的,但现在 iocontrol 引脚是错误的:-(

如前所述,我对 C++ 完全陌生,所以我可能会产生垃圾,但我正在努力,Rene_dev 告诉我我必须学习 C++,所以我在这里学习。

那么有人可以把我推向正确的方向吗?

诺伯特

PS 我添加了两个配置(axis 和 gmoccapy),都包含一个诊断和一个机架工具更换器选项卡。(轴不是很漂亮,无法嵌入机架更换器,但在扩展屏幕后确实可以工作。

要使用 python 工具更换器,只需单击打开按钮打开更换器盖,之后您可以单击图像加载或卸载工具(就像在真实机器上所做的那样)
观看工具文件以查看口袋改变了 100 个地方。

M6 Remap 不正确处理口袋! #400
合作者

他正在谈论的代码在这里:https
://github.com/LinuxCNC/linuxcnc/compare/newbynobi_master_tool_pockets#diff-22efa6c95bb01316fb5517cec373f87dL25 嗯,iocontrol 从 emcstatus 中获取数字https://github.com/LinuxCNC/linuxcnc/blob/ master/src/emc/iotask/ioControl.cc#L876

M6 Remap 不正确处理口袋! #400
合作者作者

你好安迪,

我刚试过你的分支,坚果是基于 2.6 的。
我试图将 master 合并到那个,但是我的配置没有启动,可能与新的联合轴处理有关:-(

诺伯特

M6 Remap 不正确处理口袋! #400
合作者作者

好的,在 sebs 最后一次提交之后,iocontrol 确实报告了正确的 pocket 和 toolno,但是 remap 仍然显示非常奇怪的数字。

请打开 /sim/axis/remap/rack-toolchange/racktoolchange 打开 工具
表并将 T3 放在口袋 5 中,T5 放在口袋 6 中,T6 放在口袋 4 中print statements Save file 退出 estop / home machine,转到 MDI 输入 T1 输入 M6 工具将从口袋 1 中拾取,因为它应该,在终端报告是 OK 输入 T6 输入 M6 工具将从口袋 6 instedt 口袋 4 中拾取

那是在哪里处理的?

诺伯特

M6 Remap 不正确处理口袋! #400
合作者

我认为@SebKuzminsky真的很想对此进行测试。
您看到的很可能是索引号。这可以通过在 fms 数组中查找来转换。
在 iocontrol 中,这是使用 fms[p] 完成的:
https
://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/iotask/ioControl.cc#L869 但我不知道重映射在哪里被调用。 .

M6 Remap 不正确处理口袋! #400
合作者作者

我们还需要一个工作参数 [current_pocket],那个也没有被正确处理。否则重映射将不知道将刀具放回主轴中的何处。

但不幸的是,我不知道去哪里寻找它:-(

诺伯特

M6 Remap 不正确处理口袋! #400
合作者作者

又见issue 239,跟这个有关

M6 Remap 不正确处理口袋! #400
合作者

@gmoccapy如果你写这样的数字#239问题被引用。

我认为部分问题在于,非随机工具更换器的口袋编号从未打算像这样使用:

在非随机工具更换器上,口袋是没有意义的;口袋
忽略工具表文件中的编号并分配工具
到 +tool_table+ 插槽顺序。

 

M6 Remap 不正确处理口袋! #400
合作者
M6 Remap 不正确处理口袋! #400 rene-dev 自行分配了这个 2018 年 11 月 10 日
M6 Remap 不正确处理口袋! #400 rene-dev 提到了这个问题 2018 年 11 月 16 日
M6 Remap 不正确处理口袋! #400
合作者

在 2.8 中修复并由dab2a05掌握