26#include "wx/html/m_templ.h"
27#include "wx/html/styleparams.h"
55 _(
"Missing connection between items" ),
56 wxT(
"unconnected_items" ) );
59 _(
"Items shorting two nets" ),
60 wxT(
"shorting_items" ) );
63 _(
"Items not allowed" ),
64 wxT(
"items_not_allowed" ) );
67 _(
"Text (or dimension) on Edge.Cuts layer" ),
68 wxT(
"text_on_edge_cuts" ) );
71 _(
"Clearance violation" ),
75 _(
"Creepage violation" ),
79 _(
"Tracks crossing" ),
80 wxT(
"tracks_crossing" ) );
83 _(
"Board edge clearance violation" ),
84 wxT(
"copper_edge_clearance" ) );
87 _(
"Copper zones intersect" ),
88 wxT(
"zones_intersect" ) );
91 _(
"Isolated copper fill" ),
92 wxT(
"isolated_copper" ) );
95 _(
"Thermal relief connection to zone incomplete" ),
96 wxT(
"starved_thermal" ) );
99 _(
"Via is not connected or connected on only one layer" ),
100 wxT(
"via_dangling" ) );
103 _(
"Track has unconnected end" ),
104 wxT(
"track_dangling" ) );
107 _(
"Hole clearance violation" ),
108 wxT(
"hole_clearance" ) );
111 _(
"Drilled hole too close to other hole" ),
112 wxT(
"hole_to_hole" ) );
115 _(
"Drilled holes co-located" ),
116 wxT(
"holes_co_located" ) );
119 _(
"Copper connection too narrow" ),
120 wxT(
"connection_width" ) );
124 wxT(
"track_width" ) );
128 wxT(
"track_angle" ) );
131 _(
"Track segment length" ),
132 wxT(
"track_segment_length" ) );
135 _(
"Annular width" ),
136 wxT(
"annular_width" ) );
139 _(
"Hole size out of range" ),
140 wxT(
"drill_out_of_range" ) );
144 wxT(
"via_diameter" ) );
147 wxT(
"Padstack is questionable" ),
151 _(
"Padstack is not valid" ),
152 wxT(
"padstack_invalid" ) );
155 _(
"Micro via hole size out of range" ),
156 wxT(
"microvia_drill_out_of_range" ) );
159 _(
"Courtyards overlap" ),
160 wxT(
"courtyards_overlap" ) );
163 _(
"Footprint has no courtyard defined" ),
164 wxT(
"missing_courtyard" ) );
167 _(
"Footprint has malformed courtyard" ),
168 wxT(
"malformed_courtyard" ) );
171 _(
"PTH inside courtyard" ),
172 wxT(
"pth_inside_courtyard" ) );
175 _(
"NPTH inside courtyard" ),
176 wxT(
"npth_inside_courtyard" ) );
179 _(
"Item on a disabled copper layer" ),
180 wxT(
"item_on_disabled_layer" ) );
183 _(
"Board has malformed outline" ),
184 wxT(
"invalid_outline" ) );
187 _(
"Duplicate footprints" ),
188 wxT(
"duplicate_footprints" ) );
191 _(
"Missing footprint" ),
192 wxT(
"missing_footprint" ) );
195 _(
"Extra footprint" ),
196 wxT(
"extra_footprint" ) );
199 _(
"Pad net doesn't match schematic" ),
200 wxT(
"net_conflict" ) );
203 _(
"Footprint attributes don't match symbol" ),
204 wxT(
"footprint_symbol_mismatch" ) );
207 _(
"Footprint doesn't match symbol's footprint filters" ),
208 wxT(
"footprint_filters_mismatch" ) );
211 _(
"Footprint not found in libraries" ),
212 wxT(
"lib_footprint_issues" ) );
215 _(
"Footprint doesn't match copy in library" ),
216 wxT(
"lib_footprint_mismatch" ) );
219 _(
"Unresolved text variable" ),
220 wxT(
"unresolved_variable" ) );
223 _(
"Assertion failure" ),
224 wxT(
"assertion_failure" ) );
228 wxT(
"generic_warning" ) );
232 wxT(
"generic_error" ) );
235 _(
"Copper sliver" ),
236 wxT(
"copper_sliver" ) );
239 _(
"Solder mask aperture bridges items with different nets" ),
240 wxT(
"solder_mask_bridge" ) );
243 _(
"Silkscreen clipped by solder mask" ),
244 wxT(
"silk_over_copper" ) );
247 _(
"Silkscreen clipped by board edge" ),
248 wxT(
"silk_edge_clearance" ) );
251 _(
"Silkscreen overlap" ),
252 wxT(
"silk_overlap" ) );
255 _(
"Text height out of range" ),
256 wxT(
"text_height" ) );
259 _(
"Text thickness out of range" ),
260 wxT(
"text_thickness" ) );
263 _(
"Track length out of range" ),
264 wxT(
"length_out_of_range" ) );
267 _(
"Skew between tracks out of range" ),
268 wxT(
"skew_out_of_range" ) );
272 _(
"Too many or too few vias on a connection" ),
273 wxT(
"too_many_vias" ) );
276 _(
"Differential pair gap out of range" ),
277 wxT(
"diff_pair_gap_out_of_range" ) );
280 _(
"Differential uncoupled length too long" ),
281 wxT(
"diff_pair_uncoupled_length_too_long" ) );
284 _(
"Footprint is not valid" ),
285 wxT(
"footprint" ) );
288 _(
"Footprint component type doesn't match footprint pads" ),
289 wxT(
"footprint_type_mismatch" ) );
292 _(
"Through hole pad has no hole" ),
293 wxT(
"through_hole_pad_without_hole" ) );
296 _(
"Mirrored text on front layer" ),
297 wxT(
"mirrored_text_on_front_layer" ) );
300 _(
"Non-Mirrored text on back layer" ),
301 wxT(
"nonmirrored_text_on_back_layer" ) );
307 _(
"Drilled hole too close to other hole - deprecated" ),
308 wxT(
"hole_near_hole" ) );
462 wxFAIL_MSG( wxT(
"Unknown DRC error code" ) );
472 if( aErrorKey == item.GetSettingsKey() )
473 return std::make_shared<DRC_ITEM>(
static_cast<const DRC_ITEM&
>( item ) );
510 return _(
"Local override" );
541 && ( marker->GetSeverity() & aSeverity ) > 0 )
555 return marker ? marker->
GetRCItem() :
nullptr;
virtual void Delete(BOARD_ITEM *aItem)
Removes an item from the container and deletes it.
const MARKERS & Markers() const
void SetSeverities(int aSeverities) override
std::vector< MARKER_BASE::MARKER_T > m_markerTypes
void DeleteItem(int aIndex, bool aDeep) override
Remove (and optionally deletes) the indexed item from the list.
int GetCount(int aSeverity=-1) const override
std::vector< PCB_MARKER * > m_filteredMarkers
std::shared_ptr< RC_ITEM > GetItem(int aIndex) const override
Retrieve a RC_ITEM by index.
static DRC_ITEM nonMirroredTextOnBackLayer
static DRC_ITEM lengthOutOfRange
KIID GetAuxItem3ID() const override
static DRC_ITEM viaDiameter
static DRC_ITEM silkEdgeClearance
static DRC_ITEM trackWidth
static DRC_ITEM heading_DFM
static DRC_ITEM annularWidth
static DRC_ITEM pthInsideCourtyard
static DRC_ITEM trackSegmentLength
static DRC_ITEM schematicParity
wxString GetViolatingRuleDesc() const override
static DRC_ITEM holeNearHolev8
Deprecated items.
static DRC_ITEM netConflict
static DRC_ITEM copperSliver
static DRC_ITEM holeNearHole
static DRC_ITEM heading_signal_integrity
static DRC_ITEM courtyardsOverlap
static DRC_ITEM textThicknessOutOfRange
static DRC_ITEM connectionWidth
static DRC_ITEM footprint
static DRC_ITEM unresolvedVariable
static DRC_ITEM assertionFailure
static DRC_ITEM npthInsideCourtyard
static DRC_ITEM footprintFilters
static std::shared_ptr< DRC_ITEM > Create(int aErrorCode)
Constructs a DRC_ITEM for the given error code.
static DRC_ITEM textOnEdgeCuts
static std::vector< std::reference_wrapper< RC_ITEM > > allItemTypes
A list of all DRC_ITEM types which are valid error codes.
static DRC_ITEM zonesIntersect
static DRC_ITEM starvedThermal
static DRC_ITEM heading_deprecated
static DRC_ITEM shortingItems
static DRC_ITEM tracksCrossing
static DRC_ITEM missingCourtyard
static DRC_ITEM skewOutOfRange
static DRC_ITEM trackDangling
static DRC_ITEM viaDangling
static DRC_ITEM genericError
static DRC_ITEM drillTooSmall
static DRC_ITEM holesCoLocated
static DRC_ITEM missingFootprint
static DRC_ITEM textHeightOutOfRange
static DRC_ITEM diffPairGapOutOfRange
static DRC_ITEM heading_electrical
static DRC_ITEM itemOnDisabledLayer
static DRC_ITEM mirroredTextOnFrontLayer
static DRC_ITEM heading_readability
static DRC_ITEM itemsNotAllowed
static DRC_ITEM extraFootprint
static DRC_ITEM diffPairUncoupledLengthTooLong
KIID GetAuxItem2ID() const override
static DRC_ITEM unconnectedItems
static DRC_ITEM clearance
DRC_RULE * m_violatingRule
static DRC_ITEM libFootprintMismatch
static DRC_ITEM viaCountOutOfRange
static DRC_ITEM edgeClearance
static DRC_ITEM genericWarning
static DRC_ITEM invalidOutline
static DRC_ITEM silkOverlaps
static DRC_ITEM isolatedCopper
static DRC_ITEM malformedCourtyard
static DRC_ITEM heading_internal
static DRC_ITEM holeClearance
static DRC_ITEM libFootprintIssues
static DRC_ITEM padstackInvalid
static DRC_ITEM trackAngle
static DRC_ITEM heading_schematic_parity
static DRC_ITEM microviaDrillTooSmall
static DRC_ITEM solderMaskBridge
static DRC_ITEM heading_misc
static DRC_ITEM footprintTypeMismatch
static DRC_ITEM footprintTHPadhasNoHole
static DRC_ITEM silkClearance
static DRC_ITEM duplicateFootprints
std::shared_ptr< RC_ITEM > GetRCItem() const
A holder for a rule check item, DRC in Pcbnew or ERC in Eeschema.
int m_errorCode
The error code's numeric value.
@ DRCE_DISABLED_LAYER_ITEM
@ DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE
@ DRCE_SILK_EDGE_CLEARANCE
@ DRCE_MIRRORED_TEXT_ON_FRONT_LAYER
@ DRCE_LIB_FOOTPRINT_ISSUES
@ DRCE_OVERLAPPING_FOOTPRINTS
@ DRCE_DRILL_OUT_OF_RANGE
@ DRCE_TRACK_SEGMENT_LENGTH
@ DRCE_DRILLED_HOLES_TOO_CLOSE
@ DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG
@ DRCE_MICROVIA_DRILL_OUT_OF_RANGE
@ DRCE_MALFORMED_COURTYARD
@ DRCE_UNRESOLVED_VARIABLE
@ DRCE_FOOTPRINT_TYPE_MISMATCH
@ DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER
@ DRCE_DUPLICATE_FOOTPRINT
@ DRCE_DRILLED_HOLES_COLOCATED
@ DRCE_LENGTH_OUT_OF_RANGE
@ DRCE_LIB_FOOTPRINT_MISMATCH
@ DRCE_PAD_TH_WITH_NO_HOLE
@ DRCE_VIA_COUNT_OUT_OF_RANGE
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.