• 首页
  • 使用指南
    上传指南安装指南
  • API文档
    开发指南API调用API参考
  • 相关网站
    嘉立创EDA嘉立创社区开源广场
  • 编辑器
    在线编辑器(专业版)桌面客户端
  • 扩展管理
  • 登录注册
嘉立创产业服务站群

电子产业

logo

嘉立创PCB

PCB、FPC制造服务

logo

嘉立创SMT

一站式PCBA服务平台

logo

嘉立创激光钢网治具

激光钢网&治具制造

logo

嘉立创EDA

国产PCB设计工具

机械产业

logo

嘉立创FA

机械/电气零部件一站式商城

logo

嘉立创3D打印

树脂、尼龙、金属3D打印服务

logo

嘉立创CNC机械智造

机加件一件起订,3天交货

更多服务

嘉立创CAM

国产线路板CAM软件

Forface 3D

SaaS化3D技术服务平台

硬创社

好玩的硬件交流社区

供应商合作

一站式阳光采购平台

· EDA扩展广场
首页

使用指南

上传指南安装指南

API文档

开发指南API调用API参考

相关网站

嘉立创EDA嘉立创社区开源广场

编辑器

在线编辑器(专业版)桌面客户端
登录注册

KiRouting

OSHWHub2v1.0.1
(0)Apache-2.0
通过本地桥接服务器调用 KiCadRoutingTools 实现 PCB 自动布线,支持单端布线、差分对、BGA扇出等高级功能
详情
更改日志
历史版本
评论

KiRouting

OSHWHub2
(0)Apache-2.0
详情
更改日志
历史版本
评论

KiRouting Integration

English | 中文

将 KiCadRouting Tools(Rust 加速 A* 自动布线引擎)桥接到 嘉立创EDA专业版(EasyEDA Pro) 的完整解决方案。

项目地址

项目地址说明
本项目(扩展 + 桥接服务器)https://github.com/easyeda/eext-kirouting-integrationEasyEDA Pro 扩展及 Python 桥接服务器
KiCadRouting Tools(布线引擎)https://github.com/drandyhaas/KiCadRoutingTools/tree/main#command-line-interfaceRust 加速 A* 路由器(原项目)

系统架构

┌─────────────────────┐     HTTP (localhost:8765)     ┌──────────────────────┐
│  EasyEDA Pro 编辑器  │ ◄──────────────────────────► │   Bridge Server      │
│  (嘉立创EDA专业版)    │                              │   (Python/FastAPI)   │
│                     │                              │                      │
│  ┌───────────────┐  │                              │  ┌────────────────┐  │
│  │ TypeScript 扩展│  │  ← 收集PCB数据 / 写回结果 →   │  │ 格式转换        │  │
│  │ (kirouting-   │  │                              │  │ EasyEDA ↔ KiCad│  │
│  │  integration) │  │                              │  └───────┬────────┘  │
│  └───────────────┘  │                              │          │           │
└─────────────────────┘                              │          ▼           │
                                                     │  ┌────────────────┐  │
                                                     │  │ KiCadRouting   │  │
                                                     │  │ Tools 布线引擎  │  │
                                                     │  │ (Python + Rust)│  │
                                                     │  └────────────────┘  │
                                                     └──────────────────────┘

快速开始(用户安装)

只需两步即可使用:

第一步:安装扩展

在 EasyEDA Pro(嘉立创EDA专业版)的 扩展广场 中搜索 KiRouting Integration 并安装。

也可以手动安装:从 GitHub Releases 下载 .eext 文件,在 扩展 → 扩展管理器 → 从本地安装 中导入。

第二步:获取启动脚本

从本项目仓库获取桥接服务器:

git clone https://github.com/easyeda/eext-kirouting-integration.git

或直接在 项目页面 点击 Code → Download ZIP 下载并解压。

启动脚本位于项目目录中的 bridge_server/start_server.bat。

第三步:启动桥接服务器

双击运行 bridge_server/start_server.bat,脚本会自动完成以下操作:

  1. 检测 Python 环境,未安装则自动通过 winget 安装
  2. 检测并安装 Python 依赖(fastapi、uvicorn、pydantic、numpy)
  3. 检测 KiCadRoutingTools,不存在则自动从 GitHub 克隆
  4. 检测 Rust 路由器编译产物,未编译则自动构建(无 Rust 环境时降级为纯 Python 模式)
  5. 启动桥接服务器(监听 http://localhost:8765)

首次运行需要联网下载依赖,后续启动会跳过已完成的步骤。

第四步:开始使用

  1. 打开一个 PCB 文件
  2. 顶部菜单栏点击 KiRouting自动布线 → 打开布线工具...
  3. 在弹出的对话框中选择网络、配置参数、点击 开始布线
  4. 等待布线完成,结果自动写回 PCB

如果服务器未启动,扩展会弹出引导对话框,提供下载链接和操作说明。

布线功能

  • 单端布线 — A* 寻路,支持 MPS 网络排序、拆线重布、总线检测
  • 差分对布线 — 中心线 + 偏移,自动极性交换,GND 过孔放置
  • 电源平面 — 自动过孔连接 SMD 焊盘到内层铜皮,Voronoi 分区
  • BGA 扇出 — 自动逃逸路径生成
  • QFN 扇出 — QFN/QFP 焊盘延伸
  • 长度匹配 — DDR4 字节通道自动分组,蛇形走线
  • 阻抗控制 — 根据叠层自动计算每层线宽
  • 目标交换优化 — 匈牙利算法最小化交叉

布线工作流程(数据流)

1. 扩展从 EasyEDA Pro 读取 PCB 数据(元件、焊盘、网络、已有走线、板框)
       ↓
2. 大型元件列表分块发送 → POST /api/extra-components
       ↓
3. 完整 PCB 数据 + 布线参数 → POST /api/route
       ↓
4. 服务器格式转换:EasyEDA JSON → .kicad_pcb(坐标系、单位、层映射)
       ↓
5. 调用 KiCadRoutingTools 执行 A* 布线
       ↓
6. 对比输入/输出 .kicad_pcb,提取新增走线和过孔
       ↓
7. 转换回 EasyEDA 坐标系
       ↓
8. 扩展轮询 GET /api/status/{job_id} 等待完成
       ↓
9. 扩展获取结果 GET /api/result/{job_id}
       ↓
10. 将新走线/过孔写入 EasyEDA Pro PCB 编辑器

API 接口

方法路径说明
GET/api/test健康检查,确认服务器运行
POST/api/extra-components分块发送大型元件列表
POST/api/route提交布线任务(异步,返回 job_id)
GET/api/status/{job_id}查询任务状态
GET/api/result/{job_id}获取布线结果(走线 + 过孔)
POST/api/cancel/{job_id}取消正在运行的任务
GET/api/config/defaults获取默认布线参数
POST/api/analyze/board-summary板卡概览分析
POST/api/analyze/power-nets电源网络分析
POST/api/analyze/diff-pairs差分对检测
POST/api/analyze/bus-groups总线组检测
POST/api/analyze/net-stats网络统计

开发者指南

以下内容面向需要修改源码或从源码构建的开发者。

目录结构

KICAD Routing-intergration/
├── KiCadRoutingTools/              # 布线引擎(Rust加速A*路由器)
│   ├── route.py                    # 单端布线 CLI
│   ├── route_diff.py               # 差分对布线 CLI
│   ├── route_planes.py             # 电源/地平面 CLI
│   ├── rust_router/                # Rust A* 实现
│   └── ...
├── kirouting-integration/           # EasyEDA Pro 扩展 + 桥接服务器
│   ├── src/index.ts                # 扩展入口(TypeScript)
│   ├── iframe/                     # 扩展 UI(参数配置对话框)
│   ├── bridge_server/              # Python 桥接服务器
│   │   ├── server.py               # FastAPI 服务(端口 8765)
│   │   ├── start_server.bat        # 一键启动脚本(自动安装依赖)
│   │   ├── routing_runner.py       # 布线调度(调用 KiCadRoutingTools)
│   │   ├── easyeda_to_kicad.py     # EasyEDA JSON → KiCad 格式转换
│   │   ├── kicad_diff.py           # 对比输入/输出提取新走线
│   │   ├── coord_transform.py      # 坐标系转换(mil ↔ mm)
│   │   ├── layer_mapping.py        # 层映射(EasyEDA ↔ KiCad)
│   │   ├── models.py               # Pydantic 数据模型
│   │   ├── analysis.py             # AI 分析(电源网络、差分对等)
│   │   └── requirements.txt        # Python 依赖
│   ├── extension.json              # 扩展清单
│   ├── package.json                # Node.js 项目配置
│   └── tsconfig.json               # TypeScript 配置
└── README.md                       # 本文件

环境要求

组件版本要求用途
Python3.8+桥接服务器
Node.js20.5.0+编译扩展
Ruststable编译路由器(可选,无则降级为纯 Python)
EasyEDA Pro2.3.0+运行扩展

开发命令

# === 扩展开发 ===
cd kirouting-integration
npm install                  # 安装前端依赖
npm run compile              # 编译 TypeScript
npm run build                # 编译 + 打包 .eext
npm run fix                  # 代码格式化 + lint

# === 桥接服务器 ===
cd kirouting-integration/bridge_server
pip install -r requirements.txt  # 安装 Python 依赖
python server.py                 # 启动服务器

# === 布线引擎 ===
cd KiCadRoutingTools
python build_router.py       # 编译 Rust 路由器(不要直接 cargo build)

# === 测试 ===
cd KiCadRoutingTools
python tests/test_fanout_and_route.py --all        # 完整集成测试
python tests/test_fanout_and_route.py --all --quick  # 快速模式

# === 验证 ===
cd KiCadRoutingTools
python check_drc.py output.kicad_pcb               # DRC 检查
python check_connected.py output.kicad_pcb         # 连通性检查

注意事项

  • 桥接服务器同一时间只能运行一个布线任务,提交新任务会自动取消上一个
  • 板框间距(board_edge_clearance)建议 ≥ 0.5mm,避免阶梯状走线
  • 单位转换链路:EasyEDA UI (mm) → 扩展内部 (mil) → 服务器 (mil→mm) → 布线引擎 (mm)
  • 修改 Rust 路由器后需要在 rust_router/Cargo.toml 中更新版本号

许可证

  • KiCadRoutingTools: MIT License
  • kirouting-integration: Apache-2.0 License

Changelog

v1.0.1 (2026-06-15)

多语言优化

v1.0.0 (2026-05-11)

首个正式发布版本。

功能

  • 单端布线 — 通过桥接服务器调用 KiCadRouting Tools A* 路由引擎
  • 差分对布线 — 支持中心线路由、极性交换、GND 过孔放置
  • BGA/QFN 扇出 — 自动逃逸路径生成
  • 电源平面 — 自动过孔连接 SMD 焊盘到内层铜皮
  • 网络选择 — 支持按名称过滤、通配符匹配、排除模式
  • 层配置 — 支持多层布线,每层可设置成本权重
  • 参数配置 UI — iframe 对话框,支持线宽、间距、过孔、网格步长等参数
  • 异步布线 — 后台执行,支持进度轮询和取消
  • AI 分析接口 — 板卡概览、电源网络分析、差分对检测、总线组检测、网络统计
  • DRC 参数校验 — 提交前自动校验参数是否满足 EasyEDA DRC 规则
  • 自动取消 — 提交新任务自动取消上一个正在运行的任务
  • 大型元件分块传输 — 通过 /api/extra-components 分块发送,避免单次请求过大
暂无数据
暂无数据

评论

在登录或注册后才可以进行评论操作
全部评论(1)
按时间排序|按热度排序

类型

PCB

关键词

AutoroutePCBRouting布线自动布线

扩展信息

版本v1.0.1
发布者

EasyEDA

发布时间2026-07-06 10:21:02
名称

kirouting-integration

UUID

k1c4d2r0u7t1n9g3b5r8i0d4g6e2p2v2

适用EDA版本:^3.2.0
报告

报告滥用

相关链接

主页:https://github.com/easyeda/eext-kirouting-integration
反馈:https://github.com/easyeda/eext-kirouting-integration/issues
仓库:https://github.com/easyeda/eext-kirouting-integration
logo

政策条款

服务条款隐私政策项目授权许可协议作出贡献感谢名单

软件版本

专业版标准版教育版私有化部署版

解决方案

专业版编辑器标准版编辑器桌面客户端API接口文档格式

使用帮助

用户论坛专业版教程标准版教程专业版更新标准版更新

关于我们

团队介绍相关报道关于公司联系我们合作联系
EDA公众号
EDA公众号
开源公众号
开源公众号
开源硬件交流群
开源硬件交流群
版权所有 - 深圳创电优选科技有限公司 粤ICP备2026007863号粤公网安备44030402002736号增值电信业务经营许可证粤B2-20201198ISO/IEC隐私政策用户协议