1.OCC介绍
Open CASCADE (简称OCC)是一开源的几何造型引擎,OCCT库是由Open CASCADE公司开发和市场运作的。它是为开源社区比较成熟的基于BREP结构的建模引擎,能够满足二维三维实体造型和曲面造型,国内研究和使用它的单位也越来越多。基于该建模引擎发展了若干CAD/CAE/CAM软件,如国外的FreeCAD、HeeksCAD,国内的AnyCAD。OCC可以分为建模、可视化和数据管理(OCAF)三大模块。其中建模为核心组件;可视化组件基于OpenGL库被设计。设计成模块化和易扩展。将C++类与以下内容分离:
- 定义数据结构(几何建模、显示和交互选择);
- 实现复杂算法;
- 提供编程接口;
优势:
- 开源、免费,所以开发成本较低。
- 支持跨平台
- 支持STEP\IGES\STL等文件格式
- 有个OCAF框架,简化开发。
不足:
- 部分算法效率低下,例如布尔运算。
- 显示效果很差,只用到了OpenGL1.2的API。相对其他的三维可视化OpenGL平台(如Coin4d,OpenInventor, Ogre,OSG,Blender,VTK等),功能简单,并且显示效果比较差,不能充分利用GPU硬件加速,,跟HOOPS没得比。
- OCAF采用树的方式管理数据,使用比较复杂,效率比较低,并且不适合自定义扩展。
因此,不推荐使用OCC的可视化和数据管理组件.
1.1 技术架构:
1.2 OCAF框架
1.3 模块介绍:
OCCT库分组成六个模块,最小的模块Foundation Classes包含两个库,最大的模块Modeling Algorithms,包含八个库。(可能是早期版本,最新版本的库的数量有变化。)
这些模块如下图所示:
Foundation Classes基础类 |
Modeling Data 建模数据 |
Modeling Algorithms 建模算法 |
Visualization 可视化 |
Data Exchange 数据交换 |
Application Framework 程序框架 |
Kernel Classes 核心类 |
2D Geometry 二维几何体 |
Primitives 基本实体 |
2D和3D通用功能 |
IGES STEP |
Data Framework |
Math Utilities 数学工具 |
3D Geometry 三维几何体 |
Boolean Operations 布尔操作 |
2D Visualization 2D 可视化 |
AP203 AP214 |
Data Storage |
Geometry Utilities 几何工具 |
Fillets and Chamfers 倒圆和倒角 |
3D Visualization 3D 可视化 |
Extended data Exchange (XDE) |
Application Desktop |
|
Topology 拓朴结构 |
Offsets, Drafts, Sewing, Sweeps, |
||||
Hidden Line Removal 消隐 |
|||||
Geometric Tools 几何工具 |
|||||
Topological Tools 拓朴工具 |
1.4 OCCT已有功能
(1)模型几何建模引擎
(2)显示渲染引擎
(3)基本交互:
- 背景网格
- ViewCube视图向导
- 拾取选择
- 基本对象的拾取选择-选择点,线,面,体等
(4)模型持久化框架
- 文件保存
- 文件打开
基于TK_Model,TDF_Label,TDF_Attribute的树状对象模型
(5)支持事务框架
- Redo/Undo