刘 炀, 邵 伟, 王 静, 石鸽娅, 汤传玲
(合肥工业大学机械与汽车工程学院,安徽 合肥 230009)
机械设计中的一个重要内容就是装配体设计,传统的装配体设计是一种自底向上的设计过程即先设计出各个零件并制造出来,再把零件按照装配关系装配起来形成一个完整的装配体或机械设备。这样很容易出现装配体各部件的干涉与设计目标不符合等缺陷。虚拟装配技术是为了克服这些缺陷而出现的。狭义的虚拟装配是指在虚拟环境中快速的把单个零部件或部件组装形成产品的方法,广义的虚拟装配是指在虚拟环境中如何使设计人员方便地进行结构设计、修改,让设计人员专注于产品功能的实现。
虚拟装配(Virtual Assembly,VA)是虚拟制造的重要组成部分,利用虚拟装配,可以验证装配设计和操作的正确与否,以便及早的发现状配中的问题,对模型进行修改,并通过可视化显示装配过程。虚拟装配系统允许设计人员考虑可行的装配序列,自动生成装配规划,它包括数值计算、装配工艺规划、工作面布局、装配操作模拟等[1]。现在产品的制造正在向着自动化、数字化的方向发展,虚拟装配是产品数字化设计中的一个重要环节。
基于网络的虚拟装配平台是在异地设计者之间建立一个可以进行装配操作并显示装配过程来判断产品可装配性的服务平台,因此必须建立一个基于网络的并且具有显示浏览快捷、界面友好、运行高效等特点的图形化人机交互界面。
一般来说,虚拟装配首先要在CAD系统中创建装配模型,从中提取一些模型相关信息,如零件的几何特征、装配约束关系等,然后利用这些信息在虚拟环境中实现虚拟装配。图1中虚拟装配建模和装配序列规划方法。
图 1 虚拟装配结构模型
1) 首先确定具体的装配体,搞清楚该装配体的工作原理、每个零件的结构形状、零件在装配体中的作用以及零件的拆装顺序等内容。
2) 设计出虚拟装配系统的具体内容。如Web网页的版面内容设计,工作原理的动画设计,拆卸顺序的动态路线设计等内容。
3) 对应虚拟装配系统的具体内容,选择出能实现上述内容的具体软件平台。
4) 选择出合成虚拟装配系统的操作平台,能够实现操作的方便。
1) 利用Pro/E、UG等三维设计软件创建各个零件的三维模型。
2) 利用3D Studio MAX8.0软件对所有的三维模型进行渲染和编辑。
3) 利用VrmlPad软件编辑模型在虚拟现实中的位置与关系。
4) 利用Dreamweaver软件设计Web网页。
5) 把打包合成的虚拟装配系统挂在网络上运行。
VRML——Virtual Reality Modeling Language,即虚拟现实建模语言,是一种“用来描述可在World Wide Web上运行的、可交互的3D世界和对象的文件格式”,利用它可以在Internet网上建立交互式的三维多媒体的境界。它定义了当今3D应用中的绝大多数常见概念,诸如变换层级、视点、光照、几何、动画、雾、材质属性以及纹理映射等。几乎所有的三维建模软件都支持VRML的文件格式。利用CAD软件进行零件的三维造型,如果所用CAD软件具有VRML输出接口如UG、SolidEdge、Pro/Engineer则直接输出VRML格式的文件,若所用CAD软件没有VRML输出则存为IGES、DXF、STEP等通用CAD软件交换格式,再利用转换程序或在支持VRML格式.wrl输出的CAD软件中打开并存为VRML文件[2]。在图2中载入所有的零件。
图 2 载入零件
用一个单独的VRML文件创建一个逼真的虚拟世界场景是极其困难的,一方面程序的设计不符合模块化设计的思想;另一方面VRML文件过大将会使下载和浏览速度大大地降低。VRML中有一个Inline节点可以解决这些问题。
下面是一个球阀造型例子,球阀由多个零件组成,每个零件都用一个.wrl文件来表达,通过内联结点嵌入主文件中,使主文件的结构简单清晰。
VRML中的行为和交互性是通过事件驱动的机制实现的,用户与场景的交互、动画的运行等都是通过各种事件的发送来完成的。通过在几个节点之间事件流的传送,可以实现动画过程。
VRML本身具有一定的交互能力,可以实现一些简单的动画,当需要实现复杂的交互行为时,要借助于JavaScript与Java来补充。对复杂性高的实验对象,往往采用功能强大的Java来实现。
基于VRML的显示模型向用户提供仿真结果和过程的三维表示,位于服务器上的仿真模型在仿真控制器的控制下进行仿真运算,Java Applet负责显示模型和仿真模型之间的信息传递以及和用户之间的信息交互,它通过EAI完成和VRML模型的控制及交互同时可以通过Http,RMI,Socket,CORBA等方式与位于Web服务器的仿真控制器和仿真模型通信[3]。VRML模型仅用于显示而不参与仿真运算,只要建立了合适的仿真模型就可以突破VRML本身的限制,提供有很强适应性的三维仿真。其原理体系结构如图3所示。
图 3 基于Web和VRML三维仿真交互原理体系结构
VRML场景一般包括场景引擎,几何造型节点,外观属性节点,脚本与动画等,其中几何节点包括基本体几何节点如长方体、圆柱、圆锥等和以面片为单元包围形成体的“索引面集”几何结点。从专业CAD软件输出的VRML格式产品模型,一般采用“IndexedFaceSet”(索引面集)几何节点描述,场景基本结构如图3所示,对象的轮廓形状由point域值给出,对象的位置由节点Transform的旋转域rotation和平移域translation决定。这样,欲实施对场景中对象节点图形变换,就需按照“索引面集”几何节点构造的规律,依照“层层剥皮”的思路,遍历到目标节点的变换域,修改域值,从而实现几何节点在场景空间的位置变化。如果进一步结合“路由”与“时间传感器”节点,便能实现几何节点的位置连续变化,从而实现VRML节点的动画显示[4]。
VRML中使用Java还有一种方式,即外部编程接口( EAI),通过该接口,可使用VRML及Java语言构造了一个基于B/S架构的分布式虚拟环境。通过连接到Web服务器,客户端从Web服务器上下载VRML文件以及Java Applet。VRML文件通过浏览器中的VRML插件解释并显示出虚拟现实场景,Applet中包含了用户操作界面以及用于控制VRML场景的EAI。
图 4 仿真虚拟环境主界面
仿真虚拟环境主界面如图4所示,即浏览VRML装配模型。在后台程序通过调用VRML文件,首先捕捉到当前场景(模型)引擎,获得场景中的节点集,进而得到各个节点信息和域值,同时完成前台显示,这是虚拟装配平台最基本的可视化功能。界面中主要由人机交互装配控制区、装配过程信息显示区、VRML模型显示区组成。用户可以通过装配控制区对 VRML模型直接操作,也可以通过鼠标操纵VRML区域的按钮对装配模型进行放大、缩小和任意角度旋转的观察。
论文中的虚拟装配系统尽管基本实现了虚拟环境下的产品装配仿真功能,但从工程设计和CAD专业的角度出发,还有许多研究工作要做。比如人工在由CAD模型转换而来的VRML模型中添加控制节点是一项工作量比较大的工作,工作效率的高低取决于初始CAD模型的复杂程度。因此,需要研制相关的工具或软件包代替手工添加控制节点的工作。
[1]Kris J, Phil S, Nelson Y. VRML programmer′s library [M].Beijing: Publishing House of Electronics Industry,2000: 122-123.
[2]任 浩, 谭庆平. 基于VRML和Java的物理建模方法与实现[J]. 计算机工程与科学, 2000, 22(2):36-39.
[3]马 竞. 虚拟制造技术研究概况综述[J]. 机械制造技术, 2005, (10): 10-11.
[4]高建洪, 胡志华. VRML虚拟场景中实时交互动画的实现[J]. 苏州大学学报(工科版), 2008, (28):23-25.