线程评级:
Post_Processor
# 1
你好,

我在编辑“Fanuc_R30i.py”后处理器:

目前,我正在做我需要做的一个python代码,这样:
  • 的输出“Fanuc_R30i.py”文件(这是一个。ls文件)并对其进行一些更改并再次保存,然后将这个新保存的文件发送给我的机器人

但我想做的是将我的python文件嵌入到“Fanuc_R30i.py”中,并通过一个步骤(而不是两个步骤)完成我迄今为止所做的事情

老实说,当我阅读“Fanuc_R30i.py”文件时,我没有找到任何地方执行一些更改。
我试着改变“类RobotPost”,并在这个文件中添加一些功能
但不幸的是,当我生成程序时,我所执行的所有更改都被跳过了。

我想知道你是否能在这件事上帮助我,指导我?
(03-09-2023, 09:44 pm)mehrdad_rafi写道: 老实说,当我阅读“Fanuc_R30i.py”文件时,我没有找到任何地方执行一些更改。

您需要覆盖您想要使用的方法,因为py文件使用已经编译的类作为它们的基类。

您要么必须联系RoboDK并询问您的PP代码,要么覆盖您想要在py文件中使用的方法。

你能举例说明你想达到的目标吗?
# 3
昨天,上午11时06分)maexbecks写道:
(03-09-2023, 09:44 pm)mehrdad_rafi写道: 老实说,当我阅读“Fanuc_R30i.py”文件时,我没有找到任何地方执行一些更改。

您需要覆盖您想要使用的方法,因为py文件使用已经编译的类作为它们的基类。

您要么必须联系RoboDK并询问您的PP代码,要么覆盖您想要在py文件中使用的方法。

你能举例说明你想达到的目标吗?

非常感谢您的回复。

下面是我需要做的一个简单的例子:

在为我的模拟选择Post_processor(“Fanuc_R30i.py”)并点击“生成机器人程序”后。——> roboDk为我生成了一个。ls文件,我可以在这个。ls文件中看到如下所示的许多行:

125:L P[1] 174mm/sec CNT1;

我用python写了一个程序,加载这个.Ls文件,找到(125)行,并将CNT1更改为Fine
然后我将所有结果保存在一个新的。ls文件中。

我想做的事情是复制我自己的python代码到“Fanuc_R30i.py”,并生成一个新的后处理器(如modified_Fanuc_R30i.py)
因此,我可以选择modified_Fanuc_R30i.py而不是原来的“Fanuc_R30i.py”,并在一步中得到正确的结果
通过这种方式,我将能够消除目前手动执行的许多步骤。
# 4
10小时前mehrdad_rafi写道:125:L P[1] 174mm/sec CNT1;

我用python写了一个程序,加载这个.Ls文件,找到(125)行,并将CNT1更改为Fine
然后我将所有结果保存在一个新的。ls文件中。

因此,不需要改变PP。在你想要精确移动的动作之前,添加一个“Set舍入指令”(-1)。
对于从机械加工项目生成的程序,您可以右键单击程序并激活“显示指令”。这样你就可以在任何你想要的地方添加舍入指令。但是每次更新加工项目时,程序都会被覆盖。
# 5
9小时前maexbecks写道:
10小时前mehrdad_rafi写道:125:L P[1] 174mm/sec CNT1;

我用python写了一个程序,加载这个.Ls文件,找到(125)行,并将CNT1更改为Fine
然后我将所有结果保存在一个新的。ls文件中。

因此,不需要改变PP。在你想要精确移动的动作之前,添加一个“Set舍入指令”(-1)。
对于从机械加工项目生成的程序,您可以右键单击程序并激活“显示指令”。这样你就可以在任何你想要的地方添加舍入指令。但是每次更新加工项目时,程序都会被覆盖。

是的,你说的完全正确,但是我的程序有2万行,因此,我认为这种方法不适用于我的情况。
# 6
8小时前mehrdad_rafi写道:是的,你说的完全正确,但是我的程序有2万行,因此,我认为这种方法不适用于我的情况。

嗨人士,

嗯……我仍然不确定是什么问题。一组舍入指令将传播到下一组舍入指令。这是否意味着您的程序中有多个舍入指令,或者您希望只有几个动作是准确的?如果是这样,你如何决定哪个运动是准确的,哪个是连续的?

如果你希望在不删除现有舍入指令的情况下使所有移动都准确,最简单的解决方案是重写setZoneData方法,如下所示:

代码:
setZoneData(self, zone_mm)
通过
这样,所有舍入指令都将被忽略,并且每次移动都获得CNT_VALUE的默认值,即FINE。




浏览此线程的用户:
1客人(年代)