AutoCAD与ParaSolid三维边界模型信息直接交换张应中_第1页
AutoCAD与ParaSolid三维边界模型信息直接交换张应中_第2页
AutoCAD与ParaSolid三维边界模型信息直接交换张应中_第3页
AutoCAD与ParaSolid三维边界模型信息直接交换张应中_第4页
AutoCAD与ParaSolid三维边界模型信息直接交换张应中_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、收稿日期:2009-04-08基金项目:国家自然科学基金资助项目(60773214)作者简介:张应中(1961-),男,湖南绥宁人,副教授,博士,主要研究方向为计算机辅助设计,产品数字建模及处理技术。2010年 工 程 图 学 学 报 2010 第5期 JOURNAL OF ENGINEERING GRAPHICS No.5AutoCAD 与ParaSolid 三维边界模型信息直接交换张应中, 罗晓芳, 乔 磊(大连理工大学机械工程学院,辽宁 大连 116024)摘 要:对ACIS 和ParaSolid 的三维实体边界表达数据结构进行分析,基于DwgDirect 接口技术,直接打开AutoCA

2、D 的DWG 文件,对AutoCAD 的DWG 文件中基于ACIS 的三维实体边界信息遍历,获取实体边界的拓扑信息和几何信息;基于ParaSolid 提供的API 开发函数,通过实体拓扑构造、实体几何构造和几何与拓扑附属关联,实现AutoCAD 与ParaSolid 三维边界模型的直接交换。最后给出一个直接交换实例。关 键 词:计算机应用;AutoCAD ;ParaSolid ;三维边界模型;直接交换 中图分类号:TP 391文献标识码:A 文 章 编 号:1003-0158(201005-0169-06Direct Exchange of Three-dimensional Boundary

3、 ModelInformation between AutoCAD and ParaSolidZHANG Ying-zhong, LUO Xiao-fang, QIAO Lei( School of Mechanical Engineering, Dalian University of Technology, Dalian Liaoning 116024, China Abstract: The data structures of the three-dimensional solid boundary expression for ACIS and ParaSolid are analy

4、zed, based on DwgDirect interface technology DWG files in AutoCAD are directly opened and the three-dimensional entity boundary information based on ACIS in AutoCAD's DWG file are searched and accessed. Based on the API development function provided by ParaSolid, by means of constructing topolog

5、y entities, constructing geometry entities and associating geometry entities to topology entities procedures, the accessed boundary topology and geometry information can be directly exchanged to construct a solid model based on PrarSolid. Thus direct exchange of three-dimensional boundary model info

6、rmation between AutoCAD and ParaSolid is realized. At last an example of direct exchange is given.Key words: computer application; AutoCAD; ParaSolid; three-dimensional boundary model; direct exchangeAutoCAD 是目前应用最广泛的二维CAD 平台,AutoCAD 从R11开始具有三维实体模型,从R13开始采用ACIS 几何核心来构造三维实体,随着版本不断升级,三维造型功能日益强大,并且得到广泛

7、的应用。ParaSolid 是目前国际上最为成熟,应用最广的几何造型内核,CAD 中著名的UG 、SolidWorks 、SolidEdge 等都是以ParaSolid 作为几何造型内核;CAM 和CAE 中大部分软件系统都支持ParaSolid 的数据格式。研究和实现AutoCAD 与ParaSolid 三维边界模型信息交换有重要的实际意义。异构环境下,三维边界模型信息交换方法目前普遍采用的是基于中间文件1-2,为此制定和形成一些国际标准和行业标准,例如IGES 、DXF 和STEP 等。基于中间文件交换要求系统具备能生成符合标准的中间文件功能,并且存在信息丢失,操作烦琐,效率低问题,由于A

8、utoCAD 系统的支持信息交换能力不强,造成基于AutoCAD 系统的三维实体信息资源不能实现有效的交换。本文基于DWGDirect 技术,直接打开DWG 图纸,搜索和遍历AutoCAD 中基于ACIS 的三维实体边界几何和拓扑信息,通过ParaSolid 的边界拓扑映射,直接生成PrarSolid 三维边界实体,实现AutoCAD 与ParaSolid 三维边界模型的直接交换。1 三维边界模型信息表达1.1 实体边界表达模型边界表达(B-reps是三维实体模型最基本的表达方法,是将形体表达为它的有限数量的边界表面的集合。表面可能是平面,也可能是曲面,每个表面又可用它的边界的边及顶点表示。B

9、-rep 中信息分为两类:一类是几何数据,描述形体的大小、尺寸、位置、形状等;另一类是拓扑信息,拓扑是研究图形在形变与伸缩下保持不变的空间性质的一个数学分支。拓扑只关心图形内相对位置关系,不问它的大小与形状。在B-rep 中拓扑信息是指用来说明体、面、边及顶点之间连接关系的一类信息。1.2 PreaSolid 边界表达模型ParaSolid 是美国UGS 公司的一个业界领先的几何实体建模内核,其拓扑实体定义如下3: (1) 体(Body 体是ParaSolid 中一种基本形体,可以由一个或多个简单形体连接组合而成。它有以下几种形式:Acorn :孤立点,Wire :线框,Sheet :薄板,S

10、olid :立体,General :一般形体。(2) 区域(Region 区域是一个开放的三维空间的连通子集,它的边界是一系列的点、边和有向面。(3) 壳(Shell 壳是一系列有向面和边的集合,面的一面或双面都可以被外壳引用。外壳的组成:面和方向逻辑的集合;边的集合;单个的顶点。(4) 面(Face 是一个曲面的有界集合,它的边界是若干个环,是一个二维的区域。边界为零个环的面构成一个封闭的实体,如一个球面。(5) 环(Loop 是一个面的边界,是一个连接的二维实体。一个环在一个方向上不能通过一条边两次。环的方向是这样规定的:沿该环的方向前进,面在左边。(6) 翼(Fin 表示一条边在环中的方

11、向。它包含两个数据:一个是逻辑值,表示边与环是否同向;另一个数据是在该条边具有不同的局部精度时,边所依附的曲线。(7) 边(Edge 是一条曲线上有界的一段,它的边界是零个、一个或两个顶点。边是一个一维区域。(8) 顶点(Vertex 顶点表示空间中的一个点,是一个零维的区域。ParaSolid 几何实体分为基本几何实体和构造几何实体,都具有三种类型:Surface 曲面、Curve 曲线和Point 点。Surface 曲面主要依附于拓扑Face 面,典型曲面有:平面、圆柱面、圆锥面、圆环面、球面、过渡曲面、样条曲面、异构几何曲面、偏移曲面、扫描曲面和旋转曲面;Curve 曲线主要依附于拓扑

12、Edge 边,典型曲线有:直线、圆、椭圆、B 样条曲线、一般样条曲线、异构几何曲线。基本几何实体依附在对应的拓扑体上,构造几何实体是新创建的还没有附属关联的几何实体,都可以表达为Body 体。ParaSolid 几何实体与拓扑实体关系如图1所示。·170· 工 程 图 学 学 报 2010年 基本几何拓扑构造几何图1 ParaSolid几何实体与拓扑实体关系1.3 ACIS 边界表达模型ACIS 是美国STI 公司(Spatial Technology Inc. 推出的具有开放式软件体系结构的实体造型软件开发平台。ACIS 的边界模型也是表达为拓扑表示和几何表示,拓扑结构按

13、层次从上到下分解成下列对象4:体(Body、块(Lump,表示空间一个有边界的相互连通的区域;壳(Shell、面(Face、环(Loop、有向边(Coedge、边(Edge、顶点(Vertex。其几何表达类型和拓扑信息关系与上述ParaSolid 基本类似。2 DWG 中的ACIS 三维模型边界信息的提取AutoCAD 图形保存的缺省文件是DWG 文件,DWG 是一个压缩格式未公开的二进制格式文件,目前CAD 图纸绝大部分是以DWG 格式存贮。能直接打开DWG 图纸,并且能搜索和遍历出ACIS 三维边界几何和拓扑信息是实现直接交换的基础。DWGdirect 是由开放设计协会(Open Desi

14、gn Alliance 推出的用于独立于AutoCAD 平台之外访问DWG 文件接口,目前已被国际上众多公司所接受。本文采用DWGdirect 接口访问和搜索DWG 文件中基于ACIS 的三维实体边界几何和拓扑信息。2.1 DWG 中三维实体元素在DWGDirect 中,DWG 文件的图形实体数据在内存中由一个OdDbDatabase 类的实例表 示5,并且提供了一个可以访问其图形数据库实体对象的块表记录遍历迭代器(OdDbBlock TableRecordIterator ,通过该迭代器可以遍历存储在块表空间中的各种实体图形,如二维的直线段、圆弧、圆,三维的圆柱面、圆锥面、球面和三维实体等。

15、三维实体元素是OdDb3dSolid 类一个实例,OdDb3dSolid 类是从OdDbEntity 类派生而来,OdDbEntity 类是数据库实例中所有绘图对象的基类。同时,在DWGdirect 中还提供了一个通用几何类OdGe 类和用于边界表示的OdBr 类。OdGe 类是用来实现2D 和3D 几何对象操作的。OdBr 库是一个边界表示库,允许用户以只读的方式去访问ACIS 所创建的用边界表示法表示的实体,这类实体指的是OdDb3dSolid 类的对象。 2.2 DWGdirect 的三维实体边界定义OdBr 库中提供了一个用来定义实体边界表示的拓扑对象的接口类OdBrEntity 。它

16、的结构层次如图2(a所示。OdBrEntity 类是Brep 结构抽象类;OdBrBrep 类是Brep 实体边界类,它是提供在OdDb3dSoid 实体中对ACIS 实体数据的Brep 结构进行遍历的最高层。OdGe 库中提供一个OdGeEntity3d 类,它是所有OdGe 类的几何对象的基类。它的结构层次如图2(b所示。2.3 实体边界数据获取DWGdirect 定义一个访问ACIS 边界数据结构的接口OdBrBrep 类,通过OdBrBrep 为OdDb3dSolid 实例对象和ACIS 边界之间建立联系。同时还定义了遍历访问ACIS 边界拓扑结构的遍历器(traverser类,可以遍

17、历访问ACIS 边界的壳、面、环、边、点拓扑信息和几何信息。对每一个OdDb3dSolid 三维实体对象,其实现步骤如下:(1) 创建OdBrBrep 实例对象,通过OdDb3dSolid 类的成员函数brep (OdBrBrep& brep 赋值;(2) 定义拓扑遍历器,自顶向下遍历ACIS 边界拓扑结构树。拓扑遍历器的定义是按照壳、面、环、边、点自上而下拓扑顺序分别定义,即通过OdBrBrep 实例定义壳拓扑遍历器,拓扑遍历三维实体对象所有壳拓扑,通过壳拓扑信息定义面拓扑遍历器,拓扑遍历壳对象所有面拓扑信息,通过面拓扑信息定义环拓扑遍历器,拓扑遍历面对象所有环拓扑信息,依次遍历下去

18、,从而获取实体边界所有拓扑和几何信息。第5期 张应中等:AutoCAD与ParaSolid 三维边界模型信息直接交换 ·171· (a 边界拓扑结构 (b 边界几何结构图2 DWGdirect 实体边界表示结构3 ParaSolid 实体边界映射构造ParaSolid 采用与ACIS 相类似的实体边界表示,同时ParaSolid 提供一个API 函数,可以直接构造出ParaSolid 实体的拓扑结构。尽管ParaSolid 与ACIS 实体边界表示有些差别,通过拓扑映射的方式,完全可以将上述获取的ACIS 边界数据通过以下步骤重新构造出ParaSolid 实体边界。实体边界

19、映射构造主要涉及三个步骤:拓扑构造;创建几何数据;关联拓扑与几何数据。为了保证几何造型的可靠性与正确性,构造的实体要满足正则拓扑实体的要求:正则形体不能有悬边、悬线、悬面等等,同时还需要精度误差进行控制。3.1 拓扑构造3.1.1 ParaSolid拓扑构造API 函数在ParaSolid 中提供了一个拓扑构造API 函数PK_BODY_create_solid_topology,用来创建实体的拓扑。函数的具体形式是3:PK_BODY_create_solid_topology(int n_topols, / 被创建的实体所包含的拓扑实体的个数const PK_CLASS_t classes

20、, / 被创建的实体所包含的每个拓扑实体的类型数组int n_relations, / 类型关系个数 const int parents , / 父类关系const int children , / 子类关系 const PK_TOPOL_senset senses , / 方向标志PK_BODY_t *body, / 创建返回的实体PK_TOPOL_t *topols, / 创建返回的拓扑结构数组PK_BODY_fault_t *fault, / 出错信息 int *fault_index ;上述参数中classes 数组描述构造那些拓扑实体,拓扑实体类型通过PK_CLASS_body,PK

21、_CLASS_shell,PK_CLASS_face,PK_CLASS_loop,PK_CLASS_edge,PK_CLASS_vertex表达体、壳、面、环、边和点。parents 、children 和senses 三个数组定义拓扑元素父子之间的关系,例如壳面关系、面环关系、环边关系等。通过拓扑元素父子之间的关系定义,将classes 数组描述构造的拓扑实体关系联系起来,形成完整的实体拓扑结构。 拓扑元素及父子关系的选用按如下规则:(1) 当体具有多个(大于1)壳拓扑时,外壳必须第一个定义;(2) 环的子边必须按绕环顺序定义;边的子点必须按边的方向定义;(3) 每个边作为子类必须被使用两次

22、,每个拓扑关系一次;(4) 一个环类必须以多个边类或者单个点·172· 工 程 图 学 学 报 2010年作为子类,但不能以边和点混合或者多个点作为子类;(5) 一个点类必须以多条边或单个环作为父类,其父类不能为边与环的组合或者多个环。例如,一个方块体含有33个拓扑(n_topols=33,其中包括1个壳,6个面,6个环,12条边和8个顶点。实体拓扑之间的关系共有60个,1个壳是由6个面组成,壳面关系为6;每个面由1个环组成,面环关系为6;一个环由4条边组成,环边关系为24;每条边由2个顶点组成,边顶点关系为24。parents0parents5指向壳拓扑元素在在class

23、 数组中序列号,此处全为0;children0children5 指向面拓扑元素在class 数组中序列号,分别是1、2、3、4、5、6。senses定义了每两个拓扑实体之间的方向关系。当子类为边PK_CLASS_edge,且当子类边在父类环的相同方向时,senses 被赋值为PK_TOPOL_sense_positive_c;当子类边在父类环的相反方向时,senses 被赋值为PK_TOPOL_sense_negative_c;其他情况下senses 被赋值为PK_TOPOL_sense_none_c。 3.1.2 拓扑构造实现拓扑构造实现的算法步骤如下: (1) 计算要创建的拓扑体的个数根

24、据上述对ACIS 边界拓扑遍历,计算出壳的个数、面的个数、环的个数、边的个数和点的个数之和。(2) 设置各个拓扑体的类型根据计算的拓扑体个数,分配拓扑体的类型数组空间,并根据拓扑类型设置相应数组位置拓扑类型值,例如一个体有一个壳,classes0 = PK_CLASS_shel;一个壳有6个面,则classes1 classes6=PK_CLASS_face。数组元素中下标变量Index 和classesIndex值确定了所构造的拓扑结构数组中第Index 的拓扑类型。(3) 计算拓扑体元素关系个数根据上述ParaSolid 对拓扑体元素关系定义规则及ACIS 边界拓扑遍历结果,计算拓扑体元素

25、关系个数n_relations。(4) 设置拓扑体元素关系根据计算的扑体元素关系个数,分配拓扑体元素关系数组空间,即parents 、children 和senses 设置为同样大小的数组。并根据拓扑类型设置相应数组位置拓扑元素关系值。 3.2 几何构造3.2.1 ParaSolid几何定义ParaSolid 几何实体有三种类型:Surface 曲面、Curve 曲线和Point 点。Surface 曲面类型有平面、圆柱面、圆锥面、圆环面、球面、过渡曲面、样条曲面、异构几何曲面、偏移曲面、扫描曲面和旋转曲面;Curve 曲线主要有:直线、圆、椭圆、B 样条曲线、一般样条曲线、异构几何曲线。例如

26、,圆柱面是通过一个三维点,圆柱面轴线方向矢量,参考方向矢量以及圆柱面的底面半径的数据结构定义:struct PK_CYL_sf_s PK_VECTOR_t location; / 圆柱中心点位置PK_VECTOR1_t axis; / 圆柱面轴线方向矢量PK_VECTOR1_t ref_direction; / 参考方向矢量double radius;/ 圆柱面的底面半径;3.2.2 几何创建重新开始对ACIS 边界拓扑遍历,重设拓扑定位指针变量Index=0;并依壳、面、环、边、点的顺序,获取相应附属拓扑元素的几何信息,创建相应的几何实体,每遍历一个拓扑元素,拓扑定位指针变量Index 加1

27、。ParaSolid 提供针对具体各曲面、曲线和点实体构造的API 函数。设置一个数据结构保存构造的几何实体和该几何实体相附属的拓扑定位指针,例如曲面实体保存数据结构如下:struct SurFaceBody PK_Body_t* SurFaceArray; int* pIndex; ;3.3 几何与拓扑关联一个有效的实体应该是具有完整的拓扑与几何信息数据,上面步骤所完成的只是一个分离的拓扑实体和几何实体,需要将其有机地关联系起来。第5期 张应中等:AutoCAD与ParaSolid 三维边界模型信息直接交换 ·173··174· 工 程 图 学 学 报

28、 2010 年 通过 PK_BODY_create_solid_topology 函数 成功完成拓扑构造后,返回已经创建的拓扑体存 放在一个数组变量 topols 中,topols 按照输入的 顺序存放拓扑元素,即构造的拓扑体顺序与 class 数组中的顺序是一致的,这就为构造几何 体与其对应拓扑关联创造条件。 ParaSolid 提供几何体与其对应拓扑关联的 API 函数。PK_FACE_attach_surfs 函数关联曲面 几何到 Fcae 面拓扑,PK_EDGE_attach_curve 函 数 关 联 曲 线 几 何 到 Edge 边 拓 扑 , PK_VERTEX_attach_pointe 函数关联点几何到 Vertex 点拓扑中。 4 交换应用实例 上述AutoCAD与ParaSolid三维边界模型的 直接交换方法在作者开发的JhSolid2007下实现。 JhSolid2007采用ParaSolid作为几何造型内核, VC+、Op

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论