34
PCB123 XML Neutral Library Format Specification Overview The PCB123 layout system has adopted XML for its data interchange format. XML is a hugely popular standard developed by the World Wide Web Consortium (W3C) that was designed to transport virtually any type of data in a highly organized format which can be checked for syntactic and even semantic correctness automatically by a conforming XML reader. If you are only interested in learning the XML NLF format to make hand edits to existing files then you can skip ahead to the format description to learn about the different object records and their fields. However, if you plan on programmatically reading or emitting XML NLF files then the following information may prove beneficial. XML Implementation If you are not familiar with the XML format and XML terminology then it is recommended that you take a look at the W3C web portal at www.w3c.org . This site has a vast repository of all things XML including introductory material. First, you may be interested to know that Sunstone provides a fairly comprehensive schema for the XML NLF file format. The schema is available in both the W3C Schema Definition (.xsd) and native Document Type Definition (.dtd). To obtain these schema definitions please visit www.pcb123.com . Validating and checking an XML NLF file for well- formedness against this schema almost ensures the file will load without problems into the PCB123 system. The XML NLF format was structured as a hierarchical database with an eye almost exclusively toward XML DOM parsing. Virtually no consideration has been made for a SAX reader due to the difficulties in writing a robust stream reader for hierarchical structures. The DOM is much more natural and the XML NLF has been structured to make this particularly true. XML NLF elements do not contain text data. All PCB objects are described as elements whose data are defined in element attributes. Describing all the fields of an object in specific name/value attribute pairs insulates

PCB123 XML Neutral Library Format Specification

Embed Size (px)

Citation preview

Page 1: PCB123 XML Neutral Library Format Specification

PCB123 XML Neutral Library Format Specification

OverviewThe PCB123 layout system has adopted XML for its data interchange format. XML is a hugely popular standard developed by the World Wide Web Consortium (W3C) that was designed to transport virtually any type of data in a highly organized format which can be checked for syntactic and even semantic correctness automatically by a conforming XML reader.

If you are only interested in learning the XML NLF format to make hand edits to existing files then you can skip ahead to the format description to learn about the different object records and their fields. However, if you plan on programmatically reading or emitting XML NLF files then the following information may prove beneficial.

XML ImplementationIf you are not familiar with the XML format and XML terminology then it is recommended that you take a look at the W3C web portal at www.w3c.org. This site has a vast repository of all things XML including introductory material.

First, you may be interested to know that Sunstone provides a fairly comprehensive schema for the XML NLF file format. The schema is available in both the W3C Schema Definition (.xsd) and native Document Type Definition (.dtd). To obtain these schema definitions please visit www.pcb123.com. Validating and checking an XML NLF file for well-formedness against this schema almost ensures the file will load without problems into the PCB123 system.

The XML NLF format was structured as a hierarchical database with an eye almost exclusively toward XML DOM parsing. Virtually no consideration has been made for a SAX reader due to the difficulties in writing a robust stream reader for hierarchical structures. The DOM is much more natural and the XML NLF has been structured to make this particularly true.

XML NLF elements do not contain text data. All PCB objects are described as elements whose data are defined in element attributes. Describing all the fields of an object in specific name/value attribute pairs insulates the parser and emitter from format changes and allows for the loading of object values in any order desired.

NLF Format DescriptionNLF elements define the hierarchical data structure but it is the element attributes that carry the actual data.

The diagram below shows the basic hierarchical relationship of all the elements in the XML NLF format.

Page 2: PCB123 XML Neutral Library Format Specification
Page 3: PCB123 XML Neutral Library Format Specification

Below, each element description begins with a picture of the semantic relationship with other elements. The meaning of the symbols are as follows:

Indicates a choice of child elements in any order.

Indicates a choice of zero or more child elements in any order.

Indicates a sequence of zero or more child elements in a set order.

The semantic diagram for each element is followed by a table of the recognized attributes for that element. Each attribute will indicate if it is required or optional, its default value, and its range. Except where noted, there are no limits to the number of elements in an NLF file nor are there any limits on such things as string lengths.

Many attributes use uniform syntactic and semantic rules. They are as follows:

Attribute type Rule Example

Coordinate

Positive or negative integer or decimal number, optionally with one of the following suffixes:

in = inchescm = centimentersmm = millimetersmil = mils (thousands of an inch)

If no suffix is supplied, the default is assumed to be inches.

Coordinates are generally limited to +/- 100.0 inches with a maximum precision of 1/10,000,000th of an inch.

-1.03in2.54cm

-25.4mm1030mil

Width or Size

Positive integer or decimal number, optionally with one of the following suffixes:

in = inchescm = centimentersmm = millimetersmil = mils (thousands of an inch)

If no suffix is supplied, the default is assumed to be inches.

Widths are generally limited to +/- 100.0 inches with a maximum precision of 1/10,000,000th of an inch.

.007.007in7mil

Angle Positive or negative integer or decimal number of degrees optionally followed by a degree symbol “º”.

Positive rotations are counter-clockwise.

Rotations must be between 0 and 360 degrees with

0.000º33.3333º

-180.0

Page 4: PCB123 XML Neutral Library Format Specification

a maximum precision of 1/10,000th of a degree.

Boolean valueEither true, false, 0, or 1. true

1

Layer

Must be one of the following literal strings:

Rat = Connection layerAll = Object on all layers (restricted to board outline)Top = Object on top layerInner1 = Object on inner layer 1Inner2 = Object on inner layer 2Inner3 = Object on inner layer 3Inner4 = Object on inner layer 4Inner5 = Object on inner layer 5Inner6 = Object on inner layer 6Inner7 = Object on inner layer 7Inner8 = Object on inner layer 8Inner9 = Object on inner layer 9Inner10 = Object on inner layer 10Inner11 = Object on inner layer 11Inner12 = Object on inner layer 12Inner13 = Object on inner layer 13Inner14 = Object on inner layer 14Bot = Object on bottom layerDrillDwg = Object on drill drawing layerASTop = Object on top assembly layerASBot = Object on bottom assembly layerSSTop = Object on top silkscreen layerSSBot = Object on bottom silkscreen layerSMTop = Object on top soldermask layerSMBot = Object on bottom soldermask layerMechanical = Object on mechanical layerSurface = Library object on a surface layerInner = Library object on an inner layerPlane = Library object on a plane layerSilk = Library object on a silkscreen layerMask = Library object on a soldermask layerAssembly = Library object on an assembly layerDimension = Library object on a dimension layer

Page 5: PCB123 XML Neutral Library Format Specification

PCB123_NLF Element (Root Element)

The PCB123_NLF element must be present in the NLF file and must be the root element.

PCB123_NLF Element Attributes

Attribute Type Description RequiredVersion String NLF format version number. Currently at 1.0 Y

Description String String describing file contents. Y

Page 6: PCB123 XML Neutral Library Format Specification

Arc Element

The Arc element defines one arc object in the database. The arc will be a child of its parent element.An arc object is limited to chords of a perfect circle and can only be a line with width, not a filled (pie) section. Arcs are always defined as moving around the center from start to end in a counter-clockwise fashion.

Arc Element Attributes

Attribute Type Description RequiredLyr Layer The layer the arc is on. Y

Wid SizeLine width of the arc.

Must be greater than 0.Y

CX Coord The X coordinate of the arc center relative to its parent. YCY Coord The Y coordinate of the arc center relative to its parent. YStX Coord The X coordinate of the arc start relative to its parent. YStY Coord The Y coordinate of the arc start relative to its parent. YEnX Coord The X coordinate of the arc end relative to its parent. YEnY Coord The Y coordinate of the arc end relative to its parent. Y

Net StringName of the net the arc belongs to.

Default is none.N

Page 7: PCB123 XML Neutral Library Format Specification

Circle Element

The Circle element defines one circle object in the database. The circle will be a child of its parent element.Currently, a circle object is limited to a circular line with width, not a filled section.

Arc Element Attributes

Attribute Type Description RequiredLyr Layer The layer the circle is on. Y

Wid SizeLine width of the circle.

Must be greater than 0.Y

CX Coord The X coordinate of the arc center relative to its parent. YCY Coord The Y coordinate of the arc center relative to its parent. Y

Rad SizeThe radius of the circle.

Must be greater than zero.Y

Typ Literal

The circle type. Must be one of the following literal values:

BoardOutline – Circular board outlineLine – Hollow circleFilled – Filled circle (reserved for future use)

Default is Line.

N

Net StringName of the net the circle belongs to.

Default is none.N

Page 8: PCB123 XML Neutral Library Format Specification

Poly Element

The Poly element defines one polygon object in the database. The polygon will be a child of its parent element.

Polygon objects may be filled or hollow. A filled polygon has no width. An open or hollow polygon has a definite line width.

With a corner (vertex) limit of 10,000, polygons are the only count-limited object in the schema.

Poly Element Attributes

Attribute Type Description RequiredLyr Layer The layer the polygon is on. Y

Wid Size

Line width of the polygon.

Must be greater than 0 for hollow or open polygons.Must be zero for filled polygons.

Y

Crns IntegerThe number of corners in the polygon.

This number must be between 0 and 10,000.Y

Typ Literal

The polygon type. Must be one of the following literal values:

BoardOutline – This poly is a board outlineLine – Hollow or open polygon.Filled – Filled polygon.

Default is Line.

N

Net String

Name of the net the polygon belongs to. For filled polygons, the presence of a net name indicates the polygon is actually a copper pour region.

Default is none.

N

Page 9: PCB123 XML Neutral Library Format Specification

Text Element

The Text element defines one stroked-text object in the database. The text will be a child of its parent element.

Currently, the text string to display is limited to the ANSI ASCII character set (0-127).

There are certain predefined text strings that act as macros whose actual value depends upon context. They are:

&RefDes – Component reference designator. The actual text string will be the name of the component.

&Date – The current date. Limited to US format as of now (mm/dd/yyyy).

Text Element Attributes

Attribute Type Description Required

String StringThe text string to display.

Can be any length but will be on a single line.Y

Lyr Layer The layer the text is on. Y

Wid SizeLine width of the text strokes.

Must be greater than 0.Y

Hgt Size

The height of the character cell. Not all characters will be this height. For instance, lower case letters are smaller.

The height must be greater than 0.

Y

X CoordThe X coordinate of the text origin (lower left) relative to its parent.

Y

Y CoordThe Y coordinate of the text origin (lower left) relative to its parent.

Y

Rot AngleThe text rotation (in degrees) relative to its parent.

Default is zero.N

Mir BooleanBoolean flag indicating the text is to be mirrored.

Default is false.N

Page 10: PCB123 XML Neutral Library Format Specification

Pin Element

The Pin element defines a pin (or pad) object in the database. The pin will be a child of its parent element.

If a pin object is owned by a component then some very strict rules governing the uniqueness of the pin name within that component are applied. An exception to this rule is when a component pin has no name – you may have as many unnamed pins in a component as you want. If a pin is not owned by a component, but rather is a board-level entity then there are no specific rules governing the name of the pin, though it is recommended that they be created without names so as a unique, hidden name will be automatically generated for the pin.

Pin Element Attributes

Attribute Type Description Required

Nm StringThe name of the pin.

Can be empty, can be any length.Y

SizX SizeThe width of the pad.

Must be greater than zero and up to an inch.Y

SizY SizeThe height of the pad.

Must be greater than zero and up to an inch.Y

Shp Literal

The shape of the pad. Must be one of the following literals:

Round – Round padRect – Rectangular (or square) pad.Oblong – Rectangular pad with rounded ends.

Y

Drl Size

The drill size (finished) for this pad.

Can be zero for SMD pads.Must not exceed 1 inch.

Y

X Coord The X location of the pin center relative to its parent. YY Coord The Y location of the pin center relative to its parent. Y

Rot AngleRotation of the pin relative to its parent.

Default is zero.N

NP BooleanBoolean flag indicating the drill hole is non-plated.

Default is false.N

Page 11: PCB123 XML Neutral Library Format Specification

Footprint Element

The Footprint element defines a physical template for component instances. Footprints are not directly rendered and have no location, though they do have an origin.

Footprints are usually defined in an XML NLF file to add to the PCB123 footprint library. Footprint names must be unique within the NLF file.

Footprint Element Attributes

Attribute Type Description Required

Nm String

The name of the footprint.

The footprint name can be broken into two strings with the vertical bar character (|). If this is the case, the first string represents the name of the footprint library the footprint came from or belongs to, and the second string is the name of the footprint.

Y

Desc StringThe description of the footprint.

Default is nothing.N

Hgt Size

The height of the footprint.

This is mainly reserved for future use and defaults to zero.

N

CentroidX CoordThe X insertion origin for the footprint.

Default is calculated as the center of pin extents.N

CentroidY CoordThe Y insertion origin for the footprint.

Default is calculated as the center of pin extents.N

Page 12: PCB123 XML Neutral Library Format Specification

Device Element

The Device element defines a mapping between a part type and a footprint. Device objects are not directly rendered and contain no physical data.

Devices are usually defined in an XML NLF file to add to the PCB123 footprint library. Device names must be unique within the NLF file.

Device Element Attributes

Attribute Type Description Required

Nm String

The name of the device.

The device name can be broken into two strings with the vertical bar character (|). If this is the case, the first string represents the name of the footprint library the device came from or belongs to, and the second string is the name of the device.

Y

Fpr String

The footprint or footprints the device maps to. Multiple footprints can be mapped by separating the footprint names with the vertical bar character (|).

Up to four footprints can be mapped.

Y

Desc StringThe description of the device.

Default is nothing.N

Page 13: PCB123 XML Neutral Library Format Specification

Comp Element

The Comp element defines a physical component instance. Component names must be unique within an NLF file.

Comp Element Attributes

Attribute Type Description Required

Nm StringThe name of the component.

Must not be empty and must be unique.Y

X Coord The X location of the component relative to the board. YY Coord The Y location of the component relative to the board. Y

Rot AngleThe rotation of the component.

Default is zero.N

Prt StringThe device (or part type) of this component.

Default is blank.N

Fpr StringThe name of the source footprint for this component.

Default is blank.N

Mir Boolean

Flag indicating the part is flipped to the back side of the board.

Default is false.

N

Page 14: PCB123 XML Neutral Library Format Specification

Net Element

The Net element defines the logical and/or physical objects that have to be electrically connected together. Net names must be unique within an NLF file.

Net Element Attributes

Attribute Type Description Required

Nm StringThe name of the net.

Must not be empty and must be unique.Y

Pln Integer

Bit pattern representing which plane layers this net belongs to.

Set bit 3 to use plane layer Inner1, bit 4 to use plane layer inner2, etc.

Defaults to zero.

N

Wid Size

The default width for routing this net.

Default depends upon board fabrication process but is typically .007in.

N

Spc Size

The default spacing required by this net.

Default depends upon board fabrication process but is typically .007in.

N

Via Size

The size of the via to use for this net.

Default depends upon board fabrication process but is typically .036in for two-layer boards and .025 for multi-layer boards.

N

Drl Size The size to drill vias for this net.

Default depends upon board fabrication process but is

N

Page 15: PCB123 XML Neutral Library Format Specification

typically .020in for two-layer boards and .014 for multi-layer boards.

Pri Integer

Autorouter priority for this net. The higher the priority, the sooner the net will be attempted by the autorouter.

Must be between -10 and 10, with 0 being neutral.

N

Reconn Literal

Type of net length optimization to perform. Must be one of the following literal values:

No – Do not perform length optimization.Min – Minimize net length.Manhatten – Bias orthogonally.DaisyChain – Reserved for future use.

Defaults to Min.

N

Clr Integer

Color of the connections for this net. If the color is invisible, it uses the default system connection color.

Defaults to invisible.

N

Page 16: PCB123 XML Neutral Library Format Specification

Node Element

