User Tools

Site Tools


geda:usage.ru

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
geda:usage.ru [2011/11/01 08:48]
vzh Formatting
geda:usage.ru [2014/04/22 12:57]
vzh Use angle quotes
Line 1: Line 1:
 +//Эта страница доступна также на следующих языках://​ [[usage|English]],​
 +[[usage.fr|Français]].
 +
 +====== Каков наилучший способ научиться работать в gEDA? ======
 +Первое,​ что нужно сделать,​ это прочитать и понять превосходный учебник
 +[[geda:​gsch2pcb_tutorial.ru|gschem -> gsch2pcb -> pcb]] от //Bill Wilson//
 +и/или [[http://​www.delorie.com/​pcb/​docs/​gs/​gs.html|Введение в pcb]] от //DJ
 +Delorie//​. ​ Это база для начала работы.
 +
 +Непременно посмотрите также и другую [[geda:​documentation.ru|документацию
 +gEDA]], доступную на этом веб-сайте.
 +
 +Но всё же лучший способ изучить комплекс gEDA Suite --- загрузить его и
 +попробовать самому! Если вы будете держать под рукой учебник от //Bill
 +Wilson//, пробуя работать с программами,​ то очень быстро станете экспертом!
 +
 +====== Как выглядит маршрут проектирования в gEDA? ======
 +Вот небольшая диаграмма разработки простой печатной платы с помощью gEDA
 +Suite:
 +
 +{{:​geda:​design_flow.ru.png}}
 +
 +Вкратце [[geda:​glossary.ru#​маршрут проектирования]] простой печатной платы таков:
 +  - Создаёте свою [[geda:​glossary.ru#​Принципиальная схема|принципиальную схему]] в **gschem**.
 +  - Проверяете её с помощью драйвера [[geda:​glossary.ru#​Проверка соответствия проектным нормам|проверки соответствия проектным нормам]]. Научиться этому можно [[geda:​faq-gnetlist.ru#​как_мне_проверить_свои_схемы|здесь]].
 +  - Задаёте позиционные обозначения для своих компонентов с помощью **grenum** или **refdes_renum** или просто добавляете их вручную в **gschem**.
 +  - Устанавливаете для компонентов прочие [[geda:​glossary.ru#​Атрибут|атрибуты]] в **gattrib** (такие как, например,​ ''​footprint''​ для назначения посадочных мест) или просто добавляете их в **gschem** вручную.
 +  - С помощью **gsch2pcb** создаёте файл заготовки [[geda:​glossary.ru#​Топология|топологии]] печатной платы и [[geda:​glossary.ru#​список соединений]].
 +  - В **pcb** производите [[geda:​glossary.ru#​Компоновка|компоновку]] и [[geda:​glossary.ru#​Трассировка|трассировку]] платы.
 +  - Производите в **pcb** экспорт [[geda:​glossary.ru#​Gerber-файлы|Gerber-файлов]] из меню **//​Файл//​** -> **//​Экспорт топологии...//​** [**//​File//​** -> **//Export layout...//​**] (выбираете тип файла «gerber»).
 +
 +Если в процессе работы над топологией вы что-то меняете или добавляете в своей принципиальной схеме, или изменяете там атрибуты,​ обновить плату можно следующим образом:​
 +  - Редактируете свою схему и (или) атрибуты (в **gschem** или в **gattrib**).
 +  - Проверяете её с помощью драйвера проверки соответствия проектным нормам. Научиться этому можно [[geda:​faq-gnetlist.ru#​как_мне_проверить_свои_схемы|здесь]].
 +  - С помощью **gsch2pcb** транслируете свои изменения в файл топологии.
 +  - Обновляете свои компоненты в **pcb**, выбирая пункт меню **//​Файл//​** -> **//​Загрузить топологию в буфер обмена//​** [**//​File//​** -> **//Load layout data to paste-buffer//​**],​ и затем щёлкаете на области чертежа,​ чтобы разместить компоненты.
 +  - Обновляете свой список соединений в **pcb**, выбирая пункт меню **//​Файл//​** -> **//​Загрузить список соединений//​** [**//​File//​** -> **//Load netlist file//**].
 +
 +Обычно пользователи вызывают отдельные программы из командной
 +строки. Менеджер проектов (**geda**) существует,​ но нуждается в улучшении.
 +
 +====== Есть ли ограничения у программ gEDA? ======
 +Самое главное,​ что надо иметь в виду при разговоре об ограничениях gEDA: gEDA --- это проект разработки программного обеспечения с открытым исходным кодом. В нём есть некоторые ограничения,​ но эти ограничения не искусственные,​ не специальные и не установленные торговцами. То есть, gEDA --- это программное обеспечение ни с надоедливыми требованиями регистрации,​ ни с ограничениями функциональных возможностей,​ ни демонстрационное,​ ни «редакция с ограничениями для студентов». Все ограничения,​ имеющиеся в системе gEDA, обусловлены только тем, что программисты пока не реализовали какие-то отдельные возможности. Так как исходные тексты открыты для всех, и их можно посмотреть и изменить,​ мы рады каждому,​ кто сможет воплотить новую возможность или устранить ограничение и предложит проекту свои заплаты. Если вы --- программист,​ и в ваших интересах помочь проекту gEDA, обдумайте возможность взяться за устранение одного из ограничений,​ указанных ниже! Вы найдёте много друзей и покажете себя миру!
 +  * Поддержка иерархических шин: поддержки иерархических шин всё ещё нет.
 +  * Атрибуты ''​net''​ и ''​pin''​ в **gattrib**:​ добавление атрибутов трассировки для соединений и выводов в **gattrib** остаётся «тем, что надо ещё сделать». (Атрибуты ''​net''​ полезны для проектов быстродействующих устройств. Часто важно, например,​ чтобы все дорожки в шине имели одинаковую электрическую длину. К сожалению,​ не ясно, сможет ли **pcb** поддерживать такие атрибуты трассировки сразу.)
 +  * Обратное аннотирование изменений из **pcb** в **gschem**. Поддержка [[geda:​glossary.ru#​Перестановка выводов компонента|перестановки выводов]] и модификации файла разработки в **pcb** с последующим обратным аннотированием изменений в **gschem** остаётся «тем, что надо сделать».
 +  * Менеджер проектов **geda** устарел и нуждается в обновлении.
 +  * Количество слоёв в **pcb**: в настоящее время количество слоёв в **pcb** ограничено шестнадцатью плюс два [[geda:​glossary.ru#​Слой шелкографии|слоя шелкографии]] по умолчанию. Этого более чем достаточно для проектов небольшого и среднего размера. Если нужно, количество слоёв может быть увеличено произвольно во время компиляции.
 +
 +====== Какие локальные файлы конфигурации используются в проекте?​ ======
 +Для обычного проекта разработки печатной платы в локальном каталоге этого проекта должны быть следующие файлы конфигурации:​
 +  * //''​gafrc''//:​ содержит настройки программ gEDA/gaf (т. е. **gschem**, **gattrib**,​ **gnetlist** и т. д.). Также он должен содержать указание на локальный каталог ваших символов (если таковой имеется).
 +  * //''​attribs''//:​ если для создания [[geda:​glossary.ru#​Перечень элементов|перечня элементов]] проекта вы используете **''​gnetlist -g bom2''​**,​ то в данном файле указываются те атрибуты,​ что должны содержаться в этом перечне.
 +  * //''​projectrc''//:​ при переходе к [[geda:​glossary.ru#​Проектирование топологии|разработке топологии]] печатной платы удобным способом указания путей доступа к локальным каталогам,​ содержащим файлы посадочных мест, и другой конфигурационной информации для **gsch2pcb** будет команда **''​gsch2pcb projectrc''​**. Обратите внимание,​ что для данного файла можно выбрать любое имя; мне нравится //''​projectrc''//,​ потому что это имя указывает его функцию.
 +
 +Более подробное описание каждого из конфигурационных файлов приведено в
 +[[geda:​documentation.ru|документации]] для соответствующих программ.
 +
 +
 +
 +====== Как называются и где находятся rc-файлы,​ используемые приложениями gEDA/gaf? ======
 +Для задания разных параметров конфигурации в различных приложениях gEDA/gaf (**gschem**,​ **gattrib**,​ **gnetlist** и других) используется несколько rc-файлов. Эти файлы читаются каждым из этих приложений при их запуске. Концептуально поиск rc-файлов приложениями gEDA/gaf производится в трёх местах:​
 +  * В каталоге установки системы:​ //''​${prefix}/​share/​gEDA/''//​. Здесь находятся глобальные rc-файлы,​ то есть общие для всей системы и всех пользователей. Чтобы приложение gEDA работало правильно,​ эти файлы должны быть найдены и загружены без ошибок. //''​${prefix}''//​ представляет собой путь доступа к каталогу установки gEDA/gaf.
 +  * В домашнем каталоге пользователя:​ //''​$HOME/​.gEDA/''//​. Настройки rc-файлов,​ находящихся в этом каталоге,​ действуют на все проекты пользователя. Иметь эти файлы необязательно. Создавать их простым копированием системных файлов (например,​ //''​system-gschemrc''//​ или какого-то другого файла) не следует,​ надлежащим образом это работать не будет. Правильнее будет указать в них только те настройки,​ которые вам хотелось бы изменить.
 +  * В локальном каталоге проекта. Здесь находятся rc-файлы,​ относящиеся к локальному проекту (находящемуся в этом же каталоге). В этих файлах определяются особые настройки,​ такие как пути доступа к локальным библиотекам символов или [[gEDA:​glossary.ru#​Библиотека исходных данных|исходных данных]]. Иметь эти файлы тоже необязательно. Создавать их простым копированием системных файлов (например,​ //''​system-gschemrc''//​ или какого-то другого файла) не следует,​ надлежащим образом это работать не будет.
 +
 +Система rc-файлов со временем претерпела изменения. Сначала для каждого приложения ​ gEDA/gaf использовались свои собственные rc-файлы (например,​ //''​gschemrc''//​ для программы **gschem**, //''​gnetlistrc''//​ --- для **gnetlist** и т. д.). Однако с ростом количества приложений gEDA/gaf стало выясняться,​ что отдельные rc-файлы содержат много лишней информации и что все эти разные rc-файлы сбивают новых пользователей с толку. ​ Поэтому отдельные rc-файлы были объединены в один, названный //''​gafrc''//​. ​ Однако,​ ввиду того что для **gschem** необходимы разнообразные специальные настройки,​ мы решили наряду с файлами //''​gafrc''//​ оставить дополнительно системный файл //''​gschemrc''//​. А также с целью обратной совместимости всё ещё поддерживается старая система rc-файлов в системном каталоге. Поэтому текущая конфигурация rc-файлов выглядит примерно так:
 +  * В каталоге установки системы:​
 +    * //''​system-gafrc''//​ -- содержит большинство глобальных настроек **gaf**
 +    * //''​system-gattribrc''//​
 +    * //''​system-gnetlistrc''//​
 +    * //''​system-gschemrc''//​ -- содержит множество **gschem**-специфичных настроек
 +    * //''​system-gschlasrc''//​
 +    * //''​system-gsymcheckrc''//​
 +  * В пользовательском каталоге //''​${HOME}''//:​
 +    * //''​.gEDA/​gafrc''//​
 +  * В каталоге локального проекта:​
 +    * //''​gafrc''//​ -- должен содержать локальные переопределения настроек,​ как например ссылки на локально используемые символы.
 +
 +Также в //''​system-gschemrc''//​ производится загрузка определений цветов
 +''​gschem-darkbg''​ или ''​gschem-lightbg''​.
 +
 +Наконец,​ обратите внимание,​ что приложения gEDA/gaf при запуске будут искать до шести файлов конфигурации:​
 +  - //''​system-gafrc''//​
 +  - //''​system-gschemrc''//​ (или какой-то другой файл)
 +  - //''​${HOME}/​.gEDA/​gafrc''//​
 +  - //''​${HOME}/​.gEDA/​gschemrc''//​ (или какой-то другой файл)
 +  - //''​./​gafrc''//​
 +  - //''​./​gschemrc''//​ (или какой-то другой файл)
 +
 +Если вы видите предупреждение,​ что ваше приложение не может найти какой-либо
 +из этих файлов,​ не волнуйтесь. Большинство из них необязательны. Необходимы
 +только системные rc-файлы.
 +
 +====== Как насчёт менеджера проектов?​ ======
 +В отдельных компонентах gEDA Suite нет концепции сквозного проектирования.
 +Точнее,​ каждая из программ работает со своими собственными файлами
 +(например,​ **gschem** -> //''​.sch''//,​ **pcb** -> //''​.pcb''//​). Но
 +существует менеджер проектов под названием **geda**, который можно запустить
 +из командной строки. ​ Он призван помочь вам обращаться со своим проектом как
 +с единым целым от исходной идеи и далее при
 +[[geda:​glossary.ru#​Схемотехническое проектирование|схемотехническом
 +проектировании]],​ добавлении [[geda:​glossary.ru#​Атрибут|атрибутов]],​
 +[[geda:​glossary.ru#​Проектирование топологии|разработке топологии]],​ создании
 +перечня элементов и т. д.
 +
 +К сожалению,​ разработка **geda** не ведётся наравне с остальными программами
 +в gEDA/gaf. В частности,​ в **geda** не используются последние средства или
 +методы выполнения отдельных задач проектирования. Поэтому мы рекомендуем
 +пользователям запускать отдельные программы (например,​ **gschem**,
 +**gattrib**,​ **gnetlist**,​ **gsch2pcb** и т. д.) просто из командной
 +строки. ​ Между тем, если вы --- программист,​ и ищете, за какой небольшой
 +проект бы взяться,​ отделка **geda** могла бы стать неплохим введением в gEDA
 +Suite, и при этом вы нашли бы много друзей!
 +
 +====== Можем ли мы заменить используемый в gEDA формат файлов на XML? ======
 +Дебаты об использовании XML в качестве формата файлов в рассылке
 +//​geda-user//​ возникают периодически,​ каждые 2-3 года. Я думаю, это
 +показывает,​ насколько быстро мы теряем свою общественную память из-за
 +мешанины в списке рассылки.
 +
 +Вряд ли проект gEDA когда-нибудь перейдёт на формат XML для схем и символов,​
 +так что привыкайте к этому. Несколько доводов против XML:
 +
 +  - В gEDA/gaf уже есть неизменный,​ хорошо документированный текстовый формат. На 2007 год ему уже больше 8 лет. Он хорош в использовании и как следует протестирован.
 +  - Для своего формата файлов у нас уже есть парсер. Он лёгок и вполне отлажен.
 +  - Есть множество давно развиваемых проектов,​ в которых этот формат уже используется. Все начнут вопить,​ если мы переключимся на новый формат,​ так как имеющиеся проекты сразу устареют. А поддерживать два формата файлов --- старый и новый --- весьма накладно.
 +  - XML --- это обобщённый формат. Поэтому XML-файлы имеют склонность жиреть,​ как свиньи. Формат файла gEDA и лёгок, и хорошо адаптирован для своей цели --- представления графической информации,​ относящейся к принципиальным схемам для электроники.
 +  - Одно из якобы преимуществ XML в том, что для него есть много парсеров с открытым кодом, что позволяет очень просто интегрировать его в **libgeda**. Это в теории,​ а на практике работа парсера состоит в анализе и обработке входных данных и затем в преобразовании их в структуры данных,​ пригодные для использования в остальном коде **gschem**. Открытый парсер делает около трети нужной работы,​ то есть производит чтение и анализ файлов и создаёт своего рода иерархическое дерево. В остальную часть работы входит перевод данных из этого дерева в структуры данных **libgeda**. Это очень большой объём работы. Поэтому такое якобы преимущество свободно доступных XML-парсеров --- химера. Да, XML может быть интересен для новой, написанной с нуля программы,​ но не для такого давно существующего проекта,​ как gEDA.
 +  - Время разработчика gEDA лучше использовать для реализации новой функциональности,​ например,​ обратного аннотирования. Трата времени на замену нашего формата файла на XML --- это шаг в сторону,​ который не принесёт больше пользы конечным пользователям,​ но отнимет ценное время у разработчика.
 +  - Другое преимущество XML в том, что этот формат более-менее удобочитаем. Я согласен,​ что это веский довод. Современный наш формат неудобочитаем для тех, кто никогда не читает документацию. Однако,​ наш формат --- текстовый,​ и он полностью документирован,​ так что о существенном поводе для чтения --- возможности писать скрипты для файлов --- уже позаботились. К тому же, если человек найдёт время почитать документацию о формате,​ он определённо в нём разберётся. Удобочитаемость для пользователя,​ --- не знающего формат файла, --- это то, что называется «неплохо бы иметь»,​ что в списке моих приоритетов стоит совсем не высоко.
  
geda/usage.ru.txt · Last modified: 2014/04/22 12:57 by vzh