fzs356113-oss / dsh-cad-copilot

Listed

CAD 智能副驾 — 自然语言驱动的 CAD 自动化: 需求→装配定义 JSON(Schema 校验)→拓扑排序装配规划→SolidWorks/Fusion360 执行脚本, 含四旋翼无人机完整示例.

mainOther View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:fzs356113-oss/dsh-cad-copilot

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 243e084Synced Aug 18, 2026

dsh-cad-copilot — CAD 智能副驾

Natural-language driven CAD automation: requirement → validated assembly definition → topologically sorted assembly plan → SolidWorks / Fusion 360 execution scripts.

license topic stars

一个 DeepSeek Harness (DSH) 生态插件: 把"帮我设计一台无人机"变成"可执行的 CAD 脚本"。用户只描述意图, 系统输出装配定义 JSON、拓扑排序装配规划, 以及 SolidWorks(pywin32)与 Fusion 360(MCP)两种执行脚本。


✨ 亮点

  1. 一句话需求 → 可执行脚本: 自然语言 → 装配定义 JSON(JSON Schema 强校验)→ 拓扑排序装配规划 → SolidWorks / Fusion 360 脚本, 全链路自动;
  2. 声明式中间语言: 18 种特征(草图 7 + 建模 4 + 修饰 4 + 阵列 3)、8 种配合, 一份 JSON 同时描述零件几何与装配关系, 是"LLM 与 CAD 之间的契约";
  3. 一次定义, 多后端执行: 同一份装配定义同时翻译为 pywin32(COM)脚本与 Fusion 360 MCP 调用, 后端差异被封装在生成器里;
  4. 安全铁律内置: 所有脚本强制 dry-run → 人工确认 → 才允许触碰真实 CAD; 会话隔离、单位换算打印、失败即停;
  5. 可进知识库的一等公民: 装配定义 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.mdWindows 上默认 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:

工具参数取值
metaworkflows/cad-design/meta.json内容(JSON 对象)
scriptworkflows/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.mdSolidWorks 执行技能(触发: 出图/生成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.pySolidWorks pywin32 脚本骨架(关键函数已实现, 其余 TODO)
examples/generated/fusion360_drone.pyFusion 360 MCP 调用骨架
docs/01-design.md全链路设计文档
docs/02-schema-guide.mdSchema 参考手册
docs/03-execution-backends.md执行后端对比与安全规则
docs/verification.md真实运行验证报告(cad-design 已实跑)

文档

⚠️ 安全须知

任何脚本在真实 CAD 中执行前必须人工确认。 本仓库的所有脚本均为草稿/骨架:

  1. 执行前先以 dry-run 模式运行, 列出每一个操作;
  2. dry-run 清单经人工核对确认后, 才允许在真实 SolidWorks / Fusion 360 会话中执行;
  3. 执行会另存新文件, 不覆盖正在编辑的文档;
  4. 任一步骤失败立即停止并输出日志。

详见 docs/03-execution-backends.mdskills/cad-solidworks-runner/SKILL.md

License

MIT · Copyright (c) 2026 ZF


相关项目

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

DocumentationDetected
ExamplesDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 16, 2026, 9:45 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.