Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
bdcd7ef8dThis file is pinned to the selected release. Download the original to open it in your design tool.
# GerberTools
This repository contains a suite of C# tools for loading, editing, creating, panelizing, and pre-rendering sets of Gerber files. These tools are designed to facilitate PCB production workflows, particularly for panelization and format conversion.
## Main Applications
### GerberPanelizer
**Purpose:** The primary GUI application for creating PCB panels. It allows you to import multiple board designs, arrange them (manually or automatically), add break-tabs (mousebites), and export the merged Gerber files.
**Usage:** Launch `GerberPanelizer.exe`. No command line arguments are required.
### AutoPanelBuilder
**Purpose:** A command-line version of the panelizer for automated workflows.
**Usage:**
```
AutoPanelBuilder.exe [--settings {file}] [--files {filewithfolders}] [--dumpsample] output_directory
```
### GerberViewer
**Purpose:** A simple GUI application for viewing Gerber files.
**Usage:**
```
GerberViewer.exe [file1] [file2] ...
```
## Command Line Utilities
### File Conversion
#### GerberToImage
**Purpose:** Renders Gerber files to high-resolution PNG images.
**Usage:**
```
GerberToImage <files> [--dpi N] [--noxray] [--nopcb] [--silk color] [--trace color] [--copper color] [--mask color]
```
#### GerberToDxf
**Purpose:** Converts Gerber files to DXF format (AutoCAD).
**Usage:**
```
GerberToDxf <infile> <outfile>
```
#### GerberToOutline
**Purpose:** Extracts the outline from a Gerber file and exports it (typically to SVG).
**Usage:**
```
GerberToOutline.exe <infile> <outfile>
```
### File Manipulation
#### GerberCombiner
**Purpose:** Combines multiple Gerber or Excellon files into a single file.
**Usage:**
```
GerberCombiner <outputfile> <inputfile1> <inputfile2> ...
```
#### GerberMover
**Purpose:** Applies translation (move) and rotation to a Gerber file.
**Usage:**
```
GerberMover <inputfile> <outputfile> <X> <Y> <CX> <CY> <Angle>
```
#### GerberClipper
**Purpose:** Clips a subject Gerber file using a polygon defined in an outline Gerber file.
**Usage:**
```
GerberClipper.exe <outlinegerber> <subject> <outputfile>
```
#### GerberSubtract
**Purpose:** Subtracts one Gerber layer from another. **Experimental.**
**Usage:**
```
GerberSubtract <sourcefile> <subtractfile> <outputfile>
```
#### GerberSplitter
**Purpose:** Splits a Gerber file into slices based on a "slice file".
**Usage:**
```
GerberSplitter <slicefile> <gerberfile1> <gerberfile2> ...
```
#### GerberSanitize
**Purpose:** Reads Gerber files and writes out a "sanitized" version, fixing common formatting issues.
**Usage:**
```
GerberSanitize <file1> <file2> ...
```
### Analysis & Verification
#### GerberAnalyse
**Purpose:** Analyzes Gerber files or Zip archives to report board dimensions, drill counts, and layer types.
**Usage:**
```
GerberAnalyse <inputfile_or_folder>
```
## Building
**Visual Studio:** Open `GerberProjects/GerberProjects.sln` and build.
**Dependencies:** Ensure NuGet packages are restored.
**Linux/Mono:** The tools are standard C# and generally compatible with Mono. Run `./build.sh`. Dependencies should be automatically fetched.
## License
See the LICENSE file for details.