Browse Source

Use hasExactNetclass() function for all implicit net class DRC rules

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21819
master
JamesJCode 1 day ago
parent
commit
7c8dd9bf92
  1. 17
      pcbnew/drc/drc_engine.cpp

17
pcbnew/drc/drc_engine.cpp

@ -279,7 +279,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetTrackWidthParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s')" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassClearanceRules.push_back( netclassRule );
@ -296,7 +296,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetDiffPairWidthParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && A.inDiffPair('*')" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && A.inDiffPair('*')" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -313,7 +313,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetDiffPairGapParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s')" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -330,8 +330,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetDiffPairGapParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && AB.isCoupledDiffPair()" ),
ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && AB.isCoupledDiffPair()" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -348,7 +347,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetViaDiameterParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && A.Via_Type != 'Micro'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && A.Via_Type != 'Micro'" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -365,7 +364,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetViaDrillParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && A.Via_Type != 'Micro'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && A.Via_Type != 'Micro'" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -382,7 +381,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetuViaDiameterParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && A.Via_Type == 'Micro'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && A.Via_Type == 'Micro'" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );
@ -399,7 +398,7 @@ void DRC_ENGINE::loadImplicitRules()
nc->GetuViaDrillParent()->GetHumanReadableName() );
netclassRule->m_Implicit = true;
expr = wxString::Format( wxT( "A.NetClass == '%s' && A.Via_Type == 'Micro'" ), ncName );
expr = wxString::Format( wxT( "A.hasExactNetclass('%s') && A.Via_Type == 'Micro'" ), ncName );
netclassRule->m_Condition = new DRC_RULE_CONDITION( expr );
netclassItemSpecificRules.push_back( netclassRule );

Loading…
Cancel
Save