drc: add error codes for length/skew/via count violations

This commit is contained in:
Tomasz Wlostowski 2020-09-23 23:46:22 +02:00
parent 0c885c9c31
commit 8405793e57
2 changed files with 27 additions and 1 deletions

View File

@ -174,6 +174,17 @@ DRC_ITEM DRC_ITEM::silkClearance( DRCE_SILK_CLEARANCE,
_( "Silkscreen clearance" ),
wxT( "silk_clearance" ) );
DRC_ITEM DRC_ITEM::lengthOutOfRange( DRCE_LENGTH_OUT_OF_RANGE,
_( "Trace length out of range" ),
wxT( "length_out_of_range" ) );
DRC_ITEM DRC_ITEM::skewOutOfRange( DRCE_SKEW_OUT_OF_RANGE,
_( "Skew between traces out of range" ),
wxT( "skew_out_of_range" ) );
DRC_ITEM DRC_ITEM::tooManyVias( DRCE_TOO_MANY_VIAS,
_( "Too many vias on a connection" ),
wxT( "too_many_vias" ) );
std::vector<std::reference_wrapper<RC_ITEM>> DRC_ITEM::allItemTypes( {
DRC_ITEM::unconnectedItems,
@ -206,7 +217,12 @@ std::vector<std::reference_wrapper<RC_ITEM>> DRC_ITEM::allItemTypes( {
DRC_ITEM::missingFootprint,
DRC_ITEM::extraFootprint,
DRC_ITEM::netConflict,
DRC_ITEM::unresolvedVariable
DRC_ITEM::unresolvedVariable,
DRC_ITEM::silkClearance,
DRC_ITEM::silkOverPad,
DRC_ITEM::lengthOutOfRange,
DRC_ITEM::skewOutOfRange,
DRC_ITEM::tooManyVias
} );
@ -248,6 +264,9 @@ std::shared_ptr<DRC_ITEM> DRC_ITEM::Create( int aErrorCode )
case DRCE_UNRESOLVED_VARIABLE: return std::make_shared<DRC_ITEM>( unresolvedVariable );
case DRCE_SILK_OVER_PAD: return std::make_shared<DRC_ITEM>( silkOverPad );
case DRCE_SILK_CLEARANCE: return std::make_shared<DRC_ITEM>( silkClearance );
case DRCE_LENGTH_OUT_OF_RANGE: return std::make_shared<DRC_ITEM>( lengthOutOfRange );
case DRCE_SKEW_OUT_OF_RANGE: return std::make_shared<DRC_ITEM>( skewOutOfRange );
case DRCE_TOO_MANY_VIAS: return std::make_shared<DRC_ITEM>( tooManyVias );
default:
wxFAIL_MSG( "Unknown DRC error code" );

View File

@ -70,6 +70,10 @@ enum PCB_DRC_CODE {
DRCE_UNRESOLVED_VARIABLE,
DRCE_SILK_OVER_PAD, // silkscreen over component pad(s)
DRCE_SILK_CLEARANCE, // silk to silk clearance error
DRCE_LENGTH_OUT_OF_RANGE,
DRCE_SKEW_OUT_OF_RANGE,
DRCE_TOO_MANY_VIAS,
DRCE_LAST = DRCE_SILK_CLEARANCE
};
@ -148,6 +152,9 @@ private:
static DRC_ITEM unresolvedVariable;
static DRC_ITEM silkOverPad;
static DRC_ITEM silkClearance;
static DRC_ITEM lengthOutOfRange;
static DRC_ITEM skewOutOfRange;
static DRC_ITEM tooManyVias;
private:
DRC_RULE* m_violatingRule = nullptr;