mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-07 23:05:33 +00:00
PCB_TUNING_PATTERN: fix another issue due to mix PCB_LAYER_ID layer and PNS layer id
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18867
This commit is contained in:
parent
807c00c70c
commit
045c1f347f
@ -504,9 +504,9 @@ protected:
|
||||
|
||||
bool initBaseLines( PNS::ROUTER* aRouter, int aPNSLayer, BOARD* aBoard );
|
||||
|
||||
bool removeToBaseline( PNS::ROUTER* aRouter, int aLayer, SHAPE_LINE_CHAIN& aBaseLine );
|
||||
bool removeToBaseline( PNS::ROUTER* aRouter, int aPNSLayer, SHAPE_LINE_CHAIN& aBaseLine );
|
||||
|
||||
bool resetToBaseline( GENERATOR_TOOL* aTool, int aLayer, SHAPE_LINE_CHAIN& aBaseLine,
|
||||
bool resetToBaseline( GENERATOR_TOOL* aTool, int aPNSLayer, SHAPE_LINE_CHAIN& aBaseLine,
|
||||
bool aPrimary );
|
||||
|
||||
SHAPE_LINE_CHAIN getOutline() const;
|
||||
@ -1029,13 +1029,13 @@ bool PCB_TUNING_PATTERN::initBaseLines( PNS::ROUTER* aRouter, int aPNSLayer, BOA
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PCB_TUNING_PATTERN::removeToBaseline( PNS::ROUTER* aRouter, int aLayer,
|
||||
bool PCB_TUNING_PATTERN::removeToBaseline( PNS::ROUTER* aRouter, int aPNSLayer,
|
||||
SHAPE_LINE_CHAIN& aBaseLine )
|
||||
{
|
||||
VECTOR2I startSnapPoint, endSnapPoint;
|
||||
|
||||
std::optional<PNS::LINE> pnsLine = getPNSLine( aBaseLine.CPoint( 0 ), aBaseLine.CPoint( -1 ),
|
||||
aRouter, aLayer, startSnapPoint, endSnapPoint );
|
||||
aRouter, aPNSLayer, startSnapPoint, endSnapPoint );
|
||||
|
||||
wxCHECK( pnsLine, false );
|
||||
|
||||
@ -1073,7 +1073,7 @@ void PCB_TUNING_PATTERN::Remove( GENERATOR_TOOL* aTool, BOARD* aBoard, BOARD_COM
|
||||
aTool->Router()->SyncWorld();
|
||||
|
||||
PNS::ROUTER* router = aTool->Router();
|
||||
int layer = GetLayer();
|
||||
PNS_KICAD_IFACE* iface = aTool->GetInterface();
|
||||
|
||||
// Ungroup first so that undo works
|
||||
if( !GetItems().empty() )
|
||||
@ -1090,14 +1090,17 @@ void PCB_TUNING_PATTERN::Remove( GENERATOR_TOOL* aTool, BOARD* aBoard, BOARD_COM
|
||||
|
||||
aTool->ClearRouterChanges();
|
||||
|
||||
// PNS layers and PCB layers have different coding. so convert PCB layer to PNS layer
|
||||
int pnslayer = iface->GetPNSLayerFromBoardLayer( GetLayer() );
|
||||
|
||||
if( baselineValid() )
|
||||
{
|
||||
bool success = true;
|
||||
|
||||
success &= removeToBaseline( router, layer, *m_baseLine );
|
||||
success &= removeToBaseline( router, pnslayer, *m_baseLine );
|
||||
|
||||
if( m_tuningMode == DIFF_PAIR )
|
||||
success &= removeToBaseline( router, layer, *m_baseLineCoupled );
|
||||
success &= removeToBaseline( router, pnslayer, *m_baseLineCoupled );
|
||||
|
||||
if( !success )
|
||||
recoverBaseline( router );
|
||||
@ -1202,7 +1205,7 @@ bool PCB_TUNING_PATTERN::recoverBaseline( PNS::ROUTER* aRouter )
|
||||
}
|
||||
|
||||
|
||||
bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aLayer,
|
||||
bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aPNSLayer,
|
||||
SHAPE_LINE_CHAIN& aBaseLine, bool aPrimary )
|
||||
{
|
||||
PNS_KICAD_IFACE* iface = aTool->GetInterface();
|
||||
@ -1211,7 +1214,7 @@ bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aLayer,
|
||||
VECTOR2I startSnapPoint, endSnapPoint;
|
||||
|
||||
std::optional<PNS::LINE> pnsLine = getPNSLine( aBaseLine.CPoint( 0 ), aBaseLine.CPoint( -1 ),
|
||||
router, aLayer, startSnapPoint, endSnapPoint );
|
||||
router, aPNSLayer, startSnapPoint, endSnapPoint );
|
||||
|
||||
if( !pnsLine )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user