Hole Occupancy and Pin Association#
Code |
BG.012 |
|---|---|
Validator |
|
Compatibility |
open-usd |
Applies to |
|
Requirement level |
MUST, conditional on site occupancy |
Tags |
|
Summary#
Every board_pad and board_barrel MUST declare pcba:board:occupied, or declare
that occupancy is unresolved using the provenance convention below. An occupied
site names its component terminal with pcba:board:refdes +
pcba:board:componentPinNumber. This applies to SMT pads as well as THT joints.
This page follows PCBA to USD Input Contract 1.0.2, sections 6 and 10.
board_hole is optional bookkeeping; occupancy and association belong on the
actual pad or barrel. There are no holeSide or plated fields.
Description#
Author associations board-side so component pins can remain in shared,
instanceable package prototypes. The pair resolves within the containing board;
repeated panel positions resolve within their own board, not across the panel.
componentPinNumber matches the component’s pcba:pin:number and is distinct
from the pad’s own pcba:board:padNumber.
When the component prim exists, pcba:board:component is a SHOULD relationship
to it. Its absence is not a failure; when authored it must agree with refdes.
The pair is authoritative. A bare board-side pcba:pin:number is also read, with
a warning; author pcba:board:componentPinNumber.
A THT joint has a top ring, solder-side ring, and barrel, all carrying the same association. At most one pad per side and one barrel may claim a given terminal. A pad that names one pin but sits on another pin of that component is incorrect.
Known empty versus unresolved#
On a pad with
occupied = false, authorintentionallyUnpopulated:truemeans no-stuff by design;falsemeans a genuinely missing component.An unoccupied barrel does not require
intentionallyUnpopulated.If occupancy is unresolved, omit
occupiedand authorstring pcba:prov:occupied = "not_yet_available"(or"source_data_required"after unsuccessful sourcing). Do not authorintentionallyUnpopulatedwhile occupancy is unresolved. Neither an association nor a no-stuff claim is owed for an unresolved site. The checker emits an INFO declared gap.
Fields#
Attribute |
Type |
Requirement |
|---|---|---|
|
|
MUST on pads and barrels, unless explicitly deferred |
|
|
MUST on pads with authored |
|
|
MUST when occupied |
|
|
MUST when occupied; references a component pin |
|
relationship |
SHOULD when occupied and the component prim exists |
Why is it required?#
Solder generation and joint inspection need the correct terminal at each site. Explicit occupancy distinguishes a designed no-stuff site from a missing part, and explicit deferral avoids inventing either condition when the data is unknown.
Examples#
These fragments illustrate metadata; geometry and other required fields are omitted.
def Mesh "Pad_J1_1"
{
custom token pcba:mesh:role = "board_pad"
custom string pcba:board:padNumber = "1"
custom bool pcba:board:occupied = true
custom string pcba:board:refdes = "J1"
custom string pcba:board:componentPinNumber = "1"
rel pcba:board:component = </Board/Components/J1>
}
def Mesh "Pad_NoStuff"
{
custom token pcba:mesh:role = "board_pad"
custom string pcba:board:padNumber = "2"
custom bool pcba:board:occupied = false
custom bool pcba:board:intentionallyUnpopulated = true
}
def Mesh "Pad_Unresolved"
{
custom token pcba:mesh:role = "board_pad"
custom string pcba:board:padNumber = "3"
custom string pcba:prov:occupied = "not_yet_available"
}
How to comply#
Author occupancy and the conditional fields on each actual board site. Preserve the board-side association when composing component prototypes. Verify that pin numbers resolve, that THT rings and barrels name the same terminal, and that pad positions agree with the claimed pins.
The checker uses available component geometry and layer-side metadata for its cross-checks. It cannot verify an unresolved component or a geometric association without geometry evidence. The pad-sits-at-its-pin check applies to surface-mount parts only: a through-hole lead is a bent or long mesh whose extent centroid does not mark where it enters the board, so a through-hole joint’s location is established by its barrel (BG.003, BG.010) rather than by this check. A pad whose footprint overlaps its named pin’s footprint is at that pin even when another pin lies nearer its centre, as with connector pins that share one land. Read the reporting limits in the PCB-Assembly guide.