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)部署基础

附:学习路线建议

  1. 严格按照本大纲从前往后逐节学习,每章节配套理论 + 代码实操
  2. 每学完一个模块,完成对应实操案例,杜绝只看不学
  3. 难点模块(拓扑、布尔运算、曲面建模、OCAF)重点拆解、反复实操
  4. 环境搭好后优先用 Draw Harness 验证算法,再写 C++;官方 sample 优先于网络博客
posted @ 2026-08-24 16:18  Drunker•L  阅读(65)  评论(0)    收藏  举报