Chinese Journal of Ship Research
FORAN导出的JT模型特征节点合并算法
网络出版地址:http://kns.cnki.net/kcms/detail/42.1755.TJ.20170512.1255.028.html期刊网址:www.ship-research.com引用格式:方雄兵. FORAN JT模型特征节点合并算法[J].中国舰船研究,2017,12(3):43-50,148.导出的FANG X B. An algorithm for merging part nodes of JT models exported by FORAN[J]. Chinese Journal of Ship Research,2017,12(3):43-50,148. 方雄兵 430064中国舰船研究设计中心,湖北 武汉 FORAN V70 R2.0(及以上版本)输出的JT摘 要:[目的]由于 模型中存在很多同名的特征节点,导致采用间隙FORAN分析软件对其进行分析时时间消耗加大且间隙分析结果难以处理。针对该问题,[方法]在研究 导出的JT文件装配结构和蕴含信息(几何信息、材料属性信息等)的基础上,提出一种特征节点合并算法。该算法由坐4 C++及 JT Open Toolkit实标变换、模型节点更名、节点几何数据移动和材料属性处理 个步骤构成。然后,利用JT 1 JT现所提出的算法。[结果]结果显示,利用该算法处理后的 模型只包含 个装配节点且保留了原始 模型的内JT文在信息,可为后期间隙分析提供有效的输入数据。[结论]大量的实例验证了所提出算法的有效性,处理后的7%~20%。件大小可减少关键词:JT模型;装配层次;特征合并;图形变换;间隙分析;可视化中图分类号:U662.9 文献标志码:A DOI:10.3969/j.issn.1673-3185.2017.03.007
An algorithm for merging part nodes of JT models exported by FORAN
FANG Xiongbing China Ship Development and Design Center,Wuhan 430064,China
Abstract: Many cognominal parts exist in JT models exported by FORAN V70 R2.0 software, and this leads to an increase in time consumption and the space analysis results becoming hard to process when using clearance analysis software to perform distance computing for such JT models. Aiming at this problem, an algorithm for merging component nodes is put forward based on investigating the assembly configuration and inherent information (i.e. geometric and material information) of JT models created by FORAN. The method is composed of four steps: coordinate transformation, model node renaming, node geometric data transferring and material attribute processing. Finally, the proposed method is implemented by C++ and JT Open Toolkit. The results show that the new JT models generated by the proposed method are comprised of only one assembly node, and they preserve the intrinsic information of the original JT models. Its validity is illustrated by a great deal of examples, and the content of the worked JT models are reduced by about 7% to 20%. Key words: JT model;assembly hierarchy;component merging;graphic transformation;clearance analysis;visualization
0引言
当前,大型复杂产品的数字化设计技术已从CAD二维 图逐步过渡到以三维模型为主并向数字样机、虚拟产品与过程、协同式设计与建造的方 CAD向迈进。三维 模型作为产品设计与建造的基础,其轻量化和简化处理对于数据交换与传[1] [2-3] [4]输 、工程仿真与分析 、可视化协同 、虚拟展示与训练[5-6]等应用均有重要意义。在实际工程应用中,基于具体的软件和(轻量化)模型开展应
用时,通常需要对模型进行一定的处理。利用FORAN JT软件导出的零件 模型开展舱室或区域JT内零件之间的间隙分析时,发现零件 模型的装配结构中包含多个同名特征节点,使得间隙分析的时间增加、问题记录难以处理,因此需要对其进行处理。STEP,IGES,3DXML,JT国内外学者在 等格式模型的处理与应用方面开展了大量工作。王永STEP剑[7 ]介绍了国外 标准的应用动态以及接口STEP(标准号:ISO实现方法。李玉刚等[8]分析了10303)在船舶领域的标准化与应用情况。王晓斌3DXML等[9 ]针对达索的 格式内容进行了深入研CAD IGES究。黄靖等[10]研究了常用 软件导出的格式模型内容,提出了基于图表示与产生式规则IGES数据交换算法。张西厂等[11]研究了基于的JT的航空发动机图解图生成方法。殷明强等[12]研究了在不改变装配模型格式和外观前提下,装配JT体轻量化的方法。上述工作为 文件的深入研究和应用提供了参考。JT作为一种新的国际标准格式,已被众多商FORAN JT用软件所支持。为解决 导出的 模型存在较多同名特征节点而不适合间隙分析的问题, FORAN JT本文将在分析 导出的零件 模型装配及内蕴信息的基础上,基于齐次坐标与矩阵变换[13],提出一种特征节点合并算法。该算法可对同名的特征节点进行合并,对保留的唯一节点进行更JT名。并且,将用应用案例表明,处理后的零件模型装配结构中只有一个节点、更加轻量化,能够满足后续间隙分析需要。
1 JT格式及模型装配结构 1.1 ISO JT标准格式简介
JT是德国西门子公司推出的一种轻量化文件格式,目前已被国际标准化组织(ISO)认定为国际标准(ISO IS 14306:2012)。该格式提供了一种高3D效的 产品定义方法,可在产品设计、仿真、制造以及后期技术支持等更大范围内应用于协作、验证与可视化。JT文件由一序列的块或片段所构成,其基本1所示,包括:文件头(File header)、内容结构如图TOC segment Data segment)。目录段( )和数据段( TOC文件头始终在文件最前的位置,而 的位置则可以在文件中间紧随文件头,也可以在文件的末JT尾。完整的 文件,其数据段内容非常丰富,包含逻辑场景图(LSG)、形状细节层次段、JT边界表 示段、XT边界表示段、线框段、元数据段、产品制JT造信息段等。在 模型数据定义中,经常使用以下几种坐标系统,包括局部坐标系、节点坐标系、世界坐标系和视点坐标系。当前,众多的成熟商JT数据的导入/导出接口。用软件均提供了
1.2 FORAN导出的JT模型分析 1.2.1 JT模型装配结构分析
SENER FORAN V70西班牙 公司的造船软件R2.0(以下简称FORAN)提供了导出JT格式三维2模型的功能,导出方法有 种:一种是手工操作方FORAN式,在 软件中打开需要转换的模型,点击JT JT;另导出功能菜单,将打开的模型导出为 一种是基于脚本的转换方式,即通过转换命令形成的脚本完成模型的轻量化转换。通过开发这种转换脚本文件的生成工具,可生成基于一定导出规JT则的 转换脚本,利用该脚本,可批量导出全船JT模型。导出的粒度也存在多种形式:1)结构和基座可以分段形式导出;其他模型(设备、水管、风管、电缆、电缆托架等)以区域/系统方式导出为一个JT整体的 文件,该文件包含了大量的零件级模型;2 JT。)可以选择单个零件三维模型并导出为JT前一种形式导出的 文件通常包含数量较多的零件,如一个区域内所有的设备,可对其进行分JT 1个设备、1根管子、1解,生成零件级的 模型,如T 2 JT个 型材。如图 所示,利用 可视化浏览工具, JT 3可以看出导出的零件级 文件装配结构为 级, 1 2第 级为根装配节点(默认节点),第 级为零件级3 2装配节点,第 级为特征装配节点。特别地,第Para⁃级零件级节点下存在数量众多的同名(如metric Polyhedron)特征节点。和
1.2.2 JT模型内容分析
2(a)中的 JT进一步地,通过对图 文件内容进
行分析,发现其文件内部结构及各部分的主要信1息如表 所示。1,FORAN JT根据表 导出的 文件基本结构为JtkAssembly(即名称为 E CM-ES-1一个 的零件级JtkPart装配)节点下挂若干个 节点(即名称为Parametric Polyhedron的特征节点),JtkPart和 包含具体的几何模型数据,主要信息有:该特征节点的版本、ID号、单位、变换矩阵(齐次坐标表示)、LOD层级、形状面片顶点、形状法向量、材料属性等。3 TC Visualization Mockup(以下简如图 所示,借助 Vis Mockup)高级功能(操作—检查器),可以查称 JtkPart看特征节点(即 节点)下的数据。每个JtkPart节点下有多个细节层次,每个细节层次下JtkShape)。又包含一定数量的面片(即综上,FORAN JT 4导出的 模型装配结构如图所示。
2 问题描述
Vis Mockup 2 JT基于 开展 个零件 模型的间隙Vis Mockup 1 JT分析时, 会将第 个 模型的每个特
征节点(JtkPart)与第 2 JT个 模型的每个特征节点进行间隙计算(只进行到这一级)。然而,FORAN JT导出的 模型装配结构中往往存在多个同名的JtkPart Parametric,Polyhedron特征节点,如 或是一些不规范命名的节点,导致在后期进行间隙分析JtkPart时需要分析计算的 对数较多,分析时间增长,且间隙分析结果记录项(Parametric,Parametric,距离值,……)中的特征节点无法与其所属的零件A,零件B)一一对应,导致两个JT名称(零件 模型的间隙分析结果难以处理。假设,参与间隙分析JT JtkPart,则的两个零件 模型分别包含m和 n个JtkPart在间隙分析时需要计算m×n对 之间的距离值,并对m×n个间隙记录项进行分析处理。JT因此,要提高 模型的间隙分析和结果处理FORAN JT效率,需要对 导出的零件级 模型进行JT 点(JtkPart)进行以下处理:将 模型中的特征节JT 1合并,合并后的 模型只有 个特征节点,且其名JT Jt⁃称与合并前的 模型名称相同,即与上一级的 kAssembly节点同名。
3 JT模型特征节点合并算法 3.1 问题分析
FORAN JT通过对 导出的 模型文件内容的分JT JtkAssembly析,可以看出 文件基本结构为一个2(a E CM-ES-1 (如图 )中的 )节点,下挂若干个JtkPart 2(a)中的多个 Parametric节点,如图 节点, 2(b)中的多个 Polyhedron 节点。JtkPart图 节点包JtkShape含具体的几何模型数据,即 面片的顶点、JtkAssembly法向量。由于 节点不能直接包含几何模型数据,所以要完成合并操作必须保留一个JtkPart JtkPart节点,而将其他所有 下的几何数据JtkPart都合并到这个保留的 下,并将保留的JtkPart进行输出。除合并几何数据外,还需要对材料属性等信息进行处理,并将唯一保留的JtkPart JtkAssembly更换为上一级 的名称,如2(a)中的ECM-ES-1。图 JtkPart要实现对 几何数据的合并,需要解决以下关键问题:零件级(JtkAssembly)节点下存在JtkPart多个 节点,每个节点均有自己独立的坐标JtkTRANSFORM;若直接将系,即各自的变换矩阵 JtkPart几何数据复制到保留的 节点下,会导致顶点位置及法向量错误。为实现几何数据正确合JtkPart并,需要将被移动的 节点坐标系与保留的JtkPart节点坐标系进行统一。处理该问题可采用2 1 JtkPart如下 种方式: )将其他 节点几何数据统JtkPart一到保留的 节点局部坐标系中,这种方式2个矩阵相乘[13],并需要完成变换矩阵求逆以及JtkPart将结果矩阵应用于其他所有 节点下的几何数据;2)将 JtkPart所有 节点下的几何数据均统一JtkPart到世界坐标系中,即将各 节点变换矩阵应用到各自的几何数据上。从计算量考虑,本文采2用第 种方法。JtkPart节点几何数据合并处理流程简单描述如下。1 JtkPart )对于每一个 节点,将其变换矩阵(JtkTRANSFORM )应用到其下所有的几何数据(顶点和法向量)上,即所有的几何数据均以世界坐标系为参照,然后将该变换矩阵设置为单位矩阵。2 1 JtkPart 2~n )保留第 个 节点,将第 个JtkPart 1 JtkPart节点的几何数据合并到第 个 节点2~n JtkAssembly下,并将第 个节点从上级 节点下移除。
3.2 算法设计与描述 3.2.1 算法设计与分析
综合上述分析,FORAN JT导出的 模型进行特征节点合并需要解决以下问题:1)JtkPart节点几何数据与属性信息的移动;2)若存在多个JtkPart JtkPart节点数据删除;3)合节点,需要将被合并的JtkPart并后将保留的 节点更名,并将上一级JtkAssembly JtkPart节点移除或者返回保留的 节JT JT点。完整的 特征节点合并处理过程见 模型特征节点合并算法(以下简称“JT合并算法”),具体如下。输入:FORAN V70 R2.0 JT导出的 模型。1输出:装配结构只有 个名称为零件名的JtkAssembly节点,且保留原始模型几何数据和属JT性信息的 模型。处理过程: 1 JT JtkPart )计算 装配中特征节点 的数量numofPart; 2)将第1 JtkPart个 的变换矩阵应用到其下各JtkShape个细节层中所有 下的数据上,即所有几1 JtkPart何数据的坐标为世界坐标;将第 个 更名JtkAssembly FORAN为上一级的 节点名称,即 导JT出的 模型的名称。3)将第(i 2~numofPart)个 JtkPart的变换矩阵JtkShape应用到其下各个细节层中所有 下的数据2)中操作相同;将第 2~numofPart)个 Jtk⁃上,与 (i Part 1 JtkPart几何数据移动至第 个 下;将第i (2~numofPart)个 JtkPart的材料属性应用到其下JtkShape 2~nu⁃各个细节层中所有 数据上;将第(i JtkPart放入至1个队列remChild中。mofPart)个4)将 remChild JtkPart中的所有 数据移除。5)返回第1 JtkPart个 的指针。JT对上述 合并算法进行分析,其计算复杂度为 O(numofLOD × numofShape* (numofVertex + nu⁃ JtkPart mofNormal)),其中 numofLOD 为每个 的细JtkShape节层次, numofShape为每个细节层中 的数量, numofVertex 和 numofNormal 分别为每个JtkShape的顶点数量和法向量数量。通常情况FORAN JT 3,下,对 导出的 模型,其 numofLOD 为JtkShape每个细节层中包含的 数量均相同,每个JtkShape 3 4为一个多边形,有 或 个顶点,即numof⁃ 3 4。在采用齐次Vertex 和 numofNormal 为常数 或坐标表示时,JtkShape 4个各个顶点和法向量均有分量。因此,JT合并算法计算复杂度为一个关于JtkShape 数量的线性函数 O(numofShape),而 JtkShape CAD数量 numofShape取决于 软件表达几何体外观的精细程度以及几何体自身的平滑程度。
3.2.2 算法描述
JT下面采用伪代码对 合并算法进行描述。2表 中,各主要函数原型定义如下。PARTS_MERGE(JtkAssembly* assembly)将assembly JtkPart指向的装配节点下的其他 特征节1 JtkPart 1点移动到第 个 节点下,对第 个特征节点1进行更名,即保留第 个节点,最后将该特征节点指针返回。APPLY_TRANSFORM (JtkPart* part, Jtk⁃ Transform* pxform)将变换矩阵 pxform part应用到JtkShape下各细节层中所有 下的数据上。SET _PART _ NODE _ NAME(JtkHierarchy* part0,const char* newname)将 part0指向的特征节newname newname点赋值为新的名称 ,本算法中为零件的名称。MOVE_SHAPES(JtkPart* parSource,JtkPart* parDest)将 parSource中的几何数据移动到特征节parDest点 下。APPLY_MATERIAL(JtkPart* part,JtkMateri⁃ al* material)将 material part中的材料属性应用到指向的特征节点下所有的几何数据上。
4 算法实现与案例 4.1 节点处理工具设计
考虑到船舶零件数量大的特点,节点合并工FORAN JT具应具备对 导出的零件级原始 模型进JT行批量处理的功能,处理后的 存储于本地公共5文件夹中。节点合并处理工具界面如图 所示,用户选择文件或文件夹选项后,可进一步选择本JT JT地需要处理的原始 文件(要求:该 为零件Visual Studio 2010,采用C++语言以及级)。基于JT Open Toolkit API JT提供的 实现了 合并算法。
4.2 案例与讨论 4.2.1 测试案例
FORAN JT选择 导出的 模型,对所提出的算法进行验证,具体步骤如下。1)选择本地需要进行节点合并处理的JT 文JT件,可以是单个分解处理后的 文件或包含多个JT 6 2(b)中的文件的文件夹。如图 所示,选择图C:\temp\AS- **** -XX13JZ.jt基座模型 为例,说明节点处理工具的用法。该模型处理前文件大小为
33.9 kB,包含27 JtkPart个 节点。2 7 JT )选择“确定”,如图 所示,对 文件进行节点合并处理。3)节点合并后的JT文件存放在默认的文件8 JT Vis Mockup 10.1夹中。如图 所示,利用 打开AS- **** -XX13JZ节点合并处理后的 模型文件, 1可以看到该基座模型只有 个顶级装配节点,其下无其他节点。
JtkPart节点合并处理后,AS- **** -XX13JZ.jt 27 kB,只有1模型大小为 个节点。以下给出了其8~ 11 9(b)、他一些测试案例,如图 图 所示,从图10(b)和图11(b)可以看出,处理后的JT图 只包含1 3个节点。处理前、后模型数据对比如表 所示。3可以看出,FORAN从表 导出的原始零件级JT 7%模型经过节点合并处理后,文件大小减少了~20% 9~ 11 ,相比未处理前更加轻量化。图 图 分3 3,8 10 JT别为表 中编号为 和 的零件级 模型进行节点处理前、后的对比。其中,结构类原始零件级JT 1模型通常只有 个特征节点,通过对特征节点下的细节层次以及三角形面片数量进行分析,发
8 10现编号为 的模型与编号为 的模型相比,其Part 1,细节层次数量均为3,每个细节点数量均为 JtkShape 28节层次包含的面片( )数量分别为 和1 124。3 JT从表 以及对 模型内部信息进行深入分3 JT析发现,表 中 模型轻量化百分比大小与模型包含特征节点数量、细节层次、各层的三角形面片数、材料信息大小等有关。模型建模精度越高,包含的特征节点数量以及三角形面片数越大,从而轻量化率越高。
4.2.2 讨 论
1 JT JT )利用 合并算法处理后的 模型(零件1 JT级)只包含 个特征节点,保留了原始 模型的名称、所有几何数据和材料属性等信息。2)在完成节点合并处理后,2 JT个零件级 模1,其问题记录项型之间间隙分析计算次数变为1 0 A数量为 或 ,记录项主要元素为“(零件 的名B称,零件 的名称,距离值,……)”,根据问题记录项的元素可准确定位到具体零件上。3 FORAN )尽管本文提出的算法主要针对V70 R2.0(及以上版本)导出的JT模型,然而当前JT很多格式定义的三维模型在装配结构上与 非3DXML,SMG常类似,如 格式,论文所提出的算法JT对于其他软件导出的 以及其他格式定义的三维模型装配结构与几何数据处理问题也有一定的SMG,3DXML,STEP借鉴意义,如 等格式。
5结语
JT作为一种国际标准格式,其包含的信息非常丰富,对船舶这类零部件数量大的应用领域而言,可以支持大场景模型的高效可视化以及全生 FORAN JT命周期的协同。本文对 导出的 模型存在大量同名特征节点而导致后续的间隙分析效率低、结果难以处理的问题进行了专门研究,给出了JT 1个一种节点合并算法,处理后的 模型只包含JT节点,保留了原始 所有的几何与材料属性等信JT 7%~20%,息,并且比处理前的 文件大小减少了为支持船舶等领域大装配的应用,如船舶舱室三维模型间隙分析、可视化、虚拟维修与培训等,提供了有效的输入数据。大量仿真案例验证了所提出算法的有效性。
参考文献:
[1] 曲面无损压缩算法[J].王启富,贾成,刘俊,等.三维CAD模型中自由曲线报,2007,19(9):1200-1205.计算机辅助设计与图形学学WANG Q F,JIA C,LIU J,et al. Lossless compres⁃ sion of free-form curve and surface in CAD models[J]. Journal of Computer-Aided Design & Computer Graph⁃ ics,2007,19(9):1200-1205(in Chinese). [2] 刘清华,李帅,刘云华,等.协同环境中基于轻量化的 3D异构 CAD模型干涉检查[ J]. 中国机械工程, 2013,24(1):56-60,77.
LIU Q H , LIS , LIU Y H ,et al. Collaborative support⁃ ed 3D heterogeneous CAD model interference check⁃ ing based on lightweight model[J]. China Mechanical Engineering,2013,24(1):56-60,77(in Chinese). [3] 姜丽萍,陈文亮,黄大兴.基于轻量化模型的飞机装配过程虚拟仿真方法[ J]. 航空制造技术, 2013 (12):26-29. JIANG L P,CHEN W L,HUANG D X. Virtual simu⁃ lation method of aircraft assembly procedure based on lightweight model technology[J]. Aeronautical Manu⁃ facturing Technology,2013(12):26-29(in Chinese). [4] 巫鹏伟,卢鹄,范玉青.协同共享数据的轻量化模型[J]. 航空维修与工程,2010(2):56-58. WU P W LUH ,FAN Y Q. Lightweight model of col⁃
, laborative sharing data[J]. Aviation Maintenance & Engineering,2010(2):56-58(in Chinese). [5] 谈敦铭,赵罡,薛俊杰. 飞行器大数据量CAD模型并行预处理[ J]. 计算机辅助设计与图形学学报, 2013,25(3):425-432. TAN D M ,ZHAO G,XUE J J. Parallel pre-process⁃ ing of massive aircraft cad models[J]. Journal of Com⁃ puter-Aided Design & Computer Graphics,2013,25 (3):425-432(in Chinese). [6] LEU M C ,EIMARAGHY H A, NEE A Y C ,et al. CAD model based virtual assembly simulation,plan⁃ ning and training[J]. CIRP Annals -Manufacturing