这个时候,我们要引入一个概念,叫做递归,简单来说就是程序调用自身的过程。
如果还想不明白,诸位可以回忆一下你们昨晚看的那些小姐姐的直播:当她们***此处省略若干字***,然后中场休息时,在自己的桌面上显示直播画面时,会不会出现这样的情况:
直播画面里显示着另一个直播画面,画面的画面里还有一个画面,画面的画面的画面里还有一个画面(貌似是个凑字数的好方法)……一个无限循环到细思极恐的画面
回到我们的重命名问题。通过查阅Automation,获取Product及其下一级装配部件,然后对它做一些不可描述之事,这些对我们来说不难实现,比如:
Dim P
set P=CATIA.ActiveDocument.Product
Dim Pc
For Each Pc in P.Products
Pc.OOXX……
此处省略若干字
Pc.ZZZ
Next
而对我们来说,批量改名的关键,在于通过递归的思想,实现对当前打开总成RootProduct的每个子装配节点都访问到:
不知各位看官有没有注意到,上面“重命名”三个字为什么用黄色区分呢?
因为“重命名”,在这里充当的是一个子功能的角色。换句话说,它不仅可以是重命名,也可以是改名,可以是添加后缀,可以是添加/读取自定义属性,还可以是把读取的属性保存到Excel中……诶,等等,这不就是传说中的BOM导出吗!
因此,我们可以毫不客气地说:只要实现了遍历,那么这些装配节点对象将任我们摆布!
按照惯例,接下来,该放出一个包含源代码脚本的百度网盘下载链接了吧!但是小编转念一想:这次的内容有点超纲,因为它是小编录制的《从工程狮到程序猿》课程中的内容。如果把源代码都放出来了,那花钱购买课程的小伙伴心里得多不平衡!
但是,我们之前分享的《可能是东半球最好用的免费CATIA小工具了》里面,已经包含了导出BOM的功能,各位可以随意使用!
而如果各位看官感兴趣,想了解后台的代码,或者将其改成重命名等其他功能,可以点击文章底部的“阅读原文”,查看这部分超详细视频教程哦!