Как написать исключение правила в KiCad на примере Courtyard overlap
Вступление

В KiCad для отслеживания допустимого расстояния между компонентами используется отдельный слой контура посадочного места Courtyard (англ. Внутренний двор). Обычно он является прямоугольником или контуром с отступом 0.1 мм – 1.0 мм от края 3D тела и контактных площадок.

Наиболее частое недопонимание возникает как-раз таки из-за ошибки Courtyard overlap (англ. наложение, перекрытие), когда контуры двух разных компонентов накладываются друг на друга, что означает слишком близком расположение мест (которое может повлиять на возможность сборки и общую плотность расположения, допустимые места).

Как это выглядит?
Во время перемещения посадочного места, благодаря красной подсветке, очень наглядно видно, когда контуры пересекаются:

Но в в некоторых случаях вызывающее предупреждение расположение может быть полностью оправдано, здесь простой пример с контрольной точкой в виде прямоугольника:
- ❕ У контрольной точки присутствует контур для невозможности размещения под корпусом или слишком близко
- ❕ В данном случае контур можно было бы уменьшить, но тогда может быть наложение шелка

И конечно же во время проверки платы на ошибки (DRC) вы получите в таком месте указатель на Courtyard overlap:

Конечно, можно было бы просто вырубить в настройках проверку на пересечение контуров или вручную отредачить какой-то (иногда это оправдано) или просто забить на кучку ошибок:

Но такие действия могут привести к потери важного и действительно нужного обнаружения или другие необходимые предупреждения затеряются в пучине, поэтому правильнее всего просто написать исключение.
Пишем исключение
1) Заходим в настройки платы: File -> Board Setup

2) Переходим в Design Rules -> Custom Rule и видим перед собой пустое поле для ввода кода:

3) Копируем отсюда этот код, как видим он не особо замысловатый и довольно понятный:
(version 1)
(rule "TEST POINT EXCEPTION"
(constraint courtyard_clearance (min -2mm))
(condition "A.Reference=='TP1'")
)
- (version 1) – просто ставим это (требование KiCad)
- rule – начало нового правила и рядом условное название для этого правила
- constraint – название правила и значение
- condition – (условие) ставим чтобы это правило применялось только к компоненту с позиционным обозначением (Reference) TP1
4) Вставляет его и нажимаем на кнопку проверки (проверки синтаксиса)

5) В папке с проектом создастся файл с расширение .kicad_dru который и будет содержать все пользовательские правила проекта

6) Проверяем опять и вуаля – ошибок нет

Выводы
- Отключать или игнорировать такую важную проверку как допустимое расстояние для компонентов недопустимо.
- В случаях, когда выявленное предупреждение явно не должно быть таковым – пишем для него единственного исключение в правилах