基于Pro/E二次开发的自动装配技术
2016-03-26杭祖权北京航天光华电子技术有限公司北京100854
杭祖权(北京航天光华电子技术有限公司,北京 100854)
基于Pro/E二次开发的自动装配技术
杭祖权
(北京航天光华电子技术有限公司,北京100854)
摘要对于企业的系列化产品来说,数量庞大的模型装配工作是一个重复而烦琐的过程。以Pro/E二次开发工具包Pro/Toolkit为基础,采用C语言编程,介绍了两种常用的装配约束的二次开发过程,从而实现了模型的自动装配,提高了产品设计效率。
关键词Pro/E,Pro/Toolkit,二次开发,自动装配
引言
Pro/E是当前航天、航空、工程机械等领域应用最为广泛的CAD/CAE/CAM一体化软件之一,Pro/Toolkit是Pro/E自带的二次开发工具包。企业可以根据自己的产品特点,采用Pro/Toolkit编写C或C++语言程序代码,通过软件开发平台,将生成的应用程序无缝集成到Pro/E中,扩展其功能。
由于企业系列化产品的零件模型数量庞大,装配过程重复且烦琐,装配中多为“对齐”和“插入”两种装配约束,可以通过Pro/E二次开发实现零件模型的自动装配。本文介绍了“对齐”和“插入”等两种常用的装配约束的二次开发过程,按照其实际装配的约束思想,以Pro/Toolkit函数库为基础,编写C语言程序代码,采用VS2008进行编译和连接,创建了可以在Pro/E中运行的动态连接库(DLL文件),以实现零件模型的自动装配。
1 常用装配约束及其二次开发实现
1.1常用约束类型及完全约束集
在Pro/E零件模型装配中,通常以用户定义的一组约束集来表示两个零件的相互约束关系,Pro/E中提供的约束有“配对”、“对齐”、“插入”、“坐标系”、“相切”等约束类型,其中“对齐”和“插入”在企业的系列化产品模型装配中最为常用,可组合成两种常用的完全约束集,一种为三对面分别对齐的完全约束集,另一种为一对面对齐与轴孔插入结合的完全约束集。
三对面分别对齐的完全约束集是指在两个装配零部件模型中分别定义三个相互垂直的面,并将对应的两个面以对齐的方式进行约束,形成包含三个“对齐”约束的一组完全约束集,如图1(a)所示的平面“D_TOP_A1”、“D_ FRONT_A1”、“D_RIGHT1_A1”,图1(b)所示的平面“A1_TOP_B1”、“A1_FRONT_B1”、“A1_RIGHT1_ B1”。在零件数量庞大的产品中,按照习惯更改平面名称能够提高工作效率并减少装配中的错误。
图1 定义相互配合的零件的三对对应平面
一对面对齐与轴孔插入结合的完全约束集是指两个装配零部件分别定义相互垂直的平面和圆孔(或中心轴),将对应的平面“对齐”约束,对应的轴孔曲面“插入”约束,形成一组完全约束集,如图2(a)所示的面板平面“PLATENESURFALIGN”和圆周曲面“LEDINSERT”,图2(b)所示的发光二极管平面“SURFALIGN”和圆周曲面“SURFINSERT”,曲面定义方法为对模型属性中的名称项进行修改和添加。
图2 定义相互配合的零件的对齐平面和插入曲面
1.2自动装配的实现
自动装配程序实现的步骤及其所应用的主要Pro/ Toolkit函数有:
(1)将零件添加到组件的初始位置,对应函数ProAsmcompAssemble(ProAssembly owner_assembly,ProSolid component_model,ProMatrix init_pos,ProAsmcomp* feature),其中init_pos为4×4单位矩阵,表示元件的初始装配位置;
(2)初始化约束数组,对应函数ProArrayAlloc(int n_ objs,int obj_size,int reallocation_size,ProArray* p_array);
(3)得到组件基准或组件中用于定位的元件基准,以及装配元件的基准,对应函数ProModelitemByNameInit(ProMdl mdl,ProType type,ProName name,ProModelitem* p_item);
(4)初始化组件的路径或组件中用于定位的元件的路径,对应函数ProAsmcomppathInit(ProSolid p_ solid_handle,ProIdTable memb_id_tab,int table_size,ProAsmcomppath* p_handle)。其中,memb_id_tab表示组件中用于定位的元件的内部特征ID,指向某个特定的零件,该值可通过查看组件中特定元件的特征信息,如该零件为第一个装入的元件组件,该值取-1;table_size表示该零件装入到组件中的层数,具体用法如图3所示。
(5)具体化组件和元件基准,对应函数ProSelection Alloc(ProAsmcomppath* p_cmp_path,ProModelitem* p_mdl_ itm,ProSelection* p_selection);
(6)分配约束空间,以及对装配约束进行赋值,分配约束空间函数为ProAsmcompconstraintAlloc(),设置元件装配类型函数为ProAsmcompconstraintTypeSet(),平面“对齐”约束的值为PRO_ASM_ALIGN,“插入”约束的值为PRO_ASM_INSERT,设置组件平面约束方向的函数为Pro AsmcompconstraintAsmreferenceSet(),设置装配元件平面约束方向的函数为ProAsmcompconstraintCompreferenceSet();
图3 元件路径图及其说明
(7)将一对约束添加到约束数组中,对应函数ProArrayObjectAdd(ProArray* p_array,int index,int n_ objects,void* p_object);
(8)重复步骤(4)~(7),添加其它约束。如果为三对面分别“对齐”约束,将另外两对平面约束添加到约束数组中,可以直接采用if循环函数实现;如果为面面“对齐”与轴孔“插入”结合约束,可以采用switch语句分别添加平面“对齐”约束和轴孔“插入”约束。
(9)将约束数组添加到组件中,使相互装配的两个零件按所定义的约束数组重新定位,对应函数Pro AsmcompConstraintsSet(ProAsmcomppath* component_ path,ProAsmcomp* component,ProAsmcompconstraint* p_ constraints)。
2 实例检验
结合相关文献的研究,根据自动装配实现步骤和Pro/ Toolkit函数,完成了两个应用程序,运行后分别完成指定的零件三对平面“对齐”约束的自动装配,如图4所示,以及面板与发光二极管对应平面“对齐”和圆周面“插入”约束的自动装配,如图5所示。
在此基础上,采用该方法可解决典型转接板类的快速设计问题。
图4 三对平面对齐约束程序运行实例
图5 对齐和插入结合约束程序运行实例
3 结束语
本文基于Pro/E软件自带的二次开发工具包Pro/ Toolkit,实现了零件之间的三对平面“对齐”约束集自动装配,以及面面“对齐”与轴孔“插入”结合约束集自动装配,介绍了自动装配应用程序实现的步骤,以及主要应用的Pro/Toolkit函数,最后采用软件开发平台VS2008进行编译和连接,将自动装配程序集成到Pro/E软件中,并使用实例检验了程序。对于企业数量庞大的系列化产品,采用自动装配能够大幅提高产品模型的装配效率。
参考文献
1林鸿义,殷镜波.Pro/E二次开发在机械自动装配中的应用[J].现代制造技术与装备,2009,(3):97~98
2Parametric Technology Corporation.Pro/TOOLKIT for Pro/ENGINEER Wildfire 5.0入门[M].PTC Technology Corporation,2011
3谢敏理,和丽,许纪倩.Pro/E二次开发自动装配的一种方法[J].现代机械,2006,(1):46~48
4梅启元.Pro/E软件定制开发实现分析[J].电子机工程,2013,29(1):60~64
文章编号:1009-8119(2016)02(1)-0057-02