作为一种大型工程应用软件,CATIA共提供了五种开放性接口,按应用范围可分为:标准格式导入/导出、使用Automation API的宏命令模式、智能软件、交互模式下的用户自定义特征、CAA V5 C++ & Java API。其中格式转换、公式和规则编辑器只用于简单的数据交换,不能作为二次开发的方式。在实际应用中,使用比较广泛的主要是CAA V5 C++ & JAVA和Automation API这两种开发结口。CAA功能强大,但是入门较困难,而automation api的方式限制较多,只能实现很少的功能,但是对于一些简单的应用来说足够了,而且入门很简单,利用VBA,Python等语言就可以轻松的实现。不喜欢VB,而最近对Python又非常着迷,下面就简单介绍一下利用python对Catia进行二次开发的步骤。
既然是使用Python进行开发,那Python的发行包是必不可少的,其次是扩展模块Pywin32,pywin32下载地址:http://sourceforge.net/projects/pywin32/files/,注意选择与你的Python版本一致的Pywin32安装包。
当一切都准备妥当的时候,就可以着手进行开发了。如果你以前使用python对word、excel等进行过开发的话就会发现对catia的开发原理其实是一样的,无非是先通过pywin32获取到程序的com对象,然后通过对com对象的属性和方法的访问来实现开发的目的。
下面的一个简单的例子,功能为将d:\catia目录下的所有CATDrawing格式的二维图纸批量转换为PDF格式的文件
1 import win32com.client
2 import os,string
3 path = "d:\\catia\\"
4 sourcetype = "CATDrawing"
5 desttype = "pdf"
6 #获取COM对象
7 catapp = win32com.client.Dispatch("CATIA.application")
8 #可视化
9 catapp.Visible = 1
10 #获取文件列表
11 filelist = os.listdir(path)
12 drawinglist = []
13 for file in filelist:
14 if file.endswith(sourcetype):
15 #打开图纸
16 catdoc = catapp.Documents.Open(path+file)
17 #另存为PDF
18 catdoc.ExportData(path+file[0:15]+desttype,desttype)
国内这方面的资料比较少(其实也没啥好说的,理解了原理后,剩下要做的就是对CATIA及其AUTOMATION API的研究了),就我所知,目前仅有《CATIA二次开发技术基础》一书,虽然没有看过,但通过目录可以看出它对CATIA的Automaiton开发基础以及产品设计与外形设计中的几个主要编程模块等内容进行了介绍,对于上手应该有所帮助。
CATIA安装目录下的BIN目录下有个名为V5Automation.chm的帮助文件,详细介绍了CATIA 的Automation Api,这应该是开发时首要进行参考的文件。
国外的http://win32com.goermezer.de网站上有一些利用Python对CATIA进行开发的例子:http://win32com.goermezer.de/index.php?searchword=catia&option=com_search&Itemid=