Run SILK_CLEARANCE rules on mask layer when testing silk-to-mask clearance.

This allows custom rules to be authored without firing the auto-generated
rule from Board Setup > Silk Item Clearance (which should be only for silk-
to-silk clearances).

Fixes https://gitlab.com/kicad/code/kicad/issues/14417
This commit is contained in:
Jeff Young 2023-03-26 20:41:30 +01:00
parent 2443bc6e29
commit 0266d03f79
1 changed files with 2 additions and 2 deletions

View File

@ -293,12 +293,12 @@ void DRC_TEST_PROVIDER_SOLDER_MASK::testSilkToMaskClearance()
PCB_LAYER_ID maskLayer = layer == F_SilkS ? F_Mask : B_Mask;
BOX2I itemBBox = item->GetBoundingBox();
DRC_CONSTRAINT constraint = m_drcEngine->EvalRules( SILK_CLEARANCE_CONSTRAINT,
item, nullptr, layer );
item, nullptr, maskLayer );
int clearance = constraint.GetValue().Min();
int actual;
VECTOR2I pos;
if( constraint.GetSeverity() == RPT_SEVERITY_IGNORE || clearance <= 0 )
if( constraint.GetSeverity() == RPT_SEVERITY_IGNORE || clearance < 0 )
return true;
std::shared_ptr<SHAPE> itemShape = item->GetEffectiveShape( layer );