您的位置:网站首页 > Proe教程

基于Virtools的Pro/ENGINEER模型优化

时间:2011-02-23 08:51:08 来源:

  一、前言

  随着虚拟现实技术的迅速发展和应用,电子电工虚拟实验室、电气元 件虚拟装配、虚拟电子仪器和建筑电气设备建模等虚拟环境互动的虚拟现 实系统应用日益广泛。但这些都需要 三维建模以及三维驱动才能实现逼真 的“沉浸”效果。

  V i r t o o l s技术以其强大的三维引 擎功能逐渐得到了广泛的应用。但V i r t o o l s本身并不具备三维实体模型 的建模能力及角色动画制作的能力, 所以在使用V i r t o o l s进行虚拟场景构 建时,须借助其他的三维模型建模及 角色动画制作软件。而后以其专有的 插件导出成V i r t o o l s专用的格式,但 是其自带的Virtools Dev模块只提供了 Maya、3DS MAX、LightWave和XSI四种 建模软件的输出插件。而对于用C A D常 用软件P r o/E N G I N E E R所建立的电气元 件模型,Virtools Dev并没有提供Pro/ E N G I N E E R的输出插件。因此,笔者利 用三种常见的C A D格式对模型进行转 换,实现Pro/ENGINEER模型向Virtools 的导入。

  二、模型格式转换

  每一种C A D软件系统都可以接受某些文件格式的输入,并能够进行某些文件格式的输出。我们把某一种CAD软件可以接受的输入文件格式集合定 义为I ={i | i 1,i 2,…,i n,n >0},n 为 输入文件格式的总数。可以输出的文件格式集合定义为O ={o|o1,o2,…,om,m >0},m为输出文件格式的总数,则两种C A D软件系统A和B可以进行交 流的条件为:(I A∩O B)∪(O A∩I B)≠Φ ;可以进行双向交流的条件为:(I A∩O B)∩(O A∩I B)≠Φ 。

  当IA∩OB=Φ或是(IA∩OB)∪(OA∩IB)≠Φ,但由于软件之间精度而导致转换效果较差时,B系统的文件是不可以直接转换到A系统中,双向交流就更无从谈起。这种情况下有两种解决方法,一是直接开发转换程序,但此方法耗费的人力和时间非常多所以不常见;另一种是使用第三方软件C,使得B 和C、C和A满足上述交换条件。

  由于V i r t o o l s自带的插件支持由3DS MAX向Virtools Dev导出其所支持 的文件格式。因此,以3D S M A X为媒 介,通过由Pro/ENGINEER到3DS MAX再 到Virtools Dev的方法,可以实现模型 的导入。

  三、模型优化方法

  在Pro/ENGINEER的输出和3DS MAX的输入格式中,依照上述原理选择常见的STL、OBJ和VRML格式分别进行从Pro/ENGINEER到3DS MAX的格式转换。

  1.STL格式

  STL(Sterolithography)文件格式 是一种为快速原型制造技术(R P M)服务 的三维图形文件格式。它分为A S CⅡ码 和二进制两种。随着快速原型制造技 术的发展与应用,S T L文件格式也得 到了各C A D/C A M软件公司的广泛支持。

  S T L文件表示立体图形的方式较为简 单。对于一个独立的立体图形,它用许多空间小三角面对其进行逼近,通 过记录各小三角面的顶点和法向矢量 信息来间接描述原来的立体图形。

  从Pro/ENGINEER中输出STL文件可 采用其默认的坐标系,但是要选择合适 的偏差控制,其参数为“弦高”和“角 度控制”。弦高表示三角形逼近的绝 对误差,角度控制表示三角形平面与其 逼近的曲面切平面夹角的余弦。很多时 候采用其默认值可能不能保证其转换精 度,一般情况下弦高选择0.001至0.002(英寸)或0.025至0.05(m m)为宜,角度 控制可在0.5至1之间选择,也可根据情 况选择较小的值。

  导出的S T L文件可以直接导入到3DS MAX中,但是如果在Pro/ENGINEER 中对模型添加了颜色(见图1),则这 些颜色信息将在3DS MAX中丢失,也就分是说导出的S T L文件并不带有颜色信 息,而且无论P r o/E N G I N E E R文件是由 多少部分组成的装配整体,导入到3D S M A X中其文件都是一个整体,并不能单 独为其添加颜色。这样对于在Virtools 中进行模型编辑将会带来麻烦,使之 很难有零件的动作行为。但是3DS MAX 中的修改功能可以弥补这个不足,如 果在添加完颜色后想减少模型的组成,也可选择“附加”,来减少模型面的组成,如图2所示。如果有的三角 面片逼近不真实,可以在“分离”后 对单独的面进行优化,以达到较好的 模型效果,然后就可以按照Virtools的 专有格式通过3DS MAX进行导出。

  2.OBJ格式

  OBJ(Wavefront Object)模型文 件为文本类型,结构比较简单,它保存的是一些多边形的信息,诸如顶点 几何坐标、纹理坐标、点与点如何连 线组成线、面等。用三角形面片拼合 就可以构造出三维物体。每一个O B J文 件都附带一个材质库文件,材质库文 件名由O B J文件中“m t l l i b”关键字后 的参数给出,它描述了O B J文件中所使 用的材质信息,结构与OBJ文件类似。

  O B J文件与S T L文件组合模型的方 式类似,都是用三角形面片进行构造 三维物体。正是由于O B J文件本身附带 了材质库文件,这样在Pro/ENGINEER中 的模型颜色信息将不会在导入3D S M A X 后丢失。而且O B J文件也保留了P r o/ E N G I N E E R模型的原组成,但是需要在“组”菜单下进行“解组”,即P r o/ E N G I N E E R的*.a s m文件含有多少个零件 在3D S M A X中解组后就有多少部分,而 并不象S T L文件那样把P r o/E N G I N E E R模 型导成一个整体。但是,由于软件之 间的算法和精度不同,OBJ文件较STL文件容易出现破面,即三角面丢失、产生裂缝或是由材质信息丢失而导致面透明。而3DSMAX中的修改功能亦可以弥补这个不足。

  在从Pr o/ENGINEE R导出OBJ 文件时除了“弦高”和“角度控 制”这两个参数外,还要根据提示选择要导出的物体以及参考平面,然后导入3D S M A X中,如图3 所示。图3中明显出现了面丢失的 现象,解决方法如下。

  (1)方法一(见图4) 这样便可解决由于颜色丢失而产生的破面。

  (2)方法二(见图5) 还可以对其边、面进行拉伸从而修补破面,修补后如图6所示。修补后 的模型就可以导入到Virtools中了。

  3.VRMLVRML是描述多维交互式模拟环境 的一种语言。这种模拟环境,就是通 过全球Internet和World Wide Web上的超链接形成的虚拟世界。虚拟世界所 有组成部分的显示、交互和网络接口 都能用VRML进行描述。

  V R M L的造型不是实体模型而是面模型,VRML不提供对几何形体的精确表达,即VRML所描述的几何形体不能 作为产品设计生产的依据。虽然VRML具有一些简单的基本体素节点,如长方体、球体和圆柱体,但它不支持体 素的布尔运算。对于不完整的基本体素、复杂形体、自由曲面等,VRM L统一使用面片拟合方法实现。

  在Pro/ENGINEER导出VRML 文件的时候,可以选择默认的 设置,也可以将“视图”和“参数”都选择为“无”。导 入到3D S M A X后,其颜色信息 得到了保留,但是会多出许多除了模型之外的其他东西,而 且模型尺寸也较小。首先全部 选择模型后进行放大,以便直 观观察导入的模型;其次所谓的多余东西是相机和辅助对象,这是VRML文件自带的信息,只要在选中后对其进行删除,剩下的就是我们所需 要的模型。

  但是此时的模型已不是Pro/ENGINEER中的组成部分,而是变成了许多的面片,可以利用“附加”功能,按照自己的需要对其进行模型结构的重组。之后就可以按照Virtools的专有格式导入了,此时注意,导入后其模型尺寸比较小,需要在Virtools中进行放大,如图7所示。

  四、比较与分析

  如图8所示,三种格式均采用面片拟合、逼近的方法进行建模,并不像 Pro/ENGINEER那样是实体模型。

  STL文件无论是ASCII码格式还是二进制格式,其定义都非常清晰、明确、易懂。但是STL文件也有如下不足:一是在模型表面上相邻的三角形在S TL文件中不一定保持相邻关系;二是多个三角形的公共顶点坐标被重复地列出,而且其不带有色彩信息,并自动将模型合并成了一个整体。正是由于以上原因,STL格式对于零件较多、体积较大的Pr o/ENGINEER模型将会出现倒角不明显,三角面片逼近圆形、不真实的缺点。

  OBJ文件虽然带有颜色信息,但是其出现破面的几率较STL文件高,其缺陷表现为:法向量错 误、多边共线、裂缝或覆盖、孔洞,由此而导致破面的出现。然而OBJ格式对于任何模型,无论其 大小,其三角面片逼近都是相似的,不会出现部分曲面逼近不真实的情况。

  V R M L文件具有较好的面片拟 合特性,而且其自身还带有鲜明 的颜色信息,对于在3DS MAX中的 优化只是删减多余的部分和对其 面片进行重组。但是对于建模实 体零件较多的模型,导入3DS MAX 后其面片会很多,所以对于面片 重组的运算时间将会延长;但是 如果模型只是在V i r t o o l s中充当 视景的作用则没有实际的动画要求,面片重组可以适当地减少以 缩短运算时间。

  综上所述,对于色彩种类较 少的模型可以采用S T L格式导出, 对于色彩较多且文件较小的模型 可以采用V R M L格式导出,对于色彩较 多且文件较大的Pro/ENGINEER模型可以 采用O B J格式导出。其三种格式各有优 点,在实际操作中要灵活采用。

  五、应用

  将Pr o/ENGINEER的三维模型通过上述方法进行格式转换,成功导入到Virtools中后进行三维驱动,建立了电气设备的虚拟操作实验室。由于该实验室的模型要有明显的颜色信息,且大部分只是作为没有动画的场景,故而主要采用OBJ格式和VRML格式进行转换和优化,最后达到了模型作为虚拟场景的要求,如图9所示。

  六、结论

  无论哪一种文件格式,都有可能出现破面或是逼近不真实的问题,但 都可以利用前述方法通过3DS MAX对其 进行优化,使得P r o/E N G I N E E R模型在 不丢失原特征的情况下较好地导入到 Virtools中。对于电气类的元件模型, 针对其颜色信息多、模型拟合面片较少,且大多是作为固定的视景模型使 用的特点,比较适宜采用O B J格式和 VRML格式进行格式转换。

  由于本文所采用的三种格式都是 C A D软件中比较常见的类型,其模型转 换方法不仅适用于Pro/ENGINEER和3DS M A X之间,同时也为其他C A D软件间的 模型转换提供了参考依据,其模型转 换和优化方法具有一定的普遍性。