线程评级:
  • 0 (s) - 0平均投票
  • 1
  • 2
  • 3
  • 4
  • 5
如何获取和设置的“目标连接”项移动指令?
# 1
怎么走程序的目标有关的项目的行动指令?目标和移动指令创建GUI,我想获得有关目标项目通过API。

我发现我能得到几个参数的指令使用的指令():

代码:
p = RDK.Item (myProgram, ITEM_TYPE_PROGRAM)
ins_name、ins_type move_type isjointtarget,姿势,关节= p.Instruction(2) #选择‘2’,第三指令

然而,这并不提供链接的目标项目。同时,输出“姿势”似乎是对定义与目标项目的第一个父参考系,但是如果我不能确定目标项目指导联系,然后我不能确定“姿势”的参照系。

第二部分的问题是:我如何更改/设置目标有关的物品通过API不同的目标项目吗?(即不仅改变了“姿势”的指令,但改变实际目标项目)。类似于实现GUI的右键单击指令菜单如下所示:



最好的问候,

Maarten
# 2
嗨Mearten,

你是在正确的道路!

目前,不可能通过API直接编辑链接的目标项目。
你需要用一个新的替换指令。

下面是一个示例代码给你的想法。

代码:
进口robolink
RDK = robolink.Robolink ()

学监= RDK。ItemUserPick(“选择程序编辑”,robolink.ITEM_TYPE_PROGRAM)
old_target = RDK。ItemUserPick(“选择目标取代”,robolink.ITEM_TYPE_TARGET)
new_target = RDK。ItemUserPick(“选择新目标”,robolink.ITEM_TYPE_TARGET)

inst_count = prog.InstructionCount ()
因为我在范围(inst_count):
instruction_dict = prog.setParam(我)
如果instruction_dict '类型']= = robolink.INS_TYPE_MOVE:
如果old_target.Name()在instruction_dict(“名字”):
prog.InstructionSelect (i) #选择指令来取代
prog.MoveJ (new_target) #添加新的指令(正确使用MoveL或MoveJ)
掠夺。setParam(我{“类型”:1})#删除指令
我+ = 1 #重置指令指针

你可以找到更多的信息在你的文档
找到有用的信息通过访问我们的关于RoboDK及其爱游戏ayx高尔夫球特性在线文档看我们的教程YouTube频道
# 3
嗨,山姆,

谢谢你的帮忙。不是你的代码示例有点冒险,因为你假设指令的名称包含目标的名字吗?

代码:
如果old_target.Name()在instruction_dict(“名字”):

默认情况下,联合行动指令的名字实际上包括在其形式如目标的名称。“MoveJ (targetName)”。但用户可以重命名指令。另外,用户可以重命名目标在创建指令。没有目标的名称作为指令的名字的一部分,你的代码示例会错过的联系。

(代码也会给如假阳性。“MoveJ (target10)”,其中包含的名称“target1”以及“target10”。但这可能是解决一个更具体的字符串比较。)

没有其他指标与目标项目在一个指令比目标项目的名称作为指令的名字吗?

最好的问候,

Maarten
# 4
我刚刚发现一个移动指令的名字在GUI自动更新以匹配默认的名称和(如果改变更新)的名称与目标,在Python脚本在运行这一行:

代码:
从robolink进口* # RoboDK API
RDK = Robolink ()

p = RDK.Item (myProgram, ITEM_TYPE_PROGRAM)
ins_dict = p.setParam(2) # 3号指令
打印(ins_dict)
ins_dict p.setParam(2) # 3日指令设置为我刚刚的
ins_dict = p.setParam(2) #又得到第三指令
打印(ins_dict)

所以我有如(3)指令和目标:
“MoveJ (target1)”和“target1”
我手动更改在GUI指令名称和目标名称:
“MoveJA (target1B)”和“target1C”
然后我上面的代码运行,并且指令自动更新的名称:
“MoveJ (target1C)”和“target1C”

也许一些水下会刷新吗?如果指令实际执行的命名,它可以使检索的链接目标项目指令的名字一个可行的选择。
# 5
事实上,我提供的示例代码并不强劲。
它提供了解决方案,直到一个更加方便的方式添加到API。
你将不得不适应您的需要。

使它更健壮,您可以检索所需的目标构成,比较指令构成。
如果名字和匹配,最有可能你更换正确的指令。

其他方式方法:
  • 创建两个项目与不同的目标
  • 从头开始创建您的程序通过API使用所需的目标项目
找到有用的信息通过访问我们的关于RoboDK及其爱游戏ayx高尔夫球特性在线文档看我们的教程YouTube频道




用户浏览这个线程:
1客人(年代)