freecadpcb_finauisp.png

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

Времена когда мы делали модельки компонентов в wings3d с его ужасным управлением, а если и делали чем другом, то все равно приходилось сохранять через wings потому что kicad читал только wrml от wings3d. Все эти масштабирование на 2.54, они кажется в прошлом и хотя сейчас в самом kicad планируют как то переписать и пересмотреть 3D рендер и формат присоединяемых моделей

Но это уже не важно KiCAD-PCB работает отдельно.

Изначально модуль назывался (да и сейчас url) eagle2freecad, ну все было понятно пользователи Eagle написали для себя конвертор и им пользуются, но это обманчивое польский разработчик потрудился на славу и теперь софт поддерживает импорт из

  • Eagle (*.brd)
  • Razen (*.rzp)
  • FreePCB (*.fpc)
  • gEDA (*.pcb)
  • FidoCadJ (*.fcd)
  • KiCad (*.kicad_pcb)
  • IDF v2/v3

Вопрос о версии FreeCAD

Как известно, разработчики KiCAD где-то года 3 назад заговорили а потом и ввели новый формат S-exp(похоже на лисп), в результате файлы плат стали называться не .pcb а .kicad_pcb

Пересохранил имеющиеся у меня чужие проекты из старого формата в новый который FreeCAD-PCB пока не кушает, так как судя по ответу разработчика верстак пока кушает файлы только 3 версии kicad_pcb , а смена с 3 на 4-ю произошла на ревизии rev4958 2014-06-30.

Ниже я опишу как собрать kicad определенной версии, но тестирование на ревизии 4957 не сработало хотя форма платы был 3

$ bzr branch lp:kicad kicad.bzr
$ cd kicad.bzr
$ bzr revert -r4957
$ bzr update -r4957                                 
All changes applied successfully.                                                                                                                                      
Updated to revision 4957 of branch /home/user/src/kicad.bzr
$ bzr revno
5528
$ bzr version-info
revision-id: jp.charras@wanadoo.fr-20140629092442-11cb79weyb0t72ms
date: 2014-06-29 11:24:42 +0200
build-date: 2015-04-08 00:02:44 +0300
revno: 4957
branch-nick: kicad.bzr
#Собираем
$ mkdir build
$ cd build
$ cmake -DKICAD_TESTING_VERSION=ON ../
$ make
$ sudo make install

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

Установка

Собственно качаем последнию версию архива(не нашел репозитория автора)

7z x -o~/.FreeCAD/Mod PCB.7z

При обновлении версии FreeCAD-PCB не забудьте сохранить базу данных.

cp ~/.FreeCAD/Mod/PCB/data/database.cfg /tmp
7z x -o~/.FreeCAD/Mod PCB.7z
cp /tmp/database.cfg ~/.FreeCAD/Mod/PCB/data/

Модели используемые FreeCAD-PCB должны лежать в ~/.FreeCAD/Mod/PCB/parts/ именно относительно этого пути программа ищет файлы моделей

И скачиваем два архива с моделями

7z x -o models_1.7z
cp -r  models_1/* ~/.FreeCAD/Mod/PCB/parts/
rm -r  models_1
7z x -o models_2.7z
cp -r  models_2/* ~/.FreeCAD/Mod/PCB/parts/
rm -r  models_2

Ещё можно добавить сборник моделей от создателей freecad

$ git clone https://github.com/yorikvanhavre/FreeCAD-library.git
$ cd FreeCAD-library
$ pwd
/home/user/src/FreeCAD-library
nano PartsLibrary.FCMacro
LIBRARYPATH = "/home/user/src/FreeCAD-library"
cp PartsLibrary.FCMacro ~/.FreeCAD

Импорт платы

Открываем FreeCAD , в меню Вид выбираем Рабочий стол/Workbench/Верстак -> Printed Circuit Board

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

freecadpcb_importplate.png

Теперь выберем деталь которая не добавилась на плату. В моем случае это P106, затем смотрим на свойство Package: PIN_ARRAY_5x2 ,открываем базу данных моделей Assign Models идем в раздел Goldpins и добавляем строку записи с данными что на скриншоте

freecadpcb_addmodel_string.png

Теперь о том как обновить модель. Ну во первых есть кнопка глобального обновления. С другой стороны выбрав одно из посадочных мест с этой моделью и кликнув правой клавишей можно выбрать пункт PCB-Model -> Update Model

freecadpcb_updatemodel1.png

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

freecadpcb_updatemodel2.png

Вот например добавление совершенно новой записи в базу данных, модельку кнопки позаимствовали из запасника FreeCAD-library, как только они разрастутся можно будет соединить их с папкой parts символьной ссылкой

freecadpcb_addnewmodel.png

В конце концов мы получаем набор объектов. К сожалению нормально перемещать задавая координаты не получится,но если выделить все объекты входящие в плату то можно их перемещать например инструментом Draft — Move

freecadpcb_draft_move.png

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

В архиве PCB.7z находится прексрасно иллюстрируемое руководство, за что огромное спасибо автору FreeCAD-PCB!!

Осталось найти или написать модуль для роботы с проводами и FreeCAD будет готов к электромеханике. Отдельный вопрос как он потянет все то множество объектов и плат.