介绍了在UG软件环境下,根据神垫钣金零件平面图生成衬垫三维零件模型和饭全折弯展开计算,并通过UG OPEN/API提供的钣金件二次开发函数和c++语言实现了谈衬垫三雏模型的UG二次开发程序,实现了钣金零件的参数化建模,提高设计效率。
钣金是针对金属薄板(厚度通常在6mm以下)的一种综合冷加工工艺,包括剪、冲、切、复合、折、焊接、铆接、拼接、成型(如汽车车身)等,其显著的特征就是同一零件厚度一致。随着材料科学与冲压制造技术的发展,钣金零件在汽车、船舶、航空航天等领域的应用越来越广泛。
UnigraphicsNX是美国UGS公司开发的集CAD/CAE/CAM/CAPP/PDM于一体的数字化产品开发综合软件解决方案。它融入了行业内最广泛的集成应用程序,涵盖了产品设计、工程和制造中的全套开发流程,使客户在一个完全数字化的环境中,构思、设计、生产和验证其离散制造产品,并获取他们的产品定义。随着钣金件的用途越来越广泛,UG软件设置了钣金模块,为客户提供了全面的钣金零件解决方案。
目前关于通用标准件的UG平台二次开发研究比较多,但是针对钣金件的二次开发研究很少。钣金零件有着区别与普通标准件的钣金制造工艺,在编写钣金零件二次开发程序的时候,要根据其制造工艺中工序依次选择函数,不同的制造工序要确定的函数变量很多,操作起来较普通零件的二次开发更为复杂。鉴于这种情况,以汽车制动器上制动块衬垫为例,从实际工程应用出发,根据零件平面视图建立零件三维模型,并研究UG平台上该衬垫钣金件的二次开发。
1 衬垫的三维建模
下面以汽车制动器衬垫为例,介绍在UG软件中如何创建该零件的三维模型和编写二次开发程序,整个工作流程如图1所示,汽车制动器衬垫二维图如图2所示。
图1 工作流程图
图2 衬垫二维图
首先仔细分析该衬垫的平面图,分析时将各个方向视图联系起来考虑,通过简单的分析得出,该零件为钣金件。零件加工主要是通过在金属薄片上采用冲裁和折弯成形。因此用UG软件建立衬垫钣金模型的时候,首先要知道金属薄片的尺寸,创建样料特征,UG软件中称为tab特征,也就是指钣金冲压前的样料,然后在UG软件环境下以人机交互方式在该样料上采用冲裁和折弯命令,最后得到需要的衬垫钣金件三维模型。创建该衬垫三维图工作流程如下图3所示。
图3 人机交互创建三维模型流程图
钣金在折弯时,材料外层受拉应力,内层受压应力作用,内外层之间有一层材料既未受拉应力作用也未受压应力作用的过渡层,称为中性层。中性层就是计算展开长度的基准,它的位置与变形程度有关。当弯曲半径较大、折弯角度较小时,变形程度较小,中性层位于靠近板料厚度的中心处;当弯曲半径变小、折弯角度变大时,变形程度随之增大,中性层位置逐渐向弯曲中心的内侧移动,中性层到板料内侧的距离用)L表示。展开长度的基本计算公式:L=A+B+K,其中L:展开长度;A:轮廓尺寸;B:轮廓尺寸;K:补偿量。具体计算参照下表。
表
通过对图纸的分析,不能直接得出衬垫基体tab特征的尺寸,在UG软件中选择材料steel。折弯许用半径计算公式(Padius+(Thickness*0.44))*rad(Angle),这里结合钣金成形与展开互逆的特点和UG软件提供的强大钣金建模功能,可以采用逆向工程的方法,首先创建—个图中厚度的试验tab特征,按图中折弯参数对试验的tab特征进行折弯,然后展开,UG会自动计算折弯展开尺寸,计算公式见表1,这样就可以得到折弯那部分展开后的尺寸,最后将各个折弯部分展开时的尺寸和图中提供的相关尺寸结合起来计算,就可以得到需要的tab特征尺寸,从而建立衬垫基体tab特征。计算衬垫钣金折弯部分展开后尺寸有两种方法,手工计算和利用UG软件自动计算尺寸。采用不同方法计算展开尺寸对后续二次开发编程有影响,手工计算在程序中需输入相关尺寸和计算公式,而利用UG软件自动计算尺寸则可以建立一系列折弯角度的钣金试样数据库,编写二次开发程序时调用数据库中对应折弯角度的数据信息即可。衬垫钣金件展开图如图4所示。在展开图上相应位置进行折弯和弯边操作,最终得到零件的三维图如图5所示。
图4 村垫展开图
图5 衬垫三维模型
2 衬垫三维模型的二次开发程序实现
UG OPEN/API是UG.与外部应用程序之间的接口,是UG/OPEN提供的一系列函数和过程的集合。用户可以通过C++语言编程来调用这些函数和过程,并且几乎可以实现UG系统的所有功能,它是UG/OPEN最常用的开发工具。
UG二次开发就是指通过第三方程序利用UG软件提供的接口,实现对UG内部功能的调用,或者实现信息的自动获取和设置等功能。主要目的是为了完成某种自动化操作。UG/OPEN针对UG平台下钣金件的二次开发提供了大量的函数。这些函数分别对应UG软件中人机交互模式下的钣金建模命令。利用程序生成衬垫钣金件,可以实现该零件的参数化建模,从而可以建立这一类结构相同、尺寸不同的衬垫钣金件模型参数数据库,再通过UG提供的界面开发工具,编写这类零件参数化建模人机交互界面,可以开发这类衬垫零件参数化建模模块,并集成到UG软件中,将大大提高该类零件的三维建模效率,缩短设计时间,对实际工程应用具有重要意义。
利用UG软件提供的UG OPEN/API函数,在C++语言环境下实现程序生成该衬垫的三维模型,重点和难点在于UGOPEN/API函数的选用和函数变量赋值。选用UG OPEN/API函数需要参照衬垫平面展开图和该村垫的钣金成型过程,函数变量的正确赋值需要了解衬垫钣金件成型工艺参数。分析衬垫零件特征、选用二次开发函数利用CH语言编程实现该衬垫的三维建模工作流程如图6所示。
图6 衬垫二次开发流程图
部分程序代码如下
//定义数据
double a1=2,a2=2.8,…a18=4.3;
//创建钣金tab特征
char*taper_angle="0";
char*polgn_obj_Length=new char;
sprintf(polgn_obj_Length,"%f"。,0.3);
char*limit[2]={"0",polgn_obj_Length};
double point[3]={0,0,0};
double direction[3]={O,0,1};
UF_FEATURE_SIGN sign=UF_NULLSIGN;
uf_list_p_t features;
uf_list_p_t extruded_list;
UF_MODL_create_list(&extruded_list);
UF_MODL_put_list_item(extruded_list,line1);
UF_MODL_put_list_item(extruded_1ist,line2);
……
UF_MODL_put_list_item(extruded_list,line18);
UF_MODL_create_extruded(extruded_list,taper_angle,limit,point,direction,sign,&features);
UF_MODL_delete_list(&extruded_list);
//创建钣金折弯
line_coords.start_point[0]=4.05;
line_coords.start_point[1]=0;
line_coords.start_point[2]=0;
line_coords.end_point[0]=4.05;
line_coords.end_point[1]=15.3;
line_coords.end_point[2]=0;
tag_t line25;
UF_CURVE_cmate_line(&line_coords,&line25);
UF__MODL_smbend_data_t UserData;
UserData.base_face=features_faces[5];
UserData.app_curve=line25;
UserData.app_curve_type=UF_SMBEND_BEND_CENTERLINE:
sprintf(UserData.angle,"90.0");
UserData.angle_type=UF_SMBEND_BEND_ANGLE;
sprintf(UserData.radius,"1.0");
UserData.radius_type=UF_SMBEND_INNER_RADIUS;
UserData.bend_dire=UF_SMBEND_BEND_DIR_OPPPOSITE_SIDE;
UserDatastat_side=UF_SMBEND_STAT_SIDE_0PPOSITE_SIDE;
sprintf(UserData.baf"(Radius+Thickness*0.44)*rad(Angle)");
tag_t bend_tag;
UF_MODL_create_smbend(&UserData,&bend tag);
最终生成的零件如图5所示。
3 结束语
从实际工程应用出发,根据汽车制动器衬垫的二维图纸,分别用UG软件和二次开发编程实现了该钣金零件的三维建模,零件三维模型更加形象和直观,极大方便制造人员读图与识图。通过C++程序语言和UG OPEN/API开发工具,可以将该衬垫的一些主要尺寸参数化。并使用UG软件提供的UIStyle对话框技术和Menuscript菜单技术编写衬垫菜单尺寸界面,从而可以制作这一类结构的衬垫零件参数数据库,将大大缩短这类结构的衬垫设计时间和提高效率,对工厂钣金设计与制造具有实际的意义。


