Polarity#
Code |
CG.009 |
|---|---|
Validator |
|
Applies to |
|
Requirement level |
CONDITIONAL — when the part is polarized / carries a marker (N/A for |
Tags |
|
Summary#
pcba:component:polarityType (a token) names how a polarized part indicates its
polarity. It is required for polarized parts and is the ground truth for
reverse-polarity defects. Pin-1 / polarity / marking features MUST be authored as
standalone geometry (pkg_marking), never baked into a texture.
Description#
Reverse-polarity is a distinct AOI defect class: a diode, electrolytic
capacitor, or keyed part installed backwards. To generate and score it, the
pipeline needs to know how the part signals its polarity.
pcba:component:polarityType names the indicator:
dot— a printed pin-1 / polarity dot.notch— a package notch or keyway.bevel— a bevelled edge / chamfer.band— a cathode / polarity band.plus— a printed+marking.text— a polarity indicated by text.asymmetric— an asymmetric body shape that reads as polarity.
When a part carries a pin-1 or polarity marker, that marker — like any label — MUST be
standalone geometry carrying pcba:mesh:role = pkg_marking. Not every part has one: plenty
of genuinely interchangeable parts are unmarked, so this is conditional on the marker existing,
not a demand that one be invented. It MUST NOT be
baked into the body texture. Standalone marking geometry lets the pipeline move,
hide, or re-orient the indicator to synthesize reverse-polarity and
wrong-orientation samples, and lets grounding annotations reference it as a
discrete feature.
Fields#
Attribute |
Type |
Req |
Notes |
|---|---|---|---|
|
|
MUST when polarized |
|
|
|
MUST when a marker exists |
Polarity / pin-1 / marking features are standalone geometry, not baked into texture |
Why is it required?#
Reverse-polarity is a distinct defect class; the pipeline cannot synthesize or score it without knowing the polarity indicator.
Standalone
pkg_markinggeometry (rather than a baked texture) lets the pipeline manipulate the indicator to generate orientation / polarity samples and lets annotations reference it directly.
Example#
def Xform "D4"
{
token pcba:component:polarityType = "band"
def Mesh "CathodeBand"
{
token pcba:mesh:role = "pkg_marking"
}
}
How to comply#
Author
pcba:component:polarityTypeon every polarized part.Author the polarity / pin-1 / marking indicators as standalone meshes with
pcba:mesh:role = pkg_marking; never bake them into the body texture.
What the checker proves#
PolarityChecker fails an authored polarityType outside the vocabulary. Whether a part is
polarized is not detectable from geometry, so absence is never reported, and the
standalone-pkg_marking rule is not machine-checked.