# Gerber-Format

Das Gerber-Format ist eine Standard-Dateistruktur im ASCII-Format, die den Datenaustausch zwischen CAD (Entwicklung) und CAM (Produktion) ermöglicht. Es wird vor allem im Bereich von elektronischen CAD-Programmen (EDA – Electronic Design Automation) zur Ausgabe der Layoutdaten bei Leiterplatten verwendet.
Entwickelt wurde es im Jahr 1980 von dem Unternehmen Gerber Scientific zur Ansteuerung von dessen Fotoplottern. Es wurde zum Quasi-Standard für Leiterplattendaten. Gerber Scientific wurde 1998 von Barco ETS übernommen, die den RS-274X Format User’s Guide veröffentlichten. Dieses Extended Gerber oder RS-274X ist der heutige Standard.
Alle gängigen CAD-Programme erlauben einen Export des Designs im Extended-Gerber-Format und alle gängigen CAM-Programme einen Import. Das alte Standard Gerber (RS-274-D) wird heute kaum mehr verwendet. Verschiedene Anbieter bieten auch Extended Gerber-Viewer an.
Nach verschiedenen Umstrukturierungen wird das Gerber-Format seit 2007 von Ucamco NV gepflegt. Ucamco veröffentlicht von Zeit zu Zeit überarbeitete Revisionen der Gerber-Formatspezifikation; die aktuelle Revision ist 2020.09 vom Oktober 2020.
Bis jetzt gibt es vier größere Entwicklungsstufen im Gerber-Format:
* Gerber RS-274-D (Obsolet)
* Gerber RS-274-X
* Gerber X2, eine kompatible Erweiterung zu RS-274-X
* Gerber X3, ergänzt Gerber X2 um Bestückungsattribute
Zwecks eindeutiger Übermittlung von Leiterplatten-Metadaten (z. B. Maskenfarbe, Material, IPC-Norm usw.) kann eine Datei im Gerber Job Format verwendet werden. Hierzu stellt Ucamco die Formatbeschreibung und einen freien Editor zur Verfügung.

## Aufbau

Jede Gerberdatei enthält immer nur eine Schicht (fachsprachlich „Layer“). Besteht eine Leiterplatte aus mehreren Schichten, z. B. zwei Layern für die Abbildung der elektrischen Verbindungen in Kupfer, zwei Layern für den Lötstopplack und einem Layer für den Textaufdruck auf der Leiterplatte, sind dafür in Summe fünf verschiedene Gerberdateien notwendig.

### Struktur

Die einzelnen Elemente (Leiterbahnen, Pads usw.) einer Leiterplatte werden mit x-y-Koordinaten positioniert. Die Koordinaten können in absoluten oder inkrementalen Werten angegeben sein. Als Einheiten sind mm oder Inch möglich. Die Koordinaten werden in ganzen Zahlen angegeben, für feinere Strukturen muss eine Skalierung angegeben werden. Führende oder angehängte Nullen können unterdrückt werden, um Speicherplatz zu sparen. Die grundsätzliche Struktur eines Gerberfiles ist:

### D-Code-Liste

Die Wahl der Steuerfunktion und des Werkzeugs erfolgt über die D-Code-Liste (auch Blendentabelle genannt). Die D-Code-Liste beschreibt die in einem Gerber-File eingesetzten grafischen Werkzeuge (Kreise, Kreisringe, Rechtecke). Sie beschreibt die Zuordnung aller in den Gerberdaten vorhandenen D-Codes zu einer geometrischen Blendenform und einer mechanischen Blendengröße. D1 bis D3 sind reservierte Codes; sie bezeichnen keine Blende, sondern das Ein- bzw. Ausschalten der Lichtquelle des Fotoplotters. Dabei sind:
* D1: ziehe eine Linie mit eingeschaltetem Licht. Achtung: das bedeutet nicht einfach „Licht an“, sondern vielmehr „ziehe eine Linie“, was einen wichtigen Unterschied darstellt.
* D2: Lichtquelle aus
* D3: Lichtimpuls (Flash)

## RS-274-D Standard Gerber

Standard Gerber ist ersetzt worden durch Extended Gerber RS-274X. Es beschreibt eine Teilmenge der Electronic Industries Association RS-274-D Specification, ein Format für die Steuerung von NC-Maschinen in vielen Industriebereichen. Der Ausdruck RS-274-D wird oft falsch verwendet (ohne den „Gerber“-Zusatz), um auf die Gerber-Teilmenge zu verweisen statt auf das Original RS-274-D. Standard-Gerber wird verwendet, um Vektor-Photoplotter zu steuern, welche tatsächlich 2D NC-Maschinen sind. Es ist ein einfaches ASCII-Format, bestehend aus Kommandos und X- und Y-Koordinaten. Ein Beispiel für eine Gerber RS-274-D-Datei:
RS-274-D wurde in den 1960er und 70ern entworfen zur Steuerung numerischer Maschinen wie Vektor-Photoplottern. Diese wurden mittlerweile von Raster-Photoplottern abgelöst. Eine RS-274-D-Datei ist nicht eine Bildbeschreibungsdatei an sich. Sie enthält keine Einheit oder Blenden. Das sind Standardformen, ähnlich wie ein Font für Textverarbeitung, und sollten manuell vom Plotterbediener gesetzt werden. Sie wurden in eine unformatierte ASCII-Datei geschrieben, Blendentabelle oder Aperturetabelle genannt. Der Bediener bestückte daraufhin eine kreisförmige Scheibe mit Öffnungen, beschrieben wie in der Tabelle, welche während der Belichtung des Films in den Lichtstrahl gedreht wurden. Es gibt keinen Standard für diese Tabellen, somit hat jede ihre eigene Formatierung.
Um Formen darzustellen, die nicht mit der beschränkten Blendenmenge zu beschreiben sind, wird das Ausmalen (vector-fill) dieser Form verwendet. Standard-Gerber ist gut geeignet, um die beschränkten Möglichkeiten auszunutzen, über die ein vektororientierter Photoplotter verfügte. Es wurde für eine manuelle Arbeitsweise konzipiert und ist somit nicht geeignet für einen komplett automatisierten Datentransfer zwischen Leiterplattendesigner und -hersteller.
Der vollständige Dateisatz für die Beschreibung einer Leiterplatte besteht aus den Dateien der einzelnen Lagen, einer oder mehrerer Dateien mit einer D-Code-Liste und einer Datei, die den Lagenaufbau beschreibt.

## RS-274X Extended Gerber

Das RS-274X Gerber-Format, auch bekannt als Extended Gerber oder X-Gerber, ist ein 2D Bi-Level vektororientiertes Bildbeschreibungsformat. Es ist eine Erweiterung des RS-274-D Standard-Gerber-Formates, das wiederum eine Teilmenge des EIA RS-274-D-Formates ist.
Es ist in ASCII-Text geschrieben und besteht aus einer Reihe von Kommandos und Koordinaten. Die Grundfunktionen sind „Linie zeichnen“ (Draw) und „Punkt zeichnen“ (Flash) mit vordefinierten Formen an eine bestimmte Position und das Füllen einer Kontur. Positive und negative Objekte können kombiniert werden.
Ein Beispiel für eine RS-274X-Datei:
Eine RS-274X-Datei enthält die komplette eindeutige Beschreibung einer Leiterplattenlage. Es werden keine zusätzlichen Dateien benötigt. Blenden und Operatoren sind enthalten, Flächen können spezifiziert werden, ohne gefüllt werden zu müssen, wie in RS-274-D. Da sie automatisch verarbeitet werden kann, ist sie gut geeignet für einen sicheren Datentransfer und zuverlässige und automatisierte Arbeitsabläufe.

### Benutzung

