|
|
||
|---|---|---|
| cmd/genicon | ||
| frontend | ||
| static | ||
| .gitignore | ||
| .gitmodules | ||
| LICENSE | ||
| README.md | ||
| app.go | ||
| build-windows.bat | ||
| build-windows.sh | ||
| build.sh | ||
| debug.sh | ||
| debug_off.go | ||
| debug_on.go | ||
| drill.go | ||
| enclosure.go | ||
| former.go | ||
| gbrjob.go | ||
| gerber.go | ||
| go.mod | ||
| go.sum | ||
| instance.go | ||
| main.go | ||
| scad.go | ||
| session.go | ||
| stencil_process.go | ||
| stl.go | ||
| storage.go | ||
| svg.go | ||
| svg_render_darwin.go | ||
| svg_render_other.go | ||
| util.go | ||
| wails.json | ||
README.md
Former
A desktop application for generating 3D-printable solder paste stencils and snap-fit enclosures from KiCad/Gerber files.
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
.gbrjobprojects - Native OpenSCAD
.scadexport 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
- Install Homebrew (if not already installed)
- Install dependencies:
brew install go node xcode-select --install # Xcode Command Line Tools go install github.com/wailsapp/wails/v2/cmd/wails@latest
Windows
- Install dependencies (using winget, built into Windows 10/11):
Or download manually: Go 1.21+, Node.js 18+winget install GoLang.Go winget install OpenJS.NodeJS.LTS go install github.com/wailsapp/wails/v2/cmd/wails@latest - 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.
