合机床与自动化加工技术.pdf
收稿日期2004 - 11 - 24 作者简介杨萍1964 - ,女,黑龙江方正人,兰州理工大学机电工程学院副教授,材料科学与工程学院博士研究生,主要研究方向为机械CAD/ CAM、 机器人机构设计及计算机仿真等。 文章编号1001 - 2265200506 - 0100 - 02 基于Pro/ E平台标准零件库的二次开发 杨萍,陈晓东 兰州理工大学 机电工程学院,兰州 730050 摘要文章介绍了以Pro/ E 2001为开发平台,VC 6.0为开发工具,利用Pro/ T oolkit工具箱提供的程序用户接口开发符合 我国标准的标准零件库,并以轴承为例,详细介绍标准零件库的开发过程。 关键词二次开发Pro/ E;轴承零件库;参数化设计 中图分类号TP391.72 文献标识码A Secondary Development of Standard Part Library Based Pro/ E Plat Y ANG Ping , CHEN Xiao2dong College of Mechano2Electronic Engineering , Lanzhou Univ. of Tech. , Lanzhou 730050 , China Abstract The article regards Pro/ E 2001 as the developing plat , VC 6.0 as the developing instrument and uses Interface of pro2 cedure user offered by Pro/ T oolkit toolbox to develop the standard part library according with my country standard ,and takes bearing as an example , introduces the development course of the standard part library in detail . Key words secondary development ; bearing part library; parametric design 0 引言 Pro/ Engineer简称Pro/ E ,是美国PTCParametric Technology Corporation公司开发的参数化软件,该软件是一个用于产品的 三维模型设计、 加工、 分析及绘图的CAD/ CAM/ CAE软件系统, 被广泛用于机械、 汽车、 航天、 电子和工程机械等行业。是当今 世界上应用最广泛的三维CAD软件之一。Pro/ E软件提出的单 一数据库、 参数化、 基于特征和全相关性的概念改变了机械 CAD/ CAM/ CAE的传统观念。 但是国外设计观念、 标准和国内的差异,使得该软件在进行 具体产品设计时感到很不方便;另外,标准件在产品设计中会反 复应用,如果每次应用都从基础建模开始,重复性工作量很大, 因此,开发符合我国标准的标准零件库是Pro/ E软件二次开发 必不可少的部分。既可解除繁琐的重复绘制工作,又能保证标 准件的重复绘制的精度,提高设计效率。本文就此问题进行基 于Pro/ E平台三维零件库的开发。 1 基本理论 Pro/ T oolkit是Pro/ E软件系统提供的用户化工具箱,该工具 箱为用户程序及第三方程序提供了与Pro/ E的无缝连接。用户 程序及第三方程序都是用C语言编写的,Pro/ T oolkit提供了一 个C的函数库,该函数能够使用户及第三方的应用程序访问 Pro/ E数据库和应用程序[1]。 弹出式对话框是目前最先进最流行的一种人机交互界面, 能向用户提供图形与文字共存的可视化环境,使操作更为简单 和快速。采用MFCMicrosoft Foundation Class设计对话框界面是 目前最流行的方法之一,能够直观地反映界面布局,修改调试方 便。本文研究并开发了Pro/ T oolkit与MFC的接口,利用MFC的 强大功能实现对话框的开发与数据库的访问。 图1 接口方案 在Pro/ E系统中调用MFC 对话框所需解决的关键问题是 实现Pro/ E系统、Pro/ T oolkit应用 程序与MFC对话框三者之间的通信,本文提出采用动态链接库 DLL方式实现三者之间的通信[2],因为这样通信是通过直接 的函数调用实现的,所以有执行速度快的优点,接口方案如图1 所示 2 标准零件库的开发 本文通过开发轴承库来说明一个完整的Pro/ E标准零件库 的二次开发过程,在Pro/ E中产生MFC对话框,接受用户的输入 信息,然后生成三维实体。 开发工具用Microsoft Visual C 6.0 ,具体实现步骤如下 2. 1 创建轴承参数化三维实体模型 在Pro/ E中建立向心球轴承的参数化模型,此模型中轴承 外圈直径、 轴承内圈直径、 轴承宽度是可驱动参数,其它尺寸可 以通过在草图中加入关系式被这3个参数约束,这样就可以根 据这3个基本参数的改变生成具有不同参数尺寸的模型,调试 无误后保存作为参数化设计系统的原始模型。 2. 2 创建动态链接库MFC.DLL 利用MFC AppWizarddll ,工程类型选用MFC的常规DLL Regular Dll Using Shared MFC Dll ,生成一个Dll工程,插入资源 对话框,增加必要的成员变量和成员函数并定义导出函数de2 clspecdllexport BOOL BearingLoadDlg ,编译生成MFC.DLL用来 完成参数化设计的交互[3]。 001 工艺与装备组合机床与自动化加工技术 2. 3 创建Pro/ T oolkit应用程序 利用CwinApp类来生成Dll工程,工程类型同上,生成一个 Dll工程,然后在这个工程中加入Pro/ T oolkit程序,主要是修改 user initialize函数,在这个函数中添加菜单和菜单响应函数[4]。 extern”C”int userinitialize { . . . . . . ProMenubarMenuAdd ”library”,”library”,”Utilities”, PRO B TRUE, MsgFile ;/ /添加菜单条 ProMenubarmenuMenuAdd”library”,”bearing”,”bearing”, NULL , PROBTRUE, MsgFile ;/ /添加下级子菜单 ProMenubarmenuPushbuttonAdd”bearing”,”ball bearing”,”ball bearing”, ”Adding bearing”, NULL , PROBTRUE, Bearid , MsgFile ;/ /添加子菜单中的动作按钮 ProActionAdd”ball”, uiActFn load Dlg ,ui2 PrioDefault ,AccessAvailable , PROBTRUE,PROBTRUE,/ /设置 菜单按钮动作函数 . . . . . . } 定义菜单按钮动作函数 void loadDlg { . . . . . . BearingLodaDlg ;/ /调用导入函数 ProMdlRetrive“D \ part \ bearing. prt”, PRO MDLPART, / /将已建的轴承参数化模型调入内存 ProMdlIdGetpart ,/ /获得当前模型标识ID . . . . . . / /省略新参数值设置 ProSolidRegenerateProSolidmodel ,PROBTRUE ;/ /模 型再生 . . . . . . } 在程序编译前,要对VC的系统环境进行设定 2.3.1 在工程里设置库文件的环境,方法是 Project setting link ,在对象/库模块里加入prodevdll.lib、pro2 tkdll.lib、wsock32. lib、mpr. lib库文件,如图2所示,并将Force 设置为强制输出。 图2 设置库文件环境 2.3.2 设置库文件路径,方法是 T ool→Option→Direction在 “显示目录为” 下拉列表中选择 “include file” 中加入库文件 “. . . . . . PROTOOKIT/ INCLUDES” 一 项,如图3所示,设置Pro/ T oolkit头文件所在的文件夹。 图3 设置库文件路径 2. 4 编写资源文件 程序中用到的菜单信息文件应保存在PTC目录下的text \ usascii中,文件内容如下 library library . . . . . . bearing bearing ball bearing ball bearing . . . . . . 2. 5 编写注册文件 编写注册文件protk. dat ,内容如下 NAME ch20 CFILE . \ lizi \ ch20 \ Release \ ch20. dll TEXTDIR . \ lizi \ ch20 \ Release \ text STARTUP dll ALLOWSTOP TRUE DELAYSTART TRUE REVISION 2001 END 2. 6 程序的注册和运行 程序的运行关键是dll在Pro/ E中的加载 1启动Pro/ E ,将工作路径working directory改为包含 ch20. dll文件的路径; 2加载该dll文件,其过程是Utilities→Auxiliary Applica2 tions. . .→Register. . .→ protk. dat→Start ,注册成功则新菜单便显示出来,如图4 所示 运行ball bearing弹出对话框,如图5所示 在对话框中输入相应的参数就可以生成所需的零件。 3 结束语 本系统在Win2000下运行,以Pro/ E 2001为开下转第107页 101 2005年第6期 工艺与装备 / /建立NC文件并打开 { . . . . . . . . . docloca. . . / /粗车外形的后置处理函数 . . . . . . . . . . . . . . . . } ifEndProcess. . . . / /加工计划文件结束 {return break;}} fileplan. . . . . close ;/ /关闭文件} STDIMPComDobackinterface docloca. . . . . {whilereadcloca. . / /读取刀位点文件的数据 {filenc. . . ;/ /创造NC文件并打开 ifrownum. . . . . ./ /调用rownum. . . . 函数进行行号处 理 {fileopen. . . . ;/ /调用fileopen. . . . 函数打开对应的 刀位点文件zxradixpoint ;/ /进行z和x坐标的小数处理 CPointxyxdouble x ,double y ,double z {sx x;sy y;sz z} ; . . . . . . . . . . . . . . . ikradixpoint ;/ /小数编程模式下的坐标处理 find ⋯ ;/ / 根据特征值到数据库中查找G代码和M代码, 取出指令 inherit . . . . . ;/ /进 行 续 效 指 令 的 处 理circlechuli . . . . . . ;/ /进行圆弧处理 OutputNCfile. . . . . . . . . ;/ /输出NC文件 fmstchuli. . . ;}/ /进行工艺总处理 else{/ /如果rownum. . . . . .失败则重新调用readcloca . . }} endclocafile. . ;/ /刀位点文件结束 closeclocafile. . ;/ /关闭刀位点文件 . . . . . . . . . . . . . . . . . } 在docloca中,先调用readcloca读取刀位点文件的数 据,调用rownum函数进行行号处理,调用xzchuli进行坐 标处理,如果是小数编程调用zxradixpoint和ikradix point进行坐标的小数处理,调用find函数 ,根据特征值到 数据库中查找G代码和M代码,取出指令,用findcodeg和 findcodem将指令记下,调用inherit 函数进行续效指令的处 理,如果查找的G指令是圆弧插补的指令 G02 或G03 ,调用 circlechuli函数进行圆弧处理,最后再通过调用fmst chuli函数向NC程序中添加辅助加工参数。 4.3 客户机程序实现 和在服务器方一样,加入IDL文件,再在客户机上建立与接 口文件中方法同名的函数,这样,当客户机对系统提出相应的要 求时,系统能自动地到服务器上去寻找对应的实现函数。其代 码示例如下 . . . . . . . . . . hResult CoCreateInstanceCLSIDDoback ,NULL ,CLSCTX RemoteSever ,IIDIDoback ,PPVOID pIDoback - doback. . . . . . . ;/ /客户端执行后置处理 5 结论 本文针对制造行业对分布式计算要求的日益提高,提出了 一种基于COM/ DCOM的制造资源分布式集成系统方案。该系 统具有维护性好、 扩展性好、 模型重用方便、 适应多平台、 可进行 分布式处理的特点。随着仿真技术水平的不断提高,分布式技 术的优势就会更加突出,它是仿真软件业的发展的必然趋势。 [参考文献] [1] [美]Corry ,Mayfield ,刘云,孔雷译. COM/ DCOM编程指南 [M]1 北京清华大学出版社,2000. [2 ] [美] Randy Abernethy著,汪浩译 1COM/ DCOM技术内幕 [M].北京电子工业出版社,2000. [3] [美]Jim Maloney著,田雨译 1Visual C 6 DCOM开发指南 [M]1 北京清华大学出版社,2000. [4]希望图书创作室 1VISUAL C 6. 0技术内幕 1 北京北京 希望电脑公司,1999.编辑 赵蓉 上接第101页 图4 新菜单 图5 弹出式对话框 发平台,VC 6. 0为开发工具,利用Pro/ T oolkit工具箱提供的 程序用户接口开发了符合我国标准的标准零件库,提高了设计 效率和设计精度。 [参考文献] [1]李世国. Pro/ T oolkit程序设计[M].北京机械工业出版社, 20031 [2]赖朝案,李振南,孙延明,等. Pro/ E二次开发的关键技术 [J ].计算机应用,2001 ,30 1 43~451 [3]张继春.二次开发实用教程[M].北京北京大学出版社, 2003. [4]金涛,陈敏. Pro/ Engineer软件的二次开发技术[J ].昆明理工 大学学报,2001 ,2631编辑 赵蓉 701 2005年第6期 管理技术