Pin Geometry#
Code |
CG.007 |
|---|---|
Validator |
|
Applies to |
pin prims ( |
Requirement level |
MUST ( |
Tags |
|
Summary#
Every pin prim MUST carry pcba:pin:number — a stable id, unique within the component — and
pcba:pin:solderable (bool: does this contact form a solder joint?). pcba:pin:crossSection,
pcba:pin:terminalType, and pcba:pin:designator are OPTIONAL and validated when authored.
The board side never authors pcba:pin:number: a pad or barrel names a pin with
pcba:board:componentPinNumber.
This page follows PCBA to USD Input Contract 1.0.2, section 10.
Description#
A pin is a contact on a component — a BGA ball, a gull-wing lead, an LGA land. Boards have
pads; a pin lands on a pad. Each pin is its own addressable pkg_lead prim in the shared
prototype, so its attributes are package data authored once:
pcba:pin:number— the stable pin id ("1","A1"). It must identify exactly one pin, because a board site resolves itspcba:board:componentPinNumberagainst it (BG.012); two pins sharing a number leave a joint unresolvable.pinCountcounts pin prims, so a duplicate does not surface there.pcba:pin:solderable—truemeans a joint forms here, so ajoint_roiand solder-defect classes apply;falsemeans it does not (a press-fit pin, a retention tab, a mechanical lead). Authored per pin, because one part’s pins can differ; this — notprocessClass— is the authority on whether solder defects apply.pcba:pin:crossSection(OPTIONAL) —circular rectangular other; author when known and keep the full contour geometry for non-circular pins.pcba:pin:terminalType(OPTIONAL) — the terminal form, from a non-exhaustive vocabulary (endTerminal gullwing jLead throughHolePin solderBall lLead cLead sideConcave cornerConcave flatInsulated qfn lcc lga solderColumn capae axial radial inline wire pressFit mixed otherThroughHole). A form the source does not know is simply not authored.pressFitis a form; whether it takes solder issolderable, and the mount method staysprocessClass.pcba:component:terminalTypes(token[], on the component) — MUST when a pin’sterminalType = mixed: the actual forms the part combines, each aterminalTypeother thanmixed.pcba:pin:designator(OPTIONAL) — the source netlist / CAD pin designator, preserved whenpcba:pin:numberis positional.
Association is board-side. The board prim (pad, barrel, paste) carries
pcba:board:refdes + pcba:board:componentPinNumber, not a bare pcba:pin:number — that would
read as though the board had pins. A bare board-side pcba:pin:number is read with a warning.
Fields#
Attribute |
On |
Type |
Req |
Notes |
|---|---|---|---|---|
|
pin prim |
|
MUST |
Stable id, unique within the component; what |
|
pin prim |
|
MUST |
Does this contact form a solder joint? Per pin. |
|
pin prim |
|
OPTIONAL |
|
|
pin prim |
|
OPTIONAL |
Terminal form from the (non-exhaustive) vocabulary above. |
|
component prim |
|
MUST when a pin is |
The actual forms combined. |
|
pin prim |
|
OPTIONAL |
Source pin designator when |
Why is it required?#
Solder-joint generation operates per contact; a non-unique pin number makes a board site ambiguous.
solderabledecides per pin whether solder-defect classes apply — a press-fit connector with one soldered ground pin is a real case a part-level switch gets wrong.Terminal form lets downstream pick applicable defect classes without inspecting geometry.
Example#
def Mesh "pin_1"
{
token pcba:mesh:role = "pkg_lead"
token pcba:mesh:matClass = "metal"
string pcba:pin:number = "1"
bool pcba:pin:solderable = true
token pcba:pin:crossSection = "rectangular" # optional
token pcba:pin:terminalType = "gullwing" # optional
string pcba:pin:designator = "41" # optional: source designator
}
How to comply#
Author
pcba:pin:number(unique within the part) andpcba:pin:solderableon every pin prim of the prototype.Author
crossSection/terminalType/designatorwhere the source knows them; forterminalType = mixed, authorpcba:component:terminalTypeson the component.Never author
pcba:pin:numberon a board prim; usepcba:board:componentPinNumber.
What the checker proves#
PinGeometryChecker fails a pin whose pcba:pin:solderable is absent (a pcba:prov:solderable
marker downgrades this to a declared gap) or is not a bool; fails an authored crossSection
or terminalType outside the vocabulary; fails a mixed pin whose component lacks a valid
terminalTypes list; warns on an authored-but-empty designator; and fails when two pins of one
component share a pcba:pin:number. Pins are discovered by pcba:pin:number, so a pin prim
lacking it is invisible to this rule rather than reported.