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

编辑器

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

电源地就近打孔

liuem2v0.6.3
(0)Apache-2.0
对电压/GND 网络焊盘自动就近打孔或盘中孔(焊盘中心直放):贴阻焊边界就近、直线方向优先,真直插三重甄别自动跳过、封装脏孔自动按贴片处理,0402 密集区自动回退小过孔,连线宽度恒不超过焊盘尺寸,BGA 自动保护,DRC 后校验新增违规自动回滚。开源:https://github.com/liuem/LCEDA-pcb-autofanout
详情
更改日志
历史版本
评论

电源地就近打孔

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

LCEDA-pcb-autofanout 电源地就近打孔

嘉立创EDA专业版(EDA Pro / EasyEDA Pro)扩展:对电压/GND 网络的焊盘自动就近扇出过孔(打孔 + 焊盘到过孔连线,可选盘中孔:过孔直接打在焊盘中心),位置经过间距预检查与 DRC 后校验双保险。

功能演示

PCB 编辑器顶部菜单:

菜单入口

就近模式实战:135 个候选电源/地焊盘自动打出 130 个过孔,报告给出每个焊盘的打孔方向/距离/线宽、未打孔原因(直插甄别/引脚超限/合并去重):

就近模式

盘中孔模式:111 个过孔直接打在焊盘中心(无连线,报告会标注盘中孔数量):

盘中孔模式

图形设置面板(网络/过孔/连线/过滤与避让四组参数,改动即自动保存):

设置面板-网络与过孔

设置面板-过滤与避让

功能特性

  • 网络自动识别:内置 GND 词族(GND/AGND/PGND/GND1/GND_PLL…)与电压词族(VCC/VDD/VBUS/VBAT/3V3/+5V/1V8/3.3V/-5V…),可追加自定义网络名。
  • 间距规则内就近打孔:过孔边缘贴合焊盘边界——默认按阻焊开窗边缘判定(读取焊盘阻焊扩展,读不到回退焊盘铜皮尺寸),可选额外余量 stub(默认 0 = 贴合就近)。
  • 盘中孔模式(可选):过孔直接打在焊盘中心,无需连线(建议配合树脂塞孔/电镀填孔工艺);过孔整圆放不进焊盘或位置被占时自动回退就近打孔。
  • 直线方向优先:搜索顺序 0/90/180/270° 优先(长轴方向最先),45° 斜向仅作后备;0°/90° 被阻挡时走 180°/270° 而非斜向。
  • 真直插跳过 + 脏孔自动甄别:真直插焊盘(本身是通孔)自动跳过;判定须同时通过三重校验——多层焊盘(层=12/MULTI,SDK 定义焊盘层仅 1/2/12)、器件全孔共识(真直插件所有焊盘都带孔)、焊环完整(孔径+0.3mm ≤ 焊盘长边)。封装库残留的脏孔数据(如某批贴片电容单侧焊盘误带孔)自动按贴片处理照常打孔,并在报告列出「疑似直插误判已按贴片处理」清单。
  • 位置自动判定(可通过 DRC):
    • 本地预检查:板边间距、异网络焊盘/过孔/走线间隙、同网络过孔合并去重、连线通道无冲突;
    • 阻塞时沿方向逐档外扩(每档一个过孔外径,可配置步数);
    • 创建后调用 eda.pcb_Drc.check 复查,新增违规自动整体回滚。
  • 连线宽度自适应:焊盘→过孔线宽 = min(设定值, 焊盘尺寸),恒不超过焊盘大小;设为 0 时自动取 min(焊盘尺寸, 过孔外径)。
  • BGA 保护:焊盘数超过阈值(默认 32)的器件整体忽略,不参与打孔。
  • 一键清理:删除本插件历史创建的全部过孔/连线(不影响手工布线)。

使用

在 PCB 编辑器顶部菜单「电源地就近打孔」:

菜单说明
一键打孔提取 → 规划 → 写回 → DRC 后校验(可回滚)
预览(不修改画布)只输出打孔计划明细(位置/方向/线宽)
删除本插件创建的过孔/连线按 ID 记录清理
设置面板...图形界面配置全部参数(改动即自动保存)
关于版本与当前配置摘要

默认参数

参数默认值说明
viaHoleMm / viaDiameterMm0.3 / 0.6 mm过孔孔径/外径
fallbackViaHoleMm / fallbackViaDiameterMm0.2 / 0.4 mm回退小过孔:主过孔 8 方向全阻塞时自动换小一号重试(0402 密集区);外径 0=关闭
useSolderMask开就近边界用阻焊开窗边缘(关=焊盘铜皮边缘)
viaInPad关盘中孔:过孔直接打在焊盘中心(无连线,建议配合塞孔/填孔工艺);放不下自动回退就近
stubMm0 mm边界外额外余量(0 = 间距规则内贴合就近)
traceWidthMm0.4 mm连线宽度(0=自动;恒 ≤ 焊盘尺寸)
maxPins32超过该引脚数的器件忽略(BGA 保护)
skipThiPads开真直插焊盘跳过(多层+全孔+焊环三重甄别,脏孔自动按贴片);关闭后带孔焊盘全部参与打孔
clearanceMm0.15 mm预检查安全间距(6mil 标准工艺;最终由真实 DRC 兜底)
maxSearchSteps3阻塞时沿方向外扩的最大档数
mergeFactor1同网络既有过孔在(理想距离 + N 个过孔外径)内则跳过
useDrcCheck开创建后真实 DRC 校验,新增违规自动回滚
relaxedMode关宽松模式:忽略间距预检查(仅防重叠)、跳过连线通道与 DRC 后校验;板子已有 DRC 违规时用,可能引入新违规

开发

npm install          # 或复制已有 SDK 工程的 node_modules
node test/run-offline.ts   # 离线测试(合成板 + 10.8 万项断言)
npm run lint
npm run build        # 产出 build/dist/lceda-pcb-autofanout_vX.Y.Z.eext

源码结构:

src/
├── index.ts        # 入口:菜单命令、设置面板(iframe)、报告
├── types.ts        # 数据模型 / 配置 / 默认值(单位 mil,配置 mm)
├── net-classify.ts # 电源/地网络识别(内置 + 自定义模式)
├── geometry.ts     # 几何:点-线段/矩形/胶囊体间隙、板内判定
├── planner.ts      # 核心算法(纯函数):候选搜索 + 避让校验 → FanoutPlan
└── eda-adapter.ts  # EDA 读写:板状态提取 / applyPlan 写回 / DRC 回滚 / 配置存储
iframe/
└── settings.html   # 图形设置面板(eda.sys_Storage 注入直读写,与主线程共享配置)
test/
├── fixture.ts      # 合成板:0603/0402阵列/SOT-223/LQFP48/BGA256/真直插/脏孔各形态/混装/板角/底层/阻挡走线场景
├── run-offline.ts  # 断言 + 模拟写回(DRC 通过/失败回滚/单项失败)
├── verify-pkg.cjs  # .eext 包内容核验
└── debug-dump.ts   # 调试:打印每个焊盘的打孔/跳过原因

算法要点(参考 KiCad via-stitching 与常见 fanout 实践)

  1. 候选距离 = 焊盘沿方向延伸半径(阻焊开窗或铜皮边缘)+ stub + 过孔半径,stub=0 时过孔边缘贴边界(间距规则内就近);
  2. 直线方向(0/90/180/270°)优先、长轴方向最先,45° 斜向仅作后备;先在全部方向尝试理想距离,再逐档外扩;
  3. 直插(金属化孔)焊盘本身就是通孔,直接跳过——须通过多层(12)/器件全孔/焊环完整三重甄别,脏孔数据按贴片照常打孔;盘中孔模式时过孔直接取焊盘中心(外径 ≤ 焊盘短边且中心通过避让校验,否则回退就近搜索);
  4. 过孔对所有铜层障碍校验(通孔贯穿),连线只对同层异网络铜校验,同网络铜允许接触;
  5. 新放入的过孔/连线立即成为后续焊盘的障碍(多焊盘器件不互相冲突);
  6. 真实 DRC 作为最终防线:前后违规数对比,新增即回滚。

已知限制

  • 焊盘用轴对齐外接盒近似(旋转焊盘保守处理);
  • 铺铜不参与避让(铺铜区通常允许过孔打入);
  • 仅支持通孔(viaType=VIA),盲埋孔未支持;
  • DRC 回滚为整体回滚(不做逐项定位)。

排查:为什么有些焊盘没打孔?

执行/预览报告会按器件列出未打孔原因,对照处理:

原因处理
引脚超限(如 LQFP48 > 32)设置面板调大「忽略器件引脚阈值」(LQFP48 设 64;BGA 保持默认防误伤)
直插孔通过三重甄别(多层+全孔+焊环)的真直插,本身已贯通,属预期跳过;若怀疑误判看报告「疑似直插误判已按贴片处理」行与诊断明细(hole=孔径、layer=多层/顶/底),或临时关闭「直插孔跳过判定」
已有就近过孔同网络过孔已在扇出邻域内,避免重复;可调小「合并外扩」
无有效位置8 方向全部阻塞(0402 密集区最常见):确认回退小过孔已开启;或增大「阻塞外扩步数」、减小过孔/安全间距,或先整理该区域布线

若整板几乎无候选焊盘,通常是网表未导入(焊盘无网络)——预览报告的"候选电源/地焊盘"计数为 0 即此情况;控制台(扩展日志)有提取汇总可进一步定位。

License

Apache-2.0

开源 / Open Source

代码开源于 GitHub:https://github.com/liuem/LCEDA-pcb-autofanout

  • CI:push / PR 自动执行 lint + 10.8 万项离线测试并构建 .eext;打 v* 标签自动发布 Release 并附安装包
  • 面向使用者的完整文档见 docs/使用说明.md(嘉立创扩展商店页面同文)
  • Bug / 建议请提 GitHub Issue,附「诊断」菜单控制台输出([autofanout] 行)

Changelog

0.6.3 (2026-09-15)

  • 更换 logo 与商店横幅(审核意见):logo 改用 AI 生成的扁平插画风 PCB 焊盘图 (1024×1024 PNG);横幅换浅色调电路走线插画并叠加深色标题(1280×540 = 64:27 JPEG, 文字对比度 9.1:1)

0.6.2 (2026-09-15)

  • README 新增「功能演示」章节(上架审核要求):菜单入口、就近模式实战报告 (135 候选 / 130 打孔)、盘中孔模式实战报告(111 盘中孔)、设置面板共 5 张截图
  • 演示图以 ASCII 文件名入库(demo-*.png),兼容商店详情页渲染
  • docs/使用说明.md 同步嵌入演示图

0.6.1 (2026-09-14)

  • 扩展更名:ai-pcb-autofanout → lceda-pcb-autofanout(UUID 不变,已安装用户无感升级;安装包文件名同步更名)
  • 菜单移除「设置面板(兼容模式)」:图形设置面板已充分验证,向导式兼容 入口下线(settingsWizard 及其对话框封装代码一并移除);iframe 未注入存储 时的提示改为建议升级客户端
  • 设置面板开关控件修复:.row label 的 width:200px 覆盖了 .switch 的 38px,滑轨被拉成长条、与滑动圆点不匹配——改用更高优先级的 .row label.switch 选择器,开关恢复 38×20 胶囊轨道

