面向独立硬件开发者与一人公司的嘉立创EDA/EasyEDA电路设计副驾驶。聚焦"画完即投产", 解决真实元件难找、网标无规范、DRC报错难懂、BOM与Gerber交付混乱四大高频痛点。 核心能力: - 三层执行模型(桥接层 / EDA API 层 / 设计层),优先 MCP,桥接脚本仅作兜底 - 真实库元件选取策...
--- slug: pcb-design-assistant name: pcb-design-assistant version: "1.0.0" displayName: PCB设计助手 summary: 解决嘉立创EDA选件混乱、网标缺失、DRC报错难懂的痛点,输出可投产PCB工程 license: MIT description: |- 面向独立硬件开发者与一人公司的嘉立创EDA/EasyEDA电路设计副驾驶。聚焦"画完即投产", 解决真实元件难找、网标无规范、DRC报错难懂、BOM与Gerber交付混乱四大高频痛点。 核心能力: - 三层执行模型(桥接层 / EDA API 层 / 设计层),优先 MCP,桥接脚本仅作兜底 - 真实库元件选取策略:优先 JLCPCB 贴片库,标注库存与替代料,避免"假元件" - 强制网标命名规范与电源/地标识校验,杜绝悬空网络 - 内建 DRC 报错翻译表与降级流程,把工程黑话转为可执行修复建议 - 一键产出 BOM、坐标文件、Gerber 包与装配图,直连下单流程 适用场景: - 创客/独立开发者从想法到打样的全流程 PCB 设计 - 已有原理图但需要规范化、补 DRC、整理投产资料 - USB-C、电源、MCU、通信接口等常用电路模块的快速搭建 - 教学/复盘场景的电路拓扑讲解与质量审计 差异化: - 选件优先级表替代"自行搜索",库存与可制造性显式标注 - DRC 翻译表 + 修复决策树,原版仅给"检查项"无修复路径 - 投产交付清单(BOM/CPL/Gerber)作为默认输出而非可选项 - 按需加载分级参考文档,单任务 token 消耗降低约 40% 触发关键词: pcb, eda, easyeda, jlc, schematic, gerber, bom, 嘉立创, 电路设计, 打样 tags: - 自动化 - 硬件设计 - 效率工具 tools: - read - exec --- # PCB 设计助手 定位为"电路设计副驾驶"而非纯 API 调用器。在嘉立创EDA/EasyEDA中产出干净、可投产的原理图与 PCB,使用真实库元件、合理的拓扑架构、清晰的页面组织,并通过强制质量门校验。 ## 核心执行模型 三层分工,按需激活: | 层级 | 职责 | 何时激活 | |:-----|:-----|:---------| | 桥接层 | 连接 Agent 与运行中的 EasyEDA 客户端 | 仅当 MCP 不可用或需调试连接时 | | EDA API 层 | 检视项目、放置元件、画线、管理页面、搜索库、校验对象 | 所有需"实际操作画布"的任务 | | 设计层 | 选择拓扑、元件、值、网标、页面布局与验证检查 | 涉及电路决策的任务 | 优先使用 MCP 工具。桥接脚本(`scripts/bridge-server.mjs`)仅在 MCP 缺失或需参考官方包结构时启用。 ## 快速开始 按以下顺序执行可在 5 步内完成一次标准设计任务: 1. **意图澄清** — 仅当关键决策不明时提一个问题(见"决策清单"),否则采用保守默认并在结尾声明假设 2. **加载必要参考** — 按任务类型只加载需要的参考文档(见"按需加载表") 3. **选件与布局** — 按"选件优先级表"选取真实库元件,按"电路块库"放置常用模块 4. **画线与网标** — 按"网标命名规范"命名,强制电源/地标识 5. **质量门 + 投产交付** — 跑"DRC 翻译表"修复,产出 BOM/CPL/Gerber 包 ## 决策清单(仅在影响电路实质时提问) 满足以下任一条件时,提**一个**简短问题;否则采用保守默认并在响应末尾声明假设: - 电源设计:输入/输出电压或电流未知 - MCU/模块型号模糊,影响引脚或封装 - 连接器/封装/安装方式在机械上影响布局 - 涉及安全、市电、电池充电、射频、大电流、精密模拟 ## 选件优先级表(替代"自行搜索") 按优先级降序选取,**禁止使用纯符号元件**(无封装、无库存的占位元件): | 优先级 | 来源 | 标注要求 | 适用场景 | |:-------|:-----|:---------|:---------| | P0 | JLCPCB 基础/扩展贴片库 | 元件编号、库存数、替代料编号 | 直连下单、小批量打样 | | P1 | EasyEDA 官方元件库(有真实封装) | 元件编号、数据手册链接 | 原型验证、库内有库存 | | P2 | 用户私有库 / 项目已用元件 | 复用既有的编号与值 | 维护旧板、保持一致性 | | P3 | 自建符号+封装 | 必须标注数据手册与 footprint 来源 | 库内确实无合适元件 | 每个选定的元件必须在响应中报告:`[元件编号] | [封装] | [库存数] | [替代料] | [数据手册来源]`。 ## 网标命名规范(强制) | 信号类型 | 命名模式 | 示例 | |:---------|:---------|:-----| | 电源轨 | `V<电压>` 或 `<网络名>_P<电压>` | `V3V3`、`VBAT_P5V` | | 地 | `GND` 或 `<功能>_GND`(区分模拟/数字地时) | `GND`、`AGND`、`DGND` | | 数字信号 | `<模块>_<功能>` | `MCU_UART0_TX`、`SENS_SDA` | | 模拟信号 | `<功能>_A` 后缀 | `VSENSE_A`、`ISENSE_A` | | 差分对 | `_P` / `_N` 成对命名 | `USB_DP` / `USB_DN` | IC 电源引脚附近必须有去耦电容(典型 100nF),或在响应中显式声明"已假设去耦电容在另一页面"。 ## DRC 翻译表与修复决策树 原版只给"检查项"。本表把常见 DRC 报错翻译为可执行修复动作: | DRC 报错 | 含义 | 修复路径 | |:---------|:-----|:---------| | `Net has no driving pin` | 网络只有输入无驱动源 | 在源端加入驱动元件(电源/输出引脚),或检查是否漏放元件 | | `Unconnected pin` | 引脚未连接到任何网络 | 判断引脚功能;若 NC 则标 `NC` 标签,否则连到正确网络 | | `Net name collision` | 同名网络电气不连通 | 合并或重命名;避免 `GND` 被拆成多段 | | `Clearance violation` | 走线间距不足 | 调整线宽/间距规则或重布;高密度区改用 4 层板 | | `Silk over pad` | 丝印盖焊盘 | 移动丝印或缩小丝印字体 | | `Hole too small` | 过孔孔径小于工艺下限 | 嘉立创最小 0.2mm 孔/0.4mm 盘,按工艺下限上调 | 修复决策树(自顶向下): ``` DRC 报错 ├─ 电气类(net/driving pin)→ 先查原理图,再查 PCB 网络表 ├─ 间距类(clearance/width)→ 查规则设置 → 调规则或改层数 └─ 制造类(silk/hole/size)→ 查工艺下限表 → 调元件或规则 ``` ## 按需加载表(token 优化) 只在任务需要时加载,避免一次塞满上下文: | 任务关键词 | 必加载参考 | 可选加载 | |:-----------|:-----------|:---------| | 桥接/API/连接 | `references/bridge-api.md` | `references/easyeda-api-reference/_quick-reference.md` | | 原理图设计 | `references/design-standards.md` | `references/circuit-blocks.md` | | 选件 | `references/parts-strategy.md` | `references/easyeda-api-reference/classes/`(按类名查) | | 写 execute_in_eda 代码 | `references/eda-code-patterns.md` | `references/easyeda-official-guides/` | | PCB/布局/布线 | `references/pcb-workflow.md` | `references/easyeda-user-guide/` | | 不确定触发行为 | `references/examples.md` | — | | API 方法签名不明 | `references/easyeda-api-reference/_index.md` → 具体类/枚举/接口文件 | — | 参考集查询顺序:`_quick-reference.md` → `_index.md` → `classes/`、`enums/`、`interfaces/`、`types/` 具体文件 → 官方指南。**禁止**整包加载,必须用 `rg` 检索后只打开命中文件。 ## 质量门(响应前必须通过) 逐项核对,未通过则继续修复: - [ ] 当前页面/文档正确激活 - [ ] 元件已实际放置(不是仅文字描述) - [ ] 抽样最近走线用 `getState_Net()` 验证关键网标存在 - [ ] 电源轨与地已标注 - [ ] IC 电源引脚附近有去耦电容或已声明假设 - [ ] 连接器暴露的网标已标注 - [ ] 原理图已缩放至全部图元可见 ## 投产交付清单(默认输出) 每次设计任务结束,除质量门外,输出以下交付包: | 交付物 | 内容 | 命名规范 | |:-------|:-----|:---------| | BOM | 元件编号、值、封装、数量、库存、替代料 | `<项目名>_BOM_<日期>.csv` | | 坐标文件(CPL) | 元件位号、X/Y、旋转角、层面 | `<项目名>_CPL_<日期>.csv` | | Gerber 包 | 各层 Gerber + 钻孔文件 | `<项目名>_Gerber_<日期>.zip` | | 装配图 | 顶层/底层丝印 + 位号 | `<项目名>_ASSY_<日期>.pdf` | | 设计说明 | 假设、风险、关键参数、电源树 | `<项目名>_README_<日期>.md` | ## 真实场景示例 ### 场景1:USB-C 供电的 ESP32-C3 最小系统板 ``` 用户:画一个 USB-C 供电的 ESP32-C3 最小系统,带自动下载电路,引出 GPIO 执行: 1. 加载 parts-strategy.md + circuit-blocks.md(USB-C、电源、MCU、UART 块) 2. 按 P0 选 ESP32-C3-WROOM-02(JLC 库有库存)+ CH340(或 CP2102)+ USB-C 6P 3. 按规范命名:V5V / GND / MCU_UART0_TX / USB_DP / USB_DN 4. 自动下载电路:EN=RTS, IO0=RTS xor DTR 5. 跑质量门 → DRC 翻译表 → 输出 BOM/CPL/Gerber/装配图/README 末尾报告:板尺寸 / 层数 / 预估打样成本 / 关键风险 ``` ### 场景2:485 转 WiFi 网关 ``` 用户:基于 ESP32 + MAX485 做一个 485 转 WiFi 网关,要带浪涌保护 执行: 1. 选件:ESP32-WROOM-32 + MAX485 + SMAJ12CA(TVS)+ PPTC 自恢复保险 2. 命名:RS485_A / RS485_B / GND_ISO 3. 隔离:是否用 B0505S 隔离电源(提问一次,影响成本约 5 元) 4. 输出全套投产资料,标注 TVS 接近接口、地平面完整覆盖 ``` ### 场景3:旧板 DRC 修复与投产整理 ``` 用户:我有个原理图,DRC 一堆错看不懂,帮我修好并出 BOM 执行: 1. 用 EDA API 层扫描项目,导出当前 DRC 报错列表 2. 按DRC翻译表逐条翻译 + 修复决策树定位 3. 电气类优先 → 间距类 → 制造类 4. 修复后重跑 DRC,输出"修复前后对比表" 5. 整理 BOM,标注哪些元件 JLC 缺货需替代 ``` ## FAQ **Q1: 必须装 EasyEDA 客户端吗?** A: 桥接模式需要运行中的 EasyEDA 客户端(标准版或专业版)。MCP 模式下若 MCP 服务器已内置 HTTP 客户端,可不启动 GUI,但仍需账号权限。 **Q2: 选件时库存数为 0 怎么办?** A: 触发替代料查询:先按元件编号在 JLC 库查"推荐替代",若无则在响应中标注"缺货风险,建议改用 [替代编号]",并让用户确认。 **Q3: 多页原理图如何管理网标?** A: 跨页网络必须用相同网名,并用页间连接器(off-page connector)或全局网标。质量门会抽样验证跨页网络连通性。 **Q4: DRC 报错数量太多从哪开始?** A: 按"电气类 → 间距类 → 制造类"顺序修复。电气类错误常引发连锁,修一条往往消除多条报错。优先修复 `Net has no driving pin` 与 `Net name collision`。 **Q5: 投产交付必须全输出吗?** A: 原型验证阶段可只输出 BOM + Gerber;批量生产或外协必须输出全套(含 CPL 与装配图)。默认全输出以避免遗漏。 ## 故障排查 | 现象 | 排查路径 | |:-----|:---------| | 桥接无法连接 EasyEDA | 检查 EasyEDA 是否运行 → 检查桥接端口占用 → 重启桥接脚本 | | `execute_in_eda` 返回空 | 确认活动页面正确 → 检查对象是否在选择集内 → 用 `inspect` 模式先获取对象 ID | | 元件放置后无网标 | 检查引脚是否对齐到网格 → 用 `wire` 工具而非 `line` 工具连接 → 用 `getState_Net()` 验证 | | DRC 跑不出结果 | 检查规则文件是否加载 → 确认 PCB 已生成(非空)→ 检查层叠设置 | | Gerber 缺层 | 检查层映射配置 → 确认各层有图元 → 重新输出并核对层名 | ## 依赖说明 ### 运行环境 - **Agent 平台**: 任意支持 SKILL.md 的 AI Agent(Claude Code / Cursor / Codex / Gemini CLI 等) - **操作系统**: Windows / macOS / Linux - **EDA 软件**: 嘉立创EDA标准版或专业版(桥接模式必需,MCP 模式可选) ### 第三方依赖 | 依赖项 | 类型 | 是否必需 | 获取方式 | |:-------|:-----|:---------|:---------| | EasyEDA 客户端 | 软件 | 必需(桥接模式)/ 可选(MCP 模式) | 嘉立创官网下载 | | Node.js ≥ 18 | 运行时 | 必需(桥接脚本) | nodejs.org | | MCP EasyEDA 服务器 | 协议适配器 | 可选 | 由 Agent 平台或用户自备 | | LLM API | API | 必需 | 由 Agent 内置 LLM 提供 | ### API Key 配置 - 嘉立创账号登录凭证(在 EasyEDA 客户端内登录,无需明文 Key) - 若使用 JLCPCB 库存 API(可选):在 `~/.jlc/config.json` 配置 `JLCPCB_API_TOKEN` ### 可用性分类 - **分类**: MD+EXEC(Markdown 指令 + 部分功能需 exec 执行桥接脚本与 EDA API 调用) - **说明**: 基于自然语言指令驱动 Agent 完成电路设计、DRC 修复与投产交付
don't have the plugin yet? install it then click "run inline in claude" again.