dsh-cad-copilot — CAD 智能副驾
Natural-language driven CAD automation: requirement → validated assembly definition → topologically sorted assembly plan → SolidWorks / Fusion 360 execution scripts.
一个 DeepSeek Harness (DSH) 生态插件: 把"帮我设计一台无人机"变成"可执行的 CAD 脚本"。用户只描述意图, 系统输出装配定义 JSON、拓扑排序装配规划, 以及 SolidWorks(pywin32)与 Fusion 360(MCP)两种执行脚本。
✨ 亮点
- 一句话需求 → 可执行脚本: 自然语言 → 装配定义 JSON(JSON Schema 强校验)→ 拓扑排序装配规划 → SolidWorks / Fusion 360 脚本, 全链路自动;
- 声明式中间语言: 18 种特征(草图 7 + 建模 4 + 修饰 4 + 阵列 3)、8 种配合, 一份 JSON 同时描述零件几何与装配关系, 是"LLM 与 CAD 之间的契约";
- 一次定义, 多后端执行: 同一份装配定义同时翻译为 pywin32(COM)脚本与 Fusion 360 MCP 调用, 后端差异被封装在生成器里;
- 安全铁律内置: 所有脚本强制 dry-run → 人工确认 → 才允许触碰真实 CAD; 会话隔离、单位换算打印、失败即停;
- 可进知识库的一等公民: 装配定义 JSON 可版本控制、可检索, 与"LLM 编译式知识库 / 知识库的代谢律"一脉相承——设计数据像笔记一样被积累、被复用。
灵感来源
本仓库的工程思路来自以下概念的碰撞:
- LLM 编译式知识库 —— 让 LLM 把需求"编译"成结构化资产(本仓库的资产就是装配定义 JSON);
- 自我改进 Agent —— 校验-修正闭环(validate → fix → 复验, 最多 2 轮), 让输出质量可收敛;
- 智能 RAG 选择性检索 —— 子代理按需读取 schema / 手册 / 示例, 而不是把全部知识塞进提示词;
- 知识库的代谢律 —— 输入(需求)= 处理(定义/校验/规划)= 输出(脚本), 任何一环停滞即报警;
- CAD 自动化装配 —— 声明式配合 + 拓扑排序规划引擎(8 种配合、子装配体分层);
- MCP 协议与 CAD 集成 —— 把 CAD 变成 LLM 的工具, "对话式 CAD"范式。
架构
flowchart LR
U[用户自然语言需求] --> P[parse 需求解析]
P --> D[define 装配定义生成]
D --> V[validate 校验]
V -- invalid --> F[fix 修正<br/>最多 2 轮]
F --> V
V -- valid --> PL[plan 拓扑排序规划]
PL --> G[generate 脚本生成]
G --> R[report 汇总报告]
R --> SW[SolidWorks pywin32 脚本]
R --> FU[Fusion 360 MCP 调用]
SCHEMA[(assembly-definition<br/>.schema.json)] -. 约束 .-> D
SCHEMA -. 约束 .-> V
SW -. dry-run + 人工确认 .-> REAL[(真实 CAD)]
FU -. dry-run + 人工确认 .-> REAL
目录结构
dsh-cad-copilot/
├── README.md # 本文件
├── LICENSE # MIT (Copyright (c) 2026 ZF)
├── .gitignore
├── schemas/
│ └── assembly-definition.schema.json # 装配定义 JSON Schema(全链路契约)
├── docs/
│ ├── 01-design.md # 全链路设计: NL → 定义 → 规划 → 执行
│ ├── 02-schema-guide.md # 特征/配合参考手册 + 单位约定
│ └── 03-execution-backends.md # SolidWorks vs Fusion 360 对比 + 安全规则
├── workflows/
│ └── cad-design/
│ ├── meta.json # 工作流元数据(phases: parse/define/validate/plan/generate/report)
│ └── workflow.js # 工作流脚本(子代理编排, 不读写文件)
├── skills/
│ ├── cad-assembly-planner/ # 技能: NL → JSON → 校验 → 规划
│ └── cad-solidworks-runner/ # 技能: 出图/生成脚本/安全执行
└── examples/
├── drone-quadcopter/ # 四旋翼无人机: 28 实例 / 10 类零件 / 8 种配合全覆盖
├── simple-assembly/ # 入门示例: 底板+立柱+顶板
└── generated/ # 生成脚本骨架(pywin32 + MCP) + 免责声明
快速开始
前提
# 启动 DSH(Web GUI)
npx @deepseek-ai/dsh web
安装技能
把本仓库 skills/<name>/SKILL.md(官方支持的 bundle 格式, 保持一层结构, 技能发现不支持递归 **/SKILL.md)复制到以下任一技能目录(推荐项目级 .dsh/skills):
| 安装位置 | 路径 | 说明 |
|---|---|---|
| 项目级(推荐) | <projectRoot>/.dsh/skills/<name>/SKILL.md |
随项目版本控制, 团队共享 |
| 项目级(备选) | <projectRoot>/.agents/skills/<name>/SKILL.md |
兼容 agents 生态目录 |
| DSH 用户级 | <dshHome>/skills/<name>/SKILL.md |
Windows 上默认 dshHome 即 DSH 的 data 目录, 全局生效 |
# 示例: 安装到项目级 .dsh/skills(推荐)
mkdir -p .dsh/skills
cp -r skills/cad-assembly-planner .dsh/skills/
cp -r skills/cad-solidworks-runner .dsh/skills/
# 或安装到 DSH 用户技能目录(Windows, dshHome = DSH data 目录)
# cp -r skills/cad-assembly-planner <dshHome>/skills/
# cp -r skills/cad-solidworks-runner <dshHome>/skills/
之后, 智能体在用户提到 设计 / 装配 / 建模 / 画图 / 无人机 / 出图 / 生成SolidWorks脚本 等触发词时自动加载对应技能。
运行工作流
用 DSH 的 workflow 工具加载 workflows/cad-design:
| 工具参数 | 取值 |
|---|---|
meta |
workflows/cad-design/meta.json 的内容(JSON 对象) |
script |
workflows/cad-design/workflow.js 的内容(JS 脚本体) |
args |
{"requirement": "设计一台 350mm 轴距四旋翼无人机, 碳板机架, 2212 电机, 10 寸桨"} |
工作流会依次派出子代理: 需求解析 → 装配定义生成 → 校验(非法时修正, 最多 2 轮)→ 拓扑排序规划 → 脚本生成(仅文本)→ 汇总报告, 最终返回:
{
"assemblyDefinition": { "...": "装配定义 JSON" },
"validation": { "valid": true, "errors": [], "warnings": [] },
"plan": { "steps": [ { "seq": 1, "action": "model_part", "parts": ["bottom_plate"], "mates": [], "note": "..." } ] },
"scripts": { "solidworks": "...", "fusion360": "..." },
"report": { "summary": "...", "warnings": [], "nextSteps": [] }
}
特征 / 配合支持表
18 种特征: 草图 7 种(circle / rectangle / corner_rectangle / polygon / slot / line / spline)· 建模 4 种(extrude_boss / extrude_cut / extrude_midplane / revolve_boss)· 修饰 4 种(fillet / chamfer / shell / rib)· 阵列 3 种(linear_pattern / circular_pattern / mirror)
8 种配合: coincident 重合 · concentric 同心 · distance 距离 · parallel 平行 · perpendicular 垂直 · tangent 相切 · angle 角度 · lock 锁定
详细语义与参数约定见 docs/02-schema-guide.md。
文件清单
| 文件 | 用途 |
|---|---|
| schemas/assembly-definition.schema.json | 装配定义 JSON Schema(18 特征 / 8 配合 / 子装配体 / 工程图) |
| workflows/cad-design.meta.json | 工作流元数据(6 个阶段) |
| workflows/cad-design.workflow.js | 工作流脚本: 6 个子代理角色 + schema 校验 + 2 轮修正闭环 |
| skills/cad-assembly-planner/SKILL.md | 装配规划技能(触发: 设计/装配/建模/无人机/零件/画图) |
| skills/cad-solidworks-runner/SKILL.md | SolidWorks 执行技能(触发: 出图/生成SolidWorks脚本; 安全规则) |
| examples/drone-quadcopter/assembly-definition.json | 四旋翼无人机完整装配定义(28 实例 / 41 配合) |
| examples/drone-quadcopter/assembly-plan.md | 拓扑排序装配规划(机架→动力→电子→紧固→总装) |
| examples/simple-assembly/assembly-definition.json | 入门示例(3 零件 / 2 配合类型) |
| examples/generated/drone_build_solidworks.py | SolidWorks pywin32 脚本骨架(关键函数已实现, 其余 TODO) |
| examples/generated/fusion360_drone.py | Fusion 360 MCP 调用骨架 |
| docs/01-design.md | 全链路设计文档 |
| docs/02-schema-guide.md | Schema 参考手册 |
| docs/03-execution-backends.md | 执行后端对比与安全规则 |
| docs/verification.md | 真实运行验证报告(cad-design 已实跑) |
文档
⚠️ 安全须知
任何脚本在真实 CAD 中执行前必须人工确认。 本仓库的所有脚本均为草稿/骨架:
- 执行前先以 dry-run 模式运行, 列出每一个操作;
- dry-run 清单经人工核对确认后, 才允许在真实 SolidWorks / Fusion 360 会话中执行;
- 执行会另存新文件, 不覆盖正在编辑的文档;
- 任一步骤失败立即停止并输出日志。
详见 docs/03-execution-backends.md 与 skills/cad-solidworks-runner/SKILL.md。
License
MIT · Copyright (c) 2026 ZF
相关项目
- dsh-knowledge-forge — LLM 编译式知识库锻造
- dsh-cad-copilot — 本仓库: CAD 智能副驾
- dsh-self-evolving-agent — 自我改进 Agent
- dsh-workflow-symphony — 工作流交响乐团
No comments yet. Be the first to write one.