注释
2018年1月20日21:18,Norbert Schechner ***@***.***> 写道:但是LinuxCNC没有正确处理口袋关系。只需将工具 3 放入刀槽 8 并调用 T3 M6,它应该返回刀槽 8 但实际上返回刀槽 3!
如果您打开随机工具更换器,它可能会更好。stdglue.py 确实说结果可能是胡说八道: https ://github.com/LinuxCNC/linuxcnc/blob/master/nc_files/remap_lib/python-stdglue/stdglue.py#L163 问题是工具表版本在 NML 中传递的信息不包含口袋信息,您实际得到的(在非随机转换器上)是工具数组的索引。这是我试图在 https://github.com/LinuxCNC/linuxcnc/tree/andypugh/tooltable中修复的问题之一,但我从来没有勇气在没有其他人测试的情况下合并它,而且从来没有人这样做过。
|
我已经查看了您的分支机构,实施该分支机构会很棒,但在此之前,我们应该找到一个介于两者之间的解决方案。 我不使用随机工具更换器,但想象一下: 现在你需要 8 个工具来完成一项工作,即。工具 1、2、3、4、6、10、25、26 妈的,你的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 不幸的是,我只是 C++ 的第一步,我没有足够的勇气做出这样的改变,因为我不知道代码是否需要在任何其他地方接触。 如果这有帮助,我可以分享我的 python 代码,因为我确实使用字典来处理上述所有工具文件修改,并且该代码确实返回了正确的口袋号码。 诺伯特 |
我对代码进行了一些尝试,并将我的更改推送为: newbynobi__master_tool_pockets 我到达了一个状态,在重新映射模块中报告的口袋是正确的,但现在 iocontrol 引脚是错误的:-( 如前所述,我对 C++ 完全陌生,所以我可能会产生垃圾,但我正在努力,Rene_dev 告诉我我必须学习 C++,所以我在这里学习。 那么有人可以把我推向正确的方向吗? 诺伯特 PS 我添加了两个配置(axis 和 gmoccapy),都包含一个诊断和一个机架工具更换器选项卡。(轴不是很漂亮,无法嵌入机架更换器,但在扩展屏幕后确实可以工作。 要使用 python 工具更换器,只需单击打开按钮打开更换器盖,之后您可以单击图像加载或卸载工具(就像在真实机器上所做的那样) |
他正在谈论的代码在这里:https |
你好安迪, 我刚试过你的分支,坚果是基于 2.6 的。 诺伯特 |
好的,在 sebs 最后一次提交之后,iocontrol 确实报告了正确的 pocket 和 toolno,但是 remap 仍然显示非常奇怪的数字。 请打开 /sim/axis/remap/rack-toolchange/racktoolchange 打开 工具 那是在哪里处理的? 诺伯特 |
我认为@SebKuzminsky真的很想对此进行测试。 |
我们还需要一个工作参数 [current_pocket],那个也没有被正确处理。否则重映射将不知道将刀具放回主轴中的何处。 但不幸的是,我不知道去哪里寻找它:-( 诺伯特 |
又见issue 239,跟这个有关 |
我认为部分问题在于,非随机工具更换器的口袋编号从未打算像这样使用:
linuxcnc/docs/src/代码/code-notes.txt 第 1442 至 1444 行 15a4d11
|
在 2.8 中修复并由dab2a05掌握 |
如果你重新映射 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!
解决此问题的任何提示将不胜感激。
诺伯特