一种实现dwg三维模型自动转换为x三维模型的方法
【技术领域】
[0001] 本发明适用于工程设计技术领域,具体涉及将AutoDESK系列平台设计生产的DWG 三维模型转换为X三维模型的方法。
【背景技术】
[0002] 当前在三维工程设计领域,不同的设计平台所生产的三维设计模型成果通用性较 差,同一平台基本不支持其他平台所生产的成果,即使有部分的格式支持人工转换,但转换 后模型效果也大打折扣,阻碍了三维设计成果在不同平台中的重复利用,降低了工作效率, 增加了设计成本。
[0003] Autodesk公司系列三维设计软件所生产的DWG三维模型格式是业界较为普遍的 一种设计模型格式,在实际生产工作中,往往需要将其放置于指定的三维设计平台中进行 展示和操作,另一方面,X三维模型格式作为另一种较为通用的三维模型格式在生产当中也 有广泛应用,如何填补现有的技术空白,将DWG三维模型自动转换为X三维模型是工程设计
技术领域亟待解决的问题。
【发明内容】
[0004] 鉴于现有技术的不足,本发明旨在提供一种DWG三维模型自动转换到X三维模型 的方法。
[0005] 本发明的技术方案如下: 一种实现DWG三维模型自动转换为X三维模型的方法,包括以下步骤: 步骤(1 ),数据解析:加载DWGSDK动态链接库,遍历DWG三维模型,获取模型各实体几 何信息、纹理及贴图; 步骤(2),几何信息处理:遍历步骤(1)所获取到的实体几何信息,按照X三维模型格式 的要求进行处理并创建实体索引,得到符合X三维模型格式的实体数据; 步骤(3),纹理及贴图处理:对步骤(1)所获取的纹理及贴图进行处理,得到符合X三维 模型格式的纹理及贴图; 步骤(4),X三维模型格式输出:将经步骤(2)所处理得到的符合X三维模型格式的实 体数据按照步骤(2)创建的实体索引,写入X三维模型文件中; 步骤(5),材质库输出:将经步骤(3)所处理得到的符合X三维模型格式的纹理及贴图 根据步骤(2)中创建的实体索引写入X三维模型文件中,即可。
[0006] 上述技术方案中,进一步优选的是步骤(1)所述的几何信息包括DWG三维模型中 每一个模型实体的顶点、线、面和法线的信息。
[0007] 进一步,优选的是步骤(1)所述的纹理及贴图信息包括每一个模型实体所涉及的 表面贴图和颜色设置。
[0008] 进一步,优选的是步骤(2)所述的几何信息处理包括顶点的处理和法线的处理。
[0009] 进一步,优选的是步骤(2)所述几何信息处理过程中,对顶点和法线均要进行坐标 轴转换处理。
[0010] 进一步,优选的是步骤(2)所述的顶点处理是直接读取几何信息的几何转换矩阵 和全局转换矩阵,并对所有顶点进行坐标变换,得到全局坐标系下的顶点坐标值。
[0011] 步骤(3)所述的纹理及贴图处理中,DWG三维模型添加材质的时候是以体为单位 添加而不是面,因此在读取材质的时候也是一个三维实体对应一种材质,进而建立三维实 体与材质之间的关联。
[0012] 步骤(3)所述的纹理及贴图处理过程中,由于DWG三维模型中为实体添加的材质 绝大部分是来自CAD自身的材质库,CAD材质库中包含的贴图常用来表示材质的纹理信息, 此次转换程序只能读取到CAD材质库中包含的贴图,提取材质属性的同时可以提取表示该 材质纹理的贴图。
[0013] 进一步,优选的是步骤(5)材质库输出时,由于X三维模型材质文件保存在模型文 件夹下,由模型文件中的索引调用,而DWG三维模型所存储的材质库是不重复的,因此,只 需将纹理及贴图逐个转换为JPG格式图片输出,并复制到X三维模型格式文件夹下。
[0014] 本发明与现有技术相比,其有益效果为: (1) 快捷易用;用户可通过窗口添加DWG三维模型数据,自动完成几何信息、纹理和贴 图信息的转换; (2) 本方法的实现不依靠任何三维模型设计平台,不同于其他方式"间接转换"的方式, 通过对数据的直接读取进行分析和转换,提高了转换后的模型质量,对不同模型的反复利 用有着重要的意义。
【附图说明】
[0015] 图1为DWG三维模型结构图; 图2为X三维模型结构图; 图3为DWG三维模型转换X三维模型技术流程图。
【具体实施方式】
[0016] 下面结合附图对本发明作进一步的详细描述。
[0017] 本领域技术人员将会理解,下列实施例仅用于说明本发明,而不应视为限定本发 明的范围。实施例中未注明具体技术或条件者,按照本领域内的文献所描述的技术或条件 或者按照产品说明书进行。所用软件未注明开发商者,均为可以通过购买获得的常规产品。
[0018] 需要说明的是,下列文件结构: 如图1所示,DWG三维模型文件结构:欧特克(AutoDESK)公司名下AutoCAD软件 存储三维模型数据的标准格式,其派生于AcDbobject类型,相关的模型文件信息存储 于AcDbBlockTable块表当中,对于每一个DWG三维模型文件,AcDbBlockTable块表中 的内容包括五部分内容,分别如下:1文件头部(HEADER)、2实体部分(ENTITIES)、3表部 (TABLES)、4块实体部(BLOCKS)、5应急头部(CONTINGENCYHEADER),其中头部文件为固定 长度,用于存储标志、版本、索引及部分系统变量;实体部分为数据主体,包含了模型数据中 的基本图形单元,如顶点、法线、圆、面等信息;表部是为了方便索引而引入的结构,DWG文 件中所有的表均按照一定顺序集中存放于表中;块实体是为了减少模型文件的长度和方便 操作而引入,每一个块包含若干实体;应急头部保存了重要索引信息的副本,在DWG模型文 件遇到损坏时可用于文件修复。
[0019] 如图2所示,X三维模型文件结构:微软(Microsoft)公司提出的一种公开三维模 型存储方式,其以文本方式存储模型数据,由模板(template)驱动的,模板定义了如何存储 一个模型对象,而在X模型数据中,预先定义了许多模板,不同于DWG模型格式,在X模型 中,模型的顶点、向量、结构面等信息是通过索引来制定的。
[0020] 如图3所示,本发明为一种实现DWG三维模型自动转换为X三维模型的方法,所述 方法主要包括以下步骤: 步骤(1)数据解析:加载DWGSDK动态链接库,遍历DWG三维模型,获取模型各实体几 何信息、纹理及贴图; 其中:第一,读取DWG三维模型文件,对于DWG三维模型而言,其实体数据存储在AutoCAD数据库中,每一个AcDb3dSolid类型的三维实体占用数据库块表中的一条记录,通 过遍历块表,可以获取三维实体集合; 所述的纹理及贴图信息包括每一个模型实体所涉及的表面贴图和颜色设置。
[0021] 步骤(2)几何信息处理:几何信息处理:遍历步骤(1)所获取到的实体几何信息, 按照X三维模型格式的要求进行处理并创建实体索引,得到符合X三维模型格式的实体数 据; 其中:第一,提取几何信息:解析AcDb3dSolid类型的三维实体需要将AcDb3dSolid类 型转化为AcBrBr印类型,AutoCAD从R13版本以来采用B-R印(边界表示法)表示的ACIS 组件作为其几何造型内核,ObjectARX中的AcBr类库向用户提供了一些能够以只读的方 式去访问实体建模器所创建的用边界表示的