目前,全世界知名的商用三维几何引擎就是西门子的Parasolid与达索的ACIS,已发展成为两个最大的阵营。这也是主流BIM / PLM软件所使用的三维几何平台内核,两种建模器均建于1985年左右,并在90年代被CAD公司广泛采用。
一、ACIS历史
ACIS,它的名字由来是基于三位大神的名字首字母组成ACI加上实体(Solid)首字母S组合而成,而这三位大神也就是剑桥大学CAD实验室的三位传奇数学家。在1986年,受到美国Spatial Tech公司邀请,开发了第三代产品,采用面向对象的数据结构,并对算法进行优化,使得运行速度大幅提升。Spatial公司对ACIS内核采用不同的策略,与其它CAD、CAE厂商进行增值产品开发,并使得在ACIS上开发的系统都共享几何模型,造成巨大的影响。在2000年,达索公司收购了Spatial公司。
二、ACIS功能介绍
ACIS它提供从简单实体到复杂实体的造型功能,以及实体的布尔运算、曲面裁减、曲面过渡等多种编辑功能,还提供了实体的数据存储功能和SAT文件的输入、输出功能。
ACIS的特点是采用面向对象的数据结构,用C++编程,使得线架造型、曲面造型、实体造型任意灵活组合使用。线架造型仅用边和顶点定义物体;曲面造型类似线框造型,只不过多定义了物体的可视面;实体造型用物体的大小、形状、密度和属性(重量、容积、重心)来表示。
ACIS产品使用软件组件技术,用户可使用所需的部件,也可以用自己开发的部件来替代ACIS的部件。ACIS产品包括一系列的ACIS 3D Toolkit几何造型和多种可选择的软件包,一个软件包类似于一个或多个部件,提供一些高级专业函数,可以单独出售给需要特定功能的用户。ACIS产品可向外出售接口源程序,同时鼓励各家软件公司在ACIS核心开发系统的基础上发展与STEP标准相兼容的集成制造系统。
2.1 3D ACIS Modeler的主要功能
- 创建3D模型
无论是简单模型还是复杂装配,3D ACIS Modeler都支持使用多种建模方法创建、修改和查询模型。不管是需要直接建模功能来支持无历史记录的CAD应用,还是需要实现基于历史记录的特征树,3D ACIS Modeler广泛的解决方案在各个行业中都是值得信赖的。
- 修改3D模型
由于模型来源不同,用途不同,因此修改3D模型的能力非常重要。3D ACIS Modeler通过其广泛的布尔、混合、直接编辑、增厚、偏移等一系列强大的操作,支持应用程序自定义数据准备。
- 拓扑跟踪和属性
3D ACIS Modeler为特征建模应用程序提供了完整的支持,并通过几何操作为拓扑跟踪提供注释。另外,应用程序可以利用属性机制将自定义数据附加到拓扑对象上,以便通过建模操作对其进行跟踪。
- 高性能
3D ACIS Modeler在性能和内存管理方面保持了最高标准,在其数十年的工业应用基础上不断进行改进。它是线程安全的,并支持多线程API。
- 查询3D模型
在不需要创建或修改模型的情况下,利用模型拓扑、几何和元数据进行只读工作流,例如xR应用的可视化。
- 特定应用程序的附件
通过添加附加功能为您的客户提供增值服务。Spatial可提供和维护与3D Precise Mesh,CGM HLR,CDS等附加组件的集成,使开发人员专注于竞争优势开发。
2.2 产品详细功能介绍
关键功能 | 描述 |
---|---|
边界表示(B-rep)建模 | 3D ACIS Modeler通过复杂的B-rep模型提供对简单几何图形精度和性能的创建、修改和查询功能。 |
多线程的平台支持 | 3D ACIS Modeler允许多线程应用程序利用多核硬件获得性能提升。 |
直接编辑 | 直接编辑可以在没有约束的情况下创建和修改几何图形。这允许在管理周边拓扑结构的同时操纵模型的局部区域。 |
基于历史的建模 | 3D ACIS Modeler的bulletin-board功能和模型更改跟踪支持功能,可捕获设计意图。 |
Non-Manifold建模 | 为了处理薄板对象(如复合材料),3D ACIS Modeler在同一功能中同时支持流形和非流形区域。 |
用户定义的几何 | 3D ACIS Modeler允许创建自定义方程式,以轻松定义复杂的表面。如模拟紧固件和机床的螺旋线等复杂形状。 |
属性管理 | 为了简化数据管理,3D ACIS Modeler允许应用程序数据(如PMI)与任何模型实体关联并与其他应用程序交换。 |
模型分析工具 | 3D ACIS Modeler提供了一套全面的工具来查询和分析给定的模型。CAM和CAE系统大量使用点体距离、碰撞检测、光线发射、质量特性和模型质量测试。 |
装配建模 | 3D ACIS Modeler为操作人员提供装配、操作、查询和保存/恢复一组装配和部件模型。一组函数提供了运动学、有限元分析、干涉检查和物料清单生成的分组结构和特性。 |
三、几何、拓扑和属性
几何、拓扑和属性是ACIS模型的三个基本类,三者统一由最基础的抽象类ENTITY派生。虽然ENTITY本身不代表任何对象,但在ENTITY中定义了它的所有子类应具有的数据和方法,如存储、恢复、回溯等。ACIS模型数据的ENTITY及派生类层次关系如图1所示。
图1 ACIS数据的C++类层次结构图
3.1 几何体
几何体是指模型的物理描述,如点(point)、曲线(curve)、曲面(surface)和直线(straight)等。这些元素之间不存在空间或拓扑关系。几何体的实现方式有两种:一是构造几何体,是含有几何体的数学定义的C++类,它主要用于数学计算,不被直接作为用户模型的一部分保存在模型中,但可以被包含在模型几何体中形成永久的实体对象,名称用小写字母表示,如cone、ellipse、sphere等;二是模型几何体,是为构造几何体增加模型操作功能的C++类,它和模型一起被保存在SAT文件中。模型操作功能包括模型数据的保存和恢复、模型操作历史记录及其回溯、变换以及为模型附加系统定义属性和用户定义属性的功能。模型几何体派生于ENTITY类,名称用大写字母表示,如APOINT、CONE、ELLIPSE等。
3.2 拓扑
拓扑是指组成模型的各个对象之间的空间关系,也就是几何实体之间是如何连接的。ACIS的拓扑包括BODY(体)、LUMP(块)、SHELL(壳)、SUBSHELL(子壳)、FACE(面)、LOOP(环)、WIRE(线框)、COEDGE(有向边)、EDGE(边)和VERTEX(顶点)。它们继承了ENTITY的所有性质,并增加了专有的结构数据及访问这些数据的接口。各个拓扑对象之间的关系以及拓扑与几何之间的关系如图2所示。拓扑模型的遍历就是一个从上到下的循环查找的过程。
3.3 实体属性
实体属性用来描述实体的非形状信息。实体可以有零个或者多个属性。ACIS中提供了ATTRIB类来描述属性,它提供了所有属性通用的数据和功能,包括用户自定义属性和系统属性。开发者可以从ATTRIB类派生自己的属性类,并以此为实体增加应用程序专用的数据。
图2 ACIS中模型的数据结构
ACIS是建立在软件组件技术基础上的开放式体系结构,通过采用软件组件技术,用户可以根据实际开发的系统需要对组件进行自由选择、搭配和组合,用户也可以采用自己开发的组件取代ACIS的部分组件。ACIS的C++库由35个DLL组成,这就为开发者开发3D应用提供了极大的柔性和功能基础。ACIS的组件包括核心组件和可选组件,可选组件可以集成到核心组件中。核心组件提供基本的造型功能,所有组件从根本上依赖于核心组件。其中,核心组件KERNEL提供了对基本实体和属性的支持,定义了拓扑和几何实体类、构造几何类、数学处理类、文件的保存及其恢复,支持历史和回溯;核心组件ACIS 3D Toolkit提供了在一致的、公共的数据结构之上的线框、曲面、实体的造型功能框架,具备三维造型的基本功能,如零件/模型管理、图形交互、基本显示、OpenGL显示等;组件BASE具有其它ACIS组件要用的基本通用功能。
ACIS的每个组件都包括ACIS类、API函数和DI函数。ACIS类描述实体模型的几何、拓扑和物理属性信息,用来定义实体模型的数据结构。在应用中,可直接通过类的公共数据成员和保护数据成员以及成员函数与ACIS相互作用。开发人员也可以根据自己系统的需要从ACIS类派生出自己的应用类,类接口在各版本中可能有变化。API函数作为ACIS和用户程序的接口,在用户程序开发中十分重要,几乎封装了所有实体模型数据的重要操作,包括创建几何模型、修改模型属性和提取模型信息。应用通过调用API函数来创建、修改或恢复数据,API函数将造型功能与应用支持特性集成起来,应用支持特性如变量错误检查和回溯。当在API例程中发生错误时,ACIS可立即自动回溯到调用此API例程前的状态,从而保证模型不会崩溃。无论ACIS底层的数据结构或函数如何修改,这些API函数在每一版本中均保持不变。DI函数提供了不依赖于API而对ACIS造型功能可直接访问的接口,与API不同的是,这些函数在各版本中可能有变化。因此,开发时尽量不采用DI函数,而是使用ACIS类和API函数。
暂无评论内容