刘爽 孙佳慧
摘 要:本文介绍CATIA二次开发方式,用C++语言编写程序代码,调用CATIA API内部函数库,在CATIA界面上生成创建圆柱体的自定义工具条,用户直接输入参数生成圆柱体模型。避免了CATIA中建模的重復操作,缩短研发时间,提高工程效率。
关键词:二次开发;CAA;CATIA
Secondary development of cylinder based on technology of CATIA\CAA
LIU Shuang LI Lijuan LIN Xuezhu XU Liang SUN Jiahui
(College of Opto-Electronic Engineering,Changchun University of
Science and Technology,ChangChun,130022)
Abstract:This paper describes the secondary development way of CATIA,written program in C++ code,called CATIA API internal function library,created a custom toolbar which generates the cylinder on the CATIA interface, user inputted parameter and then directely generated cylinder model.This method avoided repetitive operations in CATIA modeling,shorten development time,improved engineering efficiency.
Key words:Secondary development;CAA;CATIA
1.引言
CATIA V5 是法国达索公司与IBM公司开发的新一代CAD/CAM产品。不同于老一代CAD/CAM产品,它采用了全新的、基于组件的开放式体系结构。应用现代软件工程思想,有着相当优良的扩展性能。它开放的组件应用架构允许更多的第三方供应商针对用户的需要,定制特别的应用解决方案。
本文通过CATIA的一种二次开发方式——CAA方法,调用CATIA的内部函数库,以Visual Studio NET 2005为平台进行编程,实现圆柱体的二次开发,完成后对新程序进行发布,达到二次开发的目的。
2. CATIA二次开发方式
CATIA的二次开发方式主要有两种,一种是采用Automation技术,另一种是CAA V5技术,两种技术各有其优缺点。
Automation API使用自动化应用接口的宏,通过VB Script 或Java Script来录制宏,从而自动生成代码。虽然操作方式简单,但有很大的局限性,不适合CATIA的深层次开发。
CAA(Component Application Architecture)全称组件应用架构(组件架构图如下图1所示),是一种面向组件的编程模式,组件架构的编程重点是在彼此独立的基础上,实现模块之间的交互性,这种交互性使我们不需要熟悉它们的内部工作原理,方便程序设计者把不同的组件提供的功能粘合在一起,像搭积木一样,根据不同的用途,搭建成不同的形状,以满足客户的需求。利用CAA可以实现CATIA几乎所有功能的开发工作。但是,由于CATIA应用本身的复杂性和CAA所涉及的深层次内容,利用CAA进行二次开发也具有一定的复杂性和难度。
3. CAA的开发环境
本文的CAA开发系统是构建在Visual Studio NET 2005平台上,通过API调用CATIA的函数库,进行所需的程序开发,从而实现客户需求和原系统的紧密集成。在成功安装CATIA、CAA、RADE(Rapid Application Development Environment)后,RADE的菜单被添加到Microsoft VisualStudio2005的界面中,我们将在这里进行所有的编程开发操作。开发界面如下图2所示。
4.圆柱体开发实例
4.1开发流程
4.2实现的步骤
4.2.1新建工程
首先,在文件菜单下,单击 ,新建一个CAA工程,命名为“Mycreate- CylinderFramework”,每个CAA工程都至少包含一个Framework(体系结构如下图4所示),之后在Framework中添加Module。Module为组织程序代码的一个基本容器,以后所有的编程将在这里进行。可以根据需要创建多个Module,本文只创建一个Framework和Module。
4.2.2建立接口连接
建立Workspace后,必须建立Workspace与CATIA系统接口的连接,以搜索开发所需要的API资源。
4.2.3工具条的设置
4.2.4窗口的实现
根据图3的开发流程,首先应得到零件文档,指向装载零件的容器,在草图工厂中,约束圆形的圆心与坐标轴同心,根据得到的圆柱半径参数,在XY平面上创建圆形,这样就得到创建完约束的草图,在二维图形工厂中创建圆形,结合在零件工厂中的凸台指令,导入圆柱体的高度参数,创建完整的圆柱体,之后运行更新即可。部分代码如下所示,创建圆柱体的对话框界面如下图7所示。
CATDocument * pDoc= NULL;
CATFrmEditor * _pEditor=CATFrmEditor::GetCurrentEditor();
pDoc=_pEditor->GetDocument();//这里得到Part文档下的环境指针
CATInit_var spInitOnDoc(pDoc);//这里得到零件根容器
CATISketchFactory_var spSketchFactOnPrtCont(piPrtCont);//初始化草图工厂
CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch(spSketchPlane);//在XY面上创建草图
double iPoint[2] = {0.,0.};//约束圆心点
CATISpecObject_var spLine1 = spWF2DFactOnSke- tch->CreateCircle(iPoint,_Editor003->GetFloatValu e ());//获得圆柱半径参数,创建圆形
double firstLimit = _Editor004->GetFloatValue();//获得自定义圆柱高度
CATISpecObject_var spSpecObj = spPrtFactOnP- rtCont->CreatePad(spSketch);//创建凸台
图7 创建圓柱体界面
Fig.7 Create cylinder interface
4.3程序界面运行展示
将全部程序编译运行更新,在CATIA主窗口中显示圆柱体生成的工具条,单击工具条,弹出创建圆柱的对话框,用户只需输入圆柱体半径和高度参数,系统会自动生成圆柱体,效果图如下图8所示。
4.4程序的发布
为了使开发的程序让更多的人用到,要对程序进行发布。利用CATIA Tools工具中的“Environment Editor V5R18”环境编辑器,开发者可以对编好的程序进行发布,在桌面上生成CATIA类型快捷图标(如下图9),双击该图标,会启动CATIA,用户便可使用CATIA原来所有的功能和新发布的功能。
5.结束语
本文介绍了CATIA二次开发方式,利用CAA组件架构方法实现了圆柱体在CATIA界面中的直接生成和程序发布。从文中可以看出,基于CAA组件架构模式的CATIA二次开发方法,可以方便快捷的实现第三方客户和CATIA软件的通信,根据客户需求,对CATIA软件进行专门的开发,大大缩短了系统的开发周期,提高工程效率,具有很大的工程实用价值。
参考文献:
[1] 董伊鑫,席平.基于CATIA的界面二次开发[J].航空制造技术,2006(12):83-86,104.
[2] 周仙娥,鲁墨武,赵海星.基于CAA的CATIA二次开发的研究[J].科技信息,2008(36):73-74,317.
[3]徐太花.基于CATIA/CAA的文字输入的二次开发[J].计算机与现代化,2013(1):102-105.
[4]胡适,吴立军.CATIA二次开发技术基础[M].北京:电子工业出版社,2006
[5]何朝良,杜廷娜,张超.基于CAA的CATIA二次开发初探,自动化技术与应用,2006年第25卷第9期.
作者简介:刘爽(1987-),女,硕士研究生,主要从事精密测控技术与仪器的研究.