版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第16卷第6期2004年6月计算机辅助设计与图形学学报JOURNAL OF COMPU TER 2AIDED DESIGN &COMPU TER GRAPHICSVol 116,No 16J une ,2004原稿收到日期:2003206220;修改稿收到日期:20032072171本课题得到总装备部预先研究项目基金资助1王恒,男,1975年生,博士研究生,讲师,主要研究方向为CAD/CAM 集成技术、虚拟制造技术1宁汝新,女,1942年生,博士,教授,博士生导师,主要研究方向为现代集成产品开发技术1张旭,男,1969年生,博士,副教授,主要研究方向为CAD/CAM 集成技术、PDM 技术1王
2、铁,男,1957年生,博士研究生,教授,主要研究方向为CAD/CAM 集成技术、失效分析、软件开发1产品开发集锦利用MFC 二次开发Pro/E王恒1,2宁汝新1张旭1王铁11(北京理工大学机械与车辆工程学院北京1000812(江苏大学机械工程学院镇江212013摘要Pro/E 软件的二次开发工作逐渐得到人们的重视,但是由于其开发工具Pro/Toolkit 和MFC 的兼容性问题,导致开发人员无法或要通过比较烦琐的方法才能利用MFC 的强大功能和丰富资源1针对这一弊端,提出了在Visual C +610的平台上,简便而且充分地利用MFC 来进行Pro/E 二次开发的方法1关键词Pro/Toolk
3、it ;MFC ;二次开发;Pro/E 中图法分类号TP391172Customized Development of Pro/E B ased on MFC and Visual C +610Wang Heng 1,2Ning Ruxin 1Zhang Xu 1Wang Tie 11(School of Mechanical and Vehicle Engi neeri ng ,Beiji ng Instit ute of Technology ,Beiji ng 1000812(School of Mechanical Engi neeri ng ,Jiangsu U niversity
4、,Zhenjiang 212013Abstract An approach to develop Pro/Toolkit applications based on Visual C +610and MFC is presented 1This would make the customization of Pro/E functions so easy and effective just like to de 2velop your own software based on Windows and Visual C +6101K ey w ords Pro/Toolkit ;MFC ;c
5、ustomized development ;Pro/E1引言Pro/E 具有强大的二次开发功能,其开发方法灵活多样1这些方法中功能最强大的就是利用PTC 公司提供的Pro/Toolkit 函数包进行开发1但是,该函数包使用起来有诸多不便之处,特别是如何充分利用MFC (Microsoft Foundation Classes 资源一直没有得到很好地解决1本文根据近年来实际工作中取得的开发经验,重点讲述如何使用Pro/Toolkit 在Visual C +610平台上,利用MFC 进行二次开发,彻底解决了Pro/Toolkit 与MFC 的集成问题12Pro/Toolkit 的现状及缺点Pro
6、/Toolkit 是PTC 公司提供的纯C 语言二次开发工具包,它为用户或者第三方软件商提供了一个庞大的C 语言函数库1该库提供了Pro/E 软件大量的底层函数,用户可以借助该库扩展能与Pro/E 无缝集成的自定义功能、访问Pro/E 数据、用户化自己的工作界面等1但是,由于其开发需要在纯C 语言环境下,使用Makefile 的方法1,这就必然存在如下缺点:(1开发环境不友好;(2较难开发出用户化图形界面,甚至功能受限,特别是目前非常普遍的基于Windows 平台的可视化交互式图形界面,在纯C 语言环境下开发十分不便;(3MFC 资源无法轻松得以利用1针对这些缺陷,Pro/Toolkit 有所
7、改进:在Pro/E2000i 2之后的版本,PTC 提供了对话框的开发功能,但是使用十分不方便,需要用户先编写对话框资源文件,再调用相应的Pro/T oolkit 函数才能生成对话框1PTC 还提供了the Dialog Viewer prodialog view 工具,可以查看所编写的资源文件,即将生成的对话框是什么样1但这与当今的可视化交互式编程风格不大相容,其开发难度较大而且所能开发的对话框组件十分有限1,远不及MFC 1国内外很多学者也做了相应的研究,实现了在Pro/Toolkit 的开发中对MFC 对话框类的调用,可以在Visual C +610的环境下设计对话框1但是,其实现方式是
8、利用两个动态连接库(Dynamic Link Library ,DLL ,先开发一个DLL 加载MFC 对话框,再开发一个DLL 实现与Pro/E 的连接;后者DLL 中调用前者DLL ,以实现对话框的显示1由文献224可以看出,这样的方法虽然实现了对MFC 的调用,但其对开发人员的要求较高,使用仍不方便1因此,本文提出更为简单的方法,可以轻松地在Visual C +610上利用MFC 开发Pro/Toolkit 应用程序1图1Pro/Toolkit 同步和异步运行模式3基于MFC 的Pro/E 二次开发311二次开发思路根据Pro/Toolkit 提供的功能,二次开发可以采用两种方式:同步模
9、式(Synchronous Mode 和异步模式(Asynchronous Mode 1这两种方式在Visual C +610平台上利用MFC 的开发结构示意图如图1所示1由于同步模式与Pro/E 紧密集成,犹如Pro/E 自身的功能,运行速度快、可靠性高,因而应该尽可能地使用同步模式11下面仅介绍开发同步模式1由图1可以看出,开发人员可以在Visual C +610的开发平台上充分利用MFC 的资源,只需要开发出自己的一个DLL 应用程序,便可实现与Pro/E 的无缝集成1312Visual C +610的环境设置技术一直以来无法方便地开发基于MFC 的Pro/Toolkit 程序,主要原因
10、是很难找到能使DLL 的编译连接顺利进行的Visual C +610的环境设置1经过长时间的实践,本文给出一种环境的设置方法,可以顺利完成DLL 的编译1利用向导MFC App Wizard (dll 创建一个工程,使用“Regular DLL using shared MFC DLL ”,打开Project Setting 对话框,更改工程的设置如下:(1C/C +Preprocessor definitions :DEBU G ,WINDLL ,WIN32,WINDOWS ,MBCS ,USRDLL ,PRO USE VAR AR GS(2C/C +Code G eneration Use
11、 run 2time library :Multithreaded(3C/C +Code G eneration Precompiled Headers :选择Not using precompiled headers(4Link G eneral Object/library modules :protk dll 1lib prodev dll 1libwsock321lib mpr 1lib kernel321lib user321lib gdi321lib winspool 1lib comdlg321libadvapi321libshell321libole321liboleaut32
12、1libuuid 1libodbc321lib odbccp321lib(5Link Customize :选中Force file output根据如上VC 开发环境的设置,开发人员便可以放心地使用MFC 的资源开发自己的Pro/Toolkit 应用程序1313几项关键开发技术在具体的开发过程中,开发人员还会遇到一些特定的问题,本文结合开发经验,介绍几项关键技术:为了能够使用ActiveX 控件,需要在入口函数extern “C ”int user initialize (增加AfxEnableC ontrol 2Container (语句131311对话框开发技术对话框是CAD/CAM 类
13、应用软件不可缺少的用户界面之一,能够正确快速地开发出应用程序的78计算机辅助设计与图形学学报2004年对话框十分重要1基于第312节的Visual C+610环境设置,充分利用MFC,对话框的开发已经变得十分简单,但是在开发对话框时还应该注意以下问题:因为Pro/E与Windows开发平台系统的差异,所以当所开发的对话框显示并移动时,就存在Pro/E 的设计窗口不能及时刷新的问题1解决这一问题的方法是在该对话框类里修改对话框类的OnMove(函数,添加刷新Pro/E窗口的函数1例如,用如下语句为在PAR T菜单下自定义的菜单按钮“TestDialog”添加方法TestDialog(,调用对话框
14、CMyDialog类:ProMenubuttonActionSet(“PART”,“TestDialog”, (ProMenubuttonActionTestDialog,NULL,0;执行函数TestDialog为static void TestDialog(CMyDialog pDialog;pDialog1DoModal(;这样可以调用对话框,但为了刷新屏幕,需要修改CMyDialog的OnMove(为void CMyDialogOnMove(int x,int yCDialogOnMove(x,y;ProWindowRefresh(PRO VALU E UNUSED;Pro/Toolk
15、it提供的刷新窗口函数;这里,CMyDialog是一个对话框类,其中,ProWin2 dowRefresh(PRO V ALUE UNUSED实现对当前窗口的刷新,用户也可以使用ProWindowRepaint(PRO VAL U E UNUSED来刷新当前窗口1前者仅仅将当前窗口重绘,不会有任何改变;后者在重绘窗口的同时,将消除当前的高亮显示1具体使用哪个函数,可以视具体情况而定1另一个解决对话框不能刷新的方法是采用无模式对话框1假设仍旧由上述菜单按钮“TestDialog”调用CMyDialog对话框,则无模式对话框的使用方法为CMyDialog3pDialog;static void T
16、estDialog(pDialog=new CMyDialog(;if(pDialog!=NULLBOO L ret=pD ialogCreate(IDD MY DIA LOG,NULL;创建无模式对话框;if(!retAfxMessageBox(“Error Creating Dialog”;pDialogShowWindow(SW SHOW;强制显示;elseAfxMessageBox(“Error Creating Dialog Object”;此时则无须修改OnMove(了1需要注意的是:无模式对话框应该调用DestroyWindow(来销毁,否则,由于内存没有及时释放,Pro/E可能
17、会出错并无任何警告地退出1究竟应该使用哪种对话框,可视开发的具体情况而定1如当对话框显示时仍需操作Pro/E的界面,则可以使用无模式对话框;若为避免在当前对话框之外进行其他的误操作,则可以使用模式对话框1 31312与数据库交互技术同样地,与数据库的交互完全可以通过MFC 来实现1下面以ODBC为例说明1void CMyDialogOnLinkDataBaseButton(CDatabase m DB;if(m DB1OpenEx(T(“DSN=Mydata”连接数据源“Mydata”;CRecordset3m pSet;m pSet=new CRecordset(&m DB;m pSetOp
18、en(CRecordsetsnapshot,T(“Select 3from MyTable”,CRecordsetnone;取得表MyTable中的所有记录;这样就实现了与数据库的相连,并可以使用SQL语句查询数据库14开发实例利用上述关键技术,我们为某企业在Pro/E上开发了自定义特征、自定义属性信息、典型结构件库等功能模块,实现了自定义特征的快速设计、零件库的检索等,扩充了Pro/E的功能,能够极大地加快企业产品的开发速度1图2所示为利用MFC开发出来的对话框实例1可以看出,基于MFC的二次开发更灵活多样了11786期王恒等:利用MFC二次开发Pro/E图2基于MFC开发的对话框示例5结论本文详细介绍了利用MFC资源和Pro/Toolkit 库函数,在Visual C+610的集成环境下二次开发Pro/E,解决了以往无法在VC环境下方便地利用MFC开发Pro/Toolkit程序的问题1利用本文方法,使Pro/E的二次开发与基于Windows和MFC的开发完全相同,大大降低了开发难度,提高了开发效率、灵活性和质量1参考文献1Pro/Toolkit Users GuideM1Needham:Parametric Tech2nology Corporation,20012Lai Chaoan,Li Zhennan,Sun Y anming,et al1The key t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋租赁税费承担合同协议合同二篇
- 2026年企业培训服务采购合同三篇
- 完善各项采购制度
- 医院采购部门规章制度
- 加大绿色采购制度
- 医院集中带量采购规章制度
- 家具商场采购管理制度
- 半天妖烤鱼采购制度
- 题型七 有机化合物-高考化学二轮复习题型归纳与解题技巧
- 2025 奇妙的植物呼吸作用实验作文课件
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 法拍司辅内部管理制度
- 高中数学三年教学规划
- 保卫科部门绩效考核标准
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 数字化转型战略规划纲要
- 数字化全过程成本管理
- 二级烟草专卖管理师理论考试题库
- 2024年全国中学生生物学联赛试题含答案
- DL∕T 5157-2012 电力系统调度通信交换网设计技术规程
评论
0/150
提交评论