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
相关推荐
一点灯2 个月前
opencascade源码学习之HLRAlgo包 -HLRAlgo
occ·opencascade
CodingCos4 个月前
【SOC 芯片设计 DFT 学习专栏 -- DFT OCC 与 ATPG的介绍】
occ·atpg·fast scan·dft occ
VinciYan4 个月前
编译Open Cascade(OCC)并使用C#进行开发
c#·开源软件·cad·occ·open cascade·三维cad
丰色木夕5 个月前
Ubuntu22.04下源码编译安装pythonocc-7.8
occ·occt·pythonocc
wuchen10047 个月前
OpenCASCADE(OCC)读入含中文汉字标签的内容后乱码的解决方法
occ·opencascade·标签乱码
欧特克_Glodon8 个月前
OpenCASCADE开发指南:专栏内容介绍及目录
c++·三维建模·occ·opencascade·几何内核
shanql1 年前
OCC:第一个程序,对话框中显示一个BOX
occ·occ第一个程序