Как сделать полигон в kicad

Обновлено: 01.07.2024

столкнулся с необычным для меня поведением кикада в части переходных отверстий. А именно: хочется сделать аналог via stitching из Altium Designer (это когда два полигона соединяются массивом переходных отверстий).

ОК, полигоны я нарисовал, дырок наставил. А как им net name назначить? Через GUI никак?

И хуже того, при небольших изменениях на плате этот хитрый хмырь опять сбрасывает NetCode дырок на 0 (т.е. на not connected), и при перезаливке полигонов они оказываются отцепленными от него.

Прошу прощения за сумбурность описания проблемы. Просто удивительно, как такая простая фича (задание net name для трека или переходного отверстия) не реализована в таком популярном CAD'е.

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


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

В новой версии KiCad 6.0 копировать платы можно даже не открывая их в соседних окнах. Обновление 31.12.2021


Как сделать?

Далее, чисто случайно открыл в одном окне сбоку одну из нужных плат-прототипов, а в другом соседнем пустую (в новом другом проекте), и, о, чудо, скопировав полностью все дорожки (ручным выделением, Ctrl + A не работает), шелкографию, медь, маску. (ручное выделение + Ctrl+C) плата потом с легкость вставилась (Ctrl + V) в пустой лист, видимо именно в таком случай у них общий буфер


Советы

Контуры для вырезки

Сразу при черчении плат (или под конец) делайте вместе со слоем контуры доски такой же слой в виде шелкографии, чтобы потом точно нарезать было легче.


Слой края только один!

Если внутри будут слои, то плата будет выглядеть неправильно (без маски):


Чтобы такого не было при вставки убираем уже, как правило, имеющиеся границы каждой платы (желтый слой Edge.Cuts) и делаем только один, общий длч всех на том же слое Edge.Cuts с помощью линий (в конце должен получится замкнутый контур).


Не перезаливать полигоны

Конечно же нужно жмякать на кнопку B (перезаливка зон), чтобы не изменять ранее созданные по-отдельности платы.

Экспорт в GERBER


Выбрать нужные слои и выставить другие настройки как здесь:


Дальше нужен файл для сверления отверстий:


Не нажимать на заполнение:


Все файлики закидываем в архив, советую пользоваться 7-Zip:


Посмотреть как это будет выглядеть и проверить правильность экспорта можно на кучи площадок (да, она немного уменьшилась) :

Sergey Khoteev

@turbojedi Клаву хардварную была попытка сделать?

Sergey Khoteev

Sergey Khoteev

@001iz @Graveraider Всегда был вопрос а как у Evil персонажей могут быть романтики. Там скорее как в KoToR прогибание под свою сторону силы.

Sergey Khoteev

@Graveraider @001iz Q: Есть ли в игре романы? A: Да. Вы можете завести роман с 4 компаньонами, 2 из которых бисексуальны.

Sergey Khoteev

@001iz Заметки натуралиста, наплыв народу в комиксшопы вот произошел, после теории большого взрыва, где ненавязчиво подавалась идея что у задрота есть деньги, главное втереться к нему в доверие) Но только с хардкором тяжело.

Советуем посмотреть также Сайт Некроманта

Метки

Рассмотрим различные вспомогательные утилиты для работы kicad. Изначально я был полон энтузиазма и примеров вспомогательного софта было больше ,но как только я начал пробовать завести эти программы, они — отказывались работать, так что пока вот такой маленький обзор, но я думаю мы будем его расширять.

Table of Contents

Генераторы УГО и посадочных мест

Создаем УГО online

onlinelibgen_0.jpg

Figure 1: Начальное окно генератора

onlinelibgen.jpg

Figure 2: Таблица для генератора

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

Генерируем УГО из XML

Гененрирует из XML синтаксиса компоненты. Поддерживаются виды УГО DIP(==DIL) SIP(Развернутый SIL), CONN(==CONN1) QUAD(==PQFP)

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

Создаем УГО с помощью list2kc

Изначально это утилита от Qi-Hardware, xil2kc которая генерировала компонент из Xilinx-вского выхлопа(xil), форкнутая Некромантом.

Что здесь описано, в начале указано количество частей или подкомпонентов содержащихся в наше компоненте, ну это как допустим несколько логических элементов И в одной микросхеме.

Затем с помощью регулярных выражений python задается

Остается вопрос как указать электрический тип вывода?

Создаем посадочное место с помощью fped

fped.jpg

Собственно утилита с помощью которой можно создавать параметрические посадочные места,т.е. они будут зависеть от параметров таких как количество выводов или максимальная ширина дорожек. Этот функционал пытается решать Kicad Footprint Wizard(он входит в стандартную поставку KiCAD , проверьте флаги), но там пока всё сыро.

В будущем постараемся перевести руководство.

Хранение библиотек

Облачное хранилище компонентов kicadcloud

kicadcloud.jpg

В общем приятный сервис и что самое главное вы можете развернуть его на собственном сервере. Сюда можно загружать УГО и посадочные места, тут же их и визуализируют поддерживается загрузка 3D моделей. Также что приятно тут можно ставить лайки и коменты под каждым загруженым компонентом, что в будущем должно облегчить создание библиотек.

К сожалению никаких упоминаний о лицензии я не нашел , что беспокоит.

Конвертеры форматов

The Upverter Universal Format Converter

Не работает.

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

  • Upverter OpenJSON
  • KiCad
  • gEDA
  • Fritzing
  • RS274-X Gerber (see note)
  • NC Drill
  • Eagle
  • Eagle XML (in testing)
  • ViewDraw / DxDesigner (in testing)
  • DSN (in testing)
  • PNG Image
  • Bill of Materials
  • CSV Netlist
  • Altium (in development)
  • Telesis Netlist (in development)

Зависимости

  • python 2.6 -это вообще убило но вроде только ругаеться
  • freetype-py module

Установка

Так она должна выглядеть

Можете не устанавливать от администратора вот , а запускать прямо из папки конвертора

В общем не работает…. так как нет нормальной документации а библиотеки оно кушать не захотело… и примеров использования нет.

Работа с Github

eeshow.jpg

Давным давно а может недавно, здесь на сайте здесь показывал код которым пытался возродить скрипт schhist ,который позволяет смотреть изменения и вести проект kicad в системе контроля версий -git.

Но так как знаю мало и, а ещё я очень ленив, то подождав год обнаружил что уже существует проект который реализует все что мне нужно и имя ему eeshow

Проект eeshow как и его предшественник schhist родился в рамках работы с крупным железнячным проектом, только на этот раз проект ближе и понятней Neo900 — это замена железа в корпусе n900. Надеюсь у ребят получится, но уже спасибо за инструменты.

Установка

eeshow-3.jpg

w

Зависимости libgtk-3-dev, libcairo2-dev, libgit2-dev, transfig, и imagemagick

На убунте требуют:

Проверка работоспособности

Качаем весь проект телефона neo900.

eeshow-2.jpg

Проект обладает утилитой eeshow — практически альтернативная оболочка для просмотра kicad проектов, только на больших проектах много кушает.

Также есть консольные утилиты eeplot, eediff для автоматичекского создания изображений и pdf из файлов kicad.

Как я впервые делал печатную плату при помощи KiCad

Так исторически сложилось, что в качестве ПО для построения принципиальных схем и проектирования печатных плат долгое время я использовал EAGLE. Эта программа мне очень нравится низким порогом вхождения, наличием freeware версии, и, конечно же, поддержкой Linux. Столкнувшись в какой-то момент с ограничениями бесплатной версии (принципиальные схемы ограничены двумя листами, можно делать платы размером примерно до 10 x 10 см, число слоев в плате ограничено двумя) я решил купить EAGLE. И тогда я узнал, что компания-разработчик не продает его гражданам России. Вообще. Почему — не знаю. Тогда я впервые серьезно задумался о переходе на бесплатный и открытый KiCad.

А недавно, в силу некоторых нерелевантных причин, мне понадобилась небольшая платка — понижающий регулятор напряжения на 3.3 В, притом обязательно линейный, и питаемый от Mini или Micro USB. Импульсных регуляторов с AliExpress у меня хоть отбавляй, а вот платы с линейным регулятором что-то ни одной не нашлось. Можно было сделать и на макетке, но паять на ней разъем Micro USB не особо приятно. Вот я и решил сделать плату, ну и KiCad осилить заодно.

В Arch Linux лучше ставить KiCad из AUR:

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

KiCad включает в себя несколько отдельных программ для разных задач. Программы эти запускаются из основного окна KiCad. Для создания принципиальных схем предназначена программа под названием Eeschema. Ее интерфейс, как и интерфейс остальных входящих в KiCad программ, интуитивно понятен, поэтому я не буду его подробно описывать. Потратив пару минут, я без особого труда состряпал вот такую схему:

Принципиальная схема, построенная в KiCad

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

Еще одно отличие от EAGLE заключается в том, что обозначение компонентов на принципиальной схеме и то, как они будут выглядеть на плате (footprints) разделено. Другими словами, когда вы рисуете схему и хотите добавить керамический конденсатор, вы просто добавляете керамический конденсатор. Будет ли это конденсатор для монтажа через отверстия, или SMD-компонент размера 1206, вы решите потом. Футпринт редактируется в свойствах компонента в поле Footprint. Если подумать, это тоже очень логично, и намного удобнее, чем сделано в EAGLE. Например, если я решил изменить футпринт компонента, мне не нужно удалять его на схеме и добавлять заново — я могу просто отредактировать его футпринт. Кроме того, по мере добавления новых компонентов в KiCad количество логических представлений и футпринтов растет линейно, а в EAGLE — квадратично. Другими словами, в KiCad проще найти то, что вы ищите.

Важно! В KiCad можно установить кучу дополнительных футпринтов. Делается это в приложении PCB Library Editor, в меню Preferences → Footprint Library Wizard. Там нужно выбрать импорт библиотек с GitHub и нажать пару раз Next → Next → Next.

Из интересного в Eeschema также есть возможность автоматического поиска ошибок, доступная в меню Tools → Eletrical Rules Checker. Как и другие ERC, которые мне доводилось использовать, этот иногда ругается по делу, а иногда генерирует предупреждения, которые я не понимаю. Поэтому в целом я стараюсь не слишком полагаться на ERC. Однако прогнать его разок прежде, чем перейти к проектированию платы, никогда не повредит.

За проектирование печатных плат в KiCad отвечает программа Pcbnew:

Печатная плата, спроектированная в KiCad

Поскольку это совершенно отдельная от Eeschema программа, для получения так называемого крысиного гнезда (rat’s nest) из принципиальной схемы в KiCad требуется дополнительный шаг. В Eeschema нужно сказать Tools → Generate Netlist File. Затем в Pcbnew сказать Tools → Read Netlist. Или, то же самое можно сделать быстрее, воспользовавшись меню Tools → Update PCB from Schematic в программе Eeschema. Затем раскидываем компоненты, соединяем их дорожками, рисуем заполненные области (filled zones) — в общем, как обычно. Разве что, особое внимание следует уделить Design Rules. Там настраиваются ширина дорожки, размеры отверстий, и другие параметры.

Отдельного упоминания заслуживает 3D Viewer (доступен в Pcbnew в меню View → 3D Viewer):

3D-модель будущей платы, построенная в KiCad

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

Ситуация с автороутером в KiCad интересная. Своего автороутера у него нет, но он умеет интегрироваться со сторонним автороутером под названием FreeRoute. Для его использования нужно установить виртуальную машину Java. Затем скачать файл binaries/FreeRouting.jar из этого репозитория и сохранить его под именем /usr/bin/freeroute.jar. После этого автороутером можно будет воспользоваться в Pcbnew в меню Tools → FreeRoute. Автороутер вроде нормальный, работает.

Впрочем, в последнее время я предпочитаю разводить платы самостоятельно, чтобы точно понимать, где какая дорожка и зачем была проведена. Тем более, что при ручной разводке KiCad подсвечивает место, с которым должна быть соединена дорожка, и сам рисует ее с учетом настроенных Design Rules. То есть, для создания дорожки нужно сделать ровно два клика — откуда рисуем, и куда, остальное KiCad сделает автоматически. А при необходимости можно и подсказать, где именно должна проходить дорожка. Получается как бы полуавтоматический роутинг, сочетающий в себе сильные стороны ручного и автоматического подхода.

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

Моя первая плата, сделанная в KiCad

Можно разглядеть артефакты на одной из дорожек платы. Впрочем, появились они не по вине KiCad, а исключительно из-за моей криворукости.

Для получения негатива, ровно как и рисунка для ЛУТ, нужно воспользоваться диалогом File → Plot в программе Pcbnew (не перепутайте с File → Print). В качестве формата выбираем PDF. Выбор между негативом и позитивом, а также зеркальное отражение — все настраивается. Если нужно распечатать сразу несколько копий, в главном окне Pcbnew можно выделить нужный фрагмент и скопировать его, нажав правую кнопку мыши и выбрав Create Array. При попытке напечатать получившийся PDF через Evince рисунок почему-то исказился вплоть до исчезновения дорожек. Если печатать при помощи утилиты lpr , то все хорошо. Кстати, файлы Gerber можно сгенерировать в том же диалоге, просто выберите вместо PDF формат Gerber.

Fun fact! KiCad использует текстовый формат файлов. Это не только хорошо работает с Git, но и позволяет быстро производить множество однотипных изменений в проекте. Например, изменить диаметр всех via можно одной консольной командой: sed -i.bak 's/drill 0.2/drill 0.3/g' main.kicad_pcb .

Итого, я безумно доволен, и теперь вообще не понимаю, зачем все это время страдал с EAGLE. KiCad открыт и бесплатен, работает везде, не имеет никаких ограничений, обладает громадной библиотекой компонентов, и в нем просто все работает. О чем еще можно мечтать?

Конечно, пока что я не знаком абсолютно со всеми возможностями KiCad. Например, я не пробовал делать свои футпринты. К счастью, на YouTube доступно множество обучающих видео (вроде, футпринты делаются не сложно) и за помощью всегда можно обратиться на официальный форум.

Исходники к данной статье, как обычно, вы найдете на GitHub.

А пользуетесь ли вы KiCad? Если да, то довольны ли вы им, и чем пользовались до этого? Если нет, то чем пользуетесь сейчас, и планируете ли попробовать KiCad?

Дополнение: В KiCad 5.0 был добавлен SPICE-симулятор, основанный на ngspice. Пример его использования вы найдете в статье Базовые аналоговые фильтры: теория и практика.

Читайте также: