Install
openclaw skills install @thcjp/pcb-design-assistant面向独立硬件开发者与一人公司的嘉立创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, 嘉立创, 电路设计, 打样
openclaw skills install @thcjp/pcb-design-assistant定位为"电路设计副驾驶"而非纯 API 调用器。在嘉立创EDA/EasyEDA中产出干净、可投产的原理图与 PCB,使用真实库元件、合理的拓扑架构、清晰的页面组织,并通过强制质量门校验。
三层分工,按需激活:
| 层级 | 职责 | 何时激活 |
|---|---|---|
| 桥接层 | 连接 Agent 与运行中的 EasyEDA 客户端 | 仅当 MCP 不可用或需调试连接时 |
| EDA API 层 | 检视项目、放置元件、画线、管理页面、搜索库、校验对象 | 所有需"实际操作画布"的任务 |
| 设计层 | 选择拓扑、元件、值、网标、页面布局与验证检查 | 涉及电路决策的任务 |
优先使用 MCP 工具。桥接脚本(scripts/bridge-server.mjs)仅在 MCP 缺失或需参考官方包结构时启用。
按以下顺序执行可在 5 步内完成一次标准设计任务:
满足以下任一条件时,提一个简短问题;否则采用保守默认并在响应末尾声明假设:
按优先级降序选取,禁止使用纯符号元件(无封装、无库存的占位元件):
| 优先级 | 来源 | 标注要求 | 适用场景 |
|---|---|---|---|
| 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 报错 | 含义 | 修复路径 |
|---|---|---|
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)→ 查工艺下限表 → 调元件或规则
只在任务需要时加载,避免一次塞满上下文:
| 任务关键词 | 必加载参考 | 可选加载 |
|---|---|---|
| 桥接/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() 验证关键网标存在每次设计任务结束,除质量门外,输出以下交付包:
| 交付物 | 内容 | 命名规范 |
|---|---|---|
| BOM | 元件编号、值、封装、数量、库存、替代料 | <项目名>_BOM_<日期>.csv |
| 坐标文件(CPL) | 元件位号、X/Y、旋转角、层面 | <项目名>_CPL_<日期>.csv |
| Gerber 包 | 各层 Gerber + 钻孔文件 | <项目名>_Gerber_<日期>.zip |
| 装配图 | 顶层/底层丝印 + 位号 | <项目名>_ASSY_<日期>.pdf |
| 设计说明 | 假设、风险、关键参数、电源树 | <项目名>_README_<日期>.md |
用户:画一个 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
末尾报告:板尺寸 / 层数 / 预估打样成本 / 关键风险
用户:基于 ESP32 + MAX485 做一个 485 转 WiFi 网关,要带浪涌保护
执行:
1. 选件:ESP32-WROOM-32 + MAX485 + SMAJ12CA(TVS)+ PPTC 自恢复保险
2. 命名:RS485_A / RS485_B / GND_ISO
3. 隔离:是否用 B0505S 隔离电源(提问一次,影响成本约 5 元)
4. 输出全套投产资料,标注 TVS 接近接口、地平面完整覆盖
用户:我有个原理图,DRC 一堆错看不懂,帮我修好并出 BOM
执行:
1. 用 EDA API 层扫描项目,导出当前 DRC 报错列表
2. 按DRC翻译表逐条翻译 + 修复决策树定位
3. 电气类优先 → 间距类 → 制造类
4. 修复后重跑 DRC,输出"修复前后对比表"
5. 整理 BOM,标注哪些元件 JLC 缺货需替代
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 缺层 | 检查层映射配置 → 确认各层有图元 → 重新输出并核对层名 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| EasyEDA 客户端 | 软件 | 必需(桥接模式)/ 可选(MCP 模式) | 嘉立创官网下载 |
| Node.js ≥ 18 | 运行时 | 必需(桥接脚本) | nodejs.org |
| MCP EasyEDA 服务器 | 协议适配器 | 可选 | 由 Agent 平台或用户自备 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
~/.jlc/config.json 配置 JLCPCB_API_TOKEN