Генерация перечней элементов в Kicad по ГОСТ

В этой статье хочу затронуть тему перечней элементов и спецификаций по ГОСТ в соответствии с ЕСКД. Многие до сих пор создают их вручную, те кто пользуются Altium в курсе, что там есть специальный плагин GOST, который позволяет формировать перечни, а что же там у Kicad? Я задался этим вопросом и решил изучить тему.

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

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

Работать с шаблонами я буду с помощью LibreOffice в ОС Linux и в первую очередь необходимо обеспечить запуск макросов документа. Чтобы установить параметры запуска макросов переходим меню Сервис > Параметры > LibreOffice > Безопасность и жмем на кнопку Безопасн.макросов

Я для себя установил средний уровень безопасности.

Также при открытии файла шаблона я получил ошибку LibreOffice «Язык сценариев Python не поддерживается», что означает, что необходимо через менеджер пакетов установить дополнительный пакет libreoffice-script-provider-python.

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

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

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

После открытия файла у нас в панели инструментов появляется вот такая панелька

а в самом документе мы уже можем увидеть форматную рамку по ЕСКД.

Макросы в данном шаблоне документа позволяют максимально упростить процесс оформления, позволяя автоматически построить перечень / спецификацию / ведомость и заполнить основную надпись (информация об элементах схемы и содержимое основной надписи извлекается из списка цепей проекта KiCad). Макрос также позаботится об автоматической подстройке масштаба текста и высоте строк перечня / спецификации. Все шрифты также уже встроены в шаблон документа.

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

Нажимаем кнопку Построить перечень и он готов

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

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

На этом статья закончена. В блоге еще много статей по #kicad, не хотите пропустить новые — подписывайтесь на мой канал в telegram.

14 Ответов в “Генерация перечней элементов в Kicad по ГОСТ

  1. Добрый день. А позиционные обозначения расставляются в порядке возрастания или в одной строке могут быть C1, C5, C7 допустим 0,1 мкФ, а дальше C2 и тд? И под macOS работает как думаете?

    1. Расстановка в порядке возрастания, будет работать везде, где есть поддержка libreoffice и макросов для него.

  2. А можно ли как-то отредактировать шаблон Ведомости покупных под формат A4?

  3. Как насчет Альтиума или других ПО? Кикад бесплатный в чем его плюсик

    1. Я 3 года пользовался только альтиумом, но решил что стоит перейти на Kicad.

  4. При построении возникла ошибка:

    Traceback (most recent call last):
    File «vnd.sun.star.tdoc:/1/Scripts/python/spec.py», line 308, in run
    File «C:\Users\Andrii\Google Диск\!KiCad\Спецификация.odt\Scripts\python\pythonpath\schematic.py», line 829, in getGroupedComponents
    File «C:\Users\Andrii\Google Диск\!KiCad\Спецификация.odt\Scripts\python\pythonpath\schematic.py», line 831, in
    File «C:\Users\Andrii\Google Диск\!KiCad\Спецификация.odt\Scripts\python\pythonpath\schematic.py», line 382, in getSpecValue
    File «C:\Users\Andrii\Google Диск\!KiCad\Спецификация.odt\Scripts\python\pythonpath\schematic.py», line 58, in getFieldValue
    File «C:\Users\Andrii\Google Диск\!KiCad\Спецификация.odt\Scripts\python\pythonpath\schematic.py», line 155, in getValueWithUnits
    AttributeError: ‘NoneType’ object has no attribute ‘startswith’

    Что я делаю не так?
    Спасибо

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

  5. К сожалению нет(
    При построении возникла ошибка:

    Traceback (most recent call last):
    File «vnd.sun.star.tdoc:/1/Scripts/python/spec.py», line 308, in run
    File «D:\123.odt\Scripts\python\pythonpath\schematic.py», line 829, in getGroupedComponents
    File «D:\123.odt\Scripts\python\pythonpath\schematic.py», line 831, in
    File «D:\123.odt\Scripts\python\pythonpath\schematic.py», line 382, in getSpecValue
    File «D:\123.odt\Scripts\python\pythonpath\schematic.py», line 58, in getFieldValue
    File «D:\123.odt\Scripts\python\pythonpath\schematic.py», line 155, in getValueWithUnits
    AttributeError: ‘NoneType’ object has no attribute ‘startswith’

  6. Я не нашел возможности добавить элементы спецификации вручную. Ведь в ней должны быть, например, корпус, стойки, винты, соединительные шлейфы…

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

  7. Не удалось получить данные о схеме.
    При разборе файла обнаружена ошибка:
    Строка 965, позиция 93:
    У элемента обнаружено второе значение (не может быть больше одного)!

    Как не может быть больше одного, если элемент составной? Кнопка с диодом внтури, символ разбит на два компонента…

    (comp (ref «S2»)
    (value «5G_1_Led»)
    (footprint «my:5GTH9»)
    (datasheet «https://ru.mouser.com/datasheet/2/26/Apem_08222017_Multimec_5G-1158362.pdf»)
    (libsource (lib «my») (part «5G_1_Led») (description «»))
    (property (name «Sheetname») (value «Лист 1»))
    (property (name «Sheetfile») (value «Main List 1.kicad_sch»))
    (sheetpath (names «/Лист 1/») (tstamps «/b21625e3-a75b-41d7-9f13-4c0e12ba16cb/»))
    (tstamps «84881199-eaed-4b32-88ff-9856bd186864» «4bdd8ce7-b90d-423d-a456-c0f3c8ad52d4»))

    Надо бы скрипт kicadnet.py подправить для таких случаев.

Комментарии отключены.