PCB Matrix Format
User Reference
ADD_OBJECT array

MATRIX Array Level: 2

The ADD_OBJECT array allows users to add objects. Both CELL and UNITS are required for each ADD_OBJECT array.

Note
Check out using Dynamic Layer Types, because they allow you to assign a layer type instead of implicitly defining each specific layer name. Dynamic layer types may be substituted anywhere in the matrix file where explicit layer names are used.
Fields in the ADD_OBJECT array
Description
JOB The name of the Job to add objects. If the cell is not defined it will be created. Required. Dynamic Job References are also supported.
Note: If you wish to edit the active cell, use JOB=@ACTIVE

Example:
JOB=MyBoard1Panel
UNITS=VALUE

Units to use for this ADD_OBJECT array only. Choose from: mil mm cm inch um (default: mm)

CIRCLE=VALUE

Add a Circle using Center, OD, and optional ID.

CIRCLE=LAYER,X,Y,OD,ID

LAYER name. Dynamic Layer Types are also supported.
X, Y are the Circle Center coordinate.
OD is the Circle Outer diameter
ID is the Circle inside diameter. This is optional, and the default is 0.

Example:
CIRCLE=mylayer,0.25,0.25,0.1,0.05
CIRCLE=[top],0.25,0.25,0.1,0.05
CIRCLE=[Top+Bottom],0.25,0.45,0.1,0
CIRCLE=[All Internal],0.65,0.25,0.2

RECTANGLE=VALUE

Add a Rectangle using Center, Width, and Height.

RECTANGLE=LAYER,X,Y,WIDTH,HEIGHT,CORNER RADIUS,ROTATE

LAYER name. Dynamic Layer Types are also supported.
X, Y are the Rectangle Center coordinate.
WIDTH is the Rectangle Width (horizontal)
HEIGHT is the Rectangle Height (vertical)
CORNER RADIUS. Radius to use at corners to appear as a rounded rectangle. This is optional, and the default is 0.
ROTATE is the angle to Rotate the rectangle. This is optional and the default is 0.

Example:
RECTANGLE=mylayer,0.25,0.25,0.1,0.05

RECTANGLE2PT=VALUE

Add a Rectangle using 2 points.

RECTANGLE2PT=LAYER,X1,Y1,X2,Y2

LAYER name. Dynamic Layer Types are also supported.
X1, Y1 are the Rectangle corner coordinate.
X2, Y2 are the Rectangle opposite corner coordinate.

Example:
RECTANGLE2PT=mylayer,0.25,0.25,1,2

ARC=VALUE

Add an ARC using Start, End, and Center points.

ARC=LAYER, SX, SY, EX,EY,CX,CY,COUNTER-CLOCKWISE DIRECTION,LINEWIDTH

LAYER name. Dynamic Layer Types are also supported.
SX, SY are the Arc start coordinate.
EX, EY are the Arc end coordinate.
CX, CY are the Arc center coordinate.
COUNTER-CLOCKWISE DIRECTION is Y for Counter-Clockwise, or N for Clockwise.
LINEWIDTH is the line width for the Arc

Example:
ARC=mylayer,1,0,0,1,0,0,Y,0.1

TEXT=VALUE

Add Text using Insert Point, Height, Angle, and Mirror. If TEXTALIGN or TEXTSTYLE is defined they will be used.

TEXT=LAYER,X,Y,HEIGHT,ANGLE,MIRROR,TEXT STRING

LAYER name. Dynamic Layer Types are also supported.
X, Y are the Text insert coordinate.
HEIGHT is the Text height.
ANGLE is the Text rotation.
MIRROR is Text mirror in horizontal direction. Use True for mirror or False for none. YES or NO is also accepted.
TEXT STRING is the message you wish to create.

Example:
TEXTSTYLE=arial.fnt
TEXT=top,8,0.45,0.2,0,FALSE,My Automated Panel Design using Matrix

TEXTSTYLE=VALUE

Assign the font file (*.fnt) for a FAB 3000 Text Style. This Text style will be used for all following Text objects in this array unless it is changed.
Do not include the font file path when defining the Text Style only the file name.

Note: All available font files can be found in the FAB 3000 installation folder .../FAB3000V8/fonts

Example:
TEXTSTYLE=arial.fnt

TEXTALIGN=VALUE

Determine the alignment for TEXT. Choose from: upperLeft, centerLeft, bottomLeft, upperCenter, centerCenter, bottomCenter, upperRight, centerRight, bottomRight. (default: lowerleft)
Example:
TEXTALIGN=centerCenter

POLYGON=VALUE

Adds a Polygon to the active cell.

POLYGON=LAYER,POINT_COUNT,[X],[Y],[...]

LAYER name. Dynamic Layer Types are also supported.
POINT_COUNT is the number of points for the polygon.
X,Y,... are the X,Y point array.

Example:
POLYGON=layer_1,7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9

LINE=VALUE

Adds a Line to the active cell.

LINE=LAYER,POINT_COUNT,[X],[Y],[...]

LAYER name. Dynamic Layer Types are also supported.
POINT_COUNT is the number of points for the line.
X,Y,... are the X,Y point array.

Example:
LINE=layer_1,7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9

PATH=VALUE

Adds a rounded Path to the active cell.

PATH=LAYER,WIDTH,POINT_COUNT,[X],[Y],[...]

LAYER name. Dynamic Layer Types are also supported.
WIDTH is the path width.
POINT_COUNT is the number of points for the path.
X,Y,... are the X,Y point array.

Example:
PATH=layer_1,0.025,7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9

DRILL=VALUE

Add NC drill hit to the active cell.

DRILL=LAYER,X,Y,DIAMETER,PLATED
LAYER name. Dynamic Layer Types are also supported.
X, Y are the Drill coordinate.
DIAMETER is the drill hole size. PLATED assign TRUE for plated and FALSE for non-plated.
Example:
DRILL=drill,4.0,4.2,0.1,TRUE

NCPATH=VALUE
or
ROUT=VALUE

Adds a Rout Path to the active cell. For compatibility purposes you may use either ROUT or NCPATH

ROUT=LAYER,WIDTH,POINT_COUNT,[X],[Y],[...]

NCPATH=LAYER,WIDTH,POINT_COUNT,[X],[Y],[...]

LAYER name. Dynamic Layer Types are also supported.
WIDTH is the nc path width.
POINT_COUNT is the number of points for the nc path.
X,Y,... are the X,Y point array.

Example:
ROUT=layer_1,0.025,7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9

NCPATH=layer_1,0.025,7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9

INSERT=VALUE

Add an insert to active cell.

Note
Dynamic Job References are also supported for Cell Name.

INSERT=[Cell Name],[X],[Y],[ANGLE],[MIRROR]

Cell Name is the name of the child cell which is to be inserted. Cannot be the same name as the parent cell.
X, Y are the Insert coordinate.
ANGLE is the insert angle.
MIRROR assign TRUE for mirrored insert and FALSE for non-mirror. YES or NO is also accepted

Example:
INSERT=myCell,1.5,4,0,FALSE
INSERT=pcb2232,0,0,90,TRUE

STEPREPEAT=VALUE

Add an arrayed insert to active cell.

Note
Dynamic Job References are also supported for Cell Name.

STEPREPEAT=[Cell Name],[X],[Y],[ROWS],[COLS],[ROW_DIST],[COLUMN_DIST],[ANGLE],[MIRROR]

Cell Name is the name of the child cell which is to be inserted. Cannot be the same name as the parent cell.
X, Y are the Insert coordinate.
ROWS are the number of horizontal rows.
COLS are the number of vertical columns.
ROW_DIST is the vertical (Y) distance between rows.
COLUMN_DIST is the horizontal (X) distance between columns.
ANGLE is the insert angle.
MIRROR assign TRUE for mirrored insert and FALSE for non-mirror. YES or NO is also accepted

Example:
STEPREPEAT=myCell,1.5,4,0,0,0,0,0,FALSE
STEPREPEAT=pcb2232,0,0,2,2,5.0,4.0,90,TRUE

INSERT_MATRIX=VALUE

Insert an existing matrix file the active cell.
Note: When inserting a PCB Matrix file, the objects become relative to the insert point. Thus if your matrix file describes a square from 0,0 to 1,1 – and it inserted with coordinates 5,5; the resulting square would be from 5,5 to 6,6.

INSERT_MATRIX=[Matrix File],[Insert X],[Insert Y],[Rotate],[Mirror]
or
INSERT_MATRIX=[Matrix File],[Insert X],[Insert Y],[Rotate],[Mirror] ,[Active_Layer]

PCB Matrix file - Absolute or Relative path to an existing PCB Matrix file.
Insert X - X coordinate used for the insert point of the PCB Matrix file.
Insert Y - Y coordinate used for the insert point of the PCB Matrix file.
Rotate - Rotation to use when inserting the PCB Matrix file. Measured in Degrees.
Mirror - Flip horizontally the insert matrix file objects. Either True or False. YES or NO is also accepted
Active_Layer - Optional. Assign the layer name to be used by the inserted matrix file as the "active" layer.

Example:

INSERT_MATRIX=polygon.fm6,-1.5,2,30.0,FALSE

