LibrePCB Developers Documentation
boarddesignrulecheckmessages.h
Go to the documentation of this file.
1/*
2 * LibrePCB - Professional EDA for everyone!
3 * Copyright (C) 2013 LibrePCB Developers, see AUTHORS.md for contributors.
4 * https://librepcb.org/
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H
21#define LIBREPCB_CORE_BOARDDESIGNRULECHECKMESSAGES_H
22
23/*******************************************************************************
24 * Includes
25 ******************************************************************************/
26#include "../../../rulecheck/rulecheckmessage.h"
27#include "../../../types/length.h"
28
29#include <QtCore>
30
31/*******************************************************************************
32 * Namespace / Forward Declarations
33 ******************************************************************************/
34namespace librepcb {
35
36class BI_Base;
37class BI_Device;
38class BI_FootprintPad;
39class BI_Hole;
40class BI_NetLine;
41class BI_NetLineAnchor;
42class BI_NetPoint;
43class BI_NetSegment;
44class BI_Plane;
45class BI_Polygon;
46class BI_StrokeText;
47class BI_Via;
48class BI_Zone;
49class Circle;
50class ComponentInstance;
51class Hole;
52class Layer;
53class NetSignal;
54class PadHole;
55class Polygon;
56class StrokeText;
57class Uuid;
58class Zone;
59
60/*******************************************************************************
61 * Class DrcMsgMissingDevice
62 ******************************************************************************/
63
68 Q_DECLARE_TR_FUNCTIONS(DrcMsgMissingDevice)
69
70public:
71 // Constructors / Destructor
73 explicit DrcMsgMissingDevice(const ComponentInstance& component) noexcept;
75 : RuleCheckMessage(other) {}
76 virtual ~DrcMsgMissingDevice() noexcept {}
77};
78
79/*******************************************************************************
80 * Class DrcMsgMissingConnection
81 ******************************************************************************/
82
87 Q_DECLARE_TR_FUNCTIONS(DrcMsgMissingConnection)
88
89public:
90 // Constructors / Destructor
93 const BI_NetLineAnchor& p2,
94 const NetSignal& netSignal,
95 const QVector<Path>& locations);
97 : RuleCheckMessage(other) {}
98 virtual ~DrcMsgMissingConnection() noexcept {}
99
100private:
101 static QString getAnchorName(const BI_NetLineAnchor& anchor);
102 static void serializeAnchor(SExpression& node,
103 const BI_NetLineAnchor& anchor);
104};
105
106/*******************************************************************************
107 * Class DrcMsgMissingBoardOutline
108 ******************************************************************************/
109
114 Q_DECLARE_TR_FUNCTIONS(DrcMsgMissingBoardOutline)
115
116public:
117 // Constructors / Destructor
118 DrcMsgMissingBoardOutline() noexcept;
120 : RuleCheckMessage(other) {}
121 virtual ~DrcMsgMissingBoardOutline() noexcept {}
122};
123
124/*******************************************************************************
125 * Class DrcMsgMultipleBoardOutlines
126 ******************************************************************************/
127
132 Q_DECLARE_TR_FUNCTIONS(DrcMsgMultipleBoardOutlines)
133
134public:
135 // Constructors / Destructor
136 explicit DrcMsgMultipleBoardOutlines(const QVector<Path>& locations) noexcept;
138 : RuleCheckMessage(other) {}
139 virtual ~DrcMsgMultipleBoardOutlines() noexcept {}
140};
141
142/*******************************************************************************
143 * Class DrcMsgOpenBoardOutlinePolygon
144 ******************************************************************************/
145
150 Q_DECLARE_TR_FUNCTIONS(DrcMsgOpenBoardOutlinePolygon)
151
152public:
153 // Constructors / Destructor
155 DrcMsgOpenBoardOutlinePolygon(const BI_Device* device, const Uuid& polygon,
156 const QVector<Path>& locations) noexcept;
158 const DrcMsgOpenBoardOutlinePolygon& other) noexcept
159 : RuleCheckMessage(other) {}
160 virtual ~DrcMsgOpenBoardOutlinePolygon() noexcept {}
161};
162
163/*******************************************************************************
164 * Class DrcMsgMinimumBoardOutlineInnerRadiusViolation
165 ******************************************************************************/
166
171 : public RuleCheckMessage {
173
174public:
175 // Constructors / Destructor
178 const UnsignedLength& minRadius, const QVector<Path>& locations) noexcept;
181 : RuleCheckMessage(other) {}
183};
184
185/*******************************************************************************
186 * Class DrcMsgEmptyNetSegment
187 ******************************************************************************/
188
193 Q_DECLARE_TR_FUNCTIONS(DrcMsgEmptyNetSegment)
194
195public:
196 // Constructors / Destructor
198 explicit DrcMsgEmptyNetSegment(const BI_NetSegment& netSegment) noexcept;
200 : RuleCheckMessage(other) {}
201 virtual ~DrcMsgEmptyNetSegment() noexcept {}
202};
203
204/*******************************************************************************
205 * Class DrcMsgUnconnectedJunction
206 ******************************************************************************/
207
212 Q_DECLARE_TR_FUNCTIONS(DrcMsgUnconnectedJunction)
213
214public:
215 // Constructors / Destructor
218 const QVector<Path>& locations) noexcept;
220 : RuleCheckMessage(other) {}
221 virtual ~DrcMsgUnconnectedJunction() noexcept {}
222};
223
224/*******************************************************************************
225 * Class DrcMsgMinimumTextHeightViolation
226 ******************************************************************************/
227
232 Q_DECLARE_TR_FUNCTIONS(DrcMsgMinimumTextHeightViolation)
233
234public:
235 // Constructors / Destructor
238 const UnsignedLength& minHeight,
239 const QVector<Path>& locations) noexcept;
241 const DrcMsgMinimumTextHeightViolation& other) noexcept
242 : RuleCheckMessage(other) {}
244};
245
246/*******************************************************************************
247 * Class DrcMsgMinimumWidthViolation
248 ******************************************************************************/
249
254 Q_DECLARE_TR_FUNCTIONS(DrcMsgMinimumWidthViolation)
255
256public:
257 // Constructors / Destructor
260 const UnsignedLength& minWidth,
261 const QVector<Path>& locations) noexcept;
263 const UnsignedLength& minWidth,
264 const QVector<Path>& locations) noexcept;
266 const UnsignedLength& minWidth,
267 const QVector<Path>& locations) noexcept;
269 const UnsignedLength& minWidth,
270 const QVector<Path>& locations) noexcept;
271 DrcMsgMinimumWidthViolation(const BI_Device& device, const Polygon& polygon,
272 const UnsignedLength& minWidth,
273 const QVector<Path>& locations) noexcept;
274 DrcMsgMinimumWidthViolation(const BI_Device& device, const Circle& circle,
275 const UnsignedLength& minWidth,
276 const QVector<Path>& locations) noexcept;
278 : RuleCheckMessage(other) {}
279 virtual ~DrcMsgMinimumWidthViolation() noexcept {}
280};
281
282/*******************************************************************************
283 * Class DrcMsgCopperCopperClearanceViolation
284 ******************************************************************************/
285
290 Q_DECLARE_TR_FUNCTIONS(DrcMsgCopperCopperClearanceViolation)
291
292public:
293 // Constructors / Destructor
296 const NetSignal* net1, const BI_Base& item1, const Polygon* polygon1,
297 const Circle* circle1, const NetSignal* net2, const BI_Base& item2,
298 const Polygon* polygon2, const Circle* circle2,
299 const QVector<const Layer*>& layers, const Length& minClearance,
300 const QVector<Path>& locations);
302 const DrcMsgCopperCopperClearanceViolation& other) noexcept
303 : RuleCheckMessage(other) {}
305
306private:
307 static QString getLayerName(const QVector<const Layer*>& layers);
308 static QString getObjectName(const NetSignal* net, const BI_Base& item,
309 const Polygon* polygon, const Circle* circle);
310 static void serializeObject(SExpression& node, const BI_Base& item,
311 const Polygon* polygon, const Circle* circle);
312};
313
314/*******************************************************************************
315 * Class DrcMsgCopperBoardClearanceViolation
316 ******************************************************************************/
317
322 Q_DECLARE_TR_FUNCTIONS(DrcMsgCopperBoardClearanceViolation)
323
324public:
325 // Constructors / Destructor
328 const UnsignedLength& minClearance,
329 const QVector<Path>& locations) noexcept;
331 const UnsignedLength& minClearance,
332 const QVector<Path>& locations) noexcept;
334 const UnsignedLength& minClearance,
335 const QVector<Path>& locations) noexcept;
337 const UnsignedLength& minClearance,
338 const QVector<Path>& locations) noexcept;
340 const UnsignedLength& minClearance,
341 const QVector<Path>& locations) noexcept;
343 const Polygon& polygon,
344 const UnsignedLength& minClearance,
345 const QVector<Path>& locations) noexcept;
347 const Circle& circle,
348 const UnsignedLength& minClearance,
349 const QVector<Path>& locations) noexcept;
351 const UnsignedLength& minClearance,
352 const QVector<Path>& locations) noexcept;
354 const DrcMsgCopperBoardClearanceViolation& other) noexcept
355 : RuleCheckMessage(other) {}
357
358private:
359 static QString getPolygonMessage(const UnsignedLength& minClearance) noexcept;
360 static QString getPolygonDescription() noexcept;
361};
362
363/*******************************************************************************
364 * Class DrcMsgCopperHoleClearanceViolation
365 ******************************************************************************/
366
371 Q_DECLARE_TR_FUNCTIONS(DrcMsgCopperHoleClearanceViolation)
372
373public:
374 // Constructors / Destructor
377 const UnsignedLength& minClearance,
378 const QVector<Path>& locations) noexcept;
379 DrcMsgCopperHoleClearanceViolation(const BI_Device& device, const Hole& hole,
380 const UnsignedLength& minClearance,
381 const QVector<Path>& locations) noexcept;
383 const DrcMsgCopperHoleClearanceViolation& other) noexcept
384 : RuleCheckMessage(other) {}
386
387private:
388 static QString getMessage(const UnsignedLength& minClearance) noexcept;
389 static QString getDescription() noexcept;
390};
391
392/*******************************************************************************
393 * Class DrcMsgCopperInKeepoutZone
394 ******************************************************************************/
395
400 Q_DECLARE_TR_FUNCTIONS(DrcMsgCopperInKeepoutZone)
401
402public:
403 // Constructors / Destructor
405 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
406 const BI_Device* zoneDevice, const Zone* deviceZone,
407 const BI_FootprintPad& pad,
408 const QVector<Path>& locations) noexcept;
409 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
410 const BI_Device* zoneDevice, const Zone* deviceZone,
411 const BI_Via& via,
412 const QVector<Path>& locations) noexcept;
413 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
414 const BI_Device* zoneDevice, const Zone* deviceZone,
415 const BI_NetLine& netLine,
416 const QVector<Path>& locations) noexcept;
417 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
418 const BI_Device* zoneDevice, const Zone* deviceZone,
419 const BI_Polygon& polygon,
420 const QVector<Path>& locations) noexcept;
421 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
422 const BI_Device* zoneDevice, const Zone* deviceZone,
423 const BI_Device& device, const Polygon& polygon,
424 const QVector<Path>& locations) noexcept;
425 DrcMsgCopperInKeepoutZone(const BI_Zone* boardZone,
426 const BI_Device* zoneDevice, const Zone* deviceZone,
427 const BI_Device& device, const Circle& circle,
428 const QVector<Path>& locations) noexcept;
430 : RuleCheckMessage(other) {}
431 virtual ~DrcMsgCopperInKeepoutZone() noexcept {}
432
433private:
434 void addZoneApprovalNodes(const BI_Zone* boardZone,
435 const BI_Device* zoneDevice,
436 const Zone* deviceZone) noexcept;
437 static QString getDescription() noexcept;
438};
439
440/*******************************************************************************
441 * Class DrcMsgDrillDrillClearanceViolation
442 ******************************************************************************/
443
448 Q_DECLARE_TR_FUNCTIONS(DrcMsgDrillDrillClearanceViolation)
449
450public:
451 // Constructors / Destructor
453 DrcMsgDrillDrillClearanceViolation(const BI_Base& item1, const Uuid& hole1,
454 const BI_Base& item2, const Uuid& hole2,
455 const UnsignedLength& minClearance,
456 const QVector<Path>& locations);
458 const DrcMsgDrillDrillClearanceViolation& other) noexcept
459 : RuleCheckMessage(other) {}
461
462private: // Methods
463 static void serializeObject(SExpression& node, const BI_Base& item,
464 const Uuid& hole);
465};
466
467/*******************************************************************************
468 * Class DrcMsgDrillBoardClearanceViolation
469 ******************************************************************************/
470
475 Q_DECLARE_TR_FUNCTIONS(DrcMsgDrillBoardClearanceViolation)
476
477public:
478 // Constructors / Destructor
481 const UnsignedLength& minClearance,
482 const QVector<Path>& locations) noexcept;
484 const PadHole& hole,
485 const UnsignedLength& minClearance,
486 const QVector<Path>& locations) noexcept;
488 const UnsignedLength& minClearance,
489 const QVector<Path>& locations) noexcept;
490 DrcMsgDrillBoardClearanceViolation(const BI_Device& device, const Hole& hole,
491 const UnsignedLength& minClearance,
492 const QVector<Path>& locations) noexcept;
494 const DrcMsgDrillBoardClearanceViolation& other) noexcept
495 : RuleCheckMessage(other) {}
497
498private: // Methods
499 static QString getMessage(const UnsignedLength& minClearance) noexcept;
500 static QString getDescription() noexcept;
501};
502
503/*******************************************************************************
504 * Class DrcMsgDeviceInCourtyard
505 ******************************************************************************/
506
511 Q_DECLARE_TR_FUNCTIONS(DrcMsgDeviceInCourtyard)
512
513public:
514 // Constructors / Destructor
516 DrcMsgDeviceInCourtyard(const BI_Device& device1, const BI_Device& device2,
517 const QVector<Path>& locations) noexcept;
519 : RuleCheckMessage(other) {}
520 virtual ~DrcMsgDeviceInCourtyard() noexcept {}
521};
522
523/*******************************************************************************
524 * Class DrcMsgOverlappingDevices
525 ******************************************************************************/
526
531 Q_DECLARE_TR_FUNCTIONS(DrcMsgOverlappingDevices)
532
533public:
534 // Constructors / Destructor
536 DrcMsgOverlappingDevices(const BI_Device& device1, const BI_Device& device2,
537 const QVector<Path>& locations) noexcept;
539 : RuleCheckMessage(other) {}
540 virtual ~DrcMsgOverlappingDevices() noexcept {}
541};
542
543/*******************************************************************************
544 * Class DrcMsgDeviceInKeepoutZone
545 ******************************************************************************/
546
551 Q_DECLARE_TR_FUNCTIONS(DrcMsgDeviceInKeepoutZone)
552
553public:
554 // Constructors / Destructor
556 DrcMsgDeviceInKeepoutZone(const BI_Zone* boardZone,
557 const BI_Device* zoneDevice, const Zone* deviceZone,
558 const BI_Device& device,
559 const QVector<Path>& locations) noexcept;
561 : RuleCheckMessage(other) {}
562 virtual ~DrcMsgDeviceInKeepoutZone() noexcept {}
563
564private:
565 void addZoneApprovalNodes(const BI_Zone* boardZone,
566 const BI_Device* zoneDevice,
567 const Zone* deviceZone) noexcept;
568 static QString getDescription() noexcept;
569};
570
571/*******************************************************************************
572 * Class DrcMsgExposureInKeepoutZone
573 ******************************************************************************/
574
579 Q_DECLARE_TR_FUNCTIONS(DrcMsgExposureInKeepoutZone)
580
581public:
582 // Constructors / Destructor
584 DrcMsgExposureInKeepoutZone(const BI_Zone* boardZone,
585 const BI_Device* zoneDevice,
586 const Zone* deviceZone,
587 const BI_FootprintPad& pad,
588 const QVector<Path>& locations) noexcept;
589 DrcMsgExposureInKeepoutZone(const BI_Zone* boardZone,
590 const BI_Device* zoneDevice,
591 const Zone* deviceZone, const BI_Via& via,
592 const QVector<Path>& locations) noexcept;
593 DrcMsgExposureInKeepoutZone(const BI_Zone* boardZone,
594 const BI_Device* zoneDevice,
595 const Zone* deviceZone, const BI_Polygon& polygon,
596 const QVector<Path>& locations) noexcept;
597 DrcMsgExposureInKeepoutZone(const BI_Zone* boardZone,
598 const BI_Device* zoneDevice,
599 const Zone* deviceZone, const BI_Device& device,
600 const Polygon& polygon,
601 const QVector<Path>& locations) noexcept;
602 DrcMsgExposureInKeepoutZone(const BI_Zone* boardZone,
603 const BI_Device* zoneDevice,
604 const Zone* deviceZone, const BI_Device& device,
605 const Circle& circle,
606 const QVector<Path>& locations) noexcept;
608 : RuleCheckMessage(other) {}
609 virtual ~DrcMsgExposureInKeepoutZone() noexcept {}
610
611private:
612 void addZoneApprovalNodes(const BI_Zone* boardZone,
613 const BI_Device* zoneDevice,
614 const Zone* deviceZone) noexcept;
615 static QString getDescription() noexcept;
616};
617
618/*******************************************************************************
619 * Class DrcMsgMinimumAnnularRingViolation
620 ******************************************************************************/
621
626 Q_DECLARE_TR_FUNCTIONS(DrcMsgMinimumAnnularRingViolation)
627
628public:
629 // Constructors / Destructor
632 const UnsignedLength& minAnnularWidth,
633 const QVector<Path>& locations) noexcept;
635 const UnsignedLength& minAnnularWidth,
636 const QVector<Path>& locations) noexcept;
638 const DrcMsgMinimumAnnularRingViolation& other) noexcept
639 : RuleCheckMessage(other) {}
641};
642
643/*******************************************************************************
644 * Class DrcMsgMinimumDrillDiameterViolation
645 ******************************************************************************/
646
651 Q_DECLARE_TR_FUNCTIONS(DrcMsgMinimumDrillDiameterViolation)
652
653public:
654 // Constructors / Destructor
657 const UnsignedLength& minDiameter,
658 const QVector<Path>& locations) noexcept;
659 DrcMsgMinimumDrillDiameterViolation(const BI_Device& device, const Hole& hole,
660 const UnsignedLength& minDiameter,
661 const QVector<Path>& locations) noexcept;
663 const UnsignedLength& minDiameter,
664 const QVector<Path>& locations) noexcept;
666 const PadHole& padHole,
667 const UnsignedLength& minDiameter,
668 const QVector<Path>& locations) noexcept;
670 const DrcMsgMinimumDrillDiameterViolation& other) noexcept
671 : RuleCheckMessage(other) {}
673
674private:
675 static QString determineMessage(const PositiveLength& actualDiameter,
676 const UnsignedLength& minDiameter) noexcept;
677 static QString determineDescription(bool isVia, bool isPad) noexcept;
678};
679
680/*******************************************************************************
681 * Class DrcMsgMinimumSlotWidthViolation
682 ******************************************************************************/
683
688 Q_DECLARE_TR_FUNCTIONS(DrcMsgMinimumSlotWidthViolation)
689
690public:
691 // Constructors / Destructor
694 const UnsignedLength& minWidth,
695 const QVector<Path>& locations) noexcept;
696 DrcMsgMinimumSlotWidthViolation(const BI_Device& device, const Hole& hole,
697 const UnsignedLength& minWidth,
698 const QVector<Path>& locations) noexcept;
700 const PadHole& padHole,
701 const UnsignedLength& minWidth,
702 const QVector<Path>& locations) noexcept;
704 const DrcMsgMinimumSlotWidthViolation& other) noexcept
705 : RuleCheckMessage(other) {}
707
708private:
709 static QString determineMessage(const PositiveLength& actualWidth,
710 const UnsignedLength& minWidth) noexcept;
711 static QString determineDescription(bool isPad) noexcept;
712};
713
714/*******************************************************************************
715 * Class DrcMsgInvalidPadConnection
716 ******************************************************************************/
717
722 Q_DECLARE_TR_FUNCTIONS(DrcMsgInvalidPadConnection)
723
724public:
725 // Constructors / Destructor
727 DrcMsgInvalidPadConnection(const BI_FootprintPad& pad, const Layer& layer,
728 const QVector<Path>& locations) noexcept;
730 : RuleCheckMessage(other) {}
731 virtual ~DrcMsgInvalidPadConnection() noexcept {}
732};
733
734/*******************************************************************************
735 * Class DrcMsgForbiddenSlot
736 ******************************************************************************/
737
742 Q_DECLARE_TR_FUNCTIONS(DrcMsgForbiddenSlot)
743
744public:
745 // Constructors / Destructor
747 DrcMsgForbiddenSlot(const BI_Hole& hole,
748 const QVector<Path>& locations) noexcept;
749 DrcMsgForbiddenSlot(const BI_Device& device, const Hole& hole,
750 const QVector<Path>& locations) noexcept;
751 DrcMsgForbiddenSlot(const BI_FootprintPad& pad, const PadHole& padHole,
752 const QVector<Path>& locations) noexcept;
754 : RuleCheckMessage(other) {}
755 virtual ~DrcMsgForbiddenSlot() noexcept {}
756
757private:
758 static QString determineMessage(const NonEmptyPath& path) noexcept;
759 static QString determineDescription(const NonEmptyPath& path) noexcept;
760};
761
762/*******************************************************************************
763 * Class DrcMsgForbiddenVia
764 ******************************************************************************/
765
770 Q_DECLARE_TR_FUNCTIONS(DrcMsgForbiddenVia)
771
772public:
773 // Constructors / Destructor
775 DrcMsgForbiddenVia(const BI_Via& via,
776 const QVector<Path>& locations) noexcept;
778 : RuleCheckMessage(other) {}
779 virtual ~DrcMsgForbiddenVia() noexcept {}
780
781private:
782 static QString determineMessage(const BI_Via& via) noexcept;
783 static QString determineDescription(const BI_Via& via) noexcept;
784};
785
786/*******************************************************************************
787 * Class DrcMsgSilkscreenClearanceViolation
788 ******************************************************************************/
789
794 Q_DECLARE_TR_FUNCTIONS(DrcMsgSilkscreenClearanceViolation)
795
796public:
797 // Constructors / Destructor
800 const UnsignedLength& minClearance,
801 const QVector<Path>& locations) noexcept;
803 const DrcMsgSilkscreenClearanceViolation& other) noexcept
804 : RuleCheckMessage(other) {}
806};
807
808/*******************************************************************************
809 * Class DrcMsgUselessZone
810 ******************************************************************************/
811
816 Q_DECLARE_TR_FUNCTIONS(DrcMsgUselessZone)
817
818public:
819 // Constructors / Destructor
821 DrcMsgUselessZone(const BI_Zone& zone,
822 const QVector<Path>& locations) noexcept;
824 : RuleCheckMessage(other) {}
825 virtual ~DrcMsgUselessZone() noexcept {}
826};
827
828/*******************************************************************************
829 * Class DrcMsgUselessVia
830 ******************************************************************************/
831
835class DrcMsgUselessVia final : public RuleCheckMessage {
836 Q_DECLARE_TR_FUNCTIONS(DrcMsgUselessVia)
837
838public:
839 // Constructors / Destructor
841 DrcMsgUselessVia(const BI_Via& via, const QVector<Path>& locations) noexcept;
842 DrcMsgUselessVia(const DrcMsgUselessVia& other) noexcept
843 : RuleCheckMessage(other) {}
844 virtual ~DrcMsgUselessVia() noexcept {}
845};
846
847/*******************************************************************************
848 * Class DrcMsgDisabledLayer
849 ******************************************************************************/
850
855 Q_DECLARE_TR_FUNCTIONS(DrcMsgDisabledLayer)
856
857public:
858 // Constructors / Destructor
860 explicit DrcMsgDisabledLayer(const Layer& layer) noexcept;
862 : RuleCheckMessage(other) {}
863 virtual ~DrcMsgDisabledLayer() noexcept {}
864};
865
866/*******************************************************************************
867 * Class DrcMsgUnusedLayer
868 ******************************************************************************/
869
874 Q_DECLARE_TR_FUNCTIONS(DrcMsgUnusedLayer)
875
876public:
877 // Constructors / Destructor
879 explicit DrcMsgUnusedLayer(const Layer& layer) noexcept;
881 : RuleCheckMessage(other) {}
882 virtual ~DrcMsgUnusedLayer() noexcept {}
883};
884
885/*******************************************************************************
886 * End of File
887 ******************************************************************************/
888
889} // namespace librepcb
890
891#endif
The Board Item Base (BI_Base) class.
Definition: bi_base.h:45
The BI_Device class.
Definition: bi_device.h:57
The BI_FootprintPad class.
Definition: bi_footprintpad.h:48
The BI_Hole class.
Definition: bi_hole.h:46
Definition: bi_netline.h:46
The BI_NetLine class.
Definition: bi_netline.h:71
The BI_NetPoint class.
Definition: bi_netpoint.h:46
The BI_NetSegment class.
Definition: bi_netsegment.h:52
The BI_Plane class.
Definition: bi_plane.h:52
The BI_Polygon class.
Definition: bi_polygon.h:46
The BI_StrokeText class.
Definition: bi_stroketext.h:49
The BI_Via class.
Definition: bi_via.h:44
The BI_Zone class.
Definition: bi_zone.h:46
The Circle class.
Definition: circle.h:46
The ComponentInstance class.
Definition: componentinstance.h:54
The DrcMsgCopperBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:321
DrcMsgCopperBoardClearanceViolation(const DrcMsgCopperBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:353
static QString getPolygonDescription() noexcept
Definition: boarddesignrulecheckmessages.cpp:754
static QString getPolygonMessage(const UnsignedLength &minClearance) noexcept
Definition: boarddesignrulecheckmessages.cpp:747
virtual ~DrcMsgCopperBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:356
The DrcMsgCopperCopperClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:289
static void serializeObject(SExpression &node, const BI_Base &item, const Polygon *polygon, const Circle *circle)
Definition: boarddesignrulecheckmessages.cpp:533
DrcMsgCopperCopperClearanceViolation(const DrcMsgCopperCopperClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:301
static QString getObjectName(const NetSignal *net, const BI_Base &item, const Polygon *polygon, const Circle *circle)
Definition: boarddesignrulecheckmessages.cpp:501
static QString getLayerName(const QVector< const Layer * > &layers)
Definition: boarddesignrulecheckmessages.cpp:492
virtual ~DrcMsgCopperCopperClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:304
The DrcMsgCopperHoleClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:370
DrcMsgCopperHoleClearanceViolation(const DrcMsgCopperHoleClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:382
virtual ~DrcMsgCopperHoleClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:385
The DrcMsgCopperInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:399
DrcMsgCopperInKeepoutZone(const DrcMsgCopperInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:429
virtual ~DrcMsgCopperInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:431
The DrcMsgDeviceInCourtyard class.
Definition: boarddesignrulecheckmessages.h:510
virtual ~DrcMsgDeviceInCourtyard() noexcept
Definition: boarddesignrulecheckmessages.h:520
DrcMsgDeviceInCourtyard(const DrcMsgDeviceInCourtyard &other) noexcept
Definition: boarddesignrulecheckmessages.h:518
The DrcMsgDeviceInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:550
virtual ~DrcMsgDeviceInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:562
DrcMsgDeviceInKeepoutZone(const DrcMsgDeviceInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:560
The DrcMsgDisabledLayer class.
Definition: boarddesignrulecheckmessages.h:854
DrcMsgDisabledLayer(const DrcMsgDisabledLayer &other) noexcept
Definition: boarddesignrulecheckmessages.h:861
virtual ~DrcMsgDisabledLayer() noexcept
Definition: boarddesignrulecheckmessages.h:863
The DrcMsgDrillBoardClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:474
virtual ~DrcMsgDrillBoardClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:496
DrcMsgDrillBoardClearanceViolation(const DrcMsgDrillBoardClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:493
The DrcMsgDrillDrillClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:447
virtual ~DrcMsgDrillDrillClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:460
DrcMsgDrillDrillClearanceViolation(const DrcMsgDrillDrillClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:457
The DrcMsgEmptyNetSegment class.
Definition: boarddesignrulecheckmessages.h:192
virtual ~DrcMsgEmptyNetSegment() noexcept
Definition: boarddesignrulecheckmessages.h:201
DrcMsgEmptyNetSegment(const DrcMsgEmptyNetSegment &other) noexcept
Definition: boarddesignrulecheckmessages.h:199
The DrcMsgExposureInKeepoutZone class.
Definition: boarddesignrulecheckmessages.h:578
DrcMsgExposureInKeepoutZone(const DrcMsgExposureInKeepoutZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:607
virtual ~DrcMsgExposureInKeepoutZone() noexcept
Definition: boarddesignrulecheckmessages.h:609
The DrcMsgForbiddenSlot class.
Definition: boarddesignrulecheckmessages.h:741
DrcMsgForbiddenSlot(const DrcMsgForbiddenSlot &other) noexcept
Definition: boarddesignrulecheckmessages.h:753
virtual ~DrcMsgForbiddenSlot() noexcept
Definition: boarddesignrulecheckmessages.h:755
The DrcMsgForbiddenVia class.
Definition: boarddesignrulecheckmessages.h:769
virtual ~DrcMsgForbiddenVia() noexcept
Definition: boarddesignrulecheckmessages.h:779
DrcMsgForbiddenVia(const DrcMsgForbiddenVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:777
The DrcMsgInvalidPadConnection class.
Definition: boarddesignrulecheckmessages.h:721
DrcMsgInvalidPadConnection(const DrcMsgInvalidPadConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:729
virtual ~DrcMsgInvalidPadConnection() noexcept
Definition: boarddesignrulecheckmessages.h:731
The DrcMsgMinimumAnnularRingViolation class.
Definition: boarddesignrulecheckmessages.h:625
virtual ~DrcMsgMinimumAnnularRingViolation() noexcept
Definition: boarddesignrulecheckmessages.h:640
DrcMsgMinimumAnnularRingViolation(const DrcMsgMinimumAnnularRingViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:637
The DrcMsgMinimumBoardOutlineInnerRadiusViolation class.
Definition: boarddesignrulecheckmessages.h:171
DrcMsgMinimumBoardOutlineInnerRadiusViolation(const DrcMsgMinimumBoardOutlineInnerRadiusViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:179
virtual ~DrcMsgMinimumBoardOutlineInnerRadiusViolation() noexcept
Definition: boarddesignrulecheckmessages.h:182
The DrcMsgMinimumDrillDiameterViolation class.
Definition: boarddesignrulecheckmessages.h:650
DrcMsgMinimumDrillDiameterViolation(const DrcMsgMinimumDrillDiameterViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:669
virtual ~DrcMsgMinimumDrillDiameterViolation() noexcept
Definition: boarddesignrulecheckmessages.h:672
The DrcMsgMinimumSlotWidthViolation class.
Definition: boarddesignrulecheckmessages.h:687
virtual ~DrcMsgMinimumSlotWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:706
DrcMsgMinimumSlotWidthViolation(const DrcMsgMinimumSlotWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:703
The DrcMsgMinimumTextHeightViolation class.
Definition: boarddesignrulecheckmessages.h:231
DrcMsgMinimumTextHeightViolation(const DrcMsgMinimumTextHeightViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:240
virtual ~DrcMsgMinimumTextHeightViolation() noexcept
Definition: boarddesignrulecheckmessages.h:243
The DrcMsgMinimumWidthViolation class.
Definition: boarddesignrulecheckmessages.h:253
virtual ~DrcMsgMinimumWidthViolation() noexcept
Definition: boarddesignrulecheckmessages.h:279
DrcMsgMinimumWidthViolation(const DrcMsgMinimumWidthViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:277
The DrcMsgMissingBoardOutline class.
Definition: boarddesignrulecheckmessages.h:113
DrcMsgMissingBoardOutline() noexcept
Definition: boarddesignrulecheckmessages.cpp:156
virtual ~DrcMsgMissingBoardOutline() noexcept
Definition: boarddesignrulecheckmessages.h:121
DrcMsgMissingBoardOutline(const DrcMsgMissingBoardOutline &other) noexcept
Definition: boarddesignrulecheckmessages.h:119
The DrcMsgMissingConnection class.
Definition: boarddesignrulecheckmessages.h:86
static void serializeAnchor(SExpression &node, const BI_NetLineAnchor &anchor)
Definition: boarddesignrulecheckmessages.cpp:133
static QString getAnchorName(const BI_NetLineAnchor &anchor)
Definition: boarddesignrulecheckmessages.cpp:114
DrcMsgMissingConnection(const DrcMsgMissingConnection &other) noexcept
Definition: boarddesignrulecheckmessages.h:96
virtual ~DrcMsgMissingConnection() noexcept
Definition: boarddesignrulecheckmessages.h:98
The DrcMsgMissingDevice class.
Definition: boarddesignrulecheckmessages.h:67
DrcMsgMissingDevice(const DrcMsgMissingDevice &other) noexcept
Definition: boarddesignrulecheckmessages.h:74
virtual ~DrcMsgMissingDevice() noexcept
Definition: boarddesignrulecheckmessages.h:76
The DrcMsgMultipleBoardOutlines class.
Definition: boarddesignrulecheckmessages.h:131
virtual ~DrcMsgMultipleBoardOutlines() noexcept
Definition: boarddesignrulecheckmessages.h:139
DrcMsgMultipleBoardOutlines(const QVector< Path > &locations) noexcept
Definition: boarddesignrulecheckmessages.cpp:171
DrcMsgMultipleBoardOutlines(const DrcMsgMultipleBoardOutlines &other) noexcept
Definition: boarddesignrulecheckmessages.h:137
The DrcMsgOpenBoardOutlinePolygon class.
Definition: boarddesignrulecheckmessages.h:149
DrcMsgOpenBoardOutlinePolygon(const DrcMsgOpenBoardOutlinePolygon &other) noexcept
Definition: boarddesignrulecheckmessages.h:157
virtual ~DrcMsgOpenBoardOutlinePolygon() noexcept
Definition: boarddesignrulecheckmessages.h:160
The DrcMsgOverlappingDevices class.
Definition: boarddesignrulecheckmessages.h:530
virtual ~DrcMsgOverlappingDevices() noexcept
Definition: boarddesignrulecheckmessages.h:540
DrcMsgOverlappingDevices(const DrcMsgOverlappingDevices &other) noexcept
Definition: boarddesignrulecheckmessages.h:538
The DrcMsgSilkscreenClearanceViolation class.
Definition: boarddesignrulecheckmessages.h:793
DrcMsgSilkscreenClearanceViolation(const DrcMsgSilkscreenClearanceViolation &other) noexcept
Definition: boarddesignrulecheckmessages.h:802
virtual ~DrcMsgSilkscreenClearanceViolation() noexcept
Definition: boarddesignrulecheckmessages.h:805
The DrcMsgUnconnectedJunction class.
Definition: boarddesignrulecheckmessages.h:211
virtual ~DrcMsgUnconnectedJunction() noexcept
Definition: boarddesignrulecheckmessages.h:221
DrcMsgUnconnectedJunction(const DrcMsgUnconnectedJunction &other) noexcept
Definition: boarddesignrulecheckmessages.h:219
The DrcMsgUnusedLayer class.
Definition: boarddesignrulecheckmessages.h:873
DrcMsgUnusedLayer(const DrcMsgUnusedLayer &other) noexcept
Definition: boarddesignrulecheckmessages.h:880
virtual ~DrcMsgUnusedLayer() noexcept
Definition: boarddesignrulecheckmessages.h:882
The DrcMsgUselessVia class.
Definition: boarddesignrulecheckmessages.h:835
virtual ~DrcMsgUselessVia() noexcept
Definition: boarddesignrulecheckmessages.h:844
DrcMsgUselessVia(const DrcMsgUselessVia &other) noexcept
Definition: boarddesignrulecheckmessages.h:842
The DrcMsgUselessZone class.
Definition: boarddesignrulecheckmessages.h:815
DrcMsgUselessZone(const DrcMsgUselessZone &other) noexcept
Definition: boarddesignrulecheckmessages.h:823
virtual ~DrcMsgUselessZone() noexcept
Definition: boarddesignrulecheckmessages.h:825
The Hole class.
Definition: hole.h:45
The Layer class provides all supported geometry layers.
Definition: layer.h:40
The Length class is used to represent a length (for example 12.75 millimeters)
Definition: length.h:83
The NetSignal class.
Definition: netsignal.h:50
The PadHole class.
Definition: padhole.h:44
The Polygon class.
Definition: polygon.h:45
The RuleCheckMessage class.
Definition: rulecheckmessage.h:45
const QString & getDescription() const noexcept
Definition: rulecheckmessage.h:64
const QString & getMessage() const noexcept
Definition: rulecheckmessage.h:63
The SExpression class.
Definition: sexpression.h:69
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:58
The Zone class.
Definition: zone.h:43
Definition: occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition: length.h:812
type_safe::constrained_type< Path, NonEmptyPathConstraint, NonEmptyPathVerifier > NonEmptyPath
Definition: path.h:221
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition: length.h:696