文章目录
- 概述
 - 一、基础类(Foundation Classes)
 - 
- 1.1.根类(Root Classes)
 - 1.2.字符串(Strings)
 - 1.3.集合(Collections)
 - 1.4.标准对象的集合(Collections of Standard Objects)
 - 1.5。向量和矩阵(Vectors and Matrices)
 - 1.6.基本几何类型(Primitive Geometric Types)
 - 1.7.常用数学算法(Common Math Algorithms)
 - 1.8.异常(Exceptions)
 - 1.9.数量(Quantities)
 - 1.10.应用服务组件(Application services)
 
 - 二、建模数据(Modeling Data)
 - 三、建模算法(Modeling Algorithms)
 - 四、 格(Mesh)
 - 五、可视化(Visualization)
 - 六、标准的数据转换(Data Exchange)
 - 七、应用程序框架(Application Framework)
 
概述
Open CASCADE Technology(OCCT)是一个面向对象的C++类库,用于快速开发设计领域的CAD/CAM/CAE应用程序。通常OCCT应用于开发处理计算机辅助设计(CAD)系统中的2D或3D几何建模、制造或分析应用、仿真应用,甚至插图工具。
 
一、基础类(Foundation Classes)
基础类模块是所有其他OCCT类的基础,包含高级Open CASCADE类使用的数据结构和服务:
- 基本类型,如布尔、字符、整数或实数
 - 字符串类,处理ASCII和Unicode字符串的
 - 数据集类,处理静态或动态大小的集合数据,如数组、列表、队列、集和哈希表
 - 算法类,提供常用的数值算法和基本的线性代数计算
 - 物理量和时间日期信息的基本类
 - 基本几何类,提供定义和操作基本数据结构的基本几何和代数实体的实现。
 - 异常处理类,对程序运行过程中产生的异常进行处理
 
基础类提供各种通用服务,比如自动动态内存管理、集合、异常处理、通过向下转型和插件创建。
 基础类包括以下内容:
1.1.根类(Root Classes)
根类是基本的数据类型和类,其它所有类都是依此而建立的。它提供以下类型和类:
- 基本类型,如布尔型(Boolean)、字符型(Character)、整型(Integer)或实数(Real)等
 - 动态对象的安全处理,确保自动删除未引用的对象
 - 可设置的内存优化管理器。提高了大量使用动态创建对象的应用程序的性能
 - 扩展的运行时类型识别机制,它有助于创建复杂的程序
 - 异常管理
 - C++流的封装
 
根类主要在Standard 和MMgt 包中实现。
1.2.字符串(Strings)
字符串是基于ASCII和Unicode处理动态大小的字符序列的类。字符串也可以由句柄操作,因此可以共享。字符串在TCollection包中实现。
1.3.集合(Collections)
集合是处理动态大小的数据聚合的类。集合类是通用的,也就是说,它们定义了一种结构和算法,允许拥有多种对象,而不需要继承于唯一跟类型,这与C++模板相似。当需要使用给定类型对象的集合时,必须对这个元素的指定类型进行实例化。一旦编译了此声明,所有基于这个通用集合的函数都可以在集合对象中实现。
 集合包括广泛的泛型类,如运行时大小的数组(arrays)、列表(lists)、堆栈(stacks)、队列(queues)、集(sets )和哈希表(hash maps)。集合在TCollection和NCollection包中实现。
1.4.标准对象的集合(Collections of Standard Objects)
TColStd包使用Standard 包中的对象或TCollection包中的字符串,为TCollection包中常用的通用类型提供实例化。
1.5。向量和矩阵(Vectors and Matrices)
向量和矩阵类提供了涉及向量和矩阵的常用数学算法和基本计算(加法、乘法、转置、求逆等)。
1.6.基本几何类型(Primitive Geometric Types)
基本几何类型提供了基本几何实体和代数实体的实现。这些实现符合STEP(Standard Exchange of Product data model,即产品数据模型的交换标准)。它们提供基本几何Shape 的描述(点、向量、直线、圆与圆锥、平面与基本曲面、通过坐标轴或坐标系使Shape 在平面上或空间中定位)和Shape 几何变换的定义与应用(平移、旋转、对称、缩放、复合变换、代数计算工具)。
1.7.常用数学算法(Common Math Algorithms)
常用数学算法为那些经常使用的数学算法提供C++实现。这些包括:
- 求解一组线性代数方程的算法
 - 求一元或多元函数的最小值的算法
 - 求解非线性方程或非线性方程组的算法
 - 求矩阵特征值和特征向量的算法
 