The Node element defines a pin that needs to be hooked up to a net. They only appear as children of Net elements.

Node Element Attributes

Attribute Type Description Required

Comp StringThe name of the component the pin belongs to, if any.

Defaults to empty.N

Pin String The pin name of the node. Y

Page 17: PCB123 XML Neutral Library Format Specification

Track Element

The Track element defines a continuous path from a starting point to an ending point in a net. The path can change layers and widths from vertex to vertex.

Tracks are limited to 10,000 corners (vertices).

Track Element Attributes

Attribute Type Description Required

Crns IntegerThe number of corner vertices in the track.

Must be between 2 and 10,000.Y

Page 18: PCB123 XML Neutral Library Format Specification

Crn Element

The Crn element defines a single vertex in a polygon or track.

The semantics of the Crn element are different for polygons and tracks. Polygons do not have width, layer, or fanout attributes.

Crn Element Attributes

Attribute Type Description Required

Idx Integer

The index number of the corner.

Must be between 0 and the max corners specified in the parent element.

Y

X Coord The X location of this vertex relative to its parent. YY Coord The Y location of this vertex relative to its parent. Y

Wid Size

The line width from this vertex to the next.

Must be greater than 0 and less than ½ inch.

This is only valid in Track elements.

N

Lyr LayerThe layer this vertex to the next is on.

This is only valid in Track elements.N

Fan BooleanFlag indicating this vertex stops at a via.

Default is false.N

Page 19: PCB123 XML Neutral Library Format Specification

Prop Element

The Prop element defines an arbitrary name/value data pair that can be attached to almost anything.

Prop Element Attributes

Attribute Type Description Required

Nm StringThe name of the property. There can only be one property associated with a given property name for any one object.

Y

Val StringThe data value associated with the property name.

Defaults to nothing.N

Page 20: PCB123 XML Neutral Library Format Specification

XML NLF Format Example

<?xml version="1.0"?><!--xml file created by Sunstone Circuits.--><PCB123_NLF Version="1.0" Description="xml test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\PCB123\Bin\BoardTemplates\Xml_Nlf.xsd">

<Poly Lyr="All" Wid="0.026in" Crns="5" Typ="BoardOutline"><Crn Idx="0" X="0in" Y="0in"/><Crn Idx="1" X="1.275in" Y="0in"/><Crn Idx="2" X="1.275in" Y="0.85in"/><Crn Idx="3" X="0in" Y="0.85in"/><Crn Idx="4" X="0in" Y="0in"/>

</Poly><Poly Lyr="Top" Wid="0.008in" Crns="5" Typ="Filled" Net="GND">

<Crn Idx="0" X="0.05in" Y="0.8in"/><Crn Idx="1" X="0.05in" Y="0.05in"/><Crn Idx="2" X="1.225in" Y="0.05in"/><Crn Idx="3" X="1.225in" Y="0.8in"/><Crn Idx="4" X="0.05in" Y="0.8in"/>

</Poly><Poly Lyr="Bot" Wid="0.008in" Crns="5" Typ="Filled" Net="+5V">

<Crn Idx="0" X="0.05in" Y="0.8in"/><Crn Idx="1" X="0.05in" Y="0.05in"/><Crn Idx="2" X="1.225in" Y="0.05in"/><Crn Idx="3" X="1.225in" Y="0.8in"/><Crn Idx="4" X="0.05in" Y="0.8in"/>

</Poly><Comp Nm="U3" X="0.775in" Y="0.675in" Rot="0.000º" Prt="" Fpr="CUSTOM\SMT_DS.SLB|SO8M6A" Mir="false">

<Pin Nm="1" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="0in" Rot="0.000º" NP="false"/><Pin Nm="2" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.05in" Rot="0.000º" NP="false"/><Pin Nm="3" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="4" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.15in" Rot="0.000º" NP="false"/><Pin Nm="5" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.15in" Rot="0.000º"

NP="false"/><Pin Nm="6" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="7" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.05in" Rot="0.000º"

NP="false"/><Pin Nm="8" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="0in" Rot="0.000º" NP="false"/><Circle Lyr="SSTop" Wid="0.01in" CX="-0.063in" CY="0.0005in" Rad="0.005in" Typ="Line"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="0.0125in"/><Crn Idx="1" X="0.13in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="-0.1625in"/>

</Poly><Arc Lyr="SSTop" Wid="0.008in" CX="0.15in" CY="0.0115in" StX="0.13in" StY="0.0115in" EnX="0.17in"

EnY="0.0115in"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.17in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="-0.1625in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="0.0125in"/>

</Poly><Text String="&amp;RefDes" Lyr="SSTop" Wid="0.008in" Hgt="0.075in" X="0.1118in" Y="0.025in" Rot="0.000º"

Mir="false"/></Comp><Comp Nm="U4" X="0.175in" Y="0.675in" Rot="0.000º" Prt="" Fpr="CUSTOM\SMT_DS.SLB|SO8M6A" Mir="false">

<Pin Nm="1" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="0in" Rot="0.000º" NP="false"/><Pin Nm="2" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.05in" Rot="0.000º" NP="false"/><Pin Nm="3" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.1in" Rot="0.000º" NP="false"/>

Page 21: PCB123 XML Neutral Library Format Specification

<Pin Nm="4" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.15in" Rot="0.000º" NP="false"/><Pin Nm="5" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.15in" Rot="0.000º"

NP="false"/><Pin Nm="6" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="7" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.05in" Rot="0.000º"

NP="false"/><Pin Nm="8" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="0in" Rot="0.000º" NP="false"/><Circle Lyr="SSTop" Wid="0.01in" CX="-0.063in" CY="0.0005in" Rad="0.005in" Typ="Line"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="0.0125in"/><Crn Idx="1" X="0.13in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="-0.1625in"/>

</Poly><Arc Lyr="SSTop" Wid="0.008in" CX="0.15in" CY="0.0115in" StX="0.13in" StY="0.0115in" EnX="0.17in"

EnY="0.0115in"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.17in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="-0.1625in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="0.0125in"/>

</Poly><Text String="&amp;RefDes" Lyr="SSTop" Wid="0.008in" Hgt="0.075in" X="0.1118in" Y="0.025in" Rot="0.000º"

Mir="false"/></Comp><Comp Nm="U2" X="0.775in" Y="0.275in" Rot="0.000º" Prt="" Fpr="CUSTOM\SMT_DS.SLB|SO8M6A" Mir="false">

<Pin Nm="1" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="0in" Rot="0.000º" NP="false"/><Pin Nm="2" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.05in" Rot="0.000º" NP="false"/><Pin Nm="3" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="4" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.15in" Rot="0.000º" NP="false"/><Pin Nm="5" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.15in" Rot="0.000º"

NP="false"/><Pin Nm="6" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="7" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.05in" Rot="0.000º"

NP="false"/><Pin Nm="8" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="0in" Rot="0.000º" NP="false"/><Circle Lyr="SSTop" Wid="0.01in" CX="-0.063in" CY="0.0005in" Rad="0.005in" Typ="Line"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="0.0125in"/><Crn Idx="1" X="0.13in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="-0.1625in"/>

</Poly><Arc Lyr="SSTop" Wid="0.008in" CX="0.15in" CY="0.0115in" StX="0.13in" StY="0.0115in" EnX="0.17in"

EnY="0.0115in"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.17in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="-0.1625in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="0.0125in"/>

</Poly><Text String="&amp;RefDes" Lyr="SSTop" Wid="0.008in" Hgt="0.075in" X="0.1118in" Y="0.025in" Rot="0.000º"

Mir="false"/></Comp><Comp Nm="U1" X="0.175in" Y="0.275in" Rot="0.000º" Prt="" Fpr="CUSTOM\SMT_DS.SLB|SO8M6A" Mir="false">

Page 22: PCB123 XML Neutral Library Format Specification

<Pin Nm="1" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="0in" Rot="0.000º" NP="false"/><Pin Nm="2" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.05in" Rot="0.000º" NP="false"/><Pin Nm="3" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="4" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0in" Y="-0.15in" Rot="0.000º" NP="false"/><Pin Nm="5" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.15in" Rot="0.000º"

NP="false"/><Pin Nm="6" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.1in" Rot="0.000º" NP="false"/><Pin Nm="7" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="-0.05in" Rot="0.000º"

NP="false"/><Pin Nm="8" SizX="0.095in" SizY="0.025in" Shp="Oblong" Drl="0in" X="0.3in" Y="0in" Rot="0.000º" NP="false"/><Circle Lyr="SSTop" Wid="0.01in" CX="-0.063in" CY="0.0005in" Rad="0.005in" Typ="Line"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="0.0125in"/><Crn Idx="1" X="0.13in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="-0.1625in"/>

</Poly><Arc Lyr="SSTop" Wid="0.008in" CX="0.15in" CY="0.0115in" StX="0.13in" StY="0.0115in" EnX="0.17in"

EnY="0.0115in"/><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.17in" Y="0.0125in"/><Crn Idx="1" X="0.2425in" Y="0.0125in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.2425in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="-0.1625in"/>

</Poly><Poly Lyr="SSTop" Wid="0.008in" Crns="2" Typ="Line">

<Crn Idx="0" X="0.0575in" Y="-0.1625in"/><Crn Idx="1" X="0.0575in" Y="0.0125in"/>

</Poly><Text String="&amp;RefDes" Lyr="SSTop" Wid="0.008in" Hgt="0.075in" X="0.1118in" Y="0.025in" Rot="0.000º"

Mir="false"/></Comp><Net Nm="GND" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203135">

<Node Cmp="U2" Pin="4"/><Node Cmp="U3" Pin="4"/><Track Crns="2">

<Crn Idx="0" X="0.775in" Y="0.125in" Wid="0.007in" Lyr="Rat" Fan="false"/><Crn Idx="1" X="0.775in" Y="0.525in" Wid="0.007in" Lyr="Rat" Fan="false"/>

</Track></Net><Net Nm="GND" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203135">

<Node Cmp="U4" Pin="4"/><Node Cmp="U1" Pin="4"/><Track Crns="2">

<Crn Idx="0" X="0.175in" Y="0.525in" Wid="0.007in" Lyr="Rat" Fan="false"/><Crn Idx="1" X="0.175in" Y="0.125in" Wid="0.007in" Lyr="Rat" Fan="false"/>

</Track></Net><Net Nm="+5V" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203136">

<Node Cmp="U3" Pin="8"/><Node Cmp="U2" Pin="8"/><Track Crns="4">

<Crn Idx="0" X="1.075in" Y="0.675in" Wid="0.007in" Lyr="Top" Fan="false"/><Crn Idx="1" X="1.075in" Y="0.725in" Wid="0.007in" Lyr="Rat" Fan="true"/><Crn Idx="2" X="1.075in" Y="0.325in" Wid="0.007in" Lyr="Top" Fan="true"/><Crn Idx="3" X="1.075in" Y="0.275in" Wid="0.007in" Lyr="Top" Fan="false"/>

</Track></Net><Net Nm="+5V" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203136">

<Node Cmp="U4" Pin="8"/><Node Cmp="U1" Pin="8"/><Track Crns="3">

<Crn Idx="0" X="0.475in" Y="0.675in" Wid="0.007in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.475in" Y="0.725in" Wid="0.007in" Lyr="Rat" Fan="true"/><Crn Idx="2" X="0.475in" Y="0.275in" Wid="0.007in" Lyr="Rat" Fan="false"/>

</Track></Net>

Page 23: PCB123 XML Neutral Library Format Specification

<Net Nm="NET3" Pln="0" Wid="0.008in" Spc="0.007in" Via="0.031in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203135">

<Node Cmp="U2" Pin="3"/><Node Cmp="U4" Pin="7"/><Track Crns="7">

<Crn Idx="0" X="0.775in" Y="0.175in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.625in" Y="0.175in" Wid="0.008in" Lyr="Bot" Fan="false"/><Crn Idx="2" X="0.675in" Y="0.225in" Wid="0.008in" Lyr="Bot" Fan="false"/><Crn Idx="3" X="0.675in" Y="0.65in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="4" X="0.6in" Y="0.65in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="5" X="0.575in" Y="0.625in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="6" X="0.475in" Y="0.625in" Wid="0.008in" Lyr="Top" Fan="false"/>

</Track></Net><Net Nm="NET2" Pln="0" Wid="0.008in" Spc="0.007in" Via="0.031in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-

842203135"><Node Cmp="U3" Pin="3"/><Node Cmp="U1" Pin="6"/><Track Crns="7">

<Crn Idx="0" X="0.775in" Y="0.575in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.7in" Y="0.575in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="2" X="0.675in" Y="0.55in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="3" X="0.625in" Y="0.55in" Wid="0.008in" Lyr="Bot" Fan="false"/><Crn Idx="4" X="0.625in" Y="0.25in" Wid="0.008in" Lyr="Bot" Fan="false"/><Crn Idx="5" X="0.55in" Y="0.175in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="6" X="0.475in" Y="0.175in" Wid="0.008in" Lyr="Top" Fan="false"/>

</Track></Net><Net Nm="GND" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203135">

<Node Cmp="U4" Pin="4"/><Node Cmp="U3" Pin="4"/><Track Crns="2">

<Crn Idx="0" X="0.175in" Y="0.525in" Wid="0.007in" Lyr="Rat" Fan="false"/><Crn Idx="1" X="0.775in" Y="0.525in" Wid="0.007in" Lyr="Rat" Fan="false"/>

</Track></Net><Net Nm="NET4" Pln="0" Wid="0.008in" Spc="0.007in" Via="0.031in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-

842203136"><Node Cmp="U4" Pin="3"/><Node Cmp="U3" Pin="7"/><Track Crns="6">

<Crn Idx="0" X="0.175in" Y="0.575in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.3in" Y="0.575in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="2" X="0.325in" Y="0.6in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="3" X="0.925in" Y="0.6in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="4" X="0.95in" Y="0.625in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="5" X="1.075in" Y="0.625in" Wid="0.008in" Lyr="Top" Fan="false"/>

</Track></Net><Net Nm="+5V" Pln="0" Wid="0.007in" Spc="0in" Via="0.036in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203136">

<Node Cmp="U1" Pin="8"/><Node Cmp="U2" Pin="8"/><Track Crns="3">

<Crn Idx="0" X="0.475in" Y="0.275in" Wid="0.007in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.475in" Y="0.325in" Wid="0.007in" Lyr="Rat" Fan="true"/><Crn Idx="2" X="1.075in" Y="0.275in" Wid="0.007in" Lyr="Rat" Fan="false"/>

</Track></Net><Net Nm="NET5" Pln="0" Wid="0.008in" Spc="0.007in" Via="0.031in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-

842203135"><Node Cmp="U1" Pin="2"/><Node Cmp="U2" Pin="2"/><Track Crns="6">

<Crn Idx="0" X="0.175in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.3in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="2" X="0.325in" Y="0.25in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="3" X="0.675in" Y="0.25in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="4" X="0.7in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="5" X="0.775in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/>

</Track></Net>

Page 24: PCB123 XML Neutral Library Format Specification

<Net Nm="NET1" Pln="0" Wid="0.008in" Spc="0.007in" Via="0.031in" Drl="0.02in" Pri="0" Reconn="Min" Clr="-842203136">

<Node Cmp="U1" Pin="7"/><Node Cmp="U2" Pin="6"/><Track Crns="6">

<Crn Idx="0" X="0.475in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="1" X="0.675in" Y="0.225in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="2" X="0.7in" Y="0.2in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="3" X="0.875in" Y="0.2in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="4" X="0.9in" Y="0.175in" Wid="0.008in" Lyr="Top" Fan="false"/><Crn Idx="5" X="1.075in" Y="0.175in" Wid="0.008in" Lyr="Top" Fan="false"/>

</Track></Net>

</PCB123_NLF>