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