Skip to content

lei4-tech/rs-opencascade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCASCADE Technology (OCCT) 学习教程 — V8_0_0

目标:系统掌握 OCCT 全部模块,为后续使用 Qt + OpenGLFlutter 自研 CAD 应用打基础。 基于本仓库分支 V8_0_0,源码组织为 src/<Module>/<Toolkit>/<Package>。 ✅ 全部 9 个模块(0–8)已完成深入拆解,共 85 篇深入文档。 📌 想快速查「该怎么做 / 别踩什么坑」?直接看 工程最佳实践汇总。 🛠️ 要动手搭 Qt 视口?跟 Qt 视口从零搭建 Checklist(10 阶段逐项打勾)。 🧠 想懂「为什么这样设计」?看 设计理念与工程经验系列(00–08 全 9 篇已完成,逐模块讲技术选择背后的权衡;08 收官 是八条贯穿主线的总图)。一页纸版见 设计原则速查卡。 🏗️ 想把这些智慧落到你自研 CAD 的具体设计?看 应用设计系列19 篇专项,覆盖参数化 CAD 几乎所有硬核设计决策):


0. 怎么用这套教程

  • OCCT 官方共 7 大模块(见 adm/MODULES),本教程为每个模块设计 10 个由易到难的阶梯计划,外加「环境上手(0)」与「集成实战(8)」两章。
  • 两层结构
    • 模块索引页(如 04-visualization.md)= 10 阶速览 + 深入文档目录表。
    • 深入文档子文件夹(如 04/)= 每个阶梯/主题一篇详解,含可运行代码、实践任务、验收里程碑,类名全部对照 V8_0_0 源码核实。
  • 推荐顺序:先 00-getting-started 把环境与 DRAW 跑起来 → 按 1→7 模块推进 → 最后用 08-integration 落到 Qt/Flutter 应用。
  • 强烈建议边学边用 DRAW(模块 7)做原型:先用 Tcl 命令验证思路,再写 C++,效率最高。

1. OCCT 模块全景

# 模块 作用 索引页 深入文档
0 环境与上手 构建 OCCT、跑通 DRAW、第一个程序 00-getting-started.md 00/ · 5 篇
1 Foundation Classes 基础类型、句柄、集合、数学 (TKernel TKMath) 01-foundation-classes.md 01/ · 9 篇
2 Modeling Data 几何与拓扑数据结构 (TKG2d TKG3d TKGeomBase TKBRep) 02-modeling-data.md 02/ · 11 篇
3 Modeling Algorithms 建模算法:布尔/扫掠/圆角/网格 (TKPrim TKBO TKFillet…) 03-modeling-algorithms.md 03/ · 11 篇
4 Visualization ⭐ 三维显示与交互 (TKService TKV3d TKOpenGl…) 04-visualization.md 04/ · 11 篇
5 Application Framework (OCAF) 文档/属性/撤销重做/持久化 (TKLCAF TKCAF…) 05-application-framework.md 05/ · 10 篇
6 Data Exchange STEP/IGES/STL/glTF 等格式交换 (TKDESTEP TKXCAF…) 06-data-exchange.md 06/ · 10 篇
7 Draw Test Harness Tcl 脚本测试/原型工具 (TKDraw DRAWEXE) 07-draw-test-harness.md 07/ · 10 篇
8 集成实战 ⭐ 把 OCCT 接到 Qt+OpenGL / Flutter 08-integration-qt-flutter.md 08/ · 8 篇

⭐ = 与「Qt+OpenGL / Flutter 自研 CAD」目标最直接相关,建议重点投入。

2. 模块依赖关系(学习先后)

FoundationClasses  (TKernel, TKMath)        ← 一切的基础
        │
ModelingData       (gp/Geom/TopoDS/BRep)    ← 几何与拓扑的“名词”
        │
ModelingAlgorithms (BRepPrimAPI/BRepAlgoAPI)← 建模的“动词”
        │
   ┌────┴───────────────┬──────────────┐
Visualization        DataExchange      OCAF
(AIS/V3d/OpenGl)     (STEP/IGES/glTF)  (TDocStd/XDE)
        │
     Draw (DRAWEXE) ← 贯穿全程的脚本/调试工具
        │
   集成实战 (Qt+OpenGL / Flutter FFI)        ← 把以上汇成应用

3. 针对你目标的推荐路径(Qt+OpenGL / Flutter)

阶段 做什么 主要文档
1 环境 + DRAW + 几何拓扑地基 00/ · 01/ · 02/ · 07/
2 建模 + 数据交换 03/ · 06/
3 可视化(显示/拾取/导航/离屏) 04/
4 Qt 桌面集成 04/11-qt-integration · 08/02~08/04
5 文档/撤销/参数化 05/
6 (可选)Flutter FFI / glTF 查看器 08/05~08/06
7 打包部署 08/07

全教程的分阶段路线图 + 高频坑清单 + 「功能→模块」速查08/08-roadmap-and-pitfalls——可当施工总图。

4. 关键命名约定(先记住能省很多力气)

  • 包前缀即领域gp_=几何基元、Geom_/Geom2d_=参数几何、TopoDS_=拓扑、BRep=边界表示、AIS_=交互显示、TDF_/TDataStd_=OCAF、*Control_/RW*=数据交换。
  • ...API 结尾:面向用户的高层封装(如 BRepPrimAPI_MakeBoxBRepAlgoAPI_FuseGeomAPI_PointsToBSpline)。日常开发优先用 *API 类。
  • 句柄 Handle(T):OCCT 的引用计数智能指针,配合 Standard_Transient 派生类做内存管理(值类型 vs 句柄类型见 01/01)。
  • TK = ToolKit(动态库),src/<Module>/<TK>/<Package>/ 是物理布局;类名前缀=包名,据此可反推文件路径(见 00/01)。

5. 配套官方文档(深挖时查)

仓库 dox/user_guides/ 内有 Markdown 版用户指南,与模块一一对应: foundation_classesmodeling_datamodeling_algosvisualization/visocafstep/iges/xde/de_wrappershape_healingmeshdraw_test_harness。学到对应模块时配合阅读。 官方示例(含 Qt)见独立仓库 Open-Cascade-SAS/OCCT-Samples

6. 完整文件树

.wolf/tutorial/
├── README.md                       本文件(教程总索引)
├── best-practices.md               9 模块工程最佳实践汇总 + 高频坑速查
├── checklist-qt-viewport.md        Qt 视口从零搭建端到端 checklist(10 阶段 + 验证门)
├── rationale/                      设计理念与工程经验系列 00–08(讲“为什么这样设计”+八条贯穿主线总图,全 9 篇已完成)+ 设计原则一页纸速查卡
├── applied/                        应用设计系列(把智慧落到你自研 CAD 的具体设计:特征树+命名方案…)
├── 00-getting-started.md           + 00/  (5 篇:仓库/构建/DRAW/首程序/工作流)
├── 01-foundation-classes.md        + 01/  (9 篇:句柄/字符串/集合/系统/单位精度/gp/math/曲线数学/RTTI)
├── 02-modeling-data.md             + 02/  (11 篇:几何vs拓扑/2D/曲线/曲面/适配器/拓扑类型/遍历/数据访问/构造/IO/局部属性)
├── 03-modeling-algorithms.md       + 03/  (11 篇:总览/边线/面体/扫掠/变换/布尔/圆角/偏置/网格/分析/修复)
├── 04-visualization.md             + 04/  (11 篇:架构/视图/显示/属性/相机/选择/自定义对象/图元/高级渲染/后端/Qt集成)
├── 05-application-framework.md     + 05/  (10 篇:概念/标签树/属性/命名/事务/持久化/二进制/XML/函数/可视化TObj)
├── 06-data-exchange.md             + 06/  (10 篇:总览/STEP入出/IGES/XDE/带元数据/网格/glTF/VRML原生/健壮管线)
├── 07-draw-test-harness.md         + 07/  (10 篇:认识/造型/看图/探查/布尔/交换/脚本/测试/自定义命令/工程武器)
└── 08-integration-qt-flutter.md    + 08/  (8 篇:架构/Qt工程/视口/外壳/FFI/渲染策略/打包/路线图)

文档输出位置遵循本项目规则:所有生成文档统一放在 .wolf/ 下(此处为 .wolf/tutorial/),不新建 docs/,不写入全局 ~/.claude

About

research on opencascade

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors