Перейти к содержанию
    

Вывод текстовой документации в KiCAD-ГОСТ

Что за операционная система?

Какой ответ в терминале на команду:

ls -l $(which python2)

Если запустить kicadbom2spec из терминала:

python2 /usr/share/kicadbom2spec/kicadbom2spec.pyw

ошибка тоже проявляется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

lrwxrwxrwx 1 root root 9 апр 16  2018 /usr/bin/python2 -> python2.7

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В недалёком будущем в KiCad сменится формат файлов схемы и библиотек компонентов, а также будет выполнен переход на python версии 3. В связи с этим приложение kicadbom2spec станет непригодным. В связи с существующими недостатками приложения и большим объёмом работы по переводу приложения на новый формат файлов, решил отказаться от его дальнейшего развития.

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

offtop.

Мне нравится использовать кикад. Но как можно стремиться к проффесиональному использованию софта, когда они ломают совместимость с предидущими наработками каждие 2-3 года? в этом плане, как по мне эталон p-cad.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ничего там не ломают!

Де-факто второй питон везде уже deprecated, его еще полгодика от силы подержат, и выкинут в мусорку. Вон их более свежих уже сколько:

[I] dev-lang/python
     Доступные версии:      
     (2.7)  2.7.17 (~)2.7.17-r1
     (3.6)  3.6.9(3.6/3.6m)^t (~)3.6.10(3.6/3.6m)^t
     (3.7)  3.7.5-r1(3.7/3.7m)^t (~)3.7.6(3.7/3.7m)^t
     (3.8)  (~)3.8.1^t
     (3.9)  (~)3.9.0_alpha2^t

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

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

И да, чтобы поддерживать в актуальном состоянии библиотеки элементов, футпринтов и 3D-моделей советую их прямо с гитхаба себе скачивать, а не ставить из дистрибутива! Потом просто периодически git pull в каждой из директорий выполнять (хоть по крону, хоть руками), и будет хорошо.

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

baranovskiykonstantin

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

Не удалось получить данные о схеме.

Traceback (most recent call last):
  File "<путь>\<имя> ПЭ3.odt\Scripts\python\pythonpath\common.py", line 223, in getSchematicData
  File "<путь>\<имя> ПЭ3.odt\Scripts\python\pythonpath\schematic.py", line 651, in __init__
  File "<путь>\<имя> ПЭ3.odt\Scripts\python\pythonpath\config.py", line 151, in loadFromKicadbom2spec
  File "C:\Program Files\LibreOffice\program\python-core-3.7.6\lib\configparser.py", line 696, in read
    self._read(fp, filename)
  File "C:\Program Files\LibreOffice\program\python-core-3.7.6\lib\configparser.py", line 1014, in _read
    for lineno, line in enumerate(fp, start=1):
  File "C:\Program Files\LibreOffice\program\python-core-3.7.6\lib\encodings\cp1251.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 2081: character maps to <undefined>

LibreOffice 6.4.1.2 (x64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@break, отсутствие полей ошибки не вызывает. Судя по указанному сообщению об ошибке проблема в файле параметров kicadbom2spec. Файл параметров имеет кодировку UTF-8 и непонятно почему python пытается его прочитать с помощью кодека cp1251 (стандартная кодировка Windows). Файл параметров редактировался вручную?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

baranovskiykonstantin

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, break said:

Вообще не редактировался для этой схемы.

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

 

Если есть такая возможность, прошу выложить файл настроек (находится по пути "%APPDATA%\kicadbom2spec\settings.ini"), это бы сильно облегчило поиск причины, вызывающей ошибку.

1 hour ago, break said:

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

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

При создании шаблона руководствовался следующим: всё что можно сделать в KiCad - должно выполняться в KiCad (редактирование полей), всё что можно сделать в LibreOffice - должно выполняться средствами LibreOffice (форматирование документа, нумерация страниц, нумерация позиций и т.п.), остальное - выполняется посредством макросов (заполнение перечня/спецификации/ведомости/основной надписи, подстройка ширины текста и т.п.).

 

(Дополнено)

Провёл небольшой эксперимент. Добавил в свой файл настроек ("%APPDATA%\kicadbom2spec\settings.ini") символ "U+0098", на который python жаловался в приведённом выше сообщении об ошибке и получил тот же результат. Но при этом kicadbom2spec тоже перестал запускаться, выдавая подобное сообщение об ошибке.

Нужно открыть файл настроек в текстовом редакторе и удалить проблемный символ (в вашем файле это 2081-й символ). Остаётся непонятным как он туда попал.

Изменено пользователем baranovskiykonstantin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

baranovskiykonstantin

[window]
x = 100
y = 100
width = 970
height = 440
maximized = 0

[column sizes]
0 = 25
1 = 135
2 = 120
3 = 150
4 = 105
5 = 120
6 = 45
7 = 150
8 = 100

[general]
space as dot = True
show need adjust mark = False

[auto filling groups]
vd = 0Диоды
c? = 0Конденсаторы
vt = 0Транзисторы
r? = 0Резисторы

[values]
группа = Резисторы;;;Конденсаторы;;;Диоды;;;Транзисторы
марка = 
значение = 
класс точности = ±1%%;;;±5%%;;;±10%%
тип = 
стандарт = 
примечание = 

[prefixes]
значение = ""
класс точности = " "
стандарт = " "
тип = "-"
марка = ""

[suffixes]
значение = ""
класс точности = ""
стандарт = ""
тип = ""
марка = " "

[aliases]
тип = 
примечание = 
группа = 
марка = 
класс точности = 
значение = 
стандарт = 

[group names singular]
0 = Диод
1 = Конденсатор
2 = Транзистор
3 = Резистор

[group names plural]
0 = Диоды
1 = Конденсаторы
2 = Транзисторы
3 = Резисторы

[comp fields panel]
width = -330
name width = 120
value width = 140
show = 0

[complist]
dialog width = 440
file_format = .odt
all = False
units = True
space_before_units = True
empty_rows_after_group = 1
empty_rows_everywhere = False
prohibit_empty_rows_on_top = False
gost_in_group_name = False
singular_group_name = False
prohibit_group_name_at_bottom = False
first_usage = False
fill_first_usage = False
customer_fields = False
changes_sheet = False
italic = False
underline_group_name = False
center_group_name = False
center_reference = False
open = False
inspector = 

 

4 часа назад, baranovskiykonstantin сказал:

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

Кстати, я пришёл к выводу, что (из справки):

Цитата

Исключить

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

- не самый удобный вариант. При таком решении нет возможности группового ("множественного" по терминологии KiCAD) добавления и удаления этого поля. Если использовать значение поля, то можно будет производить групповое редактирование. Кстати, при добавлении этого поля в отдельные элементы, оно появляется в окне группового редактирования полей, но понять, к какому элементу схемы оно относится, невозможно. В это поле надо хотя бы что-то занести, иначе работать не будет. Причём есть хитрость - если в параметрах полей скрипта оставить поле "Исключить" незаполненным (или любым значением, кроме "Исключить"), то элементы в перечень попадут.

 

Кстати, я правильно понимаю, что количество полей нельзя увеличить? Например, в KiCAD уже есть поле "Precision", в макросе - нет. В том месте, где можно менять названия полей (вкладка "Поля" параметров перечня элементов) отсутствуют ещё кое-какие поля, например, "Значение". То есть его нельзя переименовать?

 

4 часа назад, baranovskiykonstantin сказал:

в вашем файле это 2081-й символ

Там всего 1773 байта. :mega_shok:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

baranovskiykonstantin

Кстати, графа "Первичная применяемость" не формируется.

И дополнительные графы над штампом на первой странице отсутствуют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, break said:

В это поле надо хотя бы что-то занести, иначе работать не будет.

Да, есть такое дело. Это особенность редактора полей KiCad. Если поле пусто, то при сохранении оно не создаётся, а если поле имело какое-то значение до редактирования, то оно удаляется. Поэтому для присутствия поля в компоненте, ему нужно присвоить какое-нибудь значение.

5 hours ago, break said:

Причём есть хитрость - если в параметрах полей скрипта оставить поле "Исключить" незаполненным (или любым значением, кроме "Исключить"), то элементы в перечень попадут.

В этом нет ничего хитрого. Если в качестве поля "Исключить" указать наименование поля, которого нет в компонентах, то, соответственно, ни один из компонентов не будет исключён. 

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

6 hours ago, break said:

Кстати, я правильно понимаю, что количество полей нельзя увеличить? Например, в KiCAD уже есть поле "Precision", в макросе - нет. В том месте, где можно менять названия полей (вкладка "Поля" параметров перечня элементов) отсутствуют ещё кое-какие поля, например, "Значение". То есть его нельзя переименовать?

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

Из документации:

Spoiler

Наименование

Значение поля с указанным именем будет помещено в графу Наименование.


...

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

Если значение, указанное в поле параметра, не содержит конструкций ${}, то оно воспринимается как наименование поля и в перечне будет использовано значение данного поля.

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

Примечание: если значение для поля Тип указано в виде шаблона, то к единственному/множественному числу будет приведено каждое значение из указанных полей. Если содержимое поля не соответствует формату тип в единственном числе {тип в множественном числе}, то это содержимое будет использоваться полностью как в единственном, так и в множественном числе.

Для примера можно рассмотреть Наименование в режиме совместимости с kicadbom2spec:


${|Марка|-}${Значение}${-|Класс точности|}${-|Тип|}

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

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

Обратите внимание, значения:


Наименование

и


${Наименование}

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

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

Если, предположим, нужно для компонента составить наименование из значений полей Значение и Precision разделённых дефисом, нужно в параметрах полей вместо наименования поля "Наименование" указать Шаблон "${Значение}-${Precision}".

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

6 hours ago, break said:

Там всего 1773 байта.

Странно. А kicadbom2spec запускается?

4 hours ago, break said:

Кстати, графа "Первичная применяемость" не формируется.

И дополнительные графы над штампом на первой странице отсутствуют.

Формат первого листа изменяется с помощью стиля страницы. Об этом есть в документации, раздел "Стили страниц".

"Первичная применяемость" может не заполняться если децимальный номер имеет неверный формат.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...