文章目录
- 概述
- 一、基础类(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进行处理,非常感谢!