1.OCCT学习大纲
OCCT(Open CASCADE)全套系统学习大纲(从零到工程实战)
本大纲适配零基础入门到工程落地,遵循先基础、再核心、后实操、最终商业化落地的学习逻辑,剔除零散无效知识点,聚焦 OCCT 核心建模、数据结构、算法、开发实战。后续所有课程内容均严格对应本大纲章节。
修订说明(v2):相对初版新增并调整了三处——(1) 新增第六章 OCAF 应用框架(文档模型 / Label 树 / 属性 / 建模历史 / XCAF),这是做"带撤销重做、参数驱动、装配树"的 CAD 工具的必经之路;(2) 把"网格剖分与轻量化"从可视化/IO 中独立成第八章,因为它的用途(STL 导出、显示离散化、轻量化)足够独立且重要;(3) IO 章补入 XCAF 装配树/颜色/名称。版本号请以官网最新稳定 release 为准(稳定线大致 7.8 / 7.9),不要锁死具体小版本。
一、前置基础与 OCCT 整体认知(入门筑基)
1.1 OCCT 核心概念与定位
- OCCT 是什么、开源 CAD 内核的核心价值与应用场景
- OCCT vs 商业 CAD 内核(ACIS / Parasolid)优劣对比
- 适用领域:工业建模、BIM、机械 CAD、逆向建模、仿真前置
- OCCT 版本迭代特性、稳定版本选择(工程推荐版本,以官网最新稳定版为准)
1.2 必备前置技术基础
- C++ 基础复盘:类、继承、多态、智能指针、模板(OCCT 核心语法依赖)
- 计算机图形学基础:三维坐标系、向量、矩阵变换、投影原理
- CAD 基础概念:参数化建模、拓扑、几何、布尔运算、容差
1.3 OCCT 整体架构与模块全景
- 六大核心模块分层架构:数据层、建模层、可视化层、交互层、文件层、工具层
- 核心模块功能速览:Kernel、Math、Geom、Topology、BRep、Algo、V3d、AIS 等
- OCCT 类库设计思想、命名规则、代码规范
- 内存模型三件套(写代码第一道坎):
gp_*(栈值对象)/Handle(Geom_*)(引用计数)/TopoDS_*(拓扑值对象)
1.4 官方文档、示例与 Draw Harness(学习资源)
- User Guide 与 Reference Manual 怎么查
- 官方
samples/cxx示例:先跑 sample、看懂再改 - Draw Harness 脚本工具:环境搭好后第一个必用工具,先用脚本验证算法,再翻译成 C++
- 网上资源现状与避坑(博客版本老旧,优先官方)
二、开发环境搭建与工程配置(实操起步)
2.1 多平台环境搭建
- Windows:VS + CMake 编译 OCCT、预编译库部署、环境变量配置
- Linux / Mac:源码编译、依赖安装、工程编译脚本配置
- Qt + OCCT 联合开发环境搭建(主流 GUI 开发方案)
- 跑通 Draw Harness,用它验证最小建模流程
2.2 工程模板与基础调试
- CMake 工程模板编写、依赖链接配置(TKMath / TKBRep / TKBO …)
- 第一个 OCCT 程序:无界面版本(创建基础几何体 + 输出 BREP 文件),先跑通再上窗口
- OCCT 日志调试、报错排查、内存泄漏检测
三、OCCT 数学与几何核心基础(建模底层)
3.1 数学核心模块(TKMath)
- 基础数据结构:点、向量、方向、坐标系(
gp_Ax1/Ax2/Ax3)、四元数 - 三维变换:平移、旋转、缩放、镜像、组合变换(
gp_Trsf/gp_GTrsf) - 数值计算、容差机制(OCCT 建模核心关键)
3.2 几何曲线曲面模块(TKGeom / TKG2d / TKG3d)
- 基础曲线:直线、圆、圆弧、椭圆、样条曲线(BSpline / NURBS)
- 基础曲面:平面、球面、圆柱面、圆锥面、圆环面
- 高级曲面:NURBS 曲面、插值曲面、拟合曲面
- 几何对象创建、修改、查询、截断、延伸操作
- 完整链路:
gp(数学)→Geom(可运算几何,Handle 管理)→BRepAPI生成TopoDS(拓扑)
四、拓扑与 BRep 核心体系(OCCT 核心精髓)
OCCT 区别于简易图形库的核心:几何 (Geom) + 拓扑 (Topo) + 边界表达 (BRep)
4.1 拓扑结构层级与核心概念
- 拓扑层级关系:Vertex → Edge → Wire → Face → Shell → Solid → Compound
- 几何与拓扑的区别与关联
- 拓扑对象属性:方向(Orientation)、连通性、位置(TopLoc_Location 局部变换)、容差
4.2 BRep 边界表达原理与实操
- BRep 数据结构解析、存储规则(BRep_TEdge / TFace / TVertex 与上层 TopoDS 句柄的关系)
- 手动构建基础 BRep 对象(用
BRep_Builder/TopoDS_Builder从点线面到实体,配最小可运行代码) - 拓扑遍历:
TopExp_Explorer遍历实体所有点、边、面 - 形状类型判断
ShapeType()与空校验IsNull()/IsDone()
五、基础参数化建模算法(入门建模)
5.1 二维草图建模(OCCT 中的"草图"= Geom2d + 闭合 Wire)
- 二维轮廓绘制:Geom2d 曲线、约束搭建、轮廓闭合检查
- 草图修剪、偏移、倒角、圆角操作
- 由闭合 2D 轮廓构建
TopoDS_Wire(后续拉伸/旋转的输入)
5.2 三维基础特征建模
- 拉伸、旋转、扫描、放样(基础四大特征)
- 打孔、倒角、圆角、抽壳、加厚(含
BRepOffsetAPI_MakeThickSolid) - 阵列建模:矩形阵列、环形阵列、镜像阵列
5.3 布尔运算核心算法
- 实体布尔:相加、相减、相交、切割、拆分
- 曲面布尔、线框布尔实操
- 布尔运算报错、破面、重叠问题排查与优化
六、OCAF 应用框架与数据管理(新增 · 工程化必经)
裸 Shape 只能做一次性脚本;OCAF 才是"带文档/属性/历史/参数树"的 CAD 工具骨架。
6.1 OCAF 是什么、解决什么问题
- 与裸
TopoDS_Shape的区别:文档化、可持久化、可追溯 - 应用场景:撤销重做、参数驱动、装配树、元数据
6.2 文档与 Label 树
TDocStd_Document、TDF_Label、TDF_TagSource- Label 树的层级组织方式
6.3 属性机制
TDataStd(实数/整数/名称等)、几何属性TNaming(拓扑/几何引用)
6.4 建模历史与驱动
TNaming_Builder、特征引用TFunction(特征函数、依赖关系、重算 / 参数更新)
6.5 XCAF / XDE 数据交换框架
- 装配树、颜色、名称、图层(STEP 导入后的结构化读取)
6.6 OCAF 与实战
- 命令模式(GeoCommand)、撤销重做、参数化更新
七、高级建模与曲面优化(进阶能力)
7.1 复杂曲面建模
- 网格曲面、拼接曲面、填充曲面、融合曲面
- 曲面连续性优化(G0 / G1 / G2)
- 曲面修剪、分割、重构
7.2 模型诊断与修复
BRepCheck_Analyzer有效性检查- OCCT 模型常见问题:破面、缝隙、重复顶点、坏拓扑
- 自动修复:
ShapeFix、ShapeUpgrade;手动修复流程
7.3 模型轻量化与容差统一
7.4 参数化与变量化建模
- 参数驱动建模思路、变量绑定
- 模型参数修改、实时更新重构
八、网格剖分与轻量化(独立成章)
8.1 为什么需要网格
- BRep 是精确曲面,屏幕显示 / STL / 仿真前置需要离散化
8.2 三角化参数
BRepMesh_IncrementalMesh:线性偏差、角度偏差、容差
8.3 三角化结果读取
Poly_Triangulation:顶点、法向、三角形索引
8.4 STL / OBJ 导出与轻量化
九、三维可视化与人机交互(界面开发)
9.1 可视化核心模块(V3d / AIS)
- 视图、场景、渲染器、相机、光源配置
- AIS 交互对象管理:显示、隐藏、颜色、透明度、材质
- 网格显示、线框显示、实体显示模式切换
9.2 人机交互功能开发
- 鼠标交互:平移、缩放、旋转、单选、框选
- 拾取功能:拾取顶点、边、面、实体
- 高亮、选中提示、交互反馈开发
十、文件读写与数据交互(工程必备)
10.1 主流 CAD 文件格式读写
- 原生格式:BREP、CSFDB 读写
- 通用工业格式:STEP、IGES 导入导出(核心重点)
- XCAF 读取装配树 / 颜色 / 名称(STEP 导入后的结构化解析)
- 网格格式:STL、OBJ 导入导出
10.2 数据解析与转换
- 外部 CAD 文件容错读取、数据修复
- 实体与网格互相转换、参数化模型转轻量化网格
十一、工程实战项目(能力落地)
通过完整项目串联所有知识点,具备独立开发小型 CAD 工具的能力
11.1 基础实战:简易机械零件建模器
11.2 进阶实战:Qt + OCCT 自研 CAD 可视化工具
11.3 高级实战:模型批量导入修复 + 轻量化工具
十二、性能优化与高阶拓展(商业化进阶)
12.1 性能优化
- 大规模模型渲染卡顿优化、内存泄漏处理
- 建模算法提速、拓扑遍历优化
12.2 高阶拓展方向
- OCCT 二次开发框架封装
- 逆向建模、点云拟合曲面
- BIM 建模拓展、仿真数据对接
- Web 端 OCCT(WASM)部署基础
附:学习路线建议
- 严格按照本大纲从前往后逐节学习,每章节配套理论 + 代码实操
- 每学完一个模块,完成对应实操案例,杜绝只看不学
- 难点模块(拓扑、布尔运算、曲面建模、OCAF)重点拆解、反复实操
- 环境搭好后优先用 Draw Harness 验证算法,再写 C++;官方 sample 优先于网络博客

浙公网安备 33010602011771号