OCC介绍及框架分析
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


