王秋红 (安徽机电职业技术学院数控工程系,安徽芜湖241000)
VRML是Internet上基于WWW的虚拟现实建模语言,被称为第2代网络语言,用来描述三维物体及其运动行为,具有三维性、交互性、分布式集成性和逼真性等特点[1-3],通过虚拟现实技术创建虚拟环境,可以模拟机械产品模具的装配过程,帮助学习人员熟悉设备的结构以及装配关系。
UG软件是集CAD/CAE/CAM为一体的三维参数化设计软件之一,也是当今世界最先进的计算机辅助设计、分析和制造软件中的一员,成为UGS产品家族中应用最为广泛的设计软件[4]。UG软件提供了VRML软件的接口。下面,笔者通过UG软件完成模具产品的建模、装配,通过提取装配体信息利用VRML的环境最终完成动态装配的演示动画,并以2009年全国职业技能大赛 “产品造型与快速成型模拟题一” ——新型烟缸盖子产品模具 (以下简称 “南瓜盖”)为例说明以上过程。
“南瓜盖”模具在UG软件中完成。首先,在UG软件中建立南瓜盖零件,然后利用UG软件中的注射模设计模块,逐步完成模具的设计,包括进行零件的初始化、设定材料收缩率、坐标系等;对零件进行模具设计、型腔排布、分型;分型后加载模架,设计流道、浇口、顶针、冷却系统;最后完成模具设计,如图1所示。
下面利用UG运动仿真模块,逐步完成该塑料模具的开模及装配运动仿真,步骤如下:①模型的准备 。运动仿真的模型对象点、线、面、体,装配及非装配的三维模型均可。②运动分析,分析各杆件之间的运动关系。③定义刚性的连杆。④添加运动副和运动驱动,即设计零部件之间的相对运动。⑤解算及后处理,最终生成动画。
以开模运动仿真为例介绍具体操作如下:首先导入模型零件→分析模具开模时零部件的相对运动关系 (如图2所示可知,开模时主要有3部分结构的运动,分别为模具的动模、定模、塑料件及推出机构3部分的运动,具体过程是先动模移动与定模分开,当动模张开到一定距离时,推出机构运动,推出塑料零件)→定义连杆 (分别定义以上3部分为连杆,定义连杆时要定义全,包括一些特征曲线也要定义,以便后期设定运动时使用)→添加运动副和运动驱动 (开模运动主要定义滑动副,设定驱动类型、幅值、频率、相位角、位移等)→最后进行结算及后处理→生成动画。
进行装配路径规划首先要符合装配体的真实装配顺序,此外也要避免装配体中零件的干涉,对于该模具可将定模部分所有零件视为一个组件,命名为 “组件1”,装配顺序为:定模板→在定模板上装入定模座板→将浇口套装进定模板和定模座板→用销钉和螺钉固定以上部件→装入定位圈、连接螺钉。
图1 利用UG软件设计的 “南瓜盖”模具
图2 “南瓜盖”模具的开模运动
动模部分所有零件视为一个组件,命名为 “组件2”,装配顺序为:支撑块→动模板→在动模板上装入导柱并按规定方向放在支撑板上→将型芯装入动模板→销钉固定支撑板和动模板→型芯固定螺钉→按规定方向放推杆固定板→装入拉料杆、复位杆→推板→螺钉连接推板和推杆固定板→按规定方向放垫块→在垫块上放动模座板→螺钉连接整体。
最后将组件1、2合模,装配结束。
将UG文件导出为VRML V2.0版的wrl格式文件,然后用VRML编辑器VrmlPad读入,对对象进行场景渲染和动画制作。下面以 “南瓜盖”模具为例介绍其制作过程。
VRML通过时间传感器 (TimeSensor)和插补器 (Interpolator)以及路由 (ROUTE)语句来实现关键动画[1]。基本流程由时间传感器给出控制动画效果的时钟,该时钟包含了动画效果的开始时间、停止时间、循环周期以及是否循环等动画控制参数;然后通过该时钟的事件输出在虚拟世界中驱动插补器节点产生相应的动画效果。如果需要变速动画过程或者复杂动画过程,需要结合脚本语言java来实现时间传感器的输出控制插补器和javascript的输入,这样,插补器和javascript的输出就可以控制整个装配体中每个组件的移动和旋转等动作。
具体处理方法是:在UG NX软件中的装配状态下,每次导出一个零件,将其余零件隐藏掉,这样重复操作到每一个零件,一次保存为 101.w rl、102.wrl、103.wrl……,如从UG中导出定模座板保存为101.wrl。
所有部件导出完毕之后,这时候就要利用inline命令将所有wrl文件联系起来,然后建立一个新的wrl文件,保存为 “静态模型200.w rl”。每个组件文件要与 “静态模型200.w rl”这一整体文件全部存在一个文件夹里,这样,用VRML浏览器打开才能观看到整个静态模型。图3为通过VRML浏览器观看的静态模型。
图3 转换后的“南瓜盖”模具的虚拟现实文件
在实际装配过程中,被装配零件由于受装配关系的约束而存在装配顺序问题[5]。通过规划零件在虚拟空间的运动轨迹实现其虚拟装配。具体步骤如下:
1)定义T ouchSensor节点,可实现用户与系统的交互式装配。利用VRML按键传感器节点或者触摸传感器节点等可以实现用户与虚拟场景的交互,控制模具的虚拟装配过程。
2)定义TimeSensor节点,确定各个组件的变化周期及循环方式。当获得交互指令后消息从Time-Sensor节点的EventOut事件路由到其他节点,当TimeSensor节点的时钟开始计时时,被路由的节点发生相应的变化。
3)定义若干个PositionInterp01ator节点,设置零件平移。为了更好的表现出模具中南瓜盖零件的形态,程序还要添加OrientationInterpolator节点,将中间的南瓜盖零件旋转起来。OrientationInterpolator字段动态改变观察方向,或者改变形体的方向。
4)通过2条路由ROUTE语句,将时间代码与位置代码结合,实现真正意义的动画:
ROUTE Timer1.fraction_changed TO Translator1.set_fraction(时间的变化传到位置内插器)
ROUTE Translator1.value_changed TO Body__1.set_translation(位置内插器将特定时间的位置数值传给形体所在的局部坐标系)
虚拟装配的结果如图4所示。
图4 模具虚拟装配动画
利用UG或VRML进行虚拟装配各有特点,但VRML的文件更便于网络传输,易于与用户进行交互,将其运用到教学资源库的开发中更有优势。
[1]汪兴谦.V RML与Java编程实例实例讲解 [M].北京:中国水利水电出版社,2001:1-23.
[2]黄文丽,卢碧红,杨志刚,等.VRM L语言入门与应用[M].北京:中国铁道出版社,2003:10-19.
[3]汪志达,叶伟.VRML虚拟现实网页设计 [M].北京:清华大学出版社,2006:12-16.
[4]青春.基于UG的数控编程及加工过程仿真 [D].呼和浩特:内蒙古工业大学,2007.
[5]池建斌,郭海新,王晨,等.基于VRM L-Java的减速器虚拟拆装系统的实现[J].工程图学学报,2008(2):48-53.