• 首页
  • 使用指南
    上传指南安装指南
  • 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嘉立创社区开源广场

编辑器

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

引脚网络重排

liuem6v0.3.2
(1)Apache-2.0
在 PCB 中选中要交换的网络(如 MCU-FPGA 排线网络),从网络连接的器件中选择实施交换的器件(排插/MCU/FPGA 均可),按鼠线交叉与总线长求解最优引脚-网络指派(匈牙利算法 + 2-opt 精修):应用后直接改焊盘网络、画布鼠线即时可见,满意再同步原理图,不满意一键撤销。
详情
更改日志
历史版本
评论

引脚网络重排

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

LCEDA-sch-header-swap(引脚网络重排)

嘉立创EDA专业版扩展(PCB 侧):在 PCB 中选中要交换的网络(如 MCU-FPGA 排线网络),从网络连接的器件中选择实施交换的器件(排插/MCU/FPGA 均可),按鼠线交叉与总线长求解最优引脚-网络指派;应用后直接改焊盘网络、画布鼠线即时可见,满意再同步原理图,不满意一键撤销。

解决什么问题

把 MCU/FPGA 的 IO 拉到排插或互连,是开发板与模块设计的常规操作。布局完成后,器件引脚 顺序与另一侧焊盘的鼠线经常大面积交叉,以往只能手工逐个调整某一侧的网络分配去适配布线。 本插件把这一步变成自动求解:以"器件引脚位置 ↔ 网络"的指派问题建模(匈牙利算法 + 2-opt 精修),最小化鼠线交叉与总线长。

交换的目的是好布线——所以主场在 PCB:改焊盘网络后画布鼠线即时更新(真鼠线即预览), 满意再把变更同步回原理图,不满意一键撤销。

功能演示

1. 菜单入口(PCB 编辑器 → 顶部菜单「引脚网络重排」)

菜单

2. 重排前:MCU-FPGA 排线鼠线大面积交叉

重排前

3. 选中要交换的网络(点选/框选走线或焊盘)

选择鼠线

4. 执行「交换选中网络」:预览窗列出候选器件与各自方案(前后交叉数/鼠线总长)

预览

5. 应用后的效果:同一批网络在所选器件上重新分配,鼠线交叉显著减少

重排后

6. 满意 → 同步到原理图;不满意 → 撤销

撤销或同步

7. 设置:锁定引脚 / 电源名单 / 优化目标 / 写入节奏

设置

使用方法(PCB 编辑器菜单「引脚网络重排」)

  1. 在 PCB 中选中要交换的网络:点选/框选这些网络的走线或焊盘(未布线时选焊盘)。
  2. 「交换选中网络(选器件)…」:弹出预览窗,列出这些网络连接的器件(在选中网络上 落有 ≥2 个焊盘者)及各自的交换预览(每脚新旧网络、前后交叉数/鼠线总长、锁定原因), 点选实施交换的器件。
  3. 「应用到 PCB」:直接改写该器件焊盘网络并保存、刷新鼠线——观察画布真鼠线。
  4. 满意 → 「同步上次交换到原理图…」(器件引脚的独占导线自动改网络;汇入结点/电源 符号承载的引脚会列入手工清单);不满意 → 「撤销上次交换」(PCB 与原理图一并恢复)。
  5. 反悔随时可撤销(含已同步的情况)。

重要:自动保存与备份

  • 应用 / 撤销会自动保存 PCB,同步会自动保存原理图,并且写操作完成后会 自动重新加载 PCB 页签(画布与鼠线即时重建,属正常现象)。
  • 插件虽然自带「撤销上次交换」(按台账恢复焊盘与导线网络),但改网络属批量写操作, 建议先对工程备份(编辑器内 文件 → 备份/另存为,或复制整个工程)再执行。
  • 同步前原理图与 PCB 网络不一致属预期(以 PCB 为准),请尽快同步或撤销。

要求与限制

  • 交换发生在选中的网络集合内部,器件其它引脚不受影响;请确保所选网络在该器件上 确实可互换(如全 GPIO),差分/专用功能网络请勿选入。
  • 电源/地脚默认按名单自动锁定(3V3/1V8 等裸电压形态自动识别),任意引脚可在设置中锁定。
  • 原理图自动同步要求器件引脚由带网络名的导线(原生虚拟网络标签)承载; 其余连接形态会列入手工清单而不是误改。
  • pcb_PrimitivePad.modify / sch_PrimitiveWire.modify 为 BETA 接口,旧客户端: 焊盘改写失败会列明细;导线改写自动退级"按原折线删建"。
  • 多 PCB 工程暂使用名称排序的第一个 PCB(若与当前激活文档不一致会提示)。
  • 在嘉立创EDA专业版 V3.2.149 实机开发验证;写路径按 V3.2 形态适配(焊盘经器件引脚 对象 setState_Net 写入,写后自动重开 PCB 页签重建画布)。

开发

node test/run-offline.ts   # 离线测试(179 断言)
npx eslint src test config
npx tsc --noEmit -p tsconfig.json
npm run build              # 产出 build/dist/lceda-sch-header-swap_vX.Y.Z.eext
node test/verify-pkg.cjs   # 包内容核验(含 images 硬校验)
npm run test:bundle        # 构建产物冒烟(入口求值/预览/应用/同步/撤销/错误路径)

License

Apache-2.0

Changelog

0.3.2 (2026-09-23)

移除 banner 横幅图(images/banner.jpg、images/banner.svg 与 extension.json 的 images.banner 声明):上架物料只保留 logo,功能无变化。注意声明了 banner 但包内 无文件会导致客户端加载失败/菜单不出现(v0.1.0 踩过的坑),verify-pkg 加守卫确保 banner 声明与文件都不存在。

0.3.1 (2026-09-22)

三处实机反馈修复(Run API Gateway 桥接 + 截屏取证):

  • 改网后画布"半锁死"(只有部分焊盘可拖、拖动不落盘、鼠线不刷新):V3.2 客户端 程序化改焊盘网络(setState+done 或类级 modify)会把交互层带进半成品事务态—— 实测拖动的焊盘保存重开 PCB 后自动归位(拖动从未写入文档),关开页签即原生重建。 修复:应用/撤销写完保存后自动关闭并重开 PCB 页签(等价用户手动路径,画布/ 鼠线一起干净);无 closeDocument 的旧客户端退级 ratline start/stop 循环(等待 300ms→2500ms,过早 stop 会掐死大板计算)。
  • 同步原理图报「未找到器件 U4」:V3.2 客户端 sch_PrimitiveComponent.getAll() 无参调用必抛「获取所有器件失败」,可用形态是 getAll('part', true)(conn-export 先例,本次落地)。器件读取统一走 ('part', true);跨图页返回集合下,多页工程 用「引脚落在本页导线上」几何确认器件所在页(确认不了退级首次命中页)。 工程信息的原理图节点兼容单数 page 字段。
  • 版本标记 schHeaderSwapVersion = 0.3.1。

0.3.0 (2026-09-18)

写路径根治性重构:经 Run API Gateway 桥接多轮实机取证,确认 pcb_PrimitivePad.modify 类级批量改网虽然生效,但会把画布交互层搞坏(除被改过的焊盘外全部无法点选/拖动, 多轮实机复现;U4.41/FPGA.D15 即为被改焊盘)。新写路径 = 器件引脚对象的 setState_Net(net) + done()(getAllPinsByPrimitiveId 取引脚,全板引脚对象 8 并发缓存), 实机验证真实生效且交互层保持健康;类级 modify 仅作无 setState 客户端的兜底。 附带实机结论:pcb_Net.setNetlist('Protel2') 返回 true 但假成功(网络不变); getNetlist('EasyEDA') 会挂起——均不可用。

0.2.3 (2026-09-18)

应用/撤销写焊盘前先 clearSelected(修改"正处于选中状态"的焊盘会破坏交互层); 加载即写 schHeaderSwapVersion 版本标记(桥接诊断直接确认客户端加载版本)。

0.2.2 (2026-09-18)

startCalculatingRatline 是模式开关(调后画布输入锁死),改为与 stop 配对 + 轮询校验收敛;toast 类型改 V3.2 数字枚举(2=信息/3=成功,传 0 显示红叉错误图标)。

0.2.1 (2026-09-18)

修复实机"选中网络上没有落有 ≥2 个焊盘的器件":V3.2 客户端 pcb_PrimitivePad.getAll() 返回的焊盘图元没有 getState_ParentComponentPrimitiveId 方法(经 Run API Gateway 桥接实机探明),位号映射全空导致所有焊盘被过滤。修复:焊盘位号映射双路径——pad 自带 parent 方法时直接用(autofanout 先例客户端);没有时逐器件 getAllPinsByPrimitiveId (其返回带 parent/PrimitiveId)反向构建 padId→位号 映射(8 并发批)。离线 163 断言 新增该形态回归;另新增 tools/ 实机诊断脚本(经 49620 桥端到端驱动,见 AGENTS.md)。

0.2.0 (2026-09-18)

按实机使用反馈重构为 PCB 主场(交换的目的是好布线,原理图只跟进):

  • 菜单迁到 PCB 编辑器:「交换选中网络(选器件)…」「同步上次交换到原理图…」「撤销上次交换」。
  • 新流程:PCB 中选中要交换的网络(点选/框选走线或焊盘)→ 从网络连接的器件列表中选择 实施交换的器件(排插/MCU/FPGA 通吃,预览窗卡片选择、默认高亮改善最大者)→ 求解 → 应用 = 直接改该器件焊盘网络 + 保存 + 刷新鼠线(画布鼠线即预览)→ 满意「同步到原理图」、 不满意「撤销」(焊盘 + 已同步导线一并恢复)。
  • 同步原理图:逐页定位器件所在图页(board.schematic/pages 递归收集),该器件参与交换引脚的 独占导线两阶段改名(先临时名后最终名);汇入结点/电源符号承载的引脚列入手工清单。
  • 交付仅限选中的网络:交换发生在选中网络集合内部,器件其它引脚不受影响;候选器件 = 在选中网络上落有 ≥2 个焊盘的器件。
  • 移除已无意义的「PCB 同步策略」配置(应用本就直接写 PCB)。
  • 开发坑:递归收集原理图页时 schematic 常是 board 的子对象(无 type 字段),只认 type=schematic 会空手而归——与 PCB 收集同款的形态兼容处理。

0.1.1 (2026-09-18)

修复安装后菜单不出现:extension.json 声明了 images/logo.png、images/banner.jpg 但包内无 images/ 目录,客户端加载声明资源失败导致扩展不激活。补 PIL 自绘占位 logo/banner(M4 上架前换正式版);verify-pkg 把 images 存在性从提示升级为硬校验; 新增 npm run test:bundle(dist/index.js 冒烟:求值入口 -> 预览/应用/撤销/PCB 同步/错误路径全流程),防"入口求值失败/导出缺失"类问题再漏到实机。

0.1.0 (2026-09-18)

首个开发版本(M1+M2+M3 功能齐备,待实机验证)。

  • 「分析选中排插并预览重排」:选中原理图排插/连接器 → 跨文档读取 PCB 全板焊盘 与走线 → 按"最近端点距离"匈牙利算法求初解 + 真实目标函数(鼠线 MST 总长 + 交叉数×权重档)2-opt 精修 → 预览窗展示每脚新旧网络与前后指标(只读不改画布)。
  • 引脚锁定规则链:用户名单(位号.引脚号 / 纯引脚号)→ 电源地名单(通配 + 裸电压 形态)→ 无网络/无焊盘 → 原理图连接形态(独占导线簇才可改:共享结点、电源符号 承载、簇内多名一律锁定)→ 重复网络 → 原理图/PCB 网络名一致性。
  • 「应用上次预览的重排方案」:两阶段改名(先临时名后最终名,规避交换环的瞬时 同名冲突),失败退级"删除导线+按原折线重建";改动前台账先落盘。
  • PCB 直接同步(可选):激活 PCB → 逐焊盘改网络 → 保存 + 刷新鼠线 → 切回原理图; 受影响网络已有走线时先警告并二次确认;同步失败引导走内置「更新 PCB」。
  • 「撤销上次交换」:按台账恢复导线旧网络名(含删建回退的恢复)与 PCB 焊盘。
  • 设置面板:锁定名单、电源名单、权重档(偏重交叉/均衡/偏重线长)、PCB 同步策略、 精修轮数、写画布节奏。
  • 已知限制:多 PCB 工程暂取名称序第一个;引脚网络需由"带网络名的导线"承载 (原生虚拟网络标签)才可交换。
暂无数据
暂无数据

评论

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

类型

PCB

关键词

NetSwapHeaderConnectorRatsnestPinSchematic

扩展信息

版本v0.3.2
发布者

liuem

发布时间2026-09-23 11:45:22
名称

lceda-sch-header-swap

UUID

fe570e25713925c53f575bd465ad4b29

适用EDA版本:^3.2.0
报告

报告滥用

相关链接

主页:https://github.com/liuem/LCEDA-sch-header-swap
反馈:https://github.com/liuem/LCEDA-sch-header-swap/issues
仓库:https://github.com/liuem/LCEDA-sch-header-swap
logo

政策条款

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

软件版本

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

解决方案

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

使用帮助

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

关于我们

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