# Pcbnew

The KiCad Team

Руководство пользователя

Авторские права

Авторские права © 2010-2015 на данный документ принадлежит его разработчикам (соавторам), перечисленным ниже. Документ можно распространять и/или изменять в соответствии с правилами лицензии GNU General Public License (http://www.gnu.org/licenses/gpl.html), версии 3 или более поздней, или лицензии типа Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), версии 3.0 или более поздней.

Все торговые знаки этого руководства принадлежат его владельцам.

Соавторы

Jean-Pierre Charras, Fabrizio Tappero.

Перевод

Барановский Константин <baranovskiykonstantin@gmail.com>, 2017-2019

Обратная связь

Оставить свои комментарии или замечания можно на следующих ресурсах:

- О документации KiCad: https://github.com/KiCad/kicad-doc/issues

- О программном обеспечении KiCad: https://bugs.launchpad.net/kicad

- О переводе программного обеспечения KiCad: https://github.com/KiCad/kicad-i18n/issues

Дата публикации

17 марта 2014 года

## 1. Введение

### 1.1. Описание

Pcbnew — это мощное приложение для проектирования печатных плат, доступное на операционных системах Linux, Microsoft Windows и Apple OS X. Pcbnew используется совместно с редактором электрических схем Eeschema.

Pcbnew позволяет управлять библиотеками посадочных мест. Каждое посадочное место представляет собой графическое изображение компонента с контактными площадками. Все необходимые посадочные места автоматически загружаются при считывании списка цепей. Любое исправление назначенных посадочных мест или обозначений при редактировании схемы можно обновить в Pcbnew путём повторной генерации списка цепей и последующего его считывания в Pcbnew.

Pcbnew предоставляет инструмент для проверки правил проектирования (DRC), который проверяет зазоры между дорожками и контактными площадками, а также следит чтобы все соединения из списка цепей схемы были проложены верно. При использовании инструмента интерактивной трассировки, проверка правил проектирования выполняется непрерывно, чтобы помочь правильно проложить каждую дорожку.

Pcbnew предоставляет возможность отображать связи — тонкие линии, соединяющие контактные площадки посадочных мест в соответствии с соединениями в схеме. При перемещении дорожек или посадочных мест, эти связи также динамически перемещаются.

Pcbnew имеет простой, но очень эффективный трассировщик, помогающий при проектировании печатных плат. Экспорт/импорт в формат SPECCTRA dsn позволяет использовать более продвинутые автоматические трассировщики.

Pcbnew предоставляет специальные инструменты для проектирования СВЧ цепей (таких как контактные площадки трапециевидной или сложной формы, автоматическая разводка катушек индуктивности на слоях печатной платы и т.п.).

### 1.2. Основные особенности проектирования

Наименьшей единицей измерения в Pcbnew является 1 нанометр. Все размеры хранятся в виде целого числа нанометров.

Pcbnew может создавать до 32 слоёв меди, 14 технических слоёв (слои шелкографии, паяльной маски, клея для фиксации компонентов, паяльной пасты и контуров печатной платы) плюс 4 вспомогательных слоя (для графических элементов и комментариев) и при этом отображать связи не разведённых соединений в реальном времени.

Элементы печатной платы (дорожки, контактные площадки, текст, графические элементы …) могут отображаться по разному:

- Полностью или только контур.

- С или без зазора для дорожек.

В сложных схемах можно выборочно скрывать слои, зоны и компоненты для улучшения читабельности. Дорожки определённых цепей можно подсвечивать для обеспечения большей контрастности.

Посадочные места можно поворачивать на произвольный угол, кратный 0.1 градуса.

Pcbnew содержит Редактор посадочных мест, который позволяет редактировать отдельные посадочные места, расположенные на печатной плате, или посадочные места из библиотеки.

Редактор посадочных мест предоставляет множество инструментов ускоряющих работу:

- Быстрая нумерация контактных площадок путём простого перетаскивания курсора мыши над ними.

- Простое создание прямоугольных или круговых массивов контактных площадок для LGA/BGA или круглых посадочных мест.

- Полу-автоматическое выравнивание рядов или колонок посадочных мест.

Контактные площадки посадочных мест имеют множество свойств, которые можно настраивать. Они могут быть круглыми, прямоугольными, овальными или трапециевидными. Сквозные отверстия в контактных площадках могут быть круглой или овальной формы и смещены от центра контактной площадки. Каждое посадочное место может быть повёрнуто и иметь собственную паяльную маску, цепь или зазор паяльной пасты. Также, контактные площадки могут иметь цельные соединения или соединяться с помощью терморазгрузочных мостиков для упрощения производства. В одном посадочном месте может содержаться любая комбинация из уникальных контактных площадок.

Pcbnew легко формирует все документы, необходимые для производства печатных плат:

- Форматы для производства:

  - Files for Photoplotters in GERBER RS274X format.

  - Files for drilling in EXCELLON format.

- Черчение в форматах HPGL, SVG и DXF.

- Черчение и создание карт сверловки в формате POSTSCRIPT.

- Печать на принтере.

### 1.3. Основные замечания

Для более комфортной работы в Pcbnew крайне рекомендуется использовать мышь с тремя кнопками. Много инструментов управления отображением, такие как панорамирование и масштаб, требуют наличие третей (средней) кнопки.

В новых версиях KiCad, Pcbnew получил множество кардинальных изменений от разработчиков CERN. Они содержат такие свойства как новые режимы отображения (OpenGL и Cairo), интерактивный трассировщик, позволяющий сдвигать уже разведённые дорожки при прокладке новой (т.н. "push and shove"), добавлять дифференциальные пары и формировать меандр для выравнивания длины дорожек, переработан Редактор посадочных мест и много другого. Примите к сведению, что большинство этих свойств доступны только в новых режимах отображения OpenGL и Cairo).

## 2. Установка

### 2.1. Установка программного обеспечения

Процедура установки описана в документации к KiCad.

### 2.2. Изменение настроек по умолчанию

Файл настроек kicad.pro со значениями по умолчанию располагается в каталоге kicad/share/template. Он используется в качестве стандартной конфигурации для всех новых проектов.

Данный файл настроек можно отредактировать, чтобы изменить перечень загружаемых по умолчанию библиотек.

Для этого:

- Запустите Pcbnew непосредственно или используя KiCad. На ОС Windows исполняемый файл Pcbnew расположен в C:\kicad\bin\pcbnew.exe, на ОС Linux  — в /usr/local/kicad/bin/pcbnew если установка производилась в каталог /usr/local/.

- Выберете Настройки - Библиотекa.

- Отредактируйте как необходимо.

- Сохраните изменённые настройки в kicad/share/template/kicad.pro через меню Настройки.

### 2.3. Управление библиотеками посадочных мест: устаревшая версия

Начиная с версии 4.0, управление библиотеками посадочных мест в Pcbnew выполняется с помощью файлов, называемых "таблицами библиотек посадочных мест". Таблица библиотек посадочных мест содержит описание некого количества отдельных библиотек, вместе с "псевдонимами" для каждой из них, которые используются для указания того, к какой библиотеке принадлежит посадочное место.

В Pcbnew поддерживается несколько типов библиотек, каждый из которых обслуживается отдельным "плагином":

- KiCad - библиотеки посадочных мест в формате, разработанном специально для KiCad. Они хранятся в локальной файловой системе в формате .pretty (каталоги с файлами .kicad_mod)

- Github - библиотеки посадочных мест KiCad в формате .pretty, которые хранятся в сети, в Github-репозиториях

- Legacy - устаревший формат библиотек посадочных мест для KiCad (файлы с расширением .mod)

- Eagle - библиотеки посадочных мест в формате Eagle (каталоги с файлами .fp)

- Geda-PCB - библиотеки в формате Geda PCB

Замечание | Сохранять библиотеки посадочных мест на локальный диск можно только в формате .pretty (включая файлы посадочных мест с расширением .kicad_mod, хранящиеся внутри). Все остальные форматы доступны только для чтения.

Это позволяет иметь посадочные места с одинаковыми именами из разных библиотек. Имена посадочных мест в приложении представляются в виде комбинации имени библиотеки и имени самого посадочного места, это позволяет загружать верное посадочное место из соответствующей библиотеки.

Присутствует два типа таблиц библиотек посадочных мест: одна глобальная, вторая для проекта.

#### 2.3.1. Глобальная таблица библиотек посадочных мест

Глобальная таблица библиотек посадочных мест содержит перечень библиотек, которые доступны всегда, независимо от загруженного в данный момент проекта. Эта таблица хранится в домашнем каталоге пользователя в виде файла fp-lib-table. Расположение домашнего каталога зависит от используемой операционной системы.

#### 2.3.2. Таблица библиотек посадочных мест проекта

Таблица библиотек посадочных мест проекта содержит перечень библиотек, которые относятся только к загруженному в данный момент проекту. Эту таблицу можно редактировать только после загрузки файла проекта печатной платы. Если же проект печатной платы не загружен или таблица библиотек проекта отсутствует, то будет создана пустая таблица, которую можно отредактировать и сохранить рядом с файлом проекта печатной платы.

После добавления элементов в таблицу библиотек проекта, файл fp-lib-table, содержащий эти элементы, будет записан в тот же каталог, в котором хранится файл открытой в данный момент печатной платы.

#### 2.3.3. Первоначальная настройка

При первом запуске CvPcb или Pcbnew файл глобальной таблицы посадочных мест fp-lib-table отсутствует в домашнем каталоге пользователя. Pcbnew попытается скопировать содержимое файла fp_global_table со значениями по умолчанию из системного каталога шаблонов KiCad в домашний каталог в файл fp-lib-table. Если же файл fp_global_table не удастся найти, то будет создана пустая глобальная таблица библиотек посадочных мест. В таком случае пользователь может самостоятельно копировать содержимое fp_global_table или настроить созданную таблицу вручную.

По умолчанию глобальная таблица содержит все стандартные библиотеки посадочных мест, которые устанавливаются как составляющая часть KiCad.

Подсказка | Также имеются примеры файлов fp-lib-table в официальном репозитории библиотек KiCad, которые можно использовать в качестве шаблона при построении личной таблицы: Все библиотеки KiCad из Github-репозитория: fp-lib-table.for-github Все библиотеки KiCad, при условии, что они уже содержатся на диске (в противном случае, их необходимо загрузить): fp-lib-table.for-pretty Стандартные библиотеки Eagle (для Eagle 6.4.0) fp-lib-table.for-eagle-6.4.0

Первым делом при настройке KiCad, нужно изменить эту таблицу (добавить или удалить элементы) в соответствии с предъявленными требованиями к работе и перечнем необходимых для составления проектов.

Подсказка | Может потребоваться много времени на загрузку большого количества библиотек, особенно, если все они расположены в сети (такие, как Github-библиотеки). Если библиотеки загружаются очень долго, можно попробовать удалить ненужные.

#### 2.3.4. Добавление элементов таблицы с помощью менеджера библиотек

Менеджер библиотек доступен через меню:

На изображении ниже показано диалоговое окно для редактирования таблиц библиотек посадочных мест, которое вызывается с помощью пункта "Менеджер библиотек посад.мест" из меню "Настройки".

Для того чтобы воспользоваться библиотекой, её сначала нужно добавить либо в глобальную таблицу, либо в таблицу проекта. Таблица проекта актуальна только при открытом файле печатной платы.

Каждый элемента таблицы имеет уникальное имя. Оно должно быть уникальным в пределах таблицы. Это имя не обязательно связывать как либо с реальным именем файла библиотеки или путём к нему.

Далее приведены некоторые правила для корректного построения элементов таблицы:

- Символ двоеточия : нельзя использовать для уникального имени.

- Каждый элементы библиотеки должен иметь корректно указанный путь и/или имя файла, в зависимости от типа библиотеки. Путь можно указывать как абсолютный, относительный или с применением переменных окружения (см. ниже).

- Должен быть указан подходящий тип плагина, для того чтобы библиотека была загружена верно.

Также имеется поля описания для указания комментария к элементу библиотеки. Поле параметров может содержать специальные опции, которые зависят от типа плагина, но обычно оно остаётся пустым.

Ко всему прочему, не допускается наличие дубликатов уникальных имён библиотек в одной таблице, но можно иметь дублирующиеся имена в разных таблицах, глобальной и таблице проекта. Элемента таблицы проекта, в таком случае, будет иметь больший приоритет, чем элемент из глобальной таблицы.

#### 2.3.5. Подстановка переменных окружения

Одно из самых мощных свойств таблицы библиотек посадочных мест — это подстановка переменных окружения. Они позволяют определять в переменных окружения произвольные пути к месту хранения личных библиотек.

Для подстановки переменных окружения используется синтаксис ${ENV_VAR_NAME} в поле пути к библиотеке посадочных мест.

Далее приведены некоторые переменные окружения, которые KiCad определяет по умолчанию:

- $KISYSMOD: она указывает на место, где располагаются библиотеки посадочных мест, установленные вместе с KiCad. Пользователь может определить собственную переменную $KISYSMOD, подменив таким образом стандартные библиотеки на свои собственные.

- Если загружен файл печатной платы, определяется переменная окружения $KPRJMOD, в которой хранится путь к загруженному файлу платы. Это позволяет пользователю ссылаться на библиотеки, расположенные в каталоге с проектом, без использования абсолютных путей, и не исправлять каждый раз таблицу проекта.

#### 2.3.6. Добавление элементов таблицы с помощью мастера

Имеется интерактивный мастер, который может помочь добавить библиотеки в таблицы пользователя. От доступен через меню:

Также, его можно запустить из менеджера библиотек, используя кнопку "Добавить с помощью мастера".

В показанном примере будут добавлены локальные библиотеки:

А в этом примере будут добавлены удалённые библиотеки:

Далее мастер проведёт пользователя через несколько этапов для добавления библиотеки, которые зависят от типа выбранной библиотеки. Процесс для каждого типа будет описан далее.

После выбора нужных библиотек появится страница для подтверждения сделанного выбора:

Если какая-то библиотека содержит ошибки (не поддерживается, не является библиотекой …) то она будет помечена как «НЕВЕРНЫЙ».

Последнее что необходимо выбрать это таблицу, в которую нужно добавить выбранные библиотеки:

- глобальную таблицу или

- таблицу проекта

##### Добавление существующих локальных библиотек

На локальном компьютере уже должны присутствовать библиотеки. Например:

- Предварительно загруженные pretty-каталоги KiCad

- Обычные .mod-файлы с устаревшей установленной версии KiCad

- Библиотеки от Geda или Eagle

Их можно добавить с помощью опции "Файлы на моём компьютере". Будет запрошен каталог, содержащий библиотеки, и их формат:

Если формат не будет указан, то мастер попытается определить его самостоятельно.

##### Добавление библиотек из Github

Мастер, также, может добавить библиотеки из Github при выборе опции "Github репозиторий".

Нужно указать учётную запись Github с репозиторием, который нужно добавить.

Подсказка | Официальная учётная запись KiCad с Github-библиотеками: https://github.com/KiCad

Можно включить сохранение локальной копии. Если параметр сохранения локальной копии не установлен, то библиотека будет загружаться из Github при каждом запросе. Если же параметр установлен, то библиотека загрузится на диск и будет восприниматься как pretty библиотека KiCad, в дальнейшем она автоматически обновляться не будет.

На следующем этапе будет загружен перечень всех .pretty-репозиториев, найденных в указанной учетной записи Github. Можно отметить лишь необходимые библиотеки для добавления.

После подтверждения, если была установлена опция сохранения локальной копии, посадочные места будут загружены в указанный каталог. Если же используется Github-плагин (без локальной копии), то посадочные места будут загружаться при необходимости.

#### 2.3.7. Применение плагина KiCad

Плагин KiCad работает с родными библиотеками KiCad, которые находятся на компьютере пользователя (или в доступной файловой системе).

Он используется для предварительно установленных библиотек, которые распространяются вместе с KiCad, так же, как и другие библиотеки KiCad: официальный набор библиотек KiCad, библиотеки от сторонних разработчиков или библиотеки, созданные самим пользователем.

##### Установка библиотек для KiCad-плагина

Мастер может помочь установить библиотеки, которые уже имеются на диске или на сервере Github. Но в любом случае, библиотеки имеющиеся на диске, необходимо сначала поместить в подходящее место.

Библиотека KiCad — это каталог, содержащий некоторое количество файлов с расширением .kicad_mod.

Они обычно создаются при распаковке архива, копировании каталога из другого места или при клонировании репозитория с помощью системы контроля версий.

Плагин KiCad не требует никакой системы контроля версий, но Git очень часто используют для отслеживания изменений в библиотеках, что может существенно помочь в оценке качества библиотек и при резервном копировании.

При этом легко отслеживать изменения и помогать в развитии официальных библиотек KiCad на Github. Все это делается с помощью системы контроля версий Git. Если хотите помочь, нужно создать ответвление (fork) репозиторя на Github, чтобы можно было отправлять предлагаемые изменения (pull requests). Если же пользователь желает только обновлять библиотеки при необходимости, то ответвление создавать не нужно, достаточно просто клонировать непосредственно библиотеки KiCad и загружать изменения (pull) при надобности.

Замечание | Отправка изменений (pull request) через Github позволит автоматически проверить корректность предлагаемых изменений с помощью системы автоматической проверки стандартов библиотек. Для получения более подробной информации о требованиях к библиотекам смотрите KiCad Library Conventions.

#### 2.3.8. Применение плагина GitHub

Плагин GitHub — это особый плагин, который реализует интерфейс доступа (только чтение) к удалённым репозиториям GitHub, которые содержат посадочные места в формате .pretty и, при необходимости, предоставляет механизм "копирования при записи" (COW — Copy-On-Write), который позволяет редактировать посадочные места из таких библиотек путём их загрузки с репозиториев GitHub и сохранения локально на ПК.

Важно | Плагин "Github" — служит для удалённого доступа к библиотекам с посадочными местами pretty в режиме только для чтения с https://github.com. Пользователю не сообщается об изменениях в репозитории с момента его последнего использования. Поэтому, нужно соблюдать осторожность при использовании посадочных мест прямо из Github.

Чтобы добавить элемент таблицы библиотек посадочных мест типа Github, необходимо в поле "Путь библиотеки" указать верный веб-адрес Github-репозитория.

Например:

    https://github.com/liftoff-sr/pretty_footprints

Обычно веб-адрес GitHub имеет следующую форму:

    https://github.com/user_name/repo_name

В поле "Тип плагина" необходимо указать "Github".

Показанная ниже таблица библиотек посадочных мест содержит элемент с параметрами по умолчанию (без поддержки COW):

Уникальное имя | Путь библиотеки | Тип плагина | Параметры | Описание
--- | --- | --- | --- | ---
github | https://github.com/liftoff-sr/pretty_footprints | Github |  | Посад.места от Liftoff GH

##### COW — копирование при записи

Чтобы активировать функцию "копирования при записи" (COW), нужно добавить опцию allow_pretty_writing_to_this_dir в графе "Параметры" элемента таблицы библиотек посадочных мест. Эта опция подобна "Пути библиотеки", она указывает на локальное хранилище изменённых копий посадочных мест, загруженных из репозитория GitHub. Посадочные места, сохранённые по указанному пути, дополняются оставшейся частью посадочных мест доступных только для чтения из репозитория GitHub, образуя таким образом единую библиотеку. При отсутствии указанной опции, GitHub-библиотека доступна только для чтения. Если же опция указана, то все изменённые посадочные места из этой гибридной библиотеки будут сохраняться локально в указанный *.pretty-каталог.

Часть посадочных мест гибридной COW-библиотеки, которая хранится на github.com всегда доступна только для чтения, то есть из неё невозможно удалить что-нибудь или непосредственно изменить какое-либо посадочное место в указанном GitHub-репозитории. В последующем описании комбинированные библиотеки будут называться просто "GitHub", но при этом подразумевается, что они позволяют локальное чтение/запись и удаленный доступ только для чтения.

В таблице ниже показан элемент таблицы библиотек посадочных мест в котором задана COW-опция. Заметьте, применённая переменная окружения ${HOME} используется только в качестве примера. Каталог github.pretty расположен по пути ${HOME}/pretty/path. Всегда, используя опцию allow_pretty_writing_to_this_dir, нужно заранее создавать указанный каталог с суффиксом .pretty.

Уникальное имя | Путь библиотеки | Тип плагина | Параметры | Описание
--- | --- | --- | --- | ---
github | https://github.com/liftoff-sr/pretty_footprints | Github | allow_pretty_writing_to_this_dir= ${HOME}/pretty/github.pretty | Посад.места от Liftoff GH

При загрузке посадочного места всегда будет отдаваться преимущество локальной версии, найденной в каталоге, указанном в опции allow_pretty_writing_to_this_dir. После первого же изменения посадочного места и сохранения его в локальном каталоге COW-библиотеки с помощью Редактора посадочных мест, любые обновления этого посадочного места из GitHub будут недоступны.

Всегда создавайте отдельные *.pretty-каталоги для каждой GitHub-библиотеки, никогда не объединяйте их, указывая один и тот же каталог для нескольких библиотек. Также не стоит использовать общий *.pretty-каталог для опции COW в нескольких элементах таблицы. Это приведёт к путанице. Значение опции allow_pretty_writing_to_this_dir можно дополнять переменными среды, используя синтаксис ${}, указывая путь таким же образом как это делается в графе "Путь библиотеки".

##### Использование функции копирования при записи для распространения посадочных мест

Какой смысл в COW? Если пользователи будут периодически отправлять свои исправленные посадочные места из COW-каталогов управляющим репозитория GitHub, то они смогут обновить их копии на GitHub. Достаточно просто отправить отдельные *.kicad_mod-файлы из своих COW-каталогов управляющему репозитория GitHub. После получения подтверждения о принятии изменений и внесения их в репозиторий, пользователь может спокойно удалить свои локальные копии этих посадочных мест и использовать обновлённые удалённые посадочные места из GitHub-библиотеки, доступной только для чтения. Пользователь должен стремиться к тому, чтобы количество посадочных мест в его локальных COW-каталогах было как можно меньше, отправляя как можно чаще свои копии на https://github.com.

Подсказка | Также можно помочь в разработке библиотек используя локальные git-копии соответствующих библиотек, подключенных через KiCad-плагин. Предлагать изменения можно непосредственно управляющему официальным репозиторием.

##### Кэширование запросов к Github

Плагин Github может работать медленно, так как ему требуется загружать все библиотеки из сети Интернет, прежде чем ими воспользоваться.

Для ускорения загрузки удалённых посадочных мест можно использовать Nginx, который будет кэшировать данные из сервера github. Его можно установить локально или на сетевой сервер. Пример конфигурации находится в исходных кодах KiCad в каталоге pcbnew/github/nginx.conf. Наиболее простой способ заставить его работать — заменить файл nginx.conf со значениями по умолчанию на указанный выше и выполнить export KIGITHUB=http://my_server:54321/KiCad, где my_server— IP или домен машины, на которой выполняется nginx.

#### 2.3.9. Варианты использования

Библиотеки посадочных мест можно сделать глобальными или специфическими для загруженного в данный момент проекта. Библиотеки, занесённые в глобальную таблицу всегда доступны, а информация о них хранится в файле fp-lib-table в домашнем каталоге пользователя. Глобальные библиотеки посадочных мест доступны даже когда список цепей проекта на загружен. А таблица библиотек посадочных мест проекта активна лишь для загруженного файла списка цепей. Таблица проекта хранится в файле fp-lib-table в том же каталоге, что и загруженный в данный момент файл печатной платы. Пользователь может вносить библиотеки в любую из таблиц.

Далее приведены преимущества и недостатки разных методов:

- Можно определить все библиотеки в глобальной таблице, при этом все посадочные места всегда будут доступны в каждом из проектов.

  - The disadvantage of this is that you may have to search through a lot of libraries to find the footprint you are looking for.

- Можно определять только нужные библиотеки в таблице проекта.

  - The advantage of this is that you only need to define the libraries you actually need for the project which cuts down on searching.

  - The disadvantage is that you always have to remember to add each footprint library that you need for every project.

- Также можно определять библиотеки посадочных мест одновременно в обеих таблицах, в глобальной и в таблице проекта.

Более удобным вариантом будет использовать глобальную таблицу для определения библиотек, которые используются везде, а специфические библиотеки, нужные только в конкретном проекте, определять в таблице проекта. Но, в любом случае, нет строгих указаний как пользователь должен определять свои библиотеки.

##### Редактирование посадочных мест непосредственно на печатной плате

При добавлении посадочного места на печатную плату, все его данные копируются в файл печатной платы (.kicad_pcb). Это значит, что изменения библиотеки не будут автоматически отражаться на печатной плате.

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

К тому же, если изменить посадочное место в библиотеке, то при следующем его добавлении на печатную плату, оно будет отличаться от того, что уже установлено на плате.

Подсказка | Обычно поступают так. Копируют все используемые посадочные места в отдельный каталог, находящийся под системой контроля версий, и таким образом проект оберегается от возможных изменений в стандартных библиотеках или библиотеках пользователя. Также, это позволяет собрать все необходимые ресурсы для построения печатной платы в одном месте и распространять их без проблем.

## 3. Основные инструменты

### 3.1. Команды и панели инструментов

В Pcbnew команды можно выполнять разными способами с помощью:

- меню в верхней части главного окна

- верхней панели инструментов

- правой панели инструментов

- левой панели инструментов

- мыши (контекстное меню). А именно:

  - The right mouse button reveals a pop-up menu the content of which depends on the element under the mouse arrow.

- клавиатуры (функциональные клавиши F1, F2, F3, F4, Shift, Delete, +, -, Page Up, Page Down и Пробел). Клавиша Escape используется в основном для прерывания текущей операции.

На изображении ниже видны некоторые элементы интерфейса открывающие доступ к командам:

### 3.2. Управление мышью

#### 3.2.1. Основные команды

- Левая кнопка

  - Single-click displays the characteristics of the footprint or text under the cursor in the lower status bar.

  - Double-click displays the editor (if the element is editable) of the element under the cursor.

- Средняя кнопка (колесо)

  - Rapid zoom and some commands in layer manager.

  - Hold down the centre button and draw a rectangle to zoom to the described area. Rotation of the mouse wheel will allow you to zoom in and zoom out.

- Правая кнопка

  - Displays a pop-up menu

#### 3.2.2. Работа с блоками

Любая из операций по перемещению, отражению, копированию, вращению и удалению блока доступна в контекстном меню. Дополнительно, область, выделенную блоком, можно масштабировать во всё окно.

Контур блока перемещается вместе с мышью пока нажата левая кнопка мыши. Команда выполнится как только кнопка будет отпущена.

Путём нажатия одной из клавиш-модификаторов Shift, Ctrl, или обеих вместе, при выделении блока, автоматически выбираются операции по отражению, вращению или удалению, как показано в следующей таблице:

Действие | Результат
--- | ---
Нажата левая кнопка мыши | Перемещение блока
Нажаты Shift и левая кнопка мыши | Отражение блока
Нажаты Ctrl и левая кнопка мыши | Поворот блока на 90°
Нажаты Shift, Ctrl и левая кнопка мыши | Удаление блока
Нажата средняя кнопка мыши | Масштабирование блока во всё окно

При перемещении блока:

- Перетаскивайте блок в новую позицию и с помощью левой кнопки мыши расположите элементы.

- Чтобы прервать операцию используйте правую кнопку мыши и выберите пункт "Отмена блока" в контекстном меню (или нажмите клавишу Esc).

Если при выделении блока не была нажата ни одна из клавиш-модификаторов, используйте правую кнопку мыши для вызова контекстного меню и выбора необходимого действия.

При каждом выделении блока можно ограничить выбор элементами, типы которых отмечены в появляющемся диалоговом окне.

### 3.3. Выбор шага сетки

В процессе трассировки курсор перемещается по сетке. Её можно включить или выключить используя кнопку на левой панели инструментов.

Любой предустановленный или пользовательский шаг сетки можно выбрать из контекстного меню или выпадающего списка на верхней панели инструментов. Шаг пользовательской сетки задаётся через меню Размеры → Сетка пользователя.

### 3.4. Масштабирование

Масштаб можно изменить используя любой из следующих способов:

- Через контекстное меню (используя правую кнопку мыши), выбрав пункт с нужным значением.

- Используя следующие функциональные клавиши:

  - F1: Enlarge (zoom in)

  - F2: Reduce (zoom out)

  - F3: Redraw the display

  - F4: Centre view at the current cursor position

- Вращая колесо мыши.

- Зажав среднюю кнопку мыши и выделив прямоугольную область для увеличения во всё окно.

### 3.5. Отображение координат курсора

Координаты курсора отображаются в дюймах или миллиметрах. Единицы измерения выбираются с помощью кнопок In или mm на левой панели инструментов.

Независимо от выбранной единицы измерения Pcbnew всегда работает с точностью 1/10 000 дюйма.

На информационной панели в нижней части окна отображается:

- Текущее значение масштаба.

- Абсолютные координаты курсора.

- Относительные координаты курсора. Заметьте, относительные координаты (x,y) можно установить в (0,0) в любой позиции нажатием клавиши пробел. После этого, положение курсора будет отображаться по отношению к этому новому центру.

Дополнительно, относительные координаты курсора могут отображаться в полярных координатах (радиус + угол). Они включаются и выключаются с помощью кнопки на левой панели инструментов.

### 3.6. Управление с клавиатуры

Множество команд можно выполнять прямо с клавиатуры. Регистр символов не имеет значения. Большинство комбинаций клавиш указано в меню. Некоторые горячие клавиши там не указаны:

- Delete: удалить посадочное место или дорожку. (Доступно только в режиме расположения посадочных мест или дорожек)

- V: в режиме добавления дорожек переключает рабочий слой или добавляет переходное отверстие, если начата прокладка дорожки.

- + и -: перейти на следующий или предыдущий слой.

- ?: отобразить список всех комбинаций клавиш.

- Пробел: сбросить относительные координаты.

### 3.7. Операции над блоками

Любая из операций по перемещению, отражению, копированию, вращению и удалению блока доступна в контекстном меню. Дополнительно, область, выделенную блоком, можно масштабировать во всё окно.

Контур блока перемещается вместе с мышью пока нажата левая кнопка мыши. Команда выполнится как только кнопка будет отпущена.

Путём нажатия одной из клавиш-модификаторов Shift, Ctrl, обеих вместе или Alt, при выделении блока, автоматически выбираются операции по отражению, вращению, удалению или копированию, как показано в следующей таблице:

Действие | Результат
--- | ---
Нажата левая кнопка мыши | Перемещение блока
Нажаты Shift и левая кнопка мыши | Отражение блока
Нажаты Ctrl и левая кнопка мыши | Поворот блока на 90°
Нажаты Shift, Ctrl и левая кнопка мыши | Удаление блока
Нажаты Alt и левая кнопка мыши | Копирование блока

После выделения блока будет показано диалоговое окно, в котором можно определить типы элементов, к которым будет применена операция.

Любая из перечисленных команд может быть прервана с помощью контекстного меню или нажатием клавиши Escape (Esc).

### 3.8. Формат единиц измерения

В полях ввода диалоговых окон пользователь может задавать размеры в дюймах или миллиметрах. Единицы измерения в основном окне можно переключать с помощью кнопок: . Независимо от этого, можно использовать любую единицу измерения при вводе нового значения.

Доступные единицы измерения:

1 in | 1 дюйм
1 " | 1 дюйм
25 th | 25 тысячных дюйма
25 mi | 25 мил (тысячная дюйма)
6 mm | 6 миллиметров

Правила использования:

- Допускается наличие пробелов между числом и единицей измерения.

- Только первые два символа в названии единицы измерения имеют значение.

- В странах, использующих в качестве десятичного разделителя символ отличный от точки, всё равно можно можно использовать точку (.). Т.е. 1,5 и 1.5 эквивалентны, например, во Франции.

### 3.9. Главное меню

Главное меню предоставляет доступ к командам над файлами (загрузка и сохранение), настройки параметров, печати, черчению и файлам помощи.

#### 3.9.1. Меню Файл

Меню файл позволяет загружать и сохранять файл печатных плат, а также производить их печать и черчение. С его помощью можно выполнить экспорт платы в файл формата GenCAD 1.4 для автоматизированной проверки.

#### 3.9.2. Меню Правка

Содержит общие команды редактирования:

#### 3.9.3. Меню Просмотр

Позволяет:

- Показать/спрятать Менеджер слоёв (в котором можно установить цвет отображения каждого из слоёв и других элементов; также позволяет скрывать некоторые элементы).

- Показать/скрыть панель инструментов для работы ВЧ-сигналами.

- Запустить просмотрщик библиотек или 3D-просмотрщик

- Изменить масштаб

- Настроить сетку и единицы измерения

- Выбрать режим отображения или контрастный режим

Содержит команды масштабирования и отображение в 3-х мерном виде.

##### 3D-просмотрщик

Открывает окно для просмотра печатной платы в 3-х мерном виде. Пример:

#### 3.9.4. Меню Установки

Предоставляет доступ к двум диалоговым окнам:

- Настройка слоёв (количество, видимость и названия).

- Правка правил проектирования (размеры дорожек, зазоров и переходных отверстий).

Очень важное меню, позволяет настроить:

- Размеры надписей и ширину линий для черчения.

- Размеры и параметры контактных площадок.

- Установить общие значения для слоёв паяльной маски и паяльной пасты.

#### 3.9.5. Меню Разместить

Содержит те же команды, что и правая панель инструментов.

#### 3.9.6. Меню Трассировать

Содержит команды трассирования печатной платы.

#### 3.9.7. Меню Проверить

Позволяет:

- Просмотреть список цепей

- Запустить инструмент измерения

- Запустить проверку правил проектирования

#### 3.9.8. Меню Инструменты

Позволяет:

- Открыть диалог загрузки списка цепей

- Обновить печатную плату на основе схемы

- Обновить посадочные места из библиотеки

- Начать совместную работу с FreeRouter

- Открыть консоль для работы с python-скриптами

- Запустить внешние плагины

#### 3.9.9. Меню Настройки

Позволяет:

- Выбирать библиотеки посадочных мест.

- Управлять основными настройками (единицами измерения и т.п.).

- Управлять прочими настройками отображения.

- Создавать, редактировать (и перезагружать) файл комбинаций клавиш.

#### 3.9.10. Меню Справка

Предоставляет доступ к руководству пользователя и диалоговому окну со сведениями о программе).

### 3.10. Верхняя панель инструментов

Эта панель предоставляет доступ к главным командам Pcbnew.

| Создать новую печатную плату.
| Открыть существующую печатную плату.
| Сохранить печатную плату.
| Выбор формата листа и изменение параметров файла.
| Открыть Редактор посадочных мест для редактирования посадочных мест из библиотеки или из платы.
| Открыть Просмотрщик посадочных мест для просмотра посадочных мест из библиотеки или из платы.
| Отмена/Повтор последней команды (до 10 шт.).
| Открыть диалог печати.
| Открыть диалог черчения.
| Увеличить или уменьшить масштаб (по отношению к центру окна).
| Обновить изображение.
| Вместить в окне.
| Найти посадочное место или текст.
| Обработка списка цепей (выбор, считывание, тестирование и компиляция).
| Проверка правил проектирования (DRC): Автоматическая проверка дорожек.
| Выбор рабочего слоя.
| Выбор пары слоёв (для переходных отверстий).
| Режим посадочных мест: при активации добавляет команды в контекстное меню для обработки посадочных мест.
| Режим трассировки: при активации добавляет команды в контекстное меню для разводки печатной платы.
| Прямой доступ к трассировщику Freerouter.
| Показать/Скрыть консоль скриптов на языке Python.

#### 3.10.1. Вспомогательная панель инструментов

| Выбор ширины для новых дорожек.
| Выбор размера для новых переходных отверстий.
| Автоматическая подстройка ширины дорожки: если активна, ширина новой дорожки, которая начинается из существующей, будет установлена равной ширине существующей.
| Выбор шага сетки.
| Выбор масштаба.

### 3.11. Правая панель инструменов

Эта панель предоставляет доступ к инструментам редактирования печатных плат в Pcbnew.

|  | Select the standard mouse mode.
| Highlight net selected by clicking on a track or pad.
| Display local ratsnest (Pad or Footprint).
| Add a footprint from a library.
| Placement of tracks and vias.
| Placement of zones (copper planes).
| Placement of keepout areas ( on copper layers ).
| Draw Lines on technical layers (i.e. not a copper layer).
| Draw Circles on technical layers (i.e. not a copper layer).
| Draw Arcs on technical layers (i.e. not a copper layer).
| Placement of text.
| Draw Dimensions on technical layers (i.e. not the copper layer).
| Draw Alignment Marks (appearing on all layers).
| Delete element pointed to by the cursor Note: When Deleting, if several superimposed elements are pointed to, priority is given to the smallest (in the decreasing set of priorities tracks, text, footprint). The function "Undelete" of the upper toolbar allows the cancellation of the last item deleted.
| Offset adjust for drilling and place files.
| Grid origin. (grid offset). Useful mainly for editing and placement of footprints. Can also be set in Dimensions/Grid menu.

- Размещение посадочных мест, дорожек, зон меди, текстов и т.п.

- Подсветка цепей.

- Создание надписей, графических элементов и т.п.

- Удаление элементов.

### 3.12. Левая панель инструментов

Эта панель позволяет управлять отображением и элементами графического интерфейса Pcbnew.

