
原理图连接信息导出
原理图连接信息导出
liuem0LCEDA-sch-conn-export · 原理图连接信息导出
嘉立创EDA专业版(EDA Pro)扩展:把整份原理图的网络连接情况导出为 Markdown 文档,以 MCU / FPGA / DSP 等需编写程序的核心器件为中心,给出每个引脚的引脚号、引脚名与互联关系——专为大模型(LLM)开发固件时提供电路上下文设计,让不支持多模态的模型不打开原理图也能"看懂"电路。
姊妹项目:LCEDA-pcb-autofanout(PCB 电源地就近打孔)、LCEDA-sch-net-fanout(原理图引脚网络扇出)。
为什么需要它
当前用大模型开发固件,让它"看"原理图有两个痛点:
- 容易出错:原理图图元密集、常跨多页,模型读图经常看错引脚号、漏看网络连接——生成的代码引脚用错、连接关系搞反,这类低级错误反复调试最浪费时间;
- 又慢又费 token:一张复杂板子的截图要消耗大量视觉 token,多轮对话反复贴图开销惊人,不支持多模态的模型更是完全用不了。
本插件把电路连接一键导出为面向 LLM 阅读优化的结构化文本,开发时直接引用到大模型对话 / 工程上下文,帮助它准确、快速地理解电路连接——特别是 MCU、FPGA 程序开发时,"哪个引脚接到了哪个芯片的哪个脚"一查即得,从源头避免低级错误:
### U1 — STM32F103C8T6(ST / LQFP48)
共 48 引脚:信号 34 · 电源 12(已忽略)· 未连接 2
2 PC13 KEY1 = R3.1, SW1.1
42 PB8 I2C1_SCL = J1.SCL(3), R4.1, U5.SCL(6)
43 PB9 I2C1_SDA = J1.SDA(4), U5.SDA(5)
未连接(2):1 VBAT,4 PC15
电源(已忽略,12):23 VSS,24 VDD …