0.6.0 (2026-09-14)

  • 直插脏孔三重甄别(修复"整板没有那么多直插,89 个贴片被误判为直插"): 真直插跳过须同时通过三条物理判据,任一不满足即按贴片照常打孔——
    • 多层判定:真直插焊盘层必须是 MULTI(12)(SDK 定义焊盘层仅 1/2/12, 通孔贯穿全板,单层铜皮上的孔数据必是脏数据)
    • 器件全孔共识:真直插件的全部焊盘都带孔;件内只有部分焊盘带孔(如 某批贴片电容单侧误带孔)按脏数据处理
    • 焊环完整:孔径 + 0.3mm ≤ 焊盘长边,孔塞不进焊盘的不可能是真直插
  • 盘中孔模式(设置面板开关,默认关):过孔直接打在焊盘中心,无需连线 (建议配合树脂塞孔/电镀填孔工艺);要求过孔整圆落在焊盘内(外径 ≤ 焊盘短边) 且中心通过避让校验,主过孔放不下自动试回退小过孔,仍不行自动回退就近打孔
  • 报告新增「疑似直插误判已按贴片处理:N 个焊盘(C114-1、…)」与 「其中 N 个为盘中孔(焊盘中心直放)」行
  • 诊断明细升级:输出原始层(多层/顶/底)、孔径 mm、疑似脏孔标记
  • 测试增至 108,651 项断言:新增脏孔五形态(单侧大孔/单侧小孔/全孔单层/ 多层大孔塞不进/混装定位脚)与盘中孔(中心直放/回退小过孔/板边回退就近/ 真直插仍跳过/写回无连线)场景

0.5.1 (2026-09-14)

  • 设置面板拨动即自动保存:修改任意输入/开关立即写入配置(此前需点「保存设置」, 只拨开关未保存导致配置未生效的坑已消除)
  • 直插孔跳过判定可关闭(设置面板「直插孔跳过判定」开关):部分封装孔数据异常会把 贴片电容误判为直插;关闭后全部电源/地焊盘参与打孔
  • 诊断菜单:「诊断:输出焊盘明细到控制台」——每个电源/地焊盘的尺寸/孔/阻焊/引脚数 与规划去向(打孔方向距离 / 跳过原因)逐行输出,可复制反馈定位问题
  • 合并跳过明细增加"距最近同网络过孔 X.XXmm"
  • DRC 提示区分「宽松模式已跳过」与「接口不可用」
  • 测试增至 75,673 项断言

0.5.0 (2026-09-14)

  • 宽松模式(设置面板开关):板子本身已有 DRC 违规时使用—— 忽略间距预检查(仅保留 ~2mil 防完全重叠)、跳过连线通道检查, 并自动跳过 DRC 后校验(预检查已放宽,DRC 必然新增违规,回滚无意义); 能打尽打,可能引入新的 DRC 违规
  • 直插判定金属化交叉校验:孔数组有效但焊盘明确标记非金属化(getState_Metallization() === false) 时按贴片处理——修复部分封装孔数据脏导致贴片电容被整体误判为直插
  • 控制台输出直插器件清单(如 C126、H5、C114…),便于核对是否真为直插电解/端子
  • 测试增至 75,670 项断言(宽松模式打孔/防重叠底线/DRC 自动跳过/金属化校验)

0.4.0 (2026-09-14)

修复"0402 等小封装整体打不上孔":

  • 回退小过孔:主过孔 8 方向全阻塞时,自动换小一号(默认 0.2/0.4mm)重试—— 0402 去耦电容密集区(上下有 IC 逃线、左右有相邻电容)常塞不下 0.6mm 过孔, 小过孔 + 6mil 间距往往能进;外径设 0 关闭。报告区分主/回退过孔数量
  • 安全间距默认 0.2 → 0.15mm(6mil,JLC 标准工艺):预检查本为近似值, 真实 DRC 后校验仍兜底
  • 设置面板(图形界面 + 兼容向导)新增回退过孔孔径/外径项
  • 测试增至 75,636 项断言:新增 0402 阵列 + 上下逃线场景(10 个中间焊盘回退 0.4mm、 2 个端头仍用主过孔、关闭回退后 blocked)