|  | Turns DRC (Design Rule Checking) on/off. Caution: when DRC is off incorrect connections can be made.
| Turn grid display on/off Note: a small grid may not be displayed unless zoomed in far enough
| Polar display of the relative co-ordinates on the status bar on/off.
| Display/entry of coordinates or dimensions in inches or millimeters.
| Change cursor display shape.
| Display general rats nest (incomplete connections between footprints).
| Display footprint rats nest dynamically as it is moved.
| Enable/Disable automatic deletion of a track when it is redrawn.
| Show filled areas in zones
| Do not show filled areas in zones
| Show only outlines of filled areas in zones
| Display of pads in outline mode on/off.
| Display of vias in outline mode on/off.
| Display of tracks in outline mode on/off.
| High contrast display mode on/off. In this mode the active layer is displayed normally, all the other layers are displayed in gray. Useful for working on multi-layer circuits.
| Hide/Show the Layers manager
| Access to microwaves tools. Under development

### 3.13. Контекстное меню

Щелчок правой кнопкой мыши вызывает контекстное меню. Его содержимое зависит от элемента, над которым был размещён курсор.

Контекстное меню предоставляет мгновенный доступ к:

- Инструментам управления изображением (центровать по курсору, масштабирование).

- Параметрам сетки.

- А также, щелчок правой кнопкой мыши по элементу позволяет редактировать его часто изменяемые параметры.

На следующих изображениях будет показано как может выглядеть всплывающее окно контекстного меню.

### 3.14. Возможные режимы

Существует 3 режима, в которых используется контекстное меню. В каждом из этих режимов команды добавляются или удаляются из всплывающего меню.

и выключены | Нормальный режим
включён | Режим посадочных мест
включён | Режим трассировки

#### 3.14.1. Нормальный режим

- Контекстное меню без выделенных элементов:

- Контекстное меню для дорожки:

- Контекстное меню для посадочного места:

#### 3.14.2. Режим посадочных мест

Те же случаи, но в режиме посадочных мест:

- Контекстное меню без выделенных элементов:

- Контекстное меню для дорожки:

- Контекстное меню для посадочного места:

#### 3.14.3. Режим трассировки

Те же случаи, но в режиме трассировки:

- Контекстное меню без выделенных элементов:

- Контекстное меню для дорожки:

- Контекстное меню для посадочного места:

## 4. Взаимодействие со схемой

### 4.1. Связывание схемы с печатной платой

В общем случае, лист схемы связан со своей печатной платой через файл списка цепей, который обычно формируется в редакторе схем после её построения. Pcbnew поддерживает файлы списка цепей, созданные в Eeschema или Orcad PCB 2. В файле списка цепей, созданном на основе схемы, обычно отсутствуют посадочные места, соответствующие разным компонентам. Следовательно, необходима промежуточная процедура. В процессе этой промежуточной процедуры выполняется связывание компонента с определённым посадочным местом. В KiCad, CvPcb используется для создания этих связей и формирования файла *.cmp. Также CvPcb используется для обновления файла списка цепей на основе данной информации.

Ко всему прочему, CvPcb может создавать файл материалов *.stf ("stuff file"), с помощью которого возможно загрузить в схему значения полей F2 (посад.место) для каждого компонента, что освобождает от необходимости повторного назначения посадочных мест при каждом изменении схемы. При копировании компонента в Eeschema, также копируется значение назначенного посадочного места, а обозначение сбрасывается для дальнейшей повторной аннотации.

Pcbnew считывает изменённый файл списка цепей *.net и, если существует, файл *.cmp. Если посадочные места редактировались в Pcbnew, то содержимое файла *.cmp обновляется автоматически, без необходимости повторно запускать CvPcb.

Чтобы понять процесс проектирования в KiCad и то, как используются временные файлы различными приложениями, входящими в пакет программ KiCad, нужно обратиться к разделу Маршрут проектирования в KiCad из руководства "Начало работы с KiCad".

### 4.2. Процесс создания печатной платы

После создания схемы в Eeschema:

- Создайте список цепей используя Eeschema.

- Назначьте каждому компоненту из файла списка цепей своё посадочное место (англ. —footprint) используя CvPcb.

- Запустите Pcbnew и загрузите созданный файл списка цепей (англ. — netlist). При этом также будет загружен файл с выбранными посадочными местами.

Затем, Pcbnew автоматически загрузит все необходимые посадочные места. Теперь можно разместить эти посадочные места на печатной плате вручную или автоматически и приступить к трассировке.

### 4.3. Процесс обновления печатной платы

Если схема изменилась (после того, как печатная плата была создана), необходимо выполнять следующие действия:

- Сформировать новый файл списка цепей используя Eeschema.

- Если при редактировании схемы, в неё были добавлены новые компоненты, соответствующие им посадочные места должны быть назначены с помощью CvPcb.

- Запустить Pcbnew и перезагрузить изменившийся файл списка цепей (при этом будут заново загружены назначенные посадочные места).

Pcbnew автоматически загрузит новые посадочные места, добавит новые соединения и удалит лишние. Этот процесс называется прямой аннотацией и используется очень часто при обновлении печатной платы после внесённых изменений.

### 4.4. Считывание файла списка цепей - загрузка посадочных мест

#### 4.4.1. Диалоговое окно

Открывается с помощью кнопки

#### 4.4.2. Доступные параметры

Выбор посад.места | Связь компонента с соответствующим ему посадочным местом осуществляется по: Обозначению (стандартное значение) или Временной метке (используется при изменении обозначений компонентов в схеме).
Замена посад.места | Если выбор посадочного места изменился в списке цепей, можно оставить старое посадочное место или заменить на новое.
Неподключенные дорожки | Оставить все существующие дорожки или удалить не подключенные.
Дополнительные посад.места | Удалить посадочные места, расположенные на печатной плате, но отсутствующие в списке цепей. Заблокированные посадочные места останутся нетронутыми.
Цепь с одной конт.пл. | Удалить дорожки, подключенные лишь к одной контактной площадке.

#### 4.4.3. Загрузка новых посадочных мест

При обнаружении новых посадочных мест в списке цепей и включённом режиме GAL, они будут загружены, компактно размещены и готовы к расположению на печатной плате в виде блока.

При обнаружении новых посадочных мест в списке цепей в стандартном режиме отображения, они будут автоматически загружены и размещены в точке с координатами (0,0).

Новые посадочные места можно переместить и расположить один за одним. Наилучший путь при этом — воспользоваться инструментом автоматического размещения:

Активировать режим посадочных мест ( )

Переместить курсор на пустое место (свободное от компонентов) и нажать правую кнопку мыши:

- Авт. разместить новые посад.места — если на печатной плате уже имеются посадочные места.

- Авт. разместить все посад.места — при первом использовании (когда печатная плата только создается).

На следующем изображении показан результат.

## 5. Слои

### 5.1. Введение

Pcbnew может работать с 50-ю различными слоями:

- От 1 до 32 слоёв меди для размещения дорожек.

- 14 специализированных технических слоёв:

  - 12 пар слоёв (верх/низ): клей, паяльная паста, шелкография, паяльная маска, габариты, монтаж

  - 2 самостоятельных слоя: контур платы, контур области монтажа

- 4 вспомогательных слоя, которые пользователь может использовать по своему усмотрению: комментарии, пользовательский 1, пользовательский 2, графические элементы

### 5.2. Настройка слоёв

Чтобы открыть диалоговое окно Настройка слоев, выберите в меню Правила проектирования → Настройка слоев.

Количество слоёв меди, их названия и назначение настраиваются здесь. Неиспользуемые технические слои можно отключить.

### 5.3. Описание слоёв

#### 5.3.1. Слои меди

Слои меди — это наиболее часто используемые слои, на которых размечаются дорожки. Они нумеруются начиная с 0 (первый слой меди находится сверху) и заканчивая 31 (нижний). Так как компоненты не могут монтироваться на внутренних слоях (номера от 1 до 30), то только слои 0 и 31 считаются слоями компонентов.

Название любого слоя меди можно редактировать. Слои меди имеют особые атрибуты, которые могут быть полезными при использовании стороннего трассировщика Freerouter. Например, название 0-го слоя по умолчанию F.Cu, но можно переименовать в In0.

#### 5.3.2. Парные технические слои

12 технических слоёв идут парами: один верхний, второй нижний. Их можно распознать по префиксам в названиях "F." (от англ. Front — передний) и "B." (от англ. Back — задний). При перемещении посадочного места на противоположную сторону платы, элементы из которых оно состоит (контактные площадки, графические элементы, надписи) автоматически отражаются и перемещаются на парные слои, соответствующие исходным.

Пары технических слоёв:

Клей (Adhesive): F.Adhes и B.Adhes

  Они используются для нанесения клея, с помощью которого фиксируются SMD-компоненты на печатной плате. Обычно это делается перед пайкой в инфракрасной печи.

Паяльная паста (Solder Paste): F.Paste и B.Paste

  Используются для обозначения пределов, в которых должна быть нанесена паяльная паста на контактные площадки при поверхностном монтаже компонентов пайкой методом оплавления. Обычно, только контактные площадки поверхностного монтажа попадают на эти слои.

Шелкография (Silk Screen): F.SilkS и B.SilkS

  Это те слои, на которых изображаются контуры компонентов. Т.е. место где указывается полярность компонентов, обозначается точка отсчёта выводов, пояснения к монтажу и т.п.

Паяльная маска (Solder Mask): F.Mask и B.Mask

  Эти слои формируют паяльную маску. Все контактные площадки должны присутствовать минимум на одном слое (SMT) или на обоих (контактные площадки со сквозными отверстиями), чтобы избежать нанесения защитного слоя на контакты.

Область монтажа (Courtyard): F.CrtYd и B.CrtYd

  Используются для указания того, сколько физического места занимает компонент на печатной плате.

Производственные слои (Fabrication): F.Fab и B.Fab

  Слои производства используются, в основном, для размещения информации, передаваемой, к примеру, производителю печатных плат или в отдел по сборке.

#### 5.3.3. Независимые технические слои

Контур платы: Edge.Cuts

  Этот слой выделен специально для обозначения контура печатной платы. Любые элементы (графика, текст, …), размещенные на этом слое, отображаются на всех остальных слоях. Используйте этот слой только для изображения контуров платы.

Габбариты: Margin

  Обозначает область монтажа компонентов на печатной плате (?).

#### 5.3.4. Слои для общего пользования

Эти слои могут использоваться для любых целей. Их можно использовать для размещения текста, содержащего инструкцию по сборке, пайке или для нанесения чертежей, которые можно использовать для создания фалов сборки или обработки. Названия этих слоёв следующие:

- Comments

- E.C.O. 1

- E.C.O. 2

- Drawings

### 5.4. Выбор рабочего слоя

Выбрать слой для работы можно несколькими способами:

- Используя правую панель инструментов (Менеджер слоёв).

- Используя верхнюю панель инструментов.

- С помощью контекстного меню (вызывается щелчком правой кнопки мыши).

- Используя клавиши + и - (применительно только к слоям меди).

- Используя горячие клавиши.

#### 5.4.1. Выбор с помощью менеджера слоёв

#### 5.4.2. Выбор с помощью верней панели инструментов

Здесь рабочий слой выбирается непосредственно.

Также, отображаются горячие клавиши для переключения.

#### 5.4.3. Выбор с помощью контекстного меню

Из контекстного меню вызывается диалоговое окно, которое позволяет выбрать необходимый рабочий слой.

### 5.5. Выбор слоёв для переходных отверстий

Если выбран инструмент Добавить дорожки и перех.отв. на правой панели инструментов, в контекстном меню появляется опция, позволяющая настроить пару слоёв для размещения контактных площадок переходных отверстий:

Выбор этой опции открывает диалоговое окно, в котором можно назначить слои для переходных отверстий.

После размещения переходного отверстия, рабочий (активный) слой автоматически переключается на противоположный, из выбранной пары слоёв (если только при этом клавиша Shift не зажата).

С одного слоя можно переключаться на другой с помощью горячих клавиш и, если при этом дорожка находится в процессе трассировки, будет вставлено переходное отверстие.

### 5.6. Использование контрастного режима отображения

Этот режим активируется с помощью кнопки на левой панели инструментов:

При использовании этого режима, активный слой отображается в нормальном виде, а все остальные — в сером цвете.

Есть два полезных способа применения:

#### 5.6.1. Слой меди в контрастном режиме

Если печатная плата состоит из более чем четырёх слоёв, этот режим позволяет существенно повысить читабельность:

Нормальный режим (нижний слой меди выбран активным):

Контрастный режим (нижний слой меди выбран активным):

#### 5.6.2. Технические слои

Другой случай, когда необходимо рассмотреть слои паяльной пасты или паяльной маски, которые, обычно, не отображаются.

При активации данного режима отображаются маски контактных площадок.

Нормальный режим (верхний слой паяльной маски выбран активным):

Контрастный режим (верхний слой паяльной маски выбран активным):

## 6. Создание и редактирование печатной платы

### 6.1. Создание печатной платы

#### 6.1.1. Черчение контура печатной платы

Лучше всегда начинать создание печатной платы с черчения её контуров. Этот контур изображается как последовательность прямых отрезков. Выберите Edge.Cuts в качестве рабочего слоя и используйте инструмент Добавить графическую линию или полигон для изображения контуров. При этом, щелчок мыши добавляет вершину, а двойной щелчок завершает линию. Платы обычно имеют точные размеры, поэтому отслеживание координат курсора, при черчении контура, будут очень полезны. Помните, относительные координаты можно сбросить в любой момент нажатием клавиши Пробел, а единицы измерения переключаются с помощью комбинации клавиш Ctrl-U. Относительные координаты позволяют добиться высокой точности при черчении. Существует возможность создавать круглые контуры (или в виде дуги):

1. Выберите инструмент Добавить графическую окружность или Добавить графическую дугу

2. Щелчком мыши установите центр окружности

3. Перемещая курсор мыши задайте необходимый радиус

4. Ещё одни щелчок мыши завершит создание окружности

Замечание | Толщину линии контура можно изменять в главного или контекстного меню (рекомендуемая толщина = 150 в 1/10 мил). Реальная толщина линий будет показана только в том случае, если отключен контурный режим.

Готовый контур печатной платы может выглядеть так:

#### 6.1.2. Использование чертежа DXF в качестве контура платы

Альтернативой черчения контура платы непосредственно в Pcbnew является его импорт из чертежа в формате DXF.

Это свойство даёт возможность создавать более сложные контуры печатных плат, чем те, которые можно создать с применением инструментов Pcbnew.

Например, используя механические САПР, можно создать контур платы, который поместится в выбранном корпусе.

##### Подготовка чертежа DXF для импорта в KiCad

При импорте файлов в формате DXF не поддерживаются такие элементы как Ломаная линия и Эллипс. Поэтому перед использованием DXF-файлов в KiCad, необходимо выполнить некоторые операции для подготовки к импорту.

Для этих целей можно использовать LibreCAD.

На первом этапе все Ломаные линии необходимо разделить (Разрушить) на простые отрезки. В LibreCAD выполните следующие действия:

1. Откройте копию DXF-файла.

2. Выделите контур платы (выделение отобразится штриховой линией).

3. В меню Изменить выберите пункт Разрушить.

4. Нажмите клавишу ENTER.

На следующем этапе сложные кривые, такие как Эллипс, необходимо разделить на короткие отрезки прямых линий, из которых образуется нужный элемент. Подобное преобразование происходит автоматически при сохранении DXF-файла в формате DXF R12 (так как этот формат не поддерживает сложные кривые, САПР преобразует сегменты в виде отрезков. Некоторые САПР имеют возможность настраивать количество или длину отрезков). В LibreCAD длина отрезков выбрана приемлемой для использования в изображении контуров печатной платы.

В LibreCAD выполните следующие действия для экспорта файла в формате DXF R12:

1. В меню Файл выберите Сохранить как…

2. В диалоге сохранения файла выберите тип файла для сохранения (в самом низу диалогового окна). Нужный вариант —Drawing Exchange DXF R12.

3. Если необходимо, измените имя файла в соседнем поле.

4. Нажмите кнопку Сохранить.

Теперь DXF-файл готов для импорта в KiCad.

##### Импорт DXF-файлов в KiCad

Следующие инструкции описывают процесс импорта подготовленного DXF-файла в KiCad в качестве контура платы. Заметьте, процесс импорта немного отличается в различных режимах отображения.

При использовании "обычного" режима отображения:

1. В меню Файл выберите подменю Импорт, а в нём пункт DXF файл.

2. В диалоговом окне Выбор DXF файла с помощью кнопки Обзор выберите подготовленный DXF-файл для импорта.

3. С помощью параметра Разместить начальную точку (0;0) DXF: укажите место для расположения начала координат из DXF-файла по отношению к началу координат печатной платы (в KiCad начало координат располагается в верхнем левом углу). При выборе варианта Позиция определенная пользователем, введите соответствующие координаты в поля Позиция по X, Позиция по Y.

4. В поле Слой выберите слой контура печатной платы для импорта — Edge.Cuts.

5. Нажмите OK.

При использовании режимов "OpenGL" и "Cairo":

1. В меню Файл выберите подменю Импорт, а в нём пункт DXF файл.

2. В диалоговом окне Выбор DXF файла с помощью кнопки Обзор выберите подготовленный DXF-файл для импорта.

3. Значение параметра Разместить начальную точку (0;0) DXF: не имеет значения в этих режимах.

4. В поле Слой выберите слой контура печатной платы для импорта — Edge.Cuts.

5. Нажмите OK.

6. Контур закрепится под курсором и его можно перемещать по полю печатной платы.

7. С помощью щелчка мыши контур размещается на печатной плате.

##### Пример импортированного DXF-контура

Здесь приведён пример импорта контура из DXF-файла, который содержит эллиптические элементы, преобразованные в последовательность коротких прямых отрезков:

#### 6.1.3. Считывание списка цепей, сформированного из схемы

Нажмите кнопку для вызова диалогового окна загрузки списка цепей:

Если имя или путь к файлу списка цепей в заголовке окна указан не верно, выберите правильный, используя кнопку Обзор. Затем Прочитайте этот список цепей. Все посадочные места, не загруженные до сих пор, появятся наложенными друг на друга (далее будет показано как их можно разместить автоматически).

Если еще ни одно посадочное место не было размещено, то все загруженные посадочные места появятся на печатной плате в одном месте, в результате чего их будет сложно различить. Но посадочные места можно автоматически разместить (используя команду Глобальное перемещение и размещение из контекстного меню). Далее показан пример автоматического размещения:

Замечание | Если в плату были внесены изменения в виде замены типа посадочного места (например, вместо резистора мощностью 0.125 Вт нужно установить резистор 0.5 Вт) с помощью CvPcb, то Pcbnew удалит старое посадочное место перед добавлением нового. Однако, посадочные места можно легко менять используя диалог редактирования свойств посадочного места, который вызывается из контекстного меню.

### 6.2. Редактирование печатной платы

Очень часто приходится редактировать печатную плату после внесения изменений в схему устройства.

#### 6.2.1. Последовательность действий

1. Сформировать новый список цепей на основе изменённой схемы.

2. Если при этом были добавлены новые компоненты, следует назначить им соответствующие посадочные места в CvPcb.

3. Считать созданный список цепей в Pcbnew.

#### 6.2.2. Удаление повреждённых дорожек

Pcbnew может автоматически удалять дорожки, которые после внесённых изменений стали дефектными. Для этого нужно установить отметку напротив пункта Удалить для параметра Неподключенные дорожки в диалоговом окне считывания списка цепей:

Тем не менее, зачастую такие дорожки можно быстро поправить вручную (функция проверки правил проектирования позволяет их обнаружить).

#### 6.2.3. Удаление компонентов

Pcbnew может удалить посадочное место, если соответствующий ему компонент был удалён в схеме. Этой функцией можно управлять.

Управление нужно потому, что часто посадочные места (такие как отверстия для крепления печатной платы) добавляются на печатную плату и никак не отражаются на схеме.

Если параметр "Дополнительные посад.места" настроен так, то посадочные места, для которых не найдётся соответствующего компонента в списке цепей, будет удалён, при условии что он не "заблокирован". Отличным решением будет заблокировать все "механические" посадочные места:

#### 6.2.4. Замена посадочных мест

Если посадочное место было заменено в списке цепей (с помощью CvPcb), и если оно уже расположено на печатной плате, то Pcbnew не будет его менять до тех пор, пока параметр Замена посад.места не изменится в диалоговом окне чтения списка цепей:

Заменить посадочное место (например, установить резистор большего размера) можно непосредственным редактированием его свойств.

#### 6.2.5. Дополнительные параметры - идентификация по временной метке

Иногда приходится менять обозначения компонентов без внесения принципиальных изменений в схему (имеются в виду обозначения типа R5, U4 и т.п.). И, следовательно, в печатной плате ничего исправлять не нежно (кроме маркировки на слое шелкографии). Но при этом, связь между посадочным местом и компонентом выполняется по его обозначению. В таких ситуациях нужно использовать Временные метки в диалоговом окне чтения списка цепей непосредственно перед считыванием:

При выборе данного параметра, Pcbnew больше не определяет посадочные места по обозначению, вместо этого он использует временные метки. Эти метки создаются автоматически в Eeschema (они состоят из времени и даты добавления компонента в схему).

Внимание | Используя этот параметр нужно быть осторожным (сначала сохраняйте файл!). Потому что процедура усложняется при использовании компонентов, состоящих из нескольких частей (таких как 7400, содержащих 4 компонента в одном корпусе). В таких случаях, временные метки не являются уникальными (на примере с 7400, у четырёх её частей будет одинаковая метка). Тем не менее, временные метки обычно помогают решить проблемы при изменении обозначений.

### 6.3. Замена посадочных мест на печатной плате

Заменить посадочное место (или несколько подобных посадочных мест) на другое можно очень просто:

1. Дважды щёлкните по посадочному месту, чтобы открыть диалоговое окно редактирования свойств посадочного места.

2. Нажмите кнопку Изменить посад.места.

Параметры для замены посадочного места:

Нужно ввести название нового посадочного места и выбрать один из вариантов:

- Изменить посад.место на xx для текущего посадочного места.

- Изменить посад.места yy для все посадочных мест такого же типа.

- Изменить посад.места, имеющие такое же значение для всех посадочных мест такого же типа, имеющих такое же значение.

- Обновить все посад.места на плате для повторной загрузки всех посадочных мест на плате.

## 7. Размещение посадочных мест

### 7.1. Помощь при размещении

Во время перемещения посадочного места очень помогает отображение линий связей. Эти линии отображаются, когда кнопка с левой панели инструментов активна.

### 7.2. Размещение вручную

Выберите нужное посадочное место нажатием правой кнопки мыши и выполните команду Переместить из контекстного меню. Переместите посадочное место и разместите его с помощью левой кнопки мыши. При необходимости, посадочное место можно повернуть, отразить или редактировать. Для прерывания выполните команду Отмена из контекстного меню (или нажмите клавишу Esc).

Далее показано как выглядят линии связей посадочного места при перемещении:

Печатная плата с полностью размещенными посадочными местами может выглядеть так:

### 7.3. Автоматическое размещение посадочных мест

В общем, перемещать можно только не "заблокированные" посадочные места. Данный атрибут можно включать и выключать из контекстного меню (правый щелчок мыши по посадочному месту) при активном режиме посадочных мест или через редактор свойств посадочного места.

Как было указано в предыдущем разделе, новые посадочные места, загруженные при чтении списка цепей, складываются в одном месте на печатной плате. Pcbnew может автоматически разместить их так, чтобы облегчить последующий выбор и размещение.

- Включите "Режим посадочных мест" (кнопка на верхней панели инструментов).

- Контекстное меню примет следующий вид:

Если под курсором имеется посадочное место:

Если под курсором ничего нет:

В обоих случаях доступны следующие команды:

- Разложить все посад.места позволяет автоматически разместить все не заблокированные посадочные места. Эта команда обычно используется после первого чтения списка цепей.

- Разложить все посад.места, которые еще не на плате позволяет автоматически разместить посадочные места, которые ещё не были размещены внутри контура печатной платы. Для выполнения этой команды требуется, чтобы контур платы был изображен, тогда можно будет определить какие посадочные места нужно автоматически разместить.

### 7.4. Автоматическая расстановка посадочных мест

#### 7.4.1. Параметры инструмента автоматической расстановки

Инструмент автоматической расстановки позволяет распределить посадочные места на обеих поверхностях печатной платы (при этом выбор слоя меди для посадочного места не выбирается автоматически).

Он, также, выбирает лучшую ориентацию (0, 90, -90, 180 градусов) для посадочного места. Расстановка выполняется по определённому алгоритму оптимизации, при котором выбираются минимальные длины для линий соединения и обеспечивается большее пространство для посадочных мест с большим количеством выводов. Порядок размещения оптимизирован так, чтобы в первую очередь были размещены посадочные места с наибольшим числом выводов.

#### 7.4.2. Подготовка

Pcbnew может разместить посадочные места автоматически, тем не менее, необходимо составить план расстановки, так как ни одна программа не может узнать чего ожидает пользователь.

Перед автоматической расстановкой необходимо:

- Создать контур печатной платы (он может быть сложным, но должен быть замкнутым, если его форма не прямоугольная).

- Вручную разместить компоненты, позиция которых чётко определена (разъемы, монтажные отверстия и т.п.).

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

- После выполнения всех операций по размещению вручную, эти посадочные места необходимо "заблокировать", чтобы избежать их смещения. В режиме посадочных мест , нажмите правой кнопкой мыши на посадочном месте и выполните команду "Заблокировать посад.место" из контекстного меню. Это же можно выполнить в редакторе свойств посадочного места.

- После этого можно выполнить автоматическую расстановку. В режиме посадочных мест, откройте контекстное меню и в подменю Глобальное перемещение и размещение выполните команду Авт. разместить все посад.места.

В процессе автоматической расстановки, если потребуется, Pcbnew может оптимизировать ориентацию посадочных мест. Но, вращение будет возможно только в том случае, если это позволено в параметрах посадочного места (см. Редактирование параметров посадочного места).

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

Каждое посадочное место содержит один ползунок для поворота на 90 градусов и второй ползунок для поворота на 180 градусов. Установка в 0 запрещает вращение, 10 — разрешает, промежуточные значения отображают склонность к повторным вращениям.

Склонность к вращению можно установить после добавления посадочного места на плату. Но, предпочтительнее настраивать этот параметр посадочного места в библиотеке, так как тогда его значение будет наследоваться каждый раз при использовании этого посадочного места.

#### 7.4.3. Интерактивная автоматическая расстановка

В процессе автоматической расстановки может потребоваться её прервать (нажатием клавиши Esc) и переместить посадочное место вручную. Используя команду Авт. разместить следующие посад.места, можно продолжить процесс автоматической расстановки с того места, на котором она была остановлена.

Команда Авт. разместить новые посад.места позволяет автоматически расставить посадочные места, которые ещё не были размещены внутри контура печатной платы. При этом, посадочные места уже находящиеся внутри контуров платы, перемещаться не будут, даже если они не заблокированы.

Команда Авт. разместить посад.место позволяет запустить автоматическую расстановку для посадочного места, расположенного под курсором мыши, даже если оно заблокировано.

#### 7.4.4. Дополнительные примечания

Pcbnew автоматически определяет возможные зоны для размещения посадочных мест на основе формы печатной платы, которая не обязательно должна быть прямоугольной (она может быть круглой, иметь вырезы и т.п.).

Если печатная плата не прямоугольная, контур должен быть замкнут. Таким образом Pcbnew сможет определить что находится внутри, а что снаружи платы. То же касается и вырезов, их контур должен быть замкнут.

Pcbnew вычисляет возможные зоны для размещения посадочных мест используя контур платы, затем примеряет каждое посадочное место до заполнения всей площади в порядке, который соответствует оптимальному расположению.

## 8. Установка параметров трассировки

### 8.1. Текущие параметры

#### 8.1.1. Доступ к основному диалоговому окну

К самым важным параметрам можно получить доступ из главного меню:

и настроить их в диалоговом окне правки правил проектирования.

#### 8.1.2. Текущие параметры

Текущие параметры отображаются на верхней панели инструментов.

### 8.2. Общие настройки

К общим настройкам можно получить доступ через главное меню: Настройки → Общие.

Внешний вид диалогового окна показано далее:

Следующие параметры влияют на дорожки:

- Ограничить дорожки только под 45°: дорожку можно проложить только под углами 0, 45 или 90 градусов.

- Использовать дорожки со сдвоенными сегментами: при создании, дорожка будет состоять из двух сегментов.

- Удалить не подсоединенные дорожки: при исправлении дорожки, старая будет удаляться, если в ней нет необходимости.

- Притягивающая конт.пл.: при достаточном приближении курсора к контактной площадке, он займёт позицию в её центре.

- Притягивающая дорожка: при достаточном приближении курсора к краю дорожки, он займёт позицию в его центре.

### 8.3. Классы цепей

В Pcbnew можно установить параметры трассировки для каждой цепи. Эти параметры задаются для группы цепей.

- Группы цепей называют классами цепей (Netclass).

- По умолчанию все цепи принадлежат к классу "default".

- Пользователь может добавлять другие классы цепей.

Классом цепей определяется:

- Ширина дорожек, диаметры площадок и отверстий переходных отверстий.

- Зазоры между контактными площадками и дорожками (или переходными отверстиями).

- При создании или редактировании дорожки, Pcbnew автоматически выбирает соответствующий класс цепи и задействует необходимые параметры.

#### 8.3.1. Установка параметров трассировки

Выберите пункт в меню: Правила проектирования → Правила проектирования.

#### 8.3.2. Редактор классов цепей

С помощью редактора классов цепей можно:

- Добавлять и удалять классы цепей.

- Изменять значения параметров трассировки: размеры зазоров, дорожек, переходных отверстий.

- Группировать цепи в классы цепей.

#### 8.3.3. Общие правила проектирования

Общие правила проектирования позволяют:

- Разрешить/запретить использование глухих/внутренних переходных отверстий.

- Разрешить/запретить использование переходных микроотверстий.

- Установить минимально допустимые значения параметров для дорожек и переходных отверстий.

Если при проверке правил проектирования обнаружится значение меньше минимально допустимого, отобразится уведомление об ошибке. Вторая вкладка диалогового окна выглядит так:

Также, в этом диалоговом окне можно задать "стандартные" размеры для дорожек и переходных отверстий.

В процессе трассировки, можно выбирать эти значения для создаваемых дорожек и переходных отверстий, вместо указанных по умолчанию для данного класса цепей.

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

#### 8.3.4. Параметры переходных отверстий

Pcbnew работает с тремя типами переходных отверстий:

- Сквозные (обычные) переходные отверстия.

- Глухие или внутренние переходные отверстия.

- Переходные микроотверстия — похожи на глухие, но связывают один из внешних слоёв меди в ближайшим внутренним. Они используются для соединения контактных площадок BGA-корпусов с ближайшим внутренним слоем меди. Их диаметр, обычно, очень мал и отверстия выполняются с помощью лазера.

По умолчанию, все переходные отверстия имеют одинаковый диаметр сверла.

Это диалоговое окно позволяет задать минимально допустимые значения для параметров переходных отверстий. Если на печатной плате обнаружится переходное отверстие с параметрами меньше, чем допустимо, будет сформировано уведомление об ошибке.

#### 8.3.5. Параметры дорожек

Определяется минимально допустимая ширина дорожки. Если на печатной плате обнаружится дорожка с параметрами меньше, чем допустимо, будет сформировано уведомление об ошибке.

#### 8.3.6. Особые размеры

Можно ввести несколько дополнительных размеров для дорожек и переходных отверстий. При трассировке дорожки, эти значения можно использовать вместо значений, установленных для данного класса цепей.

### 8.4. Примеры и часто используемые размеры

#### 8.4.1. Ширина дорожек

Используйте максимально возможное из приведённых здесь минимальных значений.

Единицы измерения | КЛАСС 1 | КЛАСС 2 | КЛАСС 3 | КЛАСС 4 | КЛАСС 5
--- | --- | --- | --- | --- | ---
мм | 0.8 | 0.5 | 0.4 | 0.25 | 0.15
мил | 31 | 20 | 16 | 10 | 6

#### 8.4.2. Зазоры

Единицы измерения | КЛАСС 1 | КЛАСС 2 | КЛАСС 3 | КЛАСС 4 | КЛАСС 5
--- | --- | --- | --- | --- | ---
мм | 0.7 | 0.5 | 0.35 | 0.23 | 0.15
мил | 27 | 20 | 14 | 9 | 6

Обычно, минимальный зазор выбирают очень близким к минимальной ширине дорожки.

### 8.5. Примеры

#### 8.5.1. Упрощённый

- Зазор: 0.35 мм (0.0138 дюйма).

- Ширина дорожки: 0.8 мм (0.0315 дюйма).

- Диаметр контактных площадок интегральных микросхем и переходных отверстий: 1.91 мм (0.0750 дюйма).

- Диаметр контактных площадок дискретных компонентов: 2.54 мм (0.1 дюйма).

- Ширина дорожки общей цепи ("земли"): 2.54 мм (0.1 дюйма).

#### 8.5.2. Стандартный

- Зазор: 0.35 мм (0.0138 дюйма).

- Ширина дорожки: 0.5 мм (0.0127 дюйма).

- Диаметр контактных площадок для интегральных микросхем: должен быть таким, чтобы позволить проложить дорожку между выводами и при этом оставался достаточный зазор (1.27 x 2.54 мм → 0.05 x 0.1 дюймов).

- Переходные отверстия: 1.27 мм (0.0500 дюйма).

### 8.6. Ручная трассировка

В большинстве случаев, лучше выполнять трассировку вручную, так как только этот метод предоставляет контроль над построением печатной платы. Например, предпочтительнее начать с трассировки дорожек питания, сделать их достаточно широкими и короткими, в достаточной мере отделить питание аналоговой части от цифровой. После этого, нужно проложить дорожки, чувствительные к помехам. Среди прочих проблем, при автоматической трассировке часто используется много переходных отверстий. Тем не менее, автоматические трассировщики могут подсказать более оптимальное положение посадочных мест. Со временем пользователи приходят к единому мнению, что с помощью автоматического трассировщика можно быстро развести простые дорожки, а важные цепи лучше прокладывать вручную.

### 8.7. Помощь при создании дорожек

Pcbnew может отображать все линии связей, если кнопка активна.

Инструмент позволяет подсветить цепь (щелкните по контактной площадке или дорожке, чтобы подсветить соответствующую цепь).

Проверка правил проектирования контролирует дорожки при их создании в реальном времени. Это не позволяет создавать дорожки, которые не соответствуют установленным правилам. Проверку правил проектирования можно отключить щелкнув по кнопке, но это не рекомендуется, пользуйтесь этим только в особых случаях.

#### 8.7.1. Создание дорожек

Дорожку можно создать с помощью инструмента . Новая дорожка должна начинаться с контактной площадки или другой дорожки, так как Pcbnew должен знать, к какой цепи она относится (чтобы выполнить проверку правил проектирования).

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

Направление первого отрезка дорожки (по-горизонтали или по-диагонали) называют "Направлением дорожки" и её можно переключать с помощью горячей клавиши / или кнопкой .

Если зажать клавишу Ctrl при трассировке в не стандартном режиме отображения (OpenGL, Cairo), то режим дорожки переключится на создание горизонтального или вертикального сегмента. Переключение направления влияет только на диагональный сегмент. Нажатие клавиши Shift при трассировке отключает функцию притягивания к объектам.

При создании новой дорожки, Pcbnew показывает линии связей к ближайшим не подключенным контактным площадкам.

Завершить дорожку можно двойным щелчком мыши, через контекстное меню или горячей клавишей End.

#### 8.7.2. Перемещение и перетаскивание дорожек

Когда кнопка активна, дорожку, расположенную под курсором, можно переместить нажатием кнопки M. Если нужно дорожку перетащить, нужно воспользоваться клавишей G.

#### 8.7.3. Вставка переходных отверстий

Переходное отверстие можно вставить только при прокладывании дорожки:

- С помощью контекстного меню.

- Нажатием горячей клавиши V.

- Переключившись на новый слой меди с помощью соответствующей горячей клавиши.

Нажатие клавиши Shift при добавлении переходного отверстия, завершает трассировку на этом переходном отверстии. Это свойство удобно использовать при добавлении соединений между слоями меди, при этом слой не переключается и не нужно дополнительно ничего нажимать для выхода из режима трассировки.

### 8.8. Выбор/изменение ширины дорожки и размеров переходного отверстия

Если щелкнуть по дорожке или контактной площадке, Pcbnew автоматически выберет соответствующий класс цепей, а также ширинку дорожки и размеры переходного отверстия, установленные для него.

Как было показано ранее, общие правила проектирования позволяют создавать дополнительные размеры для дорожек и переходных отверстий.

- Горизонтальную панель инструментов можно использовать для выбора размеров.

- Если кнопка активна, ширину текущей дорожки можно выбрать из контекстного меню (доступно также и при создании дорожек).

- Пользователь может использовать как значения, установленное для данного класса, так и из набора дополнительных.

#### 8.8.1. Использование горизонтальной панели инструментов

| Выбор ширины дорожки. Символ * указывает на стандартное значение для текущего класса цепей.
| Процесс выбора ширины дорожки. На первой позиции списка всегда располагается стандартное значение для текущего класса цепей. Прочие значения берутся из списка, указанного в общих правилах проектирования.
| Выбор размеров переходных отверстий. Символ * указывает на стандартное значение для текущего класса цепей.
| Процесс выбора размеров переходных отверстий. На первой позиции списка всегда располагается стандартное значение для текущего класса цепей. Прочие значения берутся из списка, указанного в общих правилах проектирования.
| Если активна: Автоматический выбор ширины дорожек включён. Если дорожка начинается из уже существующей, то ширина новой дорожки будет установлена равной ширине существующей.
| Выбор шага сетки.
| Выбор масштаба.

#### 8.8.2. Использование контекстного меню

Здесь можно выбрать новый размер для трассировки или изменить созданные ранее переходные отверстия или сегменты дорожек:

Если необходимо изменить размеры нескольких переходных отверстий (или дорожек), лучше всего использовать определённые классы для цепей, которые нужно редактировать (см. глобальное редактирование).

### 8.9. Редактирование и замена дорожек

#### 8.9.1. Замена дорожки

Очень часто требуется перерисовать дорожку.

Новая дорожка (в процессе создания):

После завершения:

Pcbnew автоматически удалит старую дорожку, если в ней нет необходимости.

#### 8.9.2. Глобальное редактирование

Диалоговое окно для редактирования всех дорожек и переходных отверстий вызывается из контекстного меню дорожки:

Это диалоговое окно позволяет изменить все дорожки и/или переходные отверстия, относящиеся к:

- Текущей цепи.

- Всей печатной плате.

## 9. Интерактивный трассировщик

Интерактивный трассировщик позволяет быстро и эффективно разводить печатную плату сдвигая существующие дорожки или обходя элементы, расположенные на пути новой дорожки, которую необходимо проложить.

Поддерживаются такие режимы:

- Подсветка столкновений— подсвечиваются ярким зеленым цветом все проблемные объекты, препятствующие нормальным, и отображаются области с нарушенным зазором.

- Расталкивать— трассировщик пытается сдвинуть все элементы, которые мешают проложить новую дорожку.

- Обход препятствий— трассировщик прокладывает дорожку обходя препятствия, выдерживая величину минимально допустимого зазора.

### 9.1. Настройка

Перед использованием интерактивного трассировщика, пожалуйста, настройте следующие две вещи:

- Параметры зазора— для установки величины зазора откройте диалоговое окно Правила проектирования и убедитесь, что значение по умолчанию удовлетворяет необходимым требованиям.

- Включите режим отображения OpenGL— выберите пункт в меню Просмотр→Переключить на отображение в OpenGL или нажмите клавишу F11.

### 9.2. Трассировка дорожки

Для активации инструмента трассировки нажмите кнопку Интерактивный трассировщик или нажмите клавишу X. Курсор примет форму креста и в строке статуса появится название инструмента.

Для установки начала дорожки щелкните на любом объекте (контактной площадке, дорожке или переходном отверстии) или нажмите клавишу X ещё раз, подведя курсор мыши к одному из этих объектов. Щелчок левой кнопки мыши или нажатие клавиши X над пустым местом печатной платы создаст дорожку не принадлежащую ни к одной из цепей.

Перемещайте курсор, чтобы придать форму дорожке. Трассировщик будет пытаться следовать за курсором мыши, обходя неподвижные объекты (такие как контактные площадки) или сдвигая препятствующие дорожки и переходные отверстия, в зависимости от выбранного режима. Возвращение курсора мыши обратно приведёт к восстановлению сдвинутых элементов к исходному состоянию.

Щелчок мыши по контактной площадке, дорожке или переходному отверстию, принадлежащему той же цепи, завершит трассировку. Щелчок мыши на пустом месте зафиксирует сегмент дорожки в этой точке и трассировка дорожки продолжится.

Для того чтобы остановить трассировку и отменить все изменения (сдвиг элементов и т.п.), просто нажмите клавишу Esc.

Нажатие клавиши V или выбор пункта Разместить сквозное перех.отв. из контекстного меню, в процессе трассировки дорожки, добавит переходное отверстие в конец дорожки. Переходное отверстие не закрепляется, его можно перемещать. Повторное нажатие клавиши V отменит вставку переходного отверстия. Щелчок мыши в любом подходящем месте закрепит переходное отверстие и трассировка продолжится (если только клавиша Shift не зажата).

Нажатие клавиши / или выбор пункта Переключить положение дорожки из контекстного меню изменит направление первого сегмента дорожки из ортогонального в диагональное.

Замечание | По умолчанию, трассировщик стремится к центру или оси элемента. Это поведение можно отключить, нажав клавишу Shift в процессе трассировки или выбора элемента.

### 9.3. Настройка ширины дорожки и размера переходных отверстий

Существует несколько способов предварительного выбора размеров дорожки или переходного отверстия или их настройки в процессе трассировки:

- Использовать стандартные горячие клавиши KiCad.

- Нажать клавишу W или выбрать Польз. размер дорожки/перех.отв. из контекстного меню для ввода собственных размеров дорожки и переходного отверстия.

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

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

### 9.4. Перетаскивание

Трассировщик позволяет перетаскивать сегменты, углы дорожек и переходные отверстия. Для перетаскивания элемента, щелкните на нему с нажатой клавишей Ctrl, поместите над ним курсор и нажмите клавишу G или выберите Перетащить дорожку/перех.отв. из контекстного меню. Для завершения перетаскивания щелкните мышью в нужном месте, для отмены нажмите клавишу Esc.

### 9.5. Настройки

Поведение трассировщика можно настроить нажатием клавиши E или выбором пункта Параметры трассировщика из контекстного меню при активном инструменте создания дорожек. При этом откроется диалоговое окно, показанное ниже:

Доступны такие параметры:

- Режим— выбор метода, который будет использоваться трассировщиком для преодоления препятствий (расталкивание, обход и т.п.)

- Расталкивать перех.отв.— если отключено, переходные отверстия воспринимаются как неперемещаемые объекты и их необходимо обходить, а не сдвигать.

- Перепрыгивать через препятствия— если включено, трассировщик попытается переместить препятствующие дорожки за неподвижные объекты (на подобии контактных площадок), вместо того, чтобы просто "упереться" в них.

- Удаление лишних дорожек— удалять шунтирующие дорожки при трассировке (т.е. если новая дорожка создаёт соединение, для которого уже существует другая дорожка, то старая дорожка будет удалена). Шунтирование дорожек определяется локально, только между началом и концом текущей дорожки.

- Автоматический переход вниз— если включено, трассировщик попытается более плавно обходить контактные площадки или переходные отверстия, избегая при этом острых углов и переломов на дорожках.

- Гладко перетаскивать сегменты— если включено, трассировщик будет пытаться объединить несколько кривых сегментов в один ровный (при перетаскивании).

- Разрешить нарушения DRC (только в режиме подсветка столкновений) —  позволяет создавать дорожки, которые нарушают правила проектирования (DRC).

- Оптимизатор усилия— определяет время, предоставляемое трассировщику для выполнения расчётов по расталкиванию или обходу препятствия при прокладывании дорожки.

## 10. Создание заполненных зон

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

### 10.1. Создание зон на слоях меди

Подключение контактных площадок (и дорожек) к заполненной медной зоне контролируется механизмом проверки правил проектирования (DRC). Зона должна быть заполнена (а не просто создана) для подключения к контактным площадкам. Pcbnew в данных момент использует сегменты дорожек или полигоны для заполнения контуров зоны.

Каждый из этих методов имеет свои достоинства и недостатки, главным недостатком является увеличенное время построения изображения на слабых компьютерах. Но в конечном итоге результат выглядит одинаково.

В целях увеличения производительности, зоны не заполняются автоматически после каждого изменения, а только:

- При выполнении специальной команды для заполнения зон.

- Перед выполнением проверки правил проектирования.

Медные зоны необходимо заливать (первоначально или повторно) после редактирования дорожек или контактных площадок. Зоны, как правило, подключаются к одной из цепей (обычно к общей цепи или к шине питания).

В общем случае, для создания медной зоны необходимо:

- Установить параметры (имя цепи, слой и т.п.). Переключаться на нужный слой и подсвечивать выбранную цепь не обязательно, но эти действия могут быть полезными.

- Создать контур зоны (если этого не сделать, будет заполнена вся плата).

- Залить зону.

Pcbnew старается заполнять все зоны за один раз и, обычно, при этом отсутствуют не подключенные участки зон. Может случиться так, что некоторые участки зон останутся незаполненными. Зоны без назначенной цепи не очищаются и могут содержать изолированные области.

### 10.2. Построение зоны

#### 10.2.1. Создание контура зоны

Используйте инструмент . Активным должен быть слой меди. После щелчка левой кнопки мыши, для начала построения контура, откроется диалоговое окно, как показано ниже.

Здесь можно установить все возможные параметры для зоны:

- Цепь

- Слой

- Параметры заполнения

- Параметры контактных площадок

- Уровень приоритета

Начертите контур зоны на указанном слое. Этот контур образует полигон, вершины которого добавляются с помощью щелчка левой кнопки мыши. Двойной щелчок мыши завершит создание контура и замкнёт его. Если первая и последняя вершина не располагаются в одном месте, то Pcbnew добавит сегмент между ними.

Замечание | При построении контура зоны выполняется контроль правил проектирования. Если при размещении новой вершины будет обнаружена ошибка правил проектирования, то Pcbnew не позволит её создать.

На следующем изображении можно видеть пример контура зоны (заштрихованный тонкими линиями полигон):

#### 10.2.2. Уровень приоритета

Иногда требуется создать небольшую зону внутри большой.

Это можно сделать, если малой зоне назначить приоритет больший, чем у большой.

Установка приоритета:

Вот один из примеров:

После заполнения:

#### 10.2.3. Заполнение зон

При заполнении зоны, Pcbnew удаляет все не подключенные участки медных зон. Чтобы получить доступ к команде заполнения, необходимо нажать правую кнопку мыши на контуре зоны.

Выполните команду "Залить зону". Ниже показан результат заполнения полигона с точкой подключения внутри:

Полигон — это контур заполненной зоны. Но здесь можно видеть незаполненную область внутри зоны, потому что она недоступна:

- Дорожка образует границу

- Там нет точки подключения для заполнения этой области.

Замечание | Можно использовать несколько полигонов для создания пустых областей. Далее приведён пример:

### 10.3. Параметры заполнения

Перед заполнением зоны нужно настроить:

- Режим заливки.

- Зазор и минимальную ширину меди.

- Каким образом контактные площадки должны подключаться к зоне.

- Параметры терморазгрузки.

#### 10.3.1. Режим заполнения

Зоны можно заполнять используя полигоны или сегменты. Результат будет одинаков. Если при использовании полигонов имеются проблемы с отображением (большие задержки), нужно использовать сегменты.

#### 10.3.2. Зазор и минимальная ширина меди

Хорошим вариантом при выборе величины зазора будет размер шага сетки, выбранный немного большим, чем шаг сетки при трассировке. При выборе ширины меди нужно убедиться, что она не будет слишком малой.

Внимание | Если выбрать ширину слишком большой, то небольшие элементы, такие как мостики терморазгрузки, невозможно будет создать.

#### 10.3.3. Параметры контактных площадок

Контактные площадки, подключенные к цепи зоны, могут сливаться с ней, исключаться из зоны или соединяться с помощью термомостов.

- Если контактная площадка сливается с зоной, то припаивание и выпаивание может быть затруднено большой площадью меди, которую потребуется прогреть.

- Если контактная площадка исключена из зоны, подключение к ней может быть не очень хорошим.

  - The zone can be filled only if tracks exists to connect zone areas.

  - Pads must be connected by tracks.

- Использование терморазгрузки является оптимальным решением.

  - Pad is connected by 4 track segments.

  - The segment width is the current value used for the track width.

#### 10.3.4. Параметры терморазгрузки

Можно установить два параметра:

#### 10.3.5. Выбор параметров

Ширина меди для термомостов должна быть больше значения минимальной ширины медной зоны. Если это условие не будет соблюдено, то термомосты не будут созданы.

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

### 10.4. Добавление пустых областей внутри зон

Зона уже должна существовать. Для добавления пустой области (незаполненного участка внутри зоны):

- Щелкните правой кнопкой мыши по контуру существующей зоны.

- Выберите пункт Добавить вырезанную область.

- Создайте новый контур.

### 10.5. Редактирование контура

Чтобы изменить контур можно:

- Перемещать его углы.

- Удалять или добавлять углы.

- Дорисовывать новые участки зоны или добавлять пустые области.

Если контуры однотипных зон накладываются друг на друга, то они будут объединены.

Для редактирования нажмите правой кнопкой мыши на угол или грань контура и выберите необходимую команду.

Здесь угол контура вырезанной области был перемещён:

Здесь показан конечный результат:

Полигоны объединились.

#### 10.5.1. Добавление однотипной зоны

Процесс добавления однотипной зоны:

Конечный результат:

### 10.6. Изменение параметров зоны

Если нажать правой кнопкой мыши на контре зоны и выбрать пункт Редактировать свойства зоны из контекстного меню, откроется диалоговое окно для редактирования её параметров.

### 10.7. Окончательное заполнение зоны

Когда работа над печатной платой закончена, нужно заполнить все зоны. Для этого:

- Выберите инструмент добавления зон с помощью кнопки .

- Откройте контекстное меню нажатием правой кнопки мыши.

- Воспользуйтесь командой Залить или перезалить все зоны:

Внимание | Процесс заполнения может занять некоторое время, особенно если сетка заливки очень мала.

### 10.8. Замена цепи для зоны

После внесения исправлений в схему, имена цепей могут измениться. Например, цепь VCC может быть переименована в +5V.

При выполнении проверки правил проектирования на всей печатной плате, Pcbnew проверяет, существуют ли цепи назначенные зонам, или нет.

Может потребоваться вручную подкорректировать параметры зон, изменив старые имена цепей на новые.

### 10.9. Создание зон на технических слоях

#### 10.9.1. Создание контура зоны

Это выполняется с применением того же инструмента . Но активным должен быть технический слой.

После щелчка левой кнопки мыши для начала создания контура, откроется диалоговое окно:

Выберите один из технических слоёв для размещения зоны и начертите контур, как было описано ранее для слоёв меди.

Замечание | Для редактирования контура используйте те же методы, что и для медных зон. Если потребуется, можно добавлять пустые области.

### 10.10. Создание областей запрета

Выберите инструмент

Активным должен быть слой меди.

После щелчка левой кнопки мыши в начале контура для новой области запрета, появится диалоговое окно:

Можно выбрать запрещённые элементы:

- Дорожки.

- Переходные отверстия.

- Участки меди.

Если в области запрета окажется дорожка или переходное отверстие, будет показано уведомление о нарушении правил проектирования.

В случае с медными зонами, области запрета с установленным запретом на участки меди заполняться не будут. Области запрета подобны зонам, поэтому редактируются аналогичным образом.

## 11. Файлы для производства печатной платы

Давайте рассмотрим этапы формирования необходимых файлов для отправки на производство спроектированной печатной платы.

Все файлы, сформированные в KiCad, располагаются в рабочем каталоге, там же где расположен файл печатной платы xxxx.brd.

### 11.1. Окончательная подготовка

Для создания всех необходимых файлов для производства спроектированной печатной платы, нужно пройти несколько подготовительных этапов.

- Обозначьте слои (например, верхний —top или front, а нижний — bottom или back) вместе с названием проекта в виде надписи, расположенной на слое.

- Все надписи на нижнем слое (иногда его называют задним или со стороны пайки) необходимо отразить.

- Создайте все зоны заземления, поправьте дорожки, чтобы все соответствовало заявленным требованиям.

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

Далее показан пример внешнего вида этих элементов, за исключением зон заземления, которые были скрыты для лучшего восприятия:

Также присутствует цветовая маркировка 4 слоёв меди:

### 11.2. Окончательная проверка правил проектирования

Перед тем как создавать необходимые файл, крайне рекомендуется выполнить проверку правил проектирования.

Зоны заполняются автоматически при старте проверки. Нажмите кнопку для вызова диалогового окна проверки правил проектирования.

Поправьте нужные параметры и затем нажмите кнопку "Старт DRC".

Эта последняя проверка убережет от любых неприятных сюрпризов.

### 11.3. Начало координат в файлах сверловки

При установке начала координат для файлов фотошаблонов и сверловки, размещается вспомогательная ось в указанной точке. Выберите инструмент . Разместите вспомогательную ось щелчком левой кнопки мыши в выбранном месте.

### 11.4. Формирование файлов фото-печати

Это делается через меню Файл/Чертить, откроется следующее диалоговое окно:

Обычно, файлы формируются в формате Gerber. Но в любом случае, можно сформировать их и в форматах HPGL и Postscript. При выборе формата Postscript, диалоговое окно измениться.

Для этого формата можно настроить масштабирование для компенсации погрешности плоттера и добиться максимальной точности:

#### 11.4.1. Формат Gerber

Для каждого слоя Pcbnew формирует отдельный файл, соответствующий стандарту GERBER 274X, в формате 4.6 (каждая координата в файле представляется в виде десятизначного числа, 4 цифры выделены для целой части и 6 — для дробной), единицами измерения являются дюймы, масштаб 1:1.

Обычно, требуется создавать файлы для всех слоёв меди и, в зависимости от печатной платы, слой шелкографии, паяльной маски и паяльной пасты. Все эти файлы можно сформировать за один раз, установив необходимые отметки.

Например, для двухсторонней печатной платы с нанесением шелкографии, паяльной маски и пасты (для SMD-элементов), потребуется создать 8 файлов (xxxx— условное обозначение имени *.brd-файла).

- xxxx-F_Cu.gbr — медь со стороны компонентов.

- xxxx-B_Cu.gbr — медь со стороны пайки.

- xxxx-F_SilkS.gbr — шелкография со стороны компонентов.

- xxxx-B_SilkS.gbr — шелкография со стороны пайки.

- xxxx-F_Paste.gbr — паяльная паста со стороны компонентов.

- xxxx-B_Paste.gbr — паяльная паста со стороны пайки.

- xxxx-F_Mask.gbr — паяльная маска со стороны компонентов.

- xxxx-B_Mask.gbr — паяльная маска со стороны пайки.

Формат файлов Gerber:

В Pcbnew используется формат RS274X версии 4.6, английские единицы измерения, лидирующие нули опускаются, все значения являются абсолютными. Такой набор параметров используется чаще всего.

#### 11.4.2. Формат Postscript

Стандартное расширение выходных файлов в формат Postscript — *.ps. Так же как и при выводе в формате HPGL, процесс формирования можно настроить, указав масштаб и необходимость в отражении изображения. Если в параметрах указано использовать центр листа в качестве начала координат, то все элементы изображения будут построены по отношению к этому центру.

Если задано значение толщины пера, то изображение будет построено с его применением.

#### 11.4.3. Параметры черчения

Для формата Gerger:

Для других форматов:

Особые параметры формата Gerger:

Используйте расширения файлов в формате Protel | Используйте .gbl .gtl .gbs .gts .gbp .gtp .gbo .gto вместо .gbr в качестве расширения.
Включайте расширенные атрибуты. | Сохраняйте расширенные атрибуты в файл.
Исключайте паяльную маску из шелкографии. | Удаляйте любые элементы шелкографии из областей паяльной пасты.

#### 11.4.4. Прочие форматы

Стандартное расширение зависит от типа выходного файла.

Некоторые параметры недоступны для отдельных форматов.

Процесс построения может быть выполнен с указанным пользователем масштабом и, при необходимости, отражено.

Параметры черчения отверстий позволяют изображать их заполненными, с отверстием реального диаметра и отверстием малого диаметра (удобно при сверлении вручную).

Если задано значение толщины пера, то изображение будет построено с его применением.

### 11.5. Общие параметры зазоров паяльной маски и паяльной пасты

Величину зазора паяльной маски можно установить глобально для слоёв паяльной маски и паяльной пасты. Зазоры можно устанавливать для таких элементов:

- Контактные площадки.

- Посадочные места.

- Все элементы.

И Pcbnew использует их в следующем порядке.

- Значение для контактных площадок. Если не задано:

- Значение для посадочных мест. Если не задано:

- Значение для всех элементов.

#### 11.5.1. Доступ

Нужный пункт находится в меню Размеры:

Откроется следующее диалоговое окно:

#### 11.5.2. Зазор паяльной маски

Обычно, хорошим вариантом является значение близкое к 0.2 мм. Значение является положительным, потому что маска, как правило, больше контактной площадки.

Здесь можно установить минимальную ширину паяльной маски между двумя контактными площадками.

Если реальное значение будет меньше минимального, две площадки паяльной маски будут объединены.

#### 11.5.3. Зазор паяльной пасты

Итоговое значение зазора является суммой зазора паяльной пасты и процентов от размера контактной площадки.

Величина имеет отрицательное значения, потому что маска, как правило, меньше контактной площадки.

### 11.6. Формирование файлов сверловки

Всегда следует создавать файл сверловки xxxx.drl в формате EXCELLON.

При этом можно дополнительно сформировать отчёт сверловки и, если необходимо, карту сверловки.

- Карта сверловки может быть построена в нескольких форматах.

- Отчёт сверловки является обычным текстовым файлом.

Формирование этих файлов выполняется с помощью:

- Кнопки "Создать файл сверловки"

- Пункта меню Файл/Файлы производства/ Файл сверловки.

Диалоговое окно создания файлов сверловки показано далее:

Для настройки начала координат используются следующие параметры:

- Абсолютные: используется абсолютная система координат.

- Вспомогательные оси: используются координаты относительно вспомогательных осей, используйте соответствующий инструмент (на правой панели инструментов) для их установки.

### 11.7. Формирование документации о проводных соединениях

При формировании файлов документации о проводных соединениях можно использовать изображения шелкографии как со стороны компонентов, так и со стороны пайки. Обычно, достаточно только изображения шелкографии со стороны компонентов для обозначения проводных соединений. Но, если всё же используется шелкография со стороны пайки, то её нужно отразить, чтобы изображение приняло читабельный вид.

### 11.8. Формирование файлов для автоматической установки компонентов

Этот инструмент доступен в меню Файлы производства/Файл позиций посад.мест. Так или иначе, ни один файл не будет сформирован, если нет хотя бы одного посадочного места с атрибутами Нормально+Установлено (см. Редактирование посадочных мест). Будет создан один или два файла, в зависимости от того как будут монтироваться компоненты, на одну или обе стороны. В диалоговом окне будут отображены имена созданных файлов.

### 11.9. Дополнительные параметры черчения

Описанные ниже параметры (часть диалогового окна из меню Файл/Чертить) предоставляют обширные возможности по управлению процессом черчения. В частности, они очень полезны при печати обозначений шелкографии для документации проводных соединений.

Доступны следующие параметры:

Чертить форматную рамку на всех слоях | Добавлять изображение форматной рамки на каждом из слоёв.
Чертить конт.пл. на слое шелкографии | Разрешить/запретить печать контуров контактных площадок на слоях шелкографии (если в свойствах контактных площадок было указано об их размещении на данных слоях). Если запрещено, ни одна из контактных площадок не будет начерчена.
Чертить значения посад.мест. | Позволяет печать текст ЗНАЧЕНИЯ на слое шелкографии.
Чертить обозначения посад.мест. | Позволяет печать текст ОБОЗНАЧЕНИЯ на слое шелкографии.
Принудительно чертить невидимые значения и/или обозначения | Принудительно выводится на печать текст полей (значения и обозначения) с невидимым режимом отображения. Вместе с параметрами Чертить значения посад.мест и Чертить обозначения посад.мест. позволяет создавать документацию по сборке и ремонту. Данные параметры действительно необходимы для печатных плат с очень малыми компонентами (SMD), чтобы добиться читабельности двух отдельных полей.
Не закрывать перех.отв. | Удалять маску с переходных отверстий.
Исключить содержимое слоя контура печатной платы с остальных слоев | Применительно к формату Gerger. Не позволяет выводить графические элементы со слоя контура платы.
Использовать Protel расширение файлов | Применительно к формату Gerger. При создании файлов используются специальные расширения для каждого файла. Если отключено, используется стандартное расширение файлов Gerber — .gbr.

## 12. Редактор посадочных мест — управление библиотеками

### 12.1. Редактор посадочных мест — управление библиотеками

Pcbnew может одновременно управлять несколькими библиотеками. Так, при загрузке посадочного места, поиск ведётся по всем библиотекам из списка до тех пор, пока не будет найдено посадочное место, соответствующее запросу. Обратите внимание, активная библиотека выбирается вручную. Далее будет описана работа с приложением.

Редактор посадочных мест позволяет создавать и редактировать посадочные места:

- Добавлять и удалять контактные площадки.

- Изменять свойства (форму, слой), как для отдельных, так и всех контактных площадок посадочного места.

- Редактировать графические элементы (линии, текст).

- Редактировать информационные поля (значение, обозначение и т.п.).

- Редактировать элементы документирования (описание, ключевые слова).

Также, редактор посадочных мест позволяет управлять активной библиотекой:

- Выводить перечень посадочных мест активной библиотеки.

- Удалять посадочные места из активной библиотеки.

- Сохранять посадочные места в активную библиотеку.

- Сохранять сразу все посадочные места, расположенные на печатной плате.

При этом, можно создавать новые библиотеки.

Расширение файлов библиотеки .mod.

### 12.2. Вызов редактора посадочных мест

Редактор посадочных мест можно вызвать двумя разными путями:

- Напрямую, с помощью кнопку на главной панели инструментов Pcbnew.

- Через диалоговое окно свойств отдельного посадочного места (см. изображение ниже: вызывается из контекстного меню), кнопкой Редактор посад.мест.

В последнем случае, выбранный компонент будет загружен в редактор автоматически, позволяя сразу же приступить к редактированию или архивации.

### 12.3. Пользовательский интерфейс редактора посадочных мест

При вызове редактора посадочных мест открывается следующее окно:

### 12.4. Верхняя панель инструментов редактора посадочных мест

Эта панель инструментов содержит следующие инструменты:

| Выбор активной библиотеки.
| Сохранить текущее посадочное место в активную библиотеку и записать её на диск.
| Создать новую библиотеку и сохранить в неё текущее посадочное место.
| Открыть просмотрщик посадочных мест.
| Вызвать диалоговое окно для удаления посадочного места из активной библиотеки.
| Создать новое посадочное место.
| Создать новое посадочное место с помощью мастера.
| Загрузить посадочное место из активной библиотеки.
| Загрузить (импортировать) посадочное место из печатной платы.
| Экспортировать текущее посадочное место на печатную плату, если оно предварительно импортировалось из этой же платы. В результате будет заменено соответствующее посадочное место на печатной плате (сохраняя позицию и ориентацию).
| Экспортировать текущее посадочное место на печатную плату. Будет добавлено новое посадочное место на печатную плату в точке 0.
| Импорт посадочного мест из файла, созданного командой Экспорт.
| Экспорт посадочного места. Эта команда подобна созданию новой библиотеки, за исключением того, что данная библиотека создаётся в пользовательском каталоге, а не в системном (обычно kicad/modules).
| Отмена и повтор действий.
| Вызов диалогового окна редактирования свойств посадочного места.
| Вызов диалогового окна печати.
| Стандартные команды управления масштабом.
| Вызов редактора контактных площадок.
| Проверка посадочного места на наличие ошибок.

### 12.5. Создание новой библиотеки

Новая библиотека создаётся с помощью кнопки , при этом будет предложено сохранить файл в стандартном каталоге. Библиотеку можно создать с помощью кнопки , но в таком случае будет предложено сохранить файл в рабочем каталоге.

В диалоговом окне можно указать новое имя и изменить каталог для сохранения. В обоих случаях библиотека будет содержать посадочное место, загруженное в редактор.

Внимание | Если уже существует библиотека с таким же именем, то она будет перезаписана без предупреждения.

### 12.6. Сохранение посадочного места в активной библиотеке

Сохранение посадочного места (при этом измениться файл активной библиотеки) выполняется нажатием кнопки . Если посадочное место с таким же именем уже существует, оно будет заменено. Поскольку корректность посадочных мест в библиотеке зависит от пользователя, лучше их дважды проверить перед тем как сохранять.

Рекомендуется указать имя посадочного места в поле обозначения или значения для идентификации посадочного места в библиотеке.

### 12.7. Перенос посадочного места из одной библиотеки в другую

- Выберите исходную библиотеку, воспользовавшись кнопкой .

- Загрузите посадочное место с помощью кнопки .

- Выберите конечную библиотеку, снова воспользовавшись кнопкой .

- Сохраните посадочное место нажатием кнопки .

Если потребуется, можно удалить посадочное место из исходной библиотеки.

- Снова выберите исходную библиотеку используя .

- Удалите старое посадочное место кнопкой .

### 12.8. Сохранение всех посадочных мест печатной платы в активной библиотеке

Существует возможность скопировать все посадочные места с открытой печатной платы в активную библиотеку. Эти посадочные места сохранят свои текущие имена. Эта команда имеет два применения:

- Чтобы создать архив или библиотеку с посадочными местами из печатной платы, на случай, если библиотека будет утеряна.

- Облегчает сопровождение библиотеки, позволяя вносить элементы документирования (см. далее), что более важно.

### 12.9. Документирование посадочных мест в библиотеке

Категорически рекомендуется описывать создаваемые посадочные места для обеспечения быстрого и безошибочного поиска.

Например, кто сможет запомнить все вариации посадочных мест для корпуса TO92? Диалоговое окно редактирования свойств посадочного места, зачастую, является решением данной проблемы.

Это диалоговое окно позволяет указать:

- Строку с комментарием/описанием.

- Последовательность ключевых слов.

Описание отображается в списке компонентов CvPcb, а в Pcbnew используется диалогом выбора посадочного места.

Ключевые слова позволяют расширить результаты поиска посадочными местами, в которых указаны эти ключевые слова.

При непосредственной загрузке посадочного места (кнопка на правой панели инструментов Pcbnew), можно вводить ключевые слова в диалоговом окне. Таким образом, при вводе текста =CONN, будут показан список посадочных мест, которые содержат ключевое слово CONN.

### 12.10. Документирование библиотек — рекомендуемая техника

Рекомендуется создавать библиотеки косвенно, с помощью одной или нескольких вспомогательных печатных плат, которые будут являться исходником (или частью) библиотеки. Это позволит выводить на печать эти платы в формате А4 для сопоставления размеров (в масштабе 1:1).

Создавайте посадочные места, которые должны содержаться в будущей библиотеке, прямо на печатной плате. Сама библиотека будет сформирована позже командой меню Файл/Архивировать посад.места/Создать библиотеку и архивировать посад.места.

"Исходником" библиотеки будет та самая вспомогательная печатная плата, со всеми посадочными местами, которые впоследствии будут созданы на ней. При этом, в одну библиотеку можно сохранить содержимое нескольких печатных плат.

В общем случае, лучше создавать разные библиотеки для разных типов компонентов (разъемы, пассивные компоненты и т.п.), так как Pcbnew позволяет вести поиск по множеству библиотек при загрузке посадочного места.

Далее приведён пример такого исходника библиотеки:

Эта методика имеет несколько особенностей:

- Печатную плату можно распечатать для сопоставления размеров и формирования документации на библиотеку без применения особых усилий.

- Будущие изменения Pcbnew могут потребовать повторно сформировать библиотеки, что можно очень быстро и легко сделать, если имеются исходники в виде вспомогательных печатных плат для этих библиотек. Это очень важно, так как формат файла печатной платы гарантировано сохраняет совместимость в процессе разработки приложения, а формат файлов библиотек такой особенности не имеет.

### 12.11. Управление библиотеками посадочных мест

Список библиотек посадочных мест в Pcbnew можно редактировать используя Менеджер библиотек. Он позволяет добавлять и удалять библиотеки посадочных мест вручную, а также вызывать мастер добавления библиотек с помощью кнопки "Добавить с помощью мастера".

Также, мастер добавления библиотек можно вызвать из меню Настройки. При его использовании библиотеки добавляются автоматически (определяются по типу) из файлов или из репозитория Github. Ссылка на официальный репозиторий библиотек: https://github.com/KiCad

Более детальную информацию о таблицах, менеджере и мастере библиотек посадочных мест можно найти в руководстве пользователя CvPcb, в разделе Таблицы библиотек посадочных мест.

### 12.12. Управление библиотеками 3D-форм

Библиотеки 3D-форм можно загрузить с помощью мастера загрузки 3D-форм. Он вызывается из меню Настройки → Загрузить библиотеки 3D форм.

## 13. Редактор посадочных мест — создание и редактирование посадочных мест

### 13.1. Обзор редактора посадочных мест

Редактор посадочных мест используется для редактирования и создания посадочных мест печатной платы. Он позволяет:

- Добавлять и удалять контактные площадки.

- Изменять свойства (форму, слой), как отдельных, так и всех контактных площадок посадочного места.

- Добавлять и редактировать графические элементы (контуры, текст).

- Редактировать поля (значение, обозначение и т.п.).

- Редактировать элементы документирования (описание, ключевые слова).

### 13.2. Элементы посадочного места

Посадочное место — это физическое представление детали, которая будет смонтирована на печатной плате, и оно должно быть связано с соответствующим компонентом в схеме. Каждое посадочное место содержит элементы трёх разных типов:

- Контактные площадки.

- Графические элементы и текст.

- Поля.

К тому же, несколько прочих параметров необходимо правильно указать, если планируется использование функции автоматического размещения. То же касается и формирования файлов для автоматизированного монтажа.

#### 13.2.1. Контактные площадки

Два самых важных параметров контактной площадки:

- Конструкция (форма, слои, отверстия).

- Номер контактной площадки, который состоит из максимум четырёх буквенно-цифровых символов. Так, все следующие номера являются допустимыми для контактной площадки: 1, 45 и 9999, а также AA56 и ANOD. Номер вывода контактной площадки должен быть таким же, как и номер вывода компонента схемы, потому что по этому номеру Pcbnew определяет какой вывод компонента к какой контактной площадке необходимо привязать.

#### 13.2.2. Контуры

Графические контуры используются для изображения физической формы посадочного места. Доступно несколько типов контуров: линии, окружности, дуги и текст. Контуры не имеют значения для электрический цепей, это просто графическое обозначение.

#### 13.2.3. Поля

Это надписи, связанные с посадочным местом. Два поля обязательны и всегда присутствуют: значение и обозначение. Они автоматически считываются и обновляются в Pcbnew при чтении списка цепей и загрузке посадочных мест на печатную плату. Обозначение принимает такое же значение как и соответствующие поле компонента схемы (U1, IC3 и т.д.). Значение, также, получает свое значение из такого же поля компонента схемы (47k, 74LS02 и т.д.). Можно добавлять другие поля, они будут отображаться как обычных текст.

### 13.3. Запуск редактора посадочных мести и выбор посадочного места для редактирования

Редактор посадочных мест можно запустить двумя способами:

- Непосредственно кнопкой с главной панели инструментов Pcbnew. При этом можно как создавать новые, так и редактировать существующие посадочные места из библиотеки.

- Двойной щелчок левой кнопки мыши на посадочном месте откроет диалоговое окно Свойства посад.места., в котором имеется кнопка Редактор посад.мест. При её нажатии выбранное посадочное место будет загружено в редактор для дальнейшего редактирования и последующего сохранения.

### 13.4. Панели инструментов редактора посадочных мест

При вызове редактора посадочных мест откроется новое окно, показанное далее:

#### 13.4.1. Панель инструментов редактирования (справа)

Эта панель содержит инструменты для:

- Размещения контактных площадок.

- Добавления графических элементов (контуры, надписи).

- Размещения точки привязки.

- Удаление элементов.

Содержит следующий набор команд:

| Без инструментов.
| Добавить контактные площадки.
| Чертить отрезки и полигоны.
| Чертить окружности.
| Чертить дуги.
| Добавить надпись (это инструмент не воздействует на поля).
| Разместить точку привязки посадочного места.
| Удалить элемент.
| Центр сетки (смещение сетки). Полезно при размещении контактных площадок. Центр сетки можно установить в нужном месте (центр первой контактной площадки), и затем изменить шаг сетки, сделав его равным шугу контактных площадок. Дальнейшее размещение контактных площадок становится очень простым.

#### 13.4.2. Панель инструментов отображения (слева)

Эти инструменты управляют параметрами отображения в редакторе посадочных мест:

| Отображать сетку.
| Отображать координаты в полярной форме.
| Использовать мм или дюймы в качестве единиц измерения.
| Переключить форму курсора.
| Отображать контактные площадки в контурном режиме.
| Отображать текст в контурном режиме.
| Отображать графику посадочного места в контурном режиме.
| Переключить контрастный режим.

### 13.5. Контекстное меню

Щелчок правой кнопки мыши вызывает меню, содержимое которого зависит от элемента, находящегося под курсором.

Контекстное меню для редактирования параметров посадочного места:

Контекстное меню для редактирования контактных площадок:

Контекстное меню для редактирования графических элементов:

### 13.6. Диалоговое окно свойств посадочного места

Это диалоговое окно можно вызвать, когда курсор находится над посадочным местом, через контекстное меню, выбрав пункт Редактировать параметры.

Это диалоговое окно используется для определения основных параметров посадочного места.

### 13.7. Создание нового посадочного места

Новое посадочное место можно создать с помощью кнопки . Будет запрошено имя для нового посадочного места. По этому имени будет вестись поиск в библиотеке.

Данное имя также используется в качестве значения для поля Значение, которое в последующем будет заменено реальным значением (100 µF_16 V, 100 Ω_0.5 W, …).

Новому посадочному месту требуются:

- Контуры (и, возможно, текст).

- Контактные площадки.

- Значение (скрытый текст, который будет заменяться реальным значением при использовании).

В другом случае:

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

- Загрузить подобное посадочное место ( , или ).

- Изменить значение поля "Имя посадочного места в библиотеке", чтобы сформировать новый идентификатор (имя).

- Изменить и сохранить новое посадочное место.

### 13.8. Добавление и редактирование контактных площадок

Как только посадочное место будет создано, можно добавлять, удалять и редактировать контактные площадки. Редактировать можно как отдельные контактные площадки, работая с ними с помощью мыши, так и все контактные площадки, принадлежащие посадочному месту.

#### 13.8.1. Добавление контактных площадок

Нажмите кнопку на правой панели инструментов. Контактные площадки добавляются щелчком левой кнопки мыши в выбранном месте. Параметры контактных площадок настраиваются предварительно через меню.

Не забывайте вводить номер для контактных площадок.

#### 13.8.2. Установка свойств контактной площадки

Это можно сделать тремя разными путями:

- Нажатием кнопки на горизонтальной панели инструментов.

- Выбором пункта Редактировать конт.пл. из контекстного меню существующей контактной площадки. Далее можно будет настроить параметры этой контактной площадки.

- Выбором пункта Импорт установок конт.пл. из контекстного меню существующей контактной площадки. В этом случае, геометрические свойства выбранной контактной площадки примут значения по умолчанию.

В первых двух случаях, будет отображено следующее диалоговое окно:

Нужно сохранять осторожность при определении правильных слоёв, на которых будет расположена контактная площадка. В частности, слоями меди достаточно просто управлять, а вот наличие дополнительных слоёв (паяльной маски, паяльной пасты и т.п.) очень важно для производства печатной платы и её документирования.

Изменяя тип контактной площадки, автоматически изменяется выбор слоёв, который, в основном, является удовлетворительным.

##### Прямоугольные контактные площадки

Для планарных посадочных мест типов VQFP/PQFP, имеющих прямоугольную форму на всех четырёх сторонах (как по-горизонтали, так и по-вертикали), рекомендуется использовать одинаковую форму (например, горизонтальный прямоугольник) и размещать их с разной ориентацией (0 для горизонтальных и 90 для вертикальных). В таком случае можно будет изменять размер всех контактных площадок за один раз.

##### Вращение контактных площадок

Вращение на -90 или -180 градусов может потребоваться только для трапециевидных контактных площадок, в посадочных местах для компонентов СВЧ.

##### Не металлизированные контактные площадки со сквозным отверстием

Можно добавлять контактные площадки в виде сквозного отверстия без металлизации (NPTH — Non-Plated Through Hole).

Эти контактные площадки необходимо определять для одного или всех слоёв меди (очевидно, что отверстие присутствует на всех слоях).

Это требование позволяет указывать особые параметры зазоров (например, зазор для головок крепёжных винтов).

Если размер отверстия совпадает с размером контактной площадки, для круглых и овальных форм, то эта контактная площадка НЕ БУДЕТ начерчена на слоях в Gerber-файлах.

Эти контактные площадки используются для монтажных целей, поэтому разрешается не указывать имя или цепь. Подключение к цепи невозможно.

##### Параметры смещения

Контактная площадка 3 имеет смещение по оси Y равное 15 мил:

##### Разница оснований трапеции

Контактная площадка 1 имеет величину этого параметра равной 10 мил по оси X

#### 13.8.3. Установка зазора для слоёв паяльной маски и паяльной пасты

При создании контактных площадок со слоями меди, KiCad дополнительно создаёт слои паяльной маски и паяльной пасты, размер которых может быть больше или меньше размеров контактной площадки на указанную величину или в указанное число крат. Для определения итогового размера контактной площадки используются параметры отличные от нуля из следующих настроек, в порядке уменьшения приоритета:

- Настройки контактных площадок

- Настройки посадочных мест

- Настройки по умолчанию

Замечание | Форма паяльной маски, обычно, больше контактной площадки. Поэтому величина зазора положительная. Форма паяльной пасты, обычно, меньше контактной площадки. Поэтому величина зазора отрицательная.

##### Зазор паяльной пасты

Для вычисления апертуры паяльной пасты используются два параметра:

- Фиксированный размер зазора.

- Процентная часть от размера контактной площадки.

Конечным размером является произведение размера контактной площадки на процентную часть с прибавлением фиксированного зазора.

#### 13.8.4. Контактные площадки на не медных слоях

Это второй способ создания контактных площадок без медных слоёв. Эти контактные площадки обычно называют апертурой контактных площадок и могут быть использованы для создания особой апертуры, не связанной с формой медного пятака. Это свойство было добавлено в версии 5.0.0-rc2. Контактные площадки без слоёв меди игнорируют параметры, заданные по умолчанию и на уровне посадочных мест, используются параметры только на уровне контактных площадок.

Внимание | Контактные площадки без слоёв меди, добавленные в версиях до 5.0.0-rc2, использовали и параметры по умолчанию, и параметра на уровне посадочного места, в порядке приоритета, описанном выше. В платах, разработанных до указанной версии, необходимо внести коррективы для получения требуемого результата при печати или черчении.

Установка параметров на уровне посадочного места:

Установка параметров на уровне контактной площадки:

### 13.9. Параметры полей

Существует, как минимум, два поля: обозначение и значение.

Их свойства (атрибуты, высота, ширина) нужно обновлять. Диалоговое окно можно открыть через контекстное меню, двойным щелчком левой кнопки мыши по полю или через диалоговое окно посадочного места:

### 13.10. Автоматическое размещение посадочных мест

Если пользователь хочет воспользоваться всеми возможностями инструмента автоматического размещения, то необходимо определить возможную ориентацию посадочного места (в диалоговом окне свойств посадочного места).

Обычно, вращение на 180 градусов разрешено для резисторов, неполярных конденсаторов и прочих симметричных элементов.

Некоторые посадочные места (небольшие транзисторы, например) часто допускают вращение на +/- 90 или 180 градусов. По умолчанию, новое посадочное место не позволяет какое-либо вращение. Но это можно настроить, руководствуясь правилом:

Значение 0 запрещает вращение, 10 — разрешает в полной мере, а любое промежуточное значение указывает на уровень ограничения. Например, резистор может иметь уровень 10 для вращения на 180 градусов (без ограничения) и уровень 5 для вращения на +/- 90 градусов (разрешено, но ограничено).

### 13.11. Атрибуты

Секция атрибутов показана далее:

- Нормально — это стандартный атрибут.

- Нормально+Установлено — указывает на то, что данное посадочное место должно присутствовать в файле для автоматического монтажа (для аппарата автоматизированной установки на плату). Этот параметр чаще всего используется для компонентов поверхностного монтажа (SMD).

- Виртуально — указывает на то, что компонент является частью печатной платы. Например, контактные площадки на краю платы, формирующие разъем, или индуктивность в виде спирали из отрезков дорожки (их можно встретить на посадочных местах СВЧ-компонентов).

### 13.12. Описание посадочных мест в библиотеке

Категорически рекомендуется описывать создаваемые заново компоненты для обеспечения быстрого и точного доступа к ним. Кто сможет перечислить все вариации посадочных мест для корпуса TO92?

Диалоговое окно свойств посадочного места предоставляет простой доступ и обширные возможности для ввода элементов документирования.

Эти поля позволяют:

- Ввести строку комментария (описание).

- Последовательность ключевых слов.

Строка комментария отображается вместе с компонентом в списке CvPcb и в меню выбора посадочных места в Pcbnew. Ключевые слова можно использовать для расширения результатов поиска, находя все посадочные места, в которых имеется указанное ключевое слово.

Так, во время добавления нового посадочного места (соответствующий инструмент расположен на правой панели инструментов в Pcbnew), можно ввести =TO220 в поле диалогового окна и Pcbnew покажет список посадочных мест, которые содержат ключевое слово TO220.

### 13.13. 3-х мерное изображение

Посадочное место можно связать с файлом, содержащим его трех-мерное представление. Для назначения такого файла посадочному месту, перейдите на вкладку Настройки 3D. Панель параметров выглядит как показано далее.

Рисунок 1. Диалоговое окно выбора 3D-форм

Кнопки справа имеют следующее назначение:

- Добавить 3D форму— открывает диалоговое окно выбора 3D-файла и создаёт новый пункт в списке подходящих форм для компонента.

- Удалить 3D форму— удаляет выбранную форму из списка.

- Изменить имя файла— открывает диалоговое окно с текстовым полем для ввода нового имени файла вручную.

- Настроить пути— открывает диалоговое окно, позволяющее редактировать список псевдонимов путей и их значения.

Вкладка Настройки 3D содержит панель предварительного просмотра выбранной формы и значения её масштаба, смещения и поворота.

Параметры масштабирования обычно используются для показа таких форматов как VRML1, VRML2 и X3D. Так как формы можно проектировать в любом из возможных редакторов, поддерживающих форматы VRML/X3D, или получать их из конвертеров в формате VRML, то размеры формы могут не соответствовать действительности из-за несоблюдения единиц измерения. Пользователь может ввести необходимую величину масштаба, чтобы модель приняла правильные размеры для корректного представления в просмотрщике 3D. Некоторые пользователи используют простой параллелепипед в формате VRML в качестве общей формы компонентов и с помощью параметров масштаба добиваются размеров, сопоставимых с габаритами компонента. Параметры масштабирования для форм, спроектированных в механических САПР (MCAD), необходимо сохранять вместе с формой. В таких САПР единицы измерения всегда указываются в качестве дополнительных данных к форме, но конвертеры, обычно, эти данные игнорируют. Тем не менее, просмотрщик 3D всегда использует параметры масштабирования. Если значения масштаба отличаются от единиц измерения, использованных в механических САПР, то изображение в просмотрщике будет отличаться от моделей, полученных из САПР, таких как IDF.

Значения смещения и поворота, обычно, вводятся для выравнивания 3D-формы на посадочном месте. Это связано с различиями в приложениях трёх-мерного моделирования и с методом построения самой формы. В подавляющем большинстве случаев пользователю приходится вводить значения поворота и смещения для того, чтобы установить правильное положение 3D-формы. Значение поворота задаётся в градусах для каждой из осей XYZ; принято соглашение, что при положительном значении угла вращение будет выполнено по часовой стрелке, если смотреть на объекта так, чтобы ось была направлена в сторону зрителя.

KiCad загружает 3D-формы с помощью системы плагинов и поддерживает визуализацию моделей в формате VRML1, VRML2, X3D, а также формат механических САПР IDF. Также поддерживаются форматы механических САПР IGES и SETP, для них используется плагин OCE, который требует для своей работы наличие приложения OpenCascade или OpenCascade Community Edition (OCE) подходящей версии.

#### 13.13.1. Каталоги с 3D-формами

В прошлом, KiCad использовал фиксированный каталог с 3D-формами. Сейчас используется переменная окружения KISYS3DMOD, в которой хранится путь к каталогу с 3D-формами. С помощью дополнительных переменных окружения можно можно ссылаться на разные каталоги. В последних версиях KiCad используются специальная система псевдонимов для поиска указанных 3D-форм. Цель новой системы управления формами — предоставить схему, которая сохраняет совместимость с ранними версиями KiCad и в то же время расширяет механизм назначения файлов 3D-форм, позволяющий улучшить возможности по распространению файлов проекта.

В связи с требованием сохранить поддержку предыдущей схемы поиска 3D-форм, при расширении возможностей новой схемы, образовалось два отдельных метода по указанию базового пути для поиска 3D-форм.

Чтобы обеспечить лучшее восприятие данных о файлах kicad_pcb и pretty, в KiCad предпочитается использовать имена файлов (включая путь к ним) в сокращённой форме, используя для этого переменные среды (старый метод) или псевдонимы (новый метод). Так как добавление переменных окружения может оказаться громоздким, особенно для операционных систем, базирующихся на графическом пользовательском интерфейсе, то поддерживаемая схема путей поиска на основе переменных окружения была расширена, чтобы оставить возможность использования существующего диалогового окна KiCad Настройка путей. Это диалоговое окно доступно в меню Настройки→Настройка путей и его вид показан ниже. Добавляя новые пути в этом диалоговом окне, будут расширяться места поиска файлов 3D-форм. При этом переменные окружения на самом деле не устанавливаются, но система сопоставления файлов работает так, как будто они были действительно установлены в системе. В случае, если реальная переменная окружения с таким же именем была установлена, то её значение будет заменено значением внутренней переменной окружения KiCad. Имена файлов, указанные по отношению к определённой переменной переменной окружения, определённой с помощью диалогового окна Настройка путей, или имя реальной переменной окружения.

Рисунок 2. Диалоговое окно настройки переменных окружения в KiCad

Новая схема сокращения имён файлов — это схема псевдонимов. В этой схеме пути начинаются с :my alias:, где my alias— строка текста, которая была выбрана в качестве удобного сокращения для пользователя. Например, псевдоним для каталога, содержащего стандартные формы в KiCad, можно назвать Стандартные формы, а для своих собственных форм можно назначить псевдоним Мои формы. Для управления псевдонимами нужно нажать кнопку Настроить пути на вкладке Настройки 3D диалогового окна свойств посадочного места. Диалоговое окно настройки псевдонимов показано ниже.

Рисунок 3. Диалоговое окно настройки псевдонимов путей в KiCad

Файлы 3D-форм можно выбрать нажатием кнопки Добавить 3D форму, откроется диалоговое окно выбора 3D-форм, показанный ниже. В этом диалоговом окне присутствует панель предварительного просмотра, фильтр файлов и выпадающее меню для выбора существующих переменных окружения или псевдонимов. В зависимости от размера формы и её сложности, может потребоваться несколько секунд для её отображения при выборе. Например, форма для корпуса BGA, которая использовалась при тестировании, требовал около 12 секунд для построения изображения.

Рисунок 4. Диалоговое окно выбора 3D форм в KiCad

### 13.14. Сохранение посадочного места в активной библиотеке

Команда сохранения (вносит изменения в файл активной библиотеки) вызывается кнопкой

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

Перед сохранением, также, рекомендуется присвоить обозначению или значению посадочного места имя, которое должно отображаться в библиотеке.

### 13.15. Сохранение посадочного места на печатной плате

Если редактируемое посадочное место загружено из текущей печатной платы, то его можно обновить с помощью кнопки

## 14. Расширенные инструменты редактирования печатной платы

В Pcbnew и в редакторе посадочных мест присутствуют инструменты, располагающие более широкими возможностями редактирования. С их помощью можно эффективно размещать элементы на рабочей поверхности.

### 14.1. Дублирование элементов

Дублирование — это метод по клонированию элемента с последующим его перемещением. Это очень похоже на метод копировать-вставить, но он позволяет "распылять" элементы по печатной плате, а также облегчает использование инструмента "Получить и переместить посд.место" (см. далее) при ручной расстановке.

Дублирование выполняется по нажатию горячей клавиши (по умолчанию Ctrl-D) или через контекстное меню, кнопка .

### 14.2. Точное перемещение элементов

Инструмент "Переместить … точно" позволяет переместить элемент (или группу элементов) в позицию, указанную в виде Декартовых координат или в виде полярных координат, используя любые поддерживаемые единицы измерения.

Для использования этого инструмента, выберите элементы для перемещения и затем нажмите горячую клавишу (по умолчанию Ctrl-M) или воспользуйтесь контекстным меню, откроется диалоговое окно. Это диалоговое окно можно вызвать горячей клавишей при перемещении или дублировании элементов, благодаря чему можно легко повторять смещение множества элементов.

Точное перемещение в Декартовой системе координат

Точное перемещение в полярной системе координат

С помощью отметки можно переключаться от Декартовой к полярной системе координат. Не важно какая система используется, значения будут автоматически конвертированы.

Затем вводится вычисленный вектор смещения. Можно использовать указанные единицы измерения ("мм" на изображении выше) или указать единицы измерения самостоятельно (т.е. "1 in" для дюйма или "2 rad" для 2 радиан).

После нажатия кнопки ОК будет применено перемещение к выделению, а нажатие кнопки Отменить приведёт к закрытию диалогового окна без выполнения перемещения. Если была нажата кнопка OK, то введённые данные сохраняются и при следующем открытии этого диалогового окна, они восстанавливаются. Это позволяет повторно применять один и тот же вектор для разных объектов.

### 14.3. Инструмент создания массива

Как Pcbnew, так и редактор посадочных мест имеют вспомогательный инструмент для создания массивов элементов и свойств, который можно использовать для простой и точной расстановки повторяющихся элементов как на печатной плате, так и на посадочных местах.

#### 14.3.1. Применение инструмента для создания массивов

Инструмент создания массива применяется к элементу под курсором или, в режиме GAL, к выделению. К нему можно легко получить доступ через контекстное меню (кнопка ) или по нажатию сочетания клавиш с клавиатуры (по умолчанию Ctrl-N).

Инструмент создания массивов представляется в виде диалогового окна с вкладками для разных типов массивов. Поддерживаются два типа массивов: по сетке и по кругу.

Каждый тип массива можно полностью настроить на соответствующей вкладке. Геометрические размеры (размер, шаг, смещение) располагаются слева; параметры нумерации (шаг и тип нумерации) расположены справа.

#### 14.3.2. Массивы по сетке

Массивы по сетке — это массивы, в которых элементы расставляются по двухмерной прямоугольной сетке. Этот тип массива также позволяет создавать линейные массивы, расставляя элементы в одну строку или в один столбец.

Диалоговое окно для настройки параметров массива по сетке выглядит так:

##### Геометрические размеры

Геометрические размеры включают следующее:

- Количество по горизонтали: число "столбцов" в сетке.

- Количество по вертикали: число "строк" в сетке.

- Интервал по горизонтали: расстояние между соседними элементами в одной строке. Если значение отрицательное, то сетка формируется справа налево.

- Интервал по вертикали: расстояние между соседними элементами в одном столбце. Если значение отрицательное, то сетка формируется снизу вверх.

- Смещение по горизонтали: начинать следующую строку с указанным смещением по отношению к предыдущему.

- Смещение по вертикали: начинать следующий столбец с указанным смещением по отношению к предыдущему.

Рисунок 5. Сетка 3х3 со смещением по осям x, y

- Тип шахматной расстановки: добавляет смещение к каждому элементу из "n"-го числа строк/столбцов, при чём каждая последующая строка смещается на 1/n-ую от указанного интервала:

Рисунок 6. Сетка 3х3 с шахматностью в строках равной 2
Рисунок 7. Сетка 4х3 с шахматностью в столбцах равной 3

##### Параметры нумерации

- Направление нумерации конт.пл.: определяется метод выполнения нумерации: нумерация всех элементов строки слева направо с последующим переходом к следующей строке или нумерация всех элементов столбца сверху вниз с последующим переходом к следующему столбцу. Обратите внимание, направление нумерации зависит от знака интервала: отрицательное значение приводит к обратной нумерации: справа налево и снизу вверх.

- Реверсировать нумерацию конт.пл. на чередование строк или столбцов: если отмечено, направление нумерации будет изменяться на противоположное при переходе на следующую строку или столбец. Но всё же, направление чередования строк или столбцов зависит от направления нумерации элементов. Этот параметр полезен для корпусов, похожих на DIP, где выводы с одной стороны нумеруются сверху вниз, а с другой — снизу вверх.

