Skip to content

04b 圆角突破 · 双线并行学习路线图

源自原始对话 Turn 4–6,结合 04a 技术侦察落到可执行月度任务。 两条线:路线 A "数据视野"(让 AI 看得见)+ 路线 B "逻辑神经"(让 AI 听得懂),齐头并进拼出完整的几何"验尸报告"。

顶层架构演进(终极形态:AI CAD Test Harness)

阶段一  几何探针/可视化断点   → 让 OCC 在 FreeCAD 中"活"起来(看得见 TopoDS_Shape)
阶段二  跨语言桥梁/Agent 接口  → Python Agent ↔ C++ 几何内核(pybind11 或 gRPC)
阶段三  评估台 Harness         → BRepCheck_Analyzer/GProp 对生成几何强规则打分

架构决策点(你需要拍板)

桥接选 pybind11(轻量/紧耦合,MVP 快)还是 gRPC(企业级/松耦合,进程隔离=天然沙箱)?建议:MVP 用 pythonocc-core 直接起步(已绑定 OCCT,几乎不写 C++),跑通闭环后再上 gRPC 服务化。详见 04a §4


路线 A:数据视野线 —— 拓扑特征序列化

核心目标:把 C++ 内存里复杂的 B-Rep 数据结构,无损且轻量地提取成大模型/前端能消化的格式(JSON + Mesh)。

第 1 月:攻克拓扑遍历与降维提取

  • 学习重点:吃透 OCC 拓扑数据结构(Vertex / Edge / Wire / Face / Shell / Solid)。
  • 实战任务:熟练使用 TopExp_Explorer。写 C++ 脚本:输入一个带圆角的长方体,遍历打印所有 Face/Edge 的 ID 及类型(平面/柱面/NURBS 面)。

第 2 月:几何探针与离散化(网格化)

  • 学习重点:AI 难直接理解高阶解析几何方程,离散化点云/网格更友好。学 BRepMesh_IncrementalMesh
  • 实战任务:用 BRep_Tool::Triangulation 把 Face 提取为三角网(Nodes + Triangles);用 BRepLProp_SLProps 获取特定面法向量与主曲率——这对 AI 判断圆角失败至关重要

第 3 月:定义序列化协议(JSON Schema)

  • 学习重点:跨语言数据绑定。引入 nlohmann/json
  • 实战任务:确立第一版"几何切片协议"——把第 2 月提取的节点、三角面片、法向、曲率打包成结构化 JSON。

路线 B:逻辑神经线 —— 底层错误状态解析

核心目标:打破 OCC 祖传的 IsDone() == false 黑盒,深挖算法底层,精准定位导致圆角失败的"罪魁祸首"。

第 1 月:重构 OCC 异常捕获机制

  • 学习重点:OCC 异常体系极古老。了解 Standard_Failuretry-catch (Standard_Failure& e) 的正确姿势,以及 OCC_CATCH_SIGNALS / OSD::SetSignal()(见 04a §1)。
  • 实战任务:故意写必错圆角(5mm 宽的边上打 10mm 圆角),捕获崩溃并阻止 C++ 进程闪退——这是 Harness 稳定性的基石。

第 2 月:拆解 BRepFilletAPI 中间状态

  • 学习重点:不只看 API,要看源码——深挖 BRepFilletAPI_MakeFillet 背后依赖的 ChFi3d 倒角引擎逻辑。
  • 实战任务IsDone() 为假时,调用 NbFaultyContours()/FaultyContour()Generated()/Modified()StripeStatus() 提取出究竟哪条 Edge 导致失败。

第 3 月:构建"故障上下文"解析器

  • 学习重点:结合几何数学,建立错误原因分类树。
  • 实战任务:捕获到错误 Edge 时,自动计算该 Edge 相邻两 Face 的夹角与最小宽度,格式化为:Error: Fillet Radius (10) > Adjacent Face Min Width (5) on Edge_ID_12

第 4 月:双线汇合 —— 生成"智能验尸报告"

通过一个 C++ 核心 Controller 把 A、B 两线组合:

  1. BRepFilletAPI 抛出异常(路线 B 触发)。
  2. 路线 B 定位到出错的局部几何体(如 Edge_12 及相邻面)。
  3. 调用路线 A 的序列化工具,仅对出错局部几何体做网格化和法向提取。
  4. 组合生成最终 JSON 投喂给 Python 端 LLM。

架构级决策

最大工程决策是设计这套跨语言数据结构:AI 懂 JSON,但 JSON 处理海量三维顶点非常臃肿;二进制(Protobuf / .brep 字符串)快但解析麻烦。建议:第一版原型先用冗长但人/LLM 都易读的 JSON 跑通,验证闭环后再换 Protobuf + 极简标识符 追求性能。


6 个月里程碑(对齐 06 实践看板

路线 A路线 B合并产物
1TopExp_Explorer 遍历打印Standard_Failure 捕获、防闪退
2BRepMesh 三角化 + 法向/曲率FaultyContour/StripeStatus 定位坏边
3nlohmann/json 几何切片协议故障上下文解析器(夹角/最小宽度)
4C++ Controller 合并 → 智能验尸报告 JSON
5Python Agent 接收报告 + Prompt 链设计 + 沙箱回滚
6圆角自动生成→测试→纠错闭环 Harness 雏形 + 质量评估(BRepCheck/GProp)

与现有项目的衔接

第 5–6 月的 Agent 闭环可直接借鉴 CADSmith 双循环build123d#1224 坏边探测原型,可视化前端可用你自己的 Print

AI 与 CAD · 研究与工程实践