KiCad PCB EDA Suite
ZONE_SETTINGS Class Reference

ZONE_SETTINGS handles zones parameters. More...

#include <zone_settings.h>

Public Types

enum  {
  SMOOTHING_UNDEFINED = -1, SMOOTHING_NONE = 0, SMOOTHING_CHAMFER, SMOOTHING_FILLET,
  SMOOTHING_LAST
}
 

Public Member Functions

 ZONE_SETTINGS ()
 class ZONE_SETTINGS used to handle zones parameters More...
 
ZONE_SETTINGSoperator<< (const ZONE_CONTAINER &aSource)
 operator << ( const ZONE_CONTAINER& ) was Function ImportSetting copies settings from a given zone into this object. More...
 
void SetupLayersList (wxDataViewListCtrl *aList, PCB_BASE_FRAME *aFrame, bool aShowCopper, bool aFpEditorMode=false)
 A helper routine for the various zone dialogs (copper, non-copper, keepout). More...
 
void ExportSetting (ZONE_CONTAINER &aTarget, bool aFullExport=true) const
 Function ExportSetting copy settings to a given zone. More...
 
void SetCornerSmoothingType (int aType)
 
int GetCornerSmoothingType () const
 
void SetCornerRadius (int aRadius)
 
unsigned int GetCornerRadius () const
 
ZONE_CONNECTION GetPadConnection () const
 
void SetPadConnection (ZONE_CONNECTION aPadConnection)
 
const bool GetIsKeepout () const
 Accessors to parameters used in Keepout zones: More...
 
const bool GetDoNotAllowCopperPour () const
 
const bool GetDoNotAllowVias () const
 
const bool GetDoNotAllowTracks () const
 
void SetIsKeepout (bool aEnable)
 
void SetDoNotAllowCopperPour (bool aEnable)
 
void SetDoNotAllowVias (bool aEnable)
 
void SetDoNotAllowTracks (bool aEnable)
 

Public Attributes

ZONE_FILL_MODE m_FillMode
 
int m_ZonePriority
 Priority (0 ... N) of the zone. More...
 
int m_ZoneClearance
 Minimal clearance value. More...
 
int m_ZoneMinThickness
 Min thickness value in filled areas. More...
 
int m_HatchFillTypeThickness
 Grid style shape: thickness of lines (if 0 -> solid shape) More...
 
int m_HatchFillTypeGap
 Grid style shape: clearance between lines (0 -> solid shape) More...
 
double m_HatchFillTypeOrientation
 Grid style shape: orientation of grid lines in degrees. More...
 
int m_HatchFillTypeSmoothingLevel
 Grid pattern smoothing type, similar to corner smoothing type 0 = no smoothing, 1 = fillet, >= 2 = arc. More...
 
double m_HatchFillTypeSmoothingValue
 Grid pattern chamfer distance/fillet value. More...
 
int m_NetcodeSelection
 Net code selection for the current zone. More...
 
LSET m_Layers
 
PCB_LAYER_ID m_CurrentZone_Layer
 Layer used to create the current zone. More...
 
ZONE_HATCH_STYLE m_Zone_HatchingStyle
 Option to show the zone area (outlines only, short hatches or full hatches. More...
 
long m_ThermalReliefGap
 thickness of the gap in thermal reliefs More...
 
long m_ThermalReliefCopperBridge
 thickness of the copper bridge in thermal reliefs More...
 
bool m_Zone_45_Only
 

Private Attributes

int m_cornerSmoothingType
 Corner smoothing type. More...
 
unsigned int m_cornerRadius
 Corner chamfer distance / fillet radius. More...
 
ZONE_CONNECTION m_PadConnection
 
bool m_isKeepout
 
bool m_keepoutDoNotAllowCopperPour
 
bool m_keepoutDoNotAllowVias
 
bool m_keepoutDoNotAllowTracks
 

Detailed Description

ZONE_SETTINGS handles zones parameters.

Because a zone can be on copper or non copper layers, and can be also a keepout area, some parameters are irrelevant depending on the type of zone

Definition at line 58 of file zone_settings.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SMOOTHING_UNDEFINED 
SMOOTHING_NONE 
SMOOTHING_CHAMFER 
SMOOTHING_FILLET 
SMOOTHING_LAST 

Definition at line 62 of file zone_settings.h.

62  {
64  SMOOTHING_NONE = 0, // Zone outline is used without change
65  SMOOTHING_CHAMFER, // Zone outline is used after chamfering corners
66  SMOOTHING_FILLET, // Zone outline is used after rounding corners
67  SMOOTHING_LAST // sentinel
68  };

Constructor & Destructor Documentation

◆ ZONE_SETTINGS()

ZONE_SETTINGS::ZONE_SETTINGS ( )

class ZONE_SETTINGS used to handle zones parameters

Definition at line 45 of file zone_settings.cpp.

46 {
47  m_ZonePriority = 0;
48  m_FillMode = ZONE_FILL_MODE::POLYGONS; // Mode for filling zone
49  // Zone clearance value
51  // Min thickness value in filled areas (this is the minimum width of copper to fill solid areas) :
54  0; // good value of grid line thickness if m_FillMode = ZFM_GRID_PATTERN
55  m_HatchFillTypeGap = 0; // good value of grid line gap if m_FillMode = ZFM_GRID_PATTERN
56  m_HatchFillTypeOrientation = 0.0; // Grid style: orientation of grid lines in degrees
57  m_HatchFillTypeSmoothingLevel = 0; // Grid pattern smoothing type. 0 = no smoothing
58  m_HatchFillTypeSmoothingValue = 0.1; // Grid pattern chamfer value relative to the gap value
59  m_NetcodeSelection = 0; // Net code selection for the current zone
60  m_CurrentZone_Layer = F_Cu; // Layer used to create the current zone
62  ZONE_HATCH_STYLE::DIAGONAL_EDGE; // Option to show the zone area (outlines only,
63  //short hatches or full hatches
64 
65  // thickness of the gap in thermal reliefs:
67  // thickness of the copper bridge in thermal reliefs:
69 
70  m_PadConnection = ZONE_CONNECTION::THERMAL; // How pads are covered by copper in zone
71 
72  m_Zone_45_Only = false;
73 
75  m_cornerRadius = 0;
76 
77  SetIsKeepout( false );
78  SetDoNotAllowCopperPour( false );
79  SetDoNotAllowVias( true );
80  SetDoNotAllowTracks( true );
81 }
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:94
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type 0 = no smoothing, 1 = fillet,...
Definition: zone_settings.h:79
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:78
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:77
#define ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL
Definition: zones.h:30
ZONE_CONNECTION m_PadConnection
void SetDoNotAllowVias(bool aEnable)
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:84
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:99
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:72
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:91
#define ZONE_CLEARANCE_MIL
Definition: zones.h:33
int m_ZoneClearance
Minimal clearance value.
Definition: zone_settings.h:74
void SetIsKeepout(bool aEnable)
void SetDoNotAllowTracks(bool aEnable)
#define ZONE_THICKNESS_MIL
Definition: zones.h:31
Use thermal relief for pads.
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:70
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:81
void SetDoNotAllowCopperPour(bool aEnable)
#define ZONE_THERMAL_RELIEF_GAP_MIL
Definition: zones.h:29
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:76
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:88
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:93
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:75

References DIAGONAL_EDGE, F_Cu, m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, m_ZonePriority, POLYGONS, SetDoNotAllowCopperPour(), SetDoNotAllowTracks(), SetDoNotAllowVias(), SetIsKeepout(), SMOOTHING_NONE, THERMAL, ZONE_CLEARANCE_MIL, ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL, ZONE_THERMAL_RELIEF_GAP_MIL, and ZONE_THICKNESS_MIL.

Member Function Documentation

◆ ExportSetting()

void ZONE_SETTINGS::ExportSetting ( ZONE_CONTAINER aTarget,
bool  aFullExport = true 
) const

Function ExportSetting copy settings to a given zone.

Parameters
aTargetthe given zone
aFullExportif false: some parameters are NOT exported because they must not be exported when export settings from a zone to others zones Currently: m_NetcodeSelection

Definition at line 115 of file zone_settings.cpp.

116 {
117  aTarget.SetFillMode( m_FillMode );
129  aTarget.SetCornerRadius( m_cornerRadius );
130  aTarget.SetIsKeepout( GetIsKeepout() );
134  aTarget.SetHV45( m_Zone_45_Only );
135 
136  if( aFullExport )
137  {
138  aTarget.SetPriority( m_ZonePriority );
139 
140  // Keepout zones can have multiple layers and have no net
141  if( m_isKeepout )
142  {
143  aTarget.SetLayerSet( m_Layers );
144  }
145  else
146  {
147  aTarget.SetNetCode( m_NetcodeSelection );
148  aTarget.SetLayer( m_CurrentZone_Layer );
149  }
150  }
151 
152  // call SetHatch last, because hatch lines will be rebuilt,
153  // using new parameters values
154  aTarget.SetHatch( m_Zone_HatchingStyle, aTarget.GetDefaultHatchPitch(), true );
155 }
void SetDoNotAllowTracks(bool aEnable)
Definition: class_zone.h:657
void SetCornerSmoothingType(int aType)
Definition: class_zone.h:609
void SetHatch(ZONE_HATCH_STYLE aHatchStyle, int aHatchPitch, bool aRebuildHatch)
Function SetHatch sets all hatch parameters for the zone.
Definition: class_zone.cpp:970
void SetHatchFillTypeSmoothingLevel(int aLevel)
Definition: class_zone.h:223
void SetHatchFillTypeSmoothingValue(double aValue)
Definition: class_zone.h:226
void SetPadConnection(ZONE_CONNECTION aPadConnection)
Definition: class_zone.h:199
void SetCornerRadius(unsigned int aRadius)
Definition: class_zone.cpp:551
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:94
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type 0 = no smoothing, 1 = fillet,...
Definition: zone_settings.h:79
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:78
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:77
ZONE_CONNECTION m_PadConnection
static int GetDefaultHatchPitch()
Function GetDefaultHatchPitchMils.
void SetDoNotAllowVias(bool aEnable)
Definition: class_zone.h:656
void SetPriority(unsigned aPriority)
Function SetPriority.
Definition: class_zone.h:94
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:84
void SetLayerSet(LSET aLayerSet)
Definition: class_zone.cpp:248
void SetHatchFillTypeGap(int aStep)
Definition: class_zone.h:217
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:99
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:72
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:91
virtual void SetLayer(PCB_LAYER_ID aLayer) override
Function SetLayer sets the layer this item is on.
Definition: class_zone.cpp:240
int m_ZoneClearance
Minimal clearance value.
Definition: zone_settings.h:74
bool SetNetCode(int aNetCode, bool aNoAssert=false)
Sets net using a net code.
const bool GetDoNotAllowVias() const
const bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
void SetZoneClearance(int aZoneClearance)
Definition: class_zone.h:195
const bool GetDoNotAllowTracks() const
void SetThermalReliefCopperBridge(int aThermalReliefCopperBridge)
Definition: class_zone.h:161
void SetDoNotAllowCopperPour(bool aEnable)
Definition: class_zone.h:655
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:70
void SetFillMode(ZONE_FILL_MODE aFillMode)
Definition: class_zone.h:155
void SetHatchFillTypeOrientation(double aStep)
Definition: class_zone.h:220
const bool GetDoNotAllowCopperPour() const
void SetHV45(bool aConstrain)
Definition: class_zone.h:709
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:81
void SetHatchFillTypeThickness(int aThickness)
Definition: class_zone.h:214
void SetIsKeepout(bool aEnable)
Definition: class_zone.h:654
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
void SetMinThickness(int aMinThickness)
Definition: class_zone.h:205
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:76
void SetThermalReliefGap(int aThermalReliefGap)
Definition: class_zone.h:158
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:88
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:93
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:75

References ZONE_CONTAINER::GetDefaultHatchPitch(), GetDoNotAllowCopperPour(), GetDoNotAllowTracks(), GetDoNotAllowVias(), GetIsKeepout(), m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_isKeepout, m_Layers, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, m_ZonePriority, ZONE_CONTAINER::SetCornerRadius(), ZONE_CONTAINER::SetCornerSmoothingType(), ZONE_CONTAINER::SetDoNotAllowCopperPour(), ZONE_CONTAINER::SetDoNotAllowTracks(), ZONE_CONTAINER::SetDoNotAllowVias(), ZONE_CONTAINER::SetFillMode(), ZONE_CONTAINER::SetHatch(), ZONE_CONTAINER::SetHatchFillTypeGap(), ZONE_CONTAINER::SetHatchFillTypeOrientation(), ZONE_CONTAINER::SetHatchFillTypeSmoothingLevel(), ZONE_CONTAINER::SetHatchFillTypeSmoothingValue(), ZONE_CONTAINER::SetHatchFillTypeThickness(), ZONE_CONTAINER::SetHV45(), ZONE_CONTAINER::SetIsKeepout(), ZONE_CONTAINER::SetLayer(), ZONE_CONTAINER::SetLayerSet(), ZONE_CONTAINER::SetMinThickness(), BOARD_CONNECTED_ITEM::SetNetCode(), ZONE_CONTAINER::SetPadConnection(), ZONE_CONTAINER::SetPriority(), ZONE_CONTAINER::SetThermalReliefCopperBridge(), ZONE_CONTAINER::SetThermalReliefGap(), and ZONE_CONTAINER::SetZoneClearance().

Referenced by ZONE_CREATE_HELPER::createNewZone(), ZONE_CREATE_HELPER::createZoneFromExisting(), PCB_EDIT_FRAME::Edit_Zone_Params(), DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), ZONE_CONTAINER::ZONE_CONTAINER(), and PCB_EDITOR_CONTROL::ZoneDuplicate().

◆ GetCornerRadius()

unsigned int ZONE_SETTINGS::GetCornerRadius ( ) const
inline

Definition at line 154 of file zone_settings.h.

154 { return m_cornerRadius; }
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.

References m_cornerRadius.

Referenced by DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ GetCornerSmoothingType()

int ZONE_SETTINGS::GetCornerSmoothingType ( ) const
inline

◆ GetDoNotAllowCopperPour()

const bool ZONE_SETTINGS::GetDoNotAllowCopperPour ( ) const
inline

◆ GetDoNotAllowTracks()

const bool ZONE_SETTINGS::GetDoNotAllowTracks ( ) const
inline

◆ GetDoNotAllowVias()

const bool ZONE_SETTINGS::GetDoNotAllowVias ( ) const
inline

◆ GetIsKeepout()

const bool ZONE_SETTINGS::GetIsKeepout ( ) const
inline

Accessors to parameters used in Keepout zones:

Definition at line 169 of file zone_settings.h.

169 { return m_isKeepout; }

References m_isKeepout.

Referenced by ExportSetting().

◆ GetPadConnection()

ZONE_CONNECTION ZONE_SETTINGS::GetPadConnection ( ) const
inline

Definition at line 156 of file zone_settings.h.

157  {
158  return m_PadConnection;
159  }
ZONE_CONNECTION m_PadConnection

