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

编辑器

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

器件交换

ly1212v2.4.2
(0)Apache-2.0
连续选择两个 PCB 器件后立即互换中心坐标、旋转方向和位号丝印,并可只交换对应焊盘实际连接的走线网络。
详情
更改日志
历史版本
评论

器件交换

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

器件交换

嘉立创 EDA 专业版 PCB 扩展。交换窗口会显示“器件1”和“器件2”两个候选槽位;两个器件都处于 PCB 选中状态后,立即互换两者的 X、Y 坐标和旋转角度。默认同时交换两个器件 Designator 位号丝印的坐标和方向,并按相同焊盘编号,只交换从这些焊盘中心实际连通的走线、圆弧和过孔网络。每次成功后候选栏会可靠地清空并等待下一对。

功能演示

器件、位号及对应引脚走线网络连续交换演示

安装

  1. 打开嘉立创 EDA 专业版。
  2. V3:进入“高级 → 扩展管理器… → 导入”;V2:进入“设置 → 扩展 → 扩展管理器… → 导入扩展”。
  3. 选择 pin-to-pin-component-swap_v2.4.2.eext。
  4. 如果已经安装旧版,使用同一个文件直接更新;扩展 UUID 保持不变。
  5. 在“已安装”列表中确认“器件交换”处于启用状态,然后重启编辑器一次。

连续交换

  1. 打开 PCB 文档。
  2. 点击顶部菜单“器件交换 → 打开连续交换窗口...”。
  3. 窗口出现后,在画布上点击第一个器件;它会显示在“器件1”槽位并保持选中。
  4. 如果选错,可点击该槽位的“取消选中”,或点击“重新选取器件1”。
  5. 点击第二个器件后,它会显示在“器件2”;系统确认两个候选器件都仍处于 PCB 选中状态后立即交换,不需要确认按钮。
  6. 默认勾选“同步交换位号丝印”;不需要移动位号时,请在选择第二个器件前取消勾选。
  7. 默认勾选“交换对应引脚连接的走线网络”。只想交换器件和位号的位置、方向时,请在选择第二个器件前取消勾选。
  8. 每次交换完成会自动清空两个槽位;继续点击下一对即可重复交换。
  9. 也可点击“选取器件1/器件2”指定下一次画布点击写入哪个槽位。
  10. 关闭交换窗口,或点击菜单“停止并关闭交换窗口”,即可退出连续模式。

点选器件本体、焊盘或器件文字均可。扩展不注册任何键盘快捷键。

器件与位号丝印交换

扩展会互换:

  • X 坐标;
  • Y 坐标;
  • 旋转角度。

开启“同步交换位号丝印”时,还会互换两个器件 Designator 属性图元的 X、Y 坐标和旋转角度。位号文字内容、字体、显隐状态和所在丝印层保持各自原值;缺少位号属性或位号已锁定时会在移动器件前停止并说明原因。

关闭网络同步时,允许不同封装、不同焊盘数量和不同板面的两个器件。物料信息、器件网络、板面和已有走线不会被互换或移动。锁定器件无法修改,需要先解锁。

对不同板面的器件,本扩展仍只互换旋转数值,不执行翻面或镜像。交换后请检查器件方向、飞线和 DRC。

如果交换中任一步提交失败,扩展会尝试将两个器件、位号丝印和连接走线网络恢复到交换前的状态。

引脚连接走线网络同步

勾选“交换对应引脚连接的走线网络”时,扩展会先做完整校验,再执行交换:

  • 两个器件的焊盘编号集合必须完全一致;
  • 从每个对应焊盘中心通过 getConnectedPrimitives(true) 开始,只沿实际相邻的直线、圆弧和过孔查找连通走线链;
  • 连通走线链中的图元必须与起始焊盘网络一致,且不能处于锁定状态;
  • 对应引脚网络不同的时候,只成对修改这些连通走线图元的网络属性;
  • 不按网络名称扫描全板,不修改同名但物理上未连通的铜图元;
  • 不修改 PCB 网表、两个器件或其它器件的引脚、独立焊盘、折线、填充和覆铜。

任一校验不通过时,扩展不会移动器件,并会给出原因。此时可取消一个槽位重新选择,或关闭网络同步后只交换位置和方向。执行中任一步失败时,扩展会尝试恢复连通走线网络及两个器件的原位姿。

按要求,走线链另一端所连接的其它器件引脚不会改变,因此交换后可能出现远端引脚与走线网络不一致。正式工程请先保留副本;每次交换后必须运行 DRC,并检查飞线、网络类、差分对和等长约束。

从源码构建

需要 Node.js 20.17 或更高版本。

npm.cmd ci
npm.cmd run lint
npm.cmd run build

生成的扩展包位于 build/dist/。

使用的扩展 API

  • SYS_IFrame.openIFrame():打开不遮挡 PCB 操作的持续交换窗口;
  • PCB_Event.addMouseEventListener():按顺序读取画布上的器件点选事件;
  • PCB_SelectControl.doSelectPrimitives() 与 getAllSelectedPrimitives_PrimitiveId():保持并验证两个候选器件的 PCB 选中状态;
  • PCB_PrimitiveComponent.get():读取被点选的器件;
  • setState_X()、setState_Y()、setState_Rotation() 与 done():提交器件的新位姿;
  • PCB_PrimitiveAttribute.getAll():读取器件关联的 Designator 位号属性;
  • 位号属性的 setState_X()、setState_Y() 与 setState_Rotation():同步交换位号丝印位姿;
  • IPCB_PrimitiveComponentPad.getConnectedPrimitives(true):从被交换器件的焊盘中心读取直接连接走线;
  • 直线、圆弧和过孔的 getAdjacentPrimitives():只沿实际铜连接查找完整走线链;
  • 直线、圆弧和过孔的 setState_Net():成对更新这些连接走线图元的网络;
  • PCB_Document.triggerCanvasUpdateCalculation():交换后刷新画布和飞线计算;
  • PCB_Event.removeEventListener():关闭窗口时结束连续点选。

v2.4.0 会在接收画布事件后再次核对 PCB 的实际选中集,并用选择代次使交换期间已排队的异步任务失效;交换成功后还会在结束路径再次强制清空候选栏,避免迟到的旧 selected 事件把上一对器件填回来。走线网络批量提交后会先刷新 PCB 计算,再以退避间隔重复读取确认;失败回滚会强制重写并校验全部原网络,避免 done() 后短暂读到旧值造成误判。

上述内联框架和 PCB 事件/图元修改接口包含 Beta API。正式工程使用前建议保留工程副本。

源代码仓库

  • 主仓库:GitHub
  • 国内镜像:Gitee
  • 问题反馈:GitHub Issues

许可证

Apache-2.0

作者

LIYAN

2.4.2

名称与图标

  1. 扩展显示名称统一改为“器件交换”,内部唯一标识符保持不变,确保可从旧版本正常升级。
  2. 使用原创的“两颗芯片与双向交换箭头”简约图标,采用浅蓝色背景并规范为 512×512 PNG,直观体现器件交换功能。

2.4.1

文档与元数据

  1. 在 README.md 中增加器件、位号丝印和对应引脚走线网络交换的 GIF 功能演示。
  2. 将扩展清单、项目主页和问题反馈的主仓库统一改为 GitHub,并在 README 中保留 Gitee 国内镜像地址。

2.4.0

新功能

  1. 默认同步交换两个器件 Designator 位号丝印的 X、Y 坐标和旋转方向,并提供独立开关;文字内容、字体、可见性和丝印层保持不变。
  2. 使用用户提供的 1:1 JPEG 图片作为扩展自定义图标。

修正

  1. 在处理选中事件前重新核对 PCB 实际选中状态,并使交换前排队的异步选取任务失效,防止交换成功后器件栏被旧事件重新填入。
  2. 交换成功后的所有结束路径都会再次清空两个候选槽位;位号交换或走线交换失败时一并回滚器件、位号丝印和网络。

变更

  1. 扩展作者和发布者名称统一为 LIYAN。
  2. 按扩展广场上传规范补充清单描述、README 使用说明和更新日志。

2.3.3

修正

  1. 修正走线网络 done() 提交后短暂读取到旧值时被误报为交换失败的问题;现在会刷新 PCB 计算并分多轮确认最终网络。
  2. 加强部分写入失败后的事务回滚:全部连接走线都会强制恢复原网络,并在刷新后重复校验,不再因旧读数跳过恢复。

2.3.2

变更

  1. 配置 Gitee 源代码仓库、项目主页、问题反馈地址和发布者信息。
  2. 保持交换成功后立即清空器件列表,并仅交换对应引脚物理连通的走线网络。

1.6.2

修正

  1. 使用 npx 初始化时未忽略 .git 目录和无关脚本

1.6.1

变更

  1. 在 npx 初始化和 update 更新时均忽略部分无关脚本

1.6.0

新功能

  1. 支持 npx github:easyeda/pro-api-sdk my-extension 初始化环境

变更

  1. 日志和 CLI 语言修改为英语
  2. 示例程序的描述修改为中英双语
  3. 转换为 ESM 项目

1.5.0

新功能

  1. 支持使用 npm run update 更新 pro-api-sdk 框架代码

1.4.0

新功能

  1. 支持使用 npm run debug 命令与 EDA 进行在线联调

修正

  1. 修正重复的 menuId

1.2.0

变更

  1. 使用纯 ESLint 的代码格式化方式
  2. 打包时额外进行压缩,可以获得更小的扩展包

1.1.1

变更

  1. 为了符合隐私政策,禁止在 extension.json、README.md、CHANGELOG.md、LICENSE 内添加电子邮箱地址作为联系方式

1.1.0

新增

  1. 新增扩展注册头部菜单的多语言翻译支持
  2. 新增更新日志(CHANGELOG.md)

变更

  1. 替换已弃用的方法(SYS_Dialog.showInformationMessage)

1.0.0

初始版本

暂无数据
暂无数据

评论

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

类型

PCB

关键词

PCBSwapRotationContinuousCenterDesignatorSilkscreenConnected RouteNetwork

扩展信息

版本v2.4.2
发布者

LIYAN

发布时间2026-09-01 16:24:10
名称

pin-to-pin-component-swap

UUID

5bd19959948a4d66a610f27417282a2f

适用EDA版本:^3.2.0
报告

报告滥用

相关链接

主页:https://github.com/ly12121/jlc_extend
反馈:https://github.com/ly12121/jlc_extend/issues
仓库:https://github.com/ly12121/jlc_extend.git
logo

政策条款

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

软件版本

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

解决方案

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

使用帮助

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

关于我们

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