<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title></title> <link rel="stylesheet" media="screen" type="text/css" href="./style.css" /> <link rel="stylesheet" media="screen" type="text/css" href="./design.css" /> <link rel="stylesheet" media="print" type="text/css" href="./print.css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h1 class="sectionedit344"><a name="каков_наилучший_способ_научиться_работать_в_geda" id="каков_наилучший_способ_научиться_работать_в_geda">Каков наилучший способ научиться работать в gEDA?</a></h1> <div class="level1"> <p> Первое, что нужно сделать, это прочитать и понять превосходный учебник <a href="geda-gsch2pcb_tutorial.ru.html" class="wikilink1" title="geda-gsch2pcb_tutorial.ru.html">gschem -> gsch2pcb -> pcb</a> от <em>Bill Wilson</em> и/или <a href="http://www.delorie.com/pcb/docs/gs/gs.html" class="urlextern" title="http://www.delorie.com/pcb/docs/gs/gs.html" rel="nofollow">Введение в pcb</a> от <em>DJ Delorie</em>. Это база для начала работы. </p> <p> Непременно посмотрите также и другую <a href="geda-documentation.ru.html" class="wikilink1" title="geda-documentation.ru.html">документацию gEDA</a>, доступную на этом веб-сайте. </p> <p> Но всё же лучший способ изучить комплекс gEDA Suite — загрузить его и попробовать самому! Если вы будете держать под рукой учебник от <em>Bill Wilson</em>, пробуя работать с программами, то очень быстро станете экспертом! </p> </div> <!-- EDIT344 SECTION "Каков наилучший способ научиться работать в gEDA?" [1-1017] --> <h1 class="sectionedit345"><a name="как_выглядит_маршрут_проектирования_в_geda" id="как_выглядит_маршрут_проектирования_в_geda">Как выглядит маршрут проектирования в gEDA?</a></h1> <div class="level1"> <p> Вот небольшая диаграмма разработки простой печатной платы с помощью gEDA Suite: </p> <p> <a href="media/geda/design_flow.ru.png" class="media" target="_blank" title="geda:design_flow.ru.png"><img src="media/geda/design_flow.ru.png" class="media" alt="" /></a> </p> <p> Вкратце <a href="geda-glossary.ru.html#маршрут_проектирования" class="wikilink1" title="geda-glossary.ru.html">маршрут проектирования</a> простой печатной платы таков: </p> <ol> <li class="level1"><div class="li"> Создаёте свою <a href="geda-glossary.ru.html#принципиальная_схема" class="wikilink1" title="geda-glossary.ru.html">принципиальную схему</a> в <strong>gschem</strong>.</div> </li> <li class="level1"><div class="li"> Проверяете её с помощью драйвера <a href="geda-glossary.ru.html#проверка_соответствия_проектным_нормам" class="wikilink1" title="geda-glossary.ru.html">проверки соответствия проектным нормам</a>. Научиться этому можно <a href="geda-faq-gnetlist.ru.html#как_мне_проверить_свои_схемы" class="wikilink1" title="geda-faq-gnetlist.ru.html">здесь</a>.</div> </li> <li class="level1"><div class="li"> Задаёте позиционные обозначения для своих компонентов с помощью <strong>grenum</strong> или <strong>refdes_renum</strong> или просто добавляете их вручную в <strong>gschem</strong>.</div> </li> <li class="level1"><div class="li"> Устанавливаете для компонентов прочие <a href="geda-glossary.ru.html#атрибут" class="wikilink1" title="geda-glossary.ru.html">атрибуты</a> в <strong>gattrib</strong> (такие как, например, <code>footprint</code> для назначения посадочных мест) или просто добавляете их в <strong>gschem</strong> вручную.</div> </li> <li class="level1"><div class="li"> С помощью <strong>gsch2pcb</strong> создаёте файл заготовки <a href="geda-glossary.ru.html#топология" class="wikilink1" title="geda-glossary.ru.html">топологии</a> печатной платы и <a href="geda-glossary.ru.html#список_соединений" class="wikilink1" title="geda-glossary.ru.html">список соединений</a>.</div> </li> <li class="level1"><div class="li"> В <strong>pcb</strong> производите <a href="geda-glossary.ru.html#компоновка" class="wikilink1" title="geda-glossary.ru.html">компоновку</a> и <a href="geda-glossary.ru.html#трассировка" class="wikilink1" title="geda-glossary.ru.html">трассировку</a> платы.</div> </li> <li class="level1"><div class="li"> Производите в <strong>pcb</strong> экспорт <a href="geda-glossary.ru.html#gerber-файлы" class="wikilink1" title="geda-glossary.ru.html">Gerber-файлов</a> из меню <strong><em>Файл</em></strong> → <strong><em>Экспорт топологии…</em></strong> [<strong><em>File</em></strong> → <strong><em>Export layout…</em></strong>] (выбираете тип файла “gerber”).</div> </li> </ol> <p> Если в процессе работы над топологией вы что-то меняете или добавляете в своей принципиальной схеме, или изменяете там атрибуты, обновить плату можно следующим образом: </p> <ol> <li class="level1"><div class="li"> Редактируете свою схему и (или) атрибуты (в <strong>gschem</strong> или в <strong>gattrib</strong>).</div> </li> <li class="level1"><div class="li"> Проверяете её с помощью драйвера проверки соответствия проектным нормам. Научиться этому можно <a href="geda-faq-gnetlist.ru.html#как_мне_проверить_свои_схемы" class="wikilink1" title="geda-faq-gnetlist.ru.html">здесь</a>.</div> </li> <li class="level1"><div class="li"> С помощью <strong>gsch2pcb</strong> транслируете свои изменения в файл топологии.</div> </li> <li class="level1"><div class="li"> Обновляете свои компоненты в <strong>pcb</strong>, выбирая пункт меню <strong><em>Файл</em></strong> → <strong><em>Загрузить топологию в буфер обмена</em></strong> [<strong><em>File</em></strong> → <strong><em>Load layout data to paste-buffer</em></strong>], и затем щёлкаете на области чертежа, чтобы разместить компоненты.</div> </li> <li class="level1"><div class="li"> Обновляете свой список соединений в <strong>pcb</strong>, выбирая пункт меню <strong><em>Файл</em></strong> → <strong><em>Загрузить список соединений</em></strong> [<strong><em>File</em></strong> → <strong><em>Load netlist file</em></strong>].</div> </li> </ol> <p> Обычно пользователи вызывают отдельные программы из командной строки. Менеджер проектов (<strong>geda</strong>) существует, но нуждается в улучшении. </p> </div> <!-- EDIT345 SECTION "Как выглядит маршрут проектирования в gEDA?" [1018-4867] --> <h1 class="sectionedit346"><a name="есть_ли_ограничения_у_программ_geda" id="есть_ли_ограничения_у_программ_geda">Есть ли ограничения у программ gEDA?</a></h1> <div class="level1"> <p> Самое главное, что надо иметь в виду при разговоре об ограничениях gEDA: gEDA — это проект разработки программного обеспечения с открытым исходным кодом. В нём есть некоторые ограничения, но эти ограничения не искусственные, не специальные и не установленные торговцами. То есть, gEDA — это программное обеспечение ни с надоедливыми требованиями регистрации, ни с ограничениями функциональных возможностей, ни демонстрационное, ни “редакция с ограничениями для студентов”. Все ограничения, имеющиеся в системе gEDA, обусловлены только тем, что программисты пока не реализовали какие-то отдельные возможности. Так как исходные тексты открыты для всех, и их можно посмотреть и изменить, мы рады каждому, кто сможет воплотить новую возможность или устранить ограничение и предложит проекту свои заплаты. Если вы — программист, и в ваших интересах помочь проекту gEDA, обдумайте возможность взяться за устранение одного из ограничений, указанных ниже! Вы найдёте много друзей и покажете себя миру! </p> <ul> <li class="level1"><div class="li"> Поддержка иерархических шин: поддержки иерархических шин всё ещё нет.</div> </li> <li class="level1"><div class="li"> Атрибуты <code>net</code> и <code>pin</code> в <strong>gattrib</strong>: добавление атрибутов трассировки для соединений и выводов в <strong>gattrib</strong> остаётся “тем, что надо ещё сделать”. (Атрибуты <code>net</code> полезны для проектов быстродействующих устройств. Часто важно, например, чтобы все дорожки в шине имели одинаковую электрическую длину. К сожалению, не ясно, сможет ли <strong>pcb</strong> поддерживать такие атрибуты трассировки сразу.)</div> </li> <li class="level1"><div class="li"> Обратная трансляция изменений из <strong>pcb</strong> в <strong>gschem</strong>. Поддержка <a href="geda-glossary.ru.html#перестановка_выводов_компонента" class="wikilink1" title="geda-glossary.ru.html">перестановки выводов</a> и модификации файла разработки в <strong>pcb</strong> с последующей обратной трансляцией изменений в <strong>gschem</strong> остаётся “тем, что надо сделать”.</div> </li> <li class="level1"><div class="li"> Менеджер проектов <strong>geda</strong> устарел и нуждается в обновлении.</div> </li> <li class="level1"><div class="li"> Количество слоёв в <strong>pcb</strong>: в настоящее время количество слоёв в <strong>pcb</strong> ограничено шестнадцатью плюс два <a href="geda-glossary.ru.html#слой_шелкографии" class="wikilink1" title="geda-glossary.ru.html">слоя шелкографии</a> по умолчанию. Этого более чем достаточно для проектов небольшого и среднего размера. Если нужно, количество слоёв может быть увеличено произвольно во время компиляции.</div> </li> </ul> </div> <!-- EDIT346 SECTION "Есть ли ограничения у программ gEDA?" [4868-8706] --> <h1 class="sectionedit347"><a name="какие_локальные_файлы_конфигурации_используются_в_проекте" id="какие_локальные_файлы_конфигурации_используются_в_проекте">Какие локальные файлы конфигурации используются в проекте?</a></h1> <div class="level1"> <p> Для обычного проекта разработки печатной платы в локальном каталоге этого проекта должны быть следующие файлы конфигурации: </p> <ul> <li class="level1"><div class="li"> <em><code>gafrc</code></em>: содержит настройки программ gEDA/gaf (т. е. <strong>gschem</strong>, <strong>gattrib</strong>, <strong>gnetlist</strong> и т. д.). Также он должен содержать указание на локальный каталог ваших символов (если таковой имеется).</div> </li> <li class="level1"><div class="li"> <em><code>attribs</code></em>: если для создания <a href="geda-glossary.ru.html#перечень_элементов" class="wikilink1" title="geda-glossary.ru.html">перечня элементов</a> проекта вы используете <strong><code>gnetlist -g bom2</code></strong>, то в данном файле указываются те атрибуты, что должны содержаться в этом перечне.</div> </li> <li class="level1"><div class="li"> <em><code>projectrc</code></em>: при переходе к <a href="geda-glossary.ru.html#проектирование_топологии" class="wikilink1" title="geda-glossary.ru.html">разработке топологии</a> печатной платы удобным способом указания путей доступа к локальным каталогам, содержащим файлы посадочных мест, и другой конфигурационной информации для <strong>gsch2pcb</strong> будет команда <strong><code>gsch2pcb projectrc</code></strong>. Обратите внимание, что для данного файла можно выбрать любое имя; мне нравится <em><code>projectrc</code></em>, потому что это имя указывает его функцию.</div> </li> </ul> <p> Более подробное описание каждого из конфигурационных файлов приведено в <a href="geda-documentation.ru.html" class="wikilink1" title="geda-documentation.ru.html">документации</a> для соответствующих программ. </p> </div> <!-- EDIT347 SECTION "Какие локальные файлы конфигурации используются в проекте?" [8707-10734] --> <h1 class="sectionedit348"><a name="как_называются_и_где_находятся_rc-файлы_используемые_приложениями_geda_gaf" id="как_называются_и_где_находятся_rc-файлы_используемые_приложениями_geda_gaf">Как называются и где находятся rc-файлы, используемые приложениями gEDA/gaf?</a></h1> <div class="level1"> <p> Для задания разных параметров конфигурации в различных приложениях gEDA/gaf (<strong>gschem</strong>, <strong>gattrib</strong>, <strong>gnetlist</strong> и других) используется несколько rc-файлов. Эти файлы читаются каждым из этих приложений при их запуске. Концептуально поиск rc-файлов приложениями gEDA/gaf производится в трёх местах: </p> <ul> <li class="level1"><div class="li"> В каталоге установки системы: <em><code>${prefix}/share/gEDA/</code></em>. Здесь находятся глобальные rc-файлы, то есть общие для всей системы и всех пользователей. Чтобы приложение gEDA работало правильно, эти файлы должны быть найдены и загружены без ошибок. <em><code>${prefix}</code></em> представляет собой путь доступа к каталогу установки gEDA/gaf.</div> </li> <li class="level1"><div class="li"> В домашнем каталоге пользователя: <em><code>$HOME/.gEDA/</code></em>. Настройки rc-файлов, находящихся в этом каталоге, действуют на все проекты пользователя. Иметь эти файлы необязательно. Создавать их простым копированием системных файлов (например, <em><code>system-gschemrc</code></em> или какого-то другого файла) не следует, надлежащим образом это работать не будет. Правильнее будет указать в них только те настройки, которые вам хотелось бы изменить.</div> </li> <li class="level1"><div class="li"> В локальном каталоге проекта. Здесь находятся rc-файлы, относящиеся к локальному проекту (находящемуся в этом же каталоге). В этих файлах определяются особые настройки, такие как пути доступа к локальным библиотекам компонентов или исходным данным. Иметь эти файлы тоже необязательно. Создавать их простым копированием системных файлов (например, <em><code>system-gschemrc</code></em> или какого-то другого файла) не следует, надлежащим образом это работать не будет.</div> </li> </ul> <p> Система rc-файлов со временем претерпела изменения. Сначала для каждого приложения gEDA/gaf использовались свои собственные rc-файлы (например, <em><code>gschemrc</code></em> для программы <strong>gschem</strong>, <em><code>gnetlistrc</code></em> — для <strong>gnetlist</strong> и т. д.). Однако, когда количество приложений gEDA/gaf возрастало, стало выясняться, что отдельные rc-файлы содержат много лишней информации и что все эти разные rc-файлы сбивают с толку новых пользователей. Поэтому отдельные rc-файлы были объединены в один, названный <em><code>gafrc</code></em>. Однако, ввиду того что для <strong>gschem</strong> необходимы разнообразные специальные настройки, мы решили наряду с файлами <em><code>gafrc</code></em> оставить дополнительно системный файл <em><code>gschemrc</code></em>. А также с целью обратной совместимости всё ещё поддерживается старая система rc-файлов в системном каталоге. Поэтому текущая конфигурация rc-файлов выглядит примерно так: </p> <ul> <li class="level1"><div class="li"> В каталоге установки системы:</div> <ul> <li class="level2"><div class="li"> <em><code>system-gafrc</code></em> – содержит большинство глобальных настроек <strong>gaf</strong></div> </li> <li class="level2"><div class="li"> <em><code>system-gattribrc</code></em></div> </li> <li class="level2"><div class="li"> <em><code>system-gnetlistrc</code></em></div> </li> <li class="level2"><div class="li"> <em><code>system-gschemrc</code></em> – содержит множество <strong>gschem</strong>-специфичных настроек</div> </li> <li class="level2"><div class="li"> <em><code>system-gschlasrc</code></em></div> </li> <li class="level2"><div class="li"> <em><code>system-gsymcheckrc</code></em></div> </li> </ul> </li> <li class="level1"><div class="li"> В пользовательском каталоге <em><code>${HOME}</code></em>:</div> <ul> <li class="level2"><div class="li"> <em><code>.gEDA/gafrc</code></em></div> </li> </ul> </li> <li class="level1"><div class="li"> В каталоге локального проекта:</div> <ul> <li class="level2"><div class="li"> <em><code>gafrc</code></em> – должен содержать локальные переопределения настроек, как например ссылки на локально используемые символы.</div> </li> </ul> </li> </ul> <p> Также в <em><code>system-gschemrc</code></em> производится загрузка определений цветов <code>gschem-darkbg</code> или <code>gschem-lightbg</code>. </p> <p> Наконец, обратите внимание, что приложения gEDA/gaf при запуске будут искать до шести файлов конфигурации: </p> <ol> <li class="level1"><div class="li"> <em><code>system-gafrc</code></em></div> </li> <li class="level1"><div class="li"> <em><code>system-gschemrc</code></em> (или какой-то другой файл)</div> </li> <li class="level1"><div class="li"> <em><code>${HOME}/.gEDA/gafrc</code></em></div> </li> <li class="level1"><div class="li"> <em><code>${HOME}/.gEDA/gschemrc</code></em> (или какой-то другой файл)</div> </li> <li class="level1"><div class="li"> <em><code>./gafrc</code></em></div> </li> <li class="level1"><div class="li"> <em><code>./gschemrc</code></em> (или какой-то другой файл)</div> </li> </ol> <p> Если вы видите предупреждение, что ваше приложение не может найти какой-либо из этих файлов, не волнуйтесь. Большинство из них необязательны. Необходимы только системные rc-файлы. </p> </div> <!-- EDIT348 SECTION "Как называются и где находятся rc-файлы, используемые приложениями gEDA/gaf?" [10735-16752] --> <h1 class="sectionedit349"><a name="как_насчёт_менеджера_проектов" id="как_насчёт_менеджера_проектов">Как насчёт менеджера проектов?</a></h1> <div class="level1"> <p> В отдельных компонентах gEDA Suite нет концепции сквозного проектирования. Точнее, каждая из программ работает со своими собственными файлами (например, <strong>gschem</strong> → <em><code>.sch</code></em>, <strong>pcb</strong> → <em><code>.pcb</code></em>). Но существует менеджер проектов под названием <strong>geda</strong>, который можно запустить из командной строки. Он призван помочь вам обращаться со своим проектом как с единым целым от исходной идеи и далее при <a href="geda-glossary.ru.html#схемотехническое_проектирование" class="wikilink1" title="geda-glossary.ru.html">схемотехническом проектировании</a>, добавлении <a href="geda-glossary.ru.html#атрибут" class="wikilink1" title="geda-glossary.ru.html">атрибутов</a>, <a href="geda-glossary.ru.html#проектирование_топологии" class="wikilink1" title="geda-glossary.ru.html">разработке топологии</a>, создании перечня элементов и т. д. </p> <p> К сожалению, разработка <strong>geda</strong> не ведётся наравне с остальными программами в gEDA/gaf. В частности, в <strong>geda</strong> не используются последние средства или методы выполнения отдельных задач проектирования. Поэтому мы рекомендуем пользователям запускать отдельные программы (например, <strong>gschem</strong>, <strong>gattrib</strong>, <strong>gnetlist</strong>, <strong>gsch2pcb</strong> и т. д.) просто из командной строки. Между тем, если вы — программист, и ищете, за какой небольшой проект бы взяться, отделка <strong>geda</strong> могла бы стать неплохим введением в gEDA Suite, и при этом вы нашли бы много друзей! </p> </div> <!-- EDIT349 SECTION "Как насчёт менеджера проектов?" [16753-18831] --> <h1 class="sectionedit350"><a name="можем_ли_мы_заменить_используемый_в_geda_формат_файлов_на_xml" id="можем_ли_мы_заменить_используемый_в_geda_формат_файлов_на_xml">Можем ли мы заменить используемый в gEDA формат файлов на XML?</a></h1> <div class="level1"> <p> Дебаты об использовании <acronym title="Extensible Markup Language">XML</acronym> в качестве формата файлов в рассылке <em>geda-user</em> возникают периодически, каждые 2-3 года. Я думаю, это показывает, насколько быстро мы теряем свою общественную память из-за мешанины в списке рассылки. </p> <p> Вряд ли проект gEDA когда-нибудь перейдёт на формат <acronym title="Extensible Markup Language">XML</acronym> для схем и символов, так что привыкайте к этому. Несколько доводов против <acronym title="Extensible Markup Language">XML</acronym>: </p> <ol> <li class="level1"><div class="li"> В gEDA/gaf уже есть неизменный, хорошо документированный текстовый формат. На 2007 год ему уже больше 8 лет. Он хорош в использовании и как следует протестирован.</div> </li> <li class="level1"><div class="li"> Для своего формата файлов у нас уже есть парсер. Он лёгок и вполне отлажен.</div> </li> <li class="level1"><div class="li"> Есть множество давно развиваемых проектов, в которых этот формат уже используется. Все начнут вопить, если мы переключимся на новый формат, так как имеющиеся проекты сразу устареют. А поддерживать два формата файлов — старый и новый — весьма накладно.</div> </li> <li class="level1"><div class="li"> <acronym title="Extensible Markup Language">XML</acronym> — это обобщённый формат. Поэтому <acronym title="Extensible Markup Language">XML</acronym>-файлы имеют склонность жиреть, как свиньи. Формат файла gEDA и лёгок, и хорошо адаптирован для своей цели — представления графической информации, относящейся к принципиальным схемам для электроники.</div> </li> <li class="level1"><div class="li"> Одно из якобы преимуществ <acronym title="Extensible Markup Language">XML</acronym> в том, что для него есть много парсеров с открытым кодом, что позволяет очень просто интегрировать его в <strong>libgeda</strong>. Это в теории, а на практике работа парсера состоит в анализе и обработке входных данных и затем в преобразовании их в структуры данных, пригодные для использования в остальном коде <strong>gschem</strong>. Открытый парсер делает около трети нужной работы, то есть производит чтение и анализ файлов и создаёт своего рода иерархическое дерево. В остальную часть работы входит перевод данных из этого дерева в структуры данных <strong>libgeda</strong>. Это очень большой объём работы. Поэтому такое якобы преимущество свободно доступных <acronym title="Extensible Markup Language">XML</acronym>-парсеров — химера. Да, <acronym title="Extensible Markup Language">XML</acronym> может быть интересен для новой, написанной с нуля программы, но не для такого давно существующего проекта, как gEDA.</div> </li> <li class="level1"><div class="li"> Время разработчика gEDA лучше использовать для реализации новых возможностей, таких как обратная трансляция изменений. Трата времени на замену нашего формата файла на <acronym title="Extensible Markup Language">XML</acronym> — это шаг в сторону, который не принесёт больше пользы конечным пользователям, но отнимет ценное время у разработчика.</div> </li> <li class="level1"><div class="li"> Другое преимущество <acronym title="Extensible Markup Language">XML</acronym> в том, что этот формат более-менее удобочитаем. Я согласен, что это веский довод. Современный наш формат неудобочитаем для тех, кто никогда не читает документацию. Однако, наш формат — текстовый, и он полностью документирован, так что о существенном поводе для чтения — возможности писать скрипты для файлов — уже позаботились. К тому же, если человек найдёт время почитать документацию о формате, он определённо в нём разберётся. Удобочитаемость для пользователя, — не знающего формат файла, — это то, что называется “неплохо бы иметь”, что в списке моих приоритетов стоит совсем не высоко.</div> </li> </ol> </div> <!-- EDIT350 SECTION "Можем ли мы заменить используемый в gEDA формат файлов на XML?" [18832-] --></body> </html>