pcb-rnd 1.2.8

good-penguin.png

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.

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

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

©  Linux.org.ru