Подготовка тестовой среды и конфигурация
- Устанавливаем пакет MySQL:
viewtopic.php?f=78&t=837 - Создаем БД и тестовую таблицу:
viewtopic.php?p=8402#p8402
Из обязательных полей в данном случае только part_number, schematic_part и pcb_footprint. - Создаем источник данных ODBC:
viewtopic.php?p=8403#p8403 - Создаем файл конфигурации [имя источника данных].kicad_dbl (например, CIS.kicad_dbl)
с содержимым в формате JSON, где:- name - желаемое отображаемое имя источника данных
- description - подробное описание
- source - описание подключения. В данном случае достаточно указать тип odbc и dsn - имя ODBC-источника данных, который был создан выше:
- Код: Выделить всё
"source": {
"type": "odbc",
"dsn": "CIS",
"username": "",
"password": "",
"timeout_seconds": 2,
"connection_string": ""
},
- libraries - массив(список) объектов, каждый из которых описывает таблицу базы данных (resistors, capacitors и т.д.):
- name - отображаемое имя категории компонентов, которые содержит таблица, например Resistors.
- table - соответствующее имя таблицы в БД
- key - ключевое поле (первичный ключ). В данном случае part_number.
- symbols - поле со ссылкой на УГО компонента вида Имя_библиотеки:имя_символьного_обозначения, например Device:R. Не смотря на множественное число в имени этого параметра в данный момент (версия KiCAD 9.0.2) указать можно только одну ссылку. Возможно будет реализовано в будущем.
- footprints - поле со ссылкой на посадочное место вида Имя_библиотеки:имя_посадочного_места, например, Resistor_SMD:R_0201_0603Metric. Можно указать список из нескольких посадочных мест через точку с запятой, чтобы в последствии их можно было выбирать из списка при размещении компонента на схеме.
- fields - массив(список) полей таблицы, которые хотите использовать в KiCAD, каждый элемент которого имеет следующие свойства:
- column - имя поля в таблице, например, part_number
- name - отображаемое имя, например, Part Number
- visible_on_add - если true, поле будет видно в схеме при добавлении символа. По умолчанию false.
- visible_in_chooser - если true, поле будет показано в Symbol Chooser как столбец. По умолчанию false.
- show_name - если true, имя поля будет показано в дополнение к его значению в схеме, например, Manufacturer Part Number: ON Semiconductor. По умолчанию false.
- inherit_properties - если true и поле с заданным name уже существует в исходном символе, только содержимое поля будет обновлено из базы данных, а другие свойства ( visible_on_add, show_name, и т. д.) будут сохранены такими, какими они были установлены в исходном символе. Если заданное имя поля не существует в исходном символе, эта настройка игнорируется. Если заданное имя поля не существует в исходном символе, эта настройка игнорируется. По умолчанию false.
Для нормальной работы необходимо сконфигурировать минимум два поля: указанное выше уникальное ключевое поле part_number, в котором прописан уникальный идентификатор (Part Number(PN) компонента, либо номер производителя (Manufacturer Part Number(MPN), если осуществляется привязка компонента к конкретному продукту;
а также поле value (Value), в котором прописываются значения пассивных компонентов, либо партномера активных компонентов в упрощенном, сокращенном и удобочитаемом виде.
Для поля value значение параметра visible_on_add должно быть true, а для поля part_number - по желанию.
Если привязка в базе данных идет не к абстрактным компонентам, а к конкретным продуктам, то дополнительно можно сконфигурировать поле Manufacturer Part Number(MPN), в которое прописываются партномер производителя компонента. Обычно он отличается от просто партномера тем, что привязан к конкретному товару или продукту. Один PN может иметь несколько MPN. В MPN может быть дополнительно закодирован, например, такой параметр, как тип упаковки(коробка, лента и т.д.), кол-во единиц в упаковке и прочее в таком духе. Вместе с этим полем могут быть также добавлены поля Distributor (поставщик), Distributor Part Number (код, номер, артикул) поставщика, а также поле Price (цена) и прочие поля для формирования соответствующих расширенных отчетов BOM для закупки комплектации.
При использовании поля MPN нужно учитывать проблемы уникальности:- База привязана к PN. MPN в данном случае не представляет отдельную сущность и имеет справочный характер в рамках конкретного PN, а его значение изменяемо и задается для каждого PN по необходимости.
- База целиком привязана к MPN. В отдельном поле MPN нет необходимости, т.к. номер производителя в этом случае станет уникальным и будет прописываться в ключевое поле PN.
- База смешанная. Для позиций с привязкой к продуктам значение поля MPN должно дублироваться в поле PN, т.к. отдельно взятому PN могут соответствовать несколько MPN.
- Код: Выделить всё
"libraries": [
{
"name": "Resistors",
"table": "resistor",
"key": "part_number",
"symbols": "schematic_part",
"footprints": "pcb_footprint",
"fields": [
{
"column": "part_number",
"name": "Part Number",
"visible_on_add": false,
"visible_in_chooser": true,
"show_name": true,
"inherit_properties": true
},
{
"column": "value",
"name": "Value",
"visible_on_add": true,
"visible_in_chooser": true,
"show_name": false
}
{
"column": "part_type",
"name": "Part Type",
"visible_on_add": false,
"visible_in_chooser": true,
"show_name": false
},
- properties - карта свойств символа для столбцов базы данных. Все необязательны. Те, что не указаны в конфигурации библиотеки базы данных, будут унаследованы из значений, установленных для исходного символа. Поддерживаются следующие свойства:
- description - описание символа.
- footprint_filters - не используется (пока)
- keywords - ключевые слова
- exclude_from_bom - исключить из спецификации материалов. Указанный здесь столбец должен быть числового типа и будет восприниматься как логическое значение (0 для false, 1 для true).
- exclude_from_board - исключить из печатной платы. Указанный здесь столбец должен быть числового типа и будет восприниматься как логическое значение (0 для false, 1 для true).
- exclude_from_sim - исключить из симуляции». Указанный здесь столбец должен быть числового типа и будет восприниматься как логическое значение (0 для false, 1 для true).
Столбцы базы данных могут быть сопоставлены с настраиваемыми (определяемыми пользователем) полями или с некоторыми встроенными полями KiCad, включая Value и Datasheet.
- description - описание символа.
При редактировании файла JSON нужно строго соблюдать синтаксис. Квадратные скобки списков, фигурные для объектов, кавычки строковых значений, запятые - всё это важно, ничего нельзя упускать. KiCad на данный момент не умеет определять ошибки синтаксиса и в лучшем случае просто упадет, поэтому для редактирования файла конфигурации рекомендую использовать подходящий тестовый редактор, например, этот, а для валидации синтаксиса можно воспользоваться одним из онлайн-сервисов, например, этим.
Полезные ссылки: