s-blog

AI × CAD × 机器人

一份覆盖 CAD 内核、机器人学、3D 前端、Agent 工程的 12 个月深度路径。项目源地址:https://github.com/earthtojake/text-to-cad

ssssmy · 2026-05-03 · 7 min

🗺️ Text-to-CAD 全栈学习路线图

按"先共同地基,再分支专精"的顺序。每节预估时长按"每天 1-2 小时"算。括号是核心资源。


📐 L0 · 数学和编程地基(2-4 周)

不学这层,后面所有的旋转矩阵、关节链、shader 都看不进去。

知识 用在哪里 推荐
线性代数:矩阵乘法、齐次坐标、SVD 装配体 transform、URDF 关节、three.js Matrix4 Gilbert Strang《Linear Algebra and Its Applications》前 4 章;3Blue1Brown 视频
三维旋转:旋转矩阵、欧拉角、四元数、轴角 URDF rpy、机器人正逆解、相机轨道 《Robotics: Modelling, Planning and Control》(Siciliano) Ch 2,或《Quaternions for Computer Graphics》
Python 3.11+ 进阶 build123d、OCP 脚本 《Fluent Python》(Luciano Ramalho)
JS / TypeScript ES Modules + async/await Explorer 前端 MDN 现代 JS 教程
Git + Git LFS 项目里 STEP/STL/GLB 走 LFS git-lfs.github.com 官方 tutorial

✅ 通关标准:能闭眼写出 4×4 齐次变换矩阵手算,知道四元数和欧拉角的优劣。


🧰 L1 · CAD 内核与文件格式(4-6 周)

Text-to-CAD 的 Python 端全靠这层。

1.1 OpenCascade(OCC/OCP)

  • 是什么: 3D B-Rep CAD 内核,法国 OpenCascade 社区 30 年作品,STEP/IGES/Brep 解析的事实标准
  • 怎么学:
    • 先看 OpenCascade 官方 manual 的 “Modeling Algorithms” 和 “Data Exchange” 两章
    • Python 绑定:CadQuery 文档 顺带学(底层一样)
    • Hands-on: 用 OCP 直接打开本仓的 STEP/r6_arm.step,枚举所有 face,统计 GeomType
  • 关键概念: TopoDS_ShapeSolidFaceEdgeVertex,B-Rep 拓扑、参数曲面、布尔运算

1.2 build123d

  • 高层 Python DSL,封装 OCP
  • Tutorial: 官方 build123d.readthedocs.io 全过一遍
  • Builder 模式 vs Algebra 模式都要会(本仓 STEP/r6_link*.py 用的 Algebra,industrial_pallet.py 也是)
  • Hands-on: 复现并改进 STEP/industrial_pallet.py(加上叉车口、防滑板)

1.3 STEP / STL / 3MF / DXF / GLB

  • STEP (AP203/AP214/AP242): ISO-10303,B-Rep 精确几何,工业互操作金标准。读《Express Language Reference》前面几章足够
  • STL: 三角面片,无单位,只能装配显示。看 Wikipedia 即可
  • 3MF: 微软主推的 3D 打印 STEP 替代,XML + ZIP,带颜色/材质。3mf.io 规范
  • DXF: AutoCAD 中性格式,2D/3D 图元都有。ezdxf Python 库文档
  • GLB / glTF 2.0: 浏览器端 3D 标准。Khronos glTF tutorial
  • 拓扑 sidecar: 本项目自有,看 .agents/skills/cad/scripts/common/step_scene.py

✅ 通关标准:看到一个 STEP 文件能用 OCP/build123d 打开、改、再导出。


🤖 L2 · 机器人学(6-10 周)

URDF 只是一种序列化格式,后面的运动学/动力学才是真功夫。

2.1 URDF

  • ROS 官方 URDF tutorial
  • 看本仓 URDF/r6_arm.urdf 全部理解 <link>/<joint>/<inertial>/<visual>/<collision> 含义
  • 工具: yourdfpyurchinurdfdom,看着官方仓玩

