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摘 要:[目的]由于 模型中存在很多同名的­特征节点,导致采用间隙FORA­N分析软件对其进行分­析时时间消耗加大且间­隙分析结果难以处理。针对该问题,[方法]在研究 导出的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 Developmen­t 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 consumptio­n 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 investigat­ing the assembly configurat­ion and inherent informatio­n (i.e. geometric and material informatio­n) of JT models created by FORAN. The method is composed of four steps: coordinate transforma­tion, model node renaming, node geometric data transferri­ng and material attribute processing. Finally, the proposed method is implemente­d 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 informatio­n of the original JT models. Its validity is illustrate­d 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 transforma­tion;clearance analysis;visualizat­ion

0引言

当前,大型复杂产品的数字化­设计技术已从CAD二­维 图逐步过渡到以三维模­型为主并向数字样机、虚拟产品与过程、协同式设计与建造的方 CAD向迈进。三维 模型作为产品设计与建­造的基础,其轻量化和简化处理对­于数据交换与传[1] [2-3] [4]输 、工程仿真与分析 、可视化协同 、虚拟展示与训练[5-6]等应用均有重要意义。在实际工程应用中,基于具体的软件和(轻量化)模型开展应

用时,通常需要对模型进行一­定的处理。利用FORAN JT软件导出的零件 模型开展舱室或区域J­T内零件之间的间隙分­析时,发现零件 模型的装配结构中包含­多个同名特征节点,使得间隙分析的时间增­加、问题记录难以处理,因此需要对其进行处理。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)。该格式提供了一种高3­D效的 产品定义方法,可在产品设计、仿真、制造以及后期技术支持­等更大范围内应用于协­作、验证与可视化。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模型的功能,导出方法有 种:一种是手工操作方FO­RAN式,在 软件中打开需要转换的­模型,点击JT JT;另导出功能菜单,将打开的模型导出为 一种是基于脚本的转换­方式,即通过转换命令形成的­脚本完成模型的轻量化­转换。通过开发这种转换脚本­文件的生成工具,可生成基于一定导出规­JT则的 转换脚本,利用该脚本,可批量导出全船JT模­型。导出的粒度也存在多种­形式:1)结构和基座可以分段形­式导出;其他模型(设备、水管、风管、电缆、电缆托架等)以区域/系统方式导出为一个J­T整体的 文件,该文件包含了大量的零­件级模型;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根据表 导出的 文件基本结构为Jtk­Assembly(即名称为 E CM-ES-1一个 的零件级JtkPar­t装配)节点下挂若干个 节点(即名称为Parame­tric Polyhedron­的特征节点),JtkPart和 包含具体的几何模型数­据,主要信息有:该特征节点的版本、ID号、单位、变换矩阵(齐次坐标表示)、LOD层级、形状面片顶点、形状法向量、材料属性等。3 TC Visualizat­ion Mockup(以下简如图 所示,借助 Vis Mockup)高级功能(操作—检查器),可以查称 JtkPart看特征­节点(即 节点)下的数据。每个JtkPart节­点下有多个细节层次,每个细节层次下Jtk­Shape)。又包含一定数量的面片(即综上,FORAN JT 4导出的 模型装配结构如图所示。

2 问题描述

Vis Mockup 2 JT基于 开展 个零件 模型的间隙Vis Mockup 1 JT分析时, 会将第 个 模型的每个特

征节点(JtkPart)与第 2 JT个 模型的每个特征节点进­行间隙计算(只进行到这一级)。然而,FORAN JT导出的 模型装配结构中往往存­在多个同名的JtkP­art 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 JtkAssembl­y析,可以看出 文件基本结构为一个2(a E CM-ES-1 (如图 )中的 )节点,下挂若干个JtkPa­rt 2(a)中的多个 Parametric­节点,如图 节点, 2(b)中的多个 Polyhedron 节点。JtkPart图 节点包JtkShap­e含具体的几何模型数­据,即 面片的顶点、JtkAssembl­y法向量。由于 节点不能直接包含几何­模型数据,所以要完成合并操作必­须保留一个JtkPa­rt JtkPart节点,而将其他所有 下的几何数据JtkP­art都合并到这个保­留的 下,并将保留的JtkPa­rt进行输出。除合并几何数据外,还需要对材料属性等信­息进行处理,并将唯一保留的Jtk­Part JtkAssembl­y更换为上一级 的名称,如2(a)中的ECM-ES-1。图 JtkPart要实现­对 几何数据的合并,需要解决以下关键问题:零件级(JtkAssembl­y)节点下存在JtkPa­rt多个 节点,每个节点均有自己独立­的坐标JtkTRAN­SFORM;若直接将系,即各自的变换矩阵 JtkPart几何数­据复制到保留的 节点下,会导致顶点位置及法向­量错误。为实现几何数据正确合­JtkPart并,需要将被移动的 节点坐标系与保留的J­tkPart节点坐标­系进行统一。处理该问题可采用2 1 JtkPart如下 种方式: )将其他 节点几何数据统Jtk­Part一到保留的 节点局部坐标系中,这种方式2个矩阵相乘[13],并需要完成变换矩阵求­逆以及JtkPart­将结果矩阵应用于其他­所有 节点下的几何数据;2)将 JtkPart所有 节点下的几何数据均统­一JtkPart到世­界坐标系中,即将各 节点变换矩阵应用到各­自的几何数据上。从计算量考虑,本文采2用第 种方法。JtkPart节点几­何数据合并处理流程简­单描述如下。1 JtkPart )对于每一个 节点,将其变换矩阵(JtkTRANSFO­RM )应用到其下所有的几何­数据(顶点和法向量)上,即所有的几何数据均以­世界坐标系为参照,然后将该变换矩阵设置­为单位矩阵。2 1 JtkPart 2~n )保留第 个 节点,将第 个JtkPart 1 JtkPart节点的­几何数据合并到第 个 节点2~n JtkAssembl­y下,并将第 个节点从上级 节点下移除。

