VRML虚拟现实网络互动仿真装配平台的研究
刘 炀, 邵 伟, 王 静, 石鸽娅, 汤传玲
(合肥工业大学机械与汽车工程学院,安徽 合肥 230009)
摘 要:在计算机上实现了虚拟装配的流程以及运用VRML创建可视化的三维虚拟场景,提出了一种基于VRML和Java的虚拟现实构建方法,以增强VRML虚拟场景与外界的交互性,并通过实例提出了创建网络虚拟装配交互仿真的具体方案。该方法不仅可用于演示网络环境下的可视化装配,也适用于基于VRML的其它领域科学可视化。
关 键 词:虚拟场景;装配可视化;交互性;虚拟现实建模语言 中图分类号:TP 391
文献标识码:A 文 章 编 号:1003-0158(2012)01-0087-04
Application of virtual reality in VRML-based assembly visualization
Liu Yang, Shao Wei, Wang Jing, Shi Geya, Tang Chuanling
( School of Mechanical and Automation Engineering, Hefei University of Technology, Hefei Anhui 230009, China )
Abstract: The process of virtual assembly is achieved on computer and three dimensions visible virtual scene is established by VRML. A method of constructing virtual reality based on the VRML and Java is offerproposed. It can strengthen the interaction between VRML virtual scene and outside, meanwhile, a specific technique on how to implement the virtual assembly with cartoon demo on the network is brought forward with an example. This method can not only be used to show the visible assembly in network environment, but also be applied to the scientific visualization based on VRML in other fields.
Key words: virtual scene; visible assembly; interaction; VRML
机械设计中的一个重要内容就是装配体设计,传统的装配体设计是一种自底向上的设计过程即先设计出各个零件并制造出来,再把零件按照装配关系装配起来形成一个完整的装配体或机械设备。这样很容易出现装配体各部件的干涉与设计目标不符合等缺陷。虚拟装配技术是为了克服这些缺陷而出现的。狭义的虚拟装配是指在
收稿日期:2010-03-16
基金项目:安徽省级教学研究资助项目(20100094)
作者简介:刘 炀(1966-),男,安徽合肥人,副教授,硕士,主要研究方向为机械设计及理论、计算机图形学等。
虚拟环境中快速的把单个零部件或部件组装形
成产品的方法,广义的虚拟装配是指在虚拟环境中如何使设计人员方便地进行结构设计、修改,让设计人员专注于产品功能的实现。
虚拟装配(Virtual Assembly,VA)是虚拟制造的重要组成部分,利用虚拟装配,可以验证装配设计和操作的正确与否,以便及早的发现状配中
·88· 图 学 学 报 2012年
的问题,对模型进行修改,并通过可视化显示装配过程。虚拟装配系统允许设计人员考虑可行的装配序列,自动生成装配规划,它包括数值计算、装配工艺规划、工作面布局、装配操作模拟等[1]。现在产品的制造正在向着自动化、数字化的方向发展,虚拟装配是产品数字化设计中的一个重要环节。
1 虚拟装配系统平台的构建
1.1 虚拟装配系统的总体结构
基于网络的虚拟装配平台是在异地设计者之间建立一个可以进行装配操作并显示装配过程来判断产品可装配性的服务平台,因此必须建立一个基于网络的并且具有显示浏览快捷、界面友好、运行高效等特点的图形化人机交互界面。
一般来说,虚拟装配首先要在CAD系统中创建装配模型,从中提取一些模型相关信息,如零件的几何特征、装配约束关系等,然后利用这些信息在虚拟环境中实现虚拟装配。图1中虚拟装配建模和装配序列规划方法。
建模初 虚装配始化 装配动 拟建模 态仿真 装 配规划获装配 环取 规划 装配结 境果浏览 配虚拟仿 置 真准备 图 1 虚拟装配结构模型
1.3 虚拟装配系统的实现方法
1) 利用Pro/E、UG等三维设计软件创建各个零件的三维模型。
2) 利用3D Studio MAX8.0软件对所有的三维模型进行渲染和编辑。
3) 利用VrmlPad软件编辑模型在虚拟现实中的位置与关系。
4) 利用Dreamweaver软件设计Web网页。 5) 把打包合成的虚拟装配系统挂在网络上运行。
2 VRML建模技术
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中载入所有的零件。
1.2 虚拟装配系统的构思
1) 首先确定具体的装配体,搞清楚该装配体的工作原理、每个零件的结构形状、零件在装配体中的作用以及零件的拆装顺序等内容。 2) 设计出虚拟装配系统的具体内容。如Web网页的版面内容设计,工作原理的动画设计,拆卸顺序的动态路线设计等内容。
3) 对应虚拟装配系统的具体内容,选择出能实现上述内容的具体软件平台。
4) 选择出合成虚拟装配系统的操作平台,能够实现操作的方便。
图 2 载入零件
用一个单独的VRML文件创建一个逼真的虚
第1期 刘 炀等:VRML虚拟现实网络互动仿真装配平台的研究 ·89·
拟世界场景是极其困难的,一方面程序的设计不符合模块化设计的思想;另一方面VRML文件过大将会使下载和浏览速度大大地降低。VRML中有一个Inline节点可以解决这些问题。
下面是一个球阀造型例子,球阀由多个零件组成,每个零件都用一个.wrl文件来表达,通过内联结点嵌入主文件中,使主文件的结构简单清晰。
# VRML V2.0 utf8 标准头文件
DEF BallValve Transform { // 定义球阀结点 translation 0 0 0 // 坐标系原点坐标 children [ // 定义子结点
DEF Q1 Transform { // 定义零件1子结点
translation 0 2 0 // 定义零件1位置 Inline {url\"Q1.wrl\用内联结点包
括零件1实体
}
DEF Q2 Transform { // 定义零件2子结点
translation 0 3 0 // 定义零件2位置 Inline {url\"Q2.wrl\用内联结点
包括零件2实体
} ……
]
}
Socket,CORBA等方式与位于Web服务器的仿真控制器和仿真模型通信[3]。VRML模型仅用于显示而不参与仿真运算,只要建立了合适的仿真模型就可以突破VRML本身的限制,提供有很强适应性的三维仿真。其原理体系结构如图3所示。
控制交互装 置 Java Applet Part 1 Part 2 Part 3 图 3 基于Web和VRML三维仿真交互原理体系结构
3 虚拟装配系统中网络仿真交互的
设计
3.1 基于Web和VRML的三维仿真交互原理
VRML中的行为和交互性是通过事件驱动的机制实现的,用户与场景的交互、动画的运行等都是通过各种事件的发送来完成的。通过在几个节点之间事件流的传送,可以实现动画过程。
VRML本身具有一定的交互能力,可以实现一些简单的动画,当需要实现复杂的交互行为时,要借助于JavaScript与Java来补充。对复杂性高的实验对象,往往采用功能强大的Java来实现。
基于VRML的显示模型向用户提供仿真结果和过程的三维表示,位于服务器上的仿真模型在仿真控制器的控制下进行仿真运算,Java Applet负责显示模型和仿真模型之间的信息传递以及和用户之间的信息交互,它通过EAI完成和VRML模型的控制及交互同时可以通过Http,RMI,
3.2 虚拟装配系统中仿真交互的实现
VRML场景一般包括场景引擎,几何造型节点,外观属性节点,脚本与动画等,其中几何节点包括基本体几何节点如长方体、圆柱、圆锥等和以面片为单元包围形成体的“索引面集”几何结点。从专业CAD软件输出的VRML格式产品模型,一般采用“IndexedFaceSet”(索引面集)几何节点描述,场景基本结构如图3所示,对象的轮廓形状由point域值给出,对象的位置由节点Transform的旋转域rotation和平移域translation决定。这样,欲实施对场景中对象节点图形变换,就需按照“索引面集”几何节点构造的规律,依照“层层剥皮”的思路,遍历到目标节点的变换域,修改域值,从而实现几何节点在场景空间的位置变化。如果进一步结合“路由”与“时间传感器”节点,便能实现几何节点的位置连续变化,从而实现VRML节点的动画显示[4]。 #VRML V2.0 utf8
DEF Assembly Transform { //INodeObject
rotation x y z angle //ISFRotationObject
translation x y z //ISFVec3fObject
children [ Shape {
Http 、 Socket… 环境参数 External Authoring Interface 显示模型 VRML 模型·90· 图 学 学 报 2012年
geometry IndexedFaceSet{ coord Coordinate{
point[ ] } } } ] }
文件,首先捕捉到当前场景(模型)引擎,获得场景中的节点集,进而得到各个节点信息和域值,同时完成前台显示,这是虚拟装配平台最基本的可视化功能。界面中主要由人机交互装配控制区、装配过程信息显示区、VRML模型显示区组成。用户可以通过装配控制区对VRML模型直接操作,也可以通过鼠标操纵VRML区域的按钮对装配模型进行放大、缩小和任意角度旋转的观察。
4 基于Web的仿真虚拟环境设计
VRML中使用Java还有一种方式,即外部编程接口( EAI),通过该接口,可使用VRML及Java语言构造了一个基于B/S架构的分布式虚拟环境。通过连接到Web服务器,客户端从Web服务器上下载VRML文件以及Java Applet。VRML文件通过浏览器中的VRML插件解释并显示出虚拟现实场景,Applet中包含了用户操作界面以及用于控制VRML场景的EAI。
仿真虚拟环境主界面如图4所示,即浏览VRML装配模型。在后台程序通过调用VRML
5 结 束 语
论文中的虚拟装配系统尽管基本实现了虚拟环境下的产品装配仿真功能,但从工程设计和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.
图 4 仿真虚拟环境主界面
因篇幅问题不能全部显示,请点此查看更多更全内容