欢迎来到天天文库
浏览记录
ID:11715604
大小:46.00 KB
页数:13页
时间:2018-07-13
《siemens plm sortware征文:ug openflight数据交换输出接口开发技术研究_产品创新数字化(plm)_pdm-plm_803》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SiemensPLMSortware征文:UGOpenFlight数据交换输出接口开发技术研究_产品创新数字化(PLM)_PDM/PLM 1前言 Unigraphics(UG)软件是高端CAD/CAE/CAM系统,目前在汽车、航空航天、机械制造等领域应用广泛。OpenFlight格式是MultiGen-Paradigm公司设计开发的视景仿真数据格式,目前广泛应用于视景仿真、虚拟现实等技术领域,它是Vega、VegaPrime等视景仿真开发平台的专用数据格式,多数虚拟现实开发环境都与之兼容。 截至到目前,UG不提供OpenFlight数据交换接口,无法直
2、接把UG模型文件转换为OpenFlight数据文件。然而在场景漫游、虚拟装配/拆卸、虚拟培训、虚拟样机等众多领域,常常需要把UG模型数据转换为OpenFlight数据格式文件。目前较为常用的技术途径是把UG文件转换为某种中性格式(如VRML、STL、PLY等),然后通过某个商用转换软件把中性文件转换为OpenFlight数据文件,这种方式经过多次数据转换,缺陷较大,比较突出的问题是模型的拓扑结构和装配层次在转换过程中的丢失以及转换后生成的多边形数量难以控制。 为解决上述问题,必须开发UG到OpenFlight的数据交换接口。 2文件描述及组织方式分析
3、 UG和OpenFlight之间的模型转换问题源于视景仿真环境与CAD环境中对形体描述方法的差异,UG采用参数曲面来描述三维几何形体并保留了模型的建模过程,OpenFlight则采用多边形描述任意几何,并通过多边形数量的增减、纹理映射实现对物体的细节描述。 UG几何建模核心Parasolid的模型结构(图1)包括拓扑、几何和相关数据三个部分。其中装配件是一个对其它装配件或体的指针的集合;每一个指针被称为一个实例;变换表示几何操作,包括平移、旋转等,主要依附于实例。 OpenFlight是典型的层次型数据存储格式,各个层次数据之间通过树状结构描述各类节点之间的
4、联系,它通过几何体(Geometry)、层次(hierarchy)和属性(attributes)三种元素定义三维物体。其中几何体把三维模型看作一系列有序坐标点的集合,包含多边形、边和顶点,可以构造平面,并通过一系列平面逼近任意三维形体;几何体通过层次关系组织在一起;属性用来提供节点的附加特性,包括颜色、纹理、材质等属性,从而获得需要的三维可视效果。一个典型的OpenFlight场景结构如图2所示。 可以看出,UG和OpenFlight之间的数据转换的关键在于把参数曲面转换为某种近似程度的多边形网格模型,并按照规定的层次和结构进行多边形网格存储。 3 UGOpenFli
5、ght输出接口开发技术 3.1总体技术方案 图3是UGOpenFlight输出接口开发技术方案流程图,该方案分为UG模型相关信息获取和OpenFlight文件写入两个阶段,第一阶段通过UG提供的二次开发接口NXOpenC和NXOpenC++遍历需要转换的UGCAD模型,通过开发实现参数曲面离散及多边形网格剖分算法、装配层次和拓扑结构自动提取等算法,把得到的装配层次信息、零部件方位矩阵、相关属性信息、模型拓扑结构和模型多边形网格信息等保存在相应的数据结构中。第二阶段通过OpenFlightAPI把保存的相关信息通过装配层次关系重构、模型拓扑结构重构等算法保存
6、为需要的OpenFlight格式文件。 由于该方案在内部封装实现了参数曲面离散和多边形网格剖分算法,因此可以通过调整相关参数快速方便的得到一系列不同层次细节的多边形网格模型。 3.2数据结构设计 设计结构的设计要同时考虑UG和OpenFlight的文件组织和场景描述,对于UGCAD模型而言,分为装配模型和零件模型两类,UG中的装配以树状结构组织装配中的组件和零件,一个部件文件只能有一个根节点,UG装配文件指向下属部件的几何体及特征,只包含对零件模型的虚拟引用而不包含具体的模型几何,当模型文件修改以后,UG装配中的相关数据会自动更新。设计了类似如下
7、数据结构: structPoint3d{ floatx; floaty; floatz;} //代表三维空间中的一个点坐标。 structPtNorm{floatx_norm;floaty_norm;floatz_norm;}//代表某个点的法向量。 structTriIndex //代表一个三角形网格 {longpt1_idx;longpt2_idx;longpt3_idx;//代表一个三角形的三个顶点的索引值 longpt1_NormIdx;longpt2_NormIdx;lon
此文档下载收益归作者所有