//Эта страница доступна также на следующих языках://
[[tragesym_tutorial|English]], [[tragesym_tutorial.fr|Français]].

====== Быстрое и лёгкое создание символов gschem с помощью tragesym и программы работы с электронными таблицами ======

Создание [[geda:glossary.ru#Символ|символов]] для
[[geda:glossary.ru#Принципиальная схема|принципиальных схем]] отнимает очень
много времени, чревато ошибками и вообще неимоверно мучительно. К счастью,
**gschem** использует открытый текстовый формат файлов, легко поддающийся
скриптовой обработке. В этом кратком руководстве приводится описание того,
как с помощью скрипта **tragesym** очень быстро создать символ (может быть
гораздо быстрее, чем в любом из коммерческих пакетов).

===== Необходимые шаги =====

  * Шаг 1: Открытие файла шаблона **tragesym**
  * Шаг 2: Загрузка спецификации устройства и поиск цоколёвки с перечнем выводов
  * Шаг 3: Копирование перечня выводов в редактор и его обработка
  * Шаг 4: Добавление недостающих данных в электронную таблицу
  * Шаг 5: Экспорт электронной таблицы в отдельный текстовый файл
  * Шаг 6: Запуск **tragesym** для создания символа
  * Шаг 7: Проверка результата в **gschem** и небольшая доводка


===== Шаг 1: Открытие файла шаблона tragesym =====

В **tragesym** входят два файла-шаблона. Один --- в {{:tragesym:template2.txt.src|текстовом варианте}}, второй --- в виде {{:tragesym:template2.ods|электронной таблицы OpenOffice}}. Также их можно найти в пакете gEDA-утилит (//''utils/examples/tragesym/template.src''// и //''utils/examples/tragesym/template.ods''//).
Если вы предпочитаете другую программу работы с электронными таблицами, например **gnumerik** или **kspread**, то просто создайте свой собственный шаблон из текстового шаблона.  Единственное различие между текстовым шаблоном и шаблоном в виде электронной таблицы --- синтаксис пар «ключ-значение» в разделах ''[options]'' и ''[geda_attr]''. В текстовом файле они разделены знаком равенства (''ключ=значение''), в электронной таблице значение находится во втором столбце (что даёт разделитель в виде знака табуляции при экспорте).

===== Шаг 2: Загрузка спецификации устройства и поиск цоколёвки с перечнем выводов =====

В данном примере мы создадим символ для //Philips Semiconductor PCA9555
16-bit IIC IO port//. Описание продукта и спецификация доступны на сайте
Philips:
[[http://www-us.semiconductors.philips.com/cgi-bin/pldb/pip/pca9555.html]].
Загрузите спецификацию и откройте её в программе просмотра PDF, которая
позволяет копировать текст из pdf-файла, такой как **kpdf** или
**acroread**.  Пролистайте страницы, пока не найдёте
[[geda:glossary.ru#Цоколёвка|цоколёвку]] устройства:

{{:tragesym:kpdf_pinconfiguration.png|kpdf_pinconfiguration.png}}
{{:tragesym:acroread_selectiontable.png|acroread_selectiontable.png}}

Перечень выводов в спецификации может находиться только на изображении
конфигурации выводов («Pin configuration» на первом рисунке). Если же
имеется подробная таблица (второй рисунок из другой спецификации),
используйте её.

===== Шаг 3: Копирование перечня выводов в редактор и его обработка =====
Выделите перечень выводов и скопируйте его в текстовый редактор. Этот
промежуточный шаг необходим, поскольку вашей программе работы с электронными
таблицами может понадобиться специальный разделитель полей, такой как,
например, запятая или знак табуляции.

**Примечание:** поведение программ **kpdf** и **acroread** при выделении различается. Программа **kpdf**, кажется, создаёт копию, более похожую на графическое представление, в то время как **acroread** производит вывод, более ориентированный на «последовательность внутри файла». Если вам нужно создать много символов, попробуйте обе программы и сравните результаты.

{{:tragesym:xemacs_rawselection.png|xemacs_rawselection.png}}
{{:tragesym:xemacs_modifiedselection.png|xemacs_modifiedselection.png}}
{{:tragesym:ooo_selection.png|ooo_selection.png}}

Представленные выше рисунки иллюстрируют шаги:
  * вставка выделения из программы просмотра PDF в текстовый редактор;
  * изменение перечня выводов на радость программе работы с электронными таблицами:
    * вырезание списка выводов с 24 по 13 с помощью прямоугольного выделения;
    * вставка прямоугольного выделения после вывода 12;
    * сортировка строк (**xemacs** это умеет ;-) )
    * удаление или исправление строк с номерами 2,3,... Их части оказались в разных строках. Номера выводов можно легко воссоздать позже;
    * замещение пробелов символами табуляции (нет особой нужды, если используется **OpenOffice**);
  * копирование отредактированных данных куда-то в конец шаблона электронной таблицы.

===== Шаг 4: Добавление недостающих данных в электронную таблицу =====

Теперь переместите метки выводов в столбец меток (label) и номера выводов в
столбец номеров выводов (pinnr). Для создания номеров выводов можно также
использовать возможность автозаполнения своей программы работы с
электронными таблицами.

{{:tragesym:ooo_rearanged.png|ooo_rearanged.png}}

Установите в столбцах тип (type), стиль (style) и позиция (posit.) наиболее
общие значения. Снова можно использовать возможность автозаполнения.

Теперь вам нужно изменить некоторые значения. Взгляните на таблицу описания
выводов в спецификации:

{{:tragesym:kpdf_pindescription.png|kpdf_pindescription.png}}

В соответствии с этой таблицей изменяем следующее (см. результат ниже):
  * вывод 1 --- выход, мы хотим иметь признаки отрицания --- кружок у вывода и черту над его меткой;
  * A1 -- A3 --- входы, изменяем тип и перемещаем их на левую сторону;
  * устанавливаем выводу SCL тип "in" (вход) и перемещаем SCL и SDA также влево;
  * изменяем тип выводов питания VSS и VDD и добавляем имена соединений. Мы используем более привычные GND и Vcc.

**Примечание:** если одна из меток ваших выводов имеет внутри обратную косую черту "\", её необходимо заменить управляющей последовательностью "\\".

{{:tragesym:ooo_changedpins.png|ooo_changedpins.png}}

Прежде чем продолжить, задайте надлежащие значения атрибутам (geda_attr) и
ключам (options).

{{:tragesym:ooo_attributes.png|ooo_attributes.png}}


===== Шаг 5: Экспорт электронной таблицы в отдельный текстовый файл =====

Можно либо использовать функцию экспорта своей программы работы с
электронными таблицами, либо просто выделить таблицу и скопировать
содержимое в свой любимый текстовый редактор и сохранить файл.

===== Шаг 6: Запуск tragesym для создания символа =====
Запустите **tragesym** в оболочке((Автор использует для символа расширение
//''.sch''//, на самом деле принято использовать //''.sym''//. --- //Прим.
перев.//)):

  werner@werner-amd64:~/Desktop/tragesym_tutorial> tragesym pca555.src
pca555.sch

Если **tragesym** выдаёт сообщения об ошибках, поправьте электронную таблицу
и снова выполните экспорт, либо просто отредактируйте файл, полученный в
результате экспорта ранее.

===== Шаг 7: Проверка результата в gschem и небольшая доводка =====

Теперь откройте созданный символ в **gschem** и проверьте результат

  werner@werner-amd64:~/Desktop/tragesym_tutorial> gschem pca555.sch

Разрешив скрытый текст (нажав «en» или выбрав из меню
**//Правка->Показать/скрыть невидимый текст//**), можно увидеть
сгенерированный символ полностью. Вовсе не обязательно что-либо менять, но
небольшая перестановка выводов может немного улучшить вид символа.

{{:tragesym:gschem_showhidden.png|gschem_showhidden.png}}
{{:tragesym:gschem_finished.png|gschem_finished.png}}

Теперь символ готов. Его можно скопировать в свою локальную библиотеку
символов, например //''/usr/local/share/gEDA/sym/local/''//, и использовать
в проектах.

===== Заключение =====
В простом примере, приведённом выше, используется не очень много выводов,
данный же метод окупается с лихвой, когда выводов очень много (как,
например, в bga-272, tfqp-100, и т. д.).

===== Благодарности =====
Большое спасибо <Russ.Dill(AT)asu.edu>, который написал первую версию
настоящего руководства. Эту версию можно найти на странице
[[http://www-mdp.eng.cam.ac.uk/web/CD/engapps/geda/geda-doc/tutorials/tragesym/tragesym.html]].
