Open CASCADE Technology(OCCT)是一个面向对象的C++类库,用于快速开发设计领域的CAD/CAM/CAE应用程序。通常OCCT应用于开发处理计算机辅助设计(CAD)系统中的2D或3D几何建模、制造或分析应用、仿真应用,甚至插图工具。
OCCT库的设计具有模块化和可扩展的特性,其提供的C++类有:
C++类和其他类型被分组到包中。包被组织成工具包(库),我们可以将应用程序链接到其中。工具包被分成七个模块,其结构如下图所示:
基础类模块是所有其他OCCT类的基础,包含高级Open CASCADE类使用的数据结构和服务:
基础类提供各种通用服务,比如自动动态内存管理、集合、异常处理、通过向下转型和插件创建。
基础类包括以下内容:
根类是基本的数据类型和类,其它所有类都是依此而建立的。它提供以下类型和类:
根类主要在Standard 和MMgt 包中实现。
字符串是基于ASCII和Unicode处理动态大小的字符序列的类。字符串也可以由句柄操作,因此可以共享。字符串在TCollection包中实现。
集合是处理动态大小的数据聚合的类。集合类是通用的,也就是说,它们定义了一种结构和算法,允许拥有多种对象,而不需要继承于唯一跟类型,这与C++模板相似。当需要使用给定类型对象的集合时,必须对这个元素的指定类型进行实例化。一旦编译了此声明,所有基于这个通用集合的函数都可以在集合对象中实现。
集合包括广泛的泛型类,如运行时大小的数组(arrays)、列表(lists)、堆栈(stacks)、队列(queues)、集(sets )和哈希表(hash maps)。集合在TCollection和NCollection包中实现。
TColStd包使用Standard 包中的对象或TCollection包中的字符串,为TCollection包中常用的通用类型提供实例化。
向量和矩阵类提供了涉及向量和矩阵的常用数学算法和基本计算(加法、乘法、转置、求逆等)。
基本几何类型提供了基本几何实体和代数实体的实现。这些实现符合STEP(Standard Exchange of Product data model,即产品数据模型的交换标准)。它们提供基本几何Shape 的描述(点、向量、直线、圆与圆锥、平面与基本曲面、通过坐标轴或坐标系使Shape 在平面上或空间中定位)和Shape 几何变换的定义与应用(平移、旋转、对称、缩放、复合变换、代数计算工具)。
常用数学算法为那些经常使用的数学算法提供C++实现。这些包括:
提供了常用异常类的层次结构,所有这些都基于异常的根类,Failure类。异常类描述了函数运行期间可能发生的异常情况。发生异常时,程序将不能正常运行。针对这种情况执行的操作称为异常处理。
支持日期和时间信息的各种类,以及表示大多数物理量(如长度、面积、体积、质量、密度、重量、温度、压力等)的基本类型。
基础类还包括一些低层服务的实现,这些服务可以使用Open CASCADE创建可定制的、用户友好的应用程序。这些包括:
建模数据提供数据结构来实现三维对象的边界表示(BRep)。在BRep中,形状表示为拓扑中的几何集合。几何被理解为一个形状的数学描述,如曲线和曲面(简单或标准,Bezier,NURBS等)。拓扑是将几何对象绑定在一起的数据结构。
几何类型和实例为以下提供了几何数据结构和服务:
拓扑定义了简单几何实体之间的关系。形状是一个基本的拓扑实体,可以分为组件(子形状):
复杂形状可以定义为简单形状实体的集合。
建模算法模块组被广泛用于几何建模的拓扑和几何算法。在Open CASCADE中,基本上有以下算法:
顶级API提供以下功能:
建模基本类型
运动学建模
布尔运算,它允许从源形状的组合中创建新形状。对于S1和S2两种形状:
局部修改的算法,例如:
网格模块提供了处理三角形面片形式的对象的镶嵌表示的功能。这个模块包含:
Open CASCADE包括两个网格转换器:
可视化模块提供了从各种对象(形状、网格等)创建图形表示的现成算法。
在Open CASCADE Technology中,可视化是基于CAD数据的分离及其图形表示。支持快速强大的交互选择机制。
视图提供从低级工具使用基本的几何和拓扑(如NURBS可视化与控制点和节点,绘制等值线估计参数化的速度和质量,或边缘呈现参数剖面)到高级工具实时高质量渲染的光线追踪模型:阴影、反射、透明度、抗锯齿等。
这里有几个例子:
数据交换模块与流行的数据格式互操作,依靠形状愈合来提高不同厂商CAD软件之间的兼容性;
数据交换允许开发基于OCCT的应用程序可以通过编写和从外部数据读取CAD模型来与其他CAD系统交互。不管外部数据的质量或对其内部表示的要求如何(例如数据类型、可接受的几何误差等),交换都可以顺利地运行。
数据交换以模块化的方式组织为一组接口,这些接口符合各种CAD格式:IGES、STEP、STL、VRML等。该接口允许基于OCCT的软件与各种CAD/PDM软件包交换数据,保持了良好的互操作性。
这些组件基于与使用STEP和IGES的接口相同的体系结构。
Open CASCADE Application Framework (OCAF)基于应用程序/文档范式处理应用程序数据。它使用联想引擎,简化了CAD应用程序的开发,这要归功于以下即时可用的功能和服务:
由于OCAF处理应用程序结构,所以唯一的开发任务是创建专用的数据和GUI。
OCAF在组织应用程序数据方面不同于任何其他CAD框架,因为那里的数据结构基于引用键而不是形状。在模型中,形状数据、颜色和材料等属性被附加到一个不变的结构上,该结构比形状更深。形状对象成为形状属性的值,就像整数号是Integer属性的值,字符串是Name属性的值一样。
OCAF将这些属性组织并嵌入到文档中。OCAF文档由OCAF应用程序管理。