|
|
||
|---|---|---|
| cmd/genicon | ||
| frontend | ||
| static | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| app.go | ||
| build.sh | ||
| 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
Gerber Solder Paste Layer to Solder Stencil Converter
A Go tool to convert Gerber files (specifically solder paste layers) into 3D printable STL stencils.
Features
- Parses standard RS-274X Gerber files.
- Supports standard apertures (Circle, Rectangle, Obround).
- Supports Aperture Macros (AM) with rotation (e.g., rounded rectangles).
- Automatically crops the output to the PCB bounds.
- Generates a 3D STL mesh optimized for 3D printing.
- Enclosure Generation: Automatically generates a snap-fit enclosure and tray based on the PCB outline.
- Native OpenSCAD Support: Exports native
.scadscripts for parametric editing and customization. - Smart Cutouts: Interactive side-cutout placement with automatic USB port alignment.
- Tray Snap System: Robust tray clips with vertical relief slots for secure enclosure latching.
Usage
Run the tool using go run:
go run main.go gerber.go [options] <path_to_gerber_file> [optional_board_outline_file]
Options
--height: Stencil height in mm (default: 0.16mm).--wall-height: Wall height mm (default: 2.0mm).--wall-thickness: Wall thickness in mm (default: 1mm).--keep-png: Save the intermediate PNG image used for mesh generation (useful for debugging).-server: Start the web interface server.-port: Port to run the server on (default: 8080).
Example
go run main.go gerber.go -height=0.16 -keep-png my_board_paste_top.gbr my_board_outline.gbr
This will generate my_board_paste_top.stl in the same directory.
Enclosure Generation
To generate an enclosure, use the web interface. Upload a .gbrjob file and the associated Gerber layers. The tool will auto-discover the board thickness and outline.
- Upload: Provide the Gerber job and layout files.
- Configure: Adjust wall thickness, clearance, and mounting hole parameters in the UI.
- Preview: Use the interactive preview to place and align side cutouts for connectors.
- Export: Generate STLs or OpenSCAD scripts for both the enclosure top and the tray.
Web Interface
To start the web interface:
go run main.go gerber.go -server
Then open http://localhost:8080 in your browser. You can upload files and configure settings via the UI.
3D Printing Recommendations
For optimal results with small SMD packages (like TSSOP, 0402, etc.), use the following 3D print settings:
- Nozzle Size: 0.2mm (Highly recommended for sharp corners and fine apertures).
- Layer Height: 0.16mm total height.
- First Layer: 0.10mm
- Second Layer: 0.06mm
- Build Surface: Smooth PEI sheet (Ensures the bottom of the stencil is perfectly flat for good PCB adhesion).
These settings assume you run the tool with -height=0.16 (the default).
How it Works
- Parsing: The tool reads the Gerber file and interprets the drawing commands (flashes and draws). For enclosures, it parses the
.gbrjobto identify board layers. - Rendering: It renders the PCB outline and layers into a high-resolution internal image.
- Path Extraction: Board edges are traced and simplified to generate 2.5D geometry.
- Meshing: It converts the image into a 3D mesh (STL) or generates CSG primitives (SCAD) using the board topology.
- Export: The resulting files are saved for 3D printing or further CAD refinement.
License
This project is licensed under the MIT License - see the LICENSE file for details.