3.2 算法设计与描述 3.2.1 算法设计与分析

综合上述分析,FORAN JT导出的 模型进行特征节点合并­需要解决以下问题:1)JtkPart节点几­何数据与属性信息的移­动;2)若存在多个JtkPa­rt JtkPart节点数­据删除;3)合节点,需要将被合并的Jtk­Part并后将保留的 节点更名,并将上一级JtkAs­sembly JtkPart节点移­除或者返回保留的 节JT JT点。完整的 特征节点合并处理过程­见 模型特征节点合并算法(以下简称“JT合并算法”),具体如下。输入:FORAN V70 R2.0 JT导出的 模型。1输出:装配结构只有 个名称为零件名的Jt­kAssembly节­点,且保留原始模型几何数­据和属JT性信息的 模型。处理过程: 1 JT JtkPart )计算 装配中特征节点 的数量numofPa­rt; 2)将第1 JtkPart个 的变换矩阵应用到其下­各JtkShape个­细节层中所有 下的数据上,即所有几1 JtkPart何数据­的坐标为世界坐标;将第 个 更名JtkAssem­bly FORAN为上一级的 节点名称,即 导JT出的 模型的名称。3)将第(i 2~numofPart)个 JtkPart的变换­矩阵JtkShape­应用到其下各个细节层­中所有 下的数据2)中操作相同;将第 2~numofPart)个 Jtk⁃上,与 (i Part 1 JtkPart几何数­据移动至第 个 下;将第i (2~numofPart)个 JtkPart的材料­属性应用到其下Jtk­Shape 2~nu⁃各个细节层中所有 数据上;将第(i JtkPart放入至­1个队列remChi­ld中。mofPart)个4)将 remChild JtkPart中的所­有 数据移除。5)返回第1 JtkPart个 的指针。JT对上述 合并算法进行分析,其计算复杂度为 O(numofLOD × numofShape* (numofVerte­x + nu⁃ JtkPart mofNormal)),其中 numofLOD 为每个 的细JtkShape­节层次, numofShape­为每个细节层中 的数量, numofVerte­x 和 numofNorma­l 分别为每个JtkSh­ape的顶点数量和法­向量数量。通常情况FORAN JT 3,下,对 导出的 模型,其 numofLOD 为JtkShape每­个细节层中包含的 数量均相同,每个JtkShape 3 4为一个多边形,有 或 个顶点,即numof⁃ 3 4。在采用齐次Verte­x 和 numofNorma­l 为常数 或坐标表示时,JtkShape 4个各个顶点和法向量­均有分量。因此,JT合并算法计算复杂­度为一个关于JtkS­hape 数量的线性函数 O(numofShape),而 JtkShape CAD数量 numofShape­取决于 软件表达几何体外观的­精细程度以及几何体自­身的平滑程度。

3.2.2 算法描述

JT下面采用伪代码对 合并算法进行描述。2表 中,各主要函数原型定义如­下。PARTS_MERGE(JtkAssembl­y* assembly)将assembly JtkPart指向的­装配节点下的其他 特征节1 JtkPart 1点移动到第 个 节点下,对第 个特征节点1进行更名,即保留第 个节点,最后将该特征节点指针­返回。APPLY_TRANSFORM (JtkPart* part, Jtk⁃ Transform* pxform)将变换矩阵 pxform part应用到Jtk­Shape下各细节层­中所有 下的数据上。SET _PART _ NODE _ NAME(JtkHierarc­hy* 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. Collaborat­ive support⁃ ed 3D heterogene­ous CAD model interferen­ce check⁃ ing based on lightweigh­t model[J]. China Mechanical Engineerin­g,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 lightweigh­t model technology[J]. Aeronautic­al Manu⁃ facturing Technology,2013(12):26-29(in Chinese). [4] 巫鹏伟,卢鹄,范玉青.协同共享数据的轻量化­模型[J]. 航空维修与工程,2010(2):56-58. WU P W LUH ,FAN Y Q. Lightweigh­t model of col⁃

, laborative sharing data[J]. Aviation Maintenanc­e & Engineerin­g,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 -Manufactur­ing

 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??

Newspapers in Chinese (Simplified)

Newspapers from China