首页> 中国专利> 从CAD系统到三维校审系统的模型转换方法及系统

从CAD系统到三维校审系统的模型转换方法及系统

摘要

本发明公开了一种从CAD系统到三维校审系统的模型转换方法及系统,涉及三维校审技术领域。方法包括:从类型定义文件获取模型中类型信息;建立中间文件,向中间文件写入模型信息、设计条件信息;遍历CAD模型中所有类型,向中间文件写入分类信息及工程属性元信息;遍历CAD模型中所有对象,按类型将对象分类;再按类型逐个对象的输出工程信息、拓扑信息、几何信息;从中间文件保存的几何信息、拓扑信息中构建场景树;从中间文件保存的分类信息、工程信息中构建内容分类树。本发明解重构出的模型能够在面片数据量大、拓扑复杂、分类复杂、工程数据量大的情况下,支持三维校审系统完成主要功能。

著录项

  • 公开/公告号CN102184299A

    专利类型发明专利

  • 公开/公告日2011-09-14

    原文格式PDF

  • 申请/专利号CN201110131011.X

  • 申请日2011-05-19

  • 分类号G06F17/50(20060101);G06F17/30(20060101);

  • 代理机构11002 北京路浩知识产权代理有限公司;

  • 代理人王莹

  • 地址 100085 北京市海淀区上地信息路28号信息大厦A座九层

  • 入库时间 2023-12-18 03:08:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-24

    专利权的转移 IPC(主分类):G06F17/50 登记生效日:20200106 变更前: 变更后: 申请日:20110519

    专利申请权、专利权的转移

  • 2012-10-24

    授权

    授权

  • 2011-11-02

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20110519

    实质审查的生效

  • 2011-09-14

    公开

    公开

说明书

技术领域

本发明涉及三维校审技术领域,特别涉及一种基于中间文件的从CAD系统到三维校审系统的模型转换方法及系统。

背景技术

为了缩短设计周期、提高设计效率、降低设计成本,流程工厂的设计模式已经逐渐由传统的串行或者半并行模式向多设计团队、多专业参与,跨地域、分布式的并行协作设计模式转变。在流程工厂并行协作设计中,每个专业设计时既要满足其它专业在空间布置、工艺条件、运行维护等方面的设计要求,又要对其他专业提出自己的要求。在设计结束后,审核人员要对各个专业的设计结果进行审查,以便及时发现各专业中的设计错误以及各专业间的设计冲突,并将审查结果返还给相关专业的设计人员,这个过程叫做校审。提高校审效率,能够把更多的问题留在设计阶段,减少施工阶段的复工,及其带来的资金浪费、周期延长等问题,因此对于提高流程工厂设计建造效率有着重要意义。

与传统的基于二维图纸的校审相比,利用计算机进行三维校审能够降低审查人员的工作强度,缩短校审时间,提高设计错误及设计冲突的发现率。因此,三维校审成为校审的发展方向。国外大型CAD厂商推出了针对自己CAD系列产品的校审软件,如NavisWorks、SmartPlant Review和PDMS Review等,而国内目前还没有具有自主知识产权的校审软件,对流程工厂三维校审的研究还是空白。

由于各设计专业(比如管道、结构、暖通、电气等)使用的CAD系统不同,导致各专业设计模型数据格式不一致,这要求面向三维校审的模型转换方法必须具有通用性,即能够从不同CAD系统中导出所需设计信息,以重构模型。当多个专业的设计信息均导入三维校审系统后,系统面临信息量巨大,信息结构复杂等问题,这要求面向三维校审的模型转换方法必须具有有效性,重构出的模型能够支持三维校审系统各功能(实时漫游、属性查询、条件查找、碰撞检查等)的高效运行。

显然,现在还未有公开的模型转换方法能够解决从CAD系统到三维校审系统模型转换中存在的CAD系统数据格式不一致、设计信息繁杂等问题,因此需要一种通用的、高效的从CAD系统到三维校审系统的模型转换方法。

发明内容

(一)要解决的技术问题

本发明的目的是如何提供一种从CAD系统到三维校审系统的模型转换方案,以解决各设计专业使用的CAD系统不同,导致各专业设计模型数据格式不一致的问题。

(二)发明内容

为了解决上述技术问题,本发明提供了一种基于中间文件的从CAD系统到三维校审系统的模型转换方法,包括以下步骤:

S1:从类型定义文件获取需要导出的CAD模型中相关类型信息;类型定义文件采用XML格式,其内容包括类型标识在对象扩展数据中的位置、类型标识与类型名称的对应关系、类型间的层次关系、工程属性元信息及位置;

S2:建立基于数据库的中间文件,向中间文件写入模型信息、设计条件信息,模型信息主要包括模型格式、模型版本、模型单位,设计条件信息主要包括针对专业名称、涉及的本专业对象、设计条件的文字描述;

S3:遍历CAD模型中所有类型,向中间文件写入分类信息及工程属性元信息;

S4:遍历CAD模型中所有对象,按类型将对象分类;再按类型输出每个对象的工程信息、拓扑信息、几何信息到中间文件中;

S5:从中间文件保存的几何信息、拓扑信息中构建用于图形描述的场景树,场景树采用八叉树的组织形式;

S6:从中间文件保存的分类信息、工程信息中构建用于属性描述的内容分类树。

其中,所述步骤S2中中间文件为数据库文件,包含Meta表、Condition表、Category表、Property_*表、Object表、Graph表;Meta表描述模型信息,Condition表描述设计条件信息,Category表描述分类信息,Property_*表描述工程信息,Object表描述对象与类型、工程属性的对应关系,Graph表描述对象的几何信息、拓扑信息;在步骤S2中建立Meta表、Condition表、Category表、Object表、Graph表。

其中,所述Meta表包含原CAD模型文件格式(Magic)、模型版本(Version)、模型所用的单位(Unit);Condition表包含设计条件id(COID)、针对专业名称(SubjectName)、涉及的本专业对象(ConditionOID)、设计条件的文字描述(Description);Category表包含类型的id(CID)、该类型的名称(Name)、该类型的父类型id(ParentCID)、该类型下对象所在的工程属性表id(仅对叶子类型有效)(PDID);Property_*表中*指工程属性表id,Property_*表包含属性的id(PID)及工程属性(随类型不同而不同);Object表包含对象的id(OID)、该对象所对应的类型id(CID)、该对象所对应的属性id(PID);Graph表包含对象的id(OID)、该对象的颜色(Color)、该对象的AABB包围盒(BBOX)、该对象所连接的对象id(LinkOID)、该对象所包含的体元集(DATA)。

其中,体元分为一般体元和特殊体元;一般体元有三种:薄壳(Shell)、网格(Mesh)、多边形(Polygon);特殊体元分为:圆柱、斜截圆柱、多棱柱、偏心圆台、同心圆台、天圆地方、矩形断面台、长方体、圆形断面圆环、矩形断面圆环、球、直角楔形体、马鞍形、椭球封头;每个体元包含生成三角面片所需的参数信息,在数据库中以二进制形式存储。

其中,所述步骤S3具体包括以下步骤:

S31:填写Category表;

S32:判断该类型是否为叶子类型,即不可再分的类型。若是,则继续;若否,则结束;

S32:判断其对应的Property_*表是否建立。若否,则建之;若是,则结束。

其中,所述步骤S4包括:对于CAD模型中每个对象执行以下步骤:

S41:填写Object表;

S42:填写相应的Property_*表;

S43:遍历该对象对应的实体(Entity),提取实体中的体元,遍历结束后,填写Graph表。

其中,所述步骤S5包括:

S51:遍历Graph表;

S52:根据BBOX建立八叉树;

S53:根据LinkOID建立对象间拓扑连接;

S54:根据Data中数据形成各对象的体元;

S55:各体元根据其参数形成三角面片。

其中,场景树采用八叉树组织形式,各节点采用AABB包围盒。

其中,所述步骤S6包括:

S61:遍历Category表;

S62:根据Category表中CID字段与ParentCID字段建立类型层次结构;

S63:遍历Object表;

S64:根据CID将对象分类。

其中,所述构建的内容分类树中,内容分类树中对象按类型存放;工程属性信息不直接读入内存,而是放在数据库中;当需要某个对象的工程属性时,查库获取;若要查询某个对象的几何图形时,通过对象id(OID)搜索场景树。

本发明还提供了一种从CAD系统到三维校审系统的模型转换系统,包括:

模型导出模块,位于CAD系统,通过CAD系统提供的开发接口实现。用于读取类型定义文件的内容,根据类型定义文件解析CAD模型,抽取CAD模型中的分类信息、工程信息、拓扑信息、几何信息,并将模型信息(模型版本、模型格式、模型所使用单位),设计条件信息(针对专业名称、涉及的本专业对象、设计条件的文字描述)一并导出到中间文件;

中间文件管理模块,用于查询、增加、修改、删除数据库中Meta表、Condition表、Category表、Property_*表、Object表、Graph表中数据;

模型重构模块,位于三维校审系统,用于从中间文件所存储的信息中,重构出模型的图形描述及属性描述。

其中,所述模型导出模块包括:

类型定义文件读取模块,用于解析XML格式的类型定义文件,获取类型id在对象扩展数据中的位置、类型id的类型名称、类型间的层次关系、工程属性元信息及位置等信息;

分类信息导出模块:用于遍历CAD模型中各类型,将类型id、类型名称、类型间层次关系以及叶子类型所对应的属性元信息,导出到中间文件;

工程信息导出模块:用于读取对象的扩展数据,将对象所属类型及工程属性各数据导出到中间文件;

拓扑信息导出模块:用于遍历某对象连接的对象,将连接对象的id导出到中间文件;

几何信息导出模块:用于遍历某对象的所有实体(Entity),取实体中体元,计算对象的AABB包围盒,将对象的颜色、AABB包围盒、体元信息导出到中间文件。

其中,所述模型重构模块包括:

图形描述重构模块,用于构建场景树,实现模型的几何显示;从中间文件中提取拓扑信息、几何信息,根据AABB包围盒构建基于八叉树的场景树,能够提高渲染效率;根据体元中的参数信息生成各对象的三角面片;

属性描述重构模块,用于构建内容分类树,可以查看各对象的分类以及对象的工程属性;从中间文件中提取分类信息,根据CID与ParentCID建立类型层次结构,根据OID与CID将对象分类;为减少内存消耗,工程属性依然放在数据库中,根据需要,通过对象id(OID),查库获取。

(三)有益效果

本发明的基于中间文件的从CAD系统到三维校审系统的模型转换方法具有以下有益效果:

(1)模型导出方法具有通用性,通过不同的类型定义文件,可以将不同专业所使用的CAD系统中不同模型的设计信息,包括分类信息、工程信息、几何信息、拓扑信息导出到中间文件;

(2)中间文件具有灵活、高效性,中间文件采用数据库形式,具有数据检索准确、存取便捷、资源利用合理、数据恢复容易等特点;

(3)模型重构后用于图形描述的场景树,其基于面向对象的思想,采用八叉树的组织形式,使用AABB包围盒,有效提高了场景渲染效率,能够满足三维校审系统对大规模复杂场景实时漫游功能的需求;

(4)模型重构后用于属性描述的内容分类树,在内存中存放类型间层次关系及对象所属类型信息,而工程属性仍存放在数据库中,有效的节约了内存开销。且内存中对象按类型存放,有效提高了三维校审系统中属性查询及条件查找功能的执行效率。

附图说明

图1是本发明的基于中间文件的从CAD系统到三维校审系统的模型转换方法的流程图;

图2是特殊体元示意图;

图3是管线某部分的连接关系示意图;

图4是场景树结构示意图;

图5是内容分类树结构示意图。

具体实施方式

本发明提出了基于中间文件的从CAD系统到三维校审系统的模型转换方法。一般来说,CAD系统用于模型设计,所含信息量大且复杂,所以模型浏览时速度比较慢。校审系统对信息是只读的,不会改变模型的原有信息,且一般只需要图形、工程、拓扑、分类信息,浏览模型时速度较快。常见的三维校审系统有:NavisWorks、SmartPlantReview和PDMS Review。本发明的方法利用Object ARX为基于AutoCAD的各专业CAD系统(如辅龙的管道设计系统,博超的电气设计系统,浩辰的给排水设计系统等)提供了模型导出插件,从而实现了模型导出功能;将CAD模型的设计信息导出到sqlite数据库中,将这个轻量级数据库作为中间文件;利用MFC以及OpenGL在三维校审系统提供了模型重构功能,使校审人员能够实时查看模型的三维图形以及属性信息。结合附图和实例说明如下。

本发明提出了一种基于中间文件的从CAD系统到三维校审系统的模型转换方法,其流程如图1所示,包括以下步骤:

S1:读入类型定义文件,类型定义文件采用XML格式,其内容包括类型id在对象扩展数据中的位置、类型id与类型名称的对应关系、类型间的层次关系、工程属性元信息及位置。表1是某CAD模型类型定义文件的一部分,其类型间层次关系为:管线={管子、阀门、弯头},阀门={直通阀门、角型阀门、三通阀门},直通阀门={截止阀、球阀、止回阀},表1中也包含类型id的名称及类型id在对象扩展数据中的位置等信息。表2是该类型定义文件中截止阀的属性元信息,截止阀包含的工程属性有管线号、管路等级、尺寸、端面类型、结构类型、压力等级、材料、重量等。

表1

表2

