Этот репозиторий содержит исходные файлы для сборки нескольких типов шаблонов документов из Единой Системы Конструкторской Документации (ЕСКД):
- Перечень элементов
- Спецификация
- Групповая спецификация
- Ведомость покупных изделий
- Групповая ведомость покупных изделий
- Пояснительная записка
На основе выбранного шаблона создаётся текстовый документ, оформленный согласно
требованиям ЕСКД.
Документ построен таким образом, чтобы максимально упростить процесс заполнения
содержимого и основной надписи:
- документ содержит макросы, позволяющие автоматически построить перечень/спецификацию/ведомость и заполнить основную надпись (информация об элементах схемы и содержимое основной надписи извлекается из списка цепей проекта KiCad)
- имеется возможность добавить/удалить лист регистрации изменений
- автоматически подстраивается высота строк таблицы перечня/спецификации/ведомости
- автоматически подстраивается масштаб текста по ширине графы таблицы или основной надписи
- стили элементов документа имеют древовидную структуру, что позволяет изменять форматирование сразу для группы однотипных элементов
- графы таблиц имеют собственные автообновляемые стили, что позволяет применять форматирование ко всей графе сразу
- в документ встроены необходимые шрифты
Чтобы заполнить документ данными из проекта KiCad нужно пройти следующие шаги:
- Заполнить поля компонентов схемы должным образом и обновить список цепей.
- На основе шаблона создать новый документ и сохранить его в каталоге проекта KiCad.
- Настроить параметры формирования перечня/спецификации/ведомости.
- Запустить макрос построения перечня/спецификации/ведомости.
- Запустить макрос заполнения основной надписи.
- При необходимости, поправить форматирование и содержимое документа.
Шаблоны документов в отрытом формате *.ott
- это обычные zip-архивы
содержащие определённую структуру каталогов и файлов. Для каждого типа
документов в репозитории имеется каталог с содержимым шаблона в распакованном
виде. Это позволяет вести контроль изменений с помощью git. Скрипт
Makefile позволяет генерировать шаблоны в формате *.ott
с
помощью утилиты make
.
Для макросов, изображений, шрифтов и некоторых других файлов предусмотрены
специальные каталоги. Например, Fonts
для шрифтов, Scripts/python
для
макросов на языке программирования Python.
Все файлы содержащиеся в шаблоне обязательно должны быть указаны в файле
META-INF/manifest.xml
. После добавления какого-либо файла в шаблон, запись о
нём нужно добавить в файл manifest.xml.
Разработка шаблонов ведётся в среде GNU/Linux. На операционных системах Windows нужно воспользоваться подсистемой WSL.
Для сборки всех шаблонов достаточно запустить команду make all
или просто
make
в корневом каталоге проекта. При этом шаблоны сохраняются в каталоге
~/.config/libreoffice/4/user/template
где их ожидает видеть LibreOffice.
Чтобы сохранить собранный шаблон в другом каталоге, его можно указать с помощью
параметра OUT
:
make OUT=/path/to/templates/output
Чтобы собрать только некоторые из шаблонов нужно указать их название (по имени каталога):
make index # только перечень элементов
make spec # только спецификация
make bom manual # собрать ведомость покупных изделий и пояснительную записку
Специальна команда make archive
позволяет упаковать все собранные шаблоны в
7z-архив (zip-архив плохо поддерживает кириллицу в Windows). Архив будет
записан во временный каталог /tmp
.
Изначально целью проекта была автоматизация процесса генерации комплекта документации к проектам схем и печатных плат разработанных в САПР KiCad. Но в итоге шаблоны вышли довольно универсальными и могут использоваться для создания документов не связанных с KiCad.
Первой попыткой организовать вывод конструкторской документации напрямую из KiCad было приложение kicadbom2spec написанное на Python. Оно имело графический интерфейс для редактирования полей компонентов, полученных из KiCad, и позволяло создавать только перечень элементов. Когда стал вопрос добавления поддержки других типов документов было решено перейти на формат шаблонов документов со встроенными макросами вместо модернизации приложения и тому было несколько причин:
- созданный приложением документ было неудобно править в LibreOffice/OpenOffice
- добавление поддержки новых типов документов требовало существенного усложнения приложения, что сильно затруднило бы сопровождение проекта
- приложение было написано на устаревшей версии Python (Python3 начал вытеснять Python2 в большинстве дистрибутивов GNU/Linux)
Чтобы создать перечень элементов с помощью приложения kicadbom2spec
нужно
было добавить специальные поля для компонентов схемы KiCad. Для этого в
приложении был реализован редактор в виде таблицы с помощью которой можно было
легко заполнить все нужные поля и сохранить их в схему проекта KiCad. В то
время KiCad не имел встроенного редактора полей компонентов.
Шаблоны тоже требуют наличия определённый полей у компонентов схемы KiCad, но
сейчас они могут быть созданы и заполнены средствами KiCad. Перечень и формат
полей для шаблонов немного изменился, по сравнению с приложением
kicadbom2spec
. Чтобы сделать проекты KiCad оформленные с помощью
kicadbom2spec
совместимыми с шаблонами документов, в шаблоны были добавлены
специальные параметры, которые позволяют включить поддержку таких проектов.