CATIAV5二次开发技术探讨

C ATI A V5二次开发技术探讨
龙 峰,樊留
(同济大学C I M S 研究中心,上海200092)
摘 要:介绍了CATI A ActiveX Aut omati on 组件对象模型原理与结构以及其在CATI A 二次开发中的作用;然后比较了CATI A 二次开发技术的两次方式:CAA C ++技术和CAA AUT OMATI O N 技术,两种方式各有优劣,并分别在两种开发环境(V isual C ++和V isual Basic )中通过利用Aut omati on 接口实现引用类型库程序以及与CATI A 的通信程序,并给出了部分代码;最后给出一个端拾器的装配设计效果。关键词:CATI A V 5;Active aut omati on;组件对象模型
中图分类号:T N4    文献标识码:A     文章编号:1009-7961(2005)05-0021-03
On the Second D evelopm en t Technology of CAT I A V 5
LONG Fen,FAN L iu -qun
(C I M S Research Center,Tongji University,Shanghai 200092,China )
Abstract:This paper intr oduces the theory of the CATI A ActiveX Aut omati on C OM (component object model )and the structure of the COM ,makes comparis on of the t w o methods in the devel opment technol ogy based on C ATI A V5with C AA C ++or C AA Au 2t omati on,and discusses the difference bet w een the t w o technol ogies with s ome codes .And the designing effect of C AA Aut omati on is finally given in this paper .
Key words:CATI A V5;Active aut omati on;C OM (component object model )
收稿日期:2005-06-10
作者简介:龙峰(1980-),男,江西南昌人,硕士研究生,主要研究方向:制造业信息集成技术。
0 前 言
CATI A V5是I B M 和达索系统公司共同推出的全新一
代的CAD /C AE /CAM 软件,该软件能够在W indows98/Me 、W indows 2000/Xp 以及Unix 等平台上运行,是目前应用范围最广、影响最大的CAD 软件。目前,CATI A 是汽车、摩托车、以及航空航天领域中的主流C AD 软件。作为一个在同行业中处于领先地位的软件,C ATI A 具有众多且功能强大的模块,模块总数从最初的12个增加到现在的140多个。
随着C ATI A 软件应用领域的日益普及和深入,用户对软件功能和性能的要求不断提高,以及增加对软件个性化服务要求,C ATI A V5开放了大部分接口,提供了很好的二次开发平台。
1 CATI A 二次开发方式
CATI A 的二次开发方式主要有两种,一种是采用C AA C ++技术,另一种是采用CAA AUT OMATI O N 技术,两种苏维埃
技术都有其优缺点。
CAA (Component App licati on A rchitecture )C ++是CATI A 的一整套C ++函数库,该函数库在C ATI A 运行时加载。用户通过安装RADE (Rap id App licati on Devel opment Envir on ment )模块,用户可以在VC ++编程环境下编制程序,与C ATI A 进行通信。
Aut o mati on 技术是建立在C O M 基础之上,由OLE Aut o 2mati on (Object L inking and E mbedding Aut o mati on )发展而来
的。Aut o mati on 的核心技术是允许一个应用程序操作另一
个应用程序。Aut o mati on 技术并不是直接获取及处理数据,而是间接地通过暴露的对象和属性,利
用对象的方法和属性获取、设置及处理数据。Aut o mati on 技术包括两个方面:server 和client 。Aut o mati on server 是一个实现了I D is patch 接口的C OM 组件,而Aut o mati on client 是一个通过I D is patch 接口与自动化服务器进行通信的C OM 客户。如C ATI A 我们把它看成一个server,客户编制的应用程序则是client
图1 两种技术比较
从图1可以看出使用CAA C ++可以进行最有效率的应用程序开发,但入门困难。CAA Aut omati on 功能限制相当大,但入门容易。所以建议开发工作尽可能使用C AA Aut omati on,不足之处在以C AA C ++完成。
2 CATI A 的其组件对象模型(COM )及其
访问方法
第14卷第5期            淮阴工学院学报             Vol .14No .52005年10月           Journal of Huaiyin I nstitute of Technol ogy             Oct .2005
  在C ATI A Aut omati on 中所有的数据都被封装成对象的形式,并形成树形结构,如图2,这样就可以通过根对象对所有的其他对象进行访问。图2中,App licati on 对象是根对象,通过这个对象的Docu ments,W indows 和Syste mService 等属性就可以访问CATI A 所有的对象。为了处理数量不确定的对象集合,提供了Docu ments 、W indows 、Ca meras 、
丙氨酸V ie wers 等集合对象,每个集合对象都从相同的对象Collec 2ti on 派生出来,这个对象具有一些操纵集合的方法和属性,
如Add 、Remove 、Ite m 方法和Count 属性。通过这些方法和
属性就可以确切知道这个集合对象包含多少个此类的对象并对其中的任何一个对象进行访问,同时也可以向这个集合中添加新的对象和删除其中的对象
图2 C ATI A 组件对象模型
  C ATI A V5的接口是完全基于Aut omati on 的,Aut oma 2ti on 使一个程序可以操控另一个程序的对象,这些接口使用COM 对象进行访问。C ATI A V5支持从系统内部和外
部访问它的Aut omati on 对象。在C ATI A 内部可以通过编
写VBScri p t 脚本程序来访问Aut omati on 对象,即可以使用CATI A 预定义的App licati on 对象访问所有的对象。在CATI A 外部可以通过VBScri p t 、JavaScri p t 、V isual Basic 以及V isual C ++编写程序来进行访问。特别需要注意的是,VBScri p t 、JavaScri p t 、V isual Basic 只能通过CAA Aut omati on
访问CATI A ,而V isual C ++不仅可以通过C AA Aut omati on 还可以通过C AA C ++访问CATI A 。3 CATI A AUT OMATI O N 应用介绍3.1 使用V isual Basic 开发3.1.1 在VB 中引用CATI A 类型双击p r oject ->references ...打开如图3对话框,把以C ATI A 开头的库都选中
。图3 在V isual Basic 里应用CATI A 类型库
22                  淮阴工学院学报               2005年
3.1.2 通过VB启动CATI A
D i m C ATI A A s Object
On Err or Resu me Next
Set C ATI A=Get O bject(,"CATI A.App licati on")
I f Err.Nu mber<>0Then
Set C ATI A=Create Object("CATI A.App licati on")
CATI A.V isible=True
End I f
On Err or GoTo0
3.1.3 编制应用程序与CATI A通信
Public CATI A A s I N F I TF.App licati on
........................
.
.........................
“打开一个图形文件”
’选取CATI A文件
Common D ial og1.CancelErr or=True
On Err or GoTo Err Handler
’设置标志
Common D ial og1.Flags=cdl O F NH ideRead Only
’设置过滤器
Common D ial og1.Filter="A ll Files(3.3)|3.3| CATI A零件文件"&_
"(3.cat part)|3.cat part|CATI A产品文件(3.cat2 p r oduct)|3.cat p r oduct"
’指定缺省的过滤器
Common D ial og1.FilterI ndex=2
’显示“打开”对话框
Common D ial og1.ShowOpen
................................
’打开文件
D i m docs p r ocedure A s Docu ments
Set docs p r ocedure=C ATI A.Documents
上尉的曼陀铃Set docp r ocedure=docs p r ocedure.Open(Common D ia2 l og1.FileNa me)
以上应用程序为通过VB的Common D ial og打开C AT2 I A文件的例程。需要注意的是,我们用VB对CATI A的Aut omati on进行编程时,往往可以先用CATI A录制宏,然后把录制下来的宏编辑修改成在VB中能运行的代码,这往往会节省很多时间。
3.2 使用V isual C++开发详见[5]
3.2.1 在V isual C++中引入类型库
创建基于对话框的工程。在stdafx.件中用#i m port 指令引入I nfTypeL ib.tlb,K weType L ib.tlb,PSTypeL ib.tlb, Mec ModType L ib.tlb,PartTypeL ib.tlb等类型库。具体如下: #i m port"...\B14\intel_a\code\bin\I nfType L ib.tlb"re2 na me_na mes pace("C AA")
#i m port"...\B14\intel_a\code\bin\K weTypeL ib.tlb" rena me_na mes pace("CAA")
#i m port"...\B14\intel_a\code\bin\PSType L ib.tlb"re2
na me_na mes pace("CAA")
#i m port"...\B14\intel_a\code\bin\M ec ModType L ib. tlb"rena me_na mes pace("C AA")
#i m port"...\B14\intel_a\code\bin\PartType L ib.tlb"re2 na me_na mes pace("CAA")
..
..
以上路径为上述5个类型库在程序编译中的具体路径,为了避免冲突应该用rena me来充命名,然后在
App类I nitI nstance()开始处加入初始化COM库德函数Afx O le I nit (),编译成功后,在V isual C++的p r oject菜单中选择Add To Pr oject子菜单,选中该子菜单中的Files项,在弹出的对话框中选择Debug文件夹中以tli和tlh为扩展名的文件,确定以后就可以在V isual C++的Class V iew中浏览所引入的类型库的类了。
3.2.2 通过V isual C++启动CATI A
先在程序中定义App licati onPtr类变量App。App lica2 ti on是CATI A的Aut omati on对象模型的顶层,客户程序通过它与CATI A建立连接控制C ATI A。V isual C++通过以下代码启动C ATI A:
HRES ULT hr;
hr=app.Get A ctive Object("C ATI A.App licati on");
I f(F A I L E D(hr))
{
hr=app.Create I ntance("CATI A.App licati on");
}
3.2.3 编制应用程序与C ATI A进行通信
//打开一个图形文件//
//选取
Void CCATI A D lg::On Open()
{
Cfile D ial og D lg(TRUE,“C ATPart”,NULL,
OF N_H I D ERE ADONLY|OF N_OVER WR I TEPROM PT,“C ATI A图形(3.cat part)
|3.cat part“,NULL);
Cstring fna me;
I f(dlg.Do Modal()==I D OK)
{
Path Na me();
}新技术
}
//打开
Docu mentPtr docs;
Docs=app->Get D ocu ments();
BST R f=_com_util::ConvertStringToBST R(fname);
Docs->Open(&f);
(下转第27页)
第5期               龙 峰等:C ATI A V5二次开发技术探讨               23
参考文献:
[1]陈杨杨,陈梅.基于单片机的通信和LCD 显示[J ].电气
时代,2005,(8):124-125.
[2]张爱雪,顾惠芬.液晶显示模块与8031单片机的接口电
路及编程[J ].仪表技术,2005,(3):55-57.
[3]黄永顺.从国标字库中提取汉字点阵信息的方法及应用[J ].漳州师范学院学报,2004,(3):48-50.
[4]胡力刚,王养森,陈宁.单片机在液晶显示器系统中的应
用[J ],电子工程师,2005,(2):14-16.
[5]周立功等.LPC900系列Flash 单片机应用技术[M ].北
京:北京航空航天大学出版社,2004,1.
[6]王佳斌,戴在平.模拟I 2C 总线从器件的一种方法[J ].华
伤怀之美阅读答案侨大学学报,2004,(4):206-208.
[7]黄彬,张冰蔚.基于单片机的液晶触摸屏控制系统[J ].工
业控制计算机,2005,(7):50-51.
[8]李维缇,郭强.液晶显示器件应用技术[M ].北京:北京邮
电学院出版社,1993.
(责任编辑:吴延东)
(上接第23页)
4 应用实例
本实例利用VB 对CAA Aut omati on 进行二次开发,对
某端拾器进行装配设计,效果如图4
图4 端拾器装配设计
5 结束语
CATI A 作为一款高端的CAD /CAM 软件,一方面随着
在中国应用领域的普及和深入,用户对CATI A 软件的个性化要求的提高;另一方面CATI A 二次开发技术,特别是CAA C ++的二次开发技术和资料的欠缺,所以及早推广和掌握C AA 开发技术,特别是C AA C ++技术,以顺应国内制造业发展的需求。
参考文献:
[1]张和明.基于COM 组件的CATI A 产品信息集成技术研究[J ].计算机工程与应用,2001,37(24):132-134.
[2]张国宝.Aut oCAD 2000VBA 开发技术[M ].北京:清华大
学出版社,2000.20-37.aloe extract
[3]田启华.基于V isual C ++的Solid Works 二次开发技术
[J ].现代机械,2005,(1):30-33.
[4]吕小燕.基于VB 对Solid Works 二次开发方法的研究[J ].
机械设计与制造,2005,(3):20-23.
[5]武刚.基于CATI A ActiveX Aut omati on 机械零件参数化系
统的开发技术[J ].天津理工学院学报,2003,19(4):53-56.
[6]黄利平,李建民.CAx,P DM ,MRP II 的信息集成[J ].计算
机辅助设计与图形学报,2000,12(12):922-925.
[7]荀斌.CATI A 曲面造型技术在汽车产品设计中的应用[J ].机械开发,1999,(3):53-55.
[8]李江雄,柯映林,程耀东.基于实物的复杂曲面产品逆向
工程中的CAD 建模技术[J ].中国机械工程,1999,10(4):390-394.
(责任编辑:蒋 华)
第5期            严 石:基于I 2
C 总线的汉字液晶显示模块的设计和实现           27

本文发布于:2024-09-22 04:17:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/231389.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   技术   应用   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议