User Tools

Site Tools


geda:file_format_spec.ru

Эта страница доступна также на следующих языках: English

Формат файлов gEDA/gaf

Автор: Ales V. Hvezda, ahvezda@geda.seul.org

Настоящий документ распространяется под лицензией GFDL

31 декабря 2003 г.

Обзор

Здесь представлена официальная документация формата файлов gEDA/gaf (gschem and friends). Основным форматом в gEDA/gaf является формат файлов электрических принципиальных схем и символов для них. Файлы с именами, заканчивающимися на .sch и .sym, являются соответственно файлами схем и символов. Пока в gEDA/gaf нет других типов файлов, настоящий документ будет относиться только к формату файлов схем/символов.
Настоящий документ находится в обращении с версии gEDA/gaf 20040111. Он охватывает версии формата 1 и 2.
Обратите внимание, что данный формат и любые другие форматы файлов, относящиеся к gEDA, находятся под лицензией General Public License (GPL) версии 2.0. Авторские права на формат файлов схем/символов gEDA/gaf принадлежат Ales Hvezda (Copyright (C) 1998-2004 Ales Hvezda).

Система координат

Все координаты задаются в милах (1/1000 дюйма). Это произвольное решение. Запомните, что в схемах и символах нет понятия физических длин/размеров (только при разработке принципиальных схем).

  • Начало координат находится в левом нижнем углу.
  • Размеры координатного пространства неограничены, но рекомендуется размещать объекты в пределах (120.0, 90.0) (x, y, дюймов).
  • В большинстве случаев желательно использовать положительные координаты x и y, отрицательные значения тоже работают, но их использование не рекомендуется.

Следующий рисунок показывает настройку координатной системы:

:geda:coordinatespace.ru.png

Значение по оси X возрастает слева направо, по оси Y — снизу вверх. Координатная система располагается в «пейзажной» ориентации и соответствует листу, повёрнутому длинной стороной вниз.

Имена файлов

Имена файлов символов заканчиваются на .sym. Для имён файлов символов в gEDA/gaf используется только одно соглашение: если есть несколько экземпляров символов с одинаковыми именами (как, например, 7400), то к концу основы имени файла добавляется суффикс -1, -2, -3, … -N . Пример: 7400-1.sym, 7400-2.sym, 7400-3.sym

Имена файлов схем заканчиваются на .sch. Раньше существовало соглашение об именах файлов схем (о добавлении -1 .. -N к основе имени файла), но сейчас оно устарело. Для схем их создатель может выбирать любые осмысленные имена.

Типы объектов

Файл схемы/символа для gEDA/gaf состоит из следующих частей:

  • Версия (v) как первый элемент в файле. Это обязательно.
  • Любое количество объектов с правильными данными. Объекты указываются с помощью «типа объекта».
  • Большинство объектов описываются одной строкой, но текстовые — двумя и более.
  • Не должно быть пустых строк в конце файла (они игнорируются программами).
  • Для всех перечислимых типов в форматах файлов gEDA/gaf поле принимает числовое значение.

Идентификатор типа объекта обозначается одной буквой, он должен находиться в первом столбце. Идентификатор типа объекта является регистрозависимым.

Файлы схем и символов имеют общий формат. Символ — это не что иное, как совокупность примитивных объектов (линий, прямоугольников, окружностей, дуг, текста и выводов). Схема представляет собой набор символов (компонентов), соединений и шин.

В следующих разделах приводится подробное описание каждого из распознаваемых типов объектов. Каждый раздел содержит название объекта, описание того, в каком типе файла (sch/sym) объект может присутствовать, формат данных, описание каждого отдельного поля, подробности и предостережения для данных полей и, наконец, пример с пояснением.

Информация об индексе цвета (который используется практически для всех объектов) находится в разделе Цвета.

Версия

Допускается: в файлах схем и символов

type version fileformat_version

