梅敬成三维CAD软件的发展历程:过去现在和未来
1.CAD内核
CAD技术自60年代诞生以来,经历了二维图纸、线框模型、自由曲面模型、实体造型、特征造型等重要发展阶段。 随着CAD技术的发展,许多成熟知名的CAD引擎和软件也应运而生。
目前商用CAD引擎主要包括ACIS、HOOPS、ParaSolid等。 其中使用ACIS引擎的基础产品主要包括AutoCAD、Inventer、Catia、MicroSolid等; 使用ParaSolid引擎主要包括UG、Solidworks、SolidEdge等。 但是,由于关注点的不同和商业秘密的因素,不同的CAD软件有自己的建模方式和存储体系,不能直接在系统之间传递数据。 目前采用通过中间标准格式的文件进行分发的方法,但这种方法会失去细节特征,需要额外的修补程序,在一定程度上也会影响CAD技术的发展。
除商用CAD软件外,还有比较成熟的开源CAD引擎,其中常用的是OpenCascade (简称OCC )。 OCC平台是法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一。 它是一个开源CAD内核,是一个自主开发转换程序,包括定制和扩展(添加新的功能组件、类的进一步继承)、针对CAD/CAM和主流CAD数据格式支持(STEP/STL/IGES ) 有理样条曲线、拉伸、旋转、扫掠) )的各CAD引擎之间的比较关系如下表所示。 在此插入图像说明(3359 img-blog.csdn img.cn/2020081152007905.jpg? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg 4u bmv0L3 dlara
通过以上比较,您可以看到ACIS HOOPS的组合和ParaSolid作为商用引擎具有更高的成熟度和性能优化。 但是,这些引擎需要许可证,由于商业秘密,无法最终提供完整的源代码,透明度和可扩展性受到限制。
相对于商用软件,开源CAD引擎具有免费、可扩展性好等优点; 同时CAD技术和开源引擎不断优化,像OCC这样的引擎将应用于更多的领域。 目前基于OCC的CAD软件包括FreeCAD、HeeksCAD和AnyCAD。
2.CAD数据格式说明
)1)商用CAD软件格式
目前,成熟的商用软件有自己的文件体系。 由于存储效率和其他业务原因,这些文件往往以二进制格式提供,格式不详。 作为3D技术的领导者,Spatial意识到需要有效地转换多种格式的数据,包括原始格式的数据和非原始格式的数据。 因此,Spatial开发了3D InterOp数据转换组件,开发人员可以方便地将我们提供的先进3D数据转换技术集成到各自的3D软件产品中。 这些软件产品有CAD/cam/CAE APP应用、PDM、EDM、MES等数据管理系统、协作系统、可视化解决方案等。
Spatial的全面InterOp组件包提供了实体、曲面和线框数据的直接或间接转换,包括中间格式或原始库方法。 可转换的3D数据格式包括CATIA V5、CATIA V4、IGES、STEP、VDA-FS、Pro/engineeer(Parasolid(PS )、unigraphics )、ug、solidwid 每个转换器都经过精细调整和频繁更新,以确保3D数据的转换准确无误。 每周,转换器经过225,000多个测试,以保证转换质量。
CAD引擎间的对比
)2)通用标准CAD格式
除了商业软件的各自格式外,为了统一和易用性,一些国际组织和组织广泛使用常见的标准格式。 目前使用的CAD数据文件格式多为Iges、Step、Stl、VRML等,具体说明如下。
IGES :由基本图形交换规范(theinitialgraphicsexchangespecification ),1980年由美国国家标准局(NBS )主持成立波音公司和通用电气公司参加的技术委员会,基本图形交换规范igees 作为早期颁布的标准,IGES已被许多CAD/CAM系统所接受,成为应用最为广泛的数据交换标准。
STEP )产品模型数据交换标准(standardexchangeofproductdatamodel ),ISO于1988年制定的描述整个产品生命周期产品信息的标准
供了一种不依赖具体系统的中性机制,旨在实现产品数据的交换和共享。这种描述的性质使得它不仅适合于交换文件,也适合于作为执行和分享产品数据库和存档的基础。发达国家已经把STEP标准推向了工业应用。它的应用显著降低了产品生命周期内的信息交换成本,提高了产品研发效率,成为制造业进行国际合作、参与国际竞争的重要基础标准,是保持企业竞争力的重要工具。
STL :STL文件,一种3D模型文件格式STL(STereo Lithography的缩写)。STL 文件格式是由3D SYSTEM 公司于1988 年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。STL 文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个定点的三维坐标及三角形面片的法矢量。三角形顶点的排列顺序遵循右手法则。STL 文件有2 种类型:ASC域格式和二进制格式ASC域格式。STL模型是以三角形集合来表示物体外轮廓形状的几何模型。
VRML:(Virtual Reality Modeling Language)即虚拟现实建模语言。是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。是目前Internet上基于 WWW的三维互动网站制作的主流语言。VRML是虚拟现实造型语言(Virtual Reality Modeling Language)的简称,本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言。VRML的对象称为结点,子结点的集合可以构成复杂的景物。结点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。
3.OCC体系结构介绍
在OCC的体系结构中,各基本模块的含义如下:
(1)Foundation Classes基础类(包括核心类、常用的数学算法、基本数据存储等);
(2)Modeling Data: 提供用于呈现2D和3D几何和拓扑的数据结构;
(3)Modeling Algorithms:提供相关建模中用到的算法和基本功能,例如计算交集、倒角等;
(4)Mesh:网格划分的相关功能,从当前看到的资料来说只看到了三角形网格(转换后的网格,可以保存为VRML和STL两转格式);
(5)Visualization: 基本的展示和相关的交互操作;
(6)Data Exchange(standardized):标准的数据转换(IGES、STEP等);
(7)OCAF(Open CASCADE Application Framework):处理应用程序中基本数据的基本框架,在此基础上开发者只需要关心程序相关的特定数据和界面即可。
(8)GUI Framework为方便开发提供了一些界面库;
(9)Develpment Tools:一些小工具。
3.1 OCC内部数据结构
OCC提供了TopoDS_Shape用于定义形状的基类,TopoDS_Shape包含了三个成员变量:位置、朝向以及一个TopoDS_TShape的myTShape句柄。
拓扑方向是一个非常通用的概念,只要有段或边界出现的地方就可以用到它。当一个Shape限制了一个几何域时,就说这个Shape 具有拓扑方向。拓扑方向的概念与边界的概念紧密联系。需要用到拓扑方向的三种Shape 有:由顶点限制的曲线、由边限制的曲面和由面限制的空间。
基于TopoDS_Shape派生出来的类的结构如下图所示:
其中各类元素的含义如下表所示: