基于COM组件的UG/Open参数化设计研究
2012-09-26黄勇
黄 勇
(华东交通大学机电学院,江西南昌330013)
随着网络技术和COM技术的发展,以组件技术作为程序的开发方法已经成为趋势。基于COM的应用程序可对用户的需求作出快速的响应,应用程序开发人员可以快速从某个COM组件库中取出所需的COM组件,就如同搭积木一样,快速地组装到一块,以构造所需要的应用程序。因此,将COM组件技术引入到UG二次开发中,实现UG/Open、VC和COM三者相结合的开发就显得非常有意义。当用户的要求发生改变时,就只需改变COM组件中接口的内容,客户端不需要作任何变化,可以更高效地满足用户的要求。
1 COM组件在UG/Open开发中的应用方法
目前,VC中的MFC是实现COM组件的工具之一,即可以通过MFC创建COM组件,访问COM组件中的接口。但是,UG/Open一直没有提供直接访问MFC的方法,在UG/Open应用开发中不能直接调用MFC类库,同时,与MFC界面相比,UG/Open UIStyler提供的界面种类少,应用不方便,有些界面很难实现,从一定程度上限制了应用程序的开发。为了开发出用户需求的应用系统,实现COM组件在UG/Open开发中的应用,必须解决UG/Open与MFC的混合开发问题。因此,为了使UG/Open开发中支持MFC,必须对应用程序的结构做出如下改变:
(1)利用应用程序向导中的MFC AppWizard(dll)创建应用程序;
(2)确定Regular DLL using shared MFC DLL程序类型;
(3)在theApp类下面添加自定义函数,编写程序。
(4)编译、连接。
注意:将UG/Open API函数库加入到Tools/Options菜单Directaries选项卡Include files和Library files栏中;同时,在 Project/Settings菜单 Link选项卡Object/library modules栏中加入库文件 libugopenint.lib 和 libufun.lib。
(5)将产生的动态连接库复制到startup文件夹中。
2 开发实例
以下就以花键轴参数化设计为例,阐述COM组件在UG/Open参数化设计中的应用方法。
2.1 总体结构
本实例采用COM组件技术,主要由2个层次组成:组件服务器和客户端。客户端主要完成菜单、用户界面等,组件服务器主要完成花键轴参数化设计。客户端通过访问COM组件的接口实现花键轴参数化设计,系统的组成如图1所示。
2.2 建立开发环境
(1)新建文件夹,并在该文件夹下建立startup、application、prt三个子文件夹,startup文件夹用来放置菜单及DLL文件,application文件夹用来放置对话框文件* .dlg,prt文件夹用来放置花键轴三维模型模板文件。本实例新建文件夹的路径是D:COM_PARA_DESIGNPART_PARA_DESIGN_COM,并在该文件夹下建立startup、application和prt三个子文件夹。
(2)注册环境变量,在【我的电脑】上单击右键选择【属性】,在弹出的对话框里选择【高级】选项卡,在该选项卡里选择【环境变量】,出现环境变量窗口,在此窗口中选择【新建】,弹出新建用户变量窗口,如图2所示,在此窗口中完成环境变量的注册。
在本实例中,新建变量名“UGII_USER_DIR”,变量值“D:COM_PARA_DESIGNPART_PARA_DESIGN_COM”。
2.3 三维模型模板的建立
在UG平台上,通过草绘、拉伸、圆形阵列、孔特征及凸台特征等参数化建模方法,建立花键轴的三维模型,名称为:COM_PART,存放在D:COM_PARA_DESIGNPART_PARA_DESIGN_COMprt目录下,并建立、生成相应的表达式,如图3和4所示。
2.4 用户界面的开发
(1)菜单的建立
在startup文件夹下,新建菜单文件(.men)。具体内容如下所示:
启动UG,如图5所示。
(2)对话框的建立
该实例采用UG/Open UIStyler定制对话框的方式,如图6所示,对话框另存为Client_DIA.dlg,存放在 application文件夹中。
2.5 参数化设计 COM 组件的开发
(1)使用VC向导中的ATL COM AppWizard创建COM服务器框架工程,如图7所示,单击【OK】,在弹出的对话框中,建立单击【Finish】,完成COM框架。
(2)启动ATL COM AppWizard来加入对COM对象的支持,并添加IParaDesign接口,在IParaDesign接口中添加读模板和参数化设计的方法。
(3)编译、链接,生成参数化设计COM组件。
2.6 访问COM组件,实现参数化设计
3 运行结果
(1)建立环境变量,启动UG,如图8所示。
(2)选择菜单,出现系统主界面,并获取当前模型的数据信息到对话框中,如图9所示。
(3)可以在对话框中输入数据,如图10所示。
(4)选择【确定】按钮,调用花键轴参数化COM组件,进行参数化设计,如图11所示。
4 应用情况
基于COM组件的参数化设计方法成功地将UG/Open、MFC、COM三者相结合,并已经成功应用到了企业UG应用开发中,解决了特定产品设计必须采用二次开发参数化设计的难题。当企业需求发生变化时,只需要改变相应的COM组件,程序接口不需要发生任何变化,快速响应了企业的多变。
5 结语
本文在UG平台上引入了利用COM组件进行参数化设计的开发思想,总结出了COM组件在UG/Open参数化设计开发中的应用方法,并以花键轴参数化设计为例,实现了COM组件参数化设计的开发。该方法已经成功应用到了企业产品设计中,同时,可为其他CAD的开发提供参考和借鉴。
[1]任哲.MFC Windows应用程序设计[M].北京:清华大学出版社,2004.
[2]董正卫,田立中,付宜利.UG/Open API编程基础[M].北京:清华大学出版社,2002.
[3]王庆林.UG/Open GRIP实用编程基础[M].北京:清华大学出版社,2002.
[4]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.