Поз.ПолеТип/единицаОписание
# typecharv
1 versionintВерсия gEDA/gaf, в которой был сохранён данный файл
2 fileformat_versionintНомер версии формата файла gEDA/gaf
  • Тип обозначается буквой «v» в нижнем регистре (как в слове Victor).
  • Данный объект должен находиться в каждом файле, используемом или создаваемом программными средствами gEDA/gaf.
  • Формат первого поля версии — ГГГГММДД.
  • Номер версии не является произвольным временным штампом. Не выдумывайте номер версии, а в противном случае не ожидайте, что программы будут работать правильно.
  • «Версия gEDA/gaf, в которой был сохранён данный файл» использовалась во всех версиях gEDA/gaf до 20030921 как версия формата файла. Это поле не должно больше использоваться для определения формата файла. Сейчас оно используется только для информационных целей.
  • Начиная с gEDA/gaf версии 20031004 и позже, поле fileformat_version используется для определения версии формата файла. Весь код формата файла должен отталкиваться от этого поля.
  • fileformat_version возрастает при изменении формата файла.
  • Исходной точкой для fileformat_version было значение 1. Текущее значение — 2.
  • fileformat_version — это просто целое, без младшего номера.
  • Рабочие (нестабильные) версии: 19990601, 19990610, 19990705, 19990829, 19990919, 19991011, 20000220, 20000704, 20001006, 20001217, 20010304, 20010708, 20010722, 20020209, 20020414, 20020527, 20020825, 20021103, 20030223, 20030525, 20030901, 20040111, 20040710, 20041228, 20050313, 20050820, 20060123, 20060824, 20060906, 20061020, 20070216, 20070705, 20070708, 20070818, 20071229, 20080110, 20080127, 20080706, 20081220, 20081221, 20090328, 20090829, 20090830, 20110116, 20110619, 20111231
  • Стабильные версии: 20070526, 20070626, 20070902, 20071231, 20080127, 20080929, 20081220, 20081231, 20091004, 20100214, 20110115
  • CVS или тестовые версии (не должны использоваться): 20030921, 20031004, 20031019, 20031231, 20050814
  • Имейте в виду, что каждая из вышеперечисленных версий могла иметь свою вариацию формата файла. Настоящий документ описывает только последнюю версию формата.

Пример:

v 20040111 1

Линия

Допускается: в файлах схем и символов

type x1 y1 x2 y2 color width capstyle dashstyle dashlength dashspace

Поз.ПолеТип/единицаОписание
# typecharL
1 x1int/милыКоордината X первой точки
2 y1int/милыКоордината Y первой точки
3 x2int/милыКоордината X второй точки
4 y2int/милыКоордината Y второй точки
5 colorintЦветовой индекс
6 widthint/милыТолщина линии
7 capstyleintСтиль концов линии
8 dashstyleintТип линии
9 dashlengthint/милыДлина штриха
10 dashspaceint/милыИнтервал между штрихами
  • Параметр capstyle перечислимого типа:
    • END NONE = 0 (без стиля)
    • END SQUARE = 1 (квадратные концы)
    • END ROUND = 2 (круглые концы)
  • Параметр dashstyle перечислимого типа:
    • TYPE SOLID = 0 (сплошная линия)
    • TYPE DOTTED = 1 (пунктир)
    • TYPE DASHED = 2 (штрих)
    • TYPE CENTER = 3 (штрих-пунктир)
    • TYPE PHANTOM = 4 (двойной штрих-пунктир)
  • Параметр dashlength не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.
  • Параметр dashspace не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.

Пример:

L 23000 69000 28000 69000 3 40 0 1 -1 75

Сегмент линии от (23000, 69000) до (28000, 69000) с цветовым индексом 3, толщиной 40 милов, без стиля концов, пунктир, интервал между точками 75 милов.

Изображение

Допускается: в файлах схем и символов

type x1 y1 width height angle mirrored embedded
filename
[encoded picture data
encoded picture end]

Поз.ПолеТип/единицаОписание
# typecharG
1 xint/милыКоордината X левого нижнего угла
2 yint/милыКоордината Y левого нижнего угла
3 widthint/милыШирина изображения
4 heightint/милыВысота изображения
5 angleint/градусыУгол поворота изображения
6 mirroredcharЗеркально отражённое или нормальное изображение
7 embeddedcharВнедрённое или ссылка на файл изображения
8 filenamestringПуть доступа и имя файла для невнедрённого изображения
9 encoded picture datastringИзображение, преобразованное в последовательную форму, перекодированное в base64
10 encoded picture endstringСтрока, содержащая только символ точки
  • Данный объект является объектом изображения. Первая строка содержит все параметры изображения, вторая строка представляет собой путь доступа и имя файла изображения. Имя файла не используется, если изображение внедрено.
  • Параметр угла поворота изображения angle может принимать только одно из следующих значений: 0, 90, 180, 270.
  • Параметр mirrored перечислимого типа:
    • NOT MIRRORED = 0 (без отражения)
    • MIRRORED = 1 (с отражением)
  • Параметр embedded перечислимого типа:
    • NOT EMBEDDED = 0 (не внедрённое)
    • EMBEDDED = 1 (внедрённое — пока не поддерживается)
  • Поля encoded picture data и encoded picture end находятся в файле только в случае, если изображение внедрено в схему:
    • encoded picture data: Это многострочное поле. Изображение преобразуется в последовательную форму и затем кодируется в base64. Таким образом в закодированных данных используются только печатные символы. Поле содержит результат двух данных операций.
    • encoded picture end: Строка, содержащая только один символ точки '.' отмечает конец закодированных данных изображения.

Пример 1:

G 16900 35800 1400 2175 0 0 0
../bitmaps/logo.jpg

Объект изображения с левым нижним углом в (16900, 35800). Ширина изображения 1400 милов, высота 2175 милов.
Поворот изображения 0 градусов и оно ни отражённое, ни внедрённое.
Путь доступа и имя файла изображения отображается во второй строке.

Пример 2:

G 16900 35800 1400 2175 0 0 1
../bitmaps/logo.jpg
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
.

Объект изображения с левым нижним углом в (16900, 35800). Ширина изображения 1400 милов, высота 2175 милов.
Поворот изображения 0 градусов, оно не отражённое, но внедрённое.
Путь доступа и имя файла изображения отображается во второй строке. Так как это изображение внедрённое, путь доступа и имя файла не используются.
Закодированные данные изображения являются только примером (это не настоящие данные). Последняя строка, содержащая один символ точки '.' указывает конец закодированных данных.

Прямоугольник

Допускается: в файлах схем и символов

type x y width height color width capstyle dashstyle dashlength dashspace filltype fillwidth angle1 pitch1 angle2 pitch2

Поз.ПолеТип/единицаОписание
# typecharB
1 xint/милыКоордината X левого нижнего угла
2 yint/милыКоордината Y левого нижнего угла
3 widthint/милыШирина прямоугольника (в направлении x)
4 heightint/милыВысота прямоугольника (в направлении y)
5 colorintЦветовой индекс
6 widthint/милыТолщина линий
7 capstyleint/милыСтиль концов линий
8 dashstyleintТип линий
9 dashlengthint/милыДлина штриха
10 dashspaceint/милыИнтервал между штрихами
11 filltypeintТип заполнения
12 fillwidthint/милыТолщина линий заполнения
13 angle1int/градусыПервый угол заполнения
14 pitch1int/милыПервый шаг/интервал заполнения
15 angle2int/градусыВторой угол заполнения
16 pitch2int/милыВторой шаг/интервал заполнения
  • Параметр capstyle перечислимого типа:
    • END NONE = 0 (без стиля)
    • END SQUARE = 1 (квадратные концы)
    • END ROUND = 2 (круглые концы)
  • Параметр dashstyle перечислимого типа:
    • TYPE SOLID = 0 (сплошная линия)
    • TYPE DOTTED = 1 (пунктир)
    • TYPE DASHED = 2 (штрих)
    • TYPE CENTER = 3 (штрих-пунктир)
    • TYPE PHANTOM = 4 (двойной штрих-пунктир)
  • Параметр dashlength не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.
  • Параметр dashspace не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.
  • Параметр filltype перечислимого типа:
    • FILLING HOLLOW = 0 (без заполнения)
    • FILLING FILL = 1 (сплошное заполнение)
    • FILLING MESH = 2 (сетка)
    • FILLING HATCH = 3 (штриховка)
    • FILLING VOID = 4 (не используется)
  • Если значение filltype равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.
  • Тип заполнения FILLING FILL используется для заполнения сплошным цветом.
  • Для типа заполнения FILLING MESH заполнением или штриховкой управляют две пары наклон/интервал.
  • Для типа заполнения FILLING HATCH используется только первая пара наклон/интервал.

Пример:

B 33000 67300 2000 2000 3 60 0 2 75 50 0 -1 -1 -1 -1 -1

Прямоугольник с нижним левым углом в (33000, 67300) шириной и высотой (2000, 2000), цветовой индекс 3, толщина линий 60 милов, без стиля концов, штриховые линии, длина штриха 75 милов, интервал между штрихами 50 милов, без заполнения, остальные параметры не установлены.

Окружность

Допускается: в файлах схем и символов

type x y radius color width capstyle dashstyle dashlength dashspace filltype fillwidth angle1 pitch1 angle2 pitch2

Поз.ПолеТип/единицаОписание
# typecharV
1 xint/милыКоордината X центра
2 yint/милыКоордината Y центра
3 radiusint/милыРадиус окружности
4 colorintЦветовой индекс
5 widthint/милыТолщина линии окружности
6 capstyleint/милы0 (не используется)
7 dashstyleintТип линии
8 dashlengthint/милыДлина штриха
9 dashspaceint/милыИнтервал между штрихами
10 filltypeintТип заполнения
11 fillwidthint/милыТолщина линий заполнения
12 angle1int/градусыПервый угол заполнения
13 pitch1int/милыПервый шаг/интервал заполнения
14 angle2int/градусыВторой угол заполнения
15 pitch2int/милыВторой шаг/интервал заполнения
  • Параметр dashstyle перечислимого типа:
    • TYPE SOLID = 0 (сплошная линия)
    • TYPE DOTTED = 1 (пунктир)
    • TYPE DASHED = 2 (штрих)
    • TYPE CENTER = 3 (штрих-пунктир)
    • TYPE PHANTOM = 4 (двойной штрих-пунктир)
  • Параметр dashlength не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.
  • Параметр dashspace не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.
  • Параметр filltype перечислимого типа:
    • FILLING HOLLOW = 0 (без заполнения)
    • FILLING FILL = 1 (сплошное заполнение)
    • FILLING MESH = 2 (сетка)
    • FILLING HATCH = 3 (штриховка)
    • FILLING VOID = 4 (не используется)
  • Если значение filltype равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.
  • Тип заполнения FILLING FILL используется для заполнения сплошным цветом.
  • Для типа заполнения FILLING MESH заполнением или штриховкой управляют две пары наклон/интервал.
  • Для типа заполнения FILLING HATCH используется только первая пара наклон/интервал.

Пример:

V 38000 67000 900 3 0 0 2 75 50 2 10 20 30 90 50

Окружность с центром в (38000, 67000) и радиусом 900 милов, цветовой индекс 3, толщина линии 0 милов (наименьший размер), без стиля концов, штриховая линия, длина штриха 75 милов, интервал между штрихами 50 милов, заполнение сеткой, линии сетки толщиной 10 милов, первая линия сетки под углом 20 градусов с интервалом в 30 милов, вторая линия сетки под углом 90 градусов с интервалом в 50 милов.

Дуга

Допускается: в файлах схем и символов

type x y radius startangle sweepangle color width capstyle dashstyle dashlength dashspace

Поз.ПолеТип/единицаОписание
# typecharA
1 xint/милыКоордината X центра
2 yint/милыКоордината Y центра
3 radiusint/милыРадиус дуги
4 startangleint/градусыНачальный угол дуги
5 sweepangleint/градусыУгол разворота дуги
6 colorintЦветовой индекс
7 widthint/милыТолщина линии окружности
8 capstyleintСтиль концов линии
9 dashstyleintТип линии
10 dashlengthint/милыДлина штриха
11 dashspaceint/милыИнтервал между штрихами
  • Угол startangle может быть отрицательным, но это не рекомендуется.
  • Угол sweepangle может быть отрицательным, но это не рекомендуется.
  • Параметр capstyle перечислимого типа:
    • END NONE = 0 (без стиля)
    • END SQUARE = 1 (квадратные концы)
    • END ROUND = 2 (круглые концы)
  • Параметр dashstyle перечислимого типа:
    • TYPE SOLID = 0 (сплошная линия)
    • TYPE DOTTED = 1 (пунктир)
    • TYPE DASHED = 2 (штрих)
    • TYPE CENTER = 3 (штрих-пунктир)
    • TYPE PHANTOM = 4 (двойной штрих-пунктир)
  • Параметр dashlength не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.
  • Параметр dashspace не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.

Пример:

A 30600 75000 2000 0 45 3 0 0 3 75 50

Дуга с центром в (30600, 75000) и радиусом 2000 милов, начальный угол 0 градусов, угол разворота дуги 45 градусов, цветовой индекс 3, толщина линии 0 милов (наименьший размер), без стиля концов, штрих-пунктир, длина штриха 75 милов, интервал между штрихами 50 милов.

Текст и атрибуты

В зависимости от контекста текстовые объекты могут играть разные роли. Вне какого-либо окружения они представляют собой строки текста, содержащие какую-либо информацию. Заключённые в фигурные скобки, они интерпретируются как атрибуты. См. раздел Атрибуты.

Допускается: в файлах схем и символов

type x y color size visibility show_name_value angle alignment num_lines
string line 1
string line 2
string line 3

string line N

Поз.ПолеТип/единицаОписание
# typecharT
1 xint/милыКоордината X первой точки
2 yint/милыКоордината Y первой точки
3 colorintЦветовой индекс
4 sizeint/пунктыРазмер текста
5 visibilityintВидимость текста
6 show_name_valueintУправление видимостью атрибута
7 angleint/градусыУгол поворота текста
8 alignmentintВыравнивание/точка привязки текста
9 num_linesintКоличество строк текста (начальное значение 1)
10 string line 1 … NstringСобственно отдельные строки текста
  • Данный объект является многострочным. Первая строка содержит все параметры текста, а последующие содержат собственно текст.
  • Должно быть точно num_lines строк текста, следующих за строкой T … .
  • Максимальная длина отдельных строк текста составляет 1024, но ограничений на количество строк нет.
  • Минимальный размер составляет 2 пункта (пункт=1/72 дюйма).
  • Максимального размера нет.
  • Пара координат является точкой привязки текстового элемента.
  • Параметр visibility перечислимого типа:
    • INVISIBLE = 0 (невидимый)
    • VISIBLE = 1 (видимый)
  • Параметр show_name_value перечислимого типа:
    • SHOW NAME VALUE = 0 (показывать имя и значение атрибута)
    • SHOW VALUE = 1 (показывать только значение атрибута)
    • SHOW NAME = 2 (показывать только имя атрибута)
  • Параметр show_name_value действителен только в случае, если строка является атрибутом (чтобы строка считалась атрибутом, она должна иметь вид: имя_атрибута=значение).
  • Параметр угла поворота текста angle может принимать только одно из следующих значений: 0, 90, 180, 270. При значении 270 всегда будет производиться вертикальный текст.
  • Параметр выравнивания/привязки alignment управляет относительным положением точки привязки.
  • Параметр alignment может принимать значения от 0 до 8.
    На следующем рисунке показано действие значений параметра alignment.

fileformat_textgraphic.jpg

  • Исходное значение параметра num_lines всегда равно 1.
    Поле num_lines было добавлено начиная с версии 1 формата файла. Предыдущие версии (0 и ранее) поддерживали только однострочные текстовые объекты.
  • Горизонтальная черта над текстовыми строками задаётся ограничивающими текст с двух сторон маркерами надчёркивания вида «\_». Символ обратной косой черты записывается в виде «\\».

Пример 1:

T 16900 35800 3 10 1 0 0 0 1
Text string!

Текстовый объект с точкой привязки в (16900, 35800), цветовой индекс 3, размером 10 пунктов, видимый, флаги атрибута не действуют (объект не является атрибутом), точка привязки в левом нижнем углу, без поворота, строка: Text string!

Пример 2:

T 16900 35800 3 10 1 0 0 0 5
Text string line 1
Text string line 2
Text string line 3
Text string line 4
Text string line 5

Данный текстовый объект подобен указанному в примере выше, но здесь пять строк текста.

Пример 3:

T 10000 20000 3 10 1 1 8 90 1
pinlabel=R/\_W\_

Текстовый объект с точкой привязки (10000, 20000), цветовой индекс 3, размером 10 пунктов, видимый, видимо только значение атрибута, точка привязки находится в верхнем правом углу, текст повёрнут на 90 градусов, строка: «R/W», над буквой «W» горизонтальная черта.

Соединение

Допускается: ТОЛЬКО в файлах схем

type x1 y1 x2 y2 color

Поз.ПолеТип/единицаОписание
# typecharN
1 x1int/милыКоордината X первой точки
2 y1int/милыКоордината Y первой точки
3 x2int/милыКоордината X второй точки
4 y2int/милыКоордината Y второй точки
5 colorintЦветовой индекс
  • Соединения могут использоваться только в файлах схем.
  • Нельзя использовать соединения нулевой длины (они отбрасываются программами).

Пример:

N 12700 29400 32900 29400 4

Сегмент соединения от (12700, 29400) до (32900, 29400) с цветовым индексом 4.

Шина

Допускается: ТОЛЬКО в файлах схем

type x1 y1 x2 y2 color ripperdir

Поз.ПолеТип/единицаОписание
# typecharU
1 x1int/милыКоордината X первой точки
2 y1int/милыКоордината Y первой точки
3 x2int/милыКоордината X второй точки
4 y2int/милыКоордината Y второй точки
5 colorintЦветовой индекс
6 ripperdirintНаправление ответвлений от шины
  • Значение параметра ripperdir для свежесозданной шины устанавливается в 0.
  • При первом подключении соединения к шине параметр ripperdir принимает значение 1 или -1. Это значение определяет направление символа ответвления (ripper). Направление ответвления для объекта шины остаётся одним и тем же на всё время существования данного объекта.
  • Шины могут использоваться только в файлах схем.
  • Нельзя использовать шины нулевой длины (они отбрасываются программами).

Пример:

U 27300 37400 27300 35300 3 0

Сегмент шины от (27300, 37400) до (27300, 35300) с цветовым индексом 3 и без подключения соединений к данному сегменту.

Вывод

Допускается: ТОЛЬКО в файлах символов

type x1 y1 x2 y2 color pintype whichend

Поз.ПолеТип/единицаОписание
# typecharP
1 x1int/милыКоордината X первой точки
2 y1int/милыКоордината Y первой точки
3 x2int/милыКоордината X второй точки
4 y2int/милыКоордината Y второй точки
5 colorintЦветовой индекс
6 pintypeintТип вывода
7 whichendintУказывает активный конец
  • Параметр pintype перечислимого типа:
    • NORMAL PIN = 0
    • BUS PIN = 1 (не используется)
  • whichend определяет какой конец вывода является точкой соединения. Другие выводы или соединения могут подключаться только к данной точке.
  • Значение 0 параметра whichend определяет для соединения первую точку вывода, значение 1 — вторую.
  • Выводы могут использоваться только в файлах символов.
  • Допускается использовать выводы нулевой длины.

Пример:

P 0 200 200 200 1 0 0

Вывод от (0, 200) до (200, 200) с цветовым индексом 1, обычный вывод, для соединения используется первая точка.

Компонент

Допускается: ТОЛЬКО в файлах схем

type x y selectable angle mirror basename

Поз.ПолеТип/единицаОписание
# typecharC
1 xint/милыКоордината X точки привязки
2 yint/милыКоордината Y точки привязки
3 selectableintФлаг выделения
4 angleint/градусыУгол поворота компонента
5 mirrorintОтражение относительно оси Y
6 basenamestringИмя файла компонента
  • Параметр selectable принимает значение 1 для выделяемых, и 0 для невыделяемых компонентов.
  • Параметр угла поворота компонента angle может принимать только одно из следующих значений: 0, 90, 180, 270.
  • Параметр угла поворота angle может принимать только положительные значения.
  • Значение флага mirror равно 0, если компонент не отражён (относительно оси Y).
  • Значение флага mirror равно 1, если компонент зеркально отражён (относительно оси Y).
  • basename определяет имя файла компонента. Это имя относительное, то есть не содержит полного пути доступа к данному файлу.

Пример:

C 18600 19900 1 0 0 7400-1.sym

Компонент с точкой привязки в (18600,19900), выделяемый, без поворота, без отражения, имя файла компонента 7400-1.sym.

Контур

Допускается: в файлах схем и символов

Действителен: с версии 2 формата файла (выпуск 1.5.1)

type color width capstyle dashstyle dashlength dashspace filltype fillwidth angle1 pitch1 angle2 pitch2 numlines
path data line 1
path data line 2
path data line 3

path data line N

Поз.ПолеТип/единицаОписание
# typecharH
1 colorintЦветовой индекс
2 widthint/милыТолщина линий
3 capstyleintСтиль концов линий
4 dashstyleintТип линий
5 dashlengthint/милыДлина штриха
6 dashspaceint/милыИнтервал между штрихами
7 filltypeintТип заполнения
8 fillwidthint/милыТолщина линий заполнения
9 angle1int/градусыПервый угол заполнения
10 pitch1int/милыПервый шаг/интервал заполнения
11 angle2int/градусыВторой угол заполнения
12 pitch2int/милыВторой шаг/интервал заполнения
13 num_linesintКоличество строк данных контура (начальное значение 1)
14 path data line 1 … Npath dataОтдельные строки данных контура
  • Параметр capstyle перечислимого типа:
    • END NONE = 0 (без стиля)
    • END SQUARE = 1 (квадратные концы)
    • END ROUND = 2 (круглые концы)
  • Параметр dashstyle перечислимого типа:
    • TYPE SOLID = 0 (сплошная линия)
    • TYPE DOTTED = 1 (пунктир)
    • TYPE DASHED = 2 (штрих)
    • TYPE CENTER = 3 (штрих-пунктир)
    • TYPE PHANTOM = 4 (двойной штрих-пунктир)
  • Параметр dashlength не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.
  • Параметр dashspace не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.
  • Параметр filltype перечислимого типа:
    • FILLING HOLLOW = 0 (без заполнения)
    • FILLING FILL = 1 (сплошное заполнение)
    • FILLING MESH = 2 (сетка)
    • FILLING HATCH = 3 (штриховка)
    • FILLING VOID = 4 (не используется)
  • Если значение filltype равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.
  • Тип заполнения FILLING FILL используется для заполнения сплошным цветом.
  • Для типа заполнения FILLING MESH заполнением или штриховкой управляют две пары наклон/интервал.
  • Для типа заполнения FILLING HATCH используется только первая пара наклон/интервал.
  • Формат данных контура умышленно выбран подобным формату контуров в стандарте W3C SVG.
  • Выпущенное в gEDA подмножество синтаксиса контуров SVG документировано ниже в разделе Данные контура.
  • Детали реализации; код libgeda взят из librsvg, библиотеки синтаксического анализа SVG. В результате большая часть синтаксиса контуров SVG читается правильно, однако синтаксис всегда внутренне нормализуется в абсолютные команды move, line, bezier curve и close-path (и сохраняется в таком виде).
  • Координаты всего контура указываются в стандартной координатной системе gschem.

Пример:

H 3 10 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
M 410,240
L 501,200
L 455,295
L 435,265
z

Контур, начинающийся в (410,240), с линиями, начинающимися оттуда и соединяющими точки (501,200), (455,295), (435,265), замыкающийся обратно в исходную точку. Цветовой индекс 3, толщина линий 10 милов, без стиля концов, сплошная. Данные контура содержат 5 строк.

Шрифт

Допускается: ТОЛЬКО в специальных файлах шрифтов

type character width flag

Поз.ПолеТип/единицаОписание
# typecharF
1 charactercharОпределяемый символ
2 widthint/милыШирина символа (в милах)
3 flagintСпециальный флаг пробела
  • Это специальный объект, который должен использоваться ТОЛЬКО в файлах определения шрифтов.
  • Если определяемый символ шрифта является символом пробела (с кодом 32), то значение флага flag должно быть 1, иначе 0.

Пример:

F 11 1

Выше приведено определение символа пробела в шрифте.

Цвета

В формате файлов символов и схем gEDA/gaf цвета определяются посредством целочисленного индекса. Соответствие между числом и цветом основывается на типе объекта. Для каждого типа объекта обычно используется один или более цветов. Здесь приведена таблица соответствия цветовых индексов типам объектов:

ИндексТип объектаПримечание
0BACKGROUND_COLORФон
1PIN_COLORВывод
2NET_ENDPOINT_COLORКонечная точка соединения
3GRAPHIC_COLORГрафический объект
4NET_COLORСоединение
5ATTRIBUTE_COLORАтрибут
6LOGIC_BUBBLE_COLORЛогическая инверсия
7DOTS_GRID_COLORСетка
8DETACHED_ATTRIBUTE_COLORНеприкреплённый атрибут
9TEXT_COLORТекст
10BUS_COLORШина
11SELECT_COLORВыделение
12BOUNDINGBOX_COLORКонтур объекта
13ZOOM_BOX_COLORКонтур области масштабирования
14STROKE_COLORЖесты
15LOCK_COLORЗаблокированный объект
16OUTPUT_BACKGROUND_COLORВыходной фон
17FREESTYLE1_COLORСвободный стиль 1
18FREESTYLE2_COLORСвободный стиль 2
19FREESTYLE3_COLORСвободный стиль 3
20FREESTYLE4_COLORСвободный стиль 4
21JUNCTION_COLORТочка соединения
22MESH_GRID_MAJOR_COLORГлавная штриховка сетки
23MESH_GRID_MINOR_COLORВторостепенная штриховка сетки

Фактический цвет, связанный с цветовым индексом, определяется на основе используемых инструментов. Объектам обычно назначается соответствующий им цветовой индекс, но допустимо (иногда) назначать цвет, отличный от присущего данному типу объектов.

Атрибуты

Атрибуты заключаются в фигурные скобки {} и могут быть только текстовыми объектами. Атрибуты представляют собой текстовые элементы вида имя_атрибута=значение. Если текст не содержит пары имя_атрибута=значение, он не является атрибутом. Атрибуты прикрепляются к предшествующему объекту. Вот пример:

P 988 500 1300 500 1
{
T 1000 570 5 8 1 1 0
pinseq=3
T 1000 550 5 8 1 1 0
pinnumber=3
}

Данный объект является выводом, имеющим атрибуты pinnumber=3 и pinseq=3 (имя_атрибута=значение). Внутри фигурных скобок {} может находиться несколько текстовых объектов (T … и текстовая строка обязательны). С версии 20021103 в качестве атрибутов можно использовать только текстовые элементы. Прикрепление других типов объектов в качестве атрибутов не поддерживается.

Можно использовать также атрибуты «верхнего уровня». Эти атрибуты не прикрепляются ни к какому объекту, а просто представляют собой текстовые объекты вида имя_атрибута=значение.

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

Внедрённые компоненты

Внедрённые компоненты — это компоненты, определение которых полностью содержится внутри файла схемы. Когда пользователи помещают компоненты на страницы схемы, есть возможность делать компоненты внедрёнными. Это отличается от простого сохранения всей информации символа непосредственно в схеме, внедрённый компонент — это просто несколько иной компонент. Внедрённые компоненты указываются следующим образом:

C 18600 21500 1 0 0 EMBEDDED555-1.sym
[
...
... Embedded primitive objects
...
]

В примере выше, 555-1.sym — это компонент. Тег EMBEDDED и [ ] — отличительные характеристики внедрённого компонента. Если требуется отменить внедрение компонента, символ имя_компонента.sym должен присутствовать в одной из используемых библиотек.

Данные контура

Формат данных контуров gEDA/gaf умышленно определён таким образом, чтобы он соответствовал подмножеству таковых в стандарте W3C SVG.

  • Детали реализации; код libgeda взят из librsvg, библиотеки синтаксического анализа SVG. В результате большая часть синтаксиса контуров SVG читается правильно, однако синтаксис всегда внутренне нормализуется в абсолютные команды move, line, bezier curve и close-path (и сохраняется в таком виде).
  • Координаты всего контура указываются в стандартной координатной системе gschem.
  • Команды для контуров, выводимые и гарантированно обрабатываемые в gEDA, перечислены в нижеследующей таблице.
    (Текст взят из вышеуказанной спецификации SVG).
  • В приведённой ниже таблице используются следующие условные обозначения:
    • (): группировка параметров
    • +: требуется 1 заданный параметр или более
КомандаНазваниеПараметрыОписание
M (абсолютная)moveto(x,y)+Начало нового подконтура в заданной координате (x,y). M (в верхнем регистре) указывает, что далее следуют абсолютные координаты; m (в нижнем регистре) указывает, что далее следуют относительные координаты. Если команда moveto в относительных координатах (m) является первым элементом контура, её координаты рассматриваются как абсолютные. Если после moveto указано несколько пар координат, последующие пары рассматриваются как неявные команды lineto.
L (абсолютная)lineto(x,y)+Вычерчивается линия из текущей точки в точку, заданную координатами (x,y), которая становится новой текущей. L (в верхнем регистре) указывает, что далее следуют абсолютные координаты; l (в нижнем регистре) указывает, что далее следуют относительные координаты. Для вычерчивания ломаной линии может указываться несколько пар координат. В конце команды новой текущей точкой станет последняя заданная пара координат.
C (абсолютная)curveto(x1,y1 x2,y2 x,y)+Вычерчивается кривая Безье с кубической интерполяцией из текущей точки в точку (x,y), используя (x1,y1) как контрольную точку в начале кривой и (x2,y2) как контрольную точку в конце кривой. C (в верхнем регистре) указывает, что далее следуют абсолютные координаты; c (в нижнем регистре) указывает, что далее следуют относительные координаты. Для вычерчивания сложной кривой Безье может указываться несколько наборов координат. В конце команды новой текущей точкой станет последняя пара координат (x,y) сложной кривой.
Z или zclosepath(нет)Закрывает текущий подконтур вычерчиванием прямой линии из текущей точки в исходную точку данного подконтура.
  • В настоящее время вывод вышеуказанных команд в gEDA производится только в виде версий с абсолютными координатами.
  • В настоящее время вывод команд M, L, C в gEDA производится перед каждым набором координат, даже в случаях, если они могли бы быть опущены в соответствии со спецификацией SVG.
  • В выводе gEDA между координатами x,y помещаются запятые. В соответствии со спецификацией SVG они могут замещаться пробельными символами.
  • В настоящее время gEDA не поддерживает более одного подконтура.
  • В настоящее время gEDA выводит по одной строке данных контура на команду + набор координат.

Для примера начертим внешний контур символа AND по американскому стандарту. Данные контура:

M 100,100 L 500,100 C 700,100 800,275 800,400
C 800,525 700,700 500,700 L 100,700 z

И полная схема:

v 20080706 1
H 3 0 0 0 -1 -1 0 2 20 100 -1 -1 6
M 100,100
L 500,100
C 700,100 800,275 800,400
C 800,525 700,700 500,700
L 100,700
z

Здесь показан итоговый контур (с начерченными для иллюстрации их положения контрольными точками):

История изменений документа

30 ноября 2002 г. Создан fileformats.tex из fileformats.html.
1 декабря 2002 г. Продолжена работа над данным документом.
4 октября 2003 г. Добавлена информация о новом флаге версии формата файла.
19 октября 2003 г.Добавлено поле num_lines для текстового объекта.
2 ноября 2008 г. Добавлен объект контура, версия формата файла изменена на 2.
26 мая, 2011 г. В таблицы параметров добавлены столбцы позиции.
geda/file_format_spec.ru.txt · Last modified: 2014/04/25 08:06 by vzh