KiCad PCB EDA Suite
Loading...
Searching...
No Matches
board_design_settings.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2009-2019 Jean-Pierre Charras, jp.charras at wanadoo.fr
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#pragma once
22
23#include <memory>
24#include <optional>
25#include <set>
26#include <string>
27#include <vector>
28
31#include <drc/drc_exclusion.h>
32#include <eda_units.h>
33#include <lset.h>
36#include <widgets/ui_common.h>
37#include <zone_settings.h>
39#include <router/pns_meander.h>
40
41
42class DRC_ENGINE;
43class NET_SETTINGS;
44class NETCLASS;
45
51{
52 int m_Diameter; // <= 0 means use Netclass via diameter
53 int m_Drill; // <= 0 means use Netclass via drill
54
56 {
57 m_Diameter = 0;
58 m_Drill = 0;
59 }
60
61 VIA_DIMENSION( int aDiameter, int aDrill )
62 {
63 m_Diameter = aDiameter;
64 m_Drill = aDrill;
65 }
66
67 bool operator==( const VIA_DIMENSION& aOther ) const
68 {
69 return ( m_Diameter == aOther.m_Diameter ) && ( m_Drill == aOther.m_Drill );
70 }
71
72 bool operator!=( const VIA_DIMENSION& aOther ) const { return !operator==( aOther ); }
73
74 bool operator<( const VIA_DIMENSION& aOther ) const
75 {
76 if( m_Diameter != aOther.m_Diameter )
77 return m_Diameter < aOther.m_Diameter;
78
79 return m_Drill < aOther.m_Drill;
80 }
81};
82
83
89{
90 wxString m_Name;
93 bool m_Staggered = false;
94 int m_ViaSize = 0; // <= 0 means use netclass
95 int m_ViaDrill = 0;
96 bool m_UseNetclass = false;
97 bool m_Filled = true;
98 bool m_Capped = false;
99 int m_Pitch = 0; // staggered only
100
101 bool operator==( const VIA_STACK_PRESET& aOther ) const = default;
102};
103
104
110{
111 int m_Width; // <= 0 means use Netclass differential pair width
112 int m_Gap; // <= 0 means use Netclass differential pair gap
113 int m_ViaGap; // <= 0 means use Netclass differential pair via gap
114
116 {
117 m_Width = 0;
118 m_Gap = 0;
119 m_ViaGap = 0;
120 }
121
122 DIFF_PAIR_DIMENSION( int aWidth, int aGap, int aViaGap )
123 {
124 m_Width = aWidth;
125 m_Gap = aGap;
126 m_ViaGap = aViaGap;
127 }
128
129 bool operator==( const DIFF_PAIR_DIMENSION& aOther ) const
130 {
131 return ( m_Width == aOther.m_Width )
132 && ( m_Gap == aOther.m_Gap )
133 && ( m_ViaGap == aOther.m_ViaGap );
134 }
135
136 bool operator!=( const DIFF_PAIR_DIMENSION& aOther ) const { return !operator==( aOther ); }
137
138 bool operator<( const DIFF_PAIR_DIMENSION& aOther ) const
139 {
140 if( m_Width != aOther.m_Width )
141 return m_Width < aOther.m_Width;
142
143 if( m_Gap != aOther.m_Gap )
144 return m_Gap < aOther.m_Gap;
145
146 return m_ViaGap < aOther.m_ViaGap;
147 }
148};
149
150
151enum
152{
159
161};
162
163
165{
166 wxString m_Text;
169
170 TEXT_ITEM_INFO( const wxString& aText, bool aVisible, PCB_LAYER_ID aLayer )
171 {
172 m_Text = aText;
173 m_Visible = aVisible;
174 m_Layer = aLayer;
175 }
176
177 bool operator==( const TEXT_ITEM_INFO& aOther ) const
178 {
179 return m_Text.IsSameAs( aOther.m_Text )
180 && ( m_Visible == aOther.m_Visible )
181 && ( m_Layer == aOther.m_Layer );
182 }
183};
184
185
186// forward declaration from class_track.h
187enum class VIATYPE : int;
188
189// forward declarations from dimension.h
190enum class DIM_UNITS_FORMAT : int;
191enum class DIM_TEXT_POSITION : int;
192enum class DIM_UNITS_MODE : int;
193enum class DIM_PRECISION : int;
194
195class PAD;
196
201{
202public:
203 BOARD_DESIGN_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath );
204
205 virtual ~BOARD_DESIGN_SETTINGS();
206
208 {
209 wxString setting_name;
211 };
212
213 bool operator==( const BOARD_DESIGN_SETTINGS& aOther ) const;
214 bool operator!=( const BOARD_DESIGN_SETTINGS& aOther ) const
215 {
216 return !operator==( aOther );
217 }
218
220
222
223 bool LoadFromFile( const wxString& aDirectory = "" ) override;
224
227
230
235
241 SEVERITY GetSeverity( int aDRCErrorCode ) const;
242
246 bool Ignore( int aDRCErrorCode ) const;
247
253 std::vector<VALIDATION_ERROR> ValidateDesignRules( std::optional<EDA_UNITS> aUnits = std::nullopt ) const;
254
262 std::vector<VALIDATION_ERROR> GetDesignRuleWarnings( std::optional<EDA_UNITS> aUnits = std::nullopt ) const;
263
268
269 void SetDefaultZoneSettings( const ZONE_SETTINGS& aSettings )
270 {
271 m_defaultZoneSettings = aSettings;
272 }
273
277 const wxString& GetCurrentNetClassName() const
278 {
280 }
281
285 bool UseNetClassTrack() const { return ( m_trackWidthIndex <= 0 && !m_useCustomTrackVia ); }
286
290 bool UseNetClassVia() const { return ( m_viaSizeIndex <= 0 && !m_useCustomTrackVia ); }
291
296 {
297 return ( m_diffPairIndex == 0 && !m_useCustomDiffPair );
298 }
299
303 int GetBiggestClearanceValue() const;
304
308 int GetSmallestClearanceValue() const;
309
313 int GetTrackWidthIndex() const { return m_trackWidthIndex; }
314
320 void SetTrackWidthIndex( int aIndex );
321
329 int GetNextTrackWidthIndex( int aIndex, bool aForward ) const;
330
336 int GetCurrentTrackWidth() const;
337
346 void SetCustomTrackWidth( int aWidth ) { m_customTrackWidth = aWidth; }
348
352 int GetViaSizeIndex() const { return m_viaSizeIndex; }
353
357 inline int GetViaStackIndex() const { return m_viaStackIndex; }
358
362 inline void SetViaStackIndex( int aIndex ) { m_viaStackIndex = aIndex; }
363
369 void SetViaSizeIndex( int aIndex );
370
378 int GetNextViaSizeIndex( int aIndex, bool aForward ) const;
379
385 int GetCurrentViaSize() const;
386
395 void SetCustomViaSize( int aSize ) { m_customViaSize.m_Diameter = aSize; }
396
400 int GetCustomViaSize() const { return m_customViaSize.m_Diameter; }
401
407 int GetCurrentViaDrill() const;
408
417 void SetCustomViaDrill( int aDrill ) { m_customViaSize.m_Drill = aDrill; }
418
422 int GetCustomViaDrill() const { return m_customViaSize.m_Drill; }
423
432 void UseCustomTrackViaSize( bool aEnabled ) { m_useCustomTrackVia = aEnabled; }
433
438
442 int GetDiffPairIndex() const { return m_diffPairIndex; }
443
447 void SetDiffPairIndex( int aIndex );
448
456 int GetNextDiffPairIndex( int aIndex, bool aForward ) const;
457
464 void SetCustomDiffPairWidth( int aWidth ) { m_customDiffPair.m_Width = aWidth; }
465
469 int GetCustomDiffPairWidth() { return m_customDiffPair.m_Width; }
470
476 void SetCustomDiffPairGap( int aGap ) { m_customDiffPair.m_Gap = aGap; }
477
482
489 void SetCustomDiffPairViaGap( int aGap ) { m_customDiffPair.m_ViaGap = aGap; }
490
495 {
496 return m_customDiffPair.m_ViaGap > 0 ? m_customDiffPair.m_ViaGap : m_customDiffPair.m_Gap;
497 }
498
504 void UseCustomDiffPairDimensions( bool aEnabled ) { m_useCustomDiffPair = aEnabled; }
505
510
515 int GetCurrentDiffPairWidth() const;
516
521 int GetCurrentDiffPairGap() const;
522
528 int GetCurrentDiffPairViaGap() const;
529
535 const LSET& GetEnabledLayers() const { return m_enabledLayers; }
536
542 void SetEnabledLayers( const LSET& aMask );
543
550 bool IsLayerEnabled( PCB_LAYER_ID aLayerId ) const
551 {
552 if( aLayerId >= 0 && aLayerId < PCB_LAYER_ID_COUNT )
553 return m_enabledLayers[aLayerId];
554
555 return false;
556 }
557
562
568 void SetCopperLayerCount( int aNewLayerCount );
569
574
580 void SetUserDefinedLayerCount( int aNewLayerCount );
581
586 int GetBoardThickness() const { return m_boardThickness; }
587 void SetBoardThickness( int aThickness ) { m_boardThickness = aThickness; }
588
595 int GetDRCEpsilon() const;
596
602 int GetHolePlatingThickness() const;
603
607 int GetLineThickness( PCB_LAYER_ID aLayer ) const;
608
612 VECTOR2I GetTextSize( PCB_LAYER_ID aLayer ) const;
613
617 int GetTextThickness( PCB_LAYER_ID aLayer ) const;
618
619 bool GetTextItalic( PCB_LAYER_ID aLayer ) const;
620 bool GetTextUpright( PCB_LAYER_ID aLayer ) const;
621
622 int GetLayerClass( PCB_LAYER_ID aLayer ) const;
623
624 void SetAuxOrigin( const VECTOR2I& aOrigin ) { m_auxOrigin = aOrigin; }
625 const VECTOR2I& GetAuxOrigin() const { return m_auxOrigin; }
626
627 void SetGridOrigin( const VECTOR2I& aOrigin ) { m_gridOrigin = aOrigin; }
628 const VECTOR2I& GetGridOrigin() const { return m_gridOrigin; }
629
630private:
631 void initFromOther( const BOARD_DESIGN_SETTINGS& aOther );
632
633 bool migrateSchema0to1();
634 bool migrateSchema2to3();
635
636public:
637 // Note: the first value in each dimensions list is the current netclass value
638 std::vector<int> m_TrackWidthList;
639 std::vector<VIA_DIMENSION> m_ViasDimensionsList;
640 std::vector<VIA_STACK_PRESET> m_ViaStackPresets;
641 std::vector<DIFF_PAIR_DIMENSION> m_DiffPairDimensionsList;
642
649
653
655
656 bool m_UseConnectedTrackWidth; // use width of existing track when creating a new,
657 // connected track
658 bool m_TempOverrideTrackWidth; // use selected track width temporarily even when
659 // using connected track width
660 int m_MinClearance; // overall min
661 int m_MinGrooveWidth; // Minimum groove width for creepage checks
662 int m_MinConn; // overall min connection width
663 int m_TrackMinWidth; // overall min track width
664 int m_ViasMinAnnularWidth; // overall minimum width of the via copper ring
665 int m_ViasMinSize; // overall vias (not micro vias) min diameter
666 int m_MinThroughDrill; // through hole (not micro vias) min drill diameter
667 int m_MicroViasMinSize; // micro vias min diameter
668 int m_MicroViasMinDrill; // micro vias min drill diameter
670 int m_HoleClearance; // Hole to copper clearance
671 int m_HoleToHoleMin; // Min width of web between two drilled holes
672 int m_SilkClearance; // Min dist between two silk items
673 int m_MinResolvedSpokes; // Min spoke count to not be a starved thermal
674 int m_MinSilkTextHeight; // Min text height for silkscreen layers
675 int m_MinSilkTextThickness; // Min text thickness for silkscreen layers
676
677 std::shared_ptr<DRC_ENGINE> m_DRCEngine;
678 std::map<int, SEVERITY> m_DRCSeverities; // Map from DRCErrorCode to SEVERITY
679 std::set<DRC_EXCLUSION, DRC_EXCLUSION_COMPARE> m_DrcExclusions;
680
681 // When smoothing the zone's outline there's the question of external fillets (that is, those
682 // applied to concave corners). While it seems safer to never have copper extend outside the
683 // zone outline, 5.1.x and prior did indeed fill them so we leave the mode available.
685
686 // Maximum error allowed when approximating circles and arcs to segments
688
689 // Global mask margins:
690 int m_SolderMaskExpansion; // Solder mask inflation around the pad or via
691 int m_SolderMaskMinWidth; // Solder mask min width (2 areas closer than this
692 // width are merged)
693 int m_SolderMaskToCopperClearance; // Min distance allowed from copper to a mask
694 // aperture of another net
695
696 int m_SolderPasteMargin; // Solder paste margin absolute value
697 double m_SolderPasteMarginRatio; // Solder mask margin ratio value of pad size
698 // The final margin is the sum of these 2 values
700
701 bool m_TentViasFront; // The default tenting option if not overridden on an
702 bool m_TentViasBack; // individual via
703
704 bool m_CoverViasFront; // The default covering option if not overridden on an
705 bool m_CoverViasBack; // individual via
706
707 bool m_PlugViasFront; // The default plugging option if not overridden on an
708 bool m_PlugViasBack; // individual via
709
710 bool m_CapVias; // The default capping option if not overridden on an
711 // individual via
712
713 bool m_FillVias; // The default filling option if not overridden on ana
714 // individual via
715
716 std::shared_ptr<NET_SETTINGS> m_NetSettings;
717
718 // Variables used in footprint editing (default value in item/footprint creation)
719 std::vector<TEXT_ITEM_INFO> m_DefaultFPTextItems;
720
721 // Map between user layer default names and custom names
722 std::map<std::string, wxString> m_UserLayerNames;
723
724 // Default zone hatching offsets
725 std::map<PCB_LAYER_ID, ZONE_LAYER_PROPERTIES> m_ZoneLayerProperties;
726
727 // Arrays of default values for the various layer classes.
733
734 // Default values for dimension objects
743
749
750 // Set to true if the board has a stackup management.
751 // If not set a default basic stackup will be used to generate the gbrjob file.
752 // Could be removed later, or at least always set to true
754
757
758private:
761
762 // Indices into the trackWidth, viaSizes and diffPairDimensions lists.
763 // The 0 index is always the current netclass value(s)
767 int m_viaStackIndex; // current selection into m_ViaStackPresets
768
769 // Custom values for track/via sizes (specified via dialog instead of netclass or lists)
773
774 // Custom values for differential pairs (specified via dialog instead of netclass/lists)
777
781
783
787
795
800
801
804};
@ LAYER_CLASS_OTHERS
@ LAYER_CLASS_COUNT
@ LAYER_CLASS_FAB
@ LAYER_CLASS_COURTYARD
@ LAYER_CLASS_SILK
@ LAYER_CLASS_COPPER
@ LAYER_CLASS_EDGES
Container for design settings for a BOARD object.
DIM_PRECISION m_DimensionPrecision
Number of digits after the decimal.
TEARDROP_PARAMETERS_LIST * GetTeadropParamsList()
void UseCustomTrackViaSize(bool aEnabled)
Enables/disables custom track/via size settings.
std::vector< TEXT_ITEM_INFO > m_DefaultFPTextItems
std::vector< VALIDATION_ERROR > GetDesignRuleWarnings(std::optional< EDA_UNITS > aUnits=std::nullopt) const
Find design rule values that are legal but have no effect because other rules imply a stricter limit.
int GetHolePlatingThickness() const
Pad & via drills are finish size.
void SetCustomDiffPairWidth(int aWidth)
Sets custom track width for differential pairs (i.e.
VIATYPE m_CurrentViaType
(VIA_BLIND_BURIED, VIA_THROUGH, VIA_MICROVIA)
void SetEnabledLayers(const LSET &aMask)
Change the bit-mask of enabled layers to aMask.
std::shared_ptr< NET_SETTINGS > m_NetSettings
bool Ignore(int aDRCErrorCode) const
Return true if the DRC error code's severity is RPT_SEVERITY_ERROR.
bool operator==(const BOARD_DESIGN_SETTINGS &aOther) const
void SetCustomTrackWidth(int aWidth)
Sets custom width for track (i.e.
DIM_UNITS_FORMAT m_DimensionUnitsFormat
void initFromOther(const BOARD_DESIGN_SETTINGS &aOther)
bool GetTextUpright(PCB_LAYER_ID aLayer) const
std::map< int, SEVERITY > m_DRCSeverities
VECTOR2I m_gridOrigin
origin for grid offsets
int GetTextThickness(PCB_LAYER_ID aLayer) const
Return the default text thickness from the layer class for the given layer.
std::map< PCB_LAYER_ID, ZONE_LAYER_PROPERTIES > m_ZoneLayerProperties
void SetGridOrigin(const VECTOR2I &aOrigin)
VECTOR2I m_auxOrigin
origin for plot exports
bool m_TextUpright[LAYER_CLASS_COUNT]
BOARD_DESIGN_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
DRILL_SYMBOL_PROFILE & GetDrillSymbolProfile()
bool GetTextItalic(PCB_LAYER_ID aLayer) const
int GetNextDiffPairIndex(int aIndex, bool aForward) const
Compute the next diff pair dimensions list index when cycling predefined sizes, skipping the index-0 ...
const wxString & GetCurrentNetClassName() const
wxString m_currentNetClassName
Current net class name used to display netclass info.
void SetViaSizeIndex(int aIndex)
Set the current via size list index to aIndex.
std::shared_ptr< DRC_ENGINE > m_DRCEngine
std::vector< DIFF_PAIR_DIMENSION > m_DiffPairDimensionsList
const DRILL_SYMBOL_PROFILE & GetDrillSymbolProfile() const
void SetCustomViaSize(int aSize)
Set custom size for via diameter (i.e.
void SetViaStackIndex(int aIndex)
Set the current via stack preset index to aIndex.
const LSET & GetEnabledLayers() const
Return a bit-mask of all the layers that are enabled.
std::map< std::string, wxString > m_UserLayerNames
const VECTOR2I & GetGridOrigin() const
int GetBoardThickness() const
The full thickness of the board including copper and masks.
SEVERITY GetSeverity(int aDRCErrorCode) const
Return the severity of a given DRC error code.
void SetCustomDiffPairGap(int aGap)
Sets custom gap for differential pairs (i.e.
int GetNextTrackWidthIndex(int aIndex, bool aForward) const
Compute the next track width list index when cycling predefined sizes, skipping the index-0 netclass ...
bool IsLayerEnabled(PCB_LAYER_ID aLayerId) const
Test whether a given layer aLayerId is enabled.
TEARDROP_PARAMETERS_LIST m_TeardropParamsList
The parameters of teardrops for the different teardrop targets (via/pad, track end).
DRILL_SYMBOL_PROFILE m_drillSymbolProfile
Grouping rules and symbol assignments shared by every drill chart and map on the board.
void SetUserDefinedLayerCount(int aNewLayerCount)
Set the number of user defined layers to aNewLayerCount.
void SetAuxOrigin(const VECTOR2I &aOrigin)
const VECTOR2I & GetAuxOrigin() const
bool operator!=(const BOARD_DESIGN_SETTINGS &aOther) const
int GetDRCEpsilon() const
Return an epsilon which accounts for rounding errors, etc.
int GetLayerClass(PCB_LAYER_ID aLayer) const
PNS::MEANDER_SETTINGS m_DiffPairMeanderSettings
bool UseNetClassVia() const
Return true if netclass values should be used to obtain appropriate via size.
BOARD_STACKUP & GetStackupDescriptor()
int m_boardThickness
Board thickness for 3D viewer.
int m_copperLayerCount
Number of copper layers for this design.
bool UseNetClassTrack() const
Return true if netclass values should be used to obtain appropriate track width.
int m_userDefinedLayerCount
Number of user defined layers for this design.
bool UseNetClassDiffPair() const
Return true if netclass values should be used to obtain appropriate diff pair dimensions.
void SetCustomViaDrill(int aDrill)
Sets custom size for via drill (i.e.
bool LoadFromFile(const wxString &aDirectory="") override
Loads the backing file from disk and then calls Load()
void SetDefaultZoneSettings(const ZONE_SETTINGS &aSettings)
PNS::MEANDER_SETTINGS m_SingleTrackMeanderSettings
void SetTrackWidthIndex(int aIndex)
Set the current track width list index to aIndex.
int m_TextThickness[LAYER_CLASS_COUNT]
ZONE_SETTINGS m_defaultZoneSettings
The default settings that will be used for new zones.
const BOARD_STACKUP & GetStackupDescriptor() const
void UseCustomDiffPairDimensions(bool aEnabled)
Enables/disables custom differential pair dimensions.
int GetNextViaSizeIndex(int aIndex, bool aForward) const
Compute the next via size list index when cycling predefined sizes, skipping the index-0 netclass pla...
std::vector< int > m_TrackWidthList
DIFF_PAIR_DIMENSION m_customDiffPair
std::vector< VALIDATION_ERROR > ValidateDesignRules(std::optional< EDA_UNITS > aUnits=std::nullopt) const
Validate design settings values and return per-field errors.
int m_LineThickness[LAYER_CLASS_COUNT]
VECTOR2I GetTextSize(PCB_LAYER_ID aLayer) const
Return the default text size from the layer class for the given layer.
void SetBoardThickness(int aThickness)
int GetLineThickness(PCB_LAYER_ID aLayer) const
Return the default graphic segment thickness from the layer class for the given layer.
ZONE_SETTINGS & GetDefaultZoneSettings()
bool m_UseHeightForLengthCalcs
Enable inclusion of stackup height in track length measurements and length tuning.
VECTOR2I m_TextSize[LAYER_CLASS_COUNT]
PNS::MEANDER_SETTINGS m_SkewMeanderSettings
LSET m_enabledLayers
Bit-mask for layer enabling.
bool m_TextItalic[LAYER_CLASS_COUNT]
std::vector< VIA_STACK_PRESET > m_ViaStackPresets
void SetCopperLayerCount(int aNewLayerCount)
Set the copper layer count to aNewLayerCount.
DIM_TEXT_POSITION m_DimensionTextPosition
BOARD_STACKUP m_stackup
The description of layers stackup, for board fabrication only physical layers are in layers stackup.
std::vector< VIA_DIMENSION > m_ViasDimensionsList
BOARD_DESIGN_SETTINGS & operator=(const BOARD_DESIGN_SETTINGS &aOther)
std::set< DRC_EXCLUSION, DRC_EXCLUSION_COMPARE > m_DrcExclusions
void SetCustomDiffPairViaGap(int aGap)
Sets custom via gap for differential pairs (i.e.
Manage layers needed to make a physical board.
Design Rule Checker object that performs all the DRC tests.
Definition drc_engine.h:129
Grouping rules and symbol assignments, shared by reference so a chart and its map can never disagree ...
JSON_SETTINGS(const wxString &aFilename, SETTINGS_LOC aLocation, int aSchemaVersion)
LSET is a set of PCB_LAYER_IDs.
Definition lset.h:37
NESTED_SETTINGS(const std::string &aName, int aSchemaVersion, JSON_SETTINGS *aParent, const std::string &aPath, bool aLoadFromFile=true)
A collection of nets and the parameters used to route or test these nets.
Definition netclass.h:44
NET_SETTINGS stores various net-related settings in a project context.
Definition pad.h:61
Dimensions for the meandering algorithm.
Definition pns_meander.h:70
TEARDROP_PARAMETERS_LIST is a helper class to handle the list of TEARDROP_PARAMETERS needed to build ...
Handle zones parameters.
PCB_LAYER_ID
A quick note on layer IDs:
Definition layer_ids.h:56
@ In1_Cu
Definition layer_ids.h:62
@ PCB_LAYER_ID_COUNT
Definition layer_ids.h:167
@ F_Cu
Definition layer_ids.h:60
DIM_TEXT_POSITION
Where to place the text on a dimension.
DIM_UNITS_FORMAT
How to display the units in a dimension's text.
DIM_UNITS_MODE
Used for storing the units selection in the file because EDA_UNITS alone doesn't cut it.
DIM_PRECISION
VIATYPE
SEVERITY
Container to handle a stock of specific differential pairs each with unique track width,...
DIFF_PAIR_DIMENSION(int aWidth, int aGap, int aViaGap)
bool operator<(const DIFF_PAIR_DIMENSION &aOther) const
bool operator==(const DIFF_PAIR_DIMENSION &aOther) const
bool operator!=(const DIFF_PAIR_DIMENSION &aOther) const
TEXT_ITEM_INFO(const wxString &aText, bool aVisible, PCB_LAYER_ID aLayer)
bool operator==(const TEXT_ITEM_INFO &aOther) const
Container to handle a stock of specific vias each with unique diameter and drill sizes in the BOARD c...
bool operator==(const VIA_DIMENSION &aOther) const
VIA_DIMENSION(int aDiameter, int aDrill)
bool operator!=(const VIA_DIMENSION &aOther) const
bool operator<(const VIA_DIMENSION &aOther) const
A named microvia stack definition, chosen while routing instead of entering the values each time.
bool operator==(const VIA_STACK_PRESET &aOther) const =default
Functions to provide common constants and other functions to assist in making a consistent UI.
VECTOR2< int32_t > VECTOR2I
Definition vector2d.h:708
Class ZONE_SETTINGS used to handle zones parameters in dialogs.