三维结构CAD图形与虚拟现实文件的转换
2013-08-28刘尚蔚张树珺
刘尚蔚,张树珺
(1.华北水利水电学院,河南 郑州450045;2.中国科学院大学,北京100049;3.南阳理工学院,河南 南阳473004)
虚拟现实建模语言(Virtual Reality Modeling Language,VRML)[1]是通过创建虚拟场景以达到逼近现实的效果,将Internet变成了一个广阔的三维空间.探讨基于VRML的虚拟现实语言标准将钢结构CAD图形直接转换为文本文件,使得复杂的三维图形以抽象的符号信息在VRML环境下表现出来具有现实意义.
1 VRML概述
1.1 定义及特征
1)平台环境无关.VRML只作为显示系统的通用性基础构架,可同时作为系统分析和设计的工具,与具体实现的软件和硬件环境无关.
2)C/S方式.访问方式基于客户机/服务器模式,服务器提供VRML文件.VRML用户通过网络将VRML文件及其引用的资源下载到本地机来访问虚拟场景,实现了VRML的平台无关性.VRML把虚拟世界看作场景,而场景中的对象看作节点,节点的集合构成了扩展名为wrl的文件.
VRML的主要目的是在网页中实现三维动画效果以及用户交互,是一种ASCII语言,改善了原来HTML 单调、交互性差的缺点[1-4].
1.2 体系结构
1.2.1 VRML文件扩展名及文件头
VRML文件由文本编辑器编写,其扩展名为wrl或wrz,以wrl应用较多.文件头的语法格式如下:
#VRML V2.0 utf8
该文本行必须位于第一行,语法形式固定.其文件头包括3个部分:VRML说明该文件是一个VRML文件;V2.0表明文件遵循 VRML2.0版本;utf8表示该VRML文件是国际utf8字符集的文件.
1.2.2 原型、造型、路由和脚本
1)原型.节点对其中的域、入事件和出事件的声明,用户可以通过原型扩充VRML节点类型.
2)造型.物体的造型即是场景,场景由表述对象及其属性的节点组成.第一类节点表述视觉和听觉对象,另一类节点参考事件和路由机制.
3)路由.产生事件和接受事件的节点之间的通道.路由不是节点.
4)脚本.用于定义复杂的事件,可以包含利用脚本描述语言编写的函数.还可以动态地增加或删除路由.
1.2.3 事件体系
VRML的交互和动态性能通过事件体系实现,事件为节点提供了接受外界消息和向其他节点发送消息的能力.节点通过事件入口接收事件,通过事件出口发送事件.
图1 场景图事件体系的概念执行模型
1.2.4 基本内容和节点分类
根据作用不同,VRML2.0分为以下几种节点.
1)形态和几何节点.通过这些节点可以构造出原始物体造型.如Box(方盒),Cone(圆锥),Cylinder(圆柱)等.
2)几何属性节点.如Color(颜色),Normal(法向量),Coordinate(坐标),Position(位置),这些几何节点的属性节点相对独立.
3)外观节点.如 Material(材质),ImageTexture(图像纹理),TextureTransform(纹理变换).
4)组节点.组节点由一个域可以包含多个子节点,每一个组节点为它的子节点定义了空间坐标.如Group(组),Transform(变换),Switch(开关).
5)其他节点的子节点.如Sound(声音),Shape(形态),Fog(雾),LOD(细节层次).
6)非子节点.如 Appearance(外观),Text(文本)等.
以下6种节点在三维CAD图形转化为VRML文件时经常使用,需要格外关注.
1)Viewpoint.通过该节点,浏览者可以很容易地在虚拟空间中实现远距离传送.
2)Transform.组节点Transform为子节点提供了相对于自身的局部坐标系变换后的新坐标系,其参数在其自身的局部坐标系中定义,并不受自身坐标系变换的影响.
3)Group.节点Group是所有节点中最基本的,也是应用非常广泛的一个节点.它没有坐标变换,这一点与一般的组节点稍有不同.在很多情况下都用于管理节点层次.
4)Indexedfaceset.节点 Indexedfaceset是用来在虚拟空间中构造几何面的,因为任何一个形体从理论上说都是有很多个面构成的,利用Indexedfaceset节点就可以构造出虚拟空间的任何几何造型,可称为万能节点.
5)Imagetexture.在虚拟现实中,每个实体也要有自己的纹理.虽然通过Material节点也可以控制造型的外观材质,但其只是宏观效果,一些细节效果还是通过纹理来实现.
6)Scene Graph.该节点按照一定的规则构成场景图(Scene Graph).
2 AutoCAD数据接口文件DXF和VRML文件的转换
利用AutoCAD可生成DXF文件的数据接口技术,应用高级编程语言把DXF文件里的实体信息提取出来,按照VRML文件格式进行重新组合,以达到提高建模效率、减少数据冗余的目的.
AutoCAD为用户提供了几种文件格式,它们分别以 DWG,DXF,BMP,DWT 等为后缀.AutoCAD 软件支持ASCII文本格式和二进制格式的DXF文件,DXF文件主要用于与其他CAD系统及用户应用程序间的图形信息交换.典型的DXF文件由标题节(HEADER)、类节(CLASSES)、表节(TABLES)、块节(BLOCKS)、实体节(ENTITIES)、对象节(OBJECTS)组成.表1给出了DXF文件的组成.表2表示了ENTITIES节中常用组码的含义.
表1 DXF文件组成
DXF转换VRML工作流程如图2所示.
对于三维CAD图形的DXF文件,有些文件格式是不可读的伪编码,需要根据CAD图形先求出三维数据结构和拓扑关系(角点、边、环、面、体),再转换为VRML的面结构形式,可参阅相关文件.
图3展现了某大型体育展馆屋顶的VRML模型,它是根据CAD三维图形的DXF输出文件,利用Auspic DDD软件转换成VRML文件所展现的结果.
表2 ENTITIES节中常用组码
3 结语
在掌握VRML和DXF文件格式的基础上,根据二者皆是以文本为存储格式的情况,将CAD图形向VRML文件转化,达到了无缝转换的目的,为工程图的相互转化提供了一种实用、有效的工具和方法.
[1]魏群.数字城市可视化仿真三维实体建模及虚拟现实软件系统的自主研发[C]//第2届中国国际数字城市建设会议论文.苏州:2006.
[2]魏群,彭成山,姜华,等.钢桁梁架设过程仿真技术研究[R].郑州:华北水利水电学院钢结构与工程研究所,2008.
[3]魏群.逻辑产品模型的研发和应用[C]//新世纪水利工程科技前沿.天津:天津大学出版社,2005.
[4]魏群.CIS/2钢结构国际标准及CAD系统的研发应用[C]//第二届中国国际钢结构大会论文集.北京:出版社不祥,2005.