
开心钢网 / Happy Stencil
joycode60v1.5.0
一键将当前 PCB 的焊盘导出为可 3D 打印的钢网 STL:自动按耗材 (PLA/PETG/ABS/ASA/TPU/光敏树脂) 计算收缩补偿,可选 PCB 嵌入凹槽(PCB 卡进去不滑动),也支持自定义收缩百分比。
详情
更改日志
历史版本
评论
开心钢网 / Happy Stencil
joycode60详情
更改日志
历史版本
评论
开心钢网 / Happy Stencil
开心钢网是一个用于嘉立创 EDA 专业版的 PCB 钢网生成扩展。它可以读取当前 PCB 的焊盘和板框信息,一键导出适合 3D 打印的二进制 STL 模型,或者适合 刀切/激光切割的 1:1 精准 SVG 矢量路径文件。
截图与演示


功能
1. 三种工艺/设备支持(3D打印、刀切、激光切割)
- 分别提供专用的设置面板和导出流水线,通过子菜单可以独立进行配置和一键导出。
2. 🖨️ 3D 打印钢网 (STL 导出)
- 自动生成 STL:导出二进制 STL 模型,导入 Bambu Studio / Cura / PrusaSlicer 等切片软件后即可直接打印。
- 材料收缩补偿:内置 PLA、PETG、ABS、ASA、TPU、光敏树脂等经验收缩率,按比例等比放大钢网、焊盘开孔和嵌入凹槽。
- PCB 嵌入凹槽:自动读取板框并生成 PCB 卡入的定位凹槽,带有拔模脱模角(贴近锡面保持高精定位,凹槽口渐宽,涂锡后极易脱下)。
- 合并导出:支持 Top 和 Bottom 并排导出在同一 STL,一次打印出双面定位钢网。
3. 🔪 2D 刀切钢网 (SVG 导出 - 刻字机/Vinyl Cutters)
- 绝对 1:1 物理尺寸锁定:通过显式
mm(毫米)物理尺寸声明与 1:1viewBox映射技术,完全绕过各类切画软件(如 Cricut Design Space、Silhouette Studio、Inkscape)的 DPI 缩放陷阱。 - 拖刀最小开孔尺寸过滤:自动跳过宽或高小于设定值(默认
0.50mm)的微小开孔,防止物理刀头在急速拐弯时将 Mylar 胶片扯碎。 - 定位板框(虚线切割):自动在 Mylar 钢网上沿着 1:1 的 PCB 边缘切出虚线虚孔(
stroke-dasharray="2,2")。使用时,用户可直接透过虚孔看清 PCB 边界实现完美对准,同时保持钢网的整体张力。 - 边缘留白宽度:支持自定义四周留白边缘大小,方便粘胶带固定。
4. ⚡ 2D 激光切割钢网 (SVG 导出 - CO2/光纤/二极管激光)
- 切缝光斑(Kerf)缩孔补偿:激光由于光斑物理宽度,会将孔切大。通过内置
laser_apertureExpand(默认-0.05mm缩孔),精准补偿激光切割的烧蚀宽度,确保焊膏量 100% 精准。 - 微小孔径过滤:默认跳过低于
0.20mm的孔径,避免过热熔化粘连。 - 标准分层色控(Color Layers):导出符合 LightBurn / LaserGRBL 规范的三色标准图层:
- 黑色(
#000000):焊盘镂空区,识别为内部精细切线。 - 蓝色(
#0000FF):1:1 PCB 对准参考线,识别为低功率标刻/画线。 - 红色(
#FF0000):钢网外边框,识别为外部慢速截断切线。
- 黑色(
- 合并并排导出:顶层和底层自动以 10mm 间距、底层自适应镜像的形式并排合并到单张 SVG,方便一次激光切出两张钢网。
5. 💎 生产级焊盘图形处理 (通用于所有模式)
- 插件式焊盘不镂空:自动识别带钻孔的多层穿孔焊盘,默认不开孔(可设置切换为镂空),避免回流焊时过孔吸锡堵塞导致插针无法安装。
- 细间距优化 (0.4mm 喷嘴/QFN):
- 细焊盘自动缩孔:拉大塑料隔墙,防止连锡。
- 大焊盘(散热地等)自动开窗(Windowpane):分割为留桥开孔阵列,防浮高、利于排气。
- 细长焊盘交叉水滴优化:针对超高密排针或排线,交错、反向生成水滴形开孔(Teardrop),在打印/切割极限下强制留出物理隔墙,阻绝锡膏连桥。
使用方法
- 在嘉立创 EDA 专业版中打开 PCB 编辑器,打开需要生成钢网的工程。
- 进入顶部菜单:
开心钢网。 - 展开对应子菜单(
3D打印/刀切/激光切割),点击设置...配置相应参数(设置会被保存,之后可一键导出):- 3D 打印:配置耗材类型、单边扩孔量、PCB凹槽间隙、拔模脱模宽度。
- 刀切:配置刀头补偿、最小过滤孔径(默认
0.5mm)、外框留白。 - 激光切割:配置光斑切缝补偿(默认
-0.05mm缩孔)、最小孔径、外框留白。
- 点击
顶层/底层或合并顶层/底层。 - 扩展会自动计算并下载生成的
.stl或者是.svg文件。 - 将文件直接导入切片软件(Bambu Studio 等)或裁切软件(LightBurn, Cricut 等)中开始制作!
许可
MIT
更新日志
1.5.0
新增 (的大版本升级 🚀)
- 🔪 2D 刀切 (Drag-Knife) 钢网生成:新增 1:1 精准矢量 SVG 导出,支持配置刀头补偿、四周留边宽度、以及跳过极小微孔(
knife_minApertureSize)防扯碎胶片。 - ⚡ 2D 激光切割 (Laser Cutting) 钢网生成:支持切缝光斑(Kerf)缩孔补偿(
laser_apertureExpand),默认自动缩小 $-0.05\text{ mm}$ 以补偿激光融损,保证锡膏量 100% 精准。 - 🗺️ 1:1 绝对物理尺寸锁定:采用物理
mm画布单位声明和 1:1viewBox技术,彻底解决了裁切软件(如 LightBurn, Cricut, Inkscape)在导入 SVG 时常见的 DPI 缩放失真问题。 - 🎨 激光三色分层控制 (Color Layers):SVG 内置标准三色分层:黑色(焊盘切割)、蓝色(板框 1:1 指引虚线标刻)、红色(钢网最外层截断线),完美兼容 LightBurn 自动分层工艺分配。
- ✂️ 2D 顶底合并与并排镜像:SVG 模式的“合并顶/底”自动以 $10\text{ mm}$ 间距并排排版在单张 SVG 内,底层自动进行水平物理镜像,切出即用。
- 🎯 板框 1:1 视觉对准指引:在 SVG 钢网上绘制 PCB 精确边界线。激光模式下输出蓝色打标线,刀切模式下输出虚孔切割线,贴膜印刷时对位极其精准。
- 📂 独立子菜单体系:重构了立创顶部菜单,提供“3D打印”、“刀切”、“激光切割”三个独立子菜单分类,支持独立一键配置和一键高速导出。
1.4.6
修复
- 🚀 极速物理级板框提取引擎 (BBox Solver):针对旧版提取时容易因 Chromium 渲染多线程事件共享,造成多边形数据
getSource()缓存污染从而崩溃退化的 Bug 进行彻底重写。直接调用立创最底层、100% 由 C++ 运算的getPrimitivesBBox物理包围盒接口,彻底消除了供电板提取失败退化为直角大边框($42.4 \times 42.9\text{ mm}$)的顽固 Bug,100% 完美识别并还原标准的 $40.0 \times 40.0\text{ mm}$ (圆角 $2\text{ mm}$) 完美闭合实体板框。 - ⚡ 异步 Promise 架构自适应改造:将板框、折线和多边形解构管道全部重构为自适应异步
async/await链,完美支持新版 App 引擎中的异步 Promise 数据透传,防止多线程沙箱死锁崩溃。
改进
- 💎 庄周道长式极细焊盘菱形化 (Diamond Shape) 打印优化:针对 0.4 喷嘴的 FDM 3D 打印机特性(直角和极细圆开孔易打印变形、不易脱模、易堵孔),在细间距优化模式下,将小于阈值的极细方、圆焊盘自动重构为钝/锐角菱形(钻石)开孔。使打印喷嘴可作不顿挫的流畅单切线路径打印,大大增加打印良率,不仅下锡极畅、易涂锡脱模,更能实现极高强度的防连锡(Bridging)保护。
- 💧 交错反向水滴形 (Teardrop Shape) 细长焊盘开孔:结合菱形化开孔,对 QFN/DFN 等高密细长焊盘,由奇偶索引交错生成反向水滴形隔离。保证打印喷嘴在细间距塑料“隔墙”间有足够打印宽度,阻绝漏锡,极大提升 3D 打印钢网的实用精度。
1.3.4
改进
- 更新 README:添加了扩展的功能说明与运行截图。
- 规范扩展配置:修复
extension.json和package.json中的规范问题,以符合应用商店的发布要求。
1.2.24
改进
- 版本号统一管理:在
stencil.ts顶部从extension.json读取版本号 (const VERSION),所有 toast 消息、文件名生成、Console 日志都引用此变量。避免多处硬编码导致版本不一致。 - 增强 Console 调试日志:所有
[开心钢网]日志改用console.warn(立创EDA可能过滤 log 级别),显示板框 bbox、来源、凹槽模式状态、三角形数量等。
1.2.21
修复
- Non-manifold STL 修复:重写了 PCB 凹槽模式的 STL 生成逻辑。之前
addCap+addRingWall组合在圆角板框上产生 382 open edges 和 1 non-manifold edge。现在使用分层构建:顶面 cap + 凹槽底面 cap + 外侧面 + 凹槽内侧壁 + 凹槽顶面环形 cap + 焊盘孔内壁 + 底面环形 cap,确保所有面正确封闭。 - 凹槽尺寸修复:
offsetPolygon从角度平分线法改为边法线偏移法。旧方法在圆角处会产生严重失真(40mm 板框偏移 3mm 后变成 35.6mm)。新方法使用边法线平移 + 线段交点计算,精确保持偏移量。 - 凹槽封闭修复:新增
addAnnularCap函数生成环形 cap(外轮廓 - 内轮廓),确保凹槽区域与外框之间正确封闭。 - 版本号统一:
extension.json/locales/extensionJson/en.json/locales/extensionJson/zh-Hans.json/stencil.ts全部同步到 1.2.21。之前 en.json 菜单栏显示 v1.2.11。
1.2.18
修复
- LAST_DIAG 计数器修复:
polyCnt/arcCnt/regionCnt之前从未被赋值(始终为 0),导致文件名中统计信息p0lN_a0r0不准确。现改为独立计数:polyCnt记录 Polyline 数量、lineCnt记录 Line 数量、arcCnt记录 Arc 数量、regionCnt记录 Region 数量。 - 新增 Line 图元支持:板框可能由
pcb_PrimitiveLine图元绘制,现通过getState_Line()读取线段端点坐标并纳入 bbox 计算。 - 版本号同步到 1.2.18:
extension.json/ 中英文extensionJson/*.json/stencil.ts全部更新。
1.2.17
修复
- Arc 弧线段采样修复:
polygonSourceToPoints中 ARC/CARC 图元之前使用线性插值(直线连接起点终点),导致带圆弧的焊盘/板框生成的 STL 形状错误。现改为基于圆弧几何的正确采样:通过起点、终点和扫角计算圆心和半径,沿圆弧角度均匀采样。 - 板框层 Arc 图元支持:
getBoardOutlineBBox中板框识别现在包含pcb_PrimitiveArc,当板框由 Arc 图元绘制时也能正确识别。Arc 图元通过getState_Arc()获取弧参数(圆心、半径、起止角)计算 bbox。 - 版本号同步到 1.2.17:
extension.json/ 中英文extensionJson/*.json/stencil.ts全部更新。
1.2.11
修复
- 关键修复:之前几个版本一直按"图层联合 bbox 最大"挑板框,但实测当层上有大量碎片图元(如 705 条短 polyline)时,它们联合后的 bbox 仍然只有几个 mm,根本不是板框。本版本改为:扫遍所有图元,对每个图元单独计算 bbox,挑「单个 bbox 面积最大」且宽高都 ≥ 30 mm 的那一个图元作为板框 —— 这是板框作为单个闭合大图元的本质特征,与所在图层完全无关。
- 同时扩展图元类型覆盖:
Polyline/Line/Arc/Region/Fill/Pour都参与候选。 - 当未找到合规板框时,console 输出 top-5 最大候选(含层号、类型、尺寸),方便快速定位实际板框图元。
- 诊断对话框 / 文件名同步显示选中板框的类型 (poly/line/arc/region)。
- 版本号同步到 1.2.11:
extension.json/ 中英文extensionJson/*.json/stencil.ts全部更新。
1.2.10
修复
- 进一步修复"焊盘和板框完全脱离"的问题:经实测某些工程的板框并非画在
BOARD_OUTLINE(11)/MECHANICAL(14)/DOCUMENT(13)任何一个上,而是在CUSTOM_*自定义层(如 71~100)。本版本:- 调用
eda.pcb_Layer.getAllLayers()动态枚举工程中实际存在的所有图层; - 候选板框层扩展到
BOARD_OUTLINE(11)、MULTI(12)、DOCUMENT(13)、MECHANICAL(14)、DRILL_DRAWING(56)、STIFFENER(58/59)、所有CUSTOM_*(71-100)、SUBSTRATE(101); - 仍然找不到时,使用
eda.pcb_Document.getPrimitivesInRegion()在超大区域内一次性抓取所有图元,按图元类型重新计算 bbox 作为最终兜底; - 文件名/Toast 现额外显示扫描到的所有非空层号,便于排查。
- 调用
- 同步
extension.json和两个locales/extensionJson/*.json版本号到 1.2.10,菜单栏 and "关于"对话框将一并显示新版本。
1.2.9
修复
- 修复焊盘与板框完全脱离的问题:当板框图元不在标准
BOARD_OUTLINE(11)层时(如绘制在MECHANICAL(14)或DOCUMENT(13)层),会自动探测候选层并选择有效面积最大的层。 - 移除了多余的
getState_Layer()二次过滤(getAll(undefined, layer)已按层过滤),避免某些工程返回的层值因类型差异被误判而丢弃。 - 新增退化保护:当读到的板框 bbox 极小(< 1 mm)或与焊盘 bbox 严重错位时,回退到焊盘 bbox + 余量,保证焊盘与板框层不再脱离。
- 文件名 / Toast 现包含使用的层号、各图元数量以及是否回退的诊断信息,便于排查。
1.2.8
变更
- 按扩展广场要求,在发布包中保留
README.md和CHANGELOG.md。 - 将
README.md改为面向用户的功能说明和使用方法。 - 将
CHANGELOG.md改为开心钢网扩展更新记录。 - 继续保持发布包压缩,减少非运行必要文件。
1.2.7
变更
- 开启构建压缩,降低发布包中 JavaScript 的可读性和体积。
- 减少发布包中的非运行必要文件。
- 移除关于源码路径的提示文案。
1.2.6
修复
- 修复板框层圆角矩形读取问题。
- 修复
R类型板框源数据的 bbox 计算方向问题。 - 优化生成文件名中的诊断信息,便于核对板框尺寸。
1.2.5
修复
- 修正圆角矩形板框 bbox 尺寸识别。
- 增加板框诊断信息输出。
1.2.4
变更
- 增加板框 polyline 诊断信息。
- 优化板框读取失败时的提示。
1.2.0
新增
- 支持 PCB 嵌入凹槽。
- 支持常见 3D 打印材料收缩补偿。
- 支持焊盘开孔单边扩大量设置。
1.0.0
新增
- 初始版本。
- 支持从当前 PCB 导出顶层和底层钢网 STL。

暂无数据
类型
PCB
关键词
PCBStencil钢网3D PrintSMT
扩展信息
| 版本 | v1.5.0 |
| 发布者 | hcwang |
| 发布时间 | 2026-06-29 20:29:16 |
| 名称 | happy-stencil |
| UUID | f4b8b6b43bcd413cadb9752f15eefc1a |
| 适用EDA版本: | ^3.0.0 |
| 报告 | 报告滥用 |
评论