
引脚排序
狼黑1v1.0.0
在符号编辑器中对选中的引脚,按名称或编号快速排序与等间距对齐,支持拆分排序、末尾排序、升序与降序。
详情
更改日志
历史版本
评论
引脚排序
狼黑1详情
更改日志
历史版本
评论
简体中文 | English | 繁體中文 | 日本語 | Русский
Pin Sorting · 引脚排序
一款面向 嘉立创EDA 专业版 与 EasyEDA Pro 的轻量级扩展,用于在符号编辑器中对选中的引脚按名称或编号快速排序并等间距对齐,让原理图与符号库一目了然。

左侧:官方系统库的引脚顺序;右侧:使用本扩展排序整理后的引脚顺序。
功能特性
- 按名称 / 按编号:支持按
pinName或pinNumber作为关键字排序。 - 升序 / 降序:一键切换两种方向。
- 拆分排序:基于
Intl.Collator({ numeric: true })实现自然序列,可正确处理DQ6与DQ10、A1与A10等混合场景。 - 末尾排序:仅用于比较的临时变换,不修改引脚属性本身。配合拆分排序时可将
DQ10 → 10DQ,避免末尾倒序被反写为01QD。 - 统一对齐:自动取最靠左
X与最靠上Y为参考原点,按当前引脚朝向决定横向或竖向等间距排布。 - 朝向归一化:将引脚朝向归一化到
180°与270°两个角度,规避 EDA 的旋转 Bug。 - 空操作优化:当坐标与朝向已经一致时跳过
modify调用,节省不必要的请求。
使用方法
- 在嘉立创EDA 专业版 / EasyEDA Pro 中安装本扩展。
- 打开一个符号编辑器文档。
- 框选或多选一批引脚。
- 通过顶部菜单 引脚排序 → 引脚排序 打开排序窗口。
- 窗口顶部实时显示当前选中的引脚数量。
- 设置排序参数,点击 升序 或 降序 立即应用。
排序选项详解
| 选项 | 取值 | 说明 |
|---|---|---|
| 排序对象 | 名称 / 编号 | 选择比较的引脚属性,对应 pinName 或 pinNumber。 |
| 拆分排序 | 默认开启 | 启用后先按字母段 / 数字段切分再比较,自然顺序,避免 DQ10 排在 DQ2 之前。 |
| 间距 | 数字(默认 10) | 排布间距,10 = 画布栅格的0.1。 |
| 末尾排序 | 默认关闭 | 启用后比较时把字符串“段序颠倒”,但不会回写到引脚属性。 |
| 升序 / 降序 | 按钮 | 触发排序与对齐,立即应用新坐标。 |
拆分排序 + 末尾排序 组合示例:
DQ10 → [DQ, 10] → "10DQ",这样保证DQ6与DQ10中DQ6排在前;而UDQS(未启用拆分排序时)则会逐字符倒置为SQDU。
实现原理简述
- 轮询选中集合:每 200ms 调用
eda.sch_SelectControl.getAllSelectedPrimitives()拉取当前选中,并过滤出primitiveType === 'Pin'的图元,用于刷新顶部计数。 - 构造比较键:根据 UI 选项确定
pinName或pinNumber作为关键字,决定是否启用Intl.Collator({ numeric, sensitivity: 'base' })与末尾倒序变换。 - 排序:对引脚副本数组进行排序,不修改原数组,确保参考原点来自原始坐标。
- 参考原点:遍历原始选中集合,取
X最小值与Y最大值(JLCEDA 坐标系 Y 轴向上)。 - 朝向归一化:将首个引脚朝向归一化到
180°或270°,避免0°与180°、90°与270°之间的翻转歧义。 - 应用新坐标:
- 朝向
0°/180°→ 横向引脚 → 竖向排布,固定X = minX,Y从maxY起递减; - 朝向
90°/270°→ 竖向引脚 → 横向排布,固定Y = maxY,X从minX起递增; - 若当前引脚坐标与朝向已一致则跳过
eda.sch_PrimitivePin.modify; - 否则展开引脚对象并仅覆写
x/y/rotation,再调用modify(primitiveId, property)。
- 朝向
项目结构
├───build 扩展包编译脚本目录
│ ├───dist 扩展包编译产物
│ └───packaged.ts 打包为 .eext 的脚本
├───config ESBuild 编译配置
├───dist 扩展主代码编译结果(由 esbuild 生成)
├───iframe 内联框架窗口 HTML
│ └───PinSorting.html 引脚排序 UI 与排序逻辑
├───images 扩展预览图
│ ├───logo.png 扩展 Logo
│ ├───演示.png 使用工具截图
│ └───示例.png 使用效果截图
├───locales 多语言文件
│ ├───en.json
│ ├───zh-Hans.json
│ └───extensionJson 扩展菜单标题多语言
├───src 扩展主要源代码
│ └───index.ts 入口:注册菜单与打开 iframe
├───extension.json 扩展配置
├───package.json NPM 配置
└───tsconfig.json TypeScript 配置
构建与安装
-
安装 Node.js(建议 ≥ 20.5)与依赖
npm install -
修改代码并按需更新
extension.json中的version -
构建扩展包
npm run build -
构建产物位于
./build/dist/,文件名为${name}_v${version}.eext -
在嘉立创EDA 专业版 / EasyEDA Pro 中导入
- V2:顶部菜单栏 → 设置 → 扩展 → 扩展管理器 → 导入扩展
- V3:顶部菜单栏 → 高级 → 扩展管理器 → 导入
选择上一步生成的
.eext文件即可。
开发提示
- 在
extension.json的headerMenus中,本扩展仅在symbol(符号编辑器)页面注册菜单,因为只有符号编辑器的引脚图元(primitiveType === 'Pin')支持通过modify调整坐标与朝向。 - 引脚排序的
modify调用展开整个引脚对象,仅覆写x/y/rotation,保留其它属性以避免系统重新分配未知参数导致引脚翻转。 - 编辑器坐标系 Y 轴向上,因此参考原点取
Y最大值(最靠上),从该位置起沿排布方向递减。
更多工具
更多「狼黑工具」系列扩展,请前往:https://jlc-ext.com/item/darksteel/wolfblack-tool
也可以在扩展的 引脚排序 → 关于 弹窗中找到该链接。
开源许可
本扩展基于 Apache License 2.0 开源。嘉立创EDA 与 EasyEDA 商标信息仅可用于依托本扩展构建产物的功能描述部分与开源发布的标题部分。
更新日志
1.0.0
- 首个正式版本
- 支持按引脚名称或编号排序;支持拆分排序、末尾排序、升序与降序
- 支持横向 / 竖向排布自动切换与朝向归一化(规避 EDA 旋转 Bug)

暂无数据
类型
Symbol
关键词
PinSortSymbolSchematic引脚
扩展信息
| 版本 | v1.0.0 |
| 发布者 | 狼黑 |
| 发布时间 | 2026-09-03 12:14:27 |
| 名称 | pin-sorting |
| UUID | 745919f1e03349e99d0d11ba0b757225 |
| 适用EDA版本: | ^3.2.175 |
| 报告 | 报告滥用 |
评论