References m_PadConnection.

Referenced by DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ operator<<()

ZONE_SETTINGS & ZONE_SETTINGS::operator<< ( const ZONE_CONTAINER aSource)

operator << ( const ZONE_CONTAINER& ) was Function ImportSetting copies settings from a given zone into this object.

Parameters
aSourcethe given zone

Definition at line 84 of file zone_settings.cpp.

85 {
86  m_ZonePriority = aSource.GetPriority();
87  m_FillMode = aSource.GetFillMode();
95  m_NetcodeSelection = aSource.GetNetCode();
101  m_cornerRadius = aSource.GetCornerRadius();
102  m_isKeepout = aSource.GetIsKeepout();
106  m_Zone_45_Only = aSource.GetHV45();
107 
108  m_CurrentZone_Layer = aSource.GetLayer();
109  m_Layers = aSource.GetLayerSet();
110 
111  return *this;
112 }
int GetNetCode() const
Function GetNetCode.
int GetThermalReliefCopperBridge(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:542
int GetHatchFillTypeThickness() const
Definition: class_zone.h:213
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:94
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type 0 = no smoothing, 1 = fillet,...
Definition: zone_settings.h:79
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:78
virtual PCB_LAYER_ID GetLayer() const override
Function GetLayer returns the primary layer this item is on.
Definition: class_zone.cpp:213
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:77
double GetHatchFillTypeOrientation() const
Definition: class_zone.h:219
double GetHatchFillTypeSmoothingValue() const
Definition: class_zone.h:225
ZONE_CONNECTION m_PadConnection
int GetThermalReliefGap(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:533
bool GetDoNotAllowVias() const
Definition: class_zone.h:651
virtual LSET GetLayerSet() const override
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
Definition: class_zone.cpp:277
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:84
unsigned int GetCornerRadius() const
Definition: class_zone.h:615
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:99
ZONE_FILL_MODE GetFillMode() const
Definition: class_zone.h:156
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:72
bool GetDoNotAllowCopperPour() const
Definition: class_zone.h:650
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:91
int m_ZoneClearance
Minimal clearance value.
Definition: zone_settings.h:74
ZONE_CONNECTION GetPadConnection(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:879
ZONE_HATCH_STYLE GetHatchStyle() const
Definition: class_zone.h:538
int GetCornerSmoothingType() const
Definition: class_zone.h:611
bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
Definition: class_zone.h:649
bool GetHV45() const
Definition: class_zone.h:708
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:70
unsigned GetPriority() const
Function GetPriority.
Definition: class_zone.h:100
bool m_keepoutDoNotAllowCopperPour
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:81
int GetMinThickness() const
Definition: class_zone.h:204
bool GetDoNotAllowTracks() const
Definition: class_zone.h:652
int GetHatchFillTypeSmoothingLevel() const
Definition: class_zone.h:222
bool m_keepoutDoNotAllowTracks
int GetZoneClearance() const
Definition: class_zone.h:194
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:76
int GetHatchFillTypeGap() const
Definition: class_zone.h:216
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:88
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:93
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:75
bool m_keepoutDoNotAllowVias

References ZONE_CONTAINER::GetCornerRadius(), ZONE_CONTAINER::GetCornerSmoothingType(), ZONE_CONTAINER::GetDoNotAllowCopperPour(), ZONE_CONTAINER::GetDoNotAllowTracks(), ZONE_CONTAINER::GetDoNotAllowVias(), ZONE_CONTAINER::GetFillMode(), ZONE_CONTAINER::GetHatchFillTypeGap(), ZONE_CONTAINER::GetHatchFillTypeOrientation(), ZONE_CONTAINER::GetHatchFillTypeSmoothingLevel(), ZONE_CONTAINER::GetHatchFillTypeSmoothingValue(), ZONE_CONTAINER::GetHatchFillTypeThickness(), ZONE_CONTAINER::GetHatchStyle(), ZONE_CONTAINER::GetHV45(), ZONE_CONTAINER::GetIsKeepout(), ZONE_CONTAINER::GetLayer(), ZONE_CONTAINER::GetLayerSet(), ZONE_CONTAINER::GetMinThickness(), BOARD_CONNECTED_ITEM::GetNetCode(), ZONE_CONTAINER::GetPadConnection(), ZONE_CONTAINER::GetPriority(), ZONE_CONTAINER::GetThermalReliefCopperBridge(), ZONE_CONTAINER::GetThermalReliefGap(), ZONE_CONTAINER::GetZoneClearance(), m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_isKeepout, m_keepoutDoNotAllowCopperPour, m_keepoutDoNotAllowTracks, m_keepoutDoNotAllowVias, m_Layers, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, and m_ZonePriority.

◆ SetCornerRadius()

void ZONE_SETTINGS::SetCornerRadius ( int  aRadius)

Definition at line 158 of file zone_settings.cpp.

159 {
160  if( aRadius < 0 )
161  m_cornerRadius = 0;
162  else
163  m_cornerRadius = aRadius;
164 }
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.

References m_cornerRadius.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), and DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow().

◆ SetCornerSmoothingType()

void ZONE_SETTINGS::SetCornerSmoothingType ( int  aType)
inline

Definition at line 148 of file zone_settings.h.

148 { m_cornerSmoothingType = aType; }
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:99

References m_cornerSmoothingType.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), and DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow().

◆ SetDoNotAllowCopperPour()

void ZONE_SETTINGS::SetDoNotAllowCopperPour ( bool  aEnable)
inline

◆ SetDoNotAllowTracks()

void ZONE_SETTINGS::SetDoNotAllowTracks ( bool  aEnable)
inline

◆ SetDoNotAllowVias()

void ZONE_SETTINGS::SetDoNotAllowVias ( bool  aEnable)
inline

◆ SetIsKeepout()

void ZONE_SETTINGS::SetIsKeepout ( bool  aEnable)
inline

◆ SetPadConnection()

void ZONE_SETTINGS::SetPadConnection ( ZONE_CONNECTION  aPadConnection)
inline

Definition at line 161 of file zone_settings.h.

162  {
163  m_PadConnection = aPadConnection;
164  }
ZONE_CONNECTION m_PadConnection

References m_PadConnection.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions().

◆ SetupLayersList()

void ZONE_SETTINGS::SetupLayersList ( wxDataViewListCtrl *  aList,
PCB_BASE_FRAME aFrame,
bool  aShowCopper,
bool  aFpEditorMode = false 
)

A helper routine for the various zone dialogs (copper, non-copper, keepout).

Parameters
aListthe wxDataViewListCtrl to populate
aFramethe parent editor frame
aShowCopperindicates whether copper or technical layers should be shown
aFpEditorModetrue to show (when aShowCopper = true) the option: all inner layers

Definition at line 175 of file zone_settings.cpp.

177 {
178  BOARD* board = aFrame->GetBoard();
179  COLOR4D backgroundColor = aFrame->ColorSettings()->GetColor( LAYER_PCB_BACKGROUND );
180  LSET layers = aShowCopper ? LSET::AllCuMask( board->GetCopperLayerCount() )
181  : LSET::AllNonCuMask();
182 
183  wxDataViewColumn* checkColumn = aList->AppendToggleColumn( wxEmptyString );
184  wxDataViewColumn* layerColumn = aList->AppendIconTextColumn( wxEmptyString );
185  wxDataViewColumn* layerIDColumn = aList->AppendTextColumn( wxEmptyString );
186  layerIDColumn->SetHidden( true );
187 
188  int textWidth = 0;
189 
190  for( LSEQ layer = layers.UIOrder(); layer; ++layer )
191  {
192  PCB_LAYER_ID layerID = *layer;
193  wxString layerName = board->GetLayerName( layerID );
194  if( aFpEditorMode && layerID == In1_Cu )
195  layerName = _( "Inner layers" );
196 
197  // wxCOL_WIDTH_AUTOSIZE doesn't work on all platforms, so we calculate width here
198  textWidth = std::max( textWidth, GetTextSize( layerName, aList ).x );
199 
200  COLOR4D layerColor = aFrame->ColorSettings()->GetColor( layerID );
201  auto bitmap = COLOR_SWATCH::MakeBitmap( layerColor, backgroundColor, LAYER_BITMAP_SIZE );
202  wxIcon icon;
203  icon.CopyFromBitmap( bitmap );
204 
205  wxVector<wxVariant> row;
206  row.push_back( wxVariant( m_Layers.test( layerID ) ) );
207  row.push_back( wxVariant( wxDataViewIconText( layerName, icon ) ) );
208  row.push_back( wxVariant( wxString::Format( "%i", layerID ) ) );
209  aList->AppendItem( row );
210 
211  if( m_CurrentZone_Layer == layerID )
212  aList->SetToggleValue( true, (unsigned) aList->GetItemCount() - 1, 0 );
213  }
214 
215  int checkColSize = 22;
216  int layerColSize = textWidth + LAYER_BITMAP_SIZE.x + 15;
217 
218  // You'd think the fact that m_layers is a list would encourage wxWidgets not to save room
219  // for the tree expanders... but you'd be wrong. Force indent to 0.
220  aList->SetIndent( 0 );
221  aList->SetMinClientSize( wxSize( checkColSize + layerColSize, aList->GetMinClientSize().y ) );
222 
223  checkColumn->SetWidth( checkColSize );
224  layerColumn->SetWidth( layerColSize );
225 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:686
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
static LSET AllNonCuMask()
Function AllNonCuMask returns a mask holding all layer minus CU layers.
Definition: lset.cpp:709
wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...
Definition: common.cpp:263
PCB_LAYER_ID
A quick note on layer IDs:
LSET is a set of PCB_LAYER_IDs.
COLOR_SETTINGS * ColorSettings()
Helper to retrieve the current color settings.
static wxBitmap MakeBitmap(KIGFX::COLOR4D aColor, KIGFX::COLOR4D aBackground, wxSize aSize)
Make a simple color swatch bitmap.
LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
COLOR4D GetColor(int aLayer) const
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:163
#define _(s)
Definition: 3d_actions.cpp:33
int GetCopperLayerCount() const
Function GetCopperLayerCount.
BOARD * GetBoard() const
static const wxSize LAYER_BITMAP_SIZE(24, 16)
LSEQ UIOrder() const
Definition: lset.cpp:813
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:88
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:40

References _, LSET::AllCuMask(), LSET::AllNonCuMask(), PCB_BASE_FRAME::ColorSettings(), Format(), PCB_BASE_FRAME::GetBoard(), COLOR_SETTINGS::GetColor(), BOARD::GetCopperLayerCount(), BOARD::GetLayerName(), GetTextSize(), In1_Cu, LAYER_BITMAP_SIZE(), LAYER_PCB_BACKGROUND, m_CurrentZone_Layer, m_Layers, COLOR_SWATCH::MakeBitmap(), and LSET::UIOrder().

Referenced by DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), and DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR().

Member Data Documentation

◆ m_cornerRadius

unsigned int ZONE_SETTINGS::m_cornerRadius
private

Corner chamfer distance / fillet radius.

Definition at line 100 of file zone_settings.h.

Referenced by ExportSetting(), GetCornerRadius(), operator<<(), SetCornerRadius(), and ZONE_SETTINGS().

◆ m_cornerSmoothingType

int ZONE_SETTINGS::m_cornerSmoothingType
private

Corner smoothing type.

Definition at line 99 of file zone_settings.h.

Referenced by ExportSetting(), GetCornerSmoothingType(), operator<<(), SetCornerSmoothingType(), and ZONE_SETTINGS().

◆ m_CurrentZone_Layer

◆ m_FillMode

◆ m_HatchFillTypeGap

◆ m_HatchFillTypeOrientation

◆ m_HatchFillTypeSmoothingLevel

int ZONE_SETTINGS::m_HatchFillTypeSmoothingLevel

◆ m_HatchFillTypeSmoothingValue

double ZONE_SETTINGS::m_HatchFillTypeSmoothingValue

◆ m_HatchFillTypeThickness

◆ m_isKeepout

bool ZONE_SETTINGS::m_isKeepout
private

Definition at line 106 of file zone_settings.h.

Referenced by ExportSetting(), GetIsKeepout(), operator<<(), and SetIsKeepout().

◆ m_keepoutDoNotAllowCopperPour

bool ZONE_SETTINGS::m_keepoutDoNotAllowCopperPour
private

Definition at line 111 of file zone_settings.h.

Referenced by GetDoNotAllowCopperPour(), operator<<(), and SetDoNotAllowCopperPour().

◆ m_keepoutDoNotAllowTracks

bool ZONE_SETTINGS::m_keepoutDoNotAllowTracks
private

Definition at line 113 of file zone_settings.h.

Referenced by GetDoNotAllowTracks(), operator<<(), and SetDoNotAllowTracks().

◆ m_keepoutDoNotAllowVias

bool ZONE_SETTINGS::m_keepoutDoNotAllowVias
private

Definition at line 112 of file zone_settings.h.

Referenced by GetDoNotAllowVias(), operator<<(), and SetDoNotAllowVias().

◆ m_Layers

◆ m_NetcodeSelection

int ZONE_SETTINGS::m_NetcodeSelection

◆ m_PadConnection

ZONE_CONNECTION ZONE_SETTINGS::m_PadConnection
private

◆ m_ThermalReliefCopperBridge

long ZONE_SETTINGS::m_ThermalReliefCopperBridge

thickness of the copper bridge in thermal reliefs

Definition at line 94 of file zone_settings.h.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), ExportSetting(), operator<<(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and ZONE_SETTINGS().

◆ m_ThermalReliefGap

long ZONE_SETTINGS::m_ThermalReliefGap

thickness of the gap in thermal reliefs

Definition at line 93 of file zone_settings.h.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), ExportSetting(), operator<<(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and ZONE_SETTINGS().

◆ m_Zone_45_Only

◆ m_Zone_HatchingStyle

◆ m_ZoneClearance

◆ m_ZoneMinThickness

◆ m_ZonePriority


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