Skip to content

Instantly share code, notes, and snippets.

@soypat
Created August 17, 2024 19:48
Show Gist options
  • Save soypat/7b53e0bd20f509b9e73119d6394cfa4a to your computer and use it in GitHub Desktop.
Save soypat/7b53e0bd20f509b9e73119d6394cfa4a to your computer and use it in GitHub Desktop.
ODB++ system attributes code generation from PDF copy pasted table p 215..270
package odb2p
import (
_ "embed"
"fmt"
"os"
"strings"
"testing"
)
//go:embed input.txt
var sattr string
func Test(t *testing.T) {
// fp, _ := os.Create("attrs2.txt")
// for {
// page, rest, ok := strings.Cut(sattr, "Attribute Type Entity Description Display Name")
// if !ok {
// return
// }
// _, sattr, _ = strings.Cut(rest, "February 2021")
// fp.WriteString(page)
// }
var attrs []string
getLine := func() (line string, ok bool) {
line, sattr, ok = strings.Cut(sattr, "\n")
return line, ok
}
OUTER:
for {
// First loop looks for attribute and stores next line in line.
var attrname string
var typename string
var line string
for {
var ok bool
line, ok = getLine()
if !ok {
break OUTER
} else if line[0] != '.' {
continue
}
// Accumulate attribute name if longer than one line until type found.
for ok && typename == "" {
var typeIdx int
preSpace, remaining, okspace := strings.Cut(line, " ")
if okspace {
// Space found
typename, _, _ = seekType(preSpace)
if typename != "" {
line = remaining
break
}
typename, remaining, typeIdx = seekType(remaining)
if typeIdx >= 0 {
// Type found after attribute name bits.
attrname += preSpace
line = remaining
} else {
// No type found and space present, error!
t.Error("unexpected space", line)
}
} else {
attrname += preSpace
}
line, ok = getLine()
}
attrs = append(attrs, attrname+" "+typename)
typename = ""
attrname = ""
}
}
fp, _ := os.Create("attrsout.txt")
defer fp.Close()
for i := range attrs {
fp.WriteString(attrs[i])
fp.Write([]byte{'\n'})
}
}
//go:embed outfinal.txt
var outattr string
func TestOut(t *testing.T) {
fp, _ := os.Create("out.go")
defer fp.Close()
defer fp.Write([]byte{'}'})
fp.WriteString(`package odb2p
import (
"reflect"
)
type attr struct {
Name string
Kind reflect.Kind
}
var sysattr = []attr{
`)
for {
var line string
var ok bool
line, outattr, ok = strings.Cut(outattr, "\n")
if !ok {
break
}
name, typename, ok := strings.Cut(line, " ")
if !ok {
panic(line)
}
name = strings.TrimSpace(name)
if name[0] != '.' {
panic(name)
}
name = name[1:]
typename = strings.TrimSpace(typename)
var kind string
switch typename {
case "int":
kind = "reflect.Int"
case "float64":
kind = "reflect.Float64"
case "opt":
kind = "reflect.Uintptr"
case "string":
kind = "reflect.String"
case "bool":
kind = "reflect.Bool"
default:
panic(typename)
}
fp.WriteString(fmt.Sprintf("{Name:%q, Kind:%s},\n", name, kind))
}
}
func seekType(line string) (string, string, int) {
intIdx := strings.Index(line, "Integer")
floatIdx := strings.Index(line, "Float")
optIdx := strings.Index(line, "Option")
txtIdx := strings.Index(line, "Text")
boolIdx := strings.Index(line, "Boolean")
typeIdx := max(intIdx, floatIdx, optIdx, txtIdx, boolIdx)
var typename string
switch {
case intIdx >= 0:
typename = "int"
line = line[typeIdx+len("Integer"):]
case floatIdx >= 0:
typename = "float64"
line = line[typeIdx+len("Float"):]
case optIdx >= 0:
typename = "opt"
line = line[typeIdx+len("Option"):]
case txtIdx >= 0:
typename = "string"
line = line[typeIdx+len("Text"):]
case boolIdx >= 0:
typename = "bool"
line = line[typeIdx+len("Boolean"):]
}
return typename, line, typeIdx
}
all_eda_layers Text Step (0 to 1000 characters)
This attribute consists of a
list of all the layers in the
current EDA design (not
ODB++).
All EDA Layers
.allowed_to_rem
ove_non_functio
nal_pads
Boolean Step Indicates whether it is
allowed to remove
nonfunctional pads.
Allowed to
Remove
nonfunctional Pads
218 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.aoi_cpbm Integer Feature (0 to 255)
(Obsolete)
.aoi_cpbm
.aoi_cpcu Integer Feature (0 to 255)
(Obsolete)
.aoi_cpcu
.aoi_drbm Integer Feature (0 to 255)
(Obsolete)
.aoi_drbm
.aoi_drcu Integer Feature (0 to 255)
(Obsolete)
.aoi_drcu
.aoi_value Integer Feature (0 to 255)
(Obsolete)
.aoi_value
.ar_pad_drill_bottom
_max
Float Feature (-10 to 1000)
Assigned to a drill to define
the maximum annular ring
size between the drill and the
copper of the bottom layer of
the drill span.
(UNITS=MIL_MICRON)
Max Pad AR Drill
Bottom
.ar_pad_drill_bottom
_min
Float Feature (-10 to 1000)
Assigned to a drill to define
the minimum annular ring
size between the drill and the
copper of the bottom layer of
the drill span.
(UNITS=MIL_MICRON)
Min Pad AR Drill
Bottom
.ar_pad_drill_inner_
max
Float Feature (-10 to 1000)
Assigned to a drill to define
the maximum annular ring
size between the drill and the
copper of an inner layer in
the drill span.
(UNITS=MIL_MICRON)
Max Pad AR Drill
Inner
.ar_pad_drill_inner_
min
Float Feature (-10 to 1000)
Assigned to a drill to define
the minimum annular ring
size between the drill and the
copper of an inner layer in
the drill span.
(UNITS=MIL_MICRON)
Min Pad AR Drill
Inner
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 219
February 2021
.ar_pad_drill_top_m
ax
Float Feature (-10 to 1000)
Assigned to a drill to define
the maximum annular ring
size between the drill and the
copper of the top layer of the
drill span.
(UNITS=MIL_MICRON)
Max Pad AR Drill
Top
.ar_pad_drill_top_mi
n
Float Feature (-10 to 1000)
Assigned to a drill to define
the minimum annular ring
size between the drill and the
copper of the top layer of the
drill span.
(UNITS=MIL_MICRON)
Min Pad AR Drill
Top
.ar_sm_drill_bottom
_max
Float Feature (-10 to 1000)
Assigned to a drill piercing
the bottom layer, to define
the maximum annular ring
size between the drill and the
soldermask on the bottom
layer.
(UNITS=MIL_MICRON)
Max SM AR Drill
Bottom
.ar_sm_drill_bottom
_min
Float Feature (-10 to 1000)
Assigned to a drill piercing
the bottom layer, to define
the minimum annular ring
size between the drill and the
soldermask on the bottom
layer.
(UNITS=MIL_MICRON)
Min SM AR Drill
Bottom
.ar_sm_drill_top_ma
x
Float Feature (-10 to 1000)
Assigned to a drill piercing
the top layer, to define the
maximum annular ring size
between the drill and the
soldermask on the top layer.
(UNITS=MIL_MICRON)
Max SM AR Drill
Top
Attribute Type Entity Description Display Name
220 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.ar_sm_drill_top_mi
n
Float Feature (-10 to 1000)
Assigned to a drill piercing
the top layer, to define the
minimum annular ring size
between the drill and the
soldermask on the top layer.
(UNITS=MIL_MICRON)
Min SM AR Drill
Top
.ar_sm_pad_bottom_
max
Float Feature (-10 to 1000)
Assigned to a drill piercing
the bottom layer, to define
the maximum annular ring
size between the drilled pad
of the bottom layer and the
soldermask above.
(UNITS=MIL_MICRON)
Max SM AR
Bottom
.ar_sm_pad_bottom_
min
Float Feature (-10 to 1000)
Assigned to a drill piercing
the bottom layer, to define
the minimum annular ring
size between the drilled pad
of the bottom layer and the
soldermask above.
(UNITS=MIL_MICRON)
Min SM AR
Bottom
.ar_sm_pad_top_ma
x
Float Feature (-10 to 1000)
Assigned to a drill piercing
the top layer, to define the
maximum annular ring size
in between the drilled pad of
the top layer and the
soldermask above.
(UNITS=MIL_MICRON)
Max SM AR Top
.ar_sm_pad_top_min Float Feature (-10 to 1000)
Assigned to a drill piercing
the top layer, to define the
minimum annular ring size
in between the drilled pad of
the top layer and the solder
mask above.
(UNITS=MIL_MICRON)
Min SM AR Top
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 221
February 2021
.area_name Text Feature (0 to 64)
Assigned to surface features
that are drawn in a process
map layer. A process map
layer is used in assembly
analysis for determining the
process type used in the
location at which a
measurement is found.
DFx Area Name
.array_with_rotation Boolean Step (YES, NO) (default=NO)
If YES, this step is a multipanel array, with the same
panel possibly appearing in
180-degree rotation to itself
Array with
Rotation
.artwork Text Feature (0-1000)
Indicating to which entity
the feature belongs
(component, package, net,
board)
Feature Source
.assembly_proc_bott
om
Text Step (0 to 20)
Default assembly process for
the bottom side, to be used
when there is no specific
area defined in the process
map layer (or no process
map layer at all)
Assembly Process
(Bottom)
.assembly_proc_top Text Step (0 to 20)
Default assembly process for
the top side, to be used when
there is no specific area
defined in the process map
layer (or no process map
layer at all).
Assembly Process
(Top)
.axi_direction Option Step (Left2Right; Top2Bottom;
Right2Left; Bottom2Top)
Defines the angle at which a
board is inserted into a 5DX
machine. Values are
translated as 0, 90, 180, 270
degrees.
Assembly X-Ray
Inspection
Direction
Attribute Type Entity Description Display Name
222 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.backdrill_penetrate_
stop_layer
Text Layer (0-64)
Used by Backdrill Analysis
to indicate the layer not to be
penetrated during the
backdrill process.
Backdrill not
Penetrate Layer
Name
.bit Text Feature (0-64)
Contains the drill designator
that is to be used for each
tool.
Drill Designator
.board_mark Option Feature (bbm, gpm)
In Vi-Technology output,
this controls whether a step
or a panel needs to be
inspected:
bbm—this feature is a bad
board mark. Skip inspection
of the step.
gpm—this feature is a good
panel mark. The panel can be
accepted for printing without
scanning its steps for bad
board marks.
VI Tech. Board
Mark
.board_thickness Float Product
Model
(0.0 to 10.0; default=0.0)
Total thickness of the board.
(UNITS=MIL_MICRON)
Board Thickness
.bond_name Text Feature Name of the wire bond. Name of Wire
Bond
.bonding_profile Text Feature Name of the bonding profile. Bonding profile
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 223
February 2021
.break_away Boolean Symbol (Default=NO)
Assigned to a symbol that
represents a break-away that
can be inserted into any line
or arc of the rout path. When
adding a break_away
symbol through dimensions,
it automatically adjusts to
the line or arc angle, breaks
that feature (in the breaking
points defined in that symbol
with the .brk_pnt attribute),
and adds all the necessary
connections and dimensions.
Break Away
.brk_point Boolean Feature (YES, NO)
Assigned to a pad or a dpoint
in a break-away symbol (that
was given the attribute
.break_away). When adding
the break-away to the line/
arc in the layer, through
dimensions, the line/arc is
broken at the connection
point with the dpoint that has
the .brk_point attribute. In
each break-away symbol
there should be two points
with this attribute.
Rout Break Point
.bulk_resistivity Float Layer (0-10000; Default-0)
The nano-ohmic resistance
of the semiconductor
material.
(UNITS=NANO_OHM)
Bulk Resistivity
(nano-ohm-m)
.cad_local_footprint
_change
Boolean Comp.;
Pkg.
(Default=NO)
Indicates whether there has
been a local change to a pad
code in the local design.
CADStar Pad
Change
Attribute Type Entity Description Display Name
224 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.cad_package_name Text Comp. (0-10000)
Contains the full CAD
package name of a Cadstar
component. This name can
be longer than the Valor
package name which is
limited to 64 characters.
CADStar Package
Name
.cad_part_override Text Comp.;
Pkg.
(0-64)
Assigns component
properties in accordance
with data received from the
ASSY_PN_OVERRIDE
property.
CAD Part Varient
Support
.center_fiducial Boolean Comp.;
Pkg.
(Default=NO)
Specifies component is
expected to have a fiducial at
its center.
Center Fiducial
Required
.centroid_correction
_x
float Comp;
Pkg
(-100 to 100)
Specifies the x-offset from
the CAD centroid to the
calculated package centroid.
Centroid
Correction X
.centroid_correction
_y
float Comp;
Pkg
(-100 to 100)
Specifies the y-offset from
the CAD centroid to the
calculated package centroid.
Centroid
Correction Y
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 225
February 2021
.color Text Feature;
Comp.
(0 to 1000 for each color)
Can be attached to any
feature or component to
define the color to be used in
plotting a layer in HPGL-1
or 2. The format is rrggbb
(where r=red, g=green,
b=blue).
White—.color=“999999”
Black—.color=“000000”
Red—.color=“990000”
Green—.color=“009900”
Yellow—.color=“009999”
Blue—.color=“000099”
Magenta—.color=“990099”
Cyan—.color=“999900”
HPGL Output
Color
.comment Text Product
Model;
Step;
Layer;
Wheel;
Symbol;
Buildup
(0 to 500)
Used for general textual
comments.
Comment
.comp Option Feature (none; right; left)
For a chained feature, this
attribute sets the offset of the
cutting tool from the rout
path. Three options:
• None—in center of the
rout path
• Left—to the left of the
rout path in the direction
of cutting
• Right—to the right of the
path
Rout Compensate
.comp_height Float Feature;
Comp.;
Pkg
(0.0 to 10.0)
Stores the height of the
component above the board
surface.
(UNITS=INCH_MM)
Height
Attribute Type Entity Description Display Name
226 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.comp_height_area Integer Feature;
Comp.
(0.0 to 1000000.0;
default=0)
This attribute is used to
assign the same ID to a
component under which
there is an area with space
for a shorter component, and
to the feature that defines the
area.
Allegro Height ID
.comp_height_max Float Comp.;
Pkg.
(0.0-10.0)
The height of the tallest
package (in the CPN
package of alternate MPNs)
above the board surface.
(UNITS=INCH_MM)
Maximal Height
.comp_htol_minus Float Comp.;
Pkg.
(0.0-10.0)
Contains the minus tolerance
for component height, used
for calculation of plug-in
boards.
(UNITS=INCH_MM)
Height Tolerance
Minus
.comp_htol_plus Float Comp.;
Pkg.
(0.0-10.0)
Contains the plus tolerance
for component height, used
for calculation of plug-in
boards.
(UNITS=INCH_MM)
Height Tolerance
Plus
.comp_ign_spacing Boolean Comp.;
Pkg.
(Default=NO)
This attribute, when set,
disables spacing checks on a
component during assembly
analysis. It is used for
printed components that
have no actual body
Ignore during
Spacing Analysis
.comp_ignore Boolean Comp.;
Pkg.
(Default=NO)
Determines whether the
component is to be ignored
when calculating statistics,
or during certain operations,
such as analysis.
Ignore Graphically/
Output
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 227
February 2021
.comp_mount_type Option Comp.;
Pkg.
(Other; SMT; THMT;
PressFit)
Indicates whether the
component is a surface
mount, through-hole mount,
press-fit or other.
(SMT;THMT;PRESSFIT)
Mount Type
.comp_name Text Comp. Name of the die component
on the HDI technology layer.
Name of Die
Component
.comp_polarity Option Comp.;
Pkg.
• POLARIZED, has a
specific pin designated as
pin #1.
• NON_POLARIZED has
no specific pin #1.
Polarity
.comp_type Option Comp.;
Pkg.
This attribute represents the
type of the component.
Options are:
axial; bga; cbga; cob; dip;
discrete; discrete402;
discrete603; label; pga;
pihconn; pihmisc; plcc; pqfp;
printed; qfp; radial; sip;
smtconn; smtmisc; socket;
soic; soj; sop; sot; tab; tqfp;
tsoic; tsop
Type I
.comp_type2 Option Comp.;
Pkg.
Options are:
axial; axial-large; bga; cbga;
cob; csp; dip; dip300;
dip600; discrete;
discrete201; discrete402;
discrete603; electro-mech;
flipchip; label; lcc; lqfp;
pfconn; pga; pihconn-inline;
pihconn-rt-angle; pihmisc;
pih-polar; plcc; pqfp;
printed; qfp; radial; radialtall; sip; smtconn; smtelectmech; smtmisc;
smtmixedconn; smtpolar;
socket; soic; soj;
solderable-mech; sop-ssop;
sot; tab; tqfp; tsoic; tsop;
tsop-tssop
Type II
Attribute Type Entity Description Display Name
228 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.comp_variant_list Text Comp.;
Pkg.
(0-1000)
Consists of a list of variants
where a component is used.
The list contains variant
names separated by a colon
(:). See “Component
Variants” on page 42.
Variant List
.comp_weight Float Comp.;
Pkg.
(0.0-1000.0)
Stores the weight of the
component (in accordance to
its Units of Measurement)
for the purpose of the total
weight calculation.
Weight
.copper_weight Float Layer (0.0 to 1000.0; default=1.0)
The weight of copper
according to its Units of
Measurement.
Copper Weight
.critical_net Boolean Feature;
Net
(YES, NO)
Specifies critical nets.
SQA Critical Net
.critical_tp Boolean Feature (YES, NO)
Assigned to the mid-point of
a netlist to force it to become
a testpoint. If both .non_tp
and .critical_tp are assigned
to the same point,
.critical_tp takes precedence
and the mid point is tested.
In case of a drilled feature
the attribute must be added
to the drill hole.
Netlist Critical
Midpoint Output
.cu_base Boolean Layer (Default=NO)
(Obsolete)
Indicates whether the via
holes created by a drill layer
are filled (rather than plated).
This attribute is only suitable
for drill layers.
Vias Need Cu
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 229
February 2021
.current_variant Text Step (0-100)
Consists of the name of the
current variant for a step. See
“Component Variants” on
page 42.
Current Variant
.customer Text Product
Model
(0-100)
This attribute can store the
name of the customer for
whom the product model
was created.
Customer
.cut_line Integer Feature (0-100000; default=0)
Assigned to lines added in
the creation of film layers by
the film optimization
algorithm. The attribute is
given to three kinds of lines:
• frame of the film
• cutting lines inside the
film
• frame of each layer
inside the film.
Film Optimization
Cut Line
.data_source Text Product
Model;
Step
(0-100)
The source of the data. For
example, Cadence, Mentor.
Data Source
.desc1....10 Text Comp.;
Pkg.
(0-1000)
Storage for ten BOM
description fields into
corresponding ten
description attributes.
General
Description 1....10
.design_center Text Product
Model;
Step
(0-100)
The design center from
which the product model
originated.
Design Center
.design_origin_x Integer Product
Model
(-254000000 to 254000000)
Defines the design origin x
coordinate.
Design X Origin
.design_origin_y Integer Product
Model
(-254000000 to 254000000)
Defines the design origin y
coordinate.
Design Y Origin
Attribute Type Entity Description Display Name
230 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.device_style Text Comp.;
Pkg.
(0-64)
This attribute is an
enhancement of .device_type
and is used to store the style
of the component as defined
in GenCAD (such as, NPN,
PNP, NFET, PFET, NJFET,
PJFET, TTL, CMOS and
ECL).
Device Style
.device_type Text Comp.;
Pkg.
(0-64)
Stores the type of the
component as defined in the
device (such as, RES, VRES,
DIODE, ZENER, LOGIC,
SWITCH, CONN, etc.).
Device Type
.device_value Text Comp.;
Pkg.
(0-64)
Stores the electrical value of
a component.
Device Electrical
Value
.device_value_ntol Float Comp.;
Pkg.
0-1000000; default=0.0)
This is a real value
expressing the percent of the
value to use as a tolerance
(negative tolerance). This is
used for all devices. Range
of characters: all floating
point numbers.
Device Value
Negative Tolerance
.device_value_ptol Float Comp.;
Pkg.
(0-1000000; default=0.0)
This is a real value
expressing the percent of the
value to use as a tolerance
(positive tolerance). This is
used for all devices.
Device Value
Positive Tolerance
.dielectric_constant Float Layer (0.0 to 1000.0; default=0.0)
The ratio of the field without
dielectric (Eo) to the net
field (E) with dielectric. It is
unitless and has a range
value of 1 for metals.
Typical values are 4 and 5.
Dielectric Constant
(ER)
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 231
February 2021
.diff_pair Text Net (0 to 64)
Differential pair name
associating two nets that
must be routed together.
Differential Pair
.dpair_gap Float Net (0.0 to 10.0)
Spacing gap value specifying
the spacing between
differential pair nets.
(UNITS=INCH_MM)
Differential Pair
Spacing
.drc_add_rad Integer Mania_
AOI
(0 to 100; default=2)
(Obsolete)
Enlarge By
.drc_assembly_lyrs Option Feature (Top; Bottom; Both)
Specifies whether the
keepout/keepin area applies
to Top, Bottom, or Both
component layers.
Assigned Area to
Component Side
.drc_bend_keepout Boolean Feature NOT USED FLEX Bend
Keepout Area
.drc_board Boolean Feature (YES, NO)
Assigned to a DRC area
defined for the whole board.
Analysis Board
Area
.drc_comp_height Boolean Feature (YES, NO)
Assigns component height
restriction to a keepin/
keepout area.
Component Height
for Area
.drc_comp_height_l
yr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all component
height restriction keepin/
keepout areas are stored.
Comp. Height
Restriction Layer
.drc_comp_keepin Boolean Feature (YES, NO)
Defines an area as the
board's component
placement keepin boundary.
Component Keep
In
.drc_comp_keepin_l
yr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all component
keepin areas are stored.
Component Keep
In Layer
Attribute Type Entity Description Display Name
232 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.drc_comp_keepout Boolean Feature (YES, NO)
Defines an area as the
board's component
placement keepout
boundary.
Component Keep
Out
.drc_comp_keepout_
lyr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all component
keepout areas are stored.
Component Keep
Out Layer
.drc_etch_lyrs Text Feature (0 to 1000)
Value=layer names
separated by semi-colons (;).
User-defined attribute for
user to specify name of
layers in which to activate
keepin/keepout areas. For
example, when
.drc_etch_lyrs=pg1;pg2,
this enables you to select/
highlight (on the relevant
document layer) keepin/
keepout areas that are active
in layers pg1, pg2. The
attributes:
.drc_etch_lyrs_bit and
.drc_etch_lyrs must both
specify the same layers. If
there is a discrepancy
between the two, then
.drc_etch_lyrs_bit is the
determining attribute.
DFx Area Layers
by Name
.drc_etch_lyrs_all Boolean Feature (YES, NO)
Defines a keepin/keepout
area as effective on all
layers.
DFx Area All
Layers
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 233
February 2021
.drc_etch_lyrs_bit Text Feature (0 to 64)
Values=string consisting of
“0” and “1” characters.
Allows the keepin/keepout
area to apply only to
specified board layers. The
attribute's length is equal to
the number of board layers.
0=ignore layer, 1=activate
areas in that layer
DFx Area Selected
Layers
.drc_max_height Float Feature (0.0 to 10.0)
Stores the maximum height
of components to be allowed
in a height restriction area
(area with .drc_comp_height
attribute).
(UNITS=INCH_MM)
Maximum Height
for Component
.drc_mech Boolean Feature (Obsolete) Analysis
Mechanical Area
.drc_min_height Float Feature (0.0 to 10.0)
Stores the minimum height
of components to be allowed
in a height restriction area
(area with .drc_comp_height
attribute).
(UNITS=INCH_MM)
Minimum Height
for Component
.drc_min_space Integer Mania_
AOI
(1 to 100; default=5)
(Obsolete)
Min Spacing
.drc_min_width Integer Mania_
AOI
(1 to 100; default=7)
(Obsolete)
Min Track Width
.drc_pad_keepout Boolean Feature (YES, NO)
Specifies area to be used as
pads keepout boundary.
Pad Keep Out
.drc_pad_keepout_ly
r
Text Product
Model
(0 to 64)
Stores name of document
layer in which all pad
keepout areas are stored.
Default as defined in the
drc_pad_keepout
configuration parameter.
Pad Keep Out
Layer
Attribute Type Entity Description Display Name
234 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.drc_plane_keepout Boolean Feature (YES, NO)
Specifies area to be used as
planes keepout boundary
Plane Keep Out
.drc_plane_keepout_
lyr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all plane
keepout areas are stored.
Plane Keep Out
Layer
.drc_ref_des Text Feature (0 to 100)
Assigned to DRC areas
defined for components.
Reference
Designator
.drc_route_keepin Boolean Feature (YES, NO)
Specifies areas to be used as
the rout keepin boundary
(rout=lines, arcs, vias, pads
and surfaces on signal and/or
power and ground layers).
Route Keep In
.drc_route_keepin_l
yr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all rout keepin
areas are stored.
Route Keep In
Layer
.drc_route_keepout Boolean Feature Specifies areas to be used as
the rout keepout boundary
(rout=lines, arcs, vias, pads
and surfaces on signal and/or
power and ground layers).
Route Keep Out
.drc_route_keepout_
lyr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all rout
keepout areas are stored.
Route Keep Out
Layer
.drc_tp_keepin Boolean Feature Defines areas to be used as
testpoint keepin area
boundaries.
Testpoint Keep In
.drc_tp_keepin_lyr Text Product
Model
(0 to 64)
Stores name of document
layer in which all testpoint
keepin areas are stored.
Testpoint Keep In
Layer
.drc_tp_keepout Boolean Feature Specifies areas to be used as
the testpoint keepout
boundary.
Testpoint Keep Out
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 235
February 2021
.drc_tp_keepout_lyr Text Product
Model
(0 to 64)
Stores name of document
layer in which all testpoint
keepout areas are stored.
Testpoint Keep Out
Layer
.drc_trace_keepout Boolean Feature (YES, NO)
Defines areas to be used as
trace keepout boundaries
(traces=lines and arcs on
signal and/or power and
ground layers).
Trace Keep Out
.drc_trace_keepout_l
yr
Text Product
Model
(0 to 64)
Stores name of document
layer in which all traces
keepout areas are stored.
Trace Keep Out
Layer
.drc_via_keepout Boolean Feature (YES, NO)
Defines areas to be used as
vias keepout boundaries.
Via Keep Out
.drc_via_keepout_ly
r
Text Product
Model
(0 to 64)
Stores name of document
layer in which all vias
keepout areas are stored.
Via Keep Out
Layer
.drill Option Feature (plated; non_plated; via)
Assigned to hole features in
drill layers. It defines the
type of the drill and is used
extensively during
fabrication analysis.
Drill Type
.drill_flag Integer Feature (0 to 100000; default=0)
(Obsolete)
Auto Drill Mgr
Flag
Attribute Type Entity Description Display Name
236 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.drill_layer_direction Option Layer (top2bottom, bottom2top,
any; default=top2bottom)
Specifies the drill direction
for all drills on a given layer.
This information impacts on
analysis and potentially on
the generation of production
tooling information.
See START_NAME and
END_NAME in “Fields in
the LAYER Array of a
Matrix File” on page 67.
Drill Layer
Direction
.drill_noopt Boolean Feature (Obsolete) Auto Drill No Opt.
.drill_sr_zero Option Feature (1; 2; 3)
(Obsolete)
Auto Drill S and R
Offset
.drill_stage Option Feature (1; 2; 3)
(Obsolete)
Auto Drill Mgr
Stage
.dxf_dimension Boolean Feature (YES, NO)
Assigned during DXF file
input to mark its features as
part of a DXF dimension
entity.
DXF Dimension
.eclass_accumulative
_parallel_dist_list
Text Net (0-255)
List of electrical class rules
(blank-separated) defining
the maximum distance
between the two traces of
nets considered parallel.
Accum. Parallel
Dist. List
.eclass_accumulative
_parallel_max_lengt
h_list
Text Net (0-255)
List of electrical class rules
(blank-separated) defining
the maximum distance
between the two traces of
nets considered parallel.
Accum. Parallel
Max. Len. List
.eclass_impedance Float Net (0.0 to 1000.0)
Electrical class rule
Impedance
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 237
February 2021
.eclass_individual_p
arallel_dist_list
Text Net (0-255)
List of blank-separated
electrical class rules. Defines
the separation distance
within which two traces are
considered parallel.
Individ. Parallel
Dist. List
.eclass_individual_p
arallel_max_length_l
ist
Text Net (0-255)
List of electrical class rules
(blank-separated). Defines
the maximum length that
two nets can run parallel to
each other.
Individ. Parallel
Max. Len. List
.eclass_individual_p
arallel_min_jog_list
Text Net (0-255)
List of electrical class rules
(blank-separated). Defines
the distance parallel traces
that deviate must maintain
the deviation before it is
considered a break in
parallelism.
Individ. Parallel
Min. Jog List
.eclass_max_stub_le
ngth
Float Net (0.0 to 100.0)
Electrical class rule—high
limit of the stub length.
(UNITS=MIL_MICRON)
Max. Stub Length
.eclass_max_via_co
unt
Integer Net (0 to 1000)
Maximal number of vias on
the nets.
Max. Via Count
.eclass_min_stub_le
ngth
Float Net (0.0 to 100.0)
Electrical class rule—low
limit of the stub length.
(UNITS=MIL_MICRON)
Min. Stub Length
.eclass_rise_time Float Net (0.0 to 100.0)
Electrical class rule
specifying the interval of a
rising signal transition (low
to high)
Rise Time
.eclass_voltage_swin
g
Float Net (0.0 to 100.0)
Electrical class rule
Voltage Swing
Attribute Type Entity Description Display Name
238 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.ecmp_layer_tech Option Layer (none, additive, subtractive)
Assigns a technology type
attribute to an embedded
components layer.
Embedded Passive
Technology
.ecmp_max_value Float Feature (0.0 to 1000000.0)
Maximum nominal value
received at input (its value
plus a tolerance).
Embedded Passive
Max. Value
.ecmp_min_value Float Feature (0.0 to 1000000.0)
Minimum value received at
input (its value minus a
tolerance).
Embedded Passive
Min. Value
.ecmp_name Text Feature (0 to 64 characters)
Name assigned to an
embedded passive feature.
Embedded Passive
Name
.ecmp_type Option Feature (resistor; capacitor)
Assigns a component type to
an embedded component.
Embedded Passive
Type
.ecmp_value Float Feature (0.0 to 1000000.0)
Embedded passive nominal
value. For resistors it is the
resistance in ohms.
Embedded Passive
Nominal Value
.eco Text Step (0 to 100 characters)
The engineering change list.
Engineering
Change List
.eda_define_imp_lin
e
Boolean Feature Defines lines controlled by
impedance. Lines assigned
this attribute are not rerouted nor shaved.
Impedance LineNo Edits
.eda_dimension_id Integer Feature (0 to 100000; default=0)
Assigns system-generated ID
to dimensions
Embedded Passive
Nominal Value
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 239
February 2021
.eda_layers Text Layer (0 to 1000)
Contains the EDA system
layer names that compose a
physical layer. It is loaded
during the direct EDA
translation and is used for
graphic synchronization with
the EDA system.
EDA Layers
.electrical_class Text Net (0 to 64)
Electrical class name
associating a net with a set of
electrical call rules.
Electrical class rules include
physical and electrical
limitations required to assure
and analyze the signal
integrity of a high speed net.
Electrical Class
.et_adjacency Float Layer (0.0 to 1000.0; default=20.0)
A distance value (per layer)
to use in netlist adjacency
calculation for moving probe
testers (currently BSL and
PROBOT).
(UNITS=MIL_MICRON)
Adjacency
Distance (ET)
.et_align Boolean Feature (YES, NO)
Determines that a feature
will be used as an alignment
target for PROBOT output
Probot Alignment
Targets
Attribute Type Entity Description Display Name
240 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.extended Integer Feature (-1 to 100000; default=0)
Assigned to construction
features (lines and pads)
added to assist in the
generation of a rout path.
These features have zero
width and are not output to
the rout machine as regular
features. They are used, for
example, as source elements
from which to create actual
features by dimensions. If
the attribute value is not zero
then the feature is an
extended feature and the
decimal value is its serial
value in the layer (to be
referenced in dimension
creation).
Dimension Feature
.fab_drc Text Step (0 to 20)
Stores the default DRC area
name. This name is applied
when no specific area is
defined in the DRC map
layer, or no such map layer
at all.
Fab DRC
.feature_ignore Boolean Feature (YES, NO)
Copper features with this
attribute are ignored in
analysis actions. (Currently
implemented for rout tests
only.)
Copper Feature
Ignore
.feed Integer Feature (0 to 100000; default=0)
For a chained feature, this
attribute sets the table feed
rate when routing.
Rout Feed Rate
.fiducial_name Text Feature (0 to 64)
(Obsolete)
Etec Fiducial
Output
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 241
February 2021
.fiducial_rdlist Text Feature (0-1000)
This attribute is assigned
local fiducial features. It can
consist of a list of REFDES
(separated by semicolons); a
list of the component/s using
this local fiducial.
Local Fiducial
Ref.Des. List
.fill_dx Float Symbol (0.000001 to 50.0;
default=0.1)
This attribute is used as the
default horizontal distance
between symbols when the
symbol is used for pattern
filling.
(UNITS=INCH_MM)
Fill Dx
.fill_dy Float Symbol (0.000001 to 50.0;
default=0.1)
This attribute is used as the
default vertical distance
between symbols when the
symbol is used for pattern
filling.
(UNITS=INCH_MM)
Fill Dy
.foot_down Boolean Feature (Default=NO)
(Obsolete)
Auto Rout
Footdown
.fs_direction_bottom Option Step (Right2Left; Left2Right;
Top2Bottom; Bottom2Top).
Indicates the manufacturing
direction the PCB will be
going through during the
flow solder process.
Flow Solder
Direction (Bottom)
.fs_direction_top Option Step (Left2Right; Right2Left;
Top2Bottom; Bottom2Top)
Indicates the manufacturing
direction the PCB will be
going through during the
flow solder process.
Flow Solder
Direction (Top)
.full_plane Boolean Feature NOT USED
Attribute Type Entity Description Display Name
242 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.gencad_device_ntol Float Comp.;
Pkg.
0-1000000; default=0.0)
This is a real value
expressing the percent of the
value to use as a tolerance
(negative tolerance). This is
used for all devices: Range
of characters: all floating
point numbers.
GENCAD
Negative Tolerance
.gencad_device_ptol Float Comp.;
Pkg.
(0-1000000; default=0.0)
This is a real value
expressing the percent of the
value to use as a tolerance
(positive tolerance). This is
used for all devices:
GENCAD Positive
Tolerance
.gencad_device_styl
e
Text Comp.;
Pkg.
(0-64)
This attribute is an
enhancement of
.gencad_device_type and is
used to store the style of the
component as defined in
GenCAD (such as, NPN,
PNP, NFET, PFET, NJFET,
PJFET, TTL, CMOS and
ECL)
GENCAD Device
Style
.gencad_device_type Text Comp.;
Pkg.
(0-64)
Stores the type of the
component as defined in
GenCAD (such as, RES,
VRES, DIODE, ZENER,
LOGIC, SWITCH, CONN,
etc.).
GENCAD Device
Type
.gencad_device_valu
e
Text Comp.;
Pkg.
(0-64)
Stores the electrical value of
a component.
GENCAD Device
Value
.geometry Text Feature (0 to 500)
Contains the name of the
padstack that created this
feature.
Geometry
.global_camtek_aois
et
Text Product
Model
(0-80)
(Obsolete)
Global CAMTEK
aoi-set
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 243
February 2021
.gold_plating Boolean Feature Used during autopanelization to orient the
gold plated area toward the
extreme side of the panel.
Gold Plating
.gold_plating_def
ined_by
Option Step (GoldMask; SolderMask; N/
A; default=GoldMask).
Type of gold plating used.
Gold Plating
Defined by
.guard_comp Boolean Comp.;
Pkg.
(Default=NO)
Assigned to a component
that “guards” other
components.
If TRUE, this component is
considered a “guard
component” (that is, not
likely to be knocked off the
board accidentally. To be
used in future actions.)
Component Guard
.hatch Boolean Feature (YES, NO)
Assigned to hatched planes
(filled with lines—hatches—
or cross lines—crosshatch—instead of solid
copper). The lines that make
up the border and fill the
surface are hatches.
Hatch
.hatch_border Boolean Feature (YES, NO)
The lines making up the
border of a surface.
Hatch Border
.hatch_serrated_bord
er
Boolean Feature (YES, NO)
Assigned to features that are
added for partial hatch. The
difference between regular
hatch and partial hatch is that
in partial hatch the cells
along the border that
intersect the border line are
filled; the feature(s) that fill
these cells are assigned this
attribute.
Hatch Serrated
Border
Attribute Type Entity Description Display Name
244 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.hdi_assembly_tech Option Layer (None, WireBond, FlipChip,
Hybrid)
The attribute defines the type
of HDI assembly technology
identified in the product
model. If None, the special
layer is not created.
HDI assembly
technology
.hdi_drc Text Step (0 to 20)
Default area name applied to
all HDI actions.
HDI Assembly
Technology
.hp3070_comment Text Comp.;
Pkg.
(0-64)
(Obsolete)
HP 3070 Comment
.hp3070_common_p
in
Text Comp.;
Pkg.
(0 to16).
(Obsolete)
HP 3070 Common
Pin
.hp3070_contact_pin Text Comp.;
Pkg.
(0 to16).
(Obsolete)
HP 3070 Contact
Pin
.hp3070_device Text Comp.;
Pkg.
(0 to 16)
(Obsolete)
HP 3070 Contact
Pin
.hp3070_fail_msg Text Comp.;
Pkg.
(0-64)
(Obsolete)
HP 3070 Fail
Message
.hp3070_hi_value Float Comp.;
Pkg.
(0-100000.0; default=0.0)
(Obsolete)
HP 3070 High
Value
.hp3070_lo_value Float Comp.;
Pkg.
(0-100000.0; default=0.0)
(Obsolete)
HP 3070 Low
Value
.hp3070_probe_acce
ss
Text Feature;
Comp.
(0-64)
(Obsolete)
HP 3070 Contact
Pin
.hp3070_seriesr Float Comp.;
Pkg.
(0-100000.0; default=0.0)
(Obsolete)
HP 3070 Series
.hp3070_test Boolean Comp.;
Pkg.
(Default=NO)
(Obsolete)
HP 3070 Test
.hp3070_tol_neg Float Comp.;
Pkg.
(0-100; default=0.0)
(Obsolete)
HP 3070 Negative
Tolerance
.hp3070_tol_pos Float Comp.;
Pkg.
(0-100; default=0.0)
(Obsolete)
HP 3070 Positive
Tolerance
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 245
February 2021
.hp3070_type Text Comp.;
Pkg.
(0-8)
(Obsolete)
HP 3070 Type
.hp3070_value Text Comp.;
Pkg.
(0-16)
(Obsolete)
HP 3070 Value
.ignore_net Boolean Net (YES, NO)
When this attribute is
assigned to a net, it is
ignored during Testpoint
Allocation Analysis. No
potential testpoints are
assigned, they are not
reported in the Nets without
Potential TPs category, the
Testpoints Allocation
Report, or in Total Number
of Nets.
Ignore Net During
Allocation
.image_dx
.image_dy
Float Symbol (-1.0 to 50.0; default=-1.0)
These values are set when
inputting Image files into the
system. They contain the
datum point of an Image
user-defined symbol entity
used to set the datum when
performing output back into
Image format. These values
should not be changed by the
user as this can cause data
corruption.
(UNITS=INCH_MM)
Image Dx
Image Dy
.imp_constraint_id Integer Feature (0 to 232)
For each impedance line
bearing this attribute, the
system refers to the
constraint with the given ID
in the impedance constraints
table.
Impedance
Constraint ID
.imp_line Boolean Feature Assigned to lines that are
impedance-controlled. When
set, it prevents the lines from
being rerouted or thinned
during signal layer
optimization.
Impedance Line
Attribute Type Entity Description Display Name
246 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.imp_polyline_id Integer Feature (0 to 232)
Defines a unique ID for all
trace segments that are part
of the same impedance
polyline.
Impedance
Polyline ID
.impedance_test_wid
th
Float Layer (0 to 1000)
Test width of routes used for
the provided impedance
(UNITS=MIL_MICRON)
Impedance Test
Width
.ind_orient_req Boolean Comp.;
Pkg.
(Default=NO)
Indicates that the component
requires silkscreen
orientation indication. (To be
used in future actions.)
Orientation
Indication
Required
.inp_file Text Layer (0 to 500)
Contains the name of the file
(Gerber, Drill) from which
the data was input into the
layer.
Input File
.ipc_class Option Product
Model
(Class1; Class2; Class3;
default=Class1)
Defines the end-product
class according to IPC-7351.
IPC Performance
Class
.ipc_via_type_botto
m
Text Feature (0-100; default=0)
Assigned to a via drill to
indicate one of the IPC-4761
Via types for via tenting,
covering, plugging and
capping. Refers to the
bottom side of the via drill.
IPC-4761 Bottom
Via Type
.ipc_via_type_top Text Feature (0-100; default=0)
Assigned to a via drill to
indicate one of the IPC-4761
Via types for via tenting,
covering, plugging and
capping. Refers to the top
side of the via drill.
IPC-4761 Top Via
Type
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 247
February 2021
.is_buried Boolean Comp.;
Pkg.
(Default=NO)
Assigned to buried
components.
Buried Component
.is_capped Boolean Feature (Obsolete)
Used on via pads on top and
bottom signal layers to
indicate that the via is
capped on this side.
Capped Via
.is_shadowed Boolean Comp.;
Pkg.
(Default=NO)
Components with this
attribute are considered
vunerable to component
shadowing.
Check for
Shadowing
.is_shield Boolean Comp.;
Pkg.
(Default=NO)
Components with this
attribute assigned are
designated as a shield.
Shield
.is_wirebonded Boolean Comp.;
Pkg.
(Default=NO)
Defines a component to be
wire-bonded.
Wirebonded
Component
.label_clearance Boolean Comp.;
Pkg.
(Default=NO)
Assigned to components that
are not allowed to be too
close to a glued label (e.g.
fine pitch SOIC
components).
Label Clearance
.layer_class Text Layer (0 to 1000 characters)
Used to differentiate
between layers.
Layer Class
Attribute Type Entity Description Display Name
248 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.layer_dielectric Float Layer (0.0)
For layers of type
DIELECTRIC or
SOLDERMASK, contains
the thickness of material.
For layers of type SOLDER
PASTE, contains the
thickness of the metal mask
(stencil).
The value is in specified
Units of Measurement
(UNITS=INCH_MM).
Thickness of
Material
.layer_hdi_type Option Layer (Buildup, Core)
An attribute added to a
copper layer, not a dielectric
layer, to distinguish buildup
layers from core layers in
HDI product models.
HDI Layer Type
.layer_side Option Layer (Top, Bottom, Inner, None)
Used to identify the location
of a layer in the board
stackup. For layers not in the
board (such as
documentation layers),
“None” is used.
Layer Side
.lead_form Text Comp. Used to classify components
by lead type.
Options:
gw-small; gw; j-bend;
l-bend; c-bend-wrap;
side-concave;
corner-concave; end-cap;
other; flat-insulated; qfn; lcc;
capae; m-column; lga; ball;
axial; radial; inline; wire;
pin; pressfit; mixed
Lead Form
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 249
February 2021
.local_fiducial_dist Float Comp.;
Pkg.
(0.0 to 100.0)
Defines the allowed distance
of fiducials from the outline
of the components that
require local fiducials (See
the attribute
.num_local_fiducial.)
If set to 0, the fiducials must
be included INSIDE the
outline.
(UNITS=INCH_MM)
Search Distance for
Local Fiducial
.loss_tangent Float Layer (0-100; Default=0)
The parameter of a dielectric
material that quantifies its
inherent dissipation of
electromagnetic energy.
Loss Tangent
.lpol_done Boolean Layer (Default=NO)
Reflects the state of the
product model in whether or
not the polarity sort
according to a format has
already been performed.
Polarity Order was
Done
.lpol_surf Boolean Feature (Default=NO)
Indicates surface modified
by layer polarity reduction
algorithm.
Polarity
Optimization
.lyr_prf_ref Integer Feature (0-100000; Default=0) Layer Profile
Reference Number
.machine_pkg Text Comp.;
Pkg.
(0-100)
Assigned to a component to
indicate the name of a
corresponding package in the
assembly machine libraries.
Package Name for
ALE
.mechanical Boolean Comp (YES, NO)
Components with this
attribute are considered part
of the MECHNICAL
section of a GenCAD file.
GENCAD
Mechanical
Attribute Type Entity Description Display Name
250 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.merge_processes Text Step (0-64)
A list of the last three merge
actions in the order in which
they were run. The list is
updated each time a merge
(bom_merge, library_merge,
board_merge) is run. It is for
informational purposes and
does not have to be changed
by the user.
Assembly Merge
Processes
.min_line_width Float Net. (0.0-100.0)
Assigned to nets that should
have a minimum trace width,
i.e. each line of the net
should have a width of at
least this value. If such nets
have a split (the net traces
split and then meet again)
the sum of the split traces
should be at least this value.
(UNITS=MIL_MICRON)
Min. Line Width
.moat Boolean Feature (YES, NO)
Assigned to a moat feature
added to a line or arc of the
rout path.
Moat Feature
.mount_hole Boolean Feature (YES, NO)
Used on drill features to
indicate that they are
mounting holes.
Mounting Hole
.mount_stage Integer Comp.;
Pkg.
(0-255; default=0)
User-defined integer used to
assign machine number in
the assembly line where
component is to be placed.
Placement
Machine Number
.n_electric Boolean Feature (YES, NO)
Assigned to a feature,
defines it as non-electric (it
is not considered for the
current netlist for the step).
Non Electrical
Feature
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 251
February 2021
.needs_guarding Boolean Comp.;
Pkg.
(YES, NO) (Default=NO)
YES—this component needs
to be protected by guard
components (see the attribute
.guard_comp) else it is likely
to be knocked off the board
accidentally.
Require Guards
.net_length_max Float Net (0.0 to 100.0)
High limit of net length.
(UNITS=INCH_MM)
Net Max. Length
.net_length_min Float Net (0.0 to 100.0)
Lower limit of net length.
(UNITS=INCH_MM)
Net Min. Length
.net_name Text Feature;
Layer
(0 to 10000)
Set by the netlist layer.
Contains the net name.
Net Name
.net_physical_type Text Feature (0 to 64)
Physical type of constraint
area used for search in table
that contains physical
parameters of nets.
Net Physical Type
.net_point Boolean Feature (YES, NO)
When assigned to a pad in an
inner layer, defines the pad
as an internal test point.
Internal Net Point
.net_spacing_type Text Feature (0 to 64)
SQA area name of an SQA
area map.
Net Spacing Type
.net_test_current Float Net (0 to 100000)
Nominal current associated
with the corresponding net.
.net_test_type Option Net (signal; power; ground)
Classification type of an
electrical net: Signal, Power,
or Ground.
.net_test_voltage Float Net (-100000 to 100000)
Nominal voltage associated
with the corresponding net.
Attribute Type Entity Description Display Name
252 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.net_type Text Net (0 to 64)
A name for the type of net.
The .net_type attribute can
reference the set of routing
rules for a net.
Net Type
.neutralization_angle Float Comp.;
Pkg.
(0.0 to 360.0)
An attribute attached to each
component stating the angle
of rotation counterclockwise from ODB++
standard orientation.
Consideration of this value
provides a rotation
neutralized component.
Rotation
Neutralization
.neutralization_info Text Step (0 to 200)
An attribute attached to a
step indicating component
rotation neutralization has
occurred. This attribute
contains the information
<CPL|CAD>;<DataCenter>;
Site. where Site is a name
representing the location at
which the correction was
performed.
Neutralization
Information
.neutralization_revie
wed
Boolean Comp.;
Pkg.
(YES, NO)
Attached to each component
in a package reviewed for
confirming component
orientation correction
conforms to ODB++
standard orientation.
Rotation Reviewed
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 253
February 2021
.neutralization_ss_la
yers
Text Step (0 to 200)
Attached to the step where
component orientations have
been validated to ODB++
standard rotations through
the use of the
.neutralization_angle
attribute. This attribute
designates which layers are
to be considered the
silkscreen layers.
Neutralization
Silkscreen
.no_copper_shape_u
nder
Boolean Comp.;
Pkg.
(Default=NO)
This attribute indicates that
the component should not
have copper pads or surfaces
underneath it. See also the
attribute .no_trace_under.
No Shape Under
.no_fiducial_check Boolean Comp.;
Pkg.
(Default=NO)
Components with this
attribute do not require
fiducials.
No Fiducial Check
.no_hole_under Boolean Comp.;
Pkg.
(Default=NO)
Indicates that no drill holes
are allowed under the
component.
No Hole Under
.no_pop Boolean Comp.;
Pkg.
(YES, NO)
Designates a component as
being not populated for the
current version of the BOM.
Not Populated per
BOM
.no_protrude_board Boolean Comp (YES, NO)
Indicates that toeprint length
(as defined by attribute
.pin_length) should be less
than the board thickness so
that the pins do not protrude
from the other side of the
board.
Pins Cannot
Protrude
Attribute Type Entity Description Display Name
254 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.no_text_under Boolean Comp.;
Pkg.
(Default=NO)
Assigned to a component,
does not allow silk screen
text to be placed under the
component outline. Printed
components (e.g. edge
connectors) may not have
this attribute.
No Silkscreen
Under
.no_tp_under Boolean Comp.;
Pkg.
(Default=NO)
Assigned to a component,
does not allow testpoints to
be placed under the
component outline. Printed
components (e.g. edge
connectors) may not have
this attribute.
No Test Point
Under
.no_trace_under Boolean Comp.;
Pkg.
(YES, NO) (Default=NO)
YES—traces are NOT
allowed under the
component except for those
that touch the component's
toeprint pads and exit the
component on that toeprint's
side.
No Trace Under
.no_uncap_via_unde
r
Boolean Comp.;
Pkg.
(YES, NO) (Default=NO)
YES—uncapped vias are
NOT allowed under this
component.
No Uncapped Vias
Under
.nomenclature Boolean Feature (YES, NO)
Defines a feature as a
nomenclature (legend)
feature.
Copper Text
.non_tp Boolean Feature (YES, NO)
Assigned to a feature causes
it NOT to be considered as a
net testpoint. It is used for
connectivity calculation but
is not used as a test point
(bare board testing).
Non Test Point
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 255
February 2021
.num_local_fiducials Integer Comp.;
Pkg.
(0 to 20; default=0)
Defines how many local
fiducials are expected to be
inside or near a component.
Number Local
Fiducials Required
.orbotech_plot_stam
p
Boolean Feature NOT USED Orbotech Plot
Stamp
.orig_surf Integer Feature (0-2147483647; default=0)
Identifies original surface
that will be rebuilt.
Original Contour
Index
.otherside_keepout Option Comp.;
Pkg.
(full_area; pins_only;
pads_only)
Defines for components
whether the other side of the
board may also contain
components in the same
area.
No Components on
Other Side
.out_angle Option Layer (0.0; 90.0; 180.0; 270.0;
default=0.0)
Contains the output angle to
be used when generating
manufacturing data.
Output Angle
.out_break Boolean Feature;
Symbol
(Default=NO)
Indicates that upon output
generation standard symbols
and user-defined symbols
should be replaced with
basic primitive round and
square symbols representing
the intended shapes.
Output Break
.out_comp Float Layer (-100.0 to 100.0;
default=0.0)
Layer entity attributes with
default values that are used
by the output translator.
Output
Compensation
.out_drill_full Boolean Step (Default=NO)
This attribute can be used for
a drill coupon that needs to
be fully drilled before
continuing to the next step
and repeat entity.
Output Drill Full
Attribute Type Entity Description Display Name
256 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.out_drill_optional Boolean Feature;
Step
(Default=NO)
If a drill feature is set with
this attribute it will have the
'/' command prefix in the
final output file, indicating
that the drill is optional. If a
step entity attribute is set,
then all the commands that
are part of that step will have
the '/' command prefixed.
Thus, the whole step is
optional.
Output Drill
Optional
.out_drill_order Integer Step (-10000 to 10000; default=0)
The attribute controls the
order in which the steps are
drilled. That is, who is first,
second, etc.
The attribute has the
following valid values:
0—no special order for that
step
1—first
2—second
3—and above, order from
the beginning
-1—last
-2—one before last
-3—and on (drill order from
the end)
Output Drill Order
.out_flag Integer Feature (-1 to 1000000; default=-1)
(Obsolete)
Used for Excellon
translation.
Excellon Unknown
.out_mirror Boolean Layer (Default=NO)
Indicates the output could be
mirrored along the X- axis
when generating
manufacturing data.
Output Mirror
.out_name Text Step (Obsolete) Output Name
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 257
February 2021
.out_orig Boolean Feature (Obsolete) Rout Output Origin
.out_polarity Option Layer (Positive; Negative)
Contains the output polarity
to be used when generating
manufacturing data.
Output Polarity
.out_rout_optional Boolean Feature;
Step
(Default=NO)
If drill feature is set with this
attribute it will have the '/'
command in front of it in the
final output file. This means
that the drill is optional. If a
step entity attribute is set
then all the commands that
are part of that step will have
the '/' command at the
beginning. Thus, the whole
step is optional.
Output Rout
Optional
.out_rout_order Integer Step (-10000 to 10000; default=0)
The attribute controls the
order in which the steps will
be drilled. Thus, who is first,
second, etc.
The attribute has the
following valid values:
0 —no special order for that
step
1—first
2—second
3 and above—order from the
beginning
-1—last
-3 and on—drill order from
the end
Output Rout Order
Attribute Type Entity Description Display Name
258 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.out_scale Boolean Feature;
Symbol
(Default=NO)
During the generation of
manufacturing data, it may
be required to specify
whether certain features can
be scaled or not. This is
important in cases where
special registration targets
would not be scaled together
with all the other features.
This special output option
applies only to features that
have this attribute set.
In the case of a user-defined
symbol, setting the attribute
enables you to control the
scaling of all features using
the symbol.
Output Scale
.out_x_scale Float Layer (0.000001 to 5.0;
default=1.0)
Contains the output scale
along the X-axis to be used
when generating
manufacturing data.
Output X Scale
.out_y_scale Float Layer (0.000001 to 5.0;
default=1.0)
Contains the output scale
along the Y-axis to be used
when generating
manufacturing data.
Output Y Scale
.output_dcode Integer Feature (0 -1000000)
Assigned to features to
provide action codes for an
assembly machine, such as
the GSI Lumonics laser
cutter.
GSI Lumonics
Output Dcode
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 259
February 2021
.package_type Text Comp. (1 to 64 characters)
Used to classify components
by package type.
Options:
melf; axial; radial; cyl-tall;
cc; chip; connector; fp; ga;
sip-dip; smt-misc; so; thrumisc
Package Type
.package_version Text Comp.;
Pkg.
(0 to 50)
Used for Zuken Board
Designer translation.
Zuken Package
Info
.pad_usage Option Feature (toeprint; via; g_fiducial;
l_fiducial; tooling_hole;
bond_finger)
This attribute defines the
specific usage of a pad.
Pad Usage
.padstack_id Integer Feature (0 to 232)
Defines an ID for all pads
attached to the same drill.
The value should be unique
in the context of the board.
Padstack ID
.part_desc1...10 Text Comp.;
Pkg.
(0 to 1000)
Ten BOM description fields.
Part Description 1
... Part Description
10
.patch Boolean Feature (YES, NO)
Assigned to features added
to eliminate pin holes.
Copper Patch
.pattern_fill Boolean Feature (YES, NO)
Assigned to features that
represent a pattern fill,
typically used for copper
balancing. Best practice in
copper balancing is to use
zero length lines where X/Y
start is the same as X/Y end
(rather than pads) to support
manufacturing that requires
data preparation.
Copper Balancing
Attribute Type Entity Description Display Name
260 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.pf_optimized Boolean Feature (YES, NO)
This attribute describes the
state of the product model. It
is attached to a padstack that
has had non-functional pads
removed.
Optimized Pad
Stack
.physical_type Text Net (0 to 64)
Physical type of net.
Physical Type
.pilot_hole Integer Feature (0 to 100000; default=0)
Attribute assigned to pads
that are pilot holes in a chain
(holes that are drilled in each
tool down in the chain rout
path before routing the
chain). The value of the
attribute is the serial chain
number to which the pilot
hole belongs. When merging
or inserting chains, the pilot
holes are updated
automatically.
(UNITS=MIL_MICRON)
Rout Pilot Hole
.pin_length Float Comp. (0.0-10.0)
The length of TH component
pins. (UNITS=INCH_MM)
Pin Length
.pin_name Text Comp. Name of the die bump. Name of Die Bump
.pitch Float Feature NOT USED
.placement_layer Text Comp.;
Pkg.
(0 - 64)
Receives the value of the
EMBEDDED_LAYER
parameter from the Cadence
Allegro file pins_<product
model>.out.
Placement Layer
.plated_type Option Feature (Standard, Press_fit)
Defines plated hole type for
drill tools.
Through Hole
Type
.plug_vias Boolean Step (Obsolete)
Indicates whether vias
should be plugged.
Plug Vias
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 261
February 2021
.polarity_marker Integer Comp.;
Pkg.
(1-10000; default=1)
An attribute indicating which
pin of the component is Pin
1.
Polarity Indicator
Pin
.primary_side Option Product
Model
(Top; Bottom)
Indicates the primary side for
this product model.
Primary Side
.producibility_level Option Product
Model
(levela; levelb; levelc;
default=levelb)
Defines the design density
level according to IPC-7351:
• levela — Maximum
(most) land protrusion
• levelb — Medium
(nominal) land protrusion
• levelc — Minimum
(least) land protrusion
IPC-7531 Density
Level
.rf Option Feature (original; fixed)
Defines the status of a radio
frequency surface—whether
or not they it has been
enlarged by 10 pixels.
original - indicates it has not
been enlarged.
fixed - indicates that it has
been enlarged.
Radio Frequency
Surface
.rot_correction Integer Comp.;
Pkg.
(0-359)
Component machine rotation
correction to apply.
Rotation
Correction
.rout_chain Integer Feature (0 to 100000; default=0)
Contains the serial number
of the chain to which the
feature belongs. Features
belonging to that chain are
rearranged in the features file
according to their order
inside the chain. Additional
attributes that are added to a
chained feature: .feed,
.speed, .rout_flag, .comp.
Rout Chain
Attribute Type Entity Description Display Name
262 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.rout_flag Integer Feature (0 to 100000; default=0).
For each chained feature this
attribute represents a
numeric value supplied to a
chain.
Rout Flag
.rout_plated Boolean Feature Indicates that a feature on a
rout layer is plated.
The .drill attribute is still
used in rout layers, but the
.rout_plated attribute takes
precedence on rout layers, if
both exist.
Plated Rout
.shave Boolean Feature (Default=NO)
Assigned to negative
features used to optimize
layer content for
manufacturing purposes.
Silkscreen Shaved
.shorted_pins Text Comp.;
Pkg.
(0-1000)
Used to define the electrical
connection provided by a
component that connects
disjoint pins of the same net.
• If the value is blank or
empty, then all pins in
the package are shorted
together. This is the
simplest way to record a
jumper component.
• If the value contains a
semicolon-separated list
of comma-separated pin
name collections, then
the attribute represents
multiple sets of shorted
pins. For example, for a
four-pin jumper
component that has pins
A1 and A2 shorted and
pins B1 and B2 shorted,
the value is
“A1,A2;B1,B2”.
Shorted Pins
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 263
February 2021
.sip Option Feature (Detected / Repaired).
Indicates the presence of a
SIP (self-intersecting
polygon).
Self Intersecting
Polygon
.sliver_fill Boolean Feature (YES, NO)
Assigned to all features
added to eliminate slivers.
Sliver Fill Patch
.smd Boolean Feature (YES, NO)
Assigned to outer layer pads
designated as toeprints that
are lands for SMD
components.
SMD
.smt_direction_botto
m
Option Step (Left2Right; Top2Bottom;
Right2Left; Bottom2Top)
Defines the direction of the
SMT process flow on the
bottom side.
SMT Direction
(Bottom)
.smt_direction_top Option Step (Left2Right; Top2Bottom;
Right2Left; Bottom2Top)
Defines the direction of the
SMT process flow on the top
side.
SMT Direction
(Top)
.soldermask_define_
no_edits
Boolean Feature Defines the exposed copper
region. Outer layer features
and soldermask features
assigned this attribute define
the region.
Soldermask
Defined Pad-No
Edits
.source_llayer Text Feature (0-64)
This attribute identifies the
Source Logical Layer of
features (traces) appearing
on signal or mixed layers.
Source Layer
.spacing_req Float Feature (0.0 to 100.0)
(UNITS=MILS_
MICRONS)
Spacing Required
Attribute Type Entity Description Display Name
264 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.speed Integer Feature (0 to 100000; default=0)
For a chained feature this
attribute sets the spindle
speed (in revolutions per
minute) when routing.
Rout Spindle
Speed
.spo_h_fact Float Feature;
Comp.
(0.3 <-> 2.0; default=0.8)
When .spo_h_mode =
Factor, .spo_h_fact specifies
the factor by which paste pad
heights are sized relative to
their SMD pads. For
example, 0.9 means height is
90% of SMD pad.
Solderpaste Height
Factor Value
.spo_h_mode Option Feature;
Comp.
(Distance, Factor, Value)
Defines how heights of paste
pads are sized: by distance,
factor or value.
Create Solderpaste
Height Mode
.spo_h_val Float Feature;
Comp.
(-500 to +500; default=5)
When
.spo_h_mode=Distance,
.spo_h_val is the reduction/
expansion in mils or microns
of the paste pad width
relative to the SMD pad
width. For example,
.sp_h_val=5.0 mils shrinks
paste pad by 5.0 mils (2.5
mils on each side) relative to
SMD pad width. Positive
number results in smaller
paste pad, negative number
in larger paste pad. When
.spo_h_mode=Value,
.spo_h_val becomes the
absolute width of the paste
pad (for example, 5.0 mils
becomes the actual width of
the paste pad).
(UNITS=MIL_MICRON)
Solderpaste Height
Relative Value
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 265
February 2021
.spo_move_center Float Feature;
Comp.
(range: -500 to 500,
default=0)
To move the paste pad from
the SMD pad center.
A positive value will move
the paste from the
component center out. A
negative value will move the
paste towards the component
center.
(UNITS=MIL_MICRON)
Shift Solderpaste
Symbol
.spo_p_fact Float Feature;
Comp.
(0.3 <-> 2.0; default=0.8)
When .spo_p_mode=Factor,
.spo_p_fact specifies the
factor by which paste pad
heights are sized relative to
their SMD pads. For
example, 0.9 means area is
90% of SMD pad.
Solderpaste
Nonstandard
Factor Value
.spo_p_mode Option Feature;
Comp.
(Distance, Area)
Defines how paste pads for
non-standard symbol SMD
pads are sized: by distance,
or area.
Create Solderpaste
Nonstandard Mode
.spo_p_val Float Feature;
Comp.
(-500 to 500; default=5)
When
.spo_p_mode=Distance,
.spo_p_val is the reduction/
expansion of the paste pad
width relative to the SMD
pad width expressed in mils
or microns. For example,
.sp_p_val=5.0 mils shrinks
paste pad by 5.0 mils (2.5
mils on each side) relative to
SMD pad width. Positive
number results in smaller
paste pad, negative number
in larger paste pad.
(UNITS=MIL_MICRON)
Create Solderpaste
Nonstandard Mode
Attribute Type Entity Description Display Name
266 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.spo_s_fact Float Feature;
Comp.
(0.3 <-> 2.0; default=0.8)
When .spo_s_mode=Factor,
.spo_s_fact specifies the
factor by which paste pad
heights are sized relative to
their non-standard SMD
pads. For example, 0.9
means height is 90% of
SMD pad.
Solderpaste
Symmetric Factor
Value
.spo_s_mode Option Feature;
Comp.
(Distance, Factor, Value,
Area)
Defines how heights of paste
pads for symmetric SMD
pads are sized: by distance,
factor, value, area.
Create Solderpaste
Symmetric Mode
.spo_s_val Float Feature;
Comp.
(-500 to 500; default=5)
When
.spo_s_mode=Distance,
.spo_s_val is the reduction/
expansion expressed in mils
or microns of the paste pad
width relative to their nonstandard SMD pad width.
When .spo_h_mode=Value,
.spo_h_val becomes the
absolute size of the paste
pad.
(UNITS=MIL_MICRON)
Solderpaste
Symmetric
Relative Value
.spo_shape Text Feature;
Comp.
Specifies the symbol to be
used as the solder paste pad
applied to a feature (smd
pad) or to the toeprints of a
component. The initial
orientation of the symbol is
also affected by the
.spo_shape_rotate attribute
when defined.
Apply Solderpaste
Symbol
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 267
February 2021
.spo_shape_rotate Float Feature;
Comp.
(0 to 360; default=0)
Specifies the initial rotation
of the symbol defined in the
.spo_shape attribute. Both
.spo_shape_rotate and
.spo_shape should appear as
a pair at the level at which
they are activated
(component or feature). This
means, for example, that an
.spo_shape_rotate defined
without a corresponding
.spo_shape in the feature
level is ignored.
Apply Solderpaste
Rotation
.spo_shape_stretch Boolean Feature;
Comp.
(Default=NO)
Specifies that the symbol
defined in .spo_shape is to
be stretched to fit the copper
pad dimensions. The stretch
limits are determined by
applying the SPO width and
height parameters (pp_w_*,
pp_h_*) or attributes
(.spo_w_*, .spo_h_*) on the
copper pad bounding box.
Both .spo_shape_stretch and
.spo_shape should appear as
a pair at the level at which
they are activated
(component or feature). This
means, for example, that an
.spo_shape_stretch defined
without a corresponding
.spo_shape in the feature
level is ignored.
Extend Solderpaste
Symbol
.spo_w_fact Float Feature,
Comp.
(0.3 <-> 2.0; default=0.8)
When .spo_w_mode=Factor,
.spo_w_fact specifies the
factor by which paste pad
widths are sized relative to
their SMD pads. For
example, .spo_w_fact=0.9
width of paste pad is 90% of
width of SMD pad.
Solderpaste Width
Factor Value
Attribute Type Entity Description Display Name
268 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.spo_w_mode Option Feature,
Comp.
(Distance; Factor; Value;
Area)
Defines how widths of paste
pads are sized: by distance,
factor or value.
Create Solderpaste
Wide Mode
.spo_w_val Float Feature,
Comp.
(-500 to 500; default=5)
When
.spo_w_mode=Distance,
.spo_w_val is the reduction/
expansion expressed in mils
or microns of the paste pad
width relative to the SMD
pad width. For example,
.sp_w_val=5.0 mils shrinks
paste pad by 5.0 mils (2.5
mils on each side) relative to
SMD pad width. Positive
number results in smaller
paste pad, negative number
in larger paste pad. When
.spo_w_mode=Value,
.spo_w_val becomes the
absolute width of the paste
pad (for example, 5.0 mils
becomes the actual width of
the paste pad).
(UNITS=MIL_MICRON)
Solderpaste Width
Relative Value
.src_orientation Integer Comp. (-1 to 3; default=-1)
Defines the zero orientation
of this component relative to
its orientation in the
packages database. That is,
the orientation of the
component on the automated
assembly tape, or (for
manually inserted
components) the orientation
in which pin #1 is “in the
same position” for all similar
components.
Source Orientation
.station Text Comp.;
Pkg.
NOT USED
(Min_len= 0, Max_len=255)
ALE Station
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 269
February 2021
.string Text Feature (0 to 1000)
For nomenclature features,
the value of this attribute is
the original text string of
which the feature is a part.
See “TEXT Attribute
Definition” on page 90.
Copper Text String
.string_angle Float Feature (0 to 360)
For nomenclature features,
the value of this attribute is
the original (in the input file)
text rotation angle of which
the feature is a part.
String Angle
.string_font Text Feature (1 to 100 characters)
For nomenclature features,
the value of this attribute is
the font of the original text
string of which this feature is
a part.
String Font
.string_justification Option Feature String justification: tl, tc, tr,
cl, cc, cr, bl, bc, br
tl, tc, tr — top-left, topcenter, top-right
cl, cc, cr — center-left,
center-center, center-right
bl, bc, br — bottom-left,
bottom-center, bottom-right
(Default=bl)
String Justification
.string_mirrored Boolean Feature (YES, NO)
Assigned to mirrored strings.
String Mirror
.tear_drop Boolean Feature (YES, NO)
Assigned to features
representing a tear drop.
Tear Drop Feature
.teardrop_additio
n_allowed_on_inner
Boolean Step Indicates whether it is
allowed to add teardrops on
inner copper layers.
Teardrop Addition
Allowed on Inner
.teardrop_additio
n_allowed_on_outer
Boolean Step Indicates whether it is
allowed to add teardrops on
outer copper layers.
Teardrop Addition
Allowed on Outer
Attribute Type Entity Description Display Name
270 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.technology Text Product
Model
(0-100)
Defines the technology used
in creating the product
model.
Technology
.test_point Boolean Feature (YES, NO)
Assigned to features that are
used for In-Circuit Testing
operations.
ICT Test Point
.test_potential Option Feature An attribute attached to
features being considered as
testpoints (potential
testpoints) for In-Circuit
Testing operations.
potential_tp_by_analysis—a
feature meeting all criteria of
the Testpoint Allocation
Action.
potential_tp_manually—a
feature to be used as a
testpoint though it does not
meet all criteria.
not_potential_tp_manually
—a feature not to be used as
a testpoint even though it
meets all criteria.
Test Point Potential
.testpoint_count Integer Net (-1 to 10000)
Specifies the number of
testpoints expected on this
net. If this variable is not
defined, or its value is -1, the
number of expected
testpoints in unlimited. A
value of -1 is given to a net
that does not require a
specific number of test
points.
Expected Test
Point Count
.testpoint_name Text Feature (0 to 64)
Name of the testpoint.
Testpoint Name
Attribute Type Entity Description Display Name
System Attributes
ODB++ System Attributes - Alphabetical List
ODB++Design Format Specification, 8.1 Update 3 271
February 2021
.testprobe_diameter Float Feature (10 to 10000; default=30)
Used to provide information
on the size of test probes.
(UNITS=MIL_MICRON)
Test Probe
Diameter
.thickness_over_cu Float Step (1.0 to 1000.0; default=1.0)
(UNITS=MIL_MICRON)
Total Thickness
over Copper
.thickness_over_sm Float Step (1.0 to 1000.0; default=1.0)
(UNITS=MIL_MICRON)
Total Thickness
over Soldermask
.thvpad_required Boolean Comp.;
Pkg.
(Default=NO)
Assigned to components that
require thieving pads (such
as fine pitch SOIC).
Thieving Pad
Required
.toep_nochk_o_side Boolean Comp.;
Pkg.
(Default=NO)
Assigned to components so
that their toeprints on the
opposite side will not be
taken into account.
Toeprint Spacing
on Placement Side
.toep_spacing_req Float Comp.;
Pkg.
(1 to 500; default=5)
Defines for components the
maximum pad to pad
spacing measurements.
(UNITS=MIL_MICRON)
Required Toeprint
Spacing
.tooling_hole Boolean Feature (YES, NO)
Used on drill features to
indicate that they are tooling
holes.
Tooling Hole
.user_bom_rev Text Comp.;
Pkg.
(0-1000)
Used to describe user
modified component
extensions.
User Define
Extension
.variant_list Text Product
Model
(0-1000)
Consists of a list of all
possible variants of a
product model. The list
contains variant names
separated by a colon (:). See
“Component Variants” on
page 42.
Product Model
Variant List
Attribute Type Entity Description Display Name
272 ODB++Design Format Specification, 8.1 Update 3
System Attributes
ODB++ System Attributes - Alphabetical List
February 2021
.vcut Boolean Feature (YES, NO)
Assigned to rout features
that are cut in a V-shape.
V-Score Edge
.via_in_pad Boolean Feature (YES, NO)
Assigned to via drills located
in copper surfaces or pads.
To define a via drill as filled
and plated over (VIPPO), set
this attribute in combination
with .ipc_via_type_top=7
and
.ipc_via_type_bottom=7.
Via in Pad
.via_tenting bool Step (Obsolete)
Indicates whether there are
tented vias.
Via Tenting
.via_type Option Feature (Drilled; Laser; Photo)
Assigned to via drills for
further classification.
Via Type
.viacap_layer Option Step (Obsolete)
(Top; Bottom; Both; None;
default=None)
Defines on which layer via
capping can occur, if any.
Via Capping on
Layer
.vpl1_pkg_name Text Comp. (0 to 100 characters)
The old name of the package
of this component, in VPL1.
VPL Package
Name (BVPL1)
.wheel_type Option Wheel (Gerber; Tools)
Specifies for a wheel
whether it is used for Gerber
files translation or for drill
file translation.
Wheel Type
.z0impedance Float Layer (0.0 to 10000.0; default=0.0)
The typical characteristic
impedance (in ohms)
required for a layer.
Z0/Impedance
package odb2p
import (
"reflect"
)
func getSysAttr(name string) (attr, bool) {
if name[0] == '.' {
name = name[1:]
}
for i := range sysattr {
if sysattr[i].Name == name {
return sysattr[i], true
}
}
return attr{}, false
}
type attr struct {
Name string
Kind reflect.Kind
}
var sysattr = []attr{
{Name: "all_eda_layers", Kind: reflect.String},
{Name: "allowed_to_remove_non_functional_pads", Kind: reflect.Bool},
{Name: "aoi_cpbm", Kind: reflect.Int},
{Name: "aoi_cpcu", Kind: reflect.Int},
{Name: "aoi_drbm", Kind: reflect.Int},
{Name: "aoi_drcu", Kind: reflect.Int},
{Name: "aoi_value", Kind: reflect.Int},
{Name: "ar_pad_drill_bottom_max", Kind: reflect.Float64},
{Name: "ar_pad_drill_bottom_min", Kind: reflect.Float64},
{Name: "ar_pad_drill_inner_max", Kind: reflect.Float64},
{Name: "ar_pad_drill_inner_min", Kind: reflect.Float64},
{Name: "ar_pad_drill_top_max", Kind: reflect.Float64},
{Name: "ar_pad_drill_top_min", Kind: reflect.Float64},
{Name: "ar_sm_drill_bottom_max", Kind: reflect.Float64},
{Name: "ar_sm_drill_bottom_min", Kind: reflect.Float64},
{Name: "ar_sm_drill_top_max", Kind: reflect.Float64},
{Name: "ar_sm_drill_top_min", Kind: reflect.Float64},
{Name: "ar_sm_pad_bottom_max", Kind: reflect.Float64},
{Name: "ar_sm_pad_bottom_min", Kind: reflect.Float64},
{Name: "ar_sm_pad_top_max", Kind: reflect.Float64},
{Name: "ar_sm_pad_top_min", Kind: reflect.Float64},
{Name: "area_name", Kind: reflect.String},
{Name: "array_with_rotation", Kind: reflect.Bool},
{Name: "artwork", Kind: reflect.String},
{Name: "assembly_proc_bottom", Kind: reflect.String},
{Name: "assembly_proc_top", Kind: reflect.String},
{Name: "axi_direction", Kind: reflect.Uintptr},
{Name: "backdrill_penetrate_stop_layer", Kind: reflect.String},
{Name: "bit", Kind: reflect.String},
{Name: "board_mark", Kind: reflect.Uintptr},
{Name: "board_thickness", Kind: reflect.Float64},
{Name: "bond_name", Kind: reflect.String},
{Name: "bonding_profile", Kind: reflect.String},
{Name: "break_away", Kind: reflect.Bool},
{Name: "brk_point", Kind: reflect.Bool},
{Name: "bulk_resistivity", Kind: reflect.Float64},
{Name: "cad_local_footprint_change", Kind: reflect.Bool},
{Name: "cad_package_name", Kind: reflect.String},
{Name: "cad_part_override", Kind: reflect.String},
{Name: "center_fiducial", Kind: reflect.Bool},
{Name: "centroid_correction_x", Kind: reflect.Float64},
{Name: "centroid_correction_y", Kind: reflect.Float64},
{Name: "color", Kind: reflect.String},
{Name: "comment", Kind: reflect.String},
{Name: "comp", Kind: reflect.Uintptr},
{Name: "comp_height", Kind: reflect.Float64},
{Name: "comp_height_area", Kind: reflect.Int},
{Name: "comp_height_max", Kind: reflect.Float64},
{Name: "comp_htol_minus", Kind: reflect.Float64},
{Name: "comp_htol_plus", Kind: reflect.Float64},
{Name: "comp_ign_spacing", Kind: reflect.Bool},
{Name: "comp_ignore", Kind: reflect.Bool},
{Name: "comp_mount_type", Kind: reflect.Uintptr},
{Name: "comp_name", Kind: reflect.String},
{Name: "comp_polarity", Kind: reflect.Uintptr},
{Name: "comp_type", Kind: reflect.Uintptr},
{Name: "comp_type2", Kind: reflect.Uintptr},
{Name: "comp_variant_list", Kind: reflect.String},
{Name: "comp_weight", Kind: reflect.Float64},
{Name: "copper_weight", Kind: reflect.Float64},
{Name: "critical_net", Kind: reflect.Bool},
{Name: "critical_tp", Kind: reflect.Bool},
{Name: "cu_base", Kind: reflect.Bool},
{Name: "current_variant", Kind: reflect.String},
{Name: "customer", Kind: reflect.String},
{Name: "cut_line", Kind: reflect.Int},
{Name: "data_source", Kind: reflect.String},
{Name: "desc1....10", Kind: reflect.String},
{Name: "design_center", Kind: reflect.String},
{Name: "design_origin_x", Kind: reflect.Int},
{Name: "design_origin_y", Kind: reflect.Int},
{Name: "device_style", Kind: reflect.String},
{Name: "device_type", Kind: reflect.String},
{Name: "device_value", Kind: reflect.String},
{Name: "device_value_ntol", Kind: reflect.Float64},
{Name: "device_value_ptol", Kind: reflect.Float64},
{Name: "dielectric_constant", Kind: reflect.Float64},
{Name: "diff_pair", Kind: reflect.String},
{Name: "dpair_gap", Kind: reflect.Float64},
{Name: "drc_add_rad", Kind: reflect.Int},
{Name: "drc_assembly_lyrs", Kind: reflect.Uintptr},
{Name: "drc_bend_keepout", Kind: reflect.Bool},
{Name: "drc_board", Kind: reflect.Bool},
{Name: "drc_comp_height", Kind: reflect.Bool},
{Name: "drc_comp_height_lyr", Kind: reflect.String},
{Name: "drc_comp_keepin", Kind: reflect.Bool},
{Name: "drc_comp_keepin_lyr", Kind: reflect.String},
{Name: "drc_comp_keepout", Kind: reflect.Bool},
{Name: "drc_comp_keepout_lyr", Kind: reflect.String},
{Name: "drc_etch_lyrs", Kind: reflect.String},
{Name: "drc_etch_lyrs_all", Kind: reflect.Bool},
{Name: "drc_etch_lyrs_bit", Kind: reflect.String},
{Name: "drc_max_height", Kind: reflect.Float64},
{Name: "drc_mech", Kind: reflect.Bool},
{Name: "drc_min_height", Kind: reflect.Float64},
{Name: "drc_min_space", Kind: reflect.Int},
{Name: "drc_min_width", Kind: reflect.Int},
{Name: "drc_pad_keepout", Kind: reflect.Bool},
{Name: "drc_pad_keepout_lyr", Kind: reflect.String},
{Name: "drc_plane_keepout", Kind: reflect.Bool},
{Name: "drc_plane_keepout_lyr", Kind: reflect.String},
{Name: "drc_ref_des", Kind: reflect.String},
{Name: "drc_route_keepin", Kind: reflect.Bool},
{Name: "drc_route_keepin_lyr", Kind: reflect.String},
{Name: "drc_route_keepout", Kind: reflect.Bool},
{Name: "drc_route_keepout_lyr", Kind: reflect.String},
{Name: "drc_tp_keepin", Kind: reflect.Bool},
{Name: "drc_tp_keepin_lyr", Kind: reflect.String},
{Name: "drc_tp_keepout", Kind: reflect.Bool},
{Name: "drc_tp_keepout_lyr", Kind: reflect.String},
{Name: "drc_trace_keepout", Kind: reflect.Bool},
{Name: "drc_trace_keepout_lyr", Kind: reflect.String},
{Name: "drc_via_keepout", Kind: reflect.Bool},
{Name: "drc_via_keepout_lyr", Kind: reflect.String},
{Name: "drill", Kind: reflect.Uintptr},
{Name: "drill_flag", Kind: reflect.Int},
{Name: "drill_layer_direction", Kind: reflect.Uintptr},
{Name: "drill_noopt", Kind: reflect.Bool},
{Name: "drill_stage", Kind: reflect.Uintptr},
{Name: "dxf_dimension", Kind: reflect.Bool},
{Name: "eclass_accumulative_parallel_dist_list", Kind: reflect.String},
{Name: "eclass_accumulative_parallel_max_length_list", Kind: reflect.String},
{Name: "eclass_impedance", Kind: reflect.Float64},
{Name: "eclass_individual_parallel_dist_list", Kind: reflect.String},
{Name: "eclass_individual_parallel_max_length_list", Kind: reflect.String},
{Name: "eclass_individual_parallel_min_jog_list", Kind: reflect.String},
{Name: "eclass_max_stub_length", Kind: reflect.Float64},
{Name: "eclass_max_via_count", Kind: reflect.Int},
{Name: "eclass_min_stub_length", Kind: reflect.Float64},
{Name: "eclass_rise_time", Kind: reflect.Float64},
{Name: "eclass_voltage_swing", Kind: reflect.Float64},
{Name: "ecmp_layer_tech", Kind: reflect.Uintptr},
{Name: "ecmp_max_value", Kind: reflect.Float64},
{Name: "ecmp_min_value", Kind: reflect.Float64},
{Name: "ecmp_name", Kind: reflect.String},
{Name: "ecmp_type", Kind: reflect.Uintptr},
{Name: "ecmp_value", Kind: reflect.Float64},
{Name: "eco", Kind: reflect.String},
{Name: "eda_define_imp_line", Kind: reflect.Bool},
{Name: "eda_dimension_id", Kind: reflect.Int},
{Name: "eda_layers", Kind: reflect.String},
{Name: "electrical_class", Kind: reflect.String},
{Name: "et_adjacency", Kind: reflect.Float64},
{Name: "et_align", Kind: reflect.Bool},
{Name: "extended", Kind: reflect.Int},
{Name: "fab_drc", Kind: reflect.String},
{Name: "feature_ignore", Kind: reflect.Bool},
{Name: "feed", Kind: reflect.Int},
{Name: "fiducial_name", Kind: reflect.String},
{Name: "fiducial_rdlist", Kind: reflect.String},
{Name: "fill_dx", Kind: reflect.Float64},
{Name: "fill_dy", Kind: reflect.Float64},
{Name: "foot_down", Kind: reflect.Bool},
{Name: "fs_direction_bottom", Kind: reflect.Uintptr},
{Name: "fs_direction_top", Kind: reflect.Uintptr},
{Name: "full_plane", Kind: reflect.Bool},
{Name: "gencad_device_ntol", Kind: reflect.Float64},
{Name: "gencad_device_ptol", Kind: reflect.Float64},
{Name: "gencad_device_style", Kind: reflect.String},
{Name: "gencad_device_type", Kind: reflect.String},
{Name: "gencad_device_value", Kind: reflect.String},
{Name: "geometry", Kind: reflect.String},
{Name: "global_camtek_aoiset", Kind: reflect.String},
{Name: "gold_plating", Kind: reflect.Bool},
{Name: "gold_plating_defined_by", Kind: reflect.Uintptr},
{Name: "guard_comp", Kind: reflect.Bool},
{Name: "hatch", Kind: reflect.Bool},
{Name: "hatch_border", Kind: reflect.Bool},
{Name: "hatch_serrated_border", Kind: reflect.Bool},
{Name: "hdi_assembly_tech", Kind: reflect.Uintptr},
{Name: "hdi_drc", Kind: reflect.String},
{Name: "hp3070_comment", Kind: reflect.String},
{Name: "hp3070_common_pin", Kind: reflect.String},
{Name: "hp3070_contact_pin", Kind: reflect.String},
{Name: "hp3070_device", Kind: reflect.String},
{Name: "hp3070_fail_msg", Kind: reflect.String},
{Name: "hp3070_hi_value", Kind: reflect.Float64},
{Name: "hp3070_lo_value", Kind: reflect.Float64},
{Name: "hp3070_probe_access", Kind: reflect.String},
{Name: "hp3070_seriesr", Kind: reflect.Float64},
{Name: "hp3070_test", Kind: reflect.Bool},
{Name: "hp3070_tol_neg", Kind: reflect.Float64},
{Name: "hp3070_tol_pos", Kind: reflect.Float64},
{Name: "hp3070_type", Kind: reflect.String},
{Name: "hp3070_value", Kind: reflect.String},
{Name: "ignore_net", Kind: reflect.Bool},
{Name: "image_dx.image_dy", Kind: reflect.Float64},
{Name: "imp_constraint_id", Kind: reflect.Int},
{Name: "imp_line", Kind: reflect.Bool},
{Name: "imp_polyline_id", Kind: reflect.Int},
{Name: "impedance_test_width", Kind: reflect.Float64},
{Name: "ind_orient_req", Kind: reflect.Bool},
{Name: "inp_file", Kind: reflect.String},
{Name: "ipc_class", Kind: reflect.Uintptr},
{Name: "ipc_via_type_bottom", Kind: reflect.String},
{Name: "ipc_via_type_top", Kind: reflect.String},
{Name: "is_buried", Kind: reflect.Bool},
{Name: "is_capped", Kind: reflect.Bool},
{Name: "is_shadowed", Kind: reflect.Bool},
{Name: "is_shield", Kind: reflect.Bool},
{Name: "is_wirebonded", Kind: reflect.Bool},
{Name: "label_clearance", Kind: reflect.Bool},
{Name: "layer_class", Kind: reflect.String},
{Name: "layer_dielectric", Kind: reflect.Float64},
{Name: "layer_hdi_type", Kind: reflect.Uintptr},
{Name: "layer_side", Kind: reflect.Uintptr},
{Name: "lead_form", Kind: reflect.String},
{Name: "local_fiducial_dist", Kind: reflect.Float64},
{Name: "loss_tangent", Kind: reflect.Float64},
{Name: "lpol_done", Kind: reflect.Bool},
{Name: "lpol_surf", Kind: reflect.Bool},
{Name: "lyr_prf_ref", Kind: reflect.Int},
{Name: "machine_pkg", Kind: reflect.String},
{Name: "mechanical", Kind: reflect.Bool},
{Name: "merge_processes", Kind: reflect.String},
{Name: "min_line_width", Kind: reflect.Float64},
{Name: "moat", Kind: reflect.Bool},
{Name: "mount_hole", Kind: reflect.Bool},
{Name: "mount_stage", Kind: reflect.Int},
{Name: "n_electric", Kind: reflect.Bool},
{Name: "needs_guarding", Kind: reflect.Bool},
{Name: "net_length_max", Kind: reflect.Float64},
{Name: "net_length_min", Kind: reflect.Float64},
{Name: "net_name", Kind: reflect.String},
{Name: "net_physical_type", Kind: reflect.String},
{Name: "net_point", Kind: reflect.Bool},
{Name: "net_spacing_type", Kind: reflect.String},
{Name: "net_test_current", Kind: reflect.Float64},
{Name: "net_test_type", Kind: reflect.Uintptr},
{Name: "net_test_voltage", Kind: reflect.Float64},
{Name: "net_type", Kind: reflect.String},
{Name: "neutralization_angle", Kind: reflect.Float64},
{Name: "neutralization_info", Kind: reflect.String},
{Name: "neutralization_reviewed", Kind: reflect.Bool},
{Name: "neutralization_ss_layers", Kind: reflect.String},
{Name: "no_copper_shape_under", Kind: reflect.Bool},
{Name: "no_fiducial_check", Kind: reflect.Bool},
{Name: "no_hole_under", Kind: reflect.Bool},
{Name: "no_pop", Kind: reflect.Bool},
{Name: "no_protrude_board", Kind: reflect.Bool},
{Name: "no_text_under", Kind: reflect.Bool},
{Name: "no_tp_under", Kind: reflect.Bool},
{Name: "no_trace_under", Kind: reflect.Bool},
{Name: "no_uncap_via_under", Kind: reflect.Bool},
{Name: "nomenclature", Kind: reflect.Bool},
{Name: "non_tp", Kind: reflect.Bool},
{Name: "num_local_fiducials", Kind: reflect.Int},
{Name: "orbotech_plot_stamp", Kind: reflect.Bool},
{Name: "orig_surf", Kind: reflect.Int},
{Name: "otherside_keepout", Kind: reflect.Uintptr},
{Name: "out_angle", Kind: reflect.Uintptr},
{Name: "out_break", Kind: reflect.Bool},
{Name: "out_comp", Kind: reflect.Float64},
{Name: "out_drill_full", Kind: reflect.Bool},
{Name: "out_drill_optional", Kind: reflect.Bool},
{Name: "out_drill_order", Kind: reflect.Int},
{Name: "out_flag", Kind: reflect.Int},
{Name: "out_mirror", Kind: reflect.Bool},
{Name: "out_name", Kind: reflect.String},
{Name: "out_orig", Kind: reflect.Bool},
{Name: "out_rout_optional", Kind: reflect.Bool},
{Name: "out_rout_order", Kind: reflect.Int},
{Name: "out_scale", Kind: reflect.Bool},
{Name: "out_x_scale", Kind: reflect.Float64},
{Name: "out_y_scale", Kind: reflect.Float64},
{Name: "output_dcode", Kind: reflect.Int},
{Name: "package_type", Kind: reflect.String},
{Name: "package_version", Kind: reflect.String},
{Name: "pad_usage", Kind: reflect.Uintptr},
{Name: "padstack_id", Kind: reflect.Int},
{Name: "part_desc1...10", Kind: reflect.String},
{Name: "patch", Kind: reflect.Bool},
{Name: "pattern_fill", Kind: reflect.Bool},
{Name: "pf_optimized", Kind: reflect.Bool},
{Name: "physical_type", Kind: reflect.String},
{Name: "pilot_hole", Kind: reflect.Int},
{Name: "pin_length", Kind: reflect.Float64},
{Name: "pin_name", Kind: reflect.String},
{Name: "placement_layer", Kind: reflect.String},
{Name: "plated_type", Kind: reflect.Uintptr},
{Name: "plug_vias", Kind: reflect.Bool},
{Name: "polarity_marker", Kind: reflect.Int},
{Name: "primary_side", Kind: reflect.Uintptr},
{Name: "producibility_level", Kind: reflect.Uintptr},
{Name: "rf", Kind: reflect.Uintptr},
{Name: "rot_correction", Kind: reflect.Int},
{Name: "rout_chain", Kind: reflect.Int},
{Name: "rout_flag", Kind: reflect.Int},
{Name: "rout_plated", Kind: reflect.Bool},
{Name: "shave", Kind: reflect.Bool},
{Name: "shorted_pins", Kind: reflect.String},
{Name: "sip", Kind: reflect.Uintptr},
{Name: "sliver_fill", Kind: reflect.Bool},
{Name: "smd", Kind: reflect.Bool},
{Name: "smt_direction_bottom", Kind: reflect.Uintptr},
{Name: "smt_direction_top", Kind: reflect.Uintptr},
{Name: "soldermask_define_no_edits", Kind: reflect.Bool},
{Name: "source_llayer", Kind: reflect.String},
{Name: "spacing_req", Kind: reflect.Float64},
{Name: "speed", Kind: reflect.Int},
{Name: "spo_h_fact", Kind: reflect.Float64},
{Name: "spo_h_mode", Kind: reflect.Uintptr},
{Name: "spo_h_val", Kind: reflect.Float64},
{Name: "spo_move_center", Kind: reflect.Float64},
{Name: "spo_p_fact", Kind: reflect.Float64},
{Name: "spo_p_mode", Kind: reflect.Uintptr},
{Name: "spo_p_val", Kind: reflect.Float64},
{Name: "spo_s_fact", Kind: reflect.Float64},
{Name: "spo_s_mode", Kind: reflect.Uintptr},
{Name: "spo_s_val", Kind: reflect.Float64},
{Name: "spo_shape", Kind: reflect.String},
{Name: "spo_shape_rotate", Kind: reflect.Float64},
{Name: "spo_shape_stretch", Kind: reflect.Bool},
{Name: "spo_w_fact", Kind: reflect.Float64},
{Name: "spo_w_mode", Kind: reflect.Uintptr},
{Name: "spo_w_val", Kind: reflect.Float64},
{Name: "src_orientation", Kind: reflect.Int},
{Name: "station", Kind: reflect.String},
{Name: "string", Kind: reflect.String},
{Name: "string_angle", Kind: reflect.Float64},
{Name: "string_font", Kind: reflect.String},
{Name: "string_justification", Kind: reflect.Uintptr},
{Name: "string_mirrored", Kind: reflect.Bool},
{Name: "tear_drop", Kind: reflect.Bool},
{Name: "teardrop_addition_allowed_on_inner", Kind: reflect.Bool},
{Name: "teardrop_addition_allowed_on_outer", Kind: reflect.Bool},
{Name: "technology", Kind: reflect.String},
{Name: "test_point", Kind: reflect.Bool},
{Name: "test_potential", Kind: reflect.Uintptr},
{Name: "testpoint_count", Kind: reflect.Int},
{Name: "testpoint_name", Kind: reflect.String},
{Name: "testprobe_diameter", Kind: reflect.Float64},
{Name: "thickness_over_cu", Kind: reflect.Float64},
{Name: "thickness_over_sm", Kind: reflect.Float64},
{Name: "thvpad_required", Kind: reflect.Bool},
{Name: "toep_nochk_o_side", Kind: reflect.Bool},
{Name: "toep_spacing_req", Kind: reflect.Float64},
{Name: "tooling_hole", Kind: reflect.Bool},
{Name: "user_bom_rev", Kind: reflect.String},
{Name: "variant_list", Kind: reflect.String},
{Name: "vcut", Kind: reflect.Bool},
{Name: "via_in_pad", Kind: reflect.Bool},
{Name: "via_type", Kind: reflect.Uintptr},
{Name: "viacap_layer", Kind: reflect.Uintptr},
{Name: "vpl1_pkg_name", Kind: reflect.String},
{Name: "wheel_type", Kind: reflect.Uintptr},
{Name: "z0impedance", Kind: reflect.Float64},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment