This shows you the differences between two versions of the page.
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 в том, что этот формат более-менее удобочитаем. Я согласен, что это веский довод. Современный наш формат неудобочитаем для тех, кто никогда не читает документацию. Однако, наш формат --- текстовый, и он полностью документирован, так что о существенном поводе для чтения --- возможности писать скрипты для файлов --- уже позаботились. К тому же, если человек найдёт время почитать документацию о формате, он определённо в нём разберётся. Удобочитаемость для пользователя, --- не знающего формат файла, --- это то, что называется «неплохо бы иметь», что в списке моих приоритетов стоит совсем не высоко. | ||