Margin layer missing from some edge clearance tests.
Fixes bug reported on KiCad Forums.
This commit is contained in:
parent
6fdf567b21
commit
e5d029af6b
|
@ -233,9 +233,11 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
|
||||||
|
|
||||||
const std::shared_ptr<SHAPE>& itemShape = item->GetEffectiveShape();
|
const std::shared_ptr<SHAPE>& itemShape = item->GetEffectiveShape();
|
||||||
|
|
||||||
|
for( PCB_LAYER_ID testLayer : { Edge_Cuts, Margin } )
|
||||||
|
{
|
||||||
if( testCopper && item->IsOnCopperLayer() )
|
if( testCopper && item->IsOnCopperLayer() )
|
||||||
{
|
{
|
||||||
edgesTree.QueryColliding( item, UNDEFINED_LAYER, Edge_Cuts, nullptr,
|
edgesTree.QueryColliding( item, UNDEFINED_LAYER, testLayer, nullptr,
|
||||||
[&]( BOARD_ITEM* edge ) -> bool
|
[&]( BOARD_ITEM* edge ) -> bool
|
||||||
{
|
{
|
||||||
return testAgainstEdge( item, itemShape.get(), edge,
|
return testAgainstEdge( item, itemShape.get(), edge,
|
||||||
|
@ -247,7 +249,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
|
||||||
|
|
||||||
if( testSilk && ( item->GetLayer() == F_SilkS || item->GetLayer() == B_SilkS ) )
|
if( testSilk && ( item->GetLayer() == F_SilkS || item->GetLayer() == B_SilkS ) )
|
||||||
{
|
{
|
||||||
edgesTree.QueryColliding( item, UNDEFINED_LAYER, Edge_Cuts, nullptr,
|
edgesTree.QueryColliding( item, UNDEFINED_LAYER, testLayer, nullptr,
|
||||||
[&]( BOARD_ITEM* edge ) -> bool
|
[&]( BOARD_ITEM* edge ) -> bool
|
||||||
{
|
{
|
||||||
return testAgainstEdge( item, itemShape.get(), edge,
|
return testAgainstEdge( item, itemShape.get(), edge,
|
||||||
|
@ -257,6 +259,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
|
||||||
m_largestClearance );
|
m_largestClearance );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
reportRuleStatistics();
|
reportRuleStatistics();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue