如何将本地子程序名称存储在一个数组中,并在库卡机器人语言中遍历所述数组的循环中调用它们
How to store local Sub Program names in an array and call them in a loop iterating over said Array in KUKA Robotic Language
问题:
代码的主要结构是我想要的方式-
Def main()
decl int i
decl char arr[3]
INI
PTP HOME ...
arr[1]='w()'
arr[2]='e()'
arr[3]='l()'
for i=1 to 3
arr[i]
endfor
END
def w()
PTP P1 ...
END
def e()
PTP P2 ...
END
def l()
PTP P3 ...
END
现在,如您所见,我想要做的是,将子程序的名称存储在一个数组中,基本上在循环中一个一个地调用它们。 (我可以一个一个地编写子程序并完全删除循环,但是在调用每个程序之后我必须给出一个命令,我正在寻找一种我不必每次都编写该命令的方法,这可以通过使用循环来完成)
问题是我无法弄清楚如何将 Subprgrams 的名称存储在数组中,因为上面的代码给出了语法错误。
如果在循环中调用函数有完全不同的方法,我很乐意听到。否则,我将不胜感激。
谢谢:)
您可以在 for 循环中实现 switch/case 来模拟数组索引。
Def main()
decl int i
decl char arr[3]
INI
PTP HOME ...
for i=1 to 3
switch i
case 1
w()
case 2
e()
default
l()
endswitch
endfor
END
def w()
PTP P1 ...
END
def e()
PTP P2 ...
END
def l()
PTP P3 ...
END
或者如果你想在几个地方使用 int:
DEF CallFunc(i : IN)
DECL INT I
switch i
case 1
w()
case 2
e ()
case 3
l()
endswitch
END
DEF w()
;MOVE
END
DEF e()
;MOVE
END
DEF l()
;MOVE
END
并在任何地方调用它:
DEF main ( )
FOR I = 1 TO 3
CallFunc(i)
ENDFOR
END
问题:
代码的主要结构是我想要的方式-
Def main()
decl int i
decl char arr[3]
INI
PTP HOME ...
arr[1]='w()'
arr[2]='e()'
arr[3]='l()'
for i=1 to 3
arr[i]
endfor
END
def w()
PTP P1 ...
END
def e()
PTP P2 ...
END
def l()
PTP P3 ...
END
现在,如您所见,我想要做的是,将子程序的名称存储在一个数组中,基本上在循环中一个一个地调用它们。 (我可以一个一个地编写子程序并完全删除循环,但是在调用每个程序之后我必须给出一个命令,我正在寻找一种我不必每次都编写该命令的方法,这可以通过使用循环来完成)
问题是我无法弄清楚如何将 Subprgrams 的名称存储在数组中,因为上面的代码给出了语法错误。
如果在循环中调用函数有完全不同的方法,我很乐意听到。否则,我将不胜感激。
谢谢:)
您可以在 for 循环中实现 switch/case 来模拟数组索引。
Def main()
decl int i
decl char arr[3]
INI
PTP HOME ...
for i=1 to 3
switch i
case 1
w()
case 2
e()
default
l()
endswitch
endfor
END
def w()
PTP P1 ...
END
def e()
PTP P2 ...
END
def l()
PTP P3 ...
END
或者如果你想在几个地方使用 int:
DEF CallFunc(i : IN)
DECL INT I
switch i
case 1
w()
case 2
e ()
case 3
l()
endswitch
END
DEF w()
;MOVE
END
DEF e()
;MOVE
END
DEF l()
;MOVE
END
并在任何地方调用它:
DEF main ( )
FOR I = 1 TO 3
CallFunc(i)
ENDFOR
END