catia利用宏批量改名的方法_CATIA宏/VBA/二次开发——3 几何特征的批量创建与重命名...

原标题:CATIA宏/VBA/二次开发——3 几何特征的批量创建与重命名

有了前面两篇文章的知识储备,我们就不必依赖“录制得到代码”的方法了。接下来,我们通过下面的实例小试牛刀,看一下代码一行行从无到有敲出来是怎样的体验。

提出需求:

一个Part的某个几何图形集下有若干个点,我们要以每个点为中心,做一个半径为r的球面。

权衡利弊:

如果你懂CATIA的知识工程,上面的内容可谓小菜一碟。但如果你不懂知识工程,或者因为公司抠门不买知识工程的许可证,那么英雄无用武之地的你,不妨试试VBA宏代码的方法!

思路分析:

第一篇文章入门时,我们就写了一段For-Next循环的代码,并且大概有这么个印象就是:一些重复且有规律的工作也许可以用代码来完成。

而拿上面的实例来说,我们大胆猜测,中间某一段代码可能是这样:

For i = 1 to 6

创建圆(圆心=几何图形集中第i个点,半径=r)

Next

从0到1:

通过研究已经录过的代码,或者看Automation手册

我们可以通过下面的代码从CATIA(Application)开始,一级一级获取到需要的对象:

‘获取CATIA当前打开的文档

Dim Doc

Set Doc=CATIA.ActiveDocument

‘获取该文档的Part对象

Dim Prt

Set Prt=Doc.Part

‘获取该Part对象的所有几何图形集的集合

Dim GeomSets

Set GeomSets=Prt.HybridBodies

‘获取几何图形集集合中名为“Geometrical Set.1”的那个图形集

Dim GeomSet

Set GeomSet=GeomSets.Item(“Geometrical Set.1”)

‘此处也可写通过序号获取,写作GeomSets.Item(1),即获取第1个几何图形集

‘获取该图形集下所有特征/几何图形的集合

Dim HShapes

Set HShapes=GeomSet.HybridShapes

事实上,如果你思路明确逻辑清晰,上面的代码可以简写为一行:

Set HShapes=CATIA.ActiveDocument.Part.HybridBodies.Item(1).HybridShapes

完成了上面的工作,接下来我们就要看看如何用代码创建球面了。如果你懒得查下面的API,

我们也可以用录制的方法得到代码

Set hybridShapeSphere1 = hybridShapeFactory1.AddNewSphere(reference1, Nothing, 20.000000, -45.000000, 45.000000, 0.000000, 180.000000)

hybridShapeSphere1.Limitation = 1

对照上面的图,我们可以看出来AddNewSphere方法里的各参数,大概能和创建球面对话框里的命令对应的差不多。但最后的四个经纬角度我们无需太在意,因为随后的Limitation熟悉设置为1表示其为闭合的球面,相当于选了下图的选项。

最后需要注意的一点是,使用HybridShapeFactory创建出来的元素,我们需要用HybridBody的AppendHybridShape方法,将其在几何图形集中生成为一个特征。

hybridBody1.AppendHybridShape hybridShapeSphere1

完整代码:

到此,我们将上面所提及的点整理到一起,便可写出如下的完整代码(一共不到50行,还有一半是注释,精简一下会更少):

由于无法发动图,这里仅能放一张程序运行之后的结果截图。如你想看实际的运行效果,请自行想象,或亲自动手编写这段代码后运行一下吧!

什么?你到现在还在纠结为什么通篇都没提到标题里的“重命名”?如果你已经掌握了遍历的思路,重命名只不过是更改每个变体的.Name属性,和我们这个创建球的例子比,已经不值一提啦!返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(catia利用宏批量改名的方法)