mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
router: fix a few more missing translations between pcbnew layers and router layers
This commit is contained in:
parent
4464490ad5
commit
d9ae8e44c2
@ -128,13 +128,12 @@ void HOLE::Move( const VECTOR2I& delta )
|
||||
}
|
||||
|
||||
|
||||
HOLE* HOLE::MakeCircularHole( const VECTOR2I& pos, int radius )
|
||||
HOLE* HOLE::MakeCircularHole( const VECTOR2I& pos, int radius, PNS_LAYER_RANGE aLayers )
|
||||
{
|
||||
SHAPE_CIRCLE* circle = new SHAPE_CIRCLE( pos, radius );
|
||||
HOLE* hole = new HOLE( circle );
|
||||
|
||||
hole->SetLayers( PNS_LAYER_RANGE( F_Cu, B_Cu ) );
|
||||
hole->SetLayers( aLayers );
|
||||
return hole;
|
||||
}
|
||||
|
||||
}; // namespace PNS
|
||||
}; // namespace PNS
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
|
||||
void Move( const VECTOR2I& delta );
|
||||
|
||||
static HOLE* MakeCircularHole( const VECTOR2I& pos, int radius );
|
||||
static HOLE* MakeCircularHole( const VECTOR2I& pos, int radius, PNS_LAYER_RANGE aLayers );
|
||||
|
||||
|
||||
private:
|
||||
@ -97,4 +97,4 @@ private:
|
||||
|
||||
}; // namespace PNS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1308,7 +1308,8 @@ std::vector<std::unique_ptr<PNS::VIA>> PNS_KICAD_IFACE_BASE::syncVia( PCB_VIA* a
|
||||
|
||||
via->SetIsFree( aVia->GetIsFree() );
|
||||
via->SetHole( PNS::HOLE::MakeCircularHole( aVia->GetPosition(),
|
||||
aVia->GetDrillValue() / 2 ) );
|
||||
aVia->GetDrillValue() / 2,
|
||||
SetLayersFromPCBNew( aVia->TopLayer(), aVia->BottomLayer() ) ) );
|
||||
vias.emplace_back( std::move( via ) );
|
||||
} );
|
||||
|
||||
|
@ -72,8 +72,16 @@ void LINE_PLACER::setWorld( NODE* aWorld )
|
||||
|
||||
const VIA LINE_PLACER::makeVia( const VECTOR2I& aP )
|
||||
{
|
||||
const PNS_LAYER_RANGE layers( m_sizes.ViaType() == VIATYPE::THROUGH ? F_Cu : m_sizes.GetLayerTop(),
|
||||
m_sizes.ViaType() == VIATYPE::THROUGH ? B_Cu : m_sizes.GetLayerBottom() );
|
||||
// fixme: should belong to KICAD_IFACE
|
||||
auto iface = Router()->GetInterface();
|
||||
|
||||
int start = m_sizes.ViaType() == VIATYPE::THROUGH ?iface->GetPNSLayerFromBoardLayer( F_Cu ) : m_sizes.GetLayerTop();
|
||||
int end = m_sizes.ViaType() == VIATYPE::THROUGH ? iface->GetPNSLayerFromBoardLayer( B_Cu ) : m_sizes.GetLayerBottom();
|
||||
|
||||
const PNS_LAYER_RANGE layers(
|
||||
start ,
|
||||
end
|
||||
);
|
||||
|
||||
return VIA( aP, layers, m_sizes.ViaDiameter(), m_sizes.ViaDrill(), nullptr, m_sizes.ViaType() );
|
||||
}
|
||||
|
@ -1034,7 +1034,7 @@ const ITEM_SET MULTI_DRAGGER::Traces()
|
||||
int MULTI_DRAGGER::CurrentLayer() const
|
||||
{
|
||||
// fixme: should we care?
|
||||
return F_Cu;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -166,7 +166,7 @@ VIA* VIA::Clone() const
|
||||
v->m_diameter = m_diameter;
|
||||
v->m_drill = m_drill;
|
||||
v->m_shape = SHAPE_CIRCLE( m_pos, m_diameter / 2 );
|
||||
v->SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2 ) );
|
||||
v->SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2, m_layers ) );
|
||||
v->m_rank = m_rank;
|
||||
v->m_marker = m_marker;
|
||||
v->m_viaType = m_viaType;
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
m_viaType = VIATYPE::THROUGH;
|
||||
m_isFree = false;
|
||||
m_isVirtual = false;
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2 ) );
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2, PNS_LAYER_RANGE() ) );
|
||||
}
|
||||
|
||||
VIA( const VECTOR2I& aPos, const PNS_LAYER_RANGE& aLayers, int aDiameter, int aDrill,
|
||||
@ -80,7 +80,7 @@ public:
|
||||
m_diameter = aDiameter;
|
||||
m_drill = aDrill;
|
||||
m_shape = SHAPE_CIRCLE( aPos, aDiameter / 2 );
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, aDrill / 2 ) );
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, aDrill / 2, PNS_LAYER_RANGE() ) );
|
||||
m_viaType = aViaType;
|
||||
m_isFree = false;
|
||||
m_isVirtual = false;
|
||||
@ -96,7 +96,7 @@ public:
|
||||
m_diameter = aB.m_diameter;
|
||||
m_shape = SHAPE_CIRCLE( m_pos, m_diameter / 2 );
|
||||
m_drill = aB.m_drill;
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2 ) );
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2, PNS_LAYER_RANGE() ) );
|
||||
m_marker = aB.m_marker;
|
||||
m_rank = aB.m_rank;
|
||||
m_viaType = aB.m_viaType;
|
||||
@ -118,7 +118,7 @@ public:
|
||||
m_diameter = aB.m_diameter;
|
||||
m_shape = SHAPE_CIRCLE( m_pos, m_diameter / 2 );
|
||||
m_drill = aB.m_drill;
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2 ) );
|
||||
SetHole( HOLE::MakeCircularHole( m_pos, m_drill / 2, PNS_LAYER_RANGE() ) );
|
||||
m_marker = aB.m_marker;
|
||||
m_rank = aB.m_rank;
|
||||
m_viaType = aB.m_viaType;
|
||||
|
Loading…
x
Reference in New Issue
Block a user