网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

robot 脚本解析

2021-04-06 新闻来源:网淘巴 围观:404
电脑广告
手机广告

from vcScript import *

 

comp=getComponent()#先要获得组件也就是拖入布局的模型

 

robotExecutor=comp.findBehavioursByType("rRobotExecutor")[0]#获得程序里的子程序集合

 

robotProgram=robotExecutor.Program#获得程序里的子程序集合

 

mainRoutine=robotProgram.MainRoutine#获得程序里的子程序集合中的Main

 

 

subroutines=robotProgram.Routines#获得程序里的子程序集合中所有子程序

 

for property in mainRoutine.Properties:#获得程序里的子程序Main中的属性,如变量名

  print(property.Name)

statements=mainRoutine.Statements

print(statements)

for statement in statements:

  if statement.Scopes:

    print(statement.Scopes)

 

def getAllStatementsInRoutine(scope,statements=None):

   if not statements:

      statements=[]

   for statement in scope.Statements:

       statements.append(statement)

       if statement.Scopes:

          for scope in statement.Scopes:

              getAllStatementsInRoutine(scope,statements)#递归

   return statements

  

print(len(getAllStatementsInRoutine(mainRoutine)))#mainRoutine中包含scope和statements,python是门神奇的语言

 

#print(len(getAllStatementsInRoutine(subroutines[1])))获得了不含main的子程序程序语句数量

 

#遍历了主程序包含的所有子程序

def getAllStatementsInRobotProgram(program):

  statements=getAllStatementsInRoutine(program.MainRoutine)

  for statement in statements:

      subroutine=statement.getProperty("Routine")

      if subroutine:

         getAllStatementsInRoutine(subroutine.Value,statements) 

  return statements

  

print len(getAllStatementsInRobotProgram(robotProgram))

#获取第一个子程序下所有程序片段statement

positions=[]

for statement in subroutines[0].Statements:

  print(statement)

 

#获取第一个子程序下所有程序片段位置

positions=[]

for statement in subroutines[0].Statements:

  try:

    print(statement.Positions)

  except:

    continue

#获取所有子程序下的位置

def getAllPositionsInRoutine(scope):

    statements=getAllStatementsInRoutine(scope)

    positions=[]

    for statement in statements:

        try:

            for position in statement.Positions:

                positions.append(position)

        except:

                pass

    return positions

for subroutine in subroutines:

    print(getAllPositionsInRoutine(subroutine))

转载必须标明出处robot脚本解析_visual Component_网淘巴 (wtao8.com) 

打赏 支付宝打赏 微信打赏
免责申明
一、网淘巴提供的资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱:
jjq_hn@wtao8.com ,我们会在看到邮件的第一时间内为您处理。
二、网友通过wtao8.com途径发表的一切信息,本站有权在本网站范围内引用、发布、转载用户在本站发布的内容。本站对于用户发布的内容所引发的版权、署名权的异议、纠纷不承担任何责任。传统媒体转载须事先与原作者和本站联系。提交者发言纯属个人行为,与本网站立场无关。
文章底部电脑广告
手机广告位-内容正文底部
上一篇:没有了 下一篇:恒顺醋业-醋业智能制造标杆企业

相关文章

学习使人进步

这是我学习的历程,分享给大家。