PCB USD Organization#
Overview#
This capability defines how a PCB board USD is organized so a downstream pipeline can
discover its geometry and metadata by role and attribute rather than by prim name or
hierarchy position. It realizes the USD Organization (UO) codes of the PCBA to USD Input
Contract 1.0.2 (section 2 conventions, 3 stage layout, 4 composition and packaging, 9 mesh
roles, 11 board root, 14 not-yet-available fields, and the pcba: namespace rules of section 1).
The board USD is arranged around a small set of stable conventions:
Stage conventions —
metersPerUnit = 0.001,upAxis = "Z", board in the XY plane with +Z as the normal, no compensating root transform, a singledefaultPrimwhose name is free.Board root — the prim carrying the
pcba:board:*metadata (provenance, packaging, thickness, origin convention). It is discovered by those attributes; it may be the default prim, a child of a scene wrapper, or a panel’s class master.Stage layout — a desirable, not mandatory, hierarchy: substrate, side-grouped layers with components / copper / paste, holes, registries. The only MUST is a
board_substratemesh.Mesh-role discovery — every
Meshcarries an authoritativepcba:mesh:roletoken.Namespace — every contract attribute lives under
pcba:, in nine recognized scopes; authored as ordinary custom attributes, no schema required.Component registry — a
pcba:board:membersindex of every placed component (SHOULD; an index, not a source of truth).Packaging — relative, self-contained references; one board asset placed per panel position; repeated parts instanced from a shared prototype.
Provenance and manifest — generator version, content hash, and a package-file manifest on the board root.
Not-yet-available fields#
A MUST field whose upstream data is not available yet MAY be omitted, provided the prim that
would carry it authors pcba:prov:<leaf> = "not_yet_available" (or "source_data_required"
where sourcing was attempted and failed). <leaf> is the bare leaf name. Validators report the
marker as a declared gap, not a failure, so partial exports can be validated and tracked.
Requirements#
Code |
Requirement |
Summary |
|---|---|---|
UO.001 |
Single |
|
UO.003 |
A |
|
UO.006 |
|
|
UO.008 |
SHOULD: |
|
UO.009 |
Authoritative |
|
UO.010 |
All contract attributes under |
|
UO.011 |
Renderable meshes SHOULD bind a material of the role’s class; |
|
UO.012 |
Relative, self-contained references; one board asset placed per position; shared prototypes with |
|
UO.013 |
|
|
UO.014 |
|
|
UO.015 |
|
|
UO.016 |
SHOULD: clean ASCII file names, no spaces or parentheses. |
|
UO.017 |
Where |