Gerber X3
Bridging the Gap Between CAD & CAM
Gerber X3 is the 2020 version of the de facto standard data file format for printed circuit board (PCB) design data transfer.
With this version of the Gerber format the designer is now able to transfer the PCB layout data plus the BOM and CPL data in one simple and easily readable file format.
This X3 standard will include component data in the Gerber data.
Component location is geometrical data which includes centroid, outline, fiducial locations and the footprints and as such it fits naturally in a Gerber image file.
Combining bare board and component data in Gerber files allows a holistic review of the final board.
The workflow simplifies the transfer of component information from the CAD to the Assembly CAM system.
The advantage is that the data is in a single unified format that the CAM system can simply import, analyse, visualise and automatically generate the outputs for the various assembly equipment.
Thus, saving time and reducing costs.
As with the very first Gerber format, X3 is a simple human readable ASCII format. This allows engineers to easily detect and correct any anomaly quickly.
As always, this version is backwards compatible and users of older systems will be able to read Gerber X3 data but use only those features which are supported by their current system.
The Gerber X3 file contains a new set of data defined as the Component Layers (Top & Bottom).
Within this data set there are a set of new attributes dedicated to components where all the necessary information about each component on each layer can be defined.
Component Layers
The following sections detail the attributes that are used to define the components.
The coordinate system of the component layers as for all layers: a right-handed system when the PCB is viewed from the top.
Identifying a Component Layer
.FileFunction value |
Usage |
Component,L,(Top|Bot) |
L <'p'>Where <'p'> specifies the copper layer number to which the components described in this file are attached. |
An example, the component layers of a four-layer board.
%TF.FileFunction,Component,L1,Top*%
%TF.FileFunction,Component,L4,Bot*%
Component Properties
These are identified by the .AperFunction values and object attributes and can only be used in the Component layers.
.AperFunction value |
Usage |
ComponentMain |
Defines the Centroid of a component |
ComponentOutline, |
Defines the outline of the component. 4 different types of outlines are defined as: |
.C,<'refdes'> |
Identifies the component reference descriptor. <'refdes'>=<'field'> |
.CRot,<'decimal'> |
Defines the rotation angle of the component. |
CMfr,<'field'>> |
Manufacturer |
.CMPN,<'field'> |
Manufacturer part number |
.CVal,<'field'> |
Value (e.g. 220nF) |
.CMnt |
Component mount type (TH, SMD, Fiducial, Other) |
.CFtp,<'field'> |
Footprint name |
.CPgN,<'field'> |
Package name |
.CPgD,<'field'> |
Package description |
.CHgt |
Component height |
.CLbN,<'field'> |
Library name |
.CLbD,<'field'> |
Library description |
.CSup,<'SN'>,<'SPN'> |
<'SN'> is a field with the supplier name. <'SPN'> is a field with a supplier part name |
The Pin Locations
The pin locations are included in the component layer to define location and rotation of the components.
.AperFunction value |
Usage |
ComponentPin(Top|Bot) |
Defines the position of Pin 1 and/or any other Pins. |
Object attribute |
Usage |
.P,<'refdes'>,<'number'>[,<'function'>] |
Identifies the pin reference descriptor, pin number or name and optionally the pin function. <'refdes'>=<'field'> |
Example File
This is an example of a top component layer file.
It is assumed that the reader has a general knowledge of that Gerber format as only the new, component related, commands are annotated.
Commands |
Annotation |
%TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0- 190-g0fd48dd4f-dirty)*% |
|
%TF.CreationDate,2019-10-02T18:52:55+02:00*% | |
%TF.ProjectId,kit-dev-coldfirexilinx_ 5213,6b69742d-6465-4762-9d63- 6f6c64666972,2*% |
|
%TF.SameCoordinates,PX3e22018PY8d89728*% | |
%TF.FileFunction,Component,L1,Top*% | This file is the top component layer |
%TF.FilePolarity,Positive*% | |
%FSLAX46Y46*% | |
%MOMM*% | |
%LPD*% | |
G04 Aperture begin list* | |
%ADD10C,0.3*% | The aperture for the flash with the main component information |
%TA.AperFunction,ComponentOutline,Courtyard*% | |
%ADD11C,0.1*% | The aperture to draw the outline |
%TA.AperFunction,ComponentPin*% | |
%ADD12P,0.36X4X0.0*% | The aperture to flash the pin 1 location |
%ADD13C,0*% | The aperture for the other pin Locations |
%TD*% | |
G04 Aperture end list* | |
G04 Begin component info* | |
D10* | Select main component aperture |
%TO.C,R301*% | Attach reference descriptor R301 |
%TO.CFtp,R_0805_2012Metric*% | |
%TO.CVal,4K7*% | Attach value |
%TO.CMnt,SMD*% | Attach mount type |
%TO.CRot,-90*% | Attach rotation |
X218250000Y-73000000D03* | Flash at reference point |
D11* | Select outline aperture |
X219250000Y-71310000D02* | Draw outline |
X217250000Y-71310000D01* | Draw outline |
X217250000Y-74690000D01* | Draw outline |
X219250000Y-74690000D01* | Draw outline |
D12* | Select key pin aperture |
%TO.P,R301,1*% | Attach ref. description and pin number |
X218250000Y-72045000D03* | Flash at key pin location |
D13* | Select subsequent pin aperture |
%TO.P,R301,2*% | Attach pin 2 ident |
X218250000Y-73955000D03* | Flash at key pin location |
%TD*% | Clear attributes before next component |
G04 Next component* |