Gerber-Dateien werden normalerweise von Leiterplattenlayout-, Electronic Design Automation (EDA) oder PCB CAD-Software geschrieben. Diese Dateien werden zu den Leiterplattenherstellern geschickt, wo sie in einen CAM-System eingelesen werden, um Daten für jeden Produktionsschritt zu erzeugen. Sie werden auch für gebohrte Löcher verwendet, welche als Drill-Lage gesehen werden können; normalerweise wird aber ein Bohrformat wie Excellon verwendet. Gerber-Dateien werden auch zur Ansteuerung von Prüfmaschinen verwendet, sowie zur automatischen optischen Inspektion.
Das RS-274X-Format beschreibt nicht, welche Lage dargestellt wird. Deshalb sollte die Lagenfunktion in dem Dateinamen enthalten sein, das Format der Dateierweiterung ist .gbr. Manche Entflechter benutzen kryptische Dateinamen, welche in einer separaten Datei dokumentiert werden, oder missbrauchen die Dateierweiterung, z. B. .ls für die Lötseite.

### Zusätzliche Daten

Eine RS-274X-Datei beschreibt u. a. eine Kupferlage oder eine Maske. Leiterplattenherstellung und -prüfung benötigen aber noch mehr Informationen. RS-274X kann Bohrdaten darstellen, meistens sind diese aber spezifiziert im IPC-NC-349- oder Excellon-Format. RS-274X kann keine Netzliste enthalten; wenn benötigt, wird diese meist in IPC-D-356 dargestellt. Lagennamen und Materialaufbau werden normalerweise in Textdateien oder Zeichnungen mitgeliefert. Jedoch empfiehlt Ucamco dafür die Benutzung eines Teil des IPC-2581. Normalerweise werden alle Dateien in einem Zip-Archiv zusammengefasst. Dieses wird dann zum Leiterplattenhersteller geschickt.

### Gerber-Dateierweiterungen

Eine Gerber-Datei enthält zum Beispiel eine Kupferlage, Maske oder Bestückungsdruck. Somit werden für eine Leiterplatte mehrere Gerber-Dateien benötigt. Es gibt keine Namenskonvention für diese Dateien, jedoch ist die bevorzugte Dateierweiterung .gbr. Der Dateiname kann die Funktion enthalten, zum Beispiel Lage1.gbr oder Maske-top.gbr. Die Erweiterung .gbx wird zusätzlich für Gerber RS-274X (Extended Gerber) verwendet.
Aus historischen Gründen (DOS, 8.3-Format) werden in manchen CAD-Paketen (Altium/Protel) die Dateierweiterungen als Funktion verwendet. Somit ergeben sich über 50 verschiedene Erweiterungen. Eine Liste findet man bei Altium. Heutige Betriebssysteme weisen einer Erweiterung meist einen Dateityp zu. Dieser Mechanismus funktioniert hier aber nicht.

## Gerber X2

In der Revision J4 sind neue Befehle für die Verwendung von Attributen eingeführt worden. Die Attribute können sich auf Dateiebene, Blendenebene oder Objektebene beziehen.
Es gibt unter anderem vordefinierte Attribute für:
* Lagenposition innerhalb des Aufbaus der Leiterplatte: z. B. „Soldermask on Top“.
* Funktion der einzelne Objekte und Blenden: z. B. „Kupferpad für SMD Bauteil“
* Netzliste und Bauteil-Information
Die komplette Liste mit Attributen ist in der frei verfügbaren Spezifikation beschrieben und es gibt eine Anleitung zur Verwendung.

## Gerber Viewer

Aufgrund des textlesbaren Dateiformat existiert eine Vielzahl an Viewern:
* KiCAD: Das Open-Source-CAD-Programm (Windows, Linux) enthält auch einen dedizierten Gerber Viewer.
* Keysight ADS: Pre-Production Editor
* CAMtastic
* Diverse Online-Viewer