KiCad PCB EDA Suite
Loading...
Searching...
No Matches
ALLEGRO::BLK_0x1C_PADSTACK Struct Reference

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_COMPONENTm_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:
 

Detailed Description

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.

Member Typedef Documentation

◆ HEADER

Definition at line 1281 of file allegro_pcb_structs.h.

Member Enumeration Documentation

◆ LAYER_COMP_SLOT

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.

◆ SLOTS

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.

Member Function Documentation

◆ GetDrillSize()

uint32_t ALLEGRO::BLK_0x1C_PADSTACK::GetDrillSize ( ) const
inline

◆ GetLayerCount()

uint32_t ALLEGRO::BLK_0x1C_PADSTACK::GetLayerCount ( ) const
inline

◆ IsPlated()

bool ALLEGRO::BLK_0x1C_PADSTACK::IsPlated ( ) const
inline

Member Data Documentation

◆ m_Components

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:

  • < 17.2: 10 + layer_count * 3
  • >= 17.2: 21 + layer_count * 4

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().

◆ m_Header

HEADER ALLEGRO::BLK_0x1C_PADSTACK::m_Header

◆ m_Key

uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Key

Definition at line 1274 of file allegro_pcb_structs.h.

Referenced by ALLEGRO::BOARD_BUILDER::buildVia().

◆ m_N

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.

◆ m_Next

uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_Next

Definition at line 1275 of file allegro_pcb_structs.h.

◆ m_NumCompsPerLayer

size_t ALLEGRO::BLK_0x1C_PADSTACK::m_NumCompsPerLayer

Definition at line 1354 of file allegro_pcb_structs.h.

Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems().

◆ m_NumFixedCompEntries

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().

◆ m_PadStr

uint32_t ALLEGRO::BLK_0x1C_PADSTACK::m_PadStr

◆ m_UnknownArrN

std::vector<uint32_t> ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownArrN

Some structure of m_N * 8 or 10:

  • < 17.2: 8
  • >= 17.2: 10

Definition at line 1362 of file allegro_pcb_structs.h.

◆ m_UnknownByte1

uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte1

Definition at line 1267 of file allegro_pcb_structs.h.

◆ m_UnknownByte2

uint8_t ALLEGRO::BLK_0x1C_PADSTACK::m_UnknownByte2

Definition at line 1273 of file allegro_pcb_structs.h.


The documentation for this struct was generated from the following file: