KiCad отличная программа для проектирования печатных плат, позволяющая создавать достаточно сложные проекты. Она поддерживает трёхмерную визуализацию изделия, что может быть очень полезно для нахождения ошибок в топологии или конструкции.
Есть лишь одно неудобство: KiCad не поддерживает широкораспространенный формат step. Многие производители электронных компонентов предоставляют 3D-модели своих изделий именно в этом виде. И, чтобы воспользоваться этими файлами, приходится конвертировать их в формат vrml, понимаемый KiCad’ом.
Способы конвертирования и подключения модели не совсем очевидны, особенно при использовании свободно распространяемого программного обеспечения.
В этой статье я расскажу, как без регистрации и смс преобразовать 3D-модель объекта для подключения его к посадочной площадке в библиотеке KiCad.
Если Вы решили ознакомиться с приведённым ниже материалом, то смею предположить, что KiCad у Вас уже установлен и имеется некий опыт создания печатных плат. Поэтому описывать особенности создания библиотек и посадочных площадок не буду.
Для работы нам понадобятся две программы – Blender и FreeCad.
Blender мы будем использовать для подгонки и конвертации модели в формат vrml, понимаемый KiCad’ом.
А FreeCad для промежуточной конвертации step-формата в stl-формат, поскольку blender не умеет работать с первым из них.
На самом деле FreeCad может сразу преобразовать step в vrml. Но делает он это не всегда корректно: иногда преобразованный файл не читатется KiCad’ом, и зачастую подгонка по размеру и положению объекта требует достаточно много времени. Blender значительно упрощает процесс привязки 3D-модели к посадочной площадке.
Есть ещё одна особенность связанная с тем, что KiCad интерпретирует все размеры объектов в vrml-файле в дюймах. Поэтому импортированные модели без масштабирования зачастую отображаются в увеличенном виде. Заодно они еще почти всегда смещены относительно центра и не правильно повёрнуты относительно платы и посадочной площадки. Чтобы сделать отображение корректным, нужно задать масштаб и положение либо в vrml-модели, либо в настройках компонента в библиотеке KiCad. На мой взгляд, правильнее подогонять коэффициенты в vrml-файле. Готовый файл должен открываться в любой библиотеке KiCad’а без последующих преобразований.
Принцип привязки 3D-модели рассмотрим на примере не сложного разъёма фирмы Molex 505433-1071
Вся необходимая информация – чертёж посадочной площадки и 3D-модель имеется на сайте производителя. Скачиваем требуемую step-модель.
Для начала полученную Step-модель конвертируем в stl-формат. Для этого запускаем FreeCad и открываем файл с разъёмом.
Для экспорта в формат stl нам нужно выделить твердотельную модель и с помощью File->Export сохранить её в нужном нам формате.
FreeCad нам больше не понадобится, можем его закрывать, запускаем Blender.
Азы работы с редактором выходят за рамки данной статьи. Если ранее Вам не приходилось работать с этой программой, то можно посмотреть пару начальных обучающих видео. Навыков навигации в рабочей области и элементарной работы с объектами должно быть достаточно для наших целей.
Если открылось стандартное начальное окно, то удаляем все три присутствующих на сцене элемента: куб, камеру и источник света. Стартовое окно может выглядеть несколько иначе, чем показано на рисунке ниже, но это сейчас не важно.
Выделяем все три элемента можно с помощью клавиши «A» (щдно нажатие снимет выделения со всех объектов, второе – выделит все объекты на сцене). Далее с помощью клавиши «X» удаляем все не нужные объекты.
Теперь можем импортировать нашу stl-модель: File-> Import->Stl.
Если такого меню нет, то идём в File->User Preferences…->Add-ons. В поиске вбиваем stl и устанавливаем флажок напротив Import-Export STL format
После импорта некоторых моделей (как и в нашем случае), можем наблюдать абсолютно пустую сцену:
Скорее всего объект находится за пределами сцены, а в центре находится лишь точка привязки объекта. Уменьшаем масштаб и видим, что разъем в самом деле находится далеко от начала координат.
Переместим его для удобства в центр.
Нажимаем клавишу «5» (переключаем вид на изометрическую проекцию) и «1» (переключаем вид на вид спереди) на дополнительной цифровой клавиатуре.
Выделив разъем, жмём клавишы «G» (переместить) и «Z» (двигать только по оси Z). Далее перемещаем объект приблизительно в начало координат по оси Z.
Потом переходим к виду справа – нажав кнопку «3» на дополнитльной клавиатуре. И с помощью комбинации «G» + «Y» двигаем объект в начало координат по оси «Y».
И в заключении ту же самую операцию проделываем для вида сверху: клавиши «7», «G», «X».
В итоге наша модель располагается приблизительно в центре координат. Только точка её привязки находится далеко за пределами самого объекта, что нас не устраивает. Поэтому переводим 3D-курсор в начало координат с помощью комбинации «Shift» + «C» и устанавливаем эту точку, как точку привязки Edit->Set Origin->Origin to 3D Cursor:
Теперь с разъемом удобнее работать как в Blender'е так и в KiCad'е. Для того чтобы в данном случае разъём было проще импортировать в KiCad, лучше всего разместить его так, что бы начало координат находилось на его поверхности среднего контакта в его центре. Переключаясь между разными видами способом, описанным ранее, подгоняем его местоположение к необходимому.
Завершив предварительное расположение, экспортируем модель в виде vrml.
File->Export->VRML2.
Если такого меню нет, то сначала идём в File->User Preferences…->Add-ons. В поиске вбиваем vrml и устанавливаем флажок напротив Import-Export VRML2 и Import-Export Web3D X3D/VRML2 format.
Выбираем путь, куда необходимо сохранить файл, задаём имя. В поле Scale – вводим магическое число 0,393701. Дело в том, что KiCad хочет видеть все измерения в дюймах, а у нас они, хм… в условных единицах — сантиметрах. В одном сантиметре – 0,393701 дюйма.
Жмём кнопку экспорт и смотрим результат в KiCad.
Создаём новый компонент. И сразу в настройках можем привязать нашу модель:
Edit->Footprint Properties-> 3D settings -> Add 3D Shape.
Открываем просмотр 3D и видим, что наша модель успешно загрузилась
Если модель повёрнута относительно платы в каком-либо направлении, то исправляем это в Blender’e: жмём клавишу «R» – для вращения объекта, и «X», «Y» или «Z» для вращения только в одной из соответственно выбранной плоскости. Далее вбиваем угол поворота – «90», "-90" или любой другой угол, и завершаем операцию нажатием enter. Ещё раз экспортируем модель, и обновляем вид в 3D-просмотре KiCad’а.
Все действия по смещению модели удобнее производить в Blender’е. В KiCad’е все изменения нужно задавать числами в дюймах, что совсем не дружелюбно для нас, привыкших везде видеть миллиметры.
Если в Blender’е мы расположили центр координат точно под средним выводом разъема, то и соответствующий контакт мы можем расположить точно по центру нашего нового компонента.
Создав посадочную площадку можно оценить, правильно ли расположены выводы будущей микросхемы в PCB, сравнивая расположение контактных площадок с трёхмерным изображением.
В следующей статье я опишу способ создания точной модели электронного компонента в Blender для его последующего импорта в KiCad. Задача на первый взгляд простая. Но есть несколько особенностей связанных с тем, что в Blender'е нельзя, как в современных CAD-системах, задавать точные размеры объектов в миллиметрах. Но приноровившись, можно создавать точные модели, пригодные даже для проверки созданных посадочных площадок.
Есть лишь одно неудобство: KiCad не поддерживает широкораспространенный формат step. Многие производители электронных компонентов предоставляют 3D-модели своих изделий именно в этом виде. И, чтобы воспользоваться этими файлами, приходится конвертировать их в формат vrml, понимаемый KiCad’ом.
Способы конвертирования и подключения модели не совсем очевидны, особенно при использовании свободно распространяемого программного обеспечения.
В этой статье я расскажу, как без регистрации и смс преобразовать 3D-модель объекта для подключения его к посадочной площадке в библиотеке KiCad.
Если Вы решили ознакомиться с приведённым ниже материалом, то смею предположить, что KiCad у Вас уже установлен и имеется некий опыт создания печатных плат. Поэтому описывать особенности создания библиотек и посадочных площадок не буду.
Для работы нам понадобятся две программы – Blender и FreeCad.
Blender мы будем использовать для подгонки и конвертации модели в формат vrml, понимаемый KiCad’ом.
А FreeCad для промежуточной конвертации step-формата в stl-формат, поскольку blender не умеет работать с первым из них.
На самом деле FreeCad может сразу преобразовать step в vrml. Но делает он это не всегда корректно: иногда преобразованный файл не читатется KiCad’ом, и зачастую подгонка по размеру и положению объекта требует достаточно много времени. Blender значительно упрощает процесс привязки 3D-модели к посадочной площадке.
Есть ещё одна особенность связанная с тем, что KiCad интерпретирует все размеры объектов в vrml-файле в дюймах. Поэтому импортированные модели без масштабирования зачастую отображаются в увеличенном виде. Заодно они еще почти всегда смещены относительно центра и не правильно повёрнуты относительно платы и посадочной площадки. Чтобы сделать отображение корректным, нужно задать масштаб и положение либо в vrml-модели, либо в настройках компонента в библиотеке KiCad. На мой взгляд, правильнее подогонять коэффициенты в vrml-файле. Готовый файл должен открываться в любой библиотеке KiCad’а без последующих преобразований.
Принцип привязки 3D-модели рассмотрим на примере не сложного разъёма фирмы Molex 505433-1071
Вся необходимая информация – чертёж посадочной площадки и 3D-модель имеется на сайте производителя. Скачиваем требуемую step-модель.
Для начала полученную Step-модель конвертируем в stl-формат. Для этого запускаем FreeCad и открываем файл с разъёмом.
Для экспорта в формат stl нам нужно выделить твердотельную модель и с помощью File->Export сохранить её в нужном нам формате.
FreeCad нам больше не понадобится, можем его закрывать, запускаем Blender.
Азы работы с редактором выходят за рамки данной статьи. Если ранее Вам не приходилось работать с этой программой, то можно посмотреть пару начальных обучающих видео. Навыков навигации в рабочей области и элементарной работы с объектами должно быть достаточно для наших целей.
Если открылось стандартное начальное окно, то удаляем все три присутствующих на сцене элемента: куб, камеру и источник света. Стартовое окно может выглядеть несколько иначе, чем показано на рисунке ниже, но это сейчас не важно.
Выделяем все три элемента можно с помощью клавиши «A» (щдно нажатие снимет выделения со всех объектов, второе – выделит все объекты на сцене). Далее с помощью клавиши «X» удаляем все не нужные объекты.
Теперь можем импортировать нашу stl-модель: File-> Import->Stl.
Если такого меню нет, то идём в File->User Preferences…->Add-ons. В поиске вбиваем stl и устанавливаем флажок напротив Import-Export STL format
После импорта некоторых моделей (как и в нашем случае), можем наблюдать абсолютно пустую сцену:
Скорее всего объект находится за пределами сцены, а в центре находится лишь точка привязки объекта. Уменьшаем масштаб и видим, что разъем в самом деле находится далеко от начала координат.
Переместим его для удобства в центр.
Нажимаем клавишу «5» (переключаем вид на изометрическую проекцию) и «1» (переключаем вид на вид спереди) на дополнительной цифровой клавиатуре.
Выделив разъем, жмём клавишы «G» (переместить) и «Z» (двигать только по оси Z). Далее перемещаем объект приблизительно в начало координат по оси Z.
Потом переходим к виду справа – нажав кнопку «3» на дополнитльной клавиатуре. И с помощью комбинации «G» + «Y» двигаем объект в начало координат по оси «Y».
И в заключении ту же самую операцию проделываем для вида сверху: клавиши «7», «G», «X».
В итоге наша модель располагается приблизительно в центре координат. Только точка её привязки находится далеко за пределами самого объекта, что нас не устраивает. Поэтому переводим 3D-курсор в начало координат с помощью комбинации «Shift» + «C» и устанавливаем эту точку, как точку привязки Edit->Set Origin->Origin to 3D Cursor:
Теперь с разъемом удобнее работать как в Blender'е так и в KiCad'е. Для того чтобы в данном случае разъём было проще импортировать в KiCad, лучше всего разместить его так, что бы начало координат находилось на его поверхности среднего контакта в его центре. Переключаясь между разными видами способом, описанным ранее, подгоняем его местоположение к необходимому.
Завершив предварительное расположение, экспортируем модель в виде vrml.
File->Export->VRML2.
Если такого меню нет, то сначала идём в File->User Preferences…->Add-ons. В поиске вбиваем vrml и устанавливаем флажок напротив Import-Export VRML2 и Import-Export Web3D X3D/VRML2 format.
Выбираем путь, куда необходимо сохранить файл, задаём имя. В поле Scale – вводим магическое число 0,393701. Дело в том, что KiCad хочет видеть все измерения в дюймах, а у нас они, хм… в условных единицах — сантиметрах. В одном сантиметре – 0,393701 дюйма.
Жмём кнопку экспорт и смотрим результат в KiCad.
Создаём новый компонент. И сразу в настройках можем привязать нашу модель:
Edit->Footprint Properties-> 3D settings -> Add 3D Shape.
Открываем просмотр 3D и видим, что наша модель успешно загрузилась
Если модель повёрнута относительно платы в каком-либо направлении, то исправляем это в Blender’e: жмём клавишу «R» – для вращения объекта, и «X», «Y» или «Z» для вращения только в одной из соответственно выбранной плоскости. Далее вбиваем угол поворота – «90», "-90" или любой другой угол, и завершаем операцию нажатием enter. Ещё раз экспортируем модель, и обновляем вид в 3D-просмотре KiCad’а.
Все действия по смещению модели удобнее производить в Blender’е. В KiCad’е все изменения нужно задавать числами в дюймах, что совсем не дружелюбно для нас, привыкших везде видеть миллиметры.
Если в Blender’е мы расположили центр координат точно под средним выводом разъема, то и соответствующий контакт мы можем расположить точно по центру нашего нового компонента.
Создав посадочную площадку можно оценить, правильно ли расположены выводы будущей микросхемы в PCB, сравнивая расположение контактных площадок с трёхмерным изображением.
В следующей статье я опишу способ создания точной модели электронного компонента в Blender для его последующего импорта в KiCad. Задача на первый взгляд простая. Но есть несколько особенностей связанных с тем, что в Blender'е нельзя, как в современных CAD-системах, задавать точные размеры объектов в миллиметрах. Но приноровившись, можно создавать точные модели, пригодные даже для проверки созданных посадочных площадок.
Комментарии (9)
VCheese
05.07.2018 19:18Ровно две недели назад автор FreeCAD — Yorik van Havre — опубликовал плагин импорта фрикадовских файлов для Блендера. Это снова стало возможным после перехода на третью версию Питона.
tezcatlipoc
06.07.2018 07:07только решил освоить Игл и вроде как переболеть детством с KiCAD как опять что то интересное по нему выкидывают
oam2oam
Не знаю, о какой версии kicad вы пишите, но по крайней мере в версии 5.0.0-rc2 с форматом step все очень хорошо — он и читается и пишется.
Abwindzentrierer Автор
Да, забыл указать: KiCad версии 4.0.7 для Windows.
xztau
Вообще то официальная стабильная 4.0.7
5 это только ночные сборки.
oam2oam
Вы правы… но 5 — это уже другой уровень, реально позволяет делать быстро и качественно проекты. Вообще мне именно нравится в kicad — это самый быстрый и понятный способ довести малый или даже средний проект до запуска в производство!
Только вот жду не дождусь когда git интегрируют внутрь…
Abwindzentrierer Автор
Есть много крутых дополнений к kicad'у. Но пользоваться ими бывает боязно: если плата делается не как опытный образец для себя, то я бы стал пользоваться только официальной версией. Иначе, к примеру, при передаче работы кому-нибудь другому, придётся указывать версию сборки. А то и прикладывать её вместе с архивом проекта.
xztau
Осталось дождаться релиза:)
Кстати, Вы не на Linux случайно 5-ю версию гоняете? У неё с производительностью как?
Сейчас при масштабировании тормозит жутко в pcbnew и схемотехнике.
oam2oam
да, я работаю под Linux. С производительностью все отлично! Ни разу не притормаживало…