KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PADSTACK Class Reference

A PADSTACK defines the characteristics of a single or multi-layer pad, in the IPC sense of the word. More...

#include <padstack.h>

Inheritance diagram for PADSTACK:
SERIALIZABLE

Classes

struct  COPPER_LAYER_PROPS
 The features of a padstack that can vary between copper layers All parameters are optional; leaving them un-set means "use parent/rule defaults" Pad clearances, margins, etc. More...
 
struct  DRILL_PROPS
 ! The properties of a padstack drill. Drill position is always the pad position (origin). More...
 
struct  MASK_LAYER_PROPS
 ! The features of a padstack that can vary on outer layers. More...
 
struct  SHAPE_PROPS
 ! The set of properties that define a pad's shape on a given layer More...
 

Public Types

enum class  TYPE { NORMAL , VIA , MOUNTING }
 ! Padstack type, mostly for IPC-7351 naming and attributes Note that TYPE::MOUNTING is probably not currently supported by KiCad More...
 
enum class  MODE { NORMAL , TOP_INNER_BOTTOM , CUSTOM }
 
enum class  UNCONNECTED_LAYER_MODE { KEEP_ALL , REMOVE_ALL , REMOVE_EXCEPT_START_AND_END }
 ! Whether or not to remove the copper shape for unconnected layers More...
 
enum class  CUSTOM_SHAPE_ZONE_MODE { OUTLINE , CONVEXHULL }
 

Public Member Functions

 PADSTACK (BOARD_ITEM *aParent)
 
virtual ~PADSTACK ()=default
 
 PADSTACK (const PADSTACK &aOther)
 
PADSTACKoperator= (const PADSTACK &aOther)
 
bool operator== (const PADSTACK &aOther) const
 
bool operator!= (const PADSTACK &aOther) const
 
void Serialize (google::protobuf::Any &aContainer) const override
 Serializes this object to the given Any message.
 
bool Deserialize (const google::protobuf::Any &aContainer) override
 Deserializes the given protobuf message into this object.
 
const LSETLayerSet () const
 
LSETLayerSet ()
 
void SetLayerSet (const LSET &aSet)
 
PCB_LAYER_ID StartLayer () const
 
PCB_LAYER_ID EndLayer () const
 
MODE Mode () const
 
void SetMode (MODE aMode)
 
wxString Name () const
 ! Returns the name of this padstack in IPC-7351 format
 
EDA_ANGLE GetOrientation () const
 
void SetOrientation (EDA_ANGLE aAngle)
 
DRILL_PROPSDrill ()
 
const DRILL_PROPSDrill () const
 
DRILL_PROPSSecondaryDrill ()
 
const DRILL_PROPSSecondaryDrill () const
 
UNCONNECTED_LAYER_MODE UnconnectedLayerMode () const
 
void SetUnconnectedLayerMode (UNCONNECTED_LAYER_MODE aMode)
 
COPPER_LAYER_PROPSCopperLayerDefaults ()
 
const COPPER_LAYER_PROPSCopperLayerDefaults () const
 
MASK_LAYER_PROPSFrontOuterLayers ()
 
const MASK_LAYER_PROPSFrontOuterLayers () const
 
MASK_LAYER_PROPSBackOuterLayers ()
 
const MASK_LAYER_PROPSBackOuterLayers () const
 
std::optional< bool > IsTented (PCB_LAYER_ID aSide) const
 Checks if this padstack is tented (covered in soldermask) on the given side.
 
CUSTOM_SHAPE_ZONE_MODE CustomShapeInZoneMode () const
 
void SetCustomShapeInZoneMode (CUSTOM_SHAPE_ZONE_MODE aM)
 
PAD_SHAPE Shape (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetShape (PAD_SHAPE aShape, PCB_LAYER_ID aLayer=F_Cu)
 
VECTOR2ISize (PCB_LAYER_ID aLayer=F_Cu)
 
const VECTOR2ISize (PCB_LAYER_ID aLayer=F_Cu) const
 
PAD_DRILL_SHAPE DrillShape (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetDrillShape (PAD_DRILL_SHAPE aShape, PCB_LAYER_ID aLayer=F_Cu)
 
VECTOR2IOffset (PCB_LAYER_ID aLayer=F_Cu)
 
const VECTOR2IOffset (PCB_LAYER_ID aLayer=F_Cu) const
 
PAD_SHAPE AnchorShape (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetAnchorShape (PAD_SHAPE aShape, PCB_LAYER_ID aLayer=F_Cu)
 
VECTOR2ITrapezoidDeltaSize (PCB_LAYER_ID aLayer=F_Cu)
 
const VECTOR2ITrapezoidDeltaSize (PCB_LAYER_ID aLayer=F_Cu) const
 
double RoundRectRadiusRatio (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetRoundRectRadiusRatio (double aRatio, PCB_LAYER_ID aLayer=F_Cu)
 
int RoundRectRadius (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetRoundRectRadius (double aRadius, PCB_LAYER_ID aLayer=F_Cu)
 
double ChamferRatio (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetChamferRatio (double aRatio, PCB_LAYER_ID aLayer=F_Cu)
 
int & ChamferPositions (PCB_LAYER_ID aLayer=F_Cu)
 
const int & ChamferPositions (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetChamferPositions (int aPositions, PCB_LAYER_ID aLayer=F_Cu)
 
std::optional< int > & Clearance (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & Clearance (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & SolderMaskMargin (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & SolderMaskMargin (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & SolderPasteMargin (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & SolderPasteMargin (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< double > & SolderPasteMarginRatio (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< double > & SolderPasteMarginRatio (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< ZONE_CONNECTION > & ZoneConnection (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< ZONE_CONNECTION > & ZoneConnection (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & ThermalSpokeWidth (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & ThermalSpokeWidth (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & ThermalGap (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & ThermalGap (PCB_LAYER_ID aLayer=F_Cu) const
 
EDA_ANGLE ThermalSpokeAngle (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetThermalSpokeAngle (EDA_ANGLE aAngle, PCB_LAYER_ID aLayer=F_Cu)
 
std::vector< std::shared_ptr< PCB_SHAPE > > & Primitives (PCB_LAYER_ID aLayer=F_Cu)
 
const std::vector< std::shared_ptr< PCB_SHAPE > > & Primitives (PCB_LAYER_ID aLayer=F_Cu) const
 
void AddPrimitive (PCB_SHAPE *aShape, PCB_LAYER_ID aLayer=F_Cu)
 Adds a custom shape primitive to the padstack.
 
void AppendPrimitives (const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList, PCB_LAYER_ID aLayer=F_Cu)
 Appends a copy of each shape in the given list to this padstack's custom shape list.
 
void ReplacePrimitives (const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList, PCB_LAYER_ID aLayer=F_Cu)
 Clears the existing primitive list (freeing the owned shapes) and adds copies of the given shapes to the padstack for the given layer.
 
void ClearPrimitives (PCB_LAYER_ID aLayer=F_Cu)
 

Private Attributes

BOARD_ITEMm_parent
 ! The BOARD_ITEM this PADSTACK belongs to; will be used as the parent for owned shapes
 
MODE m_mode
 ! The copper layer variation mode this padstack is in
 
LSET m_layerSet
 ! The board layers that this padstack is active on
 
wxString m_customName
 ! An override for the IPC-7351 padstack name
 
EDA_ANGLE m_orientation
 ! The rotation of the pad relative to an outer reference frame
 
COPPER_LAYER_PROPS m_defaultCopperProps
 ! The properties applied to copper layers if they aren't overridden
 
MASK_LAYER_PROPS m_frontMaskProps
 ! The overrides applied to front outer technical layers
 
MASK_LAYER_PROPS m_backMaskProps
 ! The overrides applied to back outer technical layers
 
UNCONNECTED_LAYER_MODE m_unconnectedLayerMode
 
CUSTOM_SHAPE_ZONE_MODE m_customShapeInZoneMode
 How to build the custom shape in zone, to create the clearance area: CUSTOM_SHAPE_ZONE_MODE::OUTLINE = use pad shape CUSTOM_SHAPE_ZONE_MODE::CONVEXHULL = use the convex hull of the pad shape.
 
std::unordered_map< PCB_LAYER_ID, COPPER_LAYER_PROPSm_copperOverrides
 ! Any entries here override the copper layer settings on the given copper layer.
 
DRILL_PROPS m_drill
 ! The primary drill parameters, which also define the start and end layers for through-hole vias and pads (F_Cu to B_Cu for normal holes; a subset of layers for blind/buried vias)
 
DRILL_PROPS m_secondaryDrill
 ! Secondary drill, used to define back-drilling
 

Detailed Description

A PADSTACK defines the characteristics of a single or multi-layer pad, in the IPC sense of the word.

This means that a PCB_PAD has a padstack, but also a PCB_VIA. The padstack for a pad defines its geometry on copper, soldermask, and paste layers, as well as any drilling or milling associated with the pad (round or slot hole, back-drilling, etc). Padstacks also define thermal relief settings for all copper layers, clearance overrides for all copper layers, and potentially other properties in the future. In other words, the padstack defines most of the geometric features of a pad on all layers. It does not define electrical properties or other metadata.

For padstacks that do not vary between layers, F_Cu is used as the copper layer to store all padstack properties.

Definition at line 116 of file padstack.h.

Member Enumeration Documentation

◆ CUSTOM_SHAPE_ZONE_MODE

Enumerator
OUTLINE 
CONVEXHULL 

Definition at line 143 of file padstack.h.

◆ MODE

enum class PADSTACK::MODE
strong
Enumerator
NORMAL 

Shape is the same on all layers.

TOP_INNER_BOTTOM 

Up to three shapes can be defined (top, inner, bottom)

CUSTOM 

Shapes can be defined on arbitrary layers.

Definition at line 128 of file padstack.h.

◆ TYPE

enum class PADSTACK::TYPE
strong

! Padstack type, mostly for IPC-7351 naming and attributes Note that TYPE::MOUNTING is probably not currently supported by KiCad

Enumerator
NORMAL 

Padstack for a footprint pad.

VIA 

Padstack for a via.

MOUNTING 

A mounting hole (plated or unplated, not associated with a footprint)

Definition at line 121 of file padstack.h.

◆ UNCONNECTED_LAYER_MODE

! Whether or not to remove the copper shape for unconnected layers

Enumerator
KEEP_ALL 
REMOVE_ALL 
REMOVE_EXCEPT_START_AND_END 

Definition at line 136 of file padstack.h.

Constructor & Destructor Documentation

◆ PADSTACK() [1/2]

◆ ~PADSTACK()

virtual PADSTACK::~PADSTACK ( )
virtualdefault

◆ PADSTACK() [2/2]

PADSTACK::PADSTACK ( const PADSTACK aOther)

Definition at line 52 of file padstack.cpp.

Member Function Documentation

◆ AddPrimitive()

void PADSTACK::AddPrimitive ( PCB_SHAPE aShape,
PCB_LAYER_ID  aLayer = F_Cu 
)

Adds a custom shape primitive to the padstack.

Parameters
aShapeis a shape to add as a custom primitive. Ownership is passed to this PADSTACK.
aLayeris the padstack layer to add to.

Definition at line 510 of file padstack.cpp.

References CopperLayerDefaults(), and PADSTACK::COPPER_LAYER_PROPS::custom_shapes.

Referenced by PAD::AddPrimitive(), PAD::AddPrimitivePoly(), AppendPrimitives(), and Deserialize().

◆ AnchorShape()

PAD_SHAPE PADSTACK::AnchorShape ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ AppendPrimitives()

void PADSTACK::AppendPrimitives ( const std::vector< std::shared_ptr< PCB_SHAPE > > &  aPrimitivesList,
PCB_LAYER_ID  aLayer = F_Cu 
)

Appends a copy of each shape in the given list to this padstack's custom shape list.

Parameters
aPrimitivesListis a list of shapes to add copies of to this PADSTACK
aLayeris the padstack layer to add to.

Definition at line 516 of file padstack.cpp.

References AddPrimitive().

Referenced by ReplacePrimitives().

◆ BackOuterLayers() [1/2]

◆ BackOuterLayers() [2/2]

const MASK_LAYER_PROPS & PADSTACK::BackOuterLayers ( ) const
inline

Definition at line 282 of file padstack.h.

References m_backMaskProps.

◆ ChamferPositions() [1/2]

int & PADSTACK::ChamferPositions ( PCB_LAYER_ID  aLayer = F_Cu)

◆ ChamferPositions() [2/2]

const int & PADSTACK::ChamferPositions ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ ChamferRatio()

double PADSTACK::ChamferRatio ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ Clearance() [1/2]

std::optional< int > & PADSTACK::Clearance ( PCB_LAYER_ID  aLayer = F_Cu)

◆ Clearance() [2/2]

const std::optional< int > & PADSTACK::Clearance ( PCB_LAYER_ID  aLayer = F_Cu) const

Definition at line 398 of file padstack.cpp.

References PADSTACK::COPPER_LAYER_PROPS::clearance, and CopperLayerDefaults().

◆ ClearPrimitives()

void PADSTACK::ClearPrimitives ( PCB_LAYER_ID  aLayer = F_Cu)

◆ CopperLayerDefaults() [1/2]

◆ CopperLayerDefaults() [2/2]

const COPPER_LAYER_PROPS & PADSTACK::CopperLayerDefaults ( ) const
inline

Definition at line 276 of file padstack.h.

References m_defaultCopperProps.

◆ CustomShapeInZoneMode()

CUSTOM_SHAPE_ZONE_MODE PADSTACK::CustomShapeInZoneMode ( ) const
inline

Definition at line 292 of file padstack.h.

References m_customShapeInZoneMode.

Referenced by PAD::GetCustomShapeInZoneOpt().

◆ Deserialize()

◆ Drill() [1/2]

◆ Drill() [2/2]

const DRILL_PROPS & PADSTACK::Drill ( ) const
inline

Definition at line 267 of file padstack.h.

References m_drill.

◆ DrillShape()

PAD_DRILL_SHAPE PADSTACK::DrillShape ( PCB_LAYER_ID  aLayer = F_Cu) const

Definition at line 285 of file padstack.cpp.

References m_drill, and PADSTACK::DRILL_PROPS::shape.

◆ EndLayer()

PCB_LAYER_ID PADSTACK::EndLayer ( ) const

Definition at line 207 of file padstack.cpp.

References PADSTACK::DRILL_PROPS::end, and m_drill.

Referenced by Serialize().

◆ FrontOuterLayers() [1/2]

◆ FrontOuterLayers() [2/2]

const MASK_LAYER_PROPS & PADSTACK::FrontOuterLayers ( ) const
inline

Definition at line 279 of file padstack.h.

References m_frontMaskProps.

◆ GetOrientation()

EDA_ANGLE PADSTACK::GetOrientation ( ) const
inline

Definition at line 259 of file padstack.h.

References m_orientation.

Referenced by PAD::GetOrientation(), PAD::GetOrientationDegrees(), and PAD::Rotate().

◆ IsTented()

std::optional< bool > PADSTACK::IsTented ( PCB_LAYER_ID  aSide) const

Checks if this padstack is tented (covered in soldermask) on the given side.

Parameters
aSideis a front or back layer (any will do)
Returns
true or false if this padstack contains a tenting override on the given layer, or std::nullopt if there is no override (meaning design rules should be used)

Definition at line 540 of file padstack.cpp.

References PADSTACK::MASK_LAYER_PROPS::has_solder_mask, IsBackLayer(), IsFrontLayer(), m_backMaskProps, and m_frontMaskProps.

◆ LayerSet() [1/2]

LSET & PADSTACK::LayerSet ( )
inline

Definition at line 247 of file padstack.h.

References m_layerSet.

◆ LayerSet() [2/2]

◆ Mode()

MODE PADSTACK::Mode ( ) const
inline

Definition at line 253 of file padstack.h.

References m_mode.

◆ Name()

wxString PADSTACK::Name ( ) const

! Returns the name of this padstack in IPC-7351 format

Definition at line 194 of file padstack.cpp.

◆ Offset() [1/2]

◆ Offset() [2/2]

const VECTOR2I & PADSTACK::Offset ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ operator!=()

bool PADSTACK::operator!= ( const PADSTACK aOther) const
inline

Definition at line 241 of file padstack.h.

References operator==().

◆ operator=()

◆ operator==()

bool PADSTACK::operator== ( const PADSTACK aOther) const

◆ Primitives() [1/2]

std::vector< std::shared_ptr< PCB_SHAPE > > & PADSTACK::Primitives ( PCB_LAYER_ID  aLayer = F_Cu)

◆ Primitives() [2/2]

const std::vector< std::shared_ptr< PCB_SHAPE > > & PADSTACK::Primitives ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ ReplacePrimitives()

void PADSTACK::ReplacePrimitives ( const std::vector< std::shared_ptr< PCB_SHAPE > > &  aPrimitivesList,
PCB_LAYER_ID  aLayer = F_Cu 
)

Clears the existing primitive list (freeing the owned shapes) and adds copies of the given shapes to the padstack for the given layer.

Parameters
aPrimitivesListis a list of shapes to add copies of to this PADSTACK
aLayeris the padstack layer to add to.

Definition at line 524 of file padstack.cpp.

References AppendPrimitives(), and ClearPrimitives().

◆ RoundRectRadius()

int PADSTACK::RoundRectRadius ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ RoundRectRadiusRatio()

double PADSTACK::RoundRectRadiusRatio ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ SecondaryDrill() [1/2]

DRILL_PROPS & PADSTACK::SecondaryDrill ( )
inline

Definition at line 269 of file padstack.h.

References m_secondaryDrill.

◆ SecondaryDrill() [2/2]

const DRILL_PROPS & PADSTACK::SecondaryDrill ( ) const
inline

Definition at line 270 of file padstack.h.

References m_secondaryDrill.

◆ Serialize()

void PADSTACK::Serialize ( google::protobuf::Any &  aContainer) const
overridevirtual

Serializes this object to the given Any message.

The Any message's concrete type will be specific to the object in question.

Parameters
aContainerwill be filled with a message describing this object

Reimplemented from SERIALIZABLE.

Definition at line 153 of file padstack.cpp.

References AnchorShape(), EDA_ANGLE::AsDegrees(), PADSTACK::SHAPE_PROPS::chamfered_rect_positions, CopperLayerDefaults(), Drill(), EndLayer(), LayerSet(), m_mode, m_orientation, m_unconnectedLayerMode, kiapi::board::PackLayerSet(), kiapi::common::PackVector2(), Primitives(), RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, PADSTACK::COPPER_LAYER_PROPS::shape, Shape(), Size(), and StartLayer().

Referenced by PAD::Serialize(), and PCB_VIA::Serialize().

◆ SetAnchorShape()

void PADSTACK::SetAnchorShape ( PAD_SHAPE  aShape,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetChamferPositions()

void PADSTACK::SetChamferPositions ( int  aPositions,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetChamferRatio()

void PADSTACK::SetChamferRatio ( double  aRatio,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetCustomShapeInZoneMode()

void PADSTACK::SetCustomShapeInZoneMode ( CUSTOM_SHAPE_ZONE_MODE  aM)
inline

Definition at line 293 of file padstack.h.

References m_customShapeInZoneMode.

Referenced by PAD::SetCustomShapeInZoneOpt().

◆ SetDrillShape()

void PADSTACK::SetDrillShape ( PAD_DRILL_SHAPE  aShape,
PCB_LAYER_ID  aLayer = F_Cu 
)

Definition at line 291 of file padstack.cpp.

References m_drill, and PADSTACK::DRILL_PROPS::shape.

◆ SetLayerSet()

void PADSTACK::SetLayerSet ( const LSET aSet)
inline

Definition at line 248 of file padstack.h.

References m_layerSet.

Referenced by Deserialize(), PAD::PAD(), and PAD::SetLayerSet().

◆ SetMode()

void PADSTACK::SetMode ( MODE  aMode)
inline

Definition at line 254 of file padstack.h.

References m_mode.

◆ SetOrientation()

void PADSTACK::SetOrientation ( EDA_ANGLE  aAngle)
inline

Definition at line 260 of file padstack.h.

References m_orientation, and EDA_ANGLE::Normalize().

Referenced by PAD::Rotate(), and PAD::SetOrientation().

◆ SetRoundRectRadius()

void PADSTACK::SetRoundRectRadius ( double  aRadius,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetRoundRectRadiusRatio()

void PADSTACK::SetRoundRectRadiusRatio ( double  aRatio,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetShape()

void PADSTACK::SetShape ( PAD_SHAPE  aShape,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetThermalSpokeAngle()

void PADSTACK::SetThermalSpokeAngle ( EDA_ANGLE  aAngle,
PCB_LAYER_ID  aLayer = F_Cu 
)

◆ SetUnconnectedLayerMode()

◆ Shape()

◆ Size() [1/2]

◆ Size() [2/2]

const VECTOR2I & PADSTACK::Size ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ SolderMaskMargin() [1/2]

std::optional< int > & PADSTACK::SolderMaskMargin ( PCB_LAYER_ID  aLayer = F_Cu)

◆ SolderMaskMargin() [2/2]

const std::optional< int > & PADSTACK::SolderMaskMargin ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ SolderPasteMargin() [1/2]

std::optional< int > & PADSTACK::SolderPasteMargin ( PCB_LAYER_ID  aLayer = F_Cu)

◆ SolderPasteMargin() [2/2]

const std::optional< int > & PADSTACK::SolderPasteMargin ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ SolderPasteMarginRatio() [1/2]

◆ SolderPasteMarginRatio() [2/2]

const std::optional< double > & PADSTACK::SolderPasteMarginRatio ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ StartLayer()

PCB_LAYER_ID PADSTACK::StartLayer ( ) const

Definition at line 201 of file padstack.cpp.

References m_drill, and PADSTACK::DRILL_PROPS::start.

Referenced by PAD::Deserialize(), and Serialize().

◆ ThermalGap() [1/2]

std::optional< int > & PADSTACK::ThermalGap ( PCB_LAYER_ID  aLayer = F_Cu)

◆ ThermalGap() [2/2]

const std::optional< int > & PADSTACK::ThermalGap ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ ThermalSpokeAngle()

◆ ThermalSpokeWidth() [1/2]

std::optional< int > & PADSTACK::ThermalSpokeWidth ( PCB_LAYER_ID  aLayer = F_Cu)

◆ ThermalSpokeWidth() [2/2]

const std::optional< int > & PADSTACK::ThermalSpokeWidth ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ TrapezoidDeltaSize() [1/2]

◆ TrapezoidDeltaSize() [2/2]

const VECTOR2I & PADSTACK::TrapezoidDeltaSize ( PCB_LAYER_ID  aLayer = F_Cu) const

◆ UnconnectedLayerMode()

◆ ZoneConnection() [1/2]

◆ ZoneConnection() [2/2]

const std::optional< ZONE_CONNECTION > & PADSTACK::ZoneConnection ( PCB_LAYER_ID  aLayer = F_Cu) const

Member Data Documentation

◆ m_backMaskProps

MASK_LAYER_PROPS PADSTACK::m_backMaskProps
private

! The overrides applied to back outer technical layers

Definition at line 404 of file padstack.h.

Referenced by BackOuterLayers(), IsTented(), operator=(), operator==(), SolderMaskMargin(), SolderPasteMargin(), and SolderPasteMarginRatio().

◆ m_copperOverrides

std::unordered_map<PCB_LAYER_ID, COPPER_LAYER_PROPS> PADSTACK::m_copperOverrides
private

! Any entries here override the copper layer settings on the given copper layer.

If m_mode == MODE::TOP_INNER_BOTTOM, the inner layer setting is always In1_Cu and the only keys in this map that are used are F_Cu, In1_Cu, and B_Cu. If m_mode == MODE::NORMAL, this map is ignored.

Definition at line 419 of file padstack.h.

Referenced by operator=(), and operator==().

◆ m_customName

wxString PADSTACK::m_customName
private

! An override for the IPC-7351 padstack name

Definition at line 392 of file padstack.h.

Referenced by operator=(), and operator==().

◆ m_customShapeInZoneMode

CUSTOM_SHAPE_ZONE_MODE PADSTACK::m_customShapeInZoneMode
private

How to build the custom shape in zone, to create the clearance area: CUSTOM_SHAPE_ZONE_MODE::OUTLINE = use pad shape CUSTOM_SHAPE_ZONE_MODE::CONVEXHULL = use the convex hull of the pad shape.

Definition at line 413 of file padstack.h.

Referenced by CustomShapeInZoneMode(), and SetCustomShapeInZoneMode().

◆ m_defaultCopperProps

COPPER_LAYER_PROPS PADSTACK::m_defaultCopperProps
private

! The properties applied to copper layers if they aren't overridden

Definition at line 398 of file padstack.h.

Referenced by CopperLayerDefaults(), operator=(), operator==(), and PADSTACK().

◆ m_drill

DRILL_PROPS PADSTACK::m_drill
private

! The primary drill parameters, which also define the start and end layers for through-hole vias and pads (F_Cu to B_Cu for normal holes; a subset of layers for blind/buried vias)

Definition at line 423 of file padstack.h.

Referenced by Drill(), DrillShape(), EndLayer(), operator=(), operator==(), PADSTACK(), SetDrillShape(), and StartLayer().

◆ m_frontMaskProps

MASK_LAYER_PROPS PADSTACK::m_frontMaskProps
private

! The overrides applied to front outer technical layers

Definition at line 401 of file padstack.h.

Referenced by FrontOuterLayers(), IsTented(), operator=(), operator==(), SolderMaskMargin(), SolderPasteMargin(), and SolderPasteMarginRatio().

◆ m_layerSet

LSET PADSTACK::m_layerSet
private

! The board layers that this padstack is active on

Definition at line 389 of file padstack.h.

Referenced by Deserialize(), LayerSet(), operator=(), operator==(), and SetLayerSet().

◆ m_mode

MODE PADSTACK::m_mode
private

! The copper layer variation mode this padstack is in

Definition at line 386 of file padstack.h.

Referenced by Deserialize(), Mode(), operator=(), operator==(), Serialize(), and SetMode().

◆ m_orientation

EDA_ANGLE PADSTACK::m_orientation
private

! The rotation of the pad relative to an outer reference frame

Definition at line 395 of file padstack.h.

Referenced by Deserialize(), GetOrientation(), Serialize(), and SetOrientation().

◆ m_parent

BOARD_ITEM* PADSTACK::m_parent
private

! The BOARD_ITEM this PADSTACK belongs to; will be used as the parent for owned shapes

Definition at line 383 of file padstack.h.

Referenced by Deserialize().

◆ m_secondaryDrill

DRILL_PROPS PADSTACK::m_secondaryDrill
private

! Secondary drill, used to define back-drilling

Definition at line 426 of file padstack.h.

Referenced by operator=(), operator==(), PADSTACK(), and SecondaryDrill().

◆ m_unconnectedLayerMode

UNCONNECTED_LAYER_MODE PADSTACK::m_unconnectedLayerMode
private

The documentation for this class was generated from the following files: