From a9a5136c1cc514fc6759427551147a4c8707bde8 Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Tue, 12 Jul 2022 19:45:19 -0700 Subject: [PATCH] Always allow blind/buried/micro vias Removes a nanny setting that prevented the use of blind/buried/micro-vias without a checkbox. If the designer does not want microvias in their board, they simply do not place microvias. --- include/board_design_settings.h | 2 - pcbnew/board_design_settings.cpp | 9 - pcbnew/dialogs/panel_setup_constraints.cpp | 6 - .../dialogs/panel_setup_constraints_base.cpp | 243 +- .../dialogs/panel_setup_constraints_base.fbp | 3053 ++++++++--------- pcbnew/dialogs/panel_setup_constraints_base.h | 44 +- pcbnew/drc/drc_engine.cpp | 18 - pcbnew/plugins/altium/altium_pcb.cpp | 2 - pcbnew/plugins/kicad/pcb_parser.cpp | 4 +- pcbnew/plugins/legacy/legacy_plugin.cpp | 3 +- pcbnew/router/router_tool.cpp | 47 - 11 files changed, 1466 insertions(+), 1965 deletions(-) diff --git a/include/board_design_settings.h b/include/board_design_settings.h index 3fb7244b09..46c65edaa5 100644 --- a/include/board_design_settings.h +++ b/include/board_design_settings.h @@ -674,8 +674,6 @@ public: */ TEARDROP_PARAMETERS_LIST m_TeardropParamsList; - bool m_MicroViasAllowed; ///< true to allow micro vias - bool m_BlindBuriedViaAllowed; ///< true to allow blind/buried vias VIATYPE m_CurrentViaType; ///< (VIA_BLIND_BURIED, VIA_THROUGH, VIA_MICROVIA) bool m_UseConnectedTrackWidth; // use width of existing track when creating a new, diff --git a/pcbnew/board_design_settings.cpp b/pcbnew/board_design_settings.cpp index bc9542c48c..7c8c23aa5a 100644 --- a/pcbnew/board_design_settings.cpp +++ b/pcbnew/board_design_settings.cpp @@ -67,9 +67,6 @@ BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS( JSON_SETTINGS* aParent, const std: m_UseConnectedTrackWidth = false; m_TempOverrideTrackWidth = false; - m_BlindBuriedViaAllowed = false; - m_MicroViasAllowed = false; - // First is always the reference designator m_DefaultFPTextItems.emplace_back( wxT( "REF**" ), true, F_SilkS ); // Second is always the value @@ -223,10 +220,6 @@ BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS( JSON_SETTINGS* aParent, const std: // project. Going forward, the import feature will just import from other board files (since // we could have multi-board projects in the future anyway) so this functionality is dropped. - m_params.emplace_back( new PARAM( "rules.allow_microvias", &m_MicroViasAllowed, false ) ); - - m_params.emplace_back( new PARAM( "rules.allow_blind_buried_vias", - &m_BlindBuriedViaAllowed, false ) ); m_params.emplace_back( new PARAM( "rules.use_height_for_length_calcs", &m_UseHeightForLengthCalcs, true ) ); @@ -821,8 +814,6 @@ void BOARD_DESIGN_SETTINGS::initFromOther( const BOARD_DESIGN_SETTINGS& aOther ) m_TrackWidthList = aOther.m_TrackWidthList; m_ViasDimensionsList = aOther.m_ViasDimensionsList; m_DiffPairDimensionsList = aOther.m_DiffPairDimensionsList; - m_MicroViasAllowed = aOther.m_MicroViasAllowed; - m_BlindBuriedViaAllowed = aOther.m_BlindBuriedViaAllowed; m_CurrentViaType = aOther.m_CurrentViaType; m_UseConnectedTrackWidth = aOther.m_UseConnectedTrackWidth; m_MinClearance = aOther.m_MinClearance; diff --git a/pcbnew/dialogs/panel_setup_constraints.cpp b/pcbnew/dialogs/panel_setup_constraints.cpp index 7fe78ac855..ff94bba790 100644 --- a/pcbnew/dialogs/panel_setup_constraints.cpp +++ b/pcbnew/dialogs/panel_setup_constraints.cpp @@ -69,8 +69,6 @@ bool PANEL_SETUP_CONSTRAINTS::TransferDataToWindow() StringFromValue( m_Frame->GetUserUnits(), ARC_HIGH_DEF, true ) ); m_stCircleToPolyWarning->SetLabel( msg ); - m_OptAllowBlindBuriedVias->SetValue( m_BrdSettings->m_BlindBuriedViaAllowed ); - m_OptAllowMicroVias->SetValue( m_BrdSettings->m_MicroViasAllowed ); m_useHeightForLengthCalcs->SetValue( m_BrdSettings->m_UseHeightForLengthCalcs ); m_maxError.SetValue( m_BrdSettings->m_MaxError ); @@ -131,8 +129,6 @@ bool PANEL_SETUP_CONSTRAINTS::TransferDataFromWindow() // These are all stored in project file, not board, so no need for OnModify() - m_BrdSettings->m_BlindBuriedViaAllowed = m_OptAllowBlindBuriedVias->GetValue(); - m_BrdSettings->m_MicroViasAllowed = m_OptAllowMicroVias->GetValue(); m_BrdSettings->m_UseHeightForLengthCalcs = m_useHeightForLengthCalcs->GetValue(); m_BrdSettings->m_MaxError = Clamp( IU_PER_MM * MINIMUM_ERROR_SIZE_MM, @@ -186,8 +182,6 @@ bool PANEL_SETUP_CONSTRAINTS::Show( bool aShow ) m_bitmapHoleClearance->SetBitmap( KiBitmap( BITMAPS::hole_to_copper_clearance ) ); m_bitmapMinHoleClearance->SetBitmap( KiBitmap( BITMAPS::hole_to_hole_clearance ) ); m_bitmapEdgeClearance->SetBitmap( KiBitmap( BITMAPS::edge_to_copper_clearance ) ); - m_bitmapBlindBuried->SetBitmap( KiBitmap( BITMAPS::via_buried ) ); - m_bitmap_uVia->SetBitmap( KiBitmap( BITMAPS::via_microvia ) ); Layout(); } diff --git a/pcbnew/dialogs/panel_setup_constraints_base.cpp b/pcbnew/dialogs/panel_setup_constraints_base.cpp index 93ff3e4376..fdcf5cd3bb 100644 --- a/pcbnew/dialogs/panel_setup_constraints_base.cpp +++ b/pcbnew/dialogs/panel_setup_constraints_base.cpp @@ -19,141 +19,6 @@ PANEL_SETUP_CONSTRAINTS_BASE::PANEL_SETUP_CONSTRAINTS_BASE( wxWindow* parent, wx wxBoxSizer* bScrolledSizer; bScrolledSizer = new wxBoxSizer( wxHORIZONTAL ); - wxBoxSizer* sbFeatureRules; - sbFeatureRules = new wxBoxSizer( wxVERTICAL ); - - m_staticText26 = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Allowed features"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText26->Wrap( -1 ); - sbFeatureRules->Add( m_staticText26, 0, wxRIGHT|wxLEFT, 5 ); - - wxFlexGridSizer* fgSizerViaOpt; - fgSizerViaOpt = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizerViaOpt->SetFlexibleDirection( wxBOTH ); - fgSizerViaOpt->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_bitmapBlindBuried = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerViaOpt->Add( m_bitmapBlindBuried, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_OptAllowBlindBuriedVias = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Allow blind/buried vias"), wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerViaOpt->Add( m_OptAllowBlindBuriedVias, 0, wxALIGN_CENTER_VERTICAL|wxALL, 6 ); - - m_bitmap_uVia = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerViaOpt->Add( m_bitmap_uVia, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_OptAllowMicroVias = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Allow micro vias (uVias)"), wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerViaOpt->Add( m_OptAllowMicroVias, 0, wxALIGN_CENTER_VERTICAL|wxALL, 6 ); - - - sbFeatureRules->Add( fgSizerViaOpt, 0, wxEXPAND|wxTOP, 5 ); - - wxBoxSizer* bSizerArcToPoly; - bSizerArcToPoly = new wxBoxSizer( wxVERTICAL ); - - m_staticline2 = new wxStaticLine( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bSizerArcToPoly->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); - - m_stCircleToPolyOpt = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Arc/circle approximated by segments"), wxDefaultPosition, wxDefaultSize, 0 ); - m_stCircleToPolyOpt->Wrap( -1 ); - bSizerArcToPoly->Add( m_stCircleToPolyOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxFlexGridSizer* fgSizer2; - fgSizer2 = new wxFlexGridSizer( 0, 4, 3, 0 ); - fgSizer2->AddGrowableCol( 2 ); - fgSizer2->SetFlexibleDirection( wxBOTH ); - fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - - fgSizer2->Add( 15, 0, 0, 0, 5 ); - - m_maxErrorTitle = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Max allowed deviation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_maxErrorTitle->Wrap( -1 ); - m_maxErrorTitle->SetToolTip( _("This is the maximum distance between a circle and the polygonal shape that approximate it.\nThe error max defines the number of segments of this polygon.") ); - - fgSizer2->Add( m_maxErrorTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 ); - - m_maxErrorCtrl = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_maxErrorCtrl->SetToolTip( _("The maximum allowed deviation between a true arc or circle and segments used to approximate it. Smaller values produce smoother graphics at the expense of performance.") ); - - fgSizer2->Add( m_maxErrorCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_maxErrorUnits = new wxStaticText( m_scrolledWindow, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); - m_maxErrorUnits->Wrap( -1 ); - fgSizer2->Add( m_maxErrorUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - bSizerArcToPoly->Add( fgSizer2, 0, wxEXPAND|wxBOTTOM, 5 ); - - m_stCircleToPolyWarning = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Note: zone filling can be slow when < %s."), wxDefaultPosition, wxDefaultSize, 0 ); - m_stCircleToPolyWarning->Wrap( -1 ); - bSizerArcToPoly->Add( m_stCircleToPolyWarning, 0, wxLEFT|wxRIGHT, 5 ); - - - sbFeatureRules->Add( bSizerArcToPoly, 0, wxEXPAND|wxTOP, 5 ); - - m_bSizerPolygonFillOption = new wxBoxSizer( wxVERTICAL ); - - m_staticline1 = new wxStaticLine( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - m_bSizerPolygonFillOption->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); - - m_stZoneFilledPolysOpt = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Zone fill strategy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_stZoneFilledPolysOpt->Wrap( -1 ); - m_bSizerPolygonFillOption->Add( m_stZoneFilledPolysOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxBoxSizer* bSizer9; - bSizer9 = new wxBoxSizer( wxHORIZONTAL ); - - m_filletBitmap = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer9->Add( m_filletBitmap, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_allowExternalFilletsOpt = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Allow fillets outside zone outline"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer9->Add( m_allowExternalFilletsOpt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - - m_bSizerPolygonFillOption->Add( bSizer9, 0, wxEXPAND|wxTOP, 7 ); - - wxBoxSizer* bSizer111; - bSizer111 = new wxBoxSizer( wxHORIZONTAL ); - - m_spokeBitmap = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer111->Add( m_spokeBitmap, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_minResolvedSpokesLabel = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Min thermal relief spoke count:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_minResolvedSpokesLabel->Wrap( -1 ); - bSizer111->Add( m_minResolvedSpokesLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_minResolvedSpokeCountCtrl = new wxSpinCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 0, 10, 0 ); - bSizer111->Add( m_minResolvedSpokeCountCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - - m_bSizerPolygonFillOption->Add( bSizer111, 1, wxEXPAND|wxTOP, 5 ); - - - sbFeatureRules->Add( m_bSizerPolygonFillOption, 0, wxEXPAND|wxTOP, 10 ); - - wxBoxSizer* bSizer11; - bSizer11 = new wxBoxSizer( wxVERTICAL ); - - m_staticline15 = new wxStaticLine( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bSizer11->Add( m_staticline15, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); - - m_staticText33 = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Length tuning"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText33->Wrap( -1 ); - bSizer11->Add( m_staticText33, 0, wxALL, 5 ); - - m_useHeightForLengthCalcs = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Include stackup height in track length calculations"), wxDefaultPosition, wxDefaultSize, 0 ); - m_useHeightForLengthCalcs->SetToolTip( _("When enabled, the distance between copper layers will be included in track length calculations for tracks with vias. When disabled, via stackup height is ignored.") ); - - bSizer11->Add( m_useHeightForLengthCalcs, 0, wxALL, 5 ); - - - sbFeatureRules->Add( bSizer11, 1, wxEXPAND, 5 ); - - - bScrolledSizer->Add( sbFeatureRules, 0, wxEXPAND|wxRIGHT, 5 ); - - - bScrolledSizer->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 20 ); - wxBoxSizer* sbFeatureConstraints; sbFeatureConstraints = new wxBoxSizer( wxVERTICAL ); @@ -479,6 +344,114 @@ PANEL_SETUP_CONSTRAINTS_BASE::PANEL_SETUP_CONSTRAINTS_BASE( wxWindow* parent, wx bScrolledSizer->Add( sbFeatureConstraints, 0, wxEXPAND|wxRIGHT, 5 ); + bScrolledSizer->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 20 ); + + wxBoxSizer* sbFeatureRules; + sbFeatureRules = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerArcToPoly; + bSizerArcToPoly = new wxBoxSizer( wxVERTICAL ); + + m_stCircleToPolyOpt = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Arc/circle approximated by segments"), wxDefaultPosition, wxDefaultSize, 0 ); + m_stCircleToPolyOpt->Wrap( -1 ); + bSizerArcToPoly->Add( m_stCircleToPolyOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxFlexGridSizer* fgSizer2; + fgSizer2 = new wxFlexGridSizer( 0, 4, 3, 0 ); + fgSizer2->AddGrowableCol( 2 ); + fgSizer2->SetFlexibleDirection( wxBOTH ); + fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + + fgSizer2->Add( 15, 0, 0, 0, 5 ); + + m_maxErrorTitle = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Max allowed deviation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_maxErrorTitle->Wrap( -1 ); + m_maxErrorTitle->SetToolTip( _("This is the maximum distance between a circle and the polygonal shape that approximate it.\nThe error max defines the number of segments of this polygon.") ); + + fgSizer2->Add( m_maxErrorTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 ); + + m_maxErrorCtrl = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_maxErrorCtrl->SetToolTip( _("The maximum allowed deviation between a true arc or circle and segments used to approximate it. Smaller values produce smoother graphics at the expense of performance.") ); + + fgSizer2->Add( m_maxErrorCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_maxErrorUnits = new wxStaticText( m_scrolledWindow, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 ); + m_maxErrorUnits->Wrap( -1 ); + fgSizer2->Add( m_maxErrorUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + bSizerArcToPoly->Add( fgSizer2, 0, wxEXPAND|wxBOTTOM, 5 ); + + m_stCircleToPolyWarning = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Note: zone filling can be slow when < %s."), wxDefaultPosition, wxDefaultSize, 0 ); + m_stCircleToPolyWarning->Wrap( -1 ); + bSizerArcToPoly->Add( m_stCircleToPolyWarning, 0, wxLEFT|wxRIGHT, 5 ); + + + sbFeatureRules->Add( bSizerArcToPoly, 0, wxEXPAND|wxTOP, 5 ); + + m_bSizerPolygonFillOption = new wxBoxSizer( wxVERTICAL ); + + m_staticline1 = new wxStaticLine( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + m_bSizerPolygonFillOption->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); + + m_stZoneFilledPolysOpt = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Zone fill strategy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_stZoneFilledPolysOpt->Wrap( -1 ); + m_bSizerPolygonFillOption->Add( m_stZoneFilledPolysOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizer9; + bSizer9 = new wxBoxSizer( wxHORIZONTAL ); + + m_filletBitmap = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer9->Add( m_filletBitmap, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_allowExternalFilletsOpt = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Allow fillets outside zone outline"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer9->Add( m_allowExternalFilletsOpt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + + m_bSizerPolygonFillOption->Add( bSizer9, 0, wxEXPAND|wxTOP, 7 ); + + wxBoxSizer* bSizer111; + bSizer111 = new wxBoxSizer( wxHORIZONTAL ); + + m_spokeBitmap = new wxStaticBitmap( m_scrolledWindow, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer111->Add( m_spokeBitmap, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_minResolvedSpokesLabel = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Min thermal relief spoke count:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_minResolvedSpokesLabel->Wrap( -1 ); + bSizer111->Add( m_minResolvedSpokesLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_minResolvedSpokeCountCtrl = new wxSpinCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer111->Add( m_minResolvedSpokeCountCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + + m_bSizerPolygonFillOption->Add( bSizer111, 1, wxEXPAND|wxTOP, 5 ); + + + sbFeatureRules->Add( m_bSizerPolygonFillOption, 0, wxEXPAND|wxTOP, 10 ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxVERTICAL ); + + m_staticline15 = new wxStaticLine( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer11->Add( m_staticline15, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); + + m_staticText33 = new wxStaticText( m_scrolledWindow, wxID_ANY, _("Length tuning"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText33->Wrap( -1 ); + bSizer11->Add( m_staticText33, 0, wxALL, 5 ); + + m_useHeightForLengthCalcs = new wxCheckBox( m_scrolledWindow, wxID_ANY, _("Include stackup height in track length calculations"), wxDefaultPosition, wxDefaultSize, 0 ); + m_useHeightForLengthCalcs->SetToolTip( _("When enabled, the distance between copper layers will be included in track length calculations for tracks with vias. When disabled, via stackup height is ignored.") ); + + bSizer11->Add( m_useHeightForLengthCalcs, 0, wxALL, 5 ); + + + sbFeatureRules->Add( bSizer11, 1, wxEXPAND, 5 ); + + + bScrolledSizer->Add( sbFeatureRules, 0, wxEXPAND|wxRIGHT, 5 ); + + bScrolledSizer->Add( 0, 0, 1, wxEXPAND, 0 ); diff --git a/pcbnew/dialogs/panel_setup_constraints_base.fbp b/pcbnew/dialogs/panel_setup_constraints_base.fbp index 3403563ced..e67c1fbf36 100644 --- a/pcbnew/dialogs/panel_setup_constraints_base.fbp +++ b/pcbnew/dialogs/panel_setup_constraints_base.fbp @@ -123,93 +123,32 @@ 5 wxEXPAND|wxRIGHT 0 - + - sbFeatureRules + sbFeatureConstraints wxVERTICAL none 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Allowed features - 0 - - 0 - - - 0 - - 1 - m_staticText26 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxTOP - 0 + wxEXPAND|wxLEFT + 1 - 2 + 4 wxBOTH 0 - fgSizerViaOpt + fgFeatureConstraints wxFLEX_GROWMODE_SPECIFIED none 0 0 - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 4 + wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxLEFT 0 - + 1 1 1 @@ -220,7 +159,6 @@ - 1 0 @@ -238,6 +176,8 @@ 0 0 wxID_ANY + Copper + 0 0 @@ -245,7 +185,7 @@ 0 1 - m_bitmapBlindBuried + m_staticText23 1 @@ -255,19 +195,51 @@ Resizable 1 + ; ; forward_declare 0 + -1 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 - 6 - wxALIGN_CENTER_VERTICAL|wxALL + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -278,10 +250,10 @@ + 1 0 - 0 1 1 @@ -296,7 +268,6 @@ 0 0 wxID_ANY - Allow blind/buried vias 0 @@ -304,7 +275,7 @@ 0 1 - m_OptAllowBlindBuriedVias + m_bitmapClearance 1 @@ -314,14 +285,9 @@ Resizable 1 - - + ; ; forward_declare 0 - - wxFILTER_NONE - wxDefaultValidator - @@ -329,9 +295,9 @@ 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - + 1 1 1 @@ -342,7 +308,6 @@ - 1 0 @@ -360,6 +325,8 @@ 0 0 wxID_ANY + Minimum clearance: + 0 0 @@ -367,7 +334,7 @@ 0 1 - m_bitmap_uVia + m_clearanceTitle 1 @@ -377,19 +344,21 @@ Resizable 1 + ; ; forward_declare 0 + -1 - 6 - wxALIGN_CENTER_VERTICAL|wxALL + 5 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -403,7 +372,6 @@ 1 0 - 0 1 1 @@ -418,15 +386,15 @@ 0 0 wxID_ANY - Allow micro vias (uVias) 0 + 0 1 - m_OptAllowMicroVias + m_clearanceCtrl 1 @@ -437,34 +405,24 @@ 1 - + ; ; forward_declare 0 - + The minimum clearance between copper items which do not belong to the same net. If set, this is an absolute minimum which cannot be reduced by netclasses, custom rules, or other settings. wxFILTER_NONE wxDefaultValidator + - - - - 5 - wxEXPAND|wxTOP - 0 - - - bSizerArcToPoly - wxVERTICAL - none - 12 - wxEXPAND|wxTOP|wxBOTTOM + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT 0 - + 1 1 1 @@ -492,6 +450,8 @@ 0 0 wxID_ANY + mm + 0 0 @@ -499,7 +459,7 @@ 0 1 - m_staticline2 + m_clearanceUnits 1 @@ -509,18 +469,77 @@ Resizable 1 - wxLI_HORIZONTAL + ; ; forward_declare 0 + -1 5 - wxTOP|wxRIGHT|wxLEFT + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapMinTrackWidth + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 1 @@ -550,7 +569,7 @@ 0 0 wxID_ANY - Arc/circle approximated by segments + Minimum track width: 0 0 @@ -559,7 +578,7 @@ 0 1 - m_stCircleToPolyOpt + m_TrackMinWidthTitle 1 @@ -569,8 +588,8 @@ Resizable 1 - - ; ; forward_declare + wxALIGN_LEFT + 0 @@ -581,221 +600,71 @@ 5 - wxEXPAND|wxBOTTOM + wxALIGN_LEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 - - 4 - wxBOTH - 2 - - 0 - - fgSizer2 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 3 - - 5 - - 0 - - 0 - protected - 15 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Max allowed deviation: - 0 - - 0 - - - 0 - - 1 - m_maxErrorTitle - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - This is the maximum distance between a circle and the polygonal shape that approximate it. The error max defines the number of segments of this polygon. - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - m_maxErrorCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - The maximum allowed deviation between a true arc or circle and segments used to approximate it. Smaller values produce smoother graphics at the expense of performance. - wxString - wxFILTER_NUMERIC - wxTextValidator - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - mm - 0 - - 0 - - - 0 - - 1 - m_maxErrorUnits - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + + 0 + 120,-1 + 1 + m_TrackMinWidthCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + The minimum track width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + wxString + wxFILTER_NUMERIC + wxTextValidator + + + + + 5 - wxLEFT|wxRIGHT + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 1 @@ -825,7 +694,7 @@ 0 0 wxID_ANY - Note: zone filling can be slow when < %s. + mm 0 0 @@ -834,7 +703,7 @@ 0 1 - m_stCircleToPolyWarning + m_TrackMinWidthUnits 1 @@ -844,8 +713,8 @@ Resizable 1 - - ; ; forward_declare + wxALIGN_LEFT + 0 @@ -854,22 +723,11 @@ -1 - - - - 10 - wxEXPAND|wxTOP - 0 - - - m_bSizerPolygonFillOption - wxVERTICAL - protected - 12 - wxEXPAND|wxTOP|wxBOTTOM + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT 0 - + 1 1 1 @@ -880,6 +738,7 @@ + 1 0 @@ -904,7 +763,7 @@ 0 1 - m_staticline1 + m_bitmapMinConn 1 @@ -914,7 +773,6 @@ Resizable 1 - wxLI_HORIZONTAL ; ; forward_declare 0 @@ -925,7 +783,7 @@ 5 - wxTOP|wxRIGHT|wxLEFT + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 1 @@ -955,7 +813,7 @@ 0 0 wxID_ANY - Zone fill strategy + Minimum connection width: 0 0 @@ -964,7 +822,7 @@ 0 1 - m_stZoneFilledPolysOpt + m_MinConnTitle 1 @@ -974,8 +832,8 @@ Resizable 1 - - ; ; forward_declare + wxALIGN_LEFT + 0 @@ -984,777 +842,9 @@ -1 - - 7 - wxEXPAND|wxTOP - 0 - - - bSizer9 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_filletBitmap - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Allow fillets outside zone outline - - 0 - - - 0 - - 1 - m_allowExternalFilletsOpt - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxEXPAND|wxTOP - 1 - - - bSizer111 - wxHORIZONTAL - none - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_spokeBitmap - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Min thermal relief spoke count: - 0 - - 0 - - - 0 - - 1 - m_minResolvedSpokesLabel - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 10 - - 0 - - 0 - - 0 - - 1 - m_minResolvedSpokeCountCtrl - 1 - - - protected - 1 - - Resizable - 1 - -1,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer11 - wxVERTICAL - none - - 12 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline15 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - ; ; forward_declare - 0 - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Length tuning - 0 - - 0 - - - 0 - - 1 - m_staticText33 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Include stackup height in track length calculations - - 0 - - - 0 - - 1 - m_useHeightForLengthCalcs - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - When enabled, the distance between copper layers will be included in track length calculations for tracks with vias. When disabled, via stackup height is ignored. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 20 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - 0 - protected - 0 - - - - 5 - wxEXPAND|wxRIGHT - 0 - - - sbFeatureConstraints - wxVERTICAL - none - - 5 - wxEXPAND|wxLEFT - 1 - - 4 - wxBOTH - - - 0 - - fgFeatureConstraints - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 4 - wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Copper - 0 - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_bitmapClearance - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Minimum clearance: - 0 - - 0 - - - 0 - - 1 - m_clearanceTitle - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxEXPAND|wxTOP 0 1 @@ -1790,9 +880,9 @@ 0 - + 120,-1 1 - m_clearanceCtrl + m_MinConnCtrl 1 @@ -1803,12 +893,12 @@ 1 - ; ; forward_declare + 0 - The minimum clearance between copper items which do not belong to the same net. If set, this is an absolute minimum which cannot be reduced by netclasses, custom rules, or other settings. - - wxFILTER_NONE - wxDefaultValidator + The minimum track width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + wxString + wxFILTER_NUMERIC + wxTextValidator @@ -1818,7 +908,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 1 @@ -1857,7 +947,7 @@ 0 1 - m_clearanceUnits + m_MinConnUnits 1 @@ -1867,8 +957,8 @@ Resizable 1 - - ; ; forward_declare + wxALIGN_LEFT + 0 @@ -1917,7 +1007,7 @@ 0 1 - m_bitmapMinTrackWidth + m_bitmapMinViaAnnulus 1 @@ -1937,7 +1027,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 @@ -1967,7 +1057,7 @@ 0 0 wxID_ANY - Minimum track width: + Minimum annular width: 0 0 @@ -1976,7 +1066,7 @@ 0 1 - m_TrackMinWidthTitle + m_ViaMinAnnulusTitle 1 @@ -1986,8 +1076,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; ; forward_declare 0 @@ -1998,7 +1088,7 @@ 5 - wxALIGN_LEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM 0 1 @@ -2034,9 +1124,9 @@ 0 - 120,-1 + 1 - m_TrackMinWidthCtrl + m_ViaMinAnnulusCtrl 1 @@ -2047,12 +1137,12 @@ 1 - + ; ; forward_declare 0 - The minimum track width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. - wxString - wxFILTER_NUMERIC - wxTextValidator + The minimum annular ring width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + + wxFILTER_NONE + wxDefaultValidator @@ -2062,7 +1152,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 @@ -2101,7 +1191,7 @@ 0 1 - m_TrackMinWidthUnits + m_ViaMinAnnulusUnits 1 @@ -2111,8 +1201,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; ; forward_declare 0 @@ -2121,11 +1211,11 @@ -1 - + 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -2161,7 +1251,7 @@ 0 1 - m_bitmapMinConn + m_bitmapMinViaDiameter 1 @@ -2179,11 +1269,11 @@ - + 5 wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 - + 1 1 1 @@ -2211,7 +1301,7 @@ 0 0 wxID_ANY - Minimum connection width: + Minimum via diameter: 0 0 @@ -2220,7 +1310,7 @@ 0 1 - m_MinConnTitle + m_ViaMinTitle 1 @@ -2240,11 +1330,11 @@ -1 - + 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxEXPAND|wxTOP + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -2278,9 +1368,9 @@ 0 - 120,-1 + 1 - m_MinConnCtrl + m_SetViasMinSizeCtrl 1 @@ -2291,9 +1381,9 @@ 1 - + ; 0 - The minimum track width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + The minimum via diameter. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. wxString wxFILTER_NUMERIC wxTextValidator @@ -2304,11 +1394,11 @@ - + 5 wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 - + 1 1 1 @@ -2345,7 +1435,7 @@ 0 1 - m_MinConnUnits + m_ViaMinUnits 1 @@ -2405,7 +1495,7 @@ 0 1 - m_bitmapMinViaAnnulus + m_bitmapHoleClearance 1 @@ -2425,7 +1515,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 @@ -2455,7 +1545,7 @@ 0 0 wxID_ANY - Minimum annular width: + Copper to hole clearance: 0 0 @@ -2464,7 +1554,7 @@ 0 1 - m_ViaMinAnnulusTitle + m_HoleClearanceLabel 1 @@ -2486,7 +1576,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 1 @@ -2524,7 +1614,7 @@ 0 1 - m_ViaMinAnnulusCtrl + m_HoleClearanceCtrl 1 @@ -2537,7 +1627,7 @@ ; ; forward_declare 0 - The minimum annular ring width. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + The minimum clearance between a hole and an unassociated copper item. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. wxFILTER_NONE wxDefaultValidator @@ -2550,7 +1640,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + wxALL|wxALIGN_CENTER_VERTICAL 0 1 @@ -2589,7 +1679,7 @@ 0 1 - m_ViaMinAnnulusUnits + m_HoleClearanceUnits 1 @@ -2649,7 +1739,7 @@ 0 1 - m_bitmapMinViaDiameter + m_bitmapEdgeClearance 1 @@ -2669,7 +1759,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 @@ -2699,7 +1789,7 @@ 0 0 wxID_ANY - Minimum via diameter: + Copper to edge clearance: 0 0 @@ -2708,7 +1798,7 @@ 0 1 - m_ViaMinTitle + m_EdgeClearanceLabel 1 @@ -2718,8 +1808,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; forward_declare 0 @@ -2730,7 +1820,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 1 @@ -2768,7 +1858,7 @@ 0 1 - m_SetViasMinSizeCtrl + m_EdgeClearanceCtrl 1 @@ -2779,12 +1869,12 @@ 1 - ; + ; forward_declare 0 - The minimum via diameter. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. - wxString - wxFILTER_NUMERIC - wxTextValidator + The minimum clearance between the board edge and any copper item. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. + + wxFILTER_NONE + wxDefaultValidator @@ -2794,7 +1884,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 @@ -2833,7 +1923,7 @@ 0 1 - m_ViaMinUnits + m_EdgeClearanceUnits 1 @@ -2843,8 +1933,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; forward_declare 0 @@ -2854,10 +1944,10 @@ - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 10 + wxTOP|wxEXPAND 0 - + 1 1 1 @@ -2868,7 +1958,6 @@ - 1 0 @@ -2893,7 +1982,7 @@ 0 1 - m_bitmapHoleClearance + m_staticline3 1 @@ -2903,6 +1992,7 @@ Resizable 1 + wxLI_HORIZONTAL ; ; forward_declare 0 @@ -2912,10 +2002,10 @@ - 5 - wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -2943,8 +2033,6 @@ 0 0 wxID_ANY - Copper to hole clearance: - 0 0 @@ -2952,7 +2040,7 @@ 0 1 - m_HoleClearanceLabel + m_staticline4 1 @@ -2962,21 +2050,20 @@ Resizable 1 - + wxLI_HORIZONTAL ; ; forward_declare 0 - -1 - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -3007,12 +2094,11 @@ 0 - 0 1 - m_HoleClearanceCtrl + m_staticline5 1 @@ -3022,25 +2108,20 @@ Resizable 1 - + wxLI_HORIZONTAL ; ; forward_declare 0 - The minimum clearance between a hole and an unassociated copper item. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. - - wxFILTER_NONE - wxDefaultValidator - - + - 5 - wxALL|wxALIGN_CENTER_VERTICAL + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -3068,8 +2149,6 @@ 0 0 wxID_ANY - mm - 0 0 @@ -3077,7 +2156,7 @@ 0 1 - m_HoleClearanceUnits + m_staticline6 1 @@ -3087,21 +2166,20 @@ Resizable 1 - + wxLI_HORIZONTAL ; ; forward_declare 0 - -1 - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 4 + wxALIGN_CENTER_HORIZONTAL|wxALL 0 - + 1 1 1 @@ -3112,7 +2190,6 @@ - 1 0 @@ -3130,6 +2207,8 @@ 0 0 wxID_ANY + Holes + 0 0 @@ -3137,7 +2216,7 @@ 0 1 - m_bitmapEdgeClearance + m_staticText24 1 @@ -3147,19 +2226,51 @@ Resizable 1 + ; ; forward_declare 0 + -1 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -3170,6 +2281,7 @@ + 1 0 @@ -3187,8 +2299,6 @@ 0 0 wxID_ANY - Copper to edge clearance: - 0 0 @@ -3196,7 +2306,7 @@ 0 1 - m_EdgeClearanceLabel + m_bitmapMinViaDrill 1 @@ -3206,21 +2316,19 @@ Resizable 1 - - ; forward_declare + ; ; forward_declare 0 - -1 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 - + 1 1 1 @@ -3248,15 +2356,16 @@ 0 0 wxID_ANY + Minimum through hole: + 0 0 - 0 1 - m_EdgeClearanceCtrl + m_MinDrillTitle 1 @@ -3266,25 +2375,21 @@ Resizable 1 - - ; forward_declare + wxALIGN_LEFT + 0 - The minimum clearance between the board edge and any copper item. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. - - wxFILTER_NONE - wxDefaultValidator - - + + -1 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -3312,16 +2417,15 @@ 0 0 wxID_ANY - mm - 0 0 + 0 1 - m_EdgeClearanceUnits + m_MinDrillCtrl 1 @@ -3332,20 +2436,24 @@ 1 - ; forward_declare + 0 - + The minimum through-hole size. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules or other settings. + + wxFILTER_NUMERIC + wxTextValidator + + - -1 - 10 - wxTOP|wxEXPAND + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 - + 1 1 1 @@ -3373,6 +2481,8 @@ 0 0 wxID_ANY + mm + 0 0 @@ -3380,7 +2490,7 @@ 0 1 - m_staticline3 + m_MinDrillUnits 1 @@ -3390,20 +2500,21 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + wxALIGN_LEFT + 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -3414,6 +2525,7 @@ + 1 0 @@ -3438,7 +2550,7 @@ 0 1 - m_staticline4 + m_bitmapMinHoleClearance 1 @@ -3448,7 +2560,6 @@ Resizable 1 - wxLI_HORIZONTAL ; ; forward_declare 0 @@ -3458,10 +2569,10 @@ - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - + 1 1 1 @@ -3489,6 +2600,8 @@ 0 0 wxID_ANY + Hole to hole clearance: + 0 0 @@ -3496,7 +2609,7 @@ 0 1 - m_staticline5 + m_HoleToHoleTitle 1 @@ -3506,20 +2619,21 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + + ; forward_declare 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -3550,11 +2664,12 @@ 0 + 0 1 - m_staticline6 + m_SetHoleToHoleCtrl 1 @@ -3564,18 +2679,23 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + + ; forward_declare 0 - + The minimum clearance between two drilled holes. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. (Note: does not apply to milled holes.) + + wxFILTER_NONE + wxDefaultValidator + + - 4 - wxALIGN_CENTER_HORIZONTAL|wxALL + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 @@ -3605,7 +2725,7 @@ 0 0 wxID_ANY - Holes + mm 0 0 @@ -3614,7 +2734,7 @@ 0 1 - m_staticText24 + m_HoleToHoleUnits 1 @@ -3625,7 +2745,7 @@ 1 - ; ; forward_declare + ; forward_declare 0 @@ -3635,40 +2755,10 @@ - 5 - wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 + 10 wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -3679,7 +2769,6 @@ - 1 0 @@ -3704,7 +2793,7 @@ 0 1 - m_bitmapMinViaDrill + m_staticline8 1 @@ -3714,6 +2803,7 @@ Resizable 1 + wxLI_HORIZONTAL ; ; forward_declare 0 @@ -3723,10 +2813,10 @@ - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -3754,8 +2844,6 @@ 0 0 wxID_ANY - Minimum through hole: - 0 0 @@ -3763,7 +2851,7 @@ 0 1 - m_MinDrillTitle + m_staticline9 1 @@ -3773,21 +2861,20 @@ Resizable 1 - wxALIGN_LEFT - + wxLI_HORIZONTAL + ; ; forward_declare 0 - -1 - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -3818,12 +2905,11 @@ 0 - 0 1 - m_MinDrillCtrl + m_staticline10 1 @@ -3833,25 +2919,20 @@ Resizable 1 - - + wxLI_HORIZONTAL + ; ; forward_declare 0 - The minimum through-hole size. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules or other settings. - - wxFILTER_NUMERIC - wxTextValidator - - + - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -3879,8 +2960,6 @@ 0 0 wxID_ANY - mm - 0 0 @@ -3888,7 +2967,7 @@ 0 1 - m_MinDrillUnits + m_staticline11 1 @@ -3898,21 +2977,20 @@ Resizable 1 - wxALIGN_LEFT - + wxLI_HORIZONTAL + ; ; forward_declare 0 - -1 - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 4 + wxALIGN_CENTER_HORIZONTAL|wxALL 0 - + 1 1 1 @@ -3923,7 +3001,6 @@ - 1 0 @@ -3941,6 +3018,8 @@ 0 0 wxID_ANY + uVias + 0 0 @@ -3948,7 +3027,7 @@ 0 1 - m_bitmapMinHoleClearance + m_staticText25 1 @@ -3958,19 +3037,51 @@ Resizable 1 + ; ; forward_declare 0 + -1 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxTOP + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -3981,6 +3092,7 @@ + 1 0 @@ -3998,8 +3110,6 @@ 0 0 wxID_ANY - Hole to hole clearance: - 0 0 @@ -4007,7 +3117,7 @@ 0 1 - m_HoleToHoleTitle + m_bitmapMinuViaDiameter 1 @@ -4017,21 +3127,19 @@ Resizable 1 - - ; forward_declare + ; ; forward_declare 0 - -1 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 - + 1 1 1 @@ -4059,15 +3167,16 @@ 0 0 wxID_ANY + Minimum uVia diameter: + 0 0 - 0 1 - m_SetHoleToHoleCtrl + m_uviaMinSizeLabel 1 @@ -4077,25 +3186,21 @@ Resizable 1 - - ; forward_declare + wxALIGN_LEFT + 0 - The minimum clearance between two drilled holes. If set, this is an absolute minimum and cannot be reduced by custom rules or other settings. (Note: does not apply to milled holes.) - - wxFILTER_NONE - wxDefaultValidator - - + + -1 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -4123,16 +3228,15 @@ 0 0 wxID_ANY - mm - 0 0 + 0 1 - m_HoleToHoleUnits + m_uviaMinSizeCtrl 1 @@ -4143,20 +3247,24 @@ 1 - ; forward_declare + 0 - + The minimum diameter for micro-vias. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + + wxFILTER_NUMERIC + wxTextValidator + + - -1 - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 - + 1 1 1 @@ -4184,6 +3292,8 @@ 0 0 wxID_ANY + mm + 0 0 @@ -4191,7 +3301,7 @@ 0 1 - m_staticline8 + m_uviaMinSizeUnits 1 @@ -4201,20 +3311,21 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + wxALIGN_LEFT + 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -4225,6 +3336,7 @@ + 1 0 @@ -4249,7 +3361,7 @@ 0 1 - m_staticline9 + m_bitmapMinuViaDrill 1 @@ -4259,7 +3371,6 @@ Resizable 1 - wxLI_HORIZONTAL ; ; forward_declare 0 @@ -4269,10 +3380,10 @@ - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT 0 - + 1 1 1 @@ -4300,6 +3411,8 @@ 0 0 wxID_ANY + Minimum uVia hole: + 0 0 @@ -4307,7 +3420,7 @@ 0 1 - m_staticline10 + m_uviaMinDrillLabel 1 @@ -4317,20 +3430,21 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + wxALIGN_LEFT + 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -4361,11 +3475,12 @@ 0 + 0 1 - m_staticline11 + m_uviaMinDrillCtrl 1 @@ -4375,18 +3490,23 @@ Resizable 1 - wxLI_HORIZONTAL - ; ; forward_declare + + 0 - + The minimum micro-via hole size. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + + wxFILTER_NUMERIC + wxTextValidator + + - 4 - wxALIGN_CENTER_HORIZONTAL|wxALL + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT 0 1 @@ -4416,7 +3536,7 @@ 0 0 wxID_ANY - uVias + mm 0 0 @@ -4425,7 +3545,7 @@ 0 1 - m_staticText25 + m_uviaMinDrillUnits 1 @@ -4435,8 +3555,8 @@ Resizable 1 - - ; ; forward_declare + wxALIGN_LEFT + 0 @@ -4446,40 +3566,10 @@ - 5 - wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 + 10 wxEXPAND|wxTOP - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -4490,7 +3580,6 @@ - 1 0 @@ -4515,7 +3604,7 @@ 0 1 - m_bitmapMinuViaDiameter + m_staticline111 1 @@ -4525,6 +3614,7 @@ Resizable 1 + wxLI_HORIZONTAL ; ; forward_declare 0 @@ -4534,10 +3624,10 @@ - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -4565,8 +3655,6 @@ 0 0 wxID_ANY - Minimum uVia diameter: - 0 0 @@ -4574,7 +3662,7 @@ 0 1 - m_uviaMinSizeLabel + m_staticline12 1 @@ -4584,21 +3672,20 @@ Resizable 1 - wxALIGN_LEFT - + wxLI_HORIZONTAL + ; ; forward_declare 0 - -1 - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -4629,12 +3716,11 @@ 0 - 0 1 - m_uviaMinSizeCtrl + m_staticline13 1 @@ -4644,25 +3730,20 @@ Resizable 1 - - + wxLI_HORIZONTAL + ; ; forward_declare 0 - The minimum diameter for micro-vias. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. - - wxFILTER_NUMERIC - wxTextValidator - - + - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + 10 + wxEXPAND|wxTOP 0 - + 1 1 1 @@ -4690,8 +3771,6 @@ 0 0 wxID_ANY - mm - 0 0 @@ -4699,7 +3778,7 @@ 0 1 - m_uviaMinSizeUnits + m_staticline14 1 @@ -4709,21 +3788,20 @@ Resizable 1 - wxALIGN_LEFT - + wxLI_HORIZONTAL + ; ; forward_declare 0 - -1 - 5 - wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 4 + wxALIGN_CENTER_HORIZONTAL|wxALL 0 - + 1 1 1 @@ -4734,7 +3812,6 @@ - 1 0 @@ -4752,6 +3829,8 @@ 0 0 wxID_ANY + Silkscreen + 0 0 @@ -4759,7 +3838,7 @@ 0 1 - m_bitmapMinuViaDrill + m_staticText28 1 @@ -4769,17 +3848,59 @@ Resizable 1 + ; ; forward_declare 0 + -1 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 @@ -4809,7 +3930,7 @@ 0 0 wxID_ANY - Minimum uVia hole: + Minimum item clearance: 0 0 @@ -4818,7 +3939,7 @@ 0 1 - m_uviaMinDrillLabel + m_silkClearanceLabel 1 @@ -4828,8 +3949,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; ; forward_declare 0 @@ -4840,7 +3961,7 @@ 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM 0 1 @@ -4878,7 +3999,7 @@ 0 1 - m_uviaMinDrillCtrl + m_silkClearanceCtrl 1 @@ -4889,12 +4010,12 @@ 1 - + ; ; forward_declare 0 - The minimum micro-via hole size. If set, this is an absolute minimum and cannot be reduced by netclasses, custom rules, or other settings. + Minimum clearance between two items on the same silkscreen layer. If set this can improve legibility. (Note: does not apply to multiple shapes within a single footprint.) - wxFILTER_NUMERIC - wxTextValidator + wxFILTER_NONE + wxDefaultValidator @@ -4904,7 +4025,7 @@ 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 @@ -4943,7 +4064,7 @@ 0 1 - m_uviaMinDrillUnits + m_silkClearanceUnits 1 @@ -4953,8 +4074,8 @@ Resizable 1 - wxALIGN_LEFT - + + ; ; forward_declare 0 @@ -4964,10 +4085,20 @@ - 10 - wxEXPAND|wxTOP + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - + 1 1 1 @@ -4995,6 +4126,8 @@ 0 0 wxID_ANY + Minimum text height: + 0 0 @@ -5002,7 +4135,7 @@ 0 1 - m_staticline111 + m_textHeightLabel 1 @@ -5012,20 +4145,21 @@ Resizable 1 - wxLI_HORIZONTAL + ; ; forward_declare 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL 0 - + 1 1 1 @@ -5056,11 +4190,12 @@ 0 + 0 1 - m_staticline12 + m_textHeightCtrl 1 @@ -5070,20 +4205,25 @@ Resizable 1 - wxLI_HORIZONTAL + ; ; forward_declare 0 + + wxFILTER_NONE + wxDefaultValidator + + - 10 - wxEXPAND|wxTOP + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT 0 - + 1 1 1 @@ -5111,6 +4251,8 @@ 0 0 wxID_ANY + mm + 0 0 @@ -5118,7 +4260,7 @@ 0 1 - m_staticline13 + m_textHeightUnits 1 @@ -5128,20 +4270,31 @@ Resizable 1 - wxLI_HORIZONTAL + ; ; forward_declare 0 + -1 - 10 - wxEXPAND|wxTOP + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - + 1 1 1 @@ -5169,6 +4322,8 @@ 0 0 wxID_ANY + Minimum text thickness: + 0 0 @@ -5176,7 +4331,7 @@ 0 1 - m_staticline14 + m_textThicknessLabel 1 @@ -5186,20 +4341,21 @@ Resizable 1 - wxLI_HORIZONTAL + ; ; forward_declare 0 + -1 - 4 - wxALIGN_CENTER_HORIZONTAL|wxALL + 5 + wxTOP|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL 0 - + 1 1 1 @@ -5227,16 +4383,15 @@ 0 0 wxID_ANY - Silkscreen - 0 0 + 0 1 - m_staticText28 + m_textThicknessCtrl 1 @@ -5244,61 +4399,25 @@ 1 Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 @@ -5328,7 +4447,7 @@ 0 0 wxID_ANY - Minimum item clearance: + mm 0 0 @@ -5337,7 +4456,7 @@ 0 1 - m_silkClearanceLabel + m_textThicknessUnits 1 @@ -5357,11 +4476,43 @@ -1 + + + + + + 20 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxRIGHT + 0 + + + sbFeatureRules + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP + 0 + + + bSizerArcToPoly + wxVERTICAL + none 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + wxTOP|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -5389,15 +4540,16 @@ 0 0 wxID_ANY + Arc/circle approximated by segments + 0 0 - 0 1 - m_silkClearanceCtrl + m_stCircleToPolyOpt 1 @@ -5410,20 +4562,230 @@ ; ; forward_declare 0 - Minimum clearance between two items on the same silkscreen layer. If set this can improve legibility. (Note: does not apply to multiple shapes within a single footprint.) - - wxFILTER_NONE - wxDefaultValidator - - + + -1 + + + + 5 + wxEXPAND|wxBOTTOM + 0 + + 4 + wxBOTH + 2 + + 0 + + fgSizer2 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 3 + + 5 + + 0 + + 0 + protected + 15 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Max allowed deviation: + 0 + + 0 + + + 0 + + 1 + m_maxErrorTitle + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + This is the maximum distance between a circle and the polygonal shape that approximate it. The error max defines the number of segments of this polygon. + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + + 0 + + 1 + m_maxErrorCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + The maximum allowed deviation between a true arc or circle and segments used to approximate it. Smaller values produce smoother graphics at the expense of performance. + wxString + wxFILTER_NUMERIC + wxTextValidator + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + mm + 0 + + 0 + + + 0 + + 1 + m_maxErrorUnits + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + wxLEFT|wxRIGHT 0 1 @@ -5453,7 +4815,7 @@ 0 0 wxID_ANY - mm + Note: zone filling can be slow when < %s. 0 0 @@ -5462,7 +4824,7 @@ 0 1 - m_silkClearanceUnits + m_stCircleToPolyWarning 1 @@ -5482,21 +4844,22 @@ -1 - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + + + + 10 + wxEXPAND|wxTOP + 0 + + + m_bSizerPolygonFillOption + wxVERTICAL + protected + + 12 + wxEXPAND|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -5524,8 +4887,6 @@ 0 0 wxID_ANY - Minimum text height: - 0 0 @@ -5533,7 +4894,7 @@ 0 1 - m_textHeightLabel + m_staticline1 1 @@ -5543,21 +4904,20 @@ Resizable 1 - + wxLI_HORIZONTAL ; ; forward_declare 0 - -1 - + 5 - wxEXPAND|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL + wxTOP|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -5585,15 +4945,16 @@ 0 0 wxID_ANY + Zone fill strategy + 0 0 - 0 1 - m_textHeightCtrl + m_stZoneFilledPolysOpt 1 @@ -5607,21 +4968,353 @@ ; ; forward_declare 0 - - wxFILTER_NONE - wxDefaultValidator - - + -1 + + + + 7 + wxEXPAND|wxTOP + 0 + + + bSizer9 + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_filletBitmap + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Allow fillets outside zone outline + + 0 + + + 0 + + 1 + m_allowExternalFilletsOpt + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxEXPAND|wxTOP + 1 + + + bSizer111 + wxHORIZONTAL + none + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_spokeBitmap + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Min thermal relief spoke count: + 0 + + 0 + + + 0 + + 1 + m_minResolvedSpokesLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 10 + + 0 + + 0 + + 0 + + 1 + m_minResolvedSpokeCountCtrl + 1 + + + protected + 1 + + Resizable + 1 + -1,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT + + + + 5 + wxEXPAND + 1 + + + bSizer11 + wxVERTICAL + none + + 12 + wxEXPAND|wxTOP|wxBOTTOM 0 - + 1 1 1 @@ -5649,8 +5342,6 @@ 0 0 wxID_ANY - mm - 0 0 @@ -5658,7 +5349,7 @@ 0 1 - m_textHeightUnits + m_staticline15 1 @@ -5668,31 +5359,20 @@ Resizable 1 - + wxLI_HORIZONTAL ; ; forward_declare 0 - -1 - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - + 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT + wxALL 0 - + 1 1 1 @@ -5720,7 +5400,7 @@ 0 0 wxID_ANY - Minimum text thickness: + Length tuning 0 0 @@ -5729,7 +5409,7 @@ 0 1 - m_textThicknessLabel + m_staticText33 1 @@ -5749,11 +5429,11 @@ -1 - + 5 - wxTOP|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL + wxALL 0 - + 1 1 1 @@ -5767,6 +5447,7 @@ 1 0 + 0 1 1 @@ -5781,15 +5462,15 @@ 0 0 wxID_ANY + Include stackup height in track length calculations 0 - 0 1 - m_textThicknessCtrl + m_useHeightForLengthCalcs 1 @@ -5802,76 +5483,14 @@ ; ; forward_declare 0 - + When enabled, the distance between copper layers will be included in track length calculations for tracks with vias. When disabled, via stackup height is ignored. wxFILTER_NONE wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - mm - 0 - - 0 - - - 0 - - 1 - m_textThicknessUnits - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - -1 diff --git a/pcbnew/dialogs/panel_setup_constraints_base.h b/pcbnew/dialogs/panel_setup_constraints_base.h index df89cbff1d..47c23209cd 100644 --- a/pcbnew/dialogs/panel_setup_constraints_base.h +++ b/pcbnew/dialogs/panel_setup_constraints_base.h @@ -20,11 +20,11 @@ #include #include #include -#include -#include -#include #include #include +#include +#include +#include #include #include #include @@ -39,28 +39,6 @@ class PANEL_SETUP_CONSTRAINTS_BASE : public wxPanel private: protected: - wxStaticText* m_staticText26; - wxStaticBitmap* m_bitmapBlindBuried; - wxCheckBox* m_OptAllowBlindBuriedVias; - wxStaticBitmap* m_bitmap_uVia; - wxCheckBox* m_OptAllowMicroVias; - wxStaticLine* m_staticline2; - wxStaticText* m_stCircleToPolyOpt; - wxStaticText* m_maxErrorTitle; - wxTextCtrl* m_maxErrorCtrl; - wxStaticText* m_maxErrorUnits; - wxStaticText* m_stCircleToPolyWarning; - wxBoxSizer* m_bSizerPolygonFillOption; - wxStaticLine* m_staticline1; - wxStaticText* m_stZoneFilledPolysOpt; - wxStaticBitmap* m_filletBitmap; - wxCheckBox* m_allowExternalFilletsOpt; - wxStaticBitmap* m_spokeBitmap; - wxStaticText* m_minResolvedSpokesLabel; - wxSpinCtrl* m_minResolvedSpokeCountCtrl; - wxStaticLine* m_staticline15; - wxStaticText* m_staticText33; - wxCheckBox* m_useHeightForLengthCalcs; wxStaticText* m_staticText23; wxStaticBitmap* m_bitmapClearance; wxStaticText* m_clearanceTitle; @@ -130,6 +108,22 @@ class PANEL_SETUP_CONSTRAINTS_BASE : public wxPanel wxStaticText* m_textThicknessLabel; wxTextCtrl* m_textThicknessCtrl; wxStaticText* m_textThicknessUnits; + wxStaticText* m_stCircleToPolyOpt; + wxStaticText* m_maxErrorTitle; + wxTextCtrl* m_maxErrorCtrl; + wxStaticText* m_maxErrorUnits; + wxStaticText* m_stCircleToPolyWarning; + wxBoxSizer* m_bSizerPolygonFillOption; + wxStaticLine* m_staticline1; + wxStaticText* m_stZoneFilledPolysOpt; + wxStaticBitmap* m_filletBitmap; + wxCheckBox* m_allowExternalFilletsOpt; + wxStaticBitmap* m_spokeBitmap; + wxStaticText* m_minResolvedSpokesLabel; + wxSpinCtrl* m_minResolvedSpokeCountCtrl; + wxStaticLine* m_staticline15; + wxStaticText* m_staticText33; + wxCheckBox* m_useHeightForLengthCalcs; public: wxScrolledWindow* m_scrolledWindow; diff --git a/pcbnew/drc/drc_engine.cpp b/pcbnew/drc/drc_engine.cpp index 2434d471f9..6d91180a6e 100644 --- a/pcbnew/drc/drc_engine.cpp +++ b/pcbnew/drc/drc_engine.cpp @@ -220,24 +220,6 @@ void DRC_ENGINE::loadImplicitRules() uViaDiameterConstraint.Value().SetMin( bds.m_MicroViasMinSize ); uViaRule->AddConstraint( uViaDiameterConstraint ); - if( !bds.m_MicroViasAllowed ) - { - DRC_CONSTRAINT disallowConstraint( DISALLOW_CONSTRAINT ); - disallowConstraint.m_DisallowFlags = DRC_DISALLOW_MICRO_VIAS; - uViaRule->AddConstraint( disallowConstraint ); - } - - if( !bds.m_BlindBuriedViaAllowed ) - { - std::shared_ptr bbViaRule = createImplicitRule( _( "board setup constraints" ) ); - - bbViaRule->m_Condition = new DRC_RULE_CONDITION( wxT( "A.Via_Type == 'Blind/buried'" ) ); - - DRC_CONSTRAINT disallowConstraint( DISALLOW_CONSTRAINT ); - disallowConstraint.m_DisallowFlags = DRC_DISALLOW_BB_VIAS; - bbViaRule->AddConstraint( disallowConstraint ); - } - // 3) per-netclass rules std::vector> netclassClearanceRules; diff --git a/pcbnew/plugins/altium/altium_pcb.cpp b/pcbnew/plugins/altium/altium_pcb.cpp index 1063971ae3..3e2a16c34f 100644 --- a/pcbnew/plugins/altium/altium_pcb.cpp +++ b/pcbnew/plugins/altium/altium_pcb.cpp @@ -2833,12 +2833,10 @@ void ALTIUM_PCB::ParseVias6Data( const ALTIUM_COMPOUND_FILE& aAltiumPcbFile, else if( ( !start_layer_outside ) && ( !end_layer_outside ) ) { via->SetViaType( VIATYPE::BLIND_BURIED ); - m_board->GetDesignSettings().m_BlindBuriedViaAllowed = true; } else { via->SetViaType( VIATYPE::MICROVIA ); // TODO: always a microvia? - m_board->GetDesignSettings().m_MicroViasAllowed = true; } PCB_LAYER_ID start_klayer = GetKicadLayer( elem.layer_start ); diff --git a/pcbnew/plugins/kicad/pcb_parser.cpp b/pcbnew/plugins/kicad/pcb_parser.cpp index f86945a638..d9658a74c3 100644 --- a/pcbnew/plugins/kicad/pcb_parser.cpp +++ b/pcbnew/plugins/kicad/pcb_parser.cpp @@ -1995,13 +1995,13 @@ void PCB_PARSER::parseSetup() break; case T_uvias_allowed: - designSettings.m_MicroViasAllowed = parseBool(); + parseBool(); m_board->m_LegacyDesignSettingsLoaded = true; NeedRIGHT(); break; case T_blind_buried_vias_allowed: - designSettings.m_BlindBuriedViaAllowed = parseBool(); + parseBool(); m_board->m_LegacyDesignSettingsLoaded = true; NeedRIGHT(); break; diff --git a/pcbnew/plugins/legacy/legacy_plugin.cpp b/pcbnew/plugins/legacy/legacy_plugin.cpp index 843543dbfd..c589636043 100644 --- a/pcbnew/plugins/legacy/legacy_plugin.cpp +++ b/pcbnew/plugins/legacy/legacy_plugin.cpp @@ -988,8 +988,7 @@ void LEGACY_PLUGIN::loadSETUP() } else if( TESTLINE( "MicroViasAllowed" ) ) { - int tmp = intParse( line + SZ( "MicroViasAllowed" ) ); - bds.m_MicroViasAllowed = tmp; + intParse( line + SZ( "MicroViasAllowed" ) ); } else if( TESTLINE( "TextPcbWidth" ) ) { diff --git a/pcbnew/router/router_tool.cpp b/pcbnew/router/router_tool.cpp index 4329b00ff3..8e77f7d094 100644 --- a/pcbnew/router/router_tool.cpp +++ b/pcbnew/router/router_tool.cpp @@ -879,53 +879,6 @@ int ROUTER_TOOL::handleLayerSwitch( const TOOL_EVENT& aEvent, bool aForceVia ) // fixme: P&S supports more than one fixed layer pair. Update the dialog? sizes.ClearLayerPairs(); - if( !m_router->IsPlacingVia() ) - { - // Cannot place microvias or blind vias if not allowed (obvious) - if( ( viaType == VIATYPE::BLIND_BURIED ) && ( !bds.m_BlindBuriedViaAllowed ) ) - { - WX_INFOBAR* infobar = frame()->GetInfoBar(); - wxHyperlinkCtrl* button = new wxHyperlinkCtrl( infobar, wxID_ANY, - _( "Show board setup" ), - wxEmptyString ); - - button->Bind( wxEVT_COMMAND_HYPERLINK, std::function( - [&]( wxHyperlinkEvent& aEvent ) - { - getEditFrame()->ShowBoardSetupDialog( _( "Constraints" ) ); - } ) ); - - infobar->RemoveAllButtons(); - infobar->AddButton( button ); - - infobar->ShowMessageFor( _( "Blind/buried vias must first be enabled in " - "Board Setup > Design Rules > Constraints." ), - 10000, wxICON_ERROR, WX_INFOBAR::MESSAGE_TYPE::DRC_VIOLATION ); - return false; - } - - if( ( viaType == VIATYPE::MICROVIA ) && ( !bds.m_MicroViasAllowed ) ) - { - WX_INFOBAR* infobar = frame()->GetInfoBar(); - wxHyperlinkCtrl* button = new wxHyperlinkCtrl( infobar, wxID_ANY, - _( "Show board setup" ), wxEmptyString ); - - button->Bind( wxEVT_COMMAND_HYPERLINK, std::function( - [&]( wxHyperlinkEvent& aEvent ) - { - getEditFrame()->ShowBoardSetupDialog( _( "Constraints" ) ); - } ) ); - - infobar->RemoveAllButtons(); - infobar->AddButton( button ); - - infobar->ShowMessageFor( _( "Microvias must first be enabled in " - "Board Setup > Design Rules > Constraints." ), - 10000, wxICON_ERROR, WX_INFOBAR::MESSAGE_TYPE::DRC_VIOLATION ); - return false; - } - } - // Convert blind/buried via to a through hole one, if it goes through all layers if( viaType == VIATYPE::BLIND_BURIED && ( ( targetLayer == B_Cu && currentLayer == F_Cu )