|
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>
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... | |
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 |
| uint32_t | m_Drill |
| In < V172, this is the drill diameter in internal coordinates. | |
| uint32_t | m_Unknown2 |
| uint32_t | m_PadPath |
| COND_LT< FMT_VER::V_172, uint32_t > | m_Unknown3 |
| COND_LT< FMT_VER::V_172, uint32_t > | m_Unknown4 |
| COND_LT< FMT_VER::V_172, uint32_t > | m_Unknown5 |
| COND_LT< FMT_VER::V_172, uint32_t > | m_Unknown6 |
| PAD_TYPE | m_Type |
| uint8_t | m_A |
| uint8_t | m_B |
| uint8_t | m_C |
| uint8_t | m_D |
| COND_GE< FMT_VER::V_172, uint32_t > | m_Unknown7 |
| COND_GE< FMT_VER::V_172, uint32_t > | m_Unknown8 |
| COND_GE< FMT_VER::V_172, uint32_t > | m_Unknown9 |
| COND_LT< FMT_VER::V_172, uint16_t > | m_Unknown10 |
| uint16_t | m_LayerCount |
| COND_GE< FMT_VER::V_172, uint16_t > | m_Unknown11 |
| std::array< uint32_t, 8 > | m_DrillArr |
| In >= V172, elements [4] and [7] hold drill dimensions: [4] = drill diameter (or width for oblong drills) [7] = drill height for oblong drills (0 for round) All values are in internal coordinate units (mils * divisor). | |
| COND_GE< FMT_VER::V_172, std::array< uint32_t, 28 > > | m_SlotAndUnknownArr |
| In V172+, elements [0] and [3] hold the true slot outline dimensions (X, Y) in internal coordinate units. | |
| COND_GE_LT< FMT_VER::V_165, FMT_VER::V_172, std::array< uint32_t, 8 > > | m_UnknownArr8_2 |
| COND_GE< FMT_VER::V_180, std::array< uint32_t, 8 > > | m_V180Trailer |
| V180 inserts 8 extra uint32s between the fixed arrays and the component table. | |
| 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 1090 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 1194 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. Verified mappings from WORKLOG reverse engineering:
V<172 (10 fixed): Slot 0 = ~TSM (top solder mask) Slot 5 = ~TPM (top paste mask) Slot 7 = ~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 1179 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_A |
Definition at line 1120 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_B |
Definition at line 1121 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_C |
Definition at line 1122 of file allegro_pcb_structs.h.
| 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/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 1219 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_D |
Definition at line 1123 of file allegro_pcb_structs.h.
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Drill |
In < V172, this is the drill diameter in internal coordinates.
In >= V172, the drill diameter moved to m_DrillArr[DRILL_DIAMETER].
Definition at line 1107 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| std::array<uint32_t, 8> ALLEGRO::BLK_0x1C_PADSTACK::m_DrillArr |
In >= V172, elements [4] and [7] hold drill dimensions: [4] = drill diameter (or width for oblong drills) [7] = drill height for oblong drills (0 for round) All values are in internal coordinate units (mils * divisor).
Definition at line 1143 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Key |
Definition at line 1099 of file allegro_pcb_structs.h.
| uint16_t ALLEGRO::BLK_0x1C_PADSTACK::m_LayerCount |
Definition at line 1131 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and 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 1097 of file allegro_pcb_structs.h.
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Next |
Definition at line 1100 of file allegro_pcb_structs.h.
| size_t ALLEGRO::BLK_0x1C_PADSTACK::m_NumCompsPerLayer |
Definition at line 1225 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 1224 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and ALLEGRO::BOARD_BUILDER::buildVia().
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_PadPath |
Definition at line 1109 of file allegro_pcb_structs.h.
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_PadStr |
Definition at line 1101 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems().
| COND_GE<FMT_VER::V_172, std::array<uint32_t, 28> > ALLEGRO::BLK_0x1C_PADSTACK::m_SlotAndUnknownArr |
In V172+, elements [0] and [3] hold the true slot outline dimensions (X, Y) in internal coordinate units.
For routed slots (round drill bit routed along a path), m_DrillArr holds only the bit diameter while this array holds the full slot envelope. For punched oblong drills, these values match m_DrillArr[4] and [7].
Definition at line 1151 of file allegro_pcb_structs.h.
Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems().
| PAD_TYPE ALLEGRO::BLK_0x1C_PADSTACK::m_Type |
Definition at line 1116 of file allegro_pcb_structs.h.
| COND_LT<FMT_VER::V_172, uint16_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown10 |
Definition at line 1129 of file allegro_pcb_structs.h.
| COND_GE<FMT_VER::V_172, uint16_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown11 |
Definition at line 1135 of file allegro_pcb_structs.h.
| uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown2 |
Definition at line 1108 of file allegro_pcb_structs.h.
| COND_LT<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown3 |
Definition at line 1111 of file allegro_pcb_structs.h.
| COND_LT<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown4 |
Definition at line 1112 of file allegro_pcb_structs.h.
| COND_LT<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown5 |
Definition at line 1113 of file allegro_pcb_structs.h.
| COND_LT<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown6 |
Definition at line 1114 of file allegro_pcb_structs.h.
| COND_GE<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown7 |
Definition at line 1125 of file allegro_pcb_structs.h.
| COND_GE<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown8 |
Definition at line 1126 of file allegro_pcb_structs.h.
| COND_GE<FMT_VER::V_172, uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_Unknown9 |
Definition at line 1127 of file allegro_pcb_structs.h.
| COND_GE_LT<FMT_VER::V_165, FMT_VER::V_172, std::array<uint32_t, 8> > ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownArr8_2 |
Definition at line 1153 of file allegro_pcb_structs.h.
| std::vector<uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownArrN |
Some structure of m_N * 8 or 10:
Definition at line 1233 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte1 |
Definition at line 1092 of file allegro_pcb_structs.h.
| uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte2 |
Definition at line 1098 of file allegro_pcb_structs.h.
| COND_GE<FMT_VER::V_180, std::array<uint32_t, 8> > ALLEGRO::BLK_0x1C_PADSTACK::m_V180Trailer |
V180 inserts 8 extra uint32s between the fixed arrays and the component table.
Despite the name, this is read before the components, not after.
Definition at line 1159 of file allegro_pcb_structs.h.