Go to file
pszsh 968fd5a6c4 Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
cmd/genicon Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
frontend Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
static Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
.gitignore Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
.gitmodules Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
LICENSE Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
README.md Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
app.go Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
build-windows.bat Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
build-windows.sh Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
build.sh Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
debug.sh Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
debug_off.go Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
debug_on.go Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
drill.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
enclosure.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
former.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
gbrjob.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
gerber.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
go.mod Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
go.sum Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
instance.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
main.go Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
scad.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
session.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
stencil_process.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
stl.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
storage.go Critical bug fixes for the conditions of initial workspace setup and additions to the build scripts which now should fetch all the build dependencies automatically on all platforms. 2026-02-26 16:27:59 -08:00
svg.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
svg_render_darwin.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
svg_render_other.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
util.go Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00
wails.json Initial commit: Former — PCB Stencil & Enclosure Generator 2026-02-26 15:27:05 -08:00

README.md

Former

A desktop application for generating 3D-printable solder paste stencils and snap-fit enclosures from KiCad/Gerber files.

Former

Features

Stencil Generation

  • Parses RS-274X Gerber solder paste layers
  • Supports standard apertures (Circle, Rectangle, Obround) and Aperture Macros with rotation
  • Generates optimized STL meshes for 3D printing
  • Automatic cropping to PCB bounds

Enclosure Generation

  • Generates snap-fit enclosures with lids and trays from KiCad .gbrjob projects
  • Native OpenSCAD .scad export for parametric editing
  • Interactive 3D layer viewer with per-layer colorization (KiCad color scheme)
  • Visual cutout placement on any surface (top, bottom, sides) with live 3D preview
  • Automatic USB port detection and cutout alignment from F.Fab/B.Fab layers
  • Tray clip system with vertical relief slots
  • Dado/engrave mode for surface text and logos

Desktop App

  • Native macOS and Windows application (Wails v2)
  • Project saving and loading with persistent cutout state
  • CLI mode for scripted/batch workflows

Install

Requirements

macOS

  1. Install Homebrew (if not already installed)
  2. Install dependencies:
    brew install go node
    xcode-select --install          # Xcode Command Line Tools
    go install github.com/wailsapp/wails/v2/cmd/wails@latest
    

Windows

  1. Install dependencies (using winget, built into Windows 10/11):
    winget install GoLang.Go
    winget install OpenJS.NodeJS.LTS
    go install github.com/wailsapp/wails/v2/cmd/wails@latest
    
    Or download manually: Go 1.21+, Node.js 18+
  2. WebView2 Runtime — required by Wails. Pre-installed on most Windows 10/11 machines with Edge. If missing, download from Microsoft.

Version Summary

Tool Minimum Install docs
Go 1.21+ https://go.dev/dl/
Node.js 18+ https://nodejs.org/
Wails CLI v2 https://wails.io/docs/gettingstarted/installation

Build

The build scripts check for missing dependencies and print install instructions if anything is missing.

macOS:

./build.sh

Windows (native):

build-windows.bat

Cross-compile for Windows (from macOS/Linux):

./build-windows.sh

The built application will be at build/bin/Former.app (macOS) or build/bin/Former.exe (Windows).

CLI Usage

Former can also run headless from the command line:

./Former [options] <paste_layer.gbr> [outline.gbr]

Options

Flag Default Description
--height 0.16 Stencil height in mm
--wall-height 2.0 Wall height in mm
--wall-thickness 1.0 Wall thickness in mm
--dpi 1016 Rendering DPI
--keep-png false Save intermediate PNG

Example

./Former --height=0.16 --keep-png my_board-F_Paste.gbr my_board-Edge_Cuts.gbr

3D Printing Tips

For fine-pitch SMD stencils (TSSOP, 0402, etc.):

  • Nozzle: 0.2mm recommended
  • Layer height: 0.16mm total (0.10mm first layer + 0.06mm second)
  • Build surface: Smooth PEI sheet for flat stencil bottom

Acknowledgments

Former began as a fork of pcb-to-stencil by Nikolai Danylchyk, a Go tool for converting Gerber paste layers to STL stencils. The original Gerber parser and STL mesh generation formed the foundation that Former builds upon.

License

MIT License — see LICENSE for details.