0.3.1 (2026-09-14)

修复"许多焊盘没打孔(通常同一封装整体没打)":

  • 直插判定收紧:仅当钻孔为数组且孔径 > 0(['ROUND', d]/['SLOT', d, l])才视为直插跳过; 部分封装数据的 SMT 焊盘会返回 []/['ROUND', 0]/字符串,此前会把整个封装误判为直插而全部跳过
  • 压板边焊盘不再整体跳过:焊盘中心在板外/板边(边沿连接器常见)时,仍向板内方向搜索打孔 (过孔位置本身有板边 margin 校验)
  • 阻焊扩展防脏数据:非数值/负值按 0 处理,异常大值钳位 50mil
  • 报告按器件汇总未打孔原因:如 U1:引脚超限×13;J2:直插孔×2,引脚超限提示可调大阈值
  • 提取阶段输出汇总日志(器件/焊盘/直插/阻焊/过孔/走线/板框)便于排查
  • 测试增至 37,195 项断言(新增 parsePad 直插/阻焊解析、压板边焊盘场景)

0.3.0 (2026-09-14)

  • 图形设置面板(iframe + 注入的 eda.sys_Storage,与 ai-pcb-autoplace 同款方案): 全部参数表单化(数字输入/开关/下拉),保存即写入共享存储、执行打孔时生效; 带范围钳位与回显、「恢复默认」按钮;iframe 未注入时提示改用兼容模式
  • 菜单拆分:「设置面板...」(图形界面)与「设置面板(兼容模式)」(原向导对话框)

0.2.0 (2026-09-14)

行为改进:

  • 间距规则内就近打孔:过孔边缘贴合焊盘边界——优先按阻焊开窗边缘(读取焊盘阻焊扩展,读不到回退焊盘铜皮尺寸)判定,可选额外余量 stub(默认 0 = 贴合就近)
  • 直插件引脚不打孔:带金属化孔的焊盘(getState_Hole 非空)本身就是通孔,自动跳过并在报告计数
  • 直线方向优先:方向搜索顺序改为 0/90/180/270° 优先(长轴方向最先),45° 斜向仅作后备

其他:

  • 设置面板新增「就近边界用阻焊层」开关;「伸出距离」改为「额外伸出余量」(0=贴合)
  • 测试增至 34,765 项断言,新增直插跳过 / 阻焊边界 / 直线优先 / 同层连线通道阻挡场景

0.1.0 (2026-09-14)

首个版本。

  • 电源/GND 网络自动识别(内置 GND/电压词族 + 自定义网络模式)
  • 焊盘 8 方向就近扇出过孔:板边/异网络焊盘/过孔/走线间距预检查,阻塞时逐档外扩
  • 焊盘→过孔连线宽度自适应,恒不超过焊盘尺寸
  • 过孔伸出距离(stub)可配置(默认 0.25mm)
  • 高引脚数器件忽略阈值(默认 32,BGA 保护)
  • 创建后 DRC 后校验,新增违规自动整体回滚
  • 同网络既有过孔合并去重
  • 预览模式 / 一键清理本插件创建的图元
  • 离线测试:合成板 34,101 项断言全部通过
暂无数据
暂无数据

评论

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

类型

PCB

关键词

ViaFanoutPowerGNDPCB

扩展信息

版本v0.6.3
发布者

liuem

发布时间2026-09-16 09:15:52
名称

lceda-pcb-autofanout

UUID

e4b41778209e47768b4f04e6aba93146

适用EDA版本:^3.2.0
报告

报告滥用

相关链接

主页:https://github.com/liuem/LCEDA-pcb-autofanout
反馈:https://github.com/liuem/LCEDA-pcb-autofanout/issues
仓库:https://github.com/liuem/LCEDA-pcb-autofanout
logo

政策条款

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

软件版本

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

解决方案

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

使用帮助

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

关于我们

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