2.2 DH 与 MDH 参数

  • 必读:John J. Craig《Introduction to Robotics: Mechanics and Control》第 3 章(Modified DH)
  • 对比 Spong《Robot Modeling and Control》第 3 章(Standard DH)
  • Hands-on: 把本仓 find_pivots.py 抽出的 6 个轴自己手算 MDH,跟 URDF/r6_arm.py 对照

2.3 正向运动学 FK

  • 关节角 → 末端位姿
  • 矩阵链相乘,几行 numpy 搞定
  • 看 Explorer 的 lib/urdf/kinematics.js 是怎么用 three.js Matrix4 做 FK 的

2.4 逆向运动学 IK

  • 末端位姿 → 关节角,难点在这里
  • 解析法(球腕分离法,Pieper 1968):适用于 r6_arm 这种最后三轴交于一点的结构
  • 数值法:Jacobian transpose / pseudo-inverse / DLS / TRAC-IK
  • 推荐:Siciliano《Robotics》Ch 3,代码看 ikpy Python 库
  • Hands-on: 给 r6_arm 写个解析 IK,验证可达性

2.5 路径规划 + 动力学(进阶)

  • 路径规划:RRT、PRM、CHOMP、STOMP → MoveIt 2 是工业事实标准
  • 动力学:牛顿欧拉法、拉格朗日法,用于扭矩计算和实时控制
  • 仿真:Gazebo / Isaac Sim / MuJoCo / PyBullet,各有侧重

✅ 通关标准:给一个 URDF 和目标 TCP 位姿,能算出关节角并验证可达。


🎨 L3 · 前端 3D(4-6 周)

Explorer 这一侧的全部知识。

3.1 WebGL / GPU 渲染基础

  • WebGL Fundamentals 通读
  • 顶点/片段 shader、深度缓冲、变换矩阵管线
  • 不需要写 raw WebGL,但必须知道 three.js 在底层做什么

3.2 three.js 0.160

  • 官方 examplesdocs 必看
  • 重点:
    • Scene / Camera (PerspectiveCamera vs OrthographicCamera) / Renderer
    • BufferGeometry、Mesh、Material(MeshStandardMaterial 物理材质)
    • 灯光:DirectionalLight / Ambient / HemisphereLight / IBL
    • 控制器:OrbitControls / TransformControls
    • 加载器:GLTFLoader / STLLoader
    • Raycaster(picking)
  • Hands-on: 写一个最小 three.js 程序加载本仓 STEP/.r6_arm.step/model.glb + OrbitControls

3.3 Explorer 自家代码(深入)

读源码顺序建议:

  1. package.json → 找入口
  2. index.htmlmain.jsxAppCadExplorer
  3. components/explorer/hooks/useExplorerRuntime.js — three.js 场景初始化
  4. lib/render/{glbMeshData,stlMeshData,threeMfMeshData}.js — 各格式加载
  5. lib/urdf/parseUrdf.js + kinematics.js — URDF 解析与 FK
  6. lib/dxf/parseDxf.js + buildPreviewMesh.js — DXF 拉伸预览
  7. lib/selectors/runtime.js@cad[...] 引用系统(本仓独门设计)

3.4 React 18 + Vite 7 + Tailwind 4 + radix-ui

  • React: 官方新文档 react.dev,重点看 hooks、ref、Suspense
  • Vite: 看官方 guide(配置 dev server / 静态资源 / dynamic import)
  • Tailwind 4 + tw-merge + class-variance-authority:看官方 utility-first 思想
  • radix-ui: 无样式 headless 组件,看几个常用的(Dialog、Dropdown)

✅ 通关标准:能给 Explorer 加一个新功能(比如一个剖面工具或测距工具)。


🔧 L4 · 工程化与协作(2-3 周)

4.1 Agent Skills 机制

  • Codex 的 .agents/skills/ 加载约定
  • Claude Code 的 .claude/skills/ 符号链接
  • SKILL.md 的格式(frontmatter + 文档体)
  • 看本仓 .agents/skills/{cad,urdf,robot-motion}/SKILL.md

4.2 Generator Contract

  • gen_step() / gen_dxf() / gen_urdf() envelope 规范
  • .agents/skills/cad/references/generator-contract.md
  • Hands-on: 写一个新的 generator,加上 STL/3MF/DXF 三个 sidecar

4.3 @cad[...] 引用系统

  • 这是本仓独有的"几何稳定句柄"机制,让 LLM 跨多次编辑还能锁定同一面/边/点
  • .agents/skills/cad/references/prompt-refs.md.agents/skills/cad/scripts/cadref/

4.4 Git LFS + Pre-commit

  • LFS:.gitattributes 配置、bandwidth 配额、LFS 与 PR review 的痛点
  • 大型 CAD 仓的目录策略

✅ 通关标准:能从 0 搭一个新的 sub-skill,符合本仓全部约定。


🚀 L5 · 选学进阶分支

分支 A — CAD/CAM 理论(深耕几何)

  • 《Geometric Modeling》 Mortenson
  • 《An Introduction to NURBS》 Rogers
  • CAM 编程、五轴刀路、有限元前处理

分支 B — 机器人物理仿真

  • ROS 2 Humble/Iron 教程
  • MoveIt 2 + OMPL planner
  • Isaac Sim(NVIDIA,GPU 加速)
  • MuJoCo 3 + Python(DeepMind)
  • PyBullet for RL

分支 C — 渲染管线进阶

  • Real-Time Rendering 4th Edition 系统补
  • WebGPU(下一代,three.js r166+ 已支持)
  • PBR、HDR、BVH 加速 ray casting

分支 D — Agent / LLM 工程

  • Claude Code SDK 实操
  • 自己写 skill 和 hook
  • 把这套接到内部 LLM(本地 vLLM + tool calling)

分支 E — 工业互操作

  • STEP AP242 BO Model XML(下一代 STEP)
  • JT、QIF、3D PDF
  • PMI(Product Manufacturing Information)

📅 推荐节奏(全职 vs 业余)

阶段 全职(每天 6h) 业余(每天 1h) 输出物
L0 数学+编程 2 周 2 个月 numpy 旋转工具箱
L1 CAD 内核 3 周 3 个月 自己写一个齿轮生成器
L2 机器人学 4 周 4 个月 给 r6_arm 写解析 IK
L3 前端 3D 3 周 3 个月 给 Explorer 加剖面工具
L4 工程化 2 周 1 个月 自己的 sub-skill
L5 任一分支 持续 持续 个人项目

总计:全职大概 3-4 个月入门到能改主仓代码,业余 12 个月。要"学透"(能独立设计类似系统)需要 1-2 年。


💡 反向工程式学习法(本仓最适合)

不要从教科书顺序学。用本仓的真实问题驱动:

  1. “为啥 r6_arm 在 Explorer 里能拖动关节?” → 从 URDF 解析追到 three.js 矩阵链
  2. “为啥 r6_arm 的 STEP 进来 17MB 还能秒开?” → 追到 GLB 转换、LOD 思路
  3. “为啥 @cad[f5] 能跨编辑保持稳定?” → 钻进 selector 系统
  4. “为啥 build123d 写两行就能出 STEP?” → 一路追到 OCP 的 STEPControl_Writer
  5. “为啥 OpenMind 那张 MDH 表填错了正向运动学就乱?” → 自己手推一遍 FK

每个"为啥"答完都比读 50 页教科书有用。本仓代码是一份用 production 质量写的、覆盖几乎所有相关知识的活教材,建议抄进 IDE 一行行单步调试。

原文链接:https://www.ssssmy.net/notes/ai-cad-ji-qi-ren