LINUX.ORG.RU

pcb-rnd 1.2.8

 , , ,


3

3

21 марта, точно по расписанию, состоялся выпуск очередной версии свободного (GPL) редактора топологий печатных плат — pcb-rnd 1.2.8.

Проект существует с 2013 года, когда его автор (Tibor «Igor2» Palinkas) устав от неконструктивных дискуссий в списке рассылок проекта gEDA pcb, основал свой форк редактора и принялся реализовывать различные улучшения (более подробно про мотивацию и цели проекта). С тех пор было изменено/переписано более двух третей (68.8%) всей кодовой базы (объёмом ~200KSLOC). Помимо этого была проведена впечатляющая работа по организации сопутствующей инфраструктуры проекта, вокруг которого собралось активное сообщество (7000+ коммитов и 7 релизов в год).

Основные изменения в проекте в сравнении с pcb

  • Переписывание с нуля всей модели данных (новый формат файла, введение новых базовых примитивов padstacks и subcircuits вместо старых line/via/pin/pad), что позволило решить многие проблемы, существовавшие десятилетиями.
  • Переписан с нуля код управления слоями платы: отказ от старой модели, где существовали слои с явной физической привязкой (токопроводящий слой, шелкография, паяльная маска, контур платы) и присутствовало множество связанных с этим ограничений. Например, было невозможно убрать паяльную маску в произвольном месте без грязных хаков (вроде добавления проводника нулевой толщины). Теперь это не проблема: слои стали полностью абстрактными, их можно произвольно комбинировать между собой с помощью булевых операций, а при копировании/вставке элементов между разными стопками слоёв привязка (адаптация) к новой стопке осуществляется «на лету». Добавлен интерфейс редактирования стопки слоёв, введены динамические UI-слои, предназначенные для вывода различной информации поверх рабочего пространства и не влияющие на данные текущего проекта.
  • Изменения в библиотеке компонентов: введение параметрических посадочных мест, очистка от дубликатов, веб-интерфейс для генератора компонентов, подгрузка компонентов из online-библиотек, полноценная многоуровневость библиотеки (с гибкими настройками), собственный каталог компонентов (по сути являющийся улучшенным эквивалентом gedasymbols): анонс, каталог edakrill.
  • Модули импорта-экспорта для большого количества сторонних форматов (перечень howto по этой теме).
  • Новый скриптовый интерфейс программы поддерживает более десятка языков (от awk и Ruby до Python и Lua), всё — опционально.
  • Новая иерархическая система параметров проекта.
  • Очистка кода от glib, приведение всей кодовой базы к стандарту C89 (C99 для графического интерфейса на GTK).
  • Радикальная модуляризация: сокращение объёма ядра программы до минимума, вынос большей части функций в плагины.
  • Переход с autotools на scconfig.
  • Рефакторинг, избавление от неподдерживаемого кода.
  • Большой задел на будущее: основательная подготовка инфраструктуры, модульная архитектура приложения и чистые внутренние API позволяют легко расширять возможности программы. Например, уже сейчас ведётся активная работа над генераторами сеток (meshes) для FEM/FDTD-симуляторов.
  • Полная и прозрачная совместимость со всеми форматами файлов оригинального pcb.

Полезные ссылки

>>> Подробности

★★

Проверено: jollheef ()

Звучит неплохо!

AVL2 ★★★★★ ()

Снова игрушка одного человека?

dinn ★★★★★ ()
Ответ на: комментарий от dinn

На irc-канале проекта в данный момент 20 человек, половина из которых — разработчики/тестировщики модулей импорта-экспорта. Один человек не справился бы с таким объёмом изменений.

TwisteR ★★ ()
Ответ на: комментарий от dinn

Linux был игрушкой одного человека, и что из этого?

Если до ума доведут, то может что и получится. Я не фанат их подхода, но KiCAD - это тоже не альтернатива.

Было-бы неплохо получить бинарники, конечно.

alexru ★★★★ ()
Ответ на: комментарий от alexru

Linux был игрушкой одного человека, и что из этого?

Это когда было то? С тех пор очень многое изменилось.

KiCAD - это тоже не альтернатива.

Почему?

Было-бы неплохо получить бинарники, конечно.

geda собирался не сложно, думаю тут аналогично.

dinn ★★★★★ ()
Ответ на: комментарий от alexru

Было-бы неплохо получить бинарники, конечно.

Как раз в данный момент производится пакетирование для Debian, на днях завезут в арчевский AUR.

TwisteR ★★ ()

Нет, юзаем KiCAD и ждём, что будет с LibrePCB.

SL_RU ★★★ ()
Ответ на: комментарий от dinn

Почему?

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

geda собирался не сложно, думаю тут аналогично.

Под Win нужно, где это гораздо сложнее.

alexru ★★★★ ()

а тем временем в кикаде перерисовывают иконки

demidrol ★★★★★ ()

Звучит очень интересно! Кто-то пробовал уже в работе? P.S. Параметрические посадочные места - должна быть очень мощная фича! Мне этого в Альтиуме очень не хватает.

