//Эта страница доступна также на следующих языках:// [[roadmap|English]]

====== Стратегия развития PCB ======

Настоящее руководство посвящено будущим направлениям развития редактора
топологии печатных плат **pcb**.

  * Несколько вопросов по **pcb** есть в [[geda>geda:design_flow_and_hierarchy_roadmap | Стратегии развития gEDA]].
  * Несколько вопросов по **pcb** есть также в [[geda:todos.ru| списке того, что нужно сделать в gEDA]].
  * Несколько пожеланий перечислено в [[:pcb-projects.ru | проектах по pcb ]].



===== Общие указания по выпускам новых версий =====

В целом, в **pcb** может быть три вида изменений --- исправления ошибок,
новые возможности и несовместимые изменения.  //Исправление ошибок// (//bug
fix//) нужно, когда программа не делает того, что должна делать; сюда входят
как ошибки в документации, так и проблемы с самим кодом программы.  //Новая
возможность// (//new feature//) --- это нечто, добавляющее функциональность
в **pcb**, но никоим образом не изменяющее уже имеющейся
функциональности. //Несовместимое изменение// (//incompatible change//) ---
это любое (преднамеренное) изменение, вызывающее проблемы несовместимости с
прежними версиями **pcb** и обычно означающее большие изменения в построении
программы.  Заметьте, что новые возможности, добавляющие обратно-совместимые
изменения в формат файла //при его использовании//, в эту категорию не
входят.

Текущие планы таковы:
  * выпускать версии с исправлениями ошибок каждые два месяца или около того, пока не останется нерешённых вопросов;
  * начать работу над выпуском версии 4.0 с несколькими большими изменениями в проекте, которые мы обсуждаем годами.

В настоящий момент выпуски с исправлениями ошибок будут иметь названия вида
''pcb-ГГГГММДД''.  После выпуска версии 4.0, числа ''major.minor.bugfix''
будут соответствовать трём категориям, указанным выше: номер выпуска с
исправлениями ошибок будет *.*.N, выпуск с новыми возможностями --- *.N,
выпуск с большими изменениями --- N.0.  Числа ''ГГГГММДД'' будут тогда
использоваться для регулярных срезов разработки, не выпускаемых в качестве
официальных версий.

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

Ошибки, заплаты и запросы новых возможностей должны добавляться в
[[https://bugs.launchpad.net/pcb |систему отслеживания ошибок
Launchpad]]. Их статус по умолчанию --- «нерешённый» (**undecided**).
Запросы с таким приоритетом считаются непроверенными.

===== Следующий выпуск с исправлениями ошибок =====

Это перечень исправлений, которые //должны быть// осуществлены прежде, чем
выпускать новую версию с исправлениями ошибок, в дополнение к любым
артефактам «следующего выпуска с исправлениями» в системе отслеживания
ошибок.

===== Будущие выпуски с исправлениями ошибок =====

Это перечень исправлений, которые должны быть сделаны со временем.


===== Следующий выпуск с новыми возможностями =====

Это список новых возможностей, которые хочется иметь к выпуску следующей версии с новыми возможностями (или, может быть, к следующему выпуску с исправлениями, если позволит время).
  * Сделать код //C++//-совместимым.
  * Разрешить перекрытие поясков переходов.
  * Больше стилей трассировки.
  * Разрешающая способность в нанометрах --- это переход на «метрические единицы», который многократно обсуждался.
  * Настоящие типы слоёв. По меньшей мере шелкография (silk), барьеры трассировки (keepouts), маска (mask) и слой документации (docs). Может быть черчение в негативе (anti-draw) или вставка (paste).

===== Будущие выпуски с новыми возможностями =====

Другие возможности, которые должны быть добавлены со временем.

===== Следующий выпуск с несовместимыми изменениями =====

Это список больших изменений, которые, по нашему мнению, желательно включить
в **pcb**, и к которым мы собираемся приложить свои усилия.

===== Будущие выпуски с несовместимыми изменениями =====

Это перечень других больших изменений, которые, по нашему мнению, желательно
включить в **pcb**, но к которым до сих пор не прикладывалось никаких
усилий.

===== Список пожеланий =====

В этом разделе перечислены возможные проекты для будущих выпусков, насчёт
которых либо не было согласия, либо не было запланировано время на них. Если
вам хочется взяться за один из них, вперёд :-)

  * Здесь есть предложение по [[geda>geda:pcb_layers | новым слоям]].
  * Остальные подчистки графического интерфейса. Модернизация Gtk в соответствии с «установившейся практикой».  Настройка импорта файлов.
  * Плагин «мастер настройки импорта» (и то же самое для экспорта).
  * Чистка/переработка DRC.
  * Движок CAM? (т. е. возможность сказать «чертить внешний контур на слое маски верхней стороны» через скрипт/настройки)
  * Новый формат файла, который мы обсуждали.
  * Дуги переменных углов. 90 градусов --- это чрезмерное ограничение.
  * Заполненные окружности без «костылей».  В настоящее время для получения заполненной окружности нужно создавать дорожку нулевой длины подходящей ширины.
  * Унификация сочетаний клавиш в **gschem** и **pcb** или, по крайней мере, лёгкая возможность подстройки **pcb** под сочетания программы **gschem**.
  * Лучшая поддержка свободного вращения компонентов: стремиться, чтобы контактные площадки с прикольными углами отрисовывались правильно, исправить автотрассировщик для компонентов с чудными углами (последняя версия из git имеет тенденцию в зависимости от обстоятельств или игнорировать команду трассировки, или выдавать ошибки сегментации), добавить информацию о вращении в сообщения, выводимые по <key>ctrl-r</key>, и т. д.
  * Возможность копировать имя посадочного места из диалогового окна библиотеки (чтобы его можно было вставить в список атрибутов в **gschem**).
  * Возможность редактировать список соединений «на месте» (может быть с помощью вычерчивания линий связи (rat lines) на их слое), то есть, когда нужно добавить радиатор, припаянный к земле, он будет всегда показываться как закороченный, пока список соединений не будет изменён так, чтобы он был включён туда.
  * Калькулятор импеданса дорожек с возможностью автоподстройки (ширина заполнения, конструктивная (паразитная) ёмкость и желаемый импеданс и подстройка ширины для удовлетворения этим условиям).
  * Интеграция просмотра и получения посадочных мест с gedasymbols.org.
  * Иерархическая модель платы --- подъячейки, посадочные места как топология и т. д.
  * Форма, которую я давно хотел бы иметь для контактной площадки, это круг с обрезанными краями. Это немного отличается от овала. Было бы здорово иметь что-то вроде логических операций над изображениями, как в Inkscape.
  * Как насчёт текста под углами, не кратными 90 градусов? Или поддержка поворота квадратных площадок? (Я знаю, обе возможности не поддерживаются в формате файла.)
  * Редактирование с помощью сетки должно быть убрано! Подсчёт точек сетки --- это наихудший способ вводить позиционную информацию в компьютер из всех возможных.
  * Сделать редактируемыми все поля в отчётах по объектам.
  * Разрешить прямой ввод смещений и абсолютных положений при редактировании.
  * Добавить возможности «offset» («смещение») и «trim» («подрезка») как в программах 2D CAD.
  * Добавить возможность черчения линий вида «точка к касательной» и «касательная к касательной» как в программах двумерных CAD.
  * Автоматическое сохранение файла в формате наименьшей требуемой версии. Установка версии формата файла в зависимости от используемых возможностей, а не от версии самой программы. Это будет ценно, когда мы добавим такие вещи, как глухие переходы, нестандартные стеки контактных площадок и т. д. ...
