//Эта страница доступна также на следующих языках:// [[faq-gschem|English]], [[faq-gschem.fr|Français]]. ====== Общее ====== ===== Я нашёл ошибку! Что мне делать? ===== - Проверьте, можете ли вы повторно воспроизвести эту ошибку. - Спросите в [[http://wiki.geda-project.org/geda:mailinglists.ru|списке рассылки geda-user]], есть ли способ её обойти или не победили ли её уже в последней версии gEDA/gaf. Учтите, что прежде чем писать в этот список рассылки, на него нужно подписаться. - Проверьте, не отмечена ли уже эта проблема в [[https://bugs.launchpad.net/geda|системе отслеживания ошибок gEDA/gaf]]. Если нет, заполните отчёт об ошибке. Обязательно представьте всю информацию, необходимую для воспроизведения ошибки, и укажите версию пакета gEDA/gaf, её содержащую. - Наконец, как и для всех проектов с открытым исходным кодом, вы можете напрячь свои программистские мускулы и попробовать исправить ошибку самостоятельно. Пожалуйста, представьте заплату с нужными вам изменениями в систему отслеживания ошибок gEDA/gaf. Заплата будет охотно принята для улучшения следующей версии gEDA/gaf. ====== Использование gschem ====== ===== В диалоговом окне выбора символов нет символов! ===== Диалоговое окно выбора символов представляет список названий разделов библиотеки. Щёлкните слева от названия по направленному вправо треугольнику. Список развернётся. Прокрутите его вниз до символа, который нужно добавить в схему. ===== Как переместить компонент? ===== - Выделите компонент, щёлкнув по нему левой кнопкой мыши. Компонент будет подсвечен. - Переместите его (нажав левую кнопку мыши) в нужное место. ===== Как перемещать компоненты, не таская концов подключенных соединений? ===== Для переключения такого поведения нажмите [**o**][**r**]. То есть сначала клавишу [**o**], затем [**r**]. Выполнение команды переключения отразится в окне состояния. Эта команда доступна также из меню **//Настройки//** [**//Options//**]. ===== Как изменить размер текста в символе? ===== - Выделите символ. - Щёлкните правой кнопкой -> **//Войти в символ//** [**//Down symbol//**] (или из меню **//Иерархия//** -> **//Войти в символ//** [**//Hierarchy//** -> **//Down symbol//**]). Это приведёт вас в редактор символов. - Выделите номер вывода, который нужно изменить. - Выберите пункт меню **//Правка//** -> **//Правка текста...//** [**//Edit//** -> **//Edit text...//**] (или наберите с клавиатуры [**e**][**x**]). - Измените во всплывающем окне размер шрифта. - Повторите это для всех текстовых элементов, которые нужно изменить. - **//Файл//** -> **//Сохранить//** [**//File//** -> **//Save//**]. - Щёлкните правой кнопкой -> **//Наверх//** [**//Up//**] (или **//Иерархия//** -> **//Наверх//** [**//Hierarchy//** -> **//Up//**]). Теперь вы снова в редакторе схем. - Пока символ ещё выделен, щёлкните **//Правка//** -> **//Обновить компонент//** [**//Edit//** -> **//Update component//**] (или воспользуйтесь горячими клавишами [**e**][**p**]). Если это не работает, просто удалите символ и снова вставьте его. Эту же процедуру можно использовать и более широко и редактировать в символе что-угодно. (При этом, конечно, вместо **//Правка текста...//** [**//Edit text...//**] нужно выбрать другую желаемую функцию.) ===== Можно ли в gschem задать черту над текстом? ===== Да, линию над текстом задать можно. Обратная косая черта и знак подчёркивания отмечают начало текста, над которым должна быть линия. Вторая комбинация этих символов вновь включит обычный текст. Пример: дважды щёлкните по атрибуту и наберите «\_это\_». Учтите, при трансляции в **pcb** линии над текстом в [[geda:glossary.ru#Топология|топологии]] не будет. Обратная косая черта игнорируется, поэтому по краям текста, над которым должна была бы быть линия, останутся знаки подчёркивания. ===== Как разблокировать заблокированный компонент? ===== Когда компонент заблокирован, средней кнопкой мыши выделить его нельзя, но можно выделить рамкой. Для выделения компонента рамкой нужно, нажав и удерживая левую кнопку мыши, переместить мышь, определив таким образом прямоугольную область, содержащую нужный компонент. Затем, чтобы разблокировать компонент, выполнить команду **//Правка//** -> **//Разблокировка//** [**//Edit//** -> **//Unlock//**]. ===== Как сделать так, чтобы позиционные обозначения при вычерчивании схемы нумеровались автоматически? ===== Измените файл //''system-gschemrc''// или добавьте следующее в файл //''gschemrc''// (либо в //''~/.gEDA/gschemrc''//, либо в //''gschemrc''// в локальном каталоге, из которого вы запускаете **gschem**): (load (string-append geda-data-path "/scheme/auto-uref.scm")) ; загрузить скрипт автонумерации (add-hook! add-component-hook auto-uref) ; автонумерация при добавлении компонента (add-hook! copy-component-hook auto-uref) ; автонумерация при копировании компонента ===== Что такое шина и как её использовать? ===== «Шина» --- это всего лишь декорация. Генератор списка соединений её игнорирует. Фактическая работа по соединению точек между собой возложена на атрибут ''netname='' --- это то, что **gnetlist** читает и преобразует в список соединений. Невозможно присоединить дискретную линию или «бит» к шине, потому что, ещё раз, это просто графический элемент. Некоторым пользователям кажется удобной такая организация соединений, когда в их имена входит название шины. Например, к каждому символу ответвления от шины («busripper») можно добавить атрибут вида ''net=busA:1'', что облегчит сортировку соединений. ===== Каково назначение кнопок мыши в gschem? ===== Стандартные настройки таковы: * Левая кнопка мыши используется для выбора и черчения. * Средняя кнопка мыши --- или для перемещения объекта (щёлкните по объекту и, удерживая кнопку, перемещайте мышь), или для его копирования (нажав и удерживая клавишу [**Alt**], щёлкните по объекту и, удерживая кнопку, перемещайте мышь). * Правая кнопка мыши --- для контекстного меню. Привязку средней кнопки можно изменить, добавив в файл //''gschemrc''// одну из следующих строк: (middle-button "action") ;привязка по умолчанию, перемещение или копирование объекта или: (middle-button "stroke") ;использование жестов (для этого нужно, чтобы была установлена библиотека libstroke) или: (middle-button "repeat") ;повтор последней выполненной команды Привязку правой кнопки можно изменить, добавив в файл //''gschemrc''// одну из следующих строк: (third-button "popup") ;привязка по умолчанию -- вызов контекстного меню или: (third-button "mousepan") ;панорамирование в окне схемы Более подробную информацию об этих настройках смотрите в файле //''${install_prefix}/share/gEDA/system-gschemrc''//. ===== Можно ли в gschem делать иерархические проекты с листами подсхем? ===== Да. Листы подсхем в основной схеме представляются специальными символами. В разделе документации **gschem** можно найти пример иерархического проекта (//''geda-doc/examples/gTAG/gTAG.sch''//). В настоящее время нет способа создать символ подсхемы из существующей схемы автоматически. Его придётся чертить вручную. Мы были бы очень признательны за любые заплаты или сторонние скрипты, с помощью которых можно было бы это сделать. Атрибут ''source='', прикреплённый к символу подсхемы, задаст путь доступа к файлу этой подсхемы. Выводы символа соответствуют [[geda:glossary.ru#Порт|портам]] --- переходам из основной схемы в подсхему. Эти переходы должны соответствовать позиционным обозначениям символов портов в подсхеме. Символами портов в текущей библиотеке gEDA являются //''in-1.sym''// и //''out-1.sym''//. Для навигации в иерархии листов подсхем используйте меню иерархии. Также для этого можно использовать менеджер страниц. Для преобразования иерархии в список соединений просто запустите **gsch2pcb** для основной схемы. По умолчанию имена соединений и позиционные обозначения компонентов являются строго локальными для подсхемы. При добавлении в список соединений они получают префикс в виде позиционного обозначения символа подсхемы. Можно использовать даже несколько экземпляров символа подсхемы, не опасаясь коротких замыканий. Будут ли изменяться имена соединений или позиционные обозначения, и оставаться таким образом локальными для подсхемы, или не будут, можно настроить в файле конфигурации //''gnetlistrc''//. Скопируйте соответствующие строки из //''system-gnetlistrc''// в //''gnetlistrc''// в текущем рабочем каталоге или в //''$HOME/.gEDA/gnetlistrc''//. Удобной настройкой может быть такая, когда соединения, представляемые символами питания, становятся глобальными, в то время как обычные соединения остаются локальными для подсхемы. Этого можно добиться разрешением ''hierarchy-netattrib-mangle''. ===== Можно ли в gschem сделать иерархию, в которой символ в основной схеме изображает многостраничную схему? ===== Да. Просто прикрепите к символу атрибут ''source='' несколько раз с разными значениями. Войдите через этот символ в схему, затем страницы данного уровня можно листать клавишами [**Page Up**] / [**Page Down**]. ===== Можно ли настроить иерархию в нескольких каталогах? ===== Да. Для этого нужно, чтобы в декларациях ''%%(source-library "...")%%'' и ''%%(component-library "...")%%'' в //''gafrc''// были перечислены все нужные каталоги. ===== Как объявить соединение глобальным? ===== В отношении текущего листа все имена соединений глобальны. Являются ли имена соединений глобальными в иерархическом стеке схем или нет, зависит от настроек в //''gnetlistrc''//. Этот файл может находиться в //''$HOME/.gEDA''// или в локальном каталоге вместе со схемами. Умолчания установлены в //''system-gschemrc''//. Если хочется другого поведения, скопируйте соответствующие строки в локальный //''gnetlistrc''//. Способа сделать определённые имена соединений глобальными нет. Однако имена для соединений можно разделить на те, что задаются с помощью атрибута ''netname'', и те, что определяются атрибутом ''net''. Второй атрибут предназначен для настройки соединений символов питания. При его использовании соединения питания к символам подсхем подводить не нужно. ===== Можно ли определить особые настройки и библиотеки для подсхем? ===== Когда схема открывается, **libgeda** меняет каталог. Так что при обработке схемы она должна загрузить любой //''gafrc''//, и в подкаталогах тоже. ===== Есть ли ограничения для иерархических проектов? ===== Хотя поддержка подсхем охватывает многие аспекты иерархических проектов, несколько ограничений существует: * Шины к подсхемам присоединять нельзя. * В графическом интерфейсе нет способа создать начальную подсхему. Отдельные символы для каждой подсхемы придётся создавать вручную. Не стесняйтесь исправить эти вопросы. Помощь приветствуется. ====== Символы gschem ====== ===== Где найти символы кроме тех, что есть в стандартной библиотеке? ===== Есть веб-сайт [[http://www.gedasymbols.org/|gedasymbols.org]], предназначенный для ресурсов, которыми пользователи содействуют проекту gEDA. Есть поиск по сайту, предпросмотр символов и их можно загрузить по отдельности. Если соответствующим образом сконфигурировать свой файл //''gafrc''//, то эти символы можно разместить прямо рядом с файлами схем своего проекта. Может быть вам следует создать локальную библиотеку символов, чтобы все проекты имели доступ к новым символам. Смотрите подробности [[#Можно ли в gafrc задать корневой каталог своей библиотеки с помощью переменной|ниже]]. Можно загрузить даже всё содержимое, добавленное пользователями //gedasymbols//. Смотрите инструкции о том, [[http://www.gedasymbols.org/cvs.html|как получить доступ к gedasymbols с помощью CVS]]. ===== Что за вопрос насчёт тяжёлых символов против лёгких? ===== Эта терминология выросла из дискуссии, которая часто возникает в списках рассылки //geda-user// и //geda-dev//. Лёгкий символ --- это символ, содержащий очень мало встроенных атрибутов. При этом почти все атрибуты пользователю придётся добавлять на этапе редактирования схемы (например, в **gschem** или в **gattrib**). Тяжёлый символ --- это такой, многие атрибуты которого (такие как посадочные места компонентов, названия [[geda:glossary.ru#Модель|SPICE-моделей]] и пр.) уже встроены в файл символа. Поэтому на этапе редактирования схемы атрибуты к тяжёлому символу прикреплять практически не требуется --- просто вставляете его и всё готово. Дебаты между сторонниками тяжёлых и лёгких символов очень детальны и запутаны. В целом, сторонники тяжёлых символов думают, что они позволяют достичь большей интеграции между **gschem** и **pcb**, так как важные атрибуты топологии (такие как [[geda:pcb_tips.ru#я_хочу_развести_плату_в_pcb._как_узнать_какое_значение_задать_атрибуту_footprint|название посадочного места]]) уже встроены в символ. Считается, что это хорошо для новых пользователей (нубов), которые просто хотят спроектировать простую плату, и их не волнует миллион вариантов, существующих даже для обычного резистора (например, различные корпуса, ТКС, точность, состав материала и т. д.). Сторонники лёгких символов предпочитают работать с атрибутами при редактировании схемы, потому что думают, что это более гибко. Они сразу указывают, что если пытаться обозначить все различия между разными вариациями компонентов, библиотека тяжёлых символов быстро разрастётся в тысячи компонентов с абсурдно длинными названиями. Они также отмечают, что предпочтительным инструментом для обработки атрибутов при редактировании схем (то есть для файлов //''.sch''//) является утилита **gattrib**. В gEDA/gaf по умолчанию используются лёгкие символы, хотя такую конфигурацию можно изменить и использовать тяжёлые. Более подробно об этом можно узнать из следующих дискуссий в списке рассылки //geda-user//: [[http://archives.seul.org/geda/user/Jun-2005/msg00001.html]] [[http://archives.seul.org/geda/dev/Oct-2005/msg00043.html]] [[http://archives.seul.org/geda/user/Dec-2007/msg00146.html]] ===== Я загрузил символ из библиотеки. Почему он не выравнивается по сетке? ===== Подавляющее большинство символов в библиотеке создано с выравниванием по сетке в 100 единиц. Убедитесь, что сетка настроена на 100 единиц. Чтобы проверить или изменить это значение, выберите **//Шаг сетки привязки...//** [**//Snap Grid Spacing...//**] в меню настроек. Символы добавлены в библиотеку такими же пользователями, как и вы. Некоторые люди используют другие настройки сетки, нежели остальные (например, 50 единиц вместо 100). Если вы обнаружили символ, который, кажется, не выравнивается по сетке, попробуйте уменьшить размер сетки и переместить символ так, чтобы концы его выводов «сидели» на сетке. Потом вернитесь к настройкам сетки, подходящим для вас. Кроме того, вы можете послать исправленный символ в [[http://www.seul.org/cgi-bin/mailman/listinfo/geda-user|список рассылки geda-user]]. Символы, находящиеся на сайте [[http://www.gedasymbols.org | gedasymbols.org]], ещё более подогнаны под конкретные требования их авторов. Да, документация gEDA строго рекомендует использовать размер сетки 100 единиц. Но каждый любит делать всё по-своему и абсолютного диктатора, который мог бы навязать правила для вносимых в проект символов, нет. Поэтому вам просто надо знать об этой возможности. ===== Есть ли явный символ «no connect», который я мог/должен бы вставить в схему, чтобы программа gnetlist не думала, что я забыл добавить какое-то соединение? ===== Ответ: //''misc''// -> //''nc-left, nc-right, nc-top, nc-bottom''//. Будьте осторожны: подчас при этом может быть создано соединение с названием //no_connect// (или //NC??//), что может заставить **gnetlist** соединить эти неподключенные выводы между собой, чего вы, скорее всего, __не__ хотели бы. Если вы хотите, чтобы символ был чисто графическим (не имел электрических соединений), добавьте атрибут ''graphical=1''. Такие символы полностью игнорируются генератором списка соединений. ===== Как вынести в схему невидимый атрибут символа? ===== Невидимые атрибуты, за некоторыми исключениями, из символов в схему не выносятся. Чтобы они выносились, нужно сделать следующее. Поищите следующие ключевые слова в файле //''system-gafrc''//: (attribute-promotion "enabled"); (promote-invisible "disabled") ; <= Вот это (keep-invisible "enabled") Добавьте в свой //''gafrc''//: (promote-invisible "enabled") и все атрибуты будут выноситься. Ключевое слово ''keep-invisible'' служит для того, чтобы те атрибуты, что были скрытыми в файле символа, оставались скрытыми и в схеме. ===== Как мне быть с выводами питания для своих символов: делать ли их видимыми (явными) или невидимыми (неявными)? ===== В прошлом в схемах цифровой логики выводы питания скрывались и соединения питания осуществлялись с помощью атрибутов внутри символа. В настоящее время общее мнение на этот счёт изменилось, и такой подход считается плохим (хотя порой всё ещё вспыхивают религиозные войны по этому вопросу). Для старых логических схем, имеющих повсюду пятивольтовую ТТЛ-логику, наличие скрытых выводов может быть и нормально. Если у вас на плате есть только +5 В, то скрытие выводов питания может несколько упростить схему. Однако сегодня немногие проектировщики делают такие схемы; пятивольтовые ТТЛ (и пятивольтовые КМОП) быстро становятся технологией древности. Скрывать выводы питания аналоговых микросхем было неприемлемо всегда. Во-первых, аналоговые микросхемы часто имеют несколько соединений питания (//VCC//, //VEE//), которые требуется указывать явно. Во-вторых, хорошая практика проектирования подразумевает установку развязывающих конденсаторов на всех выводах питания без исключения. К тому же иногда последовательно с питанием устанавливают катушку индуктивности. Так как всё это должно быть начерчено в схеме, то лучше всего для их подключения использовать явный вывод питания. Поэтому никогда не следует использовать скрытые выводы питания для символов аналоговых компонентов. В новых схемах логики для разных частей микросхемы часто используется несколько источников питания (//OVDD//, //DVDD// и т. д.). Обычным также является наличие нескольких типов логики на одной плате (5 В, 3.3 В и т. д.). Поэтому лучше всего размещать и подключать выводы питания таких символов явным образом. Скрытые выводы питания в этом случае будут причиной многих бед, так как, например, питание 3,3 В можно весьма просто ошибочно подключить к пятивольтовому прибору. Перефразируя Ненси Рейган: просто скажи «нет» скрытым выводам питания. К вышесказанному добавим, что тем не менее весьма удобным может быть отделение выводов питания от функциональных частей символа. Чтобы добиться этого, надо будет определить отдельный символ питания и задать ему то же самое [[geda:glossary.ru#позиционное обозначение]], что и для функциональной части. При запуске **gsch2pcb** эти двойняшки будут надлежащим образом рассматриваться как один компонент. Так как ни **gschem**, ни **gsch2pcb** не могут точно знать, вполне ли укомплектован компонент в схеме обоими созданными для него символами, то это следует проверять самостоятельно. При таком подходе все цепи питания могут вычерчиваться в одном углу схемы отдельно от сигнальных цепей. Для аналоговых схем это в ряде случаев очень удобно. ===== Можно ли использовать выводы нулевой длины? ===== Для обоих концов вывода можно задать одинаковые значения координат. При этом будет выводиться только красный маркер вывода без продолжения. В настоящее время в **gschem** графически такой вывод начертить нельзя. Но файл символа можно открыть в текстовом редакторе и добавить вот такую строку: P 100 100 100 100 1 0 0 Получится вывод нулевой длины в нижнем левом углу рабочей области. Его можно перемещать, прикреплять к нему атрибуты, копировать его как и любой другой вывод. Если соединение к нему не подключено, он выглядит как маленький красный флаг, в противном случае --- пропадает. **gnetlist** без проблем обрабатывает его как и все прочие выводы. ===== Есть ли спецификация или руководство по созданию символов gschem? Если есть, то где? ===== Есть. Это [[gEDA:gschem_symbol_creation.ru|Руководство по созданию символов]]. ===== Есть ли помощник по созданию символов в gschem? ===== Помощника, встроенного в графический интерфейс **gschem**, нет. Но есть скрипты для автоматического создания символов по заданным в файле конфигурации параметрам. Один из этих скриптов --- [[tragesym_readme.ru|tragesym]]. Он входит в стандартный набор программ gEDA. Научиться им пользоваться вам поможет [[tragesym_tutorial.ru|краткое руководство]]. Один из основных разработчиков проекта написал свой собственный скрипт для создания символов: [[http://www.gedasymbols.org/user/dj_delorie/tools/djboxsym.html|djboxsym]]. Кроме того, существует утилита (**ibs2symdef.py**), позволяющая создавать файлы описаний символов (//symdef//) для работы с **djboxsym** из IBIS-моделей. Она распространяется в рамках проекта PyBIS: [[https://github.com/russdill/pybis/wiki|PyBIS wiki]]. Посмотрите страницу [[geda>geda:gschem symbol generators]] на предмет других доступных генераторов. ===== Где можно найти информацию о формате файлов gschem? ===== В отличие от многих [[geda:glossary.ru#САПР электроники]], разработчики **gschem** строго придерживаются удобочитаемого текстового формата. Он используется преднамеренно, для облегчения написания скриптов. К тому же он позволяет быстро править файлы в текстовом редакторе. Описание формата файлов **gschem** находится [[file_format_spec.ru|здесь]]. ===== Почему символы такие большие? ===== В **gschem** нет ничего, что определяло бы абсолютный размер объектов. Единственной связью с реальными единицами измерения являются названия разных рамок основных надписей. По какой-то давно забытой причине в рамках основных надписей с названиями //''title-A4.sym''// или //''title-B.sym''// помещаются только относительно простые схемы из символов стандартной библиотеки. Если для более сложных схем вам нужно больше места, просто выберите символ рамки подходящего размера. **gschem** масштабирует вывод печати таким образом, что всё содержимое растягивается на выбранный формат листа. Этот формат абсолютно независим от используемого в схеме символа рамки основной надписи. Поэтому нет нужды масштабировать сами символы, чтобы они поместились на конкретном формате. Многие при печати на A4 предпочитают использовать //''title-A2.sym''// или //''title-A3.sym''//. Кто-то использует символы основной надписи вообще без рамок и затем чертит прямоугольник подходящего размера (см., например, [[http://www.gedasymbols.org/user/kai_martin_knaak/symbols/titleblock/title-block.sym|title-block.sym]] от //Kai-Martin Knaak//). Но в некоторых случаях всё же хочется на самом деле изменить размер символов. Для этого есть несколько способов: * //DJ Delorie// написал для проекта скрипт на Perl под названием [[http://www.gedasymbols.org/user/dj_delorie/tools/scale-schematic|scale-schematic]], находящийся на его странице на сайте [[geda:glossary.ru#gedasymbols.org]]. * Можно сделать и свою собственную библиотеку символов. Это не так уж и страшно, так как многие приходят к использованию в любом случае исключительно собственных символов. ====== Конфигурирование/настройка gschem ====== Вариантов настройки **gschem** гораздо больше, чем может быть здесь рассмотрено. Поэтому, чтобы узнать, что можно изменить ещё, взгляните на //''system-gschemrc''//. ===== Как сконфигурировать локальный файл gafrc, чтобы можно было найти каталог своих символов? ===== - Создайте каталог проекта, например //''${HOME}/myproj''//. - Поместите нужные вам символы в //''${HOME}/myproj/symbols''//. - В //''${HOME}/myproj''// создайте файл //''gafrc''//. - Добавьте в //''gafrc''// строку: (component-library "./symbols") - Запустите **gschem** из каталога проекта. То есть для запуска **gschem** наберите следующее:cd ${HOME}/myproj gschem myschematic.sch Главное, что следует помнить: * Код Guile, обрабатывающий rc-файлы не понимает или не интерпретирует метасимволы и шаблоны оболочки, такие как <<~>> или <<${HOME}>>. Он не считает, что <<.>> --- это текущий каталог, и не понимает абсолютных путей доступа к файлам. Если вы хотите сделать что-то мудрёное, то для получения информации о каталогах можно попробовать использовать функции Scheme. * Убедитесь, что //''gafrc''// находится в главном каталоге проекта. * Запускайте все программы gEDA из главного каталога своего проекта. * Запускайте программы из командной строки в оболочке терминала --- не используйте никаких красивых, блестящих иконок для запуска **gschem** (если они у вас есть), так как вы не узнаете, в каком каталоге **gschem** запускается, а **gschem** может не найти //''gafrc''//. * Самое главное здесь: запускать **gschem** из того же каталога, где лежит и //''gafrc''//. ===== Как задать корневой каталог своей библиотеки? ===== Существует два подхода. Если вам нужно, чтобы каждая библиотека имела уникальное имя, абсолютно каждый из каталогов своих локальных библиотек нужно отдельно прописывать в файле //''gafrc''//. Но общую часть полного пути вовсе не обязательно повторять снова и снова. С помощью функции ''build-path'' путь можно формировать «на лету»: (define gedasymbols "/путь/к/локальной/библиотеке") (component-library (build-path gedasymbols "analog")) (component-library (build-path gedasymbols "block")) (component-library (build-path gedasymbols "connector")) Если вы не хотите перечислять отдельные подкаталоги, можно задать только имя корневого каталога библиотеки: (component-library-search "/каталог/с/моими_библиотеками_символов/" "library:") ===== Можно ли в задании пути доступа к библиотеке использовать переменные окружения? ===== К переменной окружения //ENV// внутри предложений Scheme в //''gafrc''// можно обратиться с помощью ''%%getenv "ENV"%%'': ; Определение пути доступа к локальному репозиторию символов: (define symbolspath (build-path (getenv "HOME") "geda" "symbols")) ; Подключение с его помощью конкретной библиотеки: (component-library (build-path symbolspath "analog")) Альтернативный синтаксис --- ''${ENV}'': (component-library "${HOME}/geda/symbols/analog") ===== Как сделать так, чтобы название библиотеки отличалось от имени её каталога? ===== Добавьте третий аргумент в предложение ''component-library'' в //''gafrc''//, то есть: (component-library "/home/comp/sch_symbols/AutoGen/Panasonic/0603/1P" "Panasonic 0603 1P") ===== Можно ли в библиотеке хранить часто необходимые части схем? ===== Да, благодаря тому, что символы могут содержать вложенные символы и соединения. - Скопируйте часть схемы на новый лист (так как рамка основной надписи вам не понадобится, разблокируйте её и удалите). - Позиционные обозначения должны заканчиваться на <>, чтобы потом их можно было пронумеровать автоматически. - Переместите эту часть схемы в нижний левый угол доступного для чертежа пространства (можно с помощью **//Правка//** -> **//Смещение символа...//** [**//Edit//** -> **//Symbol Translate...//**]). - Сохраните полученную схему как символ (с расширением //''.sym''//) в свою локальную библиотеку. - В рабочей схеме откройте окно выбора компонентов и перед вставкой этого составного символа снизу в выпадающем списке выберите **//Вставить как отдельные объекты//** [**//Include component as individual objects//**]. Содержимое символа будет полностью вставлено на лист. Не забудьте потом снова установить режим по умолчанию для вставки обычных символов. ===== Библиотека завалена символами стандартной библиотеки. Можно ли ограничиться только своими локальными библиотеками? ===== Добавьте в //''gafrc''// следующие строки, заменив каталоги на свои: ; очистить переменную, содержащую пути к библиотекам, ; и добавить в неё локальные каталоги: (reset-component-library) (component-library "/foo/localgedalib1") (component-library "/bar/foo/localgedalib2") Можно либо добавить каталоги для всех локальных библиотек отдельно, или добавить целое дерево пути с подкаталогами. См. выше о том, [[#Как задать корневой каталог своей библиотеки|как это сделать]]. Весьма неплохо поместить этот //''gafrc''// в каталог своего проекта. Таким образом при запуске **gschem** из какого-то другого каталога символы стандартной библиотеки всё равно будут появляться. Также это даёт возможность настройки библиотек специальных символов для особых проектов. ===== Что надо сделать, чтобы по умолчанию устанавливался другой размер текста? ===== Добавьте в свой //''gschemrc''// (text-size 10) Вместо "10" подставьте нужный размер. ===== Скажите, пожалуйста, можно ли настроить светлый цвет фона? ===== В файл //''gschemrc''//, находящийся в том месте, где **gschem** при запуске ищет свои настройки, добавьте такую строку: (load (build-path geda-rc-path "gschem-colormap-lightbg")) ===== Как подстроить цвета в gschem? ===== В настоящее время графического интерфейса для интерактивной корректировки цветов в **gschem** нет. Но их можно поправить в rc-файле. - Скопируйте файл //''gschem-colormap-lightbg''// или //''gschem-colormap-darkbg''// в //''$HOME/.gEDA/mycolors''//. - Отредактируйте по вкусу цвета в //''.gEDA/mycolors''//. - Добавьте в //''gschemrc''// строку: (load (build-path (getenv "HOME") ".gEDA" "mycolors")) ===== Каждый раз при запуске gschem появляется окно журнала. Можно ли его отключить? ===== В файле //''system-gschemrc''// вы найдёте следующий раздел: ; log-window string ; ; Controls if the log message window is mapped when gschem is started up ; Possible options: ; startup - opened up when gschem starts ; later - NOT opened up when gschem starts ; (can be opened by Options/Show Log Window) ; (log-window "startup") ;(log-window "later") Закомментируйте строку ''startup'' (с помощью символа <<;>>) и раскомментируйте строку ''later'', или добавьте в свой //''gschemrc''// следующую строку: (log-window "later") Если вы хотите, чтобы вместо окна журнала сообщения выводились на стандартный вывод (//stdout//), добавьте в свой //''gschemrc''// такую строку: (logging-destination "tty") ===== Есть ли способ запретить журналирование в $HOME/.gEDA/logs/? ===== Добавьте в свой //''gschemrc''// строку: (logging "disabled") ===== Можно ли сделать так, чтобы для новых схем устанавливалась моя собственная рамка основной надписи? ===== Добавьте следующую строку в свой //''gschemrc''//: (define default-titleblock "title-A3.sym") Замените //''title-A3.sym''// именем файла символа предпочитаемой рамки. ====== Печать/вывод ====== ===== Как напечатать схемы из командной строки? ===== Файл в формате PostScript или PDF для своей схемы можно получить с помощью команды **gaf export**. PDF-файл из файла схемы создаётся следующей командой (замените в ней MY_SCH именем файла своей схемы): gaf export -o MY_SCH.pdf MY_SCH.sch Приведённый ниже ''bash''-скрипт, который я назвал **gschem-print**, создаст для каждого из заданных в командной строке файлов схем Postscript-файл, а затем распечатает его на используемом по умолчанию принтере: #!/bin/bash # 'gaf export' options # -oPS_FILENAME output to Postscript file PS_FILENAME for name in $* do base="${name%.*}" gaf export --output=$base.ps -- $base.sch lpr -P$PRINTER $base.ps done Размер бумаги можно настроить с помощью ключа ''-p''. Для установки размера бумаги в A4 используется команда вида: gaf export --paper=iso_a4 -o MY_SCH.pdf MY_SCH.sch Чтобы задать "US Letter" как предпочтительный размер бумаги для всех открываемых схем, выполните: gaf config --user export paper na_letter ===== Как вывести PDF/PNG в цвете? ===== Отредактируйте файл //''system-gschemrc''// или добавьте в //''gschemrc''// одну из следующих строк (то есть в //''~/.gEDA/gschemrc''// или в //''gschemrc''// в том каталоге, из которого вы запускаете **gschem**). (print-color "enabled") ; для вывода цветных PDF (image-color "enabled") ; для вывода цветных PNG (включено по умолчанию) ===== Как вывести чёрно-белые Postscript/PNG? ===== Для вывода чёрно-белого Postscript добавьте в //''gschemrc''// следующее: (output-color "disabled") ; монохромный Postscript (включено по умолчанию) Для вывода чёрно-белых PNG добавьте в //''gschemrc''// следующее: (image-color "disabled") ; монохромные PNG ===== Как сделать PDF? ===== Выберите в меню **Файл→Сохранить изображение…** [**File→Write image…**]. Откроется окно записи изображения. Там можно выбрать экспорт в PDF. Или просто запустите: gaf export --output=foo.pdf bar.sch ===== Как вставить схемы в LaTeX-документ? ===== При обычном использовании команды **latex** вам понадобится файл в формате EPS (Encapsulated PostScript). Для **pdflatex** вам будет нужен файл в формате PDF. Для создания соответствующего файла нужно выполнить: gaf export --size=auto --output=foo.eps foo.sch или: gaf export --size=auto --output=foo.pdf foo.sch В преамбулу своего LaTeX-документа нужно добавить ''\usepackage{graphicx}''. Вставка схемы в документ осуществляется командой ''\includegraphics''. Простой пример: \documentclass{article} \usepackage{graphicx} \begin{document} \begin{figure} \includegraphics[width=100mm]{foo} \end{figure} \end{document} ===== Как разбить лист схемы в формате Postscript на несколько страниц? ===== Сама программа **gschem** такой функциональности не предоставляет, но есть программа **poster**, которая как раз это и делает. Её можно загрузить [[http://www.gnu.org/directory/poster.html|отсюда]] (GNU) или [[http://printing.kde.org/downloads/|отсюда]] (KDE Print). ====== Проблемы установки/работы gschem ====== ===== После установки gschem не работает!? Что может быть не так? ===== Если вы запускаете **gschem** и получаете окно без панели меню, без цветов, и при нажатии клавиши программа завершается со следующим сообщением: ERROR: Unbound variable: current-keymap или появляется ошибка такого вида: Gtk-CRITICAL : file gtkpixmap.c: line 97 (gtk_pixmap_new): assertion `val != NULL' failed. Gtk-CRITICAL : file gtkpixmap.c: line 97 (gtk_pixmap_new): assertion `val != NULL' failed. Tried to get an invalid color: 0 Tried to get an invalid color: 7 Tried to get an invalid color: 0 Tried to get an invalid color: 7 то **gschem** не находит какого-то rc-файла. Есть два необходимых rc-файла. Первый --- это //''system-gschemrc''//, второй --- //''system-gafrc''//. * rc-файл //''system-gschemrc''// должен устанавливаться при установке **gschem** и обычно находится в //''${prefix}/share/gEDA/system-gschemrc''//. //''${prefix}''// --- это каталог установки gEDA (обычно //''/usr''//, //''/usr/local''// или //''$HOME/geda''//). Этот файл может быть также установлен в //''/etc/gEDA''// (так делается в пакетах //''.deb''//). * rc-файл //''system-gafrc''// должен устанавливаться при установке общей библиотеки gEDA/gaf **libgeda**. Он находится в //''${prefix}/share/gEDA/system-gafrc''//. Этот файл может устанавливаться также в //''/etc/gEDA''// (так делается в пакетах //''.deb''//). Непосредственно программой **gschem** этот файл не загружается. Удостоверьтесь, что эти файлы установлены. Файл //''gschem.log''// (создаваемый при каждом запуске **gschem**) содержит полезную отладочную информацию, которая должна помочь вам определить, что идёт не так. Проверьте этот файл на предмет того, где **gschem** ищет свои rc-файлы. Кроме того, в некоторых более старых версиях gEDA/gaf было несколько ошибок, возникавших при установке rc-файлов в другие места (другие, нежели //''${prefix}/share/gEDA''//), так что произведите обновление до более свежей версии. ===== «Добавить Компонент» не предлагает символов! Что с этим делать? ===== Убедитесь, что по крайней мере в одном из файлов конфигурации у вас указан действительный путь доступа к библиотеке символов. При запуске **gschem** проверяет следующие файлы конфигурации (в системе Debian): - системный файл //''gafrc''// дистрибутива: //''/etc/gEDA/system-gafrc''// (будет перезаписан при обновлении) - локальный системный файл //''gafrc''//: //''/usr/share/gEDA/gafrc.d/gafrc''// (для версий gEDA после лета 2009 г.) - пользовательский файл //''gafrc''//: //''~/.gEDA/gafrc''// - локальный файл //''gafrc''//: //''$PWD/gafrc''// - системный файл //''gschemrc''//: //''/etc/gEDA/system-gschemrc''// - пользовательский файл //''gschemrc''//: //''~/.gEDA/gschemrc''// - локальный файл //''gschemrc''//: //''$PWD/gschemrc''// Все эти файлы конфигурации могут добавлять или не добавлять пути к списку поиска библиотек. Если конфигурационный файл содержит команду: (reset-component-library) пути поиска библиотек будут очищены. Порядок, само собой, важен, так как эта команда удалит все пути, заданные до её вызова. ===== Я использую gschem/gaf через SSH-соединение и получаю ошибку:'Xlib: extension "RENDER" missing on display "localhost:10.0".' ===== Если вы зайдёте на удалённую машину, сделав: $ ssh -X имя_пользователя@удалённая_машина и после этого получите указанное сообщение от Xlib RENDER, то попробуйте использовать: $ ssh -Y имя_пользователя@удалённая_машина Последняя команда разрешает надёжный X11-форвардинг.