|
KiCad PCB EDA Suite
|
Padstack definition containing drill dimensions and a table of per-layer pad/antipad/thermal components. More...
#include <allegro_pcb_structs.h>
Classes | |
| struct | HEADER_v16x |
| struct | HEADER_v17x |
Public Types | |
| enum | SLOTS { SOLDERMASK_TOP_V16X = 0 , PASTEMASK_TOP_V16X = 5 , FILMMASK_TOP_V16X = 7 , SOLDERMASK_TOP_V17X = 14 } |
| Fixed slot indices in the component table. More... | |
| enum | LAYER_COMP_SLOT { ANTIPAD = 0 , THERMAL_RELIEF = 1 , PAD = 2 , UNKNOWN_GE_V172 = 3 } |
| Component table layer offsets In the component table's layer section, each layer has 3 or 4 slots, depending on version. More... | |
| using | HEADER = std::variant<HEADER_v16x, HEADER_v17x> |
Public Member Functions | |
| uint32_t | GetDrillSize () const |
| uint32_t | GetLayerCount () const |
| bool | IsPlated () const |
Public Attributes | |
| uint8_t | m_UnknownByte1 |
| uint8_t | m_N |
| The number of something. | |
| uint8_t | m_UnknownByte2 |
| uint32_t | m_Key |
| uint32_t | m_Next |
| uint32_t | m_PadStr |
| HEADER | m_Header |
| std::vector< PADSTACK_COMPONENT > | m_Components |
| Collection of components that make up the padstack. | |
| size_t | m_NumFixedCompEntries |
| How many of the entries are fixed roles (after this is n*layers) | |
| size_t | m_NumCompsPerLayer |
| std::vector< uint32_t > | m_UnknownArrN |
| Some structure of m_N * 8 or 10: | |
Padstack definition containing drill dimensions and a table of per-layer pad/antipad/thermal components.
The component table has fixed technical layer slots (solder mask, paste mask, etc.) followed by per-copper-layer groups. Drill location is version-dependent (m_Drill for pre-V172, m_DrillArr for V172+). Slot dimensions for oblong drills are stored as (primary, secondary) not (X, Y), requiring orientation correction based on the copper pad aspect ratio.
Definition at line 1150 of file allegro_pcb_structs.h.
| using ALLEGRO::BLK_0x1C_PADSTACK::HEADER = std::variant<HEADER_v16x, HEADER_v17x> |
Definition at line 1281 of file allegro_pcb_structs.h.
Component table layer offsets In the component table's layer section, each layer has 3 or 4 slots, depending on version.
| Enumerator | |
|---|---|
| ANTIPAD | |
| THERMAL_RELIEF | |
| PAD | |
| UNKNOWN_GE_V172 | |
Definition at line 1323 of file allegro_pcb_structs.h.
Fixed slot indices in the component table.
The fixed slots come before the per-layer copper entries. V<172 has 10 fixed slots, V>=172 has 21.
All fixed slots are technical layers (solder mask, paste mask, film mask, assembly variant, etc). The exact slot-to-layer mapping is version-dependent and not fully contiguous.
V<165 (10 fixed) Slot 0 = ~TSM (top solder mask) Slot 5 = ~TPM (top paste mask) Slot 7 = ~TFM (top film mask)
V<172 (11 fixed): Slot 0 = ??? (looks the same size as a solder mask) Slot 1 = ~TSM (top solder mask) Slot 6 = ~TPM (top paste mask) Slot 8 = ~TFM (top film mask)
V>=172 (21 fixed): Slot 14 = ~TSM (top solder mask)
| Enumerator | |
|---|---|
| SOLDERMASK_TOP_V16X | |
| PASTEMASK_TOP_V16X | |
| FILMMASK_TOP_V16X | |
| SOLDERMASK_TOP_V17X | |
Definition at line 1308 of file allegro_pcb_structs.h.
|
inline |
Definition at line 1366 of file allegro_pcb_structs.h.
References m_Header.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
|
inline |
Definition at line 1382 of file allegro_pcb_structs.h.
References m_Header.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
|
inline |
Definition at line 1398 of file allegro_pcb_structs.h.
References ALLEGRO::BLK_0x1C_PADSTACK::HEADER_v16x::FLAG_PLATED, ALLEGRO::BLK_0x1C_PADSTACK::HEADER_v17x::FLAG_PLATED, and m_Header.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems().
| std::vector<PADSTACK_COMPONENT> ALLEGRO::BLK_0x1C_PADSTACK::m_Components |
Collection of components that make up the padstack.
The number of components appears to be fixed by version:
The first 10/11/21 components seem to be a fixed set of technical layers.
Then, a set of groups of 3/4 components for each layer.
Definition at line 1348 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| HEADER ALLEGRO::BLK_0x1C_PADSTACK::m_Header |
Definition at line 1282 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), GetDrillSize(), GetLayerCount(), and IsPlated().
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Key |
Definition at line 1274 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildVia().
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_N |
The number of something.
Drives the size of an array (with a multiplier).
Definition at line 1272 of file allegro_pcb_structs.h.
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Next |
Definition at line 1275 of file allegro_pcb_structs.h.
| size_t ALLEGRO::BLK_0x1C_PADSTACK::m_NumCompsPerLayer |
Definition at line 1354 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems().
| size_t ALLEGRO::BLK_0x1C_PADSTACK::m_NumFixedCompEntries |
How many of the entries are fixed roles (after this is n*layers)
Definition at line 1353 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_PadStr |
Definition at line 1278 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| std::vector<uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownArrN |
Some structure of m_N * 8 or 10:
Definition at line 1362 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte1 |
Definition at line 1267 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte2 |
Definition at line 1273 of file allegro_pcb_structs.h.