pcbnew: added Placement Rule Area properties to class ZONE:

- RuleAreaType: distinction between Keepout and Placement rule areas
- RuleAreaExpression: custom DRC language expression for assigning components for Placement rules
This commit is contained in:
Tomasz Wlostowski
2024-08-13 22:50:25 +02:00
parent 8bb4dce288
commit 05fc8199dc
4 changed files with 27 additions and 0 deletions
+5
View File
@@ -83,6 +83,7 @@ ZONE_SETTINGS::ZONE_SETTINGS()
SetDoNotAllowFootprints( false );
m_TeardropType = TEARDROP_TYPE::TD_NONE;
m_ruleAreaType = RULE_AREA_TYPE::KEEPOUT; // for backwards compatibility
}
@@ -152,6 +153,8 @@ ZONE_SETTINGS& ZONE_SETTINGS::operator << ( const ZONE& aSource )
m_cornerSmoothingType = aSource.GetCornerSmoothingType();
m_cornerRadius = aSource.GetCornerRadius();
m_isRuleArea = aSource.GetIsRuleArea();
m_ruleAreaExpression = aSource.GetRuleAreaExpression();
m_ruleAreaType = aSource.GetRuleAreaType();
m_keepoutDoNotAllowCopperPour = aSource.GetDoNotAllowCopperPour();
m_keepoutDoNotAllowVias = aSource.GetDoNotAllowVias();
m_keepoutDoNotAllowTracks = aSource.GetDoNotAllowTracks();
@@ -190,6 +193,8 @@ void ZONE_SETTINGS::ExportSetting( ZONE& aTarget, bool aFullExport ) const
aTarget.SetCornerSmoothingType( m_cornerSmoothingType );
aTarget.SetCornerRadius( m_cornerRadius );
aTarget.SetIsRuleArea( GetIsRuleArea() );
aTarget.SetRuleAreaType( GetRuleAreaType() );
aTarget.SetRuleAreaExpression( GetRuleAreaExpression() );
aTarget.SetDoNotAllowCopperPour( GetDoNotAllowCopperPour() );
aTarget.SetDoNotAllowVias( GetDoNotAllowVias() );
aTarget.SetDoNotAllowTracks( GetDoNotAllowTracks() );