对端连接点同时带引脚名和引脚号(U5.SCL(6) = U5 的 6 脚 SCL)——"MCU 的 42 脚 PB8 连到 FPGA 哪个脚"这类问题一读即答;无功能名的引脚(电阻等)自动退化为 R4.1 省字符。
功能
-
两条核心器件来源(取并集):
- 执行命令时在原理图中选中的器件(只选引脚也会自动反查父器件);
- 设置面板里配置的核心器件位号(如
U1, U3,忽略大小写); - 可选自动识别:两者皆空时,把引脚数 ≥ 阈值(默认 24)的器件当核心。
-
模块视图——「导出选中器件互联」:逐模块开发专用。框选一个功能模块的全部器件(≥2 个,如 MCU + RS485 收发器 + USB 座)后运行,只输出四块内容:选定器件清单(型号/引脚数)、器件间互联网络(逐网络
网络: 选中侧连接点 = 连接点,未选中侧以",外部:"标注,如USART1_TX: U4.PA9(19) = U7.DI(2))、对外信号引脚(模块边界:网络只连到本模块一处的引脚及其模块外去向)、电源/未连接汇总——互联一目了然,上下文最省、审读最快;电源过滤与输出风格设置与全图导出共用。
-
核心器件引脚表:每行「引脚号 引脚名 网络 = 对端列表」,对端连接点为
位号.引脚名(引脚号)(引脚名与引脚号都给全);电源脚与未连接脚(含 No ERC)压成单行说明,空闲 GPIO 一目了然;可选标注符号电气方向[I]/[O]/[IO]。 -
电源/地过滤(可配):
- 网络名名单:默认含
GND/VDD*/VCC*/VSS*/+3V3/+5V/+*/NC等常见形态,支持*通配、忽略大小写,设置页可增删; - 引脚名兜底:网络名没命中名单时,引脚名形如
VDD/VSS/VCC/GND/VBAT/VREF/EP的仍按电源脚归类(自定义电源轨不漏网); - "全部成员都是电源脚"的网络(如自定义
MY_RAIL)整体归入电源汇总; - 总开关可关闭,完整保留电源连接。
- 网络名名单:默认含
-
token 高密度(默认输出):
- 紧凑文本风格:核心表用代码块逐行输出(
引脚号 引脚名 网络 = 对端),无表格线开销(设置可切回 Markdown 表格); - 网络清单去重:经过核心器件的网络已在其引脚表完整展开(每行列出全部对端),网络清单默认只列不经过核心的网络,不再重复消耗上下文(可改回全量);
- 电源网络汇总每网一行
网络名(连接数): 连接点,超长截断。
- 紧凑文本风格:核心表用代码块逐行输出(
-
被忽略的电源网络不消失:文末汇总表列出每个电源网络的全部连接点(超长自动截断)。
-
导出方式(无需任何权限):生成后打开预览窗口——一键复制全文给大模型粘贴、下载 .md(窗口内浏览器下载,文件名
前缀-日期.md,模块视图为前缀-module-日期.md)、全选文本;全文同时输出到控制台留档。全程不联网、不直接读写本地文件,安装时不触发"外部交互权限"提示。 -
工程级收集:跨全部原理图图页取器件与网表;多子部件器件(U1A/U1B)自动聚合为一个器件;网表连接点匹配不到画布器件时计数并在控制台给出明细。
使用
- 安装:EDA Pro → 设置 → 扩展 → 扩展管理,导入
build/dist/lceda-sch-conn-export_vX.Y.Z.eext(v0.3.0 起不触发"外部交互权限"提示——插件不再引用任何文件系统/联网接口); - 全图导出:打开原理图,选中 MCU/FPGA(或在设置面板配置位号),菜单「连接信息导出」→「导出连接信息(预览 / 复制 / 下载)」,自动打开结果窗口;
- 逐模块导出(v0.5.0):框选本功能模块的全部器件(如 MCU + 485 芯片 + USB 接口,≥2 个),菜单「连接信息导出」→「导出选中器件互联(模块视图)」——只输出选中器件之间的互联、对外引脚与电源汇总;
- 点「复制全文」直接粘贴给大模型,或「下载 .md」存进固件仓库;
- 「设置面板...」调整核心器件位号、忽略名单、章节开关、文件名前缀。



建议把导出的 Markdown 放进固件仓库(如
docs/board.md),配合 AI 编码助手食用。
设计说明(面向 LLM 的取舍)
- 引脚号 + 引脚名都保留(双侧):核心器件一列看清引脚号/引脚名;对端连接点也同时给引脚名与引脚号(
U5.SDA(5))——MCU↔FPGA 引脚级互查不依赖任何推断;引脚号对应数据手册封装管脚,引脚名对应端口功能; - 连接点用
位号.引脚名(如U5.SDA)而非位号-引脚号(U5-5),语义可读性优先;电阻等无功能名的引脚退化为编号(R4.1)省字符; - 同一网络只展开一次:核心表已含全部对端,网络清单只补"核心看不到的"互连——信息零丢失,token 最省;
- 电源默认滤除但留摘要:电源脚对"接了什么"几乎无信息量,却占掉一半篇幅与上下文窗口;
- 未连接引脚显式列出:空闲 GPIO 是固件分配资源时的高价值信息;
- 网络总表 + 器件一览双视角:回答"这根线还连到哪"与"这颗芯片都有什么信号"两类问题都不用推理跳转。
开发
npm install
node test/run-offline.ts # 离线测试(网表解析/电源分类/核心解析/渲染双风格/适配层)
npm run test:bundle # 构建产物冒烟测试(mock eda 驱动 runExport 全流程)
npx eslint src test
npx tsc --noEmit -p tsconfig.json
npm run build # 产出 build/dist/lceda-sch-conn-export_vX.Y.Z.eext
node test/verify-pkg.cjs # 包内容核验
- 数据来源:器件 =
sch_PrimitiveComponent.getAll('part', true)(全部图页,型号取 制造商编号 > 名称 > 库器件名);引脚连接 =sch_Netlist.getNetlist('Protel2')网表(工程级); - 零外部交互:客户端对 bundle 静态扫描,引用
sys_FileSystem等接口即触发"外部交互权限默认禁用"安装提示;v0.3.0 起内容经sys_Storage传入 iframe,落盘用窗口内浏览器下载(blob + a[download]),verify-pkg 有回归守卫禁止此类接口混入; - 只读导出,不修改画布;多子部件位号(U1A/U1B 与 U1)双向容错匹配;
- 网络获取三级回退:
sch_Netlist.getNetlist(字符串/Blob)→sch_ManufactureData.getNetlistFile→ 几何法重建(导线折线+网络标识+引脚坐标并查集聚类;实测前两者在部分客户端返回空,几何法不依赖网表 API);三级都为空时弹窗与文档头醒目告警"未连接不代表真实电路"; - 已知限制:预览窗口缓存超过 40 万字符自动截断(下载禁用、复制为截断版,完整全文在控制台);iframe 内浏览器下载在个别客户端 webview 可能被禁用——此时用「复制全文」。
许可
Apache-2.0
Changelog
0.5.2 (2026-09-18)
- 商店上架准备:说明文档增加功能示意图与插件定位说明。README 与使用说明新增 「解决什么问题」:大模型直接识别原理图容易出错(引脚看错、网络漏看)又慢又费 token,本插件把电路连接导出为结构化文本直接引用到大模型开发中,尤其帮助 MCU/FPGA 程序开发避免低级错误;随包附 5 张示意图(菜单入口、全图导出、 模块视图、设置面板×2,文件名沿用 demo-* ASCII 规约)。
0.5.1 (2026-09-18)
- 模块视图实机验证通过(Spartan7 板 USB 模块:USB-C 座 + 3×TVS + CH9441,
互联 10 网络 + 对外 8 引脚)。按实机输出修三处显示瑕疵:
- 第 4 节电源脚明细改按引脚号自然排序(此前为符号原始顺序,USB 座一行为乱序);
- 电源脚引脚名与引脚号相同时只写一处(TVS 的
8 8→8),全图导出同步生效; - 文末"模块视图"斜体收尾多余空格修正(避免 Markdown 渲染出原始星号)。
0.5.0 (2026-09-18)
- 新增:模块视图——「导出选中器件互联」命令(第二条菜单命令)。逐功能模块
开发时不需要整板导出:框选本模块的全部器件(≥2 个,如 MCU + 485 收发器 +
USB 接口座)后运行,只输出四块内容:
- 选定器件清单(型号/制造商/封装/引脚数);
- 器件间互联网络:连接 ≥2 个选中器件的信号网络逐行列出,
网络: 选中侧连接点 = 连接点(同一网络),未选中器件以",外部:"标注; - 对外信号引脚(模块边界):网络只连到本模块一处的引脚 + 模块外去向;
- 电源/未连接汇总(电源脚明细 + 未连接计数)。
模块视图只认画布选中(不并入设置位号/自动识别);电源过滤、紧凑/表格风格、
电气方向标注等设置与全图导出共用;文件名为
前缀-module-日期.md。
- 全图导出联动提示:「导出连接信息」检测到选中 ≥2 个器件时,完成 toast 追加提示模块视图命令(避免误把整板导出当模块互联用)。
- 电阻/电容/电感统一显示值(v0.4.2 引入)随包发布。
0.4.2 (2026-09-18)
- 电阻/电容/电感统一显示值(实机反馈:C8 显示完整料号 HGC0402R5106M100NTEJ、 C9 却显示 470nF,来源不一致且料号对理解电路无信息量)。R/C/L 开头的位号改为 值优先:自定义属性 Value/Comment > 器件名称 > 料号 > 库器件名 > 符号名; 值缺失时退回原链路,IC(U 开头等)保持料号优先不变。
0.4.1 (2026-09-18)
- 修复:同名网络未合并(v0.4.0 实机输出暴露):几何法按导线簇重建时,两片互不
相连但打同名标签的导线(如跨页的 DDR_DQ0、分散的 GND)成为两个独立网络,导致
核心表对端为空、电源汇总只显示第一簇成员。新增
mergeNetsByName——网络名的语义 就是"同名即同网",网表/几何两源统一按名合并(成员去重)。 - 新增裸电压形态规则:
数字[.数字]V[数字](1V5、1V0、12V、3.3V…)一律归电源 (默认名单枚举不到的电压名不再漏进信号网络表;EXTV 等非裸电压形态不受影响)。
0.4.0 (2026-09-18)
0.4.0 (2026-09-18)
- 新增:几何法网络重建(第三级数据源)。实机复测确认 Spartan7 板上两个网表接口
(
sch_Netlist.getNetlist与sch_ManufactureData.getNetlistFile)均返回空,v0.3.1 仍无法获得网络。本版彻底摆脱对网表 API 的依赖:- 读取全部导线(
sch_PrimitiveWire.getAll():折线坐标 + 导线网络名); - 读取网络标识(电源/地符号,
getAll('netflag'):位置 + 网络名)与引脚坐标; - 并查集聚类:同一导线连通、引脚/标识坐标落在导线段上归入该簇;
- 簇命名优先级:
sch_Net.getCurrentProjectAllNets()全局网络名(按导线 ID)> 网络标识名(GND/+3V3 等)> 导线自带名 > 自动名Net位号_引脚号; 一簇多名(疑似短路/跨页重名)拼接命名并在控制台告警; - 网表接口仍优先:解析成功就不走几何法;几何法统计(导线/命中/未命中计数)输出 到控制台,便于判断导线枚举是否覆盖全部图页。
- 读取全部导线(
- v0.3.1 的型号清洗(
={Value}模板过滤)与多源网表回退保持不变。
0.3.1 (2026-09-18)
0.3.1 (2026-09-18)
- 修复:实机(Spartan7 板,179 器件)网表读取为空,导致全部 225 个 FPGA 引脚显示
"未连接"、所有器件信号列为空。
sch_Netlist.getNetlist('Protel2')(已废弃接口)在 部分客户端返回空。新增网表多源回退链:sch_Netlist.getNetlist('Protel2')(字符串或 File/Blob 形态均可解析);- 为空时自动改用
sch_ManufactureData.getNetlistFile('sch-conn-export', 'Protel2')(官方推荐替代接口)读取网表文本。
- 空网表醒目告警:两路网表都为空时,结果弹窗与文档头部均提示"网表读取为空, 未连接不代表真实电路",控制台输出网表来源/长度/原文前 300 字符便于反馈排查 (旧版静默输出空结果,易误当作真实电路)。
- 型号清洗:装配变量模板占位(如
={Value})不再作为型号输出,自动跳过并 依次回退 自定义属性 Value/Comment → 库器件名 → 符号名。
0.3.0 (2026-09-17)
0.3.0 (2026-09-17)
- 移除全部外部交互接口引用,安装不再触发"外部交互权限"提示:
- 删除
sys_FileSystem.saveFile(客户端静态扫描 bundle,只要引用该类接口就会在安装时提示权限默认禁用); - 导出主路径改为「生成 → 打开预览窗口」:一键复制全文(剪贴板)、下载 .md(窗口内浏览器下载 blob + a[download],不经过 EDA 文件接口)、全选文本;全文同时输出到控制台留档;
- 菜单合并为单命令「导出连接信息(预览 / 复制 / 下载)」,删除原「预览 / 复制」二级命令;
- verify-pkg 新增回归守卫:bundle 不得出现 sys_FileSystem/WebSocket/XMLHttpRequest 等接口。
- 删除
- 预览窗口:显示文件名与字符数,内容超长截断时自动禁用下载按钮并提示走复制/控制台。
0.2.0 (2026-09-17)
0.2.0 (2026-09-17)
- 对端连接点补全引脚号:
U5.SCL→U5.SCL(6),核心表可直接回答"MCU 引脚号/引脚名 ↔ FPGA/外设引脚号/引脚名"的互联问题(引脚名与引脚号相同的无功能名引脚仍省写为 R4.1)。 - 紧凑输出风格(默认):核心器件引脚表改用代码块文本行(
引脚号 引脚名 网络 = 对端), 去掉表格线与表头 token 开销;原表格风格可在设置切回。 - 网络清单去重:经过核心器件的网络已在核心表完整展开,网络清单默认只列不经过核心器件 的网络(可切回全量)——信息零丢失,显著压缩上下文占用。
- 可选引脚电气方向:开启后在核心表引脚名后标注符号方向 [I]/[O]/[IO]/[P]/[G](默认关)。
- 文档头合并为单行统计 + 记法说明行(首次向 LLM 解释连接点格式)。
- 修复:关闭"忽略电源/地"总开关时,"全成员电源脚网络"规则不应继续生效。
0.1.0 (2026-09-17)
0.1.0 (2026-09-17)
- 首个版本:整图收集全部图页器件与 Protel2 网表,导出面向大模型阅读的 Markdown 连接文档。
- 核心器件 = 画布选中 ∪ 设置位号(只选引脚自动反查父器件),可选按引脚数自动识别;
- 核心器件引脚表:引脚号/引脚名/网络/对端连接点(位号.引脚名),电源脚与未连接脚(含 No ERC)单独成行;
- 电源过滤三层规则:网络名通配名单(可配)→ 引脚名兜底(VDD/VSS/VCC/GND/VBAT/VREF/EP…)→ 全成员电源脚网络整体归类;总开关可关闭;
- 信号网络总表、其它器件一览(位号/型号/信号连接)、被忽略电源网络汇总三张视图,章节可独立开关;
- 导出 .md 文件(前缀-日期命名)与预览/复制窗口(一键复制全文),全文同时留档控制台;
- 多子部件器件(U1A/U1B)聚合、网表-画布双向容错位号匹配、未匹配连接点诊断输出。

类型
关键词
扩展信息
| 版本 | v0.5.2 |
| 发布者 | liuem |
| 发布时间 | 2026-09-18 11:36:38 |
| 名称 | lceda-sch-conn-export |
| UUID | 8016351db56413b1178ec9d390596a75 |
| 适用EDA版本: | ^3.2.0 |
| 报告 | 报告滥用 |
评论