如何让AI自动布线:KiCAD MCP Server集成Freerouting自动布线器完全指南
【免费下载链接】KiCAD-MCP-ServerKiCAD MCP is a Model Context Protocol (MCP) implementation that enables Large Language Models (LLMs) like Claude to directly interact with KiCAD for printed circuit board design.项目地址: https://gitcode.com/gh_mirrors/ki/KiCAD-MCP-Server
KiCAD MCP Server是一个让 AI 助手(如 Claude)直接操控 KiCad 进行电路板设计的 Model Context Protocol(MCP)服务,内置 244 个设计工具。其中最受新手欢迎的,就是集成Freerouting 自动布线器的能力:只需用一句自然语言"自动布线当前板子",AI 就能导出 DSN、运行 Freerouting、导入布线结果并保存——整个过程无需离开聊天窗口。
本指南面向 PCB 新手,带你从零完成AI 自动布线环境搭建与使用。
为什么 KiCad 需要 AI 自动布线工具?
在 KiCad 中手动布线是繁琐的:几百根走线一根根拉,容易遗漏也容易出错。而 KiCAD MCP Server 的做法是"把布线器变成 AI 的工具":
- 🧠自然语言驱动:不用记命令,直接说"帮我自动布线"即可
- ⚙️完整流程自动化:DSN 导出 → Freerouting 布线 → SES 回导 → 保存,一次调用完成
- 🔄Best-of-N 多轮尝试:密集板卡自动跑多轮、按布线完整度打分,选出最优结果
- 🛡️失败可感知:导入失败会明确报错,不会静默"假装成功"
这套集成背后的完整文档在 docs/FREEROUTING_GUIDE.md。
环境搭建:安装 KiCAD MCP Server 只需3步
自动布线依赖 MCP Server 本体,安装非常简单(Linux 示例):
git clone --branch stable https://gitcode.com/gh_mirrors/ki/KiCAD-MCP-Server cd KiCAD-MCP-Server npm install && pip3 install -r requirements.txt && npm run buildWindows 用户更省事:克隆仓库后运行.\setup-windows.ps1,脚本会自动检测 KiCad、安装依赖并生成配置。完整安装说明见 README.md 的 Installation 章节。
安装 Freerouting 自动布线依赖(2个选项任选其一)
自动布线需要两个要素:Freerouting JAR 包+运行环境(Java 或 Docker/Podman)。
1️⃣ 下载 Freerouting JAR 包
把freerouting.jar放到默认目录~/.kicad-mcp/freerouting.jar即可,之后所有工具调用都会自动找到它。
2️⃣ 运行环境二选一
| 选项 | 要求 | 适合谁 |
|---|---|---|
| Java 直连(最快) | Freerouting 2.x 需 Java 21+;2.4.x 需 Java 25 | 本机已装 Java 的用户 |
| Docker / Podman | 拉取eclipse-temurin:21-jre或25-jre镜像 | 不想装 Java 的用户 |
服务会按"本机 Java → Docker → Podman"的顺序自动探测运行环境。版本要求由 JAR 包自身声明,你可以随时让 AI 执行check_freerouting检查,它会报告java.required_version告诉你需要装哪个版本的 Java。
💡小技巧:在 MCP 客户端配置里设置环境变量FREEROUTING_JAR,就不用每次调用都传 JAR 路径了(参考 config/claude-desktop-config.json)。
一键自动布线:4个核心 MCP 工具一览
KiCAD MCP Server 为 Freerouting 注册了 4 个工具(定义在 src/tools/freerouting.ts):
| 工具 | 作用 | 什么时候用 |
|---|---|---|
check_freerouting | 检查 Java/JAR/Docker 是否就绪 | 每次布线前 |
autoroute | 一键完成导出DSN→布线→导入SES→保存 | 日常自动布线首选 |
export_dsn | 仅导出 Specctra DSN 文件 | 想在 Freerouting GUI 中手动布线 |
import_ses | 仅导入外部路由好的 SES 文件 | 用其他自动布线器协作 |
autoroute 自动布线工具:用一句话触发
参数设计非常"AI 友好"——大部分都有默认值,你可以直接在对话框里说:
"用 Freerouting 自动布线当前板子,超时设为5分钟。"
常用可选参数:
maxPasses:最大布线轮数(默认 20)timeout:超时秒数(默认 300)keepArtifacts:保留中间.dsn/.ses文件以便排查
Best-of-N 多轮自动布线:密集板卡布线率拉满
密集板卡单次自动布线经常残留几根未布通的线。KiCAD MCP Server 借鉴了业界成熟的Best-of-N 策略:设置attempts大于 1(推荐 3–5 次),系统会用不同的--max-passes值跑多轮,按"布通网络数 ×1000 + 线段数"打分(全部布通targetNets中的关键网络再加 5 万分),最终只导入得分最高的那轮结果。
也就是说,你只需要说"跑 5 轮自动布线,选出最优结果",AI 就替你完成了参数遍历 + 评分择优——这正是新手最需要的能力。
新手推荐:AI 自动布线 5 步标准工作流
官方文档(docs/PCB_DESIGN_WORKFLOW.md)推荐如下流程,你可以整段复制给 AI:
- 打开项目
- 检查 Freerouting 依赖是否就绪(
check_freerouting) - 运行
autoroute,复杂板设 10 轮以上、或启用 Best-of-N - 运行 DRC 规则检查验证布线结果
- 导出 Gerber 准备打板
⚠️新手提示:自动布线器不是万能的。高频信号、电源走线等关键线路建议先手动布好,再让 AI 自动布线剩余部分,效果最好。
常见问题:自动布线报错怎么办?
以下是 docs/FREEROUTING_GUIDE.md Troubleshooting 章节的核心结论:
- "Neither Java 21+ nor Docker found":按提示安装对应版本 Java,或安装 Docker
- "Java found but version < 21/25":升级 Java,或把
JAVA_HOME指向新版本,或改用 Docker 兜底 - 超时:对复杂板卡,让 AI"用 timeout 600、max passes 30 重新自动布线"
- 布不通的线太多:调大
maxPasses、检查设计规则是否给布线器留足间距、布线后跑 DRC 定位违规 - Docker 权限错误:将用户加入 docker 组后重新登录
- 导入失败:工具会返回
success: false且不做保存;此时建议从磁盘重新打开板文件再操作
延伸阅读与源码位置
想了解实现细节或贡献代码,可以从这些文件入手:
- 工具定义(TypeScript):src/tools/freerouting.ts
- 核心实现(Python):python/commands/freerouting.py
- 自动布线测试:tests/test_freerouting.py、tests/test_autoroute_best_of_n.py、tests/test_autoroute_score.py
- 完整 PCB 设计工作流:docs/PCB_DESIGN_WORKFLOW.md
- 自动布线专项指南:docs/FREEROUTING_GUIDE.md
至此,你已经掌握了用KiCAD MCP Server + Freerouting实现 AI 自动布线的全部要点:装好服务、备好 JAR 与运行环境,然后对 AI 说一句"自动布线",剩下的交给它。🎉
【免费下载链接】KiCAD-MCP-ServerKiCAD MCP is a Model Context Protocol (MCP) implementation that enables Large Language Models (LLMs) like Claude to directly interact with KiCAD for printed circuit board design.项目地址: https://gitcode.com/gh_mirrors/ki/KiCAD-MCP-Server
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考