Example: Assign the active layer name "layer_4" to be used by the inserted matrix.

INSERT_MATRIX=polygon.fm6,-1.5,2,30.0,FALSE,layer_4

STEPREPEAT_MATRIX=VALUE

Insert an existing matrix file the active cell using Array parameters.

Note
When inserting a PCB Matrix file, the objects become relative to the insert point. Thus if your matrix file describes a square from 0,0 to 1,1 – and it inserted with coordinates 5,5; the resulting square would be from 5,5 to 6,6.
For more information about STEPREPEAT_MATRIX, please view Help Center

STEPREPEAT_MATRIX=[Matrix File],[Insert X],[Insert Y],[Row Count],[Column Count],[Row Distance],[Column Distance],[Rotate],[Mirror]

Matrix file - Absolute or Relative path to an existing PCB Matrix file.
Insert X - X coordinate used for the insert point of the PCB Matrix file.
Insert Y - Y coordinate used for the insert point of the PCB Matrix file.
Row Count - Number of Rows
Column Count - Number of Columns
Row Distance - Distance between Rows
Column Distance - Distance between Columns
Rotate - Rotation to use when inserting the PCB Matrix file. Measured in Degrees.
Mirror - Flip horizontally the insert matrix file objects. Either True or False. YES or NO is also accepted

Example:

STEPREPEAT_MATRIX=polygon.fm6,-5.5,-4,2,4,-2,-1.4,0,FALSE

COMPOSITE=VALUE

Determine whether all following objects will be added as either: Dark or Clear. The default is Dark.
Note: For more information about composites, please view Help Center: About Composites

Example:
COMPOSITE=DARK
COMPOSITE=CLEAR
COMPOSITE=51

Note: Using a Number will allow you to directly assign a composite level number.

ATTRIBUTE=VALUE

Assign an object attribute for all following objects.

Note
There are 350+ attributes available for PCB Assembly and Manufacturing that can be easily accessed thoughout the entire matrix file. Checkout the most updated Attributes for PCB Assembly and Manufacturing

ATTRIBUTE=[Name],[Value]


Example:
ATTRIBUTE=.comment,This is my comment for this object
ATTRIBUTE=.comp_height,0.1mm
ATTRIBUTE=.comp_height
When the Attribute value is missing, it is no longer assigned

Note
When an Attribute value is missing or empty it's no longer assigned.

Example ADD_OBJECT Array:

#Add Objects to Panel
ADD_OBJECT {
JOB=mypanel
UNITS=INCH
RECTANGLE=layer_1,-1,4,0.35,0.05,0,0
CIRCLE=layer_1,-1,6,0.1,0
CIRCLE=[top+bottom],-1,5,0.25,0
CIRCLE=layer_1,-1.3,5,0.35,.1
RECTANGLE=layer_4,-1,4,0.35,0.05,0,0
RECTANGLE=[top+bottom],-2,4,0.35,0.25,.125,0
RECTANGLE=layerSMT Paste,-3,4,0.45,0.25,0.05,0
RECTANGLE=layer_2,-4,4,0.45,0.25,0.0,22
POLYGON=[All],7,-10,-10,-10,-9,
-9.25,-9,-9.25,-5,-1,-5,-1,-10,
-10,-10
COMPOSITE=CLEAR
POLYGON=[All],7,-9,-9,-9,-8,-8.25,-8,-8.25,-6,-2,-6,-2,-9,-9,-9
}
# Using "active" for cell and layer.
ADD_OBJECT {
JOB=@active
UNITS=INCH
COMPOSITE=CLEAR
RECTANGLE2PT=active,0,0,3,0.8
COMPOSITE=DARK
#
CIRCLE=active,0.25,0.4,0.05,0
CIRCLE=active,2.75,0.4,0.05,0
PATH=active,0.01,2,0.25,0.4,2.75,0.4
#
CIRCLE=active,0.25,0.3,0.05,0
CIRCLE=active,2.75,0.3,0.05,0
PATH=active,0.01,2,0.25,0.3,2.75,0.3
#
CIRCLE=active,0.25,0.5,0.05,0
CIRCLE=active,2.75,0.5,0.05,0
PATH=active,0.01,2,0.25,0.5,2.75,0.5
#
CIRCLE=active,0.25,0.2,0.05,0
CIRCLE=active,2.75,0.2,0.05,0
PATH=active,0.01,2,0.25,0.2,2.75,0.2
#
CIRCLE=active,0.25,0.6,0.05,0
CIRCLE=active,2.75,0.6,0.05,0
PATH=active,0.01,2,0.25,0.6,2.75,0.6
}