S2:建立中间文件,并向中间文件写入模型格式、模型版本、模型单位等模型信息,针对的专业名称、涉及的本专业对象、设计条件的文字描述等设计条件信息。模型格式指原CAD模型的格式,如DWG;模型单位包括:毫米(mm)、厘米(cm)、分米(dm)、米(m)、千米(km)、英寸(in)、英尺(ft)、英里(mile)等。设计条件信息即某设计专业对其他设计专业所提出的相关设计条件。如设备专业由于需采用某一大型设备,对结构专业提出地面承重要求。中间文件为使用sqlite提供的开发接口所述创建的数据库文件。在该数据库中创建了用于描述模型信息的Meta表、用于描述设计条件的Condition表、用于描述分类信息Category表、用于描述对象与类型及工程属性的对应关系的Object表以及用于描述对象的几何信息及拓扑信息的Graph表。各表结构如下:

表3 Meta表

 字段名  字段类型  键  描述 Dummy  integer  PK check(1)  保证该表只会有一条记录 Magic  text  标识文件格式

 Version  integer  标识模型版本 Unit  text  标识模型所用的单位

表4 Condition表

  字段名  字段类型 键  描述  COID(PK)  integer PK  设计条件id  SubjectName  text  针对的专业名称  ConditionOID  10*integer  涉及的本专业对象id,不超过10个对象  Description  text  设计条件的文字描述

表5 Category表

  字段名  字段类型  键  描述  CID  Integer  PK  每个类型的id  Name  Text  每个类型的名称  ParentCID  Integer  FK(Category.CID)  父类型id  PDID  Integer  该类型下所有对象对应的属性元信息(仅对叶子类型有效)

表6 Object表

  字段名  字段类型  键  描述  OID  Integer  PK  每个对象的id  CID  Integer  FK(Category.CID)  每个对象所对应的类型id  PID  Integer  FK(Property_*.PID)  该对象所对应的属性id

表7 Graph表

  字段名  字段类型  键  描述  OID  integer  PK FK(Object.OID)  每个对象的id,每个对象都有自己的图形描述  Color  integer  以3个byte的形式保存RGB值,每个分量都是0-255  BBOX  2*3*real  AABB包围盒  LinkOID  8*integer  该对象所连接的对象,连接数不会超过8个  Data  blob  以二进制形式存储该对象所对应的所有体元

上表3~7中,PK代表主键,FK代表外键。每个表只能有一个主键,可以有0到多个外键。其中,Graph表中Data以二进制形式存放对象所对应的所有体元信息。体元分为一般体元和特殊体元;一般体元有三种:薄壳(Shell)、网格(Mesh)、多边形(Polygon);特殊体元分为:圆柱、斜截圆柱、多棱柱、偏心圆台、同心圆台、天圆地方、矩形断面台、长方体、圆形断面圆环、矩形断面圆环、球、直角楔形体、马鞍形、椭球封头(依次如图2的(a)~(n)所示);每个体元包含生成三角面片所需的参数信息,如“球:center,radius”。

S3:根据类型定义文件中的信息,由总到分的遍历所有类型,向中间文件写入分类信息及叶子类型的工程属性元信息,对于每种类型执行以下步骤:

(1)在Category表中填写本类型的CID、Name、PDID字段,填写子类型的CID、ParentCID字段;

(2)判断本类型是否有子类型。若无,则继续;若有,则结束;

(3)判断本类型对应的Property_*表是否建立。若否,则根据类型定义文件中<property>所定义的字段名及字段类型建立Property_*表;若是,则结束。

其中,表8(Property_*表)中*指工程属性表id,同一叶子类型下各对象的工程属性元信息相同,存于同一工程属性表内:

表8 Property_*

  字段名  字段类型 键  描述  PID  Integer PK  每个属性的id  ...  ... ...  ...

S4:遍历CAD模型中所有对象,按类型将对象分类,如截止阀={截止阀1、截止阀A2、截止阀A3...};再按类型对每个对象执行以下步骤:

(1)填写Object表,即在Object表中填写该对象的各字段;

(2)在Property_*表中填写该对象的工程属性值,本步骤的目的是记录对象的工程信息;

(3)获取对象颜色,在Graph表中填写该对象的OID及Color字段;

(4)遍历该对象连接的对象,如图3所示,阀门B与管子A1、管子A2连接;在Graph表中填写该对象的LinkOID字段,本步骤的目的是记录对象的拓扑信息;

(5)遍历该对象包含的实体(Entity),提取实体中的体元(如图3中,阀门B包含的体元为:9个圆柱,1个圆形断面圆环),计算定向包围盒(Oriented Bounding Box,OBB),记录包围盒的最大点及最小点;在Graph表中填写该对象的BBox及Data字段。

步骤(3)、(5)目的是记录对象的几何信息。

