diff --git a/pcbnew/drc/drc_item.cpp b/pcbnew/drc/drc_item.cpp index 367b33cbbd..ac77dafdcb 100644 --- a/pcbnew/drc/drc_item.cpp +++ b/pcbnew/drc/drc_item.cpp @@ -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> DRC_ITEM::allItemTypes( { DRC_ITEM::unconnectedItems, @@ -206,7 +217,12 @@ std::vector> 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::Create( int aErrorCode ) case DRCE_UNRESOLVED_VARIABLE: return std::make_shared( unresolvedVariable ); case DRCE_SILK_OVER_PAD: return std::make_shared( silkOverPad ); case DRCE_SILK_CLEARANCE: return std::make_shared( silkClearance ); + case DRCE_LENGTH_OUT_OF_RANGE: return std::make_shared( lengthOutOfRange ); + case DRCE_SKEW_OUT_OF_RANGE: return std::make_shared( skewOutOfRange ); + case DRCE_TOO_MANY_VIAS: return std::make_shared( tooManyVias ); default: wxFAIL_MSG( "Unknown DRC error code" ); diff --git a/pcbnew/drc/drc_item.h b/pcbnew/drc/drc_item.h index eccb0027f0..2f7d571c4b 100644 --- a/pcbnew/drc/drc_item.h +++ b/pcbnew/drc/drc_item.h @@ -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;