职位:8
线程:3
加入时间:2021年8月
声誉:
0
早上好,
我想在后处理程序(kuka krc4)的输出文件中添加几行代码。
很确定这可以用一个相对简单的.append方法来完成(代码必须位于输出文件*.src的最末尾)
我在roboDK文档中没有找到任何例子,因为我还不是一个程序员,如果能得到一点帮助,我会很感激的。
致以最亲切的问候
赫尔曼
职位:8
线程:3
加入时间:2021年8月
声誉:
0
谢谢你!
如果我想在输出文件的末尾添加某些代码行,我该如何处理?
帖子:1800
线程:2
加盟时间:2018年10月
声誉:
69
如果你在程序末尾添加了“程序调用”,你可以选择下拉菜单,选择“插入代码”,然后输入你想要看到的代码。
这是最简单的方法,不需要任何编码。
杰里米
职位:8
线程:3
加入时间:2021年8月
声誉:
0
我明白,但我想通过后处理来标准化这一点。
这是我目前得到的。
def RunCode(self, code, is_function_call=False):
添加代码或函数调用"""
如果这是RunCode的第一次调用,则添加计数器属性
if not hasattr(self, "M51_counter"):
自我。M51_counter = 0
如果“M_RunCode(50)”在代码:
#过滤M50
self.addline(“\ n”)
自我。addline(“激光”)
self.addline(“\ n”)
返回
elif "M_RunCode(51)"在代码:
#忽略第一个M51调用
如果自我。M51_counter > 0:
在程序事件中,默认情况下,我们将通过M_RunCode过滤M50
self.addline(“\ n”)
自我。addline(“激光”)
self.addline(“\ n”)
返回
#总是增加计数器,即使它是0
自我。M51_counter += 1
返回
如果“M_RunCode(30)”在代码:
self.addline (" ")
返回
(缩进可能显示不正确)
正如你所看到的,这“使用”m码来添加新行。
我只是想在输出文件的末尾添加没有“劫持”M-Codes的行。
帖子:1800
线程:2
加盟时间:2018年10月
声誉:
69
好吧,那就做吧。XD
到目前为止,你的作品看起来不错。问题到底是什么?
你刚刚发布的代码的结果是什么?
要使用M-Code,你需要从一个NC (G-code)文件开始,它需要在最后有一个M-Code。
是你的情况吗?
如果是这样,只需捕获代码并使用addline即可。
职位:8
线程:3
加入时间:2021年8月
声誉:
0
嗯…我可能不是程序员……但它会完成的(需要一点帮助;))
是的……m代码的捕获工作得很好。
我要做的是在每个输出文件的末尾添加以下textcluster。这个文本集群没有链接到任何M-Code,应该只是打印“原样”。
当然,我可以手动复制和粘贴这个集群,但是……你知道的…这是不可接受的;)
DEF laser_on ()
;FOLD OUT 13 'Laser bereit (standby)' State=TRUE;%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:13, 3:Laser bereit (standby), 5:TRUE, 6:
美元[13]= TRUE
; ENDFOLD
;FOLD OUT 14 'Laser (Steuerung) ein' State=TRUE;%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:14, 3:Laser (Steuerung) ein, 5:TRUE, 6:
美元[14]= TRUE
; ENDFOLD
;FOLD OUT 267 'Absaugung ein' State=TRUE;%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:267, 3:Absaugung ein, 5:TRUE, 6:
美元[267]= TRUE
; ENDFOLD
;FOLD OUT 266 'Sauerstoff' State=TRUE;%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:266, 3:Sauerstoff, 5:TRUE, 6:
美元[266]= TRUE
; ENDFOLD
laser_ein (3800 # schneiden)
折叠等待时间=3秒;%{PE}%R 8.3.38,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 3:3
等待第三节
; ENDFOLD
laser_aus ()
# schneiden laser_ein (1000)
结束
DEF laser_off ()
%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:266, 3:Sauerstoff, 5:FALSE, 6:继续
继续
美元[266]= FALSE
; ENDFOLD
;FOLD OUT 267 'Absaugung ein' State=FALSE;%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:267, 3:Absaugung ein, 5:FALSE, 6:
美元[267]= FALSE
; ENDFOLD
%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:14, 3:激光(Steuerung) ein, 5:FALSE, 6:
美元[14]= FALSE
; ENDFOLD
%{PE}%R 8.3.38,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:13, 3:Laser bereit (standby), 5:FALSE, 6:
美元[13]= FALSE
; ENDFOLD
;FOLD LIN P13 Vel=0.5 m/s CPDAT10 Tool[2]:Schneidkopf Base[0];%{PE}%R 8.3.38,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P13, 3:, 5:5 .5, 7:CPDAT10
美元BWDSTART = FALSE
LDAT_ACT = LCPDAT10
FDAT_ACT = FP13
BAS (# CP_PARAMS, 0.5)
林XP13
; ENDFOLD
pv_korrektur = false
结束
帖子:1800
线程:2
加盟时间:2018年10月
声誉:
69
哦,难道不应该在标题中添加它吗?
你应该在文章中找到一个“CUSTOM_HEADER”部分,在那里你可以添加这样的自定义代码,它总是会被添加到程序中。
我不是KRL的专家,但我知道的大多数语言,在标题中添加它应该工作。
杰里米