S5:从中间文件保存的对象的几何信息、拓扑信息中构建基于八叉树的场景树。场景树结构如图4,其中场景节点包含一个AABB包围盒,其值是其子节点AABB包围盒的并集;对象节点包含对象id及对象的图形信息;体元节点包含三角面片。场景树直接送入渲染引擎(本发明采用OSG),得到图形显示;场景树的具体构建步骤如下:

(1)遍历Graph表,读取各对象的数据;

(2)根据各对象AABB包围盒建立八叉树的组织结构;

(3)根据对象间连接关系建立对象间拓扑连接;

(4)对象包含的各体元根据其参数形成三角面片。

S6:从中间文件保存的分类信息、工程信息中构建用于属性描述的内容分类树。内容分类树结构如图5,其中对象按类型存放,工程属性不直接读入内存,而是放在数据库中。内容分类树的具体构建步骤如下:

(1)遍历Category表;

(2)根据Category表中CID字段与ParentCID字段建立类型层次结构;

(3)遍历Object表;

(4)根据CID字段将对象分类。

若要查询某个对象的几何图形时,通过射线求交进行图形查询。首先,射线与信息模型中场景树的场景节点AABB包围盒求交。若不相交,则该节点遍历终止;若相交,则遍历该节点的子节点;然后射线与对象节点AABB包围盒求交。若不相交,则遍历终止;若相交,则遍历该对象下的体元节点;接着,射线与体元节点AABB包围盒求交。若不相交,则遍历终止;若相交,则遍历该体元节点对应的三角面片;最后射线与三角片求交。若不相交,则遍历终止;若相交,则记录该体元所属对象的OID,遍历终止。

当需要查询某个对象的工程属性时,根据对象id(OID),从内容分类树上可以得到该对象的类型(cid);查询Object表,得到pid;根据cid,查询Category表,得到pdid;根据pid,查询Property_*表,得到该对象的工程属性。当需要查询符合条件的对象集时,首先由用户确定查询条件及查询范围(即,查询范围对象集OIDmid_user),从内容分类树上可以得到CIDmid_user;根据CIDmid_user,查询Category表,获取PDIDmid_user;对每个pdidmid_user∈PDIDmid_user,对Object表与Category表与Property_*的内联表(Object.CID=Category.CID,Object.PID=Property_%1%.PID)执行条件查询,获取目标对象集OIDmid_temp_result;将获取的OIDmid_temp_result与OIDmid_user求交,得到符合条件的结果对象集OIDmid_result

本发明还提供了一种从CAD系统到三维校审系统的模型转换系统,该系统基于上述从CAD系统到三维校审系统的模型转换方法,该系统包括:模型导出模块,位于CAD系统,通过CAD系统提供的开发接口实现。用于读取类型定义文件的内容,根据类型定义文件解析CAD模型,抽取CAD模型中的分类信息、工程信息、拓扑信息、几何信息,并将模型信息,设计条件信息一并导出到中间文件;中间文件管理模块,用于查询、增加、修改、删除数据库中Meta表、Category表、Property_*表、Object表、Graph表中数据;模型重构模块,位于三维校审系统,用于从中间文件所存储的信息中,重构出模型的图形描述及属性描述。

其中,所述模型导出模块包括:类型定义文件读取模块,用于解析XML格式的类型定义文件,获取类型id在对象扩展数据中的位置、类型id的类型名称、类型间的层次关系、工程属性元信息及位置等信息;分类信息导出模块:用于遍历CAD模型中各类型,将类型id、类型名称、类型间层次关系以及叶子类型所对应的属性元信息,导出到中间文件;工程信息导出模块:用于读取对象的扩展数据,将对象所属类型及工程属性各数据导出到中间文件;拓扑信息导出模块:用于遍历某对象连接的对象,将连接对象的id导出到中间文件;几何信息导出模块:用于遍历某对象的所有实体(Entity),取实体中体元,计算对象的AABB包围盒,将对象的颜色、AABB包围盒、体元信息导出到中间文件。

其中,所述模型重构模块包括:图形描述重构模块,用于构建场景树,实现模型的几何显示;从中间文件中提取拓扑信息、几何信息,根据AABB包围盒构建基于八叉树的场景树,能够提高渲染效率;根据体元中的参数信息生成各对象的三角面片。属性描述重构模块,用于构建内容分类树,可以查看各对象的分类以及对象的工程属性;从中间文件中提取分类信息,根据CID与ParentCID建立类型层次结构,根据OID与CID将对象分类;为减少内存消耗,工程属性依然放在数据库中,根据需要,通过对象id(OID),查库获取。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号