- Начальный номер конт.пл.: при размещении элементов, которым уже присвоен номер, можно начинать нумерацию сначала или использовать первый свободный номер.

- Схема нумерации

  - Continuous: the numbering just continues across a row/column break - if the last item in the first row is numbered "7", the first item in the second row will be "8".

  - Coordinate: the numbering uses a two-axis scheme where the number is made up of the row and column index. Which one comes first (row or column) is determined by the numbering direction.

- Ось нумерации: какой набор символов применить для нумерации по оси. Доступные варианты

  - Numerals for normal integer indices

  - Hexadecimal for base-16 indexing

  - Alphabetic, minus IOSQXZ, a common scheme for electronic components, recommended by ASME Y14.35M-1997 sec. 5.2 (previously MIL-STD-100 sec. 406.5) to avoid confusion with numerals.

  - Full alphabet from A-Z.

#### 14.3.3. Круговые массивы

Круговые массивы расставляют элементы по кругу или дуге. Окружность определяется местом установки элемента (или центром выделенной группы элементов) и центром. Ниже показано диалоговое окно с параметрами кругового массива:

##### Геометрические размеры

- Центр по горизонтали, Центр по вертикали: центр окружности. При его изменении будет автоматически вычисляться радиус, который отображается в следующем поле.

- Угол: угол между двумя соседними элементами массива. Установите его равным нулю, чтобы равномерно расположить заданное количество элементов по окружности.

- Количество: число элементов в массиве (включая оригинальный компонент).

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

##### Параметры нумерации

Круговые массивы имеют только один размер и простую форму, в отличии от сетки. Значение доступных параметров такое же как и для массивов по сетке. Элементы нумеруются по часовой стрелке — чтобы выполнить нумерацию против часовой стрелки, укажите угол отрицательным.

### 14.4. Измерительный инструмент (линейка)

Измерительный инструмент — это линейка, которая используется для визуального контроля размеров и расстояний на печатной плате.

Он активируется с помощью кнопки с изображением штангенциркуля на правой панели инструментов, а также через меню "Размеры" и с помощью горячей клавиши (по умолчанию, Ctrl-Shift-M).

После активации можно рисовать временную линейку поверх изображения, она будет построена на базе выбранных в данный момент единиц измерения. Можно установить ограничение угла, кратную 45 градусам, нажатием клавиши Ctrl. Единицы измерения можно переключать не прерывая работу с инструментом, используя назначенное сочетание клавиш (по умолчанию, Ctrl-U).

## 15. Руководство по созданию скриптов в KiCad

Применение скриптов позволяет автоматизировать действия, выполняемые в KiCad, с помощью языка программирования Python.

Дополнительно можете изучить doxygen-документацию на сайте Python Scripting Reference.

Можете просмотреть документацию на python-модули, набрав pydoc pcbnew в своём терминале.

С помощью скриптов можно создавать:

- Плагины: это особый тип скрипта, который загружается при запуске KiCad. Например:

  - Мастер посадочных мест: помогает создавать посадочные места простым заполнением параметров. Смотрите соответствующий раздел Мастер посадочных мест ниже.

  - Считывание/сохранение файлов (планируется): позволят пользователям создавать плагины для экспорта/импорта файлов прочих форматов.

  - Действия (тестируется): позволят связывать события с запуском скрипта, добавлять новые элементы меню или панелей инструментов.

- Скрипты командной строки: скрипты, которые можно выполнять в командной строке, загружать платы или библиотеки, изменять их и формировать изображения или новые платы.

В командной строке будет показано предупреждение, что из всех приложений пакета KiCad, скрипты поддерживаются только в Pcbnew. В будущем также планируется поддержка скриптов и в Eeschema.

### 15.1. Объекты KiCad

API (аппаратно-программный интерфейс) скриптов отражает внутреннюю структуру кода Pcbnew. Главным объектом является BOARD (печатная плата), который содержит набор свойств, а также MODULE (посадочные места), TRACK/VIA (дорожки/переходные отверстия), TEXTE_PCB (надписи), DIMENSION (размеры), DRAWSEGMENT (графические линии). В свою очередь, объект MODULE содержит объекты D_PAD (контактные площадки), EDGE (контуры) и т.д.

- Смотрите раздел BOARD ниже.

### 15.2. Обзор основного API

Всё API из Pcbnew содержится в модуле "pcbnew", написанного на языке Python. Функция GetBoard() возвращает объект печатной платы, открытой в данный момент в редакторе. Полезна при выполнении команд из интегрированной командной оболочки Pcbnew или для плагинов, выполняющих различные действия.

### 15.3. Загрузка и сохранение платы

- LoadBoard(filename): загружает плату из указанного файла и возвращает объект типа BOARD, формат файла определяется по расширению.

- SaveBoard(filename,board): сохраняет объект типа BOARD в файл, по расширению файла определяется формат записи.

- board.Save(filename): то же что и предыдущее, но вызывается метод из самого объекта типа BOARD.

В приведённом примере загружается плата, скрываются все значения, а обозначения отображаются

    #!/usr/bin/env python2.7
    import sys
    from pcbnew import *

    filename=sys.argv[1]

    pcb = LoadBoard(filename)
    for module in pcb.GetModules():
        print "* Module: %s"%module.GetReference()
        module.Value().SetVisible(False)      # скрыть значение
        module.Reference().SetVisible(True)   # показать обозначение

    pcb.Save("mod_"+filename)

### 15.4. Перечисление и загрузка библиотек

Перечислить библиотеки, посадочные места, контактные площадки

    #!/usr/bin/python

    from pcbnew import *

    libpath = "/usr/share/kicad/modules/Sockets.pretty"
    print ">> enumerate footprints, pads of",libpath

    # Загрузить подходящий плагин для чтения/записи библиотек в формате .pretty
    # (содержащих посадочные места в формате .kicad_mod)
    src_type = IO_MGR.GuessPluginTypeFromLibPath( libpath );
    # Заметка: можно прямо указать тип библиотеки IO_MGR.PluginFind( IO_MGR.KICAD )
    plugin = IO_MGR.PluginFind( src_type )

    # Вывести имя типа плагина: (для формата .pretty должно вывести "KiCad")
    print( "Selected plugin type: %s" % plugin.PluginName() )

    list_of_footprints = plugin.FootprintEnumerate(libpath)

    for name in list_of_footprints:
        fp = plugin.FootprintLoad(libpath,name)
        # вывести сокращённое имя посадочного места
        print name  # имя, содержащееся в загруженной библиотеке
        # затем следуют поля обозначения, значения и строка описания:
        # Помните, текст значения и обозначения временный, от будет заменён значениями
        # из компонента схемы при считывании списка цепей.
        print "  ->", fp.GetReference(), fp.GetValue(), fp.GetDescription()

        # вывести информацию о контактной площадке: GetPos0() возвращает
        # положение контактной площадки по отношению к положению посадочного места
        for pad in fp.Pads():
            print "    pad [%s]" % pad.GetPadName(), "at",\
            "pos0", ToMM(pad.GetPos0().x), ToMM(pad.GetPos0().y),"mm",\
            "shape offset", ToMM(pad.GetOffset().x), ToMM(pad.GetOffset().y), "mm"
        print ""

### 15.5. BOARD

Далее приведено описание объекта BOARD, основного объекта в pcbnew KiCad.

BOARD содержит набор списков объектов, к которым можно получить доступ с помощью следующих методов. Они возвращают перечисляемые списки, их содержимое можно перебирать используя синтаксис "for obj in list:"

- board.GetModules(): возвращает список объектов типа MODULE — все доступные посадочные места, найденные на печатной плате.

- board.GetDrawings(): возвращает список объектов типа BOARD_ITEMS — графические элементы печатной платы

- board.GetTracks(): возвращает список объектов типа TRACK и VIA — дорожки и переходные отверстия

- board.GetFullRatsnest(): возвращает список связей, не завершенных соединений

- board.GetNetClasses(): возвращает список классов цепей

- board.GetCurrentNetClassName(): возвращает текущий класс цепей

- board.GetViasDimensionsList(): возвращает список размеров переходных отверстий, доступных для платы

- board.GetTrackWidthList(): возвращает список значений ширины дорожек, доступных для платы

Пример проверки платы

    #!/usr/bin/env python
    import sys
    from pcbnew import *

    filename=sys.argv[1]

    pcb = LoadBoard(filename)

    ToUnits = ToMM
    FromUnits = FromMM
    #ToUnits=ToMils
    #FromUnits=FromMils

    print "LISTING VIAS:"

    for item in pcb.GetTracks():
        if type(item) is VIA:

            pos = item.GetPosition()
            drill = item.GetDrillValue()
            width = item.GetWidth()
            print " * Via:   %s - %f/%f "%(ToUnits(pos),ToUnits(drill),ToUnits(width))

        elif type(item) is TRACK:

            start = item.GetStart()
            end = item.GetEnd()
            width = item.GetWidth()

            print " * Track: %s to %s, width %f" % (ToUnits(start),ToUnits(end),ToUnits(width))

        else:
            print "Unknown type    %s" % type(item)

    print ""
    print "LIST DRAWINGS:"

    for item in pcb.GetDrawings():
        if type(item) is TEXTE_PCB:
            print "* Text:    '%s' at %s"%(item.GetText(), item.GetPosition())
        elif type(item) is DRAWSEGMENT:
            print "* Drawing: %s"%item.GetShapeStr() # dir(item)
        else:
            print type(item)

    print ""
    print "LIST MODULES:"

    for module in pcb.GetModules():
        print "* Module: %s at %s"%(module.GetReference(),ToUnits(module.GetPosition()))

    print ""
    print "Ratsnest cnt:",len(pcb.GetFullRatsnest())
    print "track w cnt:",len(pcb.GetTrackWidthList())
    print "via s cnt:",len(pcb.GetViasDimensionsList())

    print ""
    print "LIST ZONES:", pcb.GetAreaCount()

    for idx in range(0, pcb.GetAreaCount()):
        zone=pcb.GetArea(idx)
        print "zone:", idx, "priority:", zone.GetPriority(), "netname", zone.GetNetname()

    print ""
    print "NetClasses:", pcb.GetNetClasses().GetCount(),

### 15.6. Примеры

#### 15.6.1. Изменение зазора маски паяльной пасты для выводов компонента

Нужно изменить только выводы от 1 до 14, 15 — площадка теплоотвода и должна остаться без изменения.

    #!/usr/bin/env python2.7
    import sys
    from pcbnew import *

    filename=sys.argv[1]
    pcb = LoadBoard(filename)

    # Найти посадочное место U304
    u304 = pcb.FindModuleByReference('U304')
    pads = u304.Pads()

    #  Перебрать все контактные площадки, вывести их текущее значение зазора
    for p in pads:
        print p.GetPadName(), ToMM(p.GetLocalSolderPasteMargin())
        id = int(p.GetPadName())
        # Установить зазор равный 0 для всех конт.пл., кроме 15-ой
        if id<15: p.SetLocalSolderPasteMargin(0)

    pcb.Save("mod_"+filename)

### 15.7. Мастер посадочных мест

Мастер посадочных мест содержит множество python-скриптов, к которым можно получить доступ из диалогового окна. Если диалоговое окно открыто, можно выбрать один из скриптов, будет показано изображение итогового посадочного места. Приведённые параметры можно редактировать.

Если плагины не корректно работают или не установлены, их последние версии можно найти на сайте исходных кодов KiCad launchpad.

Они должны располагаться, например, в C:\Program Files\KiCad\share\kicad\scripting\plugins.

В ОС Linux можно поместить собственные плагины в $HOME/.kicad_plugins.

Посадочные места создаются простым вводом параметров.

    from __future__ import division
    import pcbnew

    import HelpfulFootprintWizardPlugin as HFPW

    class FPC_FootprintWizard(HFPW.HelpfulFootprintWizardPlugin):

        def GetName(self):
            return "FPC (SMT connector)"

        def GetDescription(self):
            return "FPC (SMT connector) Footprint Wizard"

        def GetValue(self):
            pins = self.parameters["Pads"]["*n"]
            return "FPC_%d" % pins

        def GenerateParameterList(self):
            self.AddParam( "Pads", "n", self.uNatural, 40 )
            self.AddParam( "Pads", "pitch", self.uMM, 0.5 )
            self.AddParam( "Pads", "width", self.uMM, 0.25 )
            self.AddParam( "Pads", "height", self.uMM, 1.6)
            self.AddParam( "Shield", "shield_to_pad", self.uMM, 1.6 )
            self.AddParam( "Shield", "from_top", self.uMM, 1.3 )
            self.AddParam( "Shield", "width", self.uMM, 1.5 )
            self.AddParam( "Shield", "height", self.uMM, 2 )

        # построить прямоугольную контактную площадку
        def smdRectPad(self,module,size,pos,name):
            pad = pcbnew.D_PAD(module)
            pad.SetSize(size)
            pad.SetShape(pcbnew.PAD_SHAPE_RECT)
            pad.SetAttribute(pcbnew.PAD_ATTRIB_SMD)
            pad.SetLayerSet( pad.SMDMask() )
            pad.SetPos0(pos)
            pad.SetPosition(pos)
            pad.SetPadName(name)
            return pad

        def CheckParameters(self):
            p = self.parameters
            self.CheckParamInt( "Pads", "*n" )  # "*" - указывает на наличие особых ед. измерения

        def BuildThisFootprint(self):
            p = self.parameters
            pad_count       = int(p["Pads"]["*n"])
            pad_width       = p["Pads"]["width"]
            pad_height      = p["Pads"]["height"]
            pad_pitch       = p["Pads"]["pitch"]
            shl_width       = p["Shield"]["width"]
            shl_height      = p["Shield"]["height"]
            shl_to_pad      = p["Shield"]["shield_to_pad"]
            shl_from_top    = p["Shield"]["from_top"]

            offsetX         = pad_pitch * ( pad_count-1 ) / 2
            size_pad = pcbnew.wxSize( pad_width, pad_height )
            size_shld = pcbnew.wxSize(shl_width, shl_height)
            size_text = self.GetTextSize()  # значение по IPC

            # Возвращает позицию и размер текста Значения и Обозначения:
            textposy = pad_height/2 + pcbnew.FromMM(1) + self.GetTextThickness()
            self.draw.Reference( 0, textposy, size_text )

            textposy = textposy + size_text + self.GetTextThickness()
            self.draw.Value( 0, textposy, size_text )

            # создать массив контактных площадок и добавить его к посадочному месту
            for n in range ( 0, pad_count ):
                xpos = pad_pitch*n - offsetX
                pad = self.smdRectPad(self.module,size_pad, pcbnew.wxPoint(xpos,0),str(n+1))
                self.module.Add(pad)

            # Механическая защита контактных площадок: слева и справа
            xpos = -shl_to_pad-offsetX
            pad_s0_pos = pcbnew.wxPoint(xpos,shl_from_top)
            pad_s0 = self.smdRectPad(self.module, size_shld, pad_s0_pos, "0")
            xpos = (pad_count-1) * pad_pitch+shl_to_pad - offsetX
            pad_s1_pos = pcbnew.wxPoint(xpos,shl_from_top)
            pad_s1 = self.smdRectPad(self.module, size_shld, pad_s1_pos, "0")

            self.module.Add(pad_s0)
            self.module.Add(pad_s1)

            # указать границы посадочного места
            linewidth = self.draw.GetLineThickness()
            margin = linewidth

            # верхняя линия
            posy = -pad_height/2 - linewidth/2 - margin
            xstart = - pad_pitch*0.5-offsetX
            xend = pad_pitch * pad_count + xstart;
            self.draw.Line( xstart, posy, xend, posy )

            # нижняя линия
            posy = pad_height/2 + linewidth/2 + margin
            self.draw.Line(xstart, posy, xend, posy)

            # контур левой механической конт.пл. (контур правой конт.пл. отражен по оси Y)
            yend = pad_s0_pos.y + shl_height/2 + margin
            self.draw.Line(xstart, posy, xstart, yend)
            self.draw.Line(-xstart, posy, -xstart, yend)

            posy = yend
            xend = pad_s0_pos.x - (shl_width/2 + linewidth + margin*2)
            self.draw.Line(xstart, posy, xend, posy)

            # правая сторона конт.пл.
            self.draw.Line(-xstart, posy, -xend, yend)

            # set SMD attribute
            self.module.SetAttributes(pcbnew.MOD_CMS)

            # левый сегмент слева от конт.пл.
            xstart = xend
            yend = posy - (shl_height + linewidth + margin*2)
            self.draw.Line(xstart, posy, xend, yend)

            # правая сторона конт.пл.
            self.draw.Line(-xstart, posy, -xend, yend)

            # горизонтальный сегмент над конт.пл.
            xstart = xend
            xend = - pad_pitch*0.5-offsetX
            posy = yend
            self.draw.Line(xstart, posy, xend, yend)

            # правая сторона конт.пл.
            self.draw.Line(-xstart, posy,-xend, yend)

            # вертикальный сегмент над конт.пл.
            xstart = xend
            yend = -pad_height/2 - linewidth/2 - margin
            self.draw.Line(xstart, posy, xend, yend)

            # правая сторона конт.пл.
            self.draw.Line(-xstart, posy, -xend, yend)

    # зарегистрироваться в pcbnew
    FPC_FootprintWizard().register()

### 15.8. Плагины действий

Плагин действия позволят связывать события с запуском скрипта.На данный момент только реализована возможность добавления элемента нового меню.

Новые элементы появляются в меню Инструменты ⇒ Внешние плагины.

- Обновить плагины: перезагрузить плагины (и создать новые элементы меню, если понадобится)

- Add date on PCB: пример плагина.

Предупреждение: как и для всех python-скриптов, функции отмены/повторения не работают

Пример плагина действия: добавить дату ко всем текстовым меткам вида $date$

    import pcbnew
    import re
    import datetime

    class text_by_date(pcbnew.ActionPlugin):
        """
        test_by_date: пример плагина действия.
        Добавить дату во всех текстовых полях на печатной плате, содержащих '$date$'
        Для использования:
        - Добавьте надпись на печатную плату, содержащую метку '$date$'
        - Запустите плагин из меню
        - Дата будет автоматически добавлена к текстовым меткам (в формате YYYY-MM-DD)
        """

        def defaults(self):
            """
            Функцию defaults необходимо переопределить
            self.name содержит название элемента меню
            self.category содержит название категории плагина (пока не используется)
            self.description содержит полное описание плагина
            """
            self.name = "Add date on PCB"
            self.category = "Modify PCB"
            self.description = "Automatically add date on an existing PCB"

        def Run(self):
            pcb = pcbnew.GetBoard()
            for draw in pcb.GetDrawings():
                if draw.GetClass() == 'PTEXT':
                    txt = re.sub("\$date\$ [0-9]{4}-[0-9]{2}-[0-9]{2}",
                                     "$date$", draw.GetText())
                    if txt == "$date$":
                        draw.SetText("$date$ %s"%datetime.date.today())

    text_by_date().register()