PCB Matrix Format
by Numerical Innovations, Inc. (www.numericalinnovations.com)
FABRICATION array

MATRIX Array Level: 4

The FABRICATION array allows anyone to perform PCB manufacturing commands such as Etch Compensation (Grow/Shrink), TearDrops, Trim Silkscreen, etc.

Fields in the FABRICATION array
Description
JOB=NAME The name of the Job to process. Required. Dynamic Job References are also supported.
UNITS=VALUE

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

ETCH_FACTOR=VALUE

Enlarge or reduce objects sizes. Useful for applying etch factors.

<ETCH_FACTOR> METHOD,VALUE,LAYERS </ETCH_FACTOR>

METHOD Assign a method to calculate Etch factors, choose either: absolute or percent Default: Absolute
VALUE Absolute method: Assign the offset distance for the etch factor. Default: 0.0
Percent method: Assign the etch pecentage value per side. Default: 100.0
LAYERS Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted. Default: [All PCB] (i.e All PCB Layers).

Example:
<ETCH_FACTOR>absolute,0.02,[top]</ETCH_FACTOR>
<ETCH_FACTOR>percent,125,[bottom]</ETCH_FACTOR>

SILKSCREEN_OPTIMIZER=VALUE

Silkscreen optimizer removes the overlapping silkscreen data from soldermask pads.

<SILKSCREEN_OPTIMIZER>CLEARANCE,MINSIZE,METHOD,LAYERS</SILKSCREEN_OPTIMIZER>

CLEARANCE Minimum mask spacing from Silkscreen objects. Default: 0.127mm
MINSTUB Minimum length for remaining lines after trimming the silkscreen. Default: 0.05mm
METHOD Select between two trim silkscreen methods: Trim or Composite Default: Trim
TRIM_TOPSIDE Trim Top side Silkscreen. Default: yes
TRIM_BOTTOMSIDE Trim Bottom side Silkscreen. Default: yes

Example:
<SILKSCREEN_OPTIMIZER>0.005,0.002,trim,yes,no</SILKSCREEN_OPTIMIZER>

TEARDROP=VALUE

Add Teardrops to improve pad/trace connections.

<TEARDROP>TYPE,OFFSET_FACTOR,LAYERS</TEARDROP>

TYPE Assign a Teardrop type either: teardrop or snowman
OFFSET_FACTOR Assign an offset multiple for teardrops construction (not used with Snowman type). Default: 2.0
LAYERS Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted. Default: [All PCB] (i.e All PCB Layers).

Example:
<TEARDROP>teardrop,2,[top]<TEARDROP>
<TEARDROP>snowman,0,[bottom]<TEARDROP>

REMOVE_OUTSIDEBORDER=VALUE

Remove objects Outside PCB Border like notes, drawing objects, etc. Perfect for creating 1UP PCB jobs that are ready for panelization and manufacturing.

<REMOVE_OUTSIDEBORDER>TRIM_PAD,TRIM_TEXT,TRIM_TRACE,CLEARANCE,LAYERS</REMOVE_OUTSIDEBORDER>

TRIM_PAD=<YES|NO> Pads extending past the border will be trimmed. Drill holes will be ignored. Default: YES
TRIM_TEXT=<YES|NO> If Checked, Text extending past the border will be trimmed. Default: YES
TRIM_TRACE=<YES|NO> If Checked, Traces extending past the border are trimmed. If unchecked, Traces are trimmed as Polygons. Default: YES
CLEARANCE=NUM Trim all objects by this Clearance from the PCB border edge. Default: 0.0
LAYERS Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted. Default: [All PCB] (i.e All PCB Layers).

Example:
<REMOVE_OUTSIDEBORDER>yes,yes,yes,0,[all]</REMOVE_OUTSIDEBORDER>
<REMOVE_OUTSIDEBORDER>yes,yes,yes,0.02,[All PCB]</REMOVE_OUTSIDEBORDER>

Note
SHORTCUT: If <REMOVE_OUTSIDEBORDER > is empty, these defaults are used: REMOVE_OUTSIDEBORDER=yes,yes,yes,0,[All PCB]
DELETE_LAYERS=VALUE

Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted.

<DELETE_LAYERS>PERMANENT,LAYERS </DELETE_LAYERS>

PERMANENT=<YES|NO> If no, only the objects on the layer will be deleted; the layer still remains in the database.
If Yes, delete layer objects plus layer from database. Default: YES
LAYERS Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted. Default: [Empty] (i.e All Empty Layers).

Example:
<DELETE_LAYERS>yes,[empty]</DELETE_LAYERS>
<-— Deletes all empty layers from database. <REMOVE_OUTSIDEBORDER>no,[top]</REMOVE_OUTSIDEBORDER>
<-— Removes objects from layer top, layers remains in database.

COPPER_AREA_LAYER=VALUE

Extracts the Copper Area for specified layers. Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted.

<COPPER_AREA_LAYER>LAYER,UNITS</COPPER_AREA_LAYER>


XML Example:

<copper_area_layer>[All Metal]</copper_area_layer>


COPPER_AREA_SET=VALUE

Extracts the Copper Area from a specified SelectionSet. Enter Layer names (Comma separated) or Dynamic Layer Types. Wildcards are permitted.

<COPPER_AREA_SET>SET,UNITS </COPPER_AREA_SET>


XML Example:

<!--Select All objects-->
<SELECTION>
<Name>Set1</Name>
<JOB>@active</JOB>
<SELECT_ALL/>
</SELECTION>
<!--Generate-->
<copper_area_set>Set1</copper_area_set>


ADD_ROUT_PROFILE=VALUE


The rout profile is used to cut out the PCB from within a panel. Typically PCB's using Routs are held in the panel using Tabs.

<ADD_ROUT_PROFILE>TOOL_DIAMETER,PLACEMENT,DIRECTION,PLUNGE,RETRACT</ADD_ROUT_PROFILE>
TOOL_DIAMETER The rout path tool width
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the JOB or PANEL; or 0-360 degrees.
DIRECTION Either CW (for Clockwise) or CCW (for Counter-Clockwise). Default: CW
PLUNGE The distance extending plunge point. Default: 0
RETRACT The distance extending past the Ending Distance. Default: 0

Example:
<ADD_ROUT_PROFILE>0.1,@right,CW,0,0</ADD_ROUT_PROFILE>
<ADD_ROUT_PROFILE>2.5,45,CCW,2.0,2.0</ADD_ROUT_PROFILE>

ADD_ROUT_CUTOUTS=VALUE


The rout cutouts are used to remove the internal openings in a PCB.
<ADD_ROUT_CUTOUTS>TOOL_DIAMETER,PLACEMENT,DIRECTION,CLEANUP</ADD_ROUT_CUTOUTS>
TOOL_DIAMETER The rout path tool width
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the cutout; or 0-360 degrees.
DIRECTION Either CW (for Clockwise) or CCW (for Counter-Clockwise). Default: CCW
CLEANUP_CUT Extend the Retract a little further to prevent rough edges. Choose either: YES or NO Default: No
PLUNGE_CENTER Add the Plunge point in the center of the cutout. Choose either: YES or NO Default: No

Example:
<add_rout_cutouts>0.1,@bottom,CCW,yes,yes</add_rout_cutouts>
<add_rout_cutouts>2.5,@top-2,CW,no,no</add_rout_cutouts>

ADD_TAB=VALUE


Rout tabs are used to hold each PCB in place on a production panel, during the Manufacturing and Assembly processes. Afterwards, finsihed PCB's can be snapped out of the Panel.

<ADD_TAB>WIDTH,PLACEMENT</ADD_TAB>
WIDTH The tab width size
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the PCB; or 0-360 degrees; or Add Vertex #

Example:
add_tab=0.1,@top
add_tab=0.1,@bottom
add_tab=2.5,45

ADD_TAB_PERFORATED=VALUE


Rout tabs are used to hold each PCB in place on a production panel, during the Manufacturing and Assembly processes. Afterwards, finsihed PCB's can be snapped out of the Panel.

<ADD_TAB_PERFORATED>TYPE,PLACEMENT,PERFORATION</ADD_TAB_PERFORATED>
TYPE Chose the perforation type either: SINGLE or DOUBLE
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the PCB; or 0-360 degrees.
PERFORATION=HOLE_COUNT,DIAMETER,SPACING,OFFSET

Example:
<add_tab_perforated>single,@bottom,3,0.025,0.025,0.007</add_tab_perforated>

ADD_TAB_ANGLED=VALUE


Rout tabs are used to hold each PCB in place on a production panel, during the Manufacturing and Assembly processes. Afterwards, finsihed PCB's can be snapped out of the Panel.

<ADD_TAB_ANGLED>WIDTH,PLACEMENT,EXIT_ENTRY_ANGLE,TAB_LENGTH</ADD_TAB_ANGLED>
WIDTH The tab width size
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the PCB; or 0-360 degrees.
EXIT_ENTRY_ANGLE The acute angle between the angled tabs exit and entry options. Default: 125 TAB_LENGTH The length of the angled tab.

Example:
<add_tab_angled>0.1,@bottom,125.0,0.05</add_tab_angled>

ADD_TAB_ANGLED_PERFORATED=VALUE


Rout tabs are used to hold each PCB in place on a production panel, during the Manufacturing and Assembly processes. Afterwards, finsihed PCB's can be snapped out of the Panel.

<ADD_TAB_ANGLED_PERFORATED>PLACEMENT,EXIT_ENTRY_ANGLE,TAB_LENGTH,PERFORATION</ADD_TAB_ANGLED_PERFORATED>
PLACEMENT Tab placement using Relative Coordinates referenced from the center of the PCB; or 0-360 degrees.
EXIT_ENTRY_ANGLE The acute angle between the angled tabs exit and entry options. Default: 125 TAB_LENGTH The length of the angled tab.
PERFORATION=HOLE_COUNT,DIAMETER,SPACING,OFFSET

Example:
<add_tab_angled_perforated>@bottom,125,0.05,0.025,3,0.025,0.025,0.007</add_tab_angled_perforated>

Example FABRICATION Array:

XML example:

<!-- Sample Comment -->
<FABRICATION>
<JOB>@active</JOB>
<UNITS>english</UNITS>
<SILKSCREEN_OPTIMIZER>0.005,0.002,[silk]</SILKSCREEN_OPTIMIZER>
<TEARDROP>teardrop,2,[top+bottom]</TEARDROP>
<ETCH_FACTOR>absolute,0.02,[top]</ETCH_FACTOR>
<ADD_ROUT_PROFILE>2,@bottom,cw,0,0</ADD_ROUT_PROFILE>
</FABRICATION>