1、基于 ProE 二次开发实现复杂钣金件的展开设计2005 年第 3 期工程图学JOURNALoFENGINEERINGGRAPHICS2005No.3基于 Pro/E 二次开发实现复杂钣金件的展开设计杨萍,韩飞,张淑珍(兰州理工大学,兰州 730050)摘要:为了解决无法按正常方式展开的复杂钣金件的设计 ,展开及生成二维工程图的效率问题,基于 Pro/E 软件建构了钣金件的实体模型及其工程图 ,以 Pro/E 提供的二次开发工具 Pro/TOOLKIT 为基础,通过建立参数关系和编写控制程序完成了参数的获取,传递及修改,实现了只需在 UI 对话框中输入参数而不需修改源程序代码便可以实现多种相似
2、钣金件的设计,展开及其二维工程图的生成和输出.关键词:计算机应用;钣金件展开;Pro/E 二次开发;Pro/TOOLKIT 开发包中图分类号:TP391.72文献标识码:A 文章编号:10030158(2005)03 015706在矿山,冶金,石油,交通,国防等各部门建设中,经常遇到金属板构件.这些构件形状万千,在制造时须先在金属板上做出其平面展开图,然后才能剪裁制作.平面弯曲钣金件设计及展开相对较为简单,利用 Pro/E 的 Pro/SheetMetal模块很容易实现其展开.但在处理像三通管,圆管直交方锥管等相贯体的展开时,Pro/SheetMetal却无法按正常的方式来进行展开.对于像三通
3、管这样的无法按正常的方式展开的钣金件,可以通过二次开发来实现其展开.目前,基于 AutoCAD 二次开发的钣金件展开软件已经存在,但这些软件存在如下缺点:首先,灵活性比较差;其次,基于二维软件 AutoCAD开发,由于二维软件的学习周期较长,操作性能较差,对设计者要求较高;当修改一个参数时,相关视图需要全部修改,设计者容易遗漏,出图时间比较长,而且图纸错误要一个个校对且很难发现,因此,使二维软件的发展前景受到了很大的限制.对于全参数化的三维造型软件,其简单易学,图形比较直观且容易发现问题,当要修改时只需更新三维模型,工程图的各个视图都可以自动更新,工程图中预先标好的尺寸也可以自动更新,绝大多数
4、尺寸不用重新检查,需要添加的尺寸也比较少,出图时间较短,校对容易,这些优点使得三维造型软件得到了广泛的应用,特别是三维造型软件 Pro/ENGINEER 在企业中应用甚广.所以,可以通过对三维造型软件Pro/ENGINEER 进行二次开发来实现钣金件的自动建模及展开,即根据用户输入的参数,系统动态地,自动地将模型创建出来,以实现提高工作效率和生产效率的目的.作者将以三通圆柱管为例说明如何通过Pro/E 二次开发实现复杂钣金件参数化展开设计.1 基本原理对于类似三通管的复杂钣金件在实际生产中都是通过两段圆管焊接而成的,这要分别设计,且在设计和下料时要考虑两者的联系,否则收稿日期:20040331
5、作者简介:杨萍(1964 一), 女 ,黑龙江方正人,副教授,博士研究生,主要研究领域为机械 CAD/CAM,机器人机构设计及计算机仿真等.工程图学 2005 生就会对精度造成很大的影响.作者利用 Pro/E 软件做出三维模型并使三维模型与程序控制相结合,即在已创建的钣金件模型的基础上进一步根据钣金件的设计要求建立一组可以完全控制三维模型形状和大小的设计参数;模型产生的整个过程都会被 Pro/E 系统中的一个宏文件记录下来,利用能控制并能修改宏文件的“工具“ 程序来完成参数的检索,修改和根据新的参数值生成新的三维钣金模型及实现其展开.这种方式是在已有的三维钣金模型的基础上,通过修改设计参数派生
6、出新的三维模型,因此,将此方法称为钣金件参数化展开设计.其实现的过程如图 l 所示.钣金件样板 Il 派生的钣金件导入模型中的参数Pro/Toolkit 设计程序参数修改再生图 1 钣金件参数化设计实现过程2Pro/ENGINEER 软件二次开发技术Pro/ENGINEER 软件是美国参数化技术公司PTCfParametricTechnologyCorporation)1989 年推出的产品,它不仅具有强大的 CAD/CAE/CAM一体化的三维产品设计功能,而且还为用户进行二次开发提供了用户化工具箱 Pr0 厂 rOoLKIT.该工具箱为用户程序,软件及第三方程序提供了与Pro/E 的无缝连接
7、】,【.Pro/TOOLKIT 提供了一个 C 的函数库,该函数库能够使用户或第三方的应用程序以一种可控制的,安全的方式访问Pro/E 的数据库.从某种程度上来说Pr0 厂 rOOLKIT 是 Pr0/E 应用程序开发者的 API(ApplicationProgrammingInterface 应用编程接口).对于几何特征的自动建模,Pro/E 为用户提供了以下几种二次开发方法:(1)特征描述法每一个特征由不同的特征元素树(featureelementtree)来定义.在程序中对每个特征元素树的全部变量赋值一次,就可以产生一个特征,多个特征的累积就形成产品模型.特征元素树包含的信息分为 4 类
8、:特征本身的所有选项和属性.如特征类型名称,隆起或切槽特征等的深度计量方式,孔的放置位置方式等;特征与已存在的几何实体的参考关系;用于构造特征的平面图形的起始位置;所有的尺寸值.目前这种方法还不成熟,因为它有以下 3 个缺点:第一,要由程序产生模型,程序必须包含产品模型的所有信息,从底层起由程序构建模型,编程量十分大.第二,因为每种特征由不同的特征元素树来描述,所以编程难度大,而且所编程序非常难以理解.第三,并非所有的特征都可以用这种方法产生.(2)族表法这种方法的步骤是:预先手工构建产品模型,把它作为族表的类属件(genericpart),然后在族表中定义各个控制参数来控制模型的形状大小,这
9、样就可在程序中通过改变各个参数的值来得到所需要的衍生件.这个衍生件的产生是独立存在的,不需要为它定义参考基准.(3)用户自定义特征(UserDefinedFeature)法与族表法相同之处是同样要预先手工构建产品模型.模型创建后定义要包含的几何特征,参考基准,可变尺寸以及可变尺寸的记号(symbo1),然后将这些信息存为一个后缀为.gph的文件.这样就可以在程序中通过这个文件来改变可变尺寸的值,产生所需的衍生件.这种方法所编的程序与手工建模过程比较相似,易于理解且编程较容易.(4)Pro/Program 法Pro/Program 是 Pro/E 提供的一个可程序化工具,有简单的使用语法,对于每
10、一个模型,它会将模型树(Modeltree)中的每个特征的详细信息记录下来,用户可以根据设计需要来编辑该模型的 Program,使其作为一个程序来工作.通过运行该程序,系统可以以人机交互的方式控制系统参数,特征显示及特征的可变尺寸等.对于复杂钣金件的参数化展开设计,采用先手工构建产品模型,然后通过 Pro/Program 法来第 3 期杨萍等:基于 Pro/E 二次开发实现复杂钣金件的展开设计进行参数的获取,修改,实现模型的再生.3 钣金件模型样板的建立3.1 三维模型的建立为了达到输入不同的参数可以产生不同类型的三通管(如等径直交三通管,等径斜交三通管,不等径直交三通管,不等径斜交三通管)的
11、目的,建立如图 2 所示的参考平面和基准轴.2 作平向DTM1 平面垂直于 GHT 面且过 FRONT面和 TOP 面的交线 A.1,与 FRONT 面成一夹角;DTM2 面平行于 DTM1 面;线 A.2 为 RIGHT 面和 TOP 面的交线.以 FRONT 面为作图平面建构主管,并使主管的轴线与交线 A.2 重合;以 DTM2 面为作图平面建构斜管,并使斜管的轴线始终与线 A.2 相交.将两管相贯穿的部分用“剪裁 “的方法裁掉.完成三通管钣金件的实体模型设计【j.如图 3 所示,保存文件名为 santong.prt.图 3 三通管DTM2在图 2 所示作图平面上分别建构独立的主管和斜管.
12、以 DTM2 面为作图平面,用与斜管内圆重合的圆(圆心落在交线 A.1 上)剪裁横长管;建构出横长管的实体模型,保存文件为zhuguan.prt;以 FRONT 面为作图面,用与横长管的外圆相重合的圆(圆心与交线 A.2 重合)剪裁斜管,建构出斜管的实体模型,保存文件为xieguan.prt.如图 4 所示:图 4 主管和斜管以 TOP 面为作图平面,在主管上作RegularRip(规则缝)特征,将主管用一条直缝切开,再用 Unbend 命令将主管沿 Rip 特征处展开;以同样的方法将斜管展开.将主管和斜管的展开图转换到同一个二维平面图中,保存为unbend.drw.Pro/ENGINEER
13、系统是同一数据库,所以当对三维模型进行修改时,二维图随之自动修改.如图 5 所示.(二)图 5 展开件二维平面图3.2 建立参数关系在 Pro/ENGINEER 中创建草图,建立模型时,系统将会以 d0,d1,d2等默认的符号给特征的约束参数命名.约束名是由 Pro/ENGINEER系统自动创建的,其值控制模型的几何尺寸和拓扑关系,与用户建立的参数无关.要使用户建立的设计参数能够控制模型,必须使二者相关联,工程图学 2005 丘即利用 Pro/E 的关系式(relations)功能创建关系式,使系统的约束参数名与设计参数相关联【钔.表 1 所示为 santong.prt 零件的约束参数名,用户
14、建立的设计参数名,UI 对话框 rUserInterfaceDialogBoxes)中对应的输入框元件名称(在资源文件.res 中定义) 及用户建立的关系式.表 1Santong.prt 零件的参数及关系式表 2 所示为 zhuguan.prt 零件的约束参数名,设计参数名,UI 对话框中对应的输入框名称及关系式.表 2Zhuguan.prt 零件的参数及关系式表 3 所示为 xieguan.prt 零件的约束参数名 ,设计参数名,UI 对话框中对应的输入框名称及关系式.为了实现参数值的一次性输入及其参数一致性,在控制程序设计时让设计参数 SD0,ZD0,XD4 同时调用 Zdia 输入框中的
15、值 ;让 SD1,ZD1调用 Zltlength 输入框中的值;让 SD2,ZD2 调用 Zrtlength 输入框中的值 ;让 SD3,XD0 调用Xdia 输入框中的值 ;让 SD4,XD1 调用 Xlength输入框中的值;让 SD5,ZD5,XD5 调用 Xangle输入框中的值;让 SD6,ZD3,XD2 调用Thickness 输入框中的值;让 SD7,ZD6,XD3调用 Eccentricity 输入框中的值 ,通过上述表中的关系式,使设计参数驱动约束参数,达到模型再生的目的.表 3Xieguan.prt 零件的参数及关系式4 程序设计4.1 对话框设计利用 Pro/TOOLKI
16、T 提供的 UI 对话框技术,在 Pro/TOOLKIT 应用程序中设计与 Pro/E 系统本身具有的对话框相似风格的人机交互界面.如图6 所示.进入三通钣金件展开界面图 6(a)后,输入相关参数,点击预览可以在 Pro/E 窗口中看到根据输入参数值再生的三通图,点击确定按钮弹出如图 6(b)所示对话框 ,点击预览可以看到两管的展开图,点击确定按钮就会弹出如图 6(c)所示的对话框,然后选择是否完成二维图保存和输出.4.2 控制程序的设计以 Pro/E 自带的 Pro/TOOLKIT 开发包为工具,以 VC+6.0 为编译平台来编写控制程序,实现用户程序与 Pro/E 的无缝连接.在编辑控制程
17、序时,要着重注意两个函 JI】:userinitialize()和 user 函数. 其中前者是_terminate()Pro/TOOLKIT 应用程序的初始化函数,主要用来对同步模式(synchronous-mode1)的 Pro/TOOLKIT应用程序进行初始化,任何同步模式的应用程序要在 Pro/E 系统中加载都必须包含该函数,其作用相当于 C 程序中的 main()函数;后者是 Pro/E终止同步模式的 Pro/TOOLKIT 应用程序时调用第 3 期杨萍等:基于 Pro/E 二次开发实现复杂钣金件的展开设计 161的函数.在编写控制程序时,关键是参数的传递和对话框中按钮的动作函数.下
18、面是部分参数传递过程函数和对话框按钮的动作函数代码【】:(a)(b)(c)图 6 对话框santongmodel()i数,将样板调入内存并显示/voidsantongmodel0ProMdlmodel;ProMdlRetrieve(L“santong.prt“,PRO_PART,mode1);/将零件调入如内存ProMdlDisplay(mode1);/显示零件)函数 santong0,将参数化设计对话框调入内存并显示,对话框名为 stdialog,对话框文件名为stdialog.res|voidsantongOchardialogname=“stdialog“;intstatus1;,木将对
19、话框调入内存/ProUIDialogCreate(dialogname,dialogname);,木设置 ok 按钮的动作函数,使该按钮调用函数nextok*/ProUIPushbuttonActivateActionSet(dialogname,“ol(-,nextok,NULL);/设置其他按钮的动作函数厂木显示激活对话框,接受用户交互/ProUIDialogActivate(dialogname,status1);/牛释放对话框内存/ProUIDialogDestroy(dialogname);厂木函数 nextok,功能为将对话框中输入的数值赋给相应的参数,并再生模型/voidnextok(chardialog,charcomponent,ProAppDatadata)