Автор: Ales V. Hvezda, ahvezda@geda.seul.org
Настоящий документ распространяется под лицензией GFDL
31 декабря 2003 г.
Перевод: Владимир Жбанов, 2009–2011 гг.
Здесь представлена официальная документация формата файлов
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 дюйма). Это произвольное решение. Запомните, что в схемах и символах нет понятия физических длин/размеров (только при разработке принципиальных схем).
Следующий рисунок показывает настройку координатной системы:
Значение по оси X возрастает слева направо, по оси Y — снизу вверх. Координатная система располагается в “пейзажной” ориентации и соответствует листу, повёрнутому длинной стороной вниз.
Имена файлов символов заканчиваются на .sym
. Для имён файлов символов в
gEDA/gaf используется только одно соглашение: если есть несколько экземпляров
символов с одинаковыми именами (как, например, 7400), то к концу основы имени
файла добавляется суффикс -1, -2, -3, … -N . Пример: 7400-1.sym
, 7400-2.sym
,
7400-3.sym
…
Имена файлов схем заканчиваются на .sch
. Раньше существовало соглашение об
именах файлов схем (о добавлении -1 .. -N к основе имени файла), но
сейчас оно устарело. Для схем их создатель может выбирать любые осмысленные
имена.
Файл схемы/символа для gEDA/gaf состоит из следующих частей:
Идентификатор типа объекта обозначается одной буквой, он должен находиться в первом столбце. Идентификатор типа объекта является регистрозависимым.
Файлы схем и символов имеют общий формат. Символ — это не что иное, как совокупность примитивных объектов (линий, прямоугольников, окружностей, дуг, текста и выводов). Схема представляет собой набор символов (компонентов), соединений и шин.
Следующие разделы описывают особенности каждого из распознаваемых типов объектов. Каждый раздел содержит название объекта, описание того, в каком типе файла (sch/sym) объект может присутствовать, формат данных, описание каждого отдельного поля, подробности и предостережения для данных полей и, наконец, пример с пояснением.
Информация об индексе цвета (который используется практически для всех объектов) находится в разделе Цвета.
Допускается: в файлах схем и символов
type version fileformat_version
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | v |
1 | version | int | Версия gEDA/gaf, в которой был сохранён данный файл |
2 | fileformat_version | int | Номер версии формата файла gEDA/gaf |
fileformat_version
используется для определения версии формата файла. Весь код формата файла должен отталкиваться от этого поля.fileformat_version
возрастает при изменении формата файла.fileformat_version
было значение 1. Текущее значение — 2.fileformat_version
— это просто целое, без младшего номера.Пример:
v 20040111 1
Допускается: в файлах схем и символов
type x1 y1 x2 y2 color width capstyle dashstyle dashlength dashspace
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | L |
1 | x1 | int/милы | Координата X первой точки |
2 | y1 | int/милы | Координата Y первой точки |
3 | x2 | int/милы | Координата X второй точки |
4 | y2 | int/милы | Координата Y второй точки |
5 | color | int | Цветовой индекс |
6 | width | int/милы | Толщина линии |
7 | capstyle | int | Стиль концов линии |
8 | dashstyle | int | Тип линии |
9 | dashlength | int/милы | Длина штриха |
10 | dashspace | int/милы | Интервал между штрихами |
capstyle
перечислимого типа:dashstyle
перечислимого типа: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]
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | G |
1 | x | int/милы | Координата X левого нижнего угла |
2 | y | int/милы | Координата Y левого нижнего угла |
3 | width | int/милы | Ширина изображения |
4 | height | int/милы | Высота изображения |
5 | angle | int/градусы | Угол поворота изображения |
6 | mirrored | char | Зеркально отражённое или нормальное изображение |
7 | embedded | char | Внедрённое или ссылка на файл изображения |
8 | filename | string | Путь доступа и имя файла для невнедрённого изображения |
9 | encoded picture data | string | Изображение, преобразованное в последовательную форму, перекодированное в base64 |
10 | encoded picture end | string | Строка, содержащая только символ точки |
angle
может принимать только одно из следующих значений: 0, 90, 180, 270.mirrored
перечислимого типа:embedded
перечислимого типа: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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | B |
1 | x | int/милы | Координата X левого нижнего угла |
2 | y | int/милы | Координата Y левого нижнего угла |
3 | width | int/милы | Ширина прямоугольника (в направлении x) |
4 | height | int/милы | Высота прямоугольника (в направлении y) |
5 | color | int | Цветовой индекс |
6 | width | int/милы | Толщина линий |
7 | capstyle | int/милы | Стиль концов линий |
8 | dashstyle | int | Тип линий |
9 | dashlength | int/милы | Длина штриха |
10 | dashspace | int/милы | Интервал между штрихами |
11 | filltype | int | Тип заполнения |
12 | fillwidth | int/милы | Толщина линий заполнения |
13 | angle1 | int/градусы | Первый угол заполнения |
14 | pitch1 | int/милы | Первый шаг/интервал заполнения |
15 | angle2 | int/градусы | Второй угол заполнения |
16 | pitch2 | int/милы | Второй шаг/интервал заполнения |
capstyle
перечислимого типа:dashstyle
перечислимого типа:dashlength
не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.dashspace
не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.filltype
перечислимого типа:filltype
равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.Пример:
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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | V |
1 | x | int/милы | Координата X центра |
2 | y | int/милы | Координата Y центра |
3 | radius | int/милы | Радиус окружности |
4 | color | int | Цветовой индекс |
5 | width | int/милы | Толщина линии окружности |
6 | capstyle | int/милы | 0 (не используется) |
7 | dashstyle | int | Тип линии |
8 | dashlength | int/милы | Длина штриха |
9 | dashspace | int/милы | Интервал между штрихами |
10 | filltype | int | Тип заполнения |
11 | fillwidth | int/милы | Толщина линий заполнения |
12 | angle1 | int/градусы | Первый угол заполнения |
13 | pitch1 | int/милы | Первый шаг/интервал заполнения |
14 | angle2 | int/градусы | Второй угол заполнения |
15 | pitch2 | int/милы | Второй шаг/интервал заполнения |
dashstyle
перечислимого типа:dashlength
не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.dashspace
не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.filltype
перечислимого типа:filltype
равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.Пример:
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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | A |
1 | x | int/милы | Координата X центра |
2 | y | int/милы | Координата Y центра |
3 | radius | int/милы | Радиус дуги |
4 | startangle | int/градусы | Начальный угол дуги |
5 | sweepangle | int/градусы | Угол разворота дуги |
6 | color | int | Цветовой индекс |
7 | width | int/милы | Толщина линии окружности |
8 | capstyle | int | Стиль концов линии |
9 | dashstyle | int | Тип линии |
10 | dashlength | int/милы | Длина штриха |
11 | dashspace | int/милы | Интервал между штрихами |
startangle
может быть отрицательным, но это не рекомендуется.sweepangle
может быть отрицательным, но это не рекомендуется.capstyle
перечислимого типа:dashstyle
перечислимого типа: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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | T |
1 | x | int/милы | Координата X первой точки |
2 | y | int/милы | Координата Y первой точки |
3 | color | int | Цветовой индекс |
4 | size | int/пункты | Размер текста |
5 | visibility | int | Видимость текста |
6 | show_name_value | int | Управление видимостью атрибута |
7 | angle | int/градусы | Угол поворота текста |
8 | alignment | int | Выравнивание/точка привязки текста |
9 | num_lines | int | Количество строк текста (начальное значение 1) |
10 | string line 1 … N | string | Собственно отдельные строки текста |
num_lines
строк текста, следующих за строкой T … .visibility
перечислимого типа:show_name_value
перечислимого типа:show_name_value
действителен только в случае, если строка является атрибутом (чтобы строка считалась атрибутом, она должна иметь вид: имя_атрибута=значение
).angle
может принимать только одно из следующих значений: 0, 90, 180, 270. При значении 270 всегда будет производиться вертикальный текст.alignment
управляет относительным положением точки привязки.alignment
может принимать значения от 0 до 8. alignment
.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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | N |
1 | x1 | int/милы | Координата X первой точки |
2 | y1 | int/милы | Координата Y первой точки |
3 | x2 | int/милы | Координата X второй точки |
4 | y2 | int/милы | Координата Y второй точки |
5 | color | int | Цветовой индекс |
Пример:
N 12700 29400 32900 29400 4
Сегмент соединения от (12700, 29400) до (32900, 29400) с цветовым индексом 4.
Допускается: ТОЛЬКО в файлах схем
type x1 y1 x2 y2 color ripperdir
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | U |
1 | x1 | int/милы | Координата X первой точки |
2 | y1 | int/милы | Координата Y первой точки |
3 | x2 | int/милы | Координата X второй точки |
4 | y2 | int/милы | Координата Y второй точки |
5 | color | int | Цветовой индекс |
6 | ripperdir | int | Направление ответвлений от шины |
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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | P |
1 | x1 | int/милы | Координата X первой точки |
2 | y1 | int/милы | Координата Y первой точки |
3 | x2 | int/милы | Координата X второй точки |
4 | y2 | int/милы | Координата Y второй точки |
5 | color | int | Цветовой индекс |
6 | pintype | int | Тип вывода |
7 | whichend | int | Указывает активный конец |
pintype
перечислимого типа:whichend
определяет какой конец вывода является точкой соединения. Другие выводы или соединения могут подключаться только к данной точке.whichend
определяет для соединения первую точку вывода, значение 1 — вторую.Пример:
P 0 200 200 200 1 0 0
Вывод от (0, 200) до (200, 200) с цветовым индексом 1, обычный вывод, для соединения используется первая точка.
Допускается: ТОЛЬКО в файлах схем
type x y selectable angle mirror basename
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | C |
1 | x | int/милы | Координата X точки привязки |
2 | y | int/милы | Координата Y точки привязки |
3 | selectable | int | Флаг выделения |
4 | angle | int/градусы | Угол поворота компонента |
5 | mirror | int | Отражение относительно оси Y |
6 | basename | string | Имя файла компонента |
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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | H |
1 | color | int | Цветовой индекс |
2 | width | int/милы | Толщина линий |
3 | capstyle | int | Стиль концов линий |
4 | dashstyle | int | Тип линий |
5 | dashlength | int/милы | Длина штриха |
6 | dashspace | int/милы | Интервал между штрихами |
7 | filltype | int | Тип заполнения |
8 | fillwidth | int/милы | Толщина линий заполнения |
9 | angle1 | int/градусы | Первый угол заполнения |
10 | pitch1 | int/милы | Первый шаг/интервал заполнения |
11 | angle2 | int/градусы | Второй угол заполнения |
12 | pitch2 | int/милы | Второй шаг/интервал заполнения |
13 | num_lines | int | Количество строк данных контура (начальное значение 1) |
14 | path data line 1 … N | path data | Отдельные строки данных контура |
capstyle
перечислимого типа:dashstyle
перечислимого типа:dashlength
не используется для типов SOLID и DOTTED. В случае использования данных типов он должен принимать значение -1.dashspace
не используется для типа SOLID. В случае использования данного типа он должен принимать значение -1.filltype
перечислимого типа:filltype
равно 0 (FILLING HOLLOW), то все остальные параметры заполнения должны иметь значение -1.move
, line
, bezier curve
и close-path
(и сохраняется в таком виде).Пример:
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
Поз. | Поле | Тип/единица | Описание |
---|---|---|---|
# | type | char | F |
1 | character | char | Определяемый символ |
2 | width | int/милы | Ширина символа (в милах) |
3 | flag | int | Специальный флаг пробела |
flag
должно быть 1, иначе 0.Пример:
F 11 1
Выше приведено определение символа пробела в шрифте.
В формате файлов символов и схем gEDA/gaf цвета определяются посредством целочисленного индекса. Соответствие между числом и цветом основывается на типе объекта. Для каждого типа объекта обычно используется один или более цветов. Здесь приведена таблица соответствия цветовых индексов типам объектов:
Индекс | Тип объекта | Примечание |
---|---|---|
0 | BACKGROUND_COLOR | Фон |
1 | PIN_COLOR | Вывод |
2 | NET_ENDPOINT_COLOR | Конечная точка соединения |
3 | GRAPHIC_COLOR | Графический объект |
4 | NET_COLOR | Соединение |
5 | ATTRIBUTE_COLOR | Атрибут |
6 | LOGIC_BUBBLE_COLOR | Логическая инверсия |
7 | GRID_COLOR | Сетка |
8 | DETACHED_ATTRIBUTE_COLOR | Неприкреплённый атрибут |
9 | TEXT_COLOR | Текст |
10 | BUS_COLOR | Шина |
11 | SELECT_COLOR | Выделение |
12 | BOUNDINGBOX_COLOR | Контур объекта |
13 | ZOOM_BOX_COLOR | Контур области масштабирования |
14 | STROKE_COLOR | Жесты |
15 | LOCK_COLOR | Заблокированный объект |
16 | OUTPUT_BACKGROUND_COLOR | Выходной фон |
17 | FREESTYLE1_COLOR | Свободный стиль 1 |
18 | FREESTYLE2_COLOR | Свободный стиль 2 |
19 | FREESTYLE3_COLOR | Свободный стиль 3 |
20 | FREESTYLE4_COLOR | Свободный стиль 4 |
21 | JUNCTION_COLOR | Точка соединения |
22 | MESH_GRID_MAJOR_COLOR | Главная штриховка сетки |
23 | MESH_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.
move
, line
, bezier curve
и close-path
(и сохраняется в таком виде).Команда | Название | Параметры | Описание |
---|---|---|---|
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 или z | closepath | (нет) | Закрывает текущий подконтур вычерчиванием прямой линии из текущей точки в исходную точку данного подконтура. |
M
, L
, C
в gEDA производится перед каждым набором координат, даже в случаях, если они могли бы быть опущены в соответствии со спецификацией SVG.x,y
помещаются запятые. В соответствии со спецификацией SVG они могут замещаться пробельными символами.Для примера начертим внешний контур символа 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 г. | В таблицы параметров добавлены столбцы позиции |