1.8.异常(Exceptions)
提供了常用异常类的层次结构,所有这些都基于异常的根类,Failure类。异常类描述了函数运行期间可能发生的异常情况。发生异常时,程序将不能正常运行。针对这种情况执行的操作称为异常处理。
1.9.数量(Quantities)
支持日期和时间信息的各种类,以及表示大多数物理量(如长度、面积、体积、质量、密度、重量、温度、压力等)的基本类型。
1.10.应用服务组件(Application services)
基础类还包括一些低层服务的实现,这些服务可以使用Open CASCADE创建可定制的、用户友好的应用程序。这些包括:
- 单元转换工具,为处理数量和相关物理单元提供了统一的机制:检查单元兼容性,及执行不同单元之间的值转换,等等
 - 表达式的基本解释器,便于创建自定义脚本工具,表达式的通用定义,等等
 - 处理配置资源文件和可自定义消息文件的工具,使应用程序更容易提供对多语言的支持
 - 进程指示和用户中断接口,甚至为底层算法提供了一种通用和便利的方式与用户通信的可能性
 
二、建模数据(Modeling Data)
建模数据提供数据结构来实现三维对象的边界表示(BRep)。在BRep中,形状表示为拓扑中的几何集合。几何被理解为一个形状的数学描述,如曲线和曲面(简单或标准,Bezier,NURBS等)。拓扑是将几何对象绑定在一起的数据结构。
 几何类型和实例为以下提供了几何数据结构和服务:
- 点、向量、曲线、曲面描述
 - 通过插值和近似建立参数曲线和曲面
 - 直接构造算法
 - 将曲线和曲面转换为NURBS形式
 - 二维和三维曲线上点坐标的计算
 - 几何对象间极值的计算
 
拓扑定义了简单几何实体之间的关系。形状是一个基本的拓扑实体,可以分为组件(子形状):
- 顶点——与点对应的零维形状;
 - 边——与曲线相对应的形状,在每条边上都有一个顶点;
 - 线——由顶点连接的边缘序列;
 - 面——平面(二维)或曲面(三维)的一部分,由线包围;
 - 外壳——由金属线边界的边缘连接的面集合;
 - 实体——三维空间有限的封闭部分,以壳为界;
 - 复合固体——由外壳边界的面连接的固体的集合。
 
复杂形状可以定义为简单形状实体的集合。
三、建模算法(Modeling Algorithms)
建模算法模块组被广泛用于几何建模的拓扑和几何算法。在Open CASCADE中,基本上有以下算法:
- 在实际设计中使用的高级建模例程
 - 作为建模API基础的底层数学支持函数
 - 底层几何工具算法
 - 底层拓扑工具算法
 
顶级API提供以下功能:
- 
建模基本类型
- 盒子
 - 棱镜
 - 气缸
 - 锥
 - 球体
 - 环面
 
 - 
运动学建模
- 棱柱
 - 旋转
 - 管道
 
 
四、 格(Mesh)
格模块提供了处理三角形面片形式的对象的镶嵌表示的功能。这个模块包含:
- 用于存储与形状相关的曲面 格数据的数据结构和处理这些数据的基本算法
 - 利用BRep对象构造三角曲面 格的数据结构和算法
 - 用于显示与相关的预处理和后处理数据(标量或向量)的 格的工具
 
Open CASCADE包括两个 格转换器:
- VRML转换器将Open CASCADE的形状转换为VRML 1.0文件(虚拟现实建模语言)。两种表示模式是可能的:阴影模式(用 格算法计算的三角形集表示形状)和线框模式(用曲线集表示形状)
 - 支持GLSL着色器。像任何其他OpenGL资源一样,着色器管理是完全自动的。
 
- 标准化的数据交换接口允许查询和检查输入文件,将其内容转换为CAD模型,并对完全转换后的形状运行有效性检查。目前支持以下格式。
- STEP
 - IGES
 - VRML和STL 格
 
 - 扩展数据交换(XDE)允许转换附加到几何数据的附加属性(颜色、层、名称、材质等)。
 - 除了标准的数据交换接口外,高级数据交换组件也可用来支持与CAD软件的互操作性和数据适配(也使用形状修复),使用以下专有格式:
- ACIS SAT
 - Parasolid
 - DXF
 
 
这些组件基于与使用STEP和IGES的接口相同的体系结构。
七、应用程序框架(Application Framework)
Open CASCADE Application Framework (OCAF)基于应用程序/文档范式处理应用程序数据。它使用联想引擎,简化了CAD应用程序的开发,这要归功于以下即时可用的功能和服务:
- 管理应用数据的数据属性,可以根据开发需求进行组织;
 - 数据存储和持久性(打开/保存)
 - 修改和重新计算文档中的属性的可能性。使用OCAF可以很容易地表示模型中的修改历史和参数依赖关系
 - 管理多个文档的可能性
 - CAD/CAM/CAE应用程序通用的预定义属性(例如存储尺寸)
 - 撤消-重做和复制-粘贴功能
 
由于OCAF处理应用程序结构,所以唯一的开发任务是创建专用的数据和GUI。
 OCAF在组织应用程序数据方面不同于任何其他CAD框架,因为那里的数据结构基于引用键而不是形状。在模型中,形状数据、颜色和材料等属性被附加到一个不变的结构上,该结构比形状更深。形状对象成为形状属性的值,就像整数 是Integer属性的值,字符串是Name属性的值一样。
 OCAF将这些属性组织并嵌入到文档中。OCAF文档由OCAF应用程序管理。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!