UG二次开发在折叠门门泵优化设计中的应用.docx
《UG二次开发在折叠门门泵优化设计中的应用.docx》由会员分享,可在线阅读,更多相关《UG二次开发在折叠门门泵优化设计中的应用.docx(18页珍藏版)》请在冰豆网上搜索。
UG二次开发在折叠门门泵优化设计中的应用
UG二次开发在折叠门门泵优化设计中的应用
东风汽车有限公司商用车技术中心客车部车身科郝守海
[摘要]以UG为设计平台,利用UG的二次开发工具UG/OpenGRIP对客车折叠门气动门泵进行优化设计,并建立折叠门与门泵的UG装配模型,进行运动校核。
[关键词]折叠门门泵UG二次开发
1 前言
近年来,我国客车业迅猛发展,为适应激烈的市场竞争,各客车厂家不断推出新车型来满足客户的需求。
同时在客车的设计阶段,要求对车身、底盘进行更多的结构优化分析和动态仿真分析。
设计周期的缩短和工作重点的转移迫使设计者加快客车三维建模速度,提高设计效率。
UG是一个优秀的机械CAD/CAE/CAM设计软件,它基于完全的三维实体复合造型、特征建模、装配建模技术,能设计出任意复杂的产品模型,并提供了CAD/CAE/CAM业界最先进的编程工具集,以满足设计者二次开发的需要。
GRIP(GraphicsInteractiveProgramming)是UG内嵌的专用图形交互编程语言,用户通过GRIP语言编程能够自动完成在UG下进行的绝大部分操作。
2 折叠门门泵设计
目前大多数轻型客车采用折叠式乘客门,其中又有大部分折叠门采用气动门泵给力(折叠门及门泵结构见图2)。
设计时由于门泵布置位置不合理,导致折叠门受力不均衡,经常会出现折叠门关闭不严、门板扭曲、连接板拉裂等情况。
为了解决这些问题,需要对折叠门门泵布置进行优化设计。
在设计时为了确定门泵的位置需要解决以下三个问题:
1)门泵主体相对于折叠门在高度方向上的位置;
2)门泵与折叠门连接的转轴中心B在水平方向上的位置(见图3);
3)门泵支座转动轴心的位置,即图3中A点的位置。
第一点——门泵整体相对于门在高度方向上的位置——需要考虑到以下三点:
(1)连接板固定在门拉手下方,不能与门拉手干涉;
(2)门泵安装在门前座椅的下方;(3)连接板偏上安装对门受力有利,这些在设计时都比较容易解决。
第二点和第三点是相互关联的,连接转轴轴心B位置的不同会导致门泵底座水平转动轴A的位置的变化,两者关联性较强,这是布置门泵的难点所在。
目前设计时,设计者往往需要先确定连接转轴轴心B点位置,然后根据折叠门开启和关闭时的状态推算出门泵底座水平转动轴A的位置。
由于连接转轴轴心B点位置非常不确定,在设计过程中会产生多种结果,为了找到比较理想的布置方式,只能通过多次调节,逐渐缩小范围的方式来确定。
这样手动操作方式需要许多重复工作,设计效率低,且容易导致力的分配不合理。
3 优化设计思路及分析过程
为了改善设计效果,可通过B点位置的渐变来推算出A点位置的变动情况,从而找出两者的最佳位置。
利用UG二次开发工具GRIP语言编程,就可以顺利完成定位任务。
但在编程之前,先要了解一下门泵优化布置思路及运行过程。
该车门泵型号为MB50-170气动门泵(外形尺寸见附页1),泵体活塞直径D=50mm,工作行程S=170mm,压缩时水平转动轴A距连接转轴B为l1=340mm,伸展最大时水平转动轴A距连接转轴B为l2=l1+S=340mm+170mm=510mm。
力的传动效率90%以上。
在气缸工作压力0.8Mpa的情况下,门泵推力计算值如下:
门泵推力
门泵拉动时气压换向,活塞有效面积受活塞杆影响,拉力T略小于推力F。
图1折叠门门泵简图
为了方便各设计变量的论述,在此将折叠门结构进行简化(见图3),O点为折叠门转动轴轴心,B点为门泵与折叠门连接的转轴中心点,A点为门泵水平转轴中心点。
线段L1与主动门平行,且L1到O点的距离为连接板上转轴孔心距O点的距离。
L2为L1绕O点旋转θ(折叠门开启角度)所得,且平行于主动门的开启状态。
B点为折叠门关闭时连接转轴轴心位置,B2点为折叠门开启时连接转轴轴心位置,则两点距折叠门转动轴轴心O点位置相等。
当折叠门关闭时,门泵拉伸,A点与B点最大距离为l2,以O点为圆心,l2为半径作一圆C2,则门泵支座A点必须在圆C2内。
当折叠门开启时,门泵压缩,A点与B点最小距离为l1,以O点为圆心,l1为半径作一圆C3,则门泵支座A点必须在圆C3外。
图2折叠门与门泵结构图
图3折叠门与门泵结构图(俯视)
随着B点在L1线段上逐渐向O点方向移动,圆C2与圆C3之间的关系经过三个阶段,分别是:
两者相交、内切和圆C3在圆C2内部。
分析过程如下:
1)圆C2与圆C3相交:
当连接板上转轴B点距折叠门转轴O点距离较远时,圆C2与圆C3相交,交点为O1和O2。
为了保证门泵正常运行,门泵底座水平转动轴A点必须位于圆C2内,且位于圆C3外。
从左图可以看出,此时门泵底座水平转动轴A点会处于车身外侧或上下车通道内,从实际考虑,这两种情况都不可能实现,也说明连接板上转轴B点的位置不合适,需要进一步调节。
图4.圆C2与圆C3相交
2)圆C2与圆C3相切:
随着连接板上转轴B点逐渐向折叠门转轴O点靠近,在某一位置,圆C2与圆C3相切,交点为O1。
此时,理论上门泵底座水平转动轴A点可以布置在O1点,但实际情况受安装精度的影响,不可能在该点精确固定。
为了保证折叠门开关门时旋转力矩大小基本相等,O1点两侧的区域比较狭长,也不便于确定A点。
图5.圆C2与圆C3相切
3)圆C3在圆C2内部:
随着连接板上转轴B点进一步向折叠门转轴O点靠近,圆C3移到圆C2内,两圆没有交点。
此时,门泵水平转动轴A点可以布置在如左图所示的G区位置,且位于圆C2内圆C3外。
当A点在B点和B2点的延长线上时,门泵推拉折叠门的转动力臂相等。
因气动门泵的推力F略大于拉力T,可考虑将A点略偏右下布置。
图6.圆C3在圆C2内
通过前面的分析可知,随着B点的左移,圆C3逐渐移动到圆C2内,当两圆最小间距(在G区)满足门泵底座的安装精度要求时,B点位置即为所求目标,而圆C3和圆C2最小距离上的中点可作为门泵底座水平转动轴A点的安装位置。
4 采用UG/GRIP语言编程
GRIP语言与一般通用语言一样,有完整的语法规则、程序结构、内部函数。
GRIP程序同样要经过编译、连接后,生成可执行程序,才能运行。
使用GRIP语言编程的一般步骤如下:
(1)编写源代码:
利用文本编辑写源代码,并以扩展名“.grs”存盘。
(2)编译源程序:
将源程序进行编译生成扩展名为“.gri”的编译文件。
(3)链接程序:
将扩展名为“.gri”的文件链接生成可执行的GRIP文件,扩展名为“.grx”。
(4)运行程序:
“.grx”文件可以通过用户化的菜单或对话框调用,也可以通过UG的菜单项File-ExecuteUG/Open-GRIP…直接运行。
编写源代码是最关键的一步,在编写之前,先要明确程序运行流程。
通过前面的分析过程可以绘制出编程流程图(见图7),从中可以看出,该流程包括两个主要的循环过程,手工操作的话工作量很大,采用UG/GRIP二次开发语言对其进行编程,让计算机自动完成,便能够迅速找出B点和A点的位置。
图7.门泵位置优化流程图
源代码内容如下:
$$搜索门泵固定点位置的UG/GRIP程序源代码:
$$目的:
折叠门门泵固定位置的确定
$$
$$设计者:
郝守海
$$
$$设计时间:
2007年7月
$$
$$单位:
东风汽车有限公司商用车技术中心客车部车身科
$$
NUMBER/x,y,z,RESP,L(10),i,l0,l1
NUMBER/ju1,ju2,xingc,jiaodu,r1,step,clear,leng
NUMBER/MAT1(12)
ENTITY/cir1(800),cir2(800),line1,line2,po1(800),po2(800)
ENTITY/p0,p1,csys1,po3(8000),po4(8000),line3,ciro,line4
ENTITY/spln1,spln2
jiaodu=89$$折叠门开启时的旋转角度
ju1=38$$连接板转轴中心距主动门中心面的距离
ju2=340$$门泵压缩状态下连接板转轴中心距支座转轴中心距
xingc=170$$门泵推拉杆的伸缩行程
step=10$$连接板转轴中心的搜索步
r1=500$$连接板转轴中心的搜索区间
clear=5$$支座转轴中心安装误差范围
i=0
loop1:
Messg/'本程序用于确定折叠门门泵的固定位置'
csys1=&wcs
loop2:
$$指定折叠门转动轴中心点,作出B点的搜索轨迹线L1
GPOS/’请指定折叠门的旋转中心点’,x,y,z,RESP
JUMP/loop1:
end:
,,,RESP
p0=POINT/x,y,z
line1=LINE/x,y-ju1,z,x+r1,y-ju1,z
loop3:
$$确定折叠门及门泵的各项参数,可参照不同门泵对其进行适当修改
PARAM/’输入折叠门及门泵的各项参数:
’,$
‘折叠门旋转角度’,jiaodu,$
‘安装位置活动间隙’,clear,$
‘转轴间Y距’,ju1,$
‘门泵转轴间最小距离’,ju2,$
‘门泵活塞行程’,xingc,RESP
JUMP/loop3:
end:
,,,RESP
IF/clear<=2.4,JUMP/loop3:
$$活动间隙过大或过小都不便于作图搜索
IF/clear>=35,JUMP/loop3:
$$相切时圆心距,拱长
l1=SINF(jiaodu/2)
l0=xingc/l1
csys1=CSYS/csys1,ORIGIN,p0$$座标系定义
&wcs=csys1
$$旋转线段L1,作出B2点的轨迹线L2
MAT1=MATRIX/XYROT,-jiaodu
line2=TRANSF/MAT1,line1
loop4:
$$两圆相交下,没有合适的位置,继续渐进搜索
ciro=CIRCLE/center,p0,radius,r1
i=i+1
po1(i)=POINT/XLARGE,INTOF,line1,ciro,IFERR,err1:
po2(i)=POINT/YSMALL,INTOF,line2,ciro,IFERR,err1:
DELETE/ciro
err1:
cir1(i)=CIRCLE/center,po1(i),radius,ju2+xingc
cir2(i)=CIRCLE/center,po2(i),radius,ju2
r1=r1-step$$转轴小圆
po3(i)=POINT/YLARGE,INTOF,cir1(i),cir2(i),IFERR,loop5:
po4(i)=POINT/YSMALL,INTOF,cir1(i),cir2(i),IFERR,loop5:
leng=DISTF(po3(i),po4(i))
IF/leng<50,step=0.2
&COLOR(cir1(i))=MODF(i,15)
&COLOR(cir2(i))=MODF(i,15)
JUMP/loop4:
loop5:
DELETE/cir1(1..i),cir2(1..i),po1(1..i),po2(1..i)
DELETE/po3(1..i),po4(1..i)
r1=r1+step
step=0.05
i=0
loop6:
$$小圆在大圆内,搜索步缩小
ciro=CIRCLE/center,p0,radius,r1
i=i+1
r1=r1-step$$转轴小圆
po1(i)=POINT/XLARGE,INTOF,line1,ciro,IFERR,err:
po2(i)=POINT/YSMALL,INTOF,line2,ciro,IFERR,err:
DELETE/ciro
cir1(i)=CIRCLE/center,po1(i),radius,ju2+xingc
cir2(i)=CIRCLE/center,po2(i),radius,ju2
IF/line3<>&NULENT,DELETE/line3
line3=LINE/po1(i),po2(i)
po3(i)=POINT/XSMALL,INTOF,line3,cir1(i)
po4(i)=POINT/XSMALL,INTOF,line3,cir2(i)
leng=DISTF(po3(i),po4(i))
IF/clear-leng<0.5,step=0.001
IF/lengi=i-1
DELETE/cir1(1..i),cir2(1..i),po1(1..i),po2(1..i)
DELETE/po3(1..i),po4(1..i)
line4=LINE/po3(i+1),po4(i+1)
DELETE/p0
JUMP/end:
err:
Messg/'发现错误,请参照使用说明。
'
end:
HALT$$结束
GRIP语言源代码编写完后,启动UG自带的编译程序UGOpenGRIP,就可以完成源代码的编译和链接,生成可执行的“.grx”文件。
在UG平台上运行该文件,只需要指定折叠门旋转轴中心点,确定折叠门及门泵的5项参数,其他工作都由计算机自动完成。
5 折叠门UG装配及动态校核
在折叠门与门泵三维模型生成后,为了能够直观认识到折叠门及门泵的运动情况,可以利用UG装配模块中的MtaeComponent命令进行简单校核,从中了解折叠门及门泵的运动轨迹。
图8.折叠门及门泵装配模型
首先在主模型中利用前面的分析方法找出B点及A点的位置,并将整个折叠门及门泵模型分成四个装配子零件,分别是折叠门的主动门、从动门、门泵本体和门泵推拉杆。
装配时,先要将折叠门主动门装配到主模型里,约束折叠门只能绕转动轴(O点)做水平旋转运动。
再装入折叠门从动门,约束其只能绕与主动门连接的铰链做水平旋转运动。
然后将门泵底座旋转轴固定在A点处,约束门泵只能绕A点做水平旋转运动。
最后将门泵推拉杆装配到主模型内,保证推拉杆在泵体内能做往复运动,且与折叠门主动门在B点处铰接,并可以做水平旋转运动。
到此,折叠门与门泵的装配模型已经建成。
装配完的模型具备五项重点约束,即折叠门主动门绕O点水平旋转,从动门绕主动门的铰链水平旋转,泵体绕A点水平旋转,门泵推拉杆在泵体内可做往复运动,及推拉杆与主动门在铰接处(关门后的B点位置)水平相对转动。
在实际应用中,门泵推拉杆的往复运动带动了折叠门主动门的旋转,并导致折叠门开启和关闭,但由于UG装配模块的功能无法实现,这里考虑利用折叠门主动门的旋转来带动折叠门从动门和门泵的运动,其运动效果与实际应用比较接近。
对主动门施加一个角度约束,使其门板与车身纵向间的角度为零,此时折叠门处在关门状态。
然后调节该角度的大小就可以导致折叠门及门泵运动。
通过校核可以发现,在折叠门关闭时,门泵推拉杆如果完全推出活塞腔,会导致折叠门开启过度。
但实际应用中有限位块约束,推拉杆无法完全推出。
在折叠门开启时,如果推拉杆完全拉入活塞腔内,则开启角度会比预定值大,需要在门上方的滑槽内增加限位块。
6 结论
在研究UG/OpenGRIP二次开发语言的基础上,通过对折叠门门泵优化布置分析,开发编制了UG内嵌程序。
该优化设计方法能够快速的确定门泵底座的固定位置和门泵同折叠门的连接点位置,提高了设计效率和设计质量,避免了原来设计时受力不合理等问题,对气动折叠门的设计起到了合理的规范和统一。
对于不同型号的气动门泵,该方法都可应用,具有较强的实用性。
经过UG装配模型校核和实际生产应用,此方法的优化结果满足使用要求,改善了折叠门受力情况。
参考文献
1)王庆林.《UG/OpenGRIP实用编程基础》.清华大学出版社,2002年1月
2)张广礼等.《UG18基础教程》.清华大学出版社,2003年3月
3)陈文弟等.《客车制造工艺技术》.人民交通出版社,2002年10月
附页1:
MB50-170门泵外型及安装尺寸
附页2:
搜索门泵固定点位置的UG/GRIP程序源码(渐进式)
$$
$$目的:
折叠门门泵固定位置的确定
$$
$$设计者:
郝守海
$$
$$设计时间:
2007年7月
$$
$$单位:
东风汽车有限公司商用车技术中心客车部车身科
$$
NUMBER/x,y,z,RESP,L(10),i,l0,l1
NUMBER/ju1,ju2,xingc,jiaodu,r1,step,clear,leng
NUMBER/MAT1(12)
ENTITY/cir1(800),cir2(800),line1,line2,po1(800),po2(800)
ENTITY/p0,p1,csys1,po3(8000),po4(8000),line3,ciro,line4
ENTITY/spln1,spln2
jiaodu=89$$折叠门的旋转角度
ju1=38$$连接板转轴中心距主动门中心面的距离
ju2=340$$门泵压缩状态下连接板转轴中心距支座转轴中心距
xingc=170$$门泵的伸缩行程
step=10$$连接板转轴中心的移动步伐
r1=500$$连接板转轴中心的变化区间
clear=5$$支座转轴中心安装误差范围
i=0
loop1:
Messg/'本程序用于确定折叠门门泵的固定位置'
csys1=&wcs
loop2:
GPOS/'拾取折叠门的旋转中心点',x,y,z,RESP
JUMP/loop1:
end:
,,,RESP
p0=POINT/x,y,z
line1=LINE/x,y-ju1,z,x+r1,y-ju1,z
loop3:
PARAM/'输入折叠门及门泵的各项参数:
',$
'折叠门旋转角度',jiaodu,$
'安装位置活动间隙',clear,$
'转轴间Y距',ju1,$
'门泵转轴间最小距离',ju2,$
'门泵活塞行程',xingc,RESP
JUMP/loop3:
end:
,,,RESP
IF/clear<=2.4,JUMP/loop3:
IF/clear>=35,JUMP/loop3:
$$相切时圆心距,拱长
l1=SINF(jiaodu/2)
l0=xingc/l1
csys1=CSYS/csys1,ORIGIN,p0
&wcs=csys1
$$旋转线段
MAT1=MATRIX/XYROT,-jiaodu
line2=TRANSF/MAT1,line1
loop4:
$$大小圆相交
ciro=CIRCLE/center,p0,radius,r1
i=i+1
po1(i)=POINT/XLARGE,INTOF,line1,ciro,IFERR,err1:
po2(i)=POINT/YSMALL,INTOF,line2,ciro,IFERR,err1:
DELETE/ciro
err1:
cir1(i)=CIRCLE/center,po1(i),radius,ju2+xingc
cir2(i)=CIRCLE/center,po2(i),radius,ju2
r1=r1-step$$转轴小圆
po3(i)=POINT/YLARGE,INTOF,cir1(i),cir2(i),IFERR,loop5:
po4(i)=POINT/YSMALL,INTOF,cir1(i),cir2(i),IFERR,loop5:
leng=DISTF(po3(i),po4(i))
IF/leng<50,step=0.2
&COLOR(cir1(i))=MODF(i,15)
&COLOR(cir2(i))=MODF(i,15)
JUMP/loop4:
loop5:
DELETE/cir1(1..i),cir2(1..i),po1(1..i),po2(1..i)
DELETE/po3(1..i),po4(1..i)
r1=r1+step
step=0.05
i=0
loop6:
$$小圆在大圆内
ciro=CIRCLE/center,p0,radius,r1
i=i+1
r1=r1-step$$转轴小圆
po1(i)=POINT/XLARGE,INTOF,line1,ciro,IFERR,err:
po2(i)=POINT/YSMALL,INTOF,line2,ciro,IFERR,err:
DELETE/ciro
cir1(i)=CIRCLE/center,po1(i),radius,ju2+xingc
cir2(i)=CIRCLE/center,po2(i),radius,ju2
IF/line3<>&NULENT,DELETE/line3
line3=LINE/po1(i),po2(i)
po3(i)=POINT/XSMALL,INTOF,line3,cir1(i)
po4(i)=POINT/XSMALL,INTOF,line3,cir2(i)
leng=DISTF(po3(i),po4(i))
IF/clear-leng<0.5,step=0.001
IF/lengi=i-1
DELETE/cir1(1..i),cir2(1..i),po1(1..i),po2(1..i)
DELETE/po3(1..i),po4(1..i)
line4=LINE/po3(i+1),po4(i+1)
DELETE/p0
JUMP/end:
err:
Messg/'发现错误,请参照使用说明。
'
end:
HALT
附页3:
搜索门泵固定点位置的UG/GRIP程序源码(精确)
$$
$$目的:
折叠门门泵固定位置的确定---精确
$$
$$设计者:
郝守海
$$
$$设计时间:
2007年7月
$$
$$单位:
东风汽车有限公司商用车技术中心客车部车身科
$$
NUMBER/x,y,z,RESP,l1
NUMBER/ju1,ju2,xingc,jiaodu,r1,step,clear
NUMBER/MAT1(12)
ENTITY/ciro,cir1,cir2,line1,line2
ENTITY/p0,p1,p2,p3,p4,csys1,line3,line4,line5
jiaodu=89$$主动门的旋转角度
ju1=38$$连接板转轴中心距主动门中心面的距离
ju2=340$$门泵压缩状态下连接板转轴中心距支座转轴中心距
xingc=170$$门泵的伸缩行程
step=10$$连接板转轴中心的移动步伐
r1=500$$连接板转轴中心的变化区间
clear=5$$支座转轴中心安装误差范围
loop1:
Messg/'本程序用于确定折叠门门泵的固定位置'
loop2:
PARAM/'输入折叠门及门泵的各项参数:
',$
'主门旋转角度',jiaodu,$
'安装位置活动间隙',clear,$
'转轴间Y距',ju1,$
'门泵转轴间最小距离',ju2,$
'门泵活塞行程',xingc,RESP
JUMP/loop1:
end:
,,,RESP
loop3:
GPOS/'拾取折叠门的旋转中心点',x,y,z,RESP
JUMP/loop2:
end:
,,,RESP
p0=POINT/x,y,z
line1=LINE/x,y-ju1,z,x+r1,y-ju1,z
&COLOR(line1)=1
&FONT(line1)=3
&LWIDTH(line1