Tuxman ()

А там случайно не планируется поддержка 3D?

Tuxman ()

Наглядная картинка, демонстрирующая разнообразие внешних интерфейсов pcb-rnd.

Ещё бы скриншоты

atsym ★★★★★ ()
Ответ на: комментарий от Tuxman

А там случайно не планируется поддержка 3D?

В текущих планах проекта такой задачи нет. У Igor2 другие приоритеты, никто другой не вызвался с подобной инициативой.

Огромный патчсет по части 3D для оригинального pcb имеется у одного из разработчиков (Питера Клифтона), но я никогда не видел никаких попыток протолкнуть это дело в mainline. По списках рассылок когда-то гуляли лишь скриншоты.

Кто-то пробовал уже в работе?

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

Новые платы с использованием новых фишек пока не разводил.

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 2)
Ответ на: комментарий от atsym

Ещё бы скриншоты

По части UI ничего не изменилось, не считая парочки служебных диалогов и виджета слоёв (в нём добавились подписи).

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

TwisteR ★★ ()
Ответ на: комментарий от TwisteR

галлерея со скринкастами, которая прокатит за подборку скриншотов

Нет, не прокатит.

image != video

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от TwisteR

LibrePCB

А там случайно не планируется поддержка 3D?

В текущих планах проекта такой задачи нет.

Скорее бы ребята из LibrePCB раздуплились и наконец-то выкатили бы первый релиз

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от TwisteR

виджета слоёв (в нём добавились подписи).

мне может показалось, но когда тыкал, в pcb-rnd можно и количество слоёв менять, уже не помню, но в оригинальном pcb такой возможности нет.

h4tr3d ★★★★★ ()
Ответ на: комментарий от alexru

Переброс изменений из схемы в плату и назад - через жопу.

тут есть прогресс, в виде открытия схемы gschem непосредственно в pcb. А вот обратно, действительно хрен пойми как.

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

В gschem можно указывать footprint сразу. Другое дело, что иногда хотелось бы не делать этого в gschem, а иметь просто отдельный список, который подгружать вместе со схемой, так как иногда тип корпуса для разных разводок может меняться, без изменения оригинальной схемы. Есть gattrib, но он меняет оригинальную схему.

h4tr3d ★★★★★ ()
Последнее исправление: h4tr3d (всего исправлений: 1)
Ответ на: комментарий от TwisteR

Огромный патчсет по части 3D для оригинального pcb имеется у одного из разработчиков

Именно поэтому все такие форки мертворождённые: каждый пилит только нужное ему без оглядки на всех остальных.

dinn ★★★★★ ()
Ответ на: LibrePCB от atsym

Скорее бы ребята из LibrePCB раздуплились и наконец-то выкатили бы первый релиз

А что там такого интересного? Тем более развивается снова в одно лицо.

dinn ★★★★★ ()

Звучит очень неплохо, стоит попробовать

sehellion ★★★★★ ()
Ответ на: комментарий от dinn

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

Эта фраза применима к форкам с аутичным режимом работы «пилю в приватном репе полгода офлайн» + «выкатываю сообществу патч 50КSLOC». Такой режим является диаметрально противоположным всему тому, что мне известно про модель разработки pcb-rnd.

Именно поэтому все такие форки мертворождённые

Вот мертворождённый форк. А pcb-rnd доказал свою устойчивость на протяжении последних пяти лет. И сформировал сообщество активных разработчиков вокруг себя. Другое дело, что пиара мало и присутствие в репах оставляет желать лучшего (кстати, в Debian уже завезли сегодня ночью).

Подпишитесь на список рассылок, зайдите в чат, проанализируйте количество авторов в VCS, объём генерируемых ими коммитов.

Либо приведите другие метрики оценки живости форков. Замечу, что этот проект является ±ровесником libav и, фактически, уже его пережил.

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 1)
Ответ на: комментарий от h4tr3d

тут есть прогресс, в виде открытия схемы gschem непосредственно в pcb. А вот обратно, действительно хрен пойми как.

Судя по цепочке сообщений, оригинальный упрёк относился к KiCAD. Но, пожалуй, соглашусь, что и в gEDA данный процесс реализован не лучшим образом.

Автор форка планирует в ближайшее время начать работу над новым редактором принципиальных схем — cschem. За предыдущий год была составлена подробная документация и ТЗ на разработку. Среди прочего, там есть такое понятие, как ripple annotation (обоснование), т.е. процесс двустороннего обмена данными между схемой и любым другим инструментом в цепочке, будь то редактор печатных плат, база данных компонентов, система документооборота, симулятор и т.п.

Думаю, это будет верный шаг в решении проблем взаимодействия в электронных CAD'ах.

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 1)
Ответ на: комментарий от TwisteR

А pcb-rnd доказал свою устойчивость на протяжении последних пяти лет.

Может быть, но не развитие и популярность. Например большинство комментаторов узнало о существовании pcb-rnd из данной новости. Я уж не говорю что зайдя на http://kicad-pcb.org/ и http://repo.hu/projects/pcb-rnd/ первый сильно понятнее. Ну и так далее: 3d у кого-то другого и несовместимо и так далее. Всё надо искать по дальним местам интернета.

проанализируйте количество авторов в VCS, объём генерируемых ими коммитов.

Для этого надо выкачать svn и смотреть. В веб-интерфейсе ничего не понятно. Хотя что требовать от человека, который на вопросы о dvcs отвечает «мне не надо». А у того же git любой web-интерфейс сильно нагляднее.

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Ну к dvcs у него неприязнь, это да.

С другой стороны — что делать нам, простым юзерам, которым этот софт очень нужен, а мейнлайн (где тусил десяток git power-user'ов) уже фактически лет пять не развивается. Просто сравните текущую новость с предыдущей, где каждое изменение было в духе «переместили запятую».

Приходится запрыгивать в повозку к тем, кому важнее «ехать», а не «шашечки» :)

TwisteR ★★ ()
Последнее исправление: TwisteR (всего исправлений: 1)
Ответ на: комментарий от TwisteR

Ну к dvcs у него неприязнь, это да.

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

dinn ★★★★★ ()
Ответ на: комментарий от dinn

Там интересно то, что реализовано статическое связывание корпуса и символа УГО, как в PCAD и Eagle. Динамическое связывание как в KiCAD не всем нравится. Также вроде бы была заявлена совместимость с Eagle.

DarthVadimius ★★ ()

Эту САПР никогда не смотрел, но автор в прошлом году писал к нам в рассылку и предлагал кооперацию по форматам файлов.

DarthVadimius ★★ ()
Ответ на: комментарий от DarthVadimius

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

И он сам, и другие члены команды звенят во все доступные колокола :) Пытаются наладить более активное взаимодействие между различными открытыми проектами.

Вот про сборку RPM из списка рассылок недавно:

Alain Vigne

I volunteered for such a task, and it seems to have triggered a FEL (Fedora Electronics Labs spin) revival ?

В данный момент отлаживают плагин экспорта и пишут howto по использованию данных разводки в openEMS (сам mesher вроде как готов).

TwisteR ★★ ()
Ответ на: комментарий от TwisteR

по использованию данных разводки в openEMS

Это интересно. Если заработает, то может стать киллер-фичей данной САПР.

DarthVadimius ★★ ()
Ответ на: комментарий от DarthVadimius

Вот да, тоже с нетерпением жду. Отпишусь сюда, как будут новости по этой теме.

TwisteR ★★ ()
Ответ на: комментарий от dinn

KiCAD - это тоже не альтернатива.

Почему?

Интерфейс - торжество инопланетного разума.

anonymous ()
Ответ на: комментарий от TwisteR

Судя по цепочке сообщений, оригинальный упрёк относился к KiCAD

Ох... Упустил сей момент, каюсь!

Думаю, это будет верный шаг в решении проблем взаимодействия в электронных CAD'ах.

Эхх.. Мне сам редактор gschem очень нравится (в плане UI и взаимодействия с пользователем, я не говорю про внутрянку, форматы и так далее). Я правда запускаю всё это раз в тысячелетие, но в kicad, eagle не смог работать, как-то что-то не то, в gschem более менее. Если бы допилить его для организации обмена, имхо, было бы лучшим решением, чем пилить полностью своё.

база данных компонентов

А это вообще должно быть атрибутом PCB. Как выше писал: схема одна, а вот разводок может быть сколь угодно много. Да взять, хотя бы, простой пример с компонентами в DIP корпусах для прототипирования и SO/SOIC для финального выпуска. Схема останется идентичной, тогда как PCB будет отличаться разительно.

h4tr3d ★★★★★ ()
Ответ на: комментарий от DarthVadimius

Динамическое связывание как в KiCAD не всем нравится.

по практике промышленного выпуска оборудования, так и должно быть. Но в виде вменяемого интерфейса. По сути - это таблица со схемным номером элемента, его корпусом и «номиналом». И нужен вменяемый способ выбора типа корпуса.

Как минимум уже писал выше: микросхема или контроллер могут выпускаться в нескольких корпусах и разводка может отличаться для DIP и SOIC и могут быть несколько разводок: для R&D и для производства.

Следующее: за время выпуска изделия какой-то компонент может исчезнуть из производства. Это касательно «номинала»: понятно, что номинал конденсатора или резистора не изменится, а если изменится - это уже пересмотр схемы. А вот «номинал» или тип микросхемы вполне может измениться. Из последнего: не стало выбранной изначально SPI флешки, нашли совместимую по корпусу и протоколу. Схемно и в разводке ничего не изменилось, но номинал - новый и новая инструкция на производство.

h4tr3d ★★★★★ ()
Ответ на: комментарий от h4tr3d

Раньше была ветка Reverse-PCB для KiCAD я даж обзор делал, но там дикими костылями это было прикручено и в конце на патч забили.

DR_SL ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.