From 7750d2e00ee788c833e1cfe7d763b16a13f49257 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Fri, 16 Dec 2022 00:08:29 +0000 Subject: [PATCH] Microvias always use separate uvia netclass properties. There is no current microvia size/drill. Fixes https://gitlab.com/kicad/code/kicad/issues/13176 --- pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp | 2 +- pcbnew/edit_track_width.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp index 9611ff7dc8..c8a7cb4921 100644 --- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp +++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp @@ -254,7 +254,7 @@ void DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::buildNetclassesGrid() m_netclassGrid->AppendRows( 1 ); buildRow( row++, settings->m_DefaultNetClass ); - m_netclassGrid->AppendRows( settings->m_NetClasses.size() ); + m_netclassGrid->AppendRows( (int) settings->m_NetClasses.size() ); for( const auto& [ name, netclass ] : settings->m_NetClasses ) buildRow( row++, netclass ); diff --git a/pcbnew/edit_track_width.cpp b/pcbnew/edit_track_width.cpp index 0f1b0995b6..52f2e17a17 100644 --- a/pcbnew/edit_track_width.cpp +++ b/pcbnew/edit_track_width.cpp @@ -53,7 +53,12 @@ void PCB_EDIT_FRAME::SetTrackSegmentWidth( PCB_TRACK* aTrackItem, // Get the drill value, regardless it is default or specific initial_drill = via->GetDrillValue(); - if( aUseNetclassValue || via->GetViaType() == VIATYPE::MICROVIA ) + if( via->GetViaType() == VIATYPE::MICROVIA ) + { + new_width = aTrackItem->GetEffectiveNetClass()->GetuViaDiameter(); + new_drill = aTrackItem->GetEffectiveNetClass()->GetuViaDrill(); + } + else if( aUseNetclassValue ) { new_width = aTrackItem->GetEffectiveNetClass()->GetViaDiameter(); new_drill = aTrackItem->GetEffectiveNetClass()->GetViaDrill();