OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [geda/] [geda_file_format_spec.html] - Blame information for rev 135

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 135 jt_eaton
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en"><head>
3
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
  <title>
5
    geda:file_format_spec    [gEDA Project Wiki]
6
  </title>
7
 
8
  <meta name="generator" content="DokuWiki">
9
<meta name="robots" content="index,follow">
10
<meta name="date" content="2014-04-25T07:46:53-0400">
11
<meta name="keywords" content="geda,file_format_spec">
12
<link rel="search" type="application/opensearchdescription+xml" href="http://wiki.geda-project.org/lib/exe/opensearch.php" title="gEDA Project Wiki">
13
<link rel="start" href="http://wiki.geda-project.org/">
14
<link rel="contents" href="http://wiki.geda-project.org/geda:file_format_spec?do=index" title="Sitemap">
15
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="http://wiki.geda-project.org/feed.php">
16
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="http://wiki.geda-project.org/feed.php?mode=list&amp;ns=geda">
17
<link rel="alternate" type="text/html" title="Plain HTML" href="http://wiki.geda-project.org/_export/xhtml/geda:file_format_spec">
18
<link rel="alternate" type="text/plain" title="Wiki Markup" href="http://wiki.geda-project.org/_export/raw/geda:file_format_spec">
19
<link rel="canonical" href="http://wiki.geda-project.org/geda:file_format_spec">
20
<link rel="stylesheet" media="screen" type="text/css" href="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/css_003.css">
21
<link rel="stylesheet" media="all" type="text/css" href="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/css.css">
22
<link rel="stylesheet" media="print" type="text/css" href="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/css_002.css">
23
<script type="text/javascript"><!--//--><![CDATA[//><!--
24
var NS='geda';var JSINFO = {"id":"geda:file_format_spec","namespace":"geda"};
25
//--><!]]></script>
26
<script type="text/javascript" charset="utf-8" src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/js.php"></script>
27
  <link rel="shortcut icon" href="http://wiki.geda-project.org/lib/tpl/default/images/favicon.ico">
28
<link rel="apple-touch-icon" href="http://wiki.geda-project.org/lib/tpl/default/images/apple-touch-icon.png">
29
 
30
  </head>
31
 
32
<body>
33
<div class="dokuwiki">
34
 
35
  <div class="stylehead">
36
 
37
    <div class="header">
38
      <div class="pagename">
39
        [[<a href="http://wiki.geda-project.org/geda:file_format_spec?do=backlink" title="Backlinks">geda:file_format_spec</a>]]
40
      </div>
41
      <div class="logo">
42
        <a href="http://wiki.geda-project.org/" name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[H]">gEDA Project Wiki</a>      </div>
43
 
44
      <div class="clearer"></div>
45
    </div>
46
 
47
 
48
    <div class="bar" id="bar__top">
49
      <div class="bar-left" id="bar__topleft">
50
        <form class="button btn_source" method="post" action="/geda:file_format_spec"><div class="no"><input name="do" value="edit" type="hidden"><input name="rev" value="" type="hidden"><input value="Show pagesource" class="button" accesskey="v" title="Show pagesource [V]" type="submit"></div></form>        <form class="button btn_revs" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="revisions" type="hidden"><input value="Old revisions" class="button" accesskey="o" title="Old revisions [O]" type="submit"></div></form>      </div>
51
 
52
      <div class="bar-right" id="bar__topright">
53
        <form class="button btn_recent" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="recent" type="hidden"><input value="Recent changes" class="button" accesskey="r" title="Recent changes [R]" type="submit"></div></form>        <form action="/" accept-charset="utf-8" class="search" id="dw__search" method="get"><div class="no"><input name="do" value="search" type="hidden"><input id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" type="text"><input value="Search" class="button" title="Search" type="submit"><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>&nbsp;
54
      </div>
55
 
56
      <div class="clearer"></div>
57
    </div>
58
 
59
        <div class="breadcrumbs">
60
      <span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><a href="http://wiki.geda-project.org/geda:file_format_spec" class="breadcrumbs" title="geda:file_format_spec">file_format_spec</a></span>          </div>
61
 
62
 
63
  </div>
64
 
65
 
66
  <div class="page">
67
    <!-- wikipage start -->
68
    <!-- TOC START -->
69
<div class="toc">
70
<div style="cursor: pointer;" class="tocheader toctoggle" id="toc__header"><span class="toc_close" id="toc__toggle"><span>−</span></span>Table of Contents</div>
71
<div id="toc__inside">
72
 
73
<ul class="toc">
74
<li class="level1"><div class="li"><span class="li"><a href="#geda_gaf_file_format_document" class="toc">gEDA/gaf File Format Document</a></span></div>
75
<ul class="toc">
76
<li class="level2"><div class="li"><span class="li"><a href="#overview" class="toc">Overview</a></span></div></li>
77
<li class="level2"><div class="li"><span class="li"><a href="#coordinate_space" class="toc">Coordinate Space</a></span></div></li>
78
<li class="level2"><div class="li"><span class="li"><a href="#filenames" class="toc">Filenames</a></span></div></li>
79
<li class="level2"><div class="li"><span class="li"><a href="#object_types" class="toc">Object types</a></span></div>
80
<ul class="toc">
81
<li class="level3"><div class="li"><span class="li"><a href="#version" class="toc">version</a></span></div></li>
82
<li class="level3"><div class="li"><span class="li"><a href="#line" class="toc">line</a></span></div></li>
83
<li class="level3"><div class="li"><span class="li"><a href="#picture" class="toc">picture</a></span></div></li>
84
<li class="level3"><div class="li"><span class="li"><a href="#box" class="toc">box</a></span></div></li>
85
<li class="level3"><div class="li"><span class="li"><a href="#circle" class="toc">circle</a></span></div></li>
86
<li class="level3"><div class="li"><span class="li"><a href="#arc" class="toc">arc</a></span></div></li>
87
<li class="level3"><div class="li"><span class="li"><a href="#text_and_attributes" class="toc">text and attributes</a></span></div></li>
88
<li class="level3"><div class="li"><span class="li"><a href="#net" class="toc">net</a></span></div></li>
89
<li class="level3"><div class="li"><span class="li"><a href="#bus" class="toc">bus</a></span></div></li>
90
<li class="level3"><div class="li"><span class="li"><a href="#pin" class="toc">pin</a></span></div></li>
91
<li class="level3"><div class="li"><span class="li"><a href="#component" class="toc">component</a></span></div></li>
92
<li class="level3"><div class="li"><span class="li"><a href="#path" class="toc">path</a></span></div></li>
93
<li class="level3"><div class="li"><span class="li"><a href="#font" class="toc">font</a></span></div></li>
94
</ul>
95
</li>
96
<li class="level2"><div class="li"><span class="li"><a href="#colors" class="toc">Colors</a></span></div></li>
97
<li class="level2"><div class="li"><span class="li"><a href="#attributes" class="toc">Attributes</a></span></div></li>
98
<li class="level2"><div class="li"><span class="li"><a href="#embedded_components" class="toc">Embedded Components</a></span></div></li>
99
<li class="level2"><div class="li"><span class="li"><a href="#path_data" class="toc">Path data</a></span></div></li>
100
<li class="level2"><div class="li"><span class="li"><a href="#document_revision_history" class="toc">Document Revision History</a></span></div></li>
101
</ul></li>
102
</ul>
103
</div>
104
</div>
105
<!-- TOC END -->
106
 
107
<p>
108
<em>Translations of this page are also available in the following languages:</em> <a href="http://wiki.geda-project.org/geda:file_format_spec.ru" class="wikilink1" title="geda:file_format_spec.ru">Русский</a>.
109
</p>
110
 
111
<h1 class="sectionedit1"><a name="geda_gaf_file_format_document" id="geda_gaf_file_format_document">gEDA/gaf File Format Document</a></h1>
112
<div class="level1">
113
 
114
<p>
115
by: Ales V. Hvezda, ahvezda@geda.seul.org
116
</p>
117
 
118
<p>
119
This document is released under <a href="http://www.gnu.org/copyleft/fdl.html" class="urlextern" title="http://www.gnu.org/copyleft/fdl.html" rel="nofollow">GFDL</a>
120
</p>
121
 
122
<p>
123
December 31st, 2003
124
</p>
125
 
126
</div>
127
 
128
<h2 class="sectionedit2"><a name="overview" id="overview">Overview</a></h2>
129
<div class="level2">
130
 
131
<p>
132
This file is the official documentation for the file formats in gEDA/gaf
133
 (gschem And Friends). The primary file format used in gEDA/gaf is the
134
schematic/symbol format. Files which end with .sch or .sym are
135
schematics or symbol files. Until there is another file type in
136
gEDA/gaf, then this document will only cover the symbol/schematic file
137
format.<br>
138
 
139
This file format document is current as of gEDA/gaf version 20040111. This document covers file format version 1 and 2.<br>
140
 
141
Note, this file format and any other file formats associated with gEDA are placed under the General Public License (<acronym title="GNU General Public License">GPL</acronym>) version 2.0. The gEDA/gaf symbol and schematic file format is Copyright (C) 1998-2004 Ales Hvezda.
142
</p>
143
 
144
</div>
145
 
146
<h2 class="sectionedit3"><a name="coordinate_space" id="coordinate_space">Coordinate Space</a></h2>
147
<div class="level2">
148
 
149
<p>
150
All coordinates are in mils (1/1000 of an inch). This is an arbitrary
151
decision. Remember in there is no concept of physical lengths/dimensions
152
 in schematics and symbols (for schematic capture only).
153
</p>
154
<ul>
155
<li class="level1"><div class="li"> Origin is in lower left hand corner.</div>
156
</li>
157
<li class="level1"><div class="li"> The size of the coordinate space is unlimited, but it is recommended that all objects stay within (120.0, 90.0) (x, y inches).</div>
158
</li>
159
<li class="level1"><div class="li"> It is generally advisable to have positive x and y coordinates, however, negative coordinates work too, but not recommended.</div>
160
</li>
161
</ul>
162
 
163
<p>
164
The following figure shows how the coordinate space is setup:
165
</p>
166
<div class="table sectionedit4"><table class="inline">
167
        <tbody><tr class="row0">
168
                <td class="col0"><a href="http://wiki.geda-project.org/_detail/geda:coordinatespace.jpg?id=geda%3Afile_format_spec" class="media" title="geda:coordinatespace.jpg"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/gedacoordinatespace.jpg" class="mediaright" title=":geda:coordinatespace.jpg " alt=":geda:coordinatespace.jpg " align="right"></a></td>
169
        </tr>
170
</tbody></table></div>
171
 
172
<p>
173
X axis increases going to the right. Y axis increase going up.
174
Coordinate system is landscape and corresponds to a sheet of paper
175
turned on its side.
176
</p>
177
 
178
</div>
179
 
180
<h2 class="sectionedit5"><a name="filenames" id="filenames">Filenames</a></h2>
181
<div class="level2">
182
 
183
<p>
184
Symbols end in .sym. The only symbol filename convention that is used in
185
 gEDA/gaf is that if there are multiple instances of a symbol with the
186
same name (like a 7400), then a -1, -2, -3, … -N suffix is added to the
187
end of the filename. Example: 7400-1.sym, 7400-2.sym, 7400-3.sym…<br>
188
 
189
Schematics end in .sch. There used to be a schematic filename convention
190
 (adding a -1 .. -N to the end of the basename), but this convention is
191
now obsolete. Schematic filenames can be anything that makes sense to
192
the creator.
193
</p>
194
 
195
</div>
196
 
197
<h2 class="sectionedit6"><a name="object_types" id="object_types">Object types</a></h2>
198
<div class="level2">
199
 
200
<p>
201
A schematic/symbol file for gEDA/gaf consists of:
202
</p>
203
<ul>
204
<li class="level1"><div class="li"> A version (v) as the first item in the file. This is required.</div>
205
</li>
206
<li class="level1"><div class="li"> Any number of objects and the correct data. Objects are specified by an “object type”</div>
207
</li>
208
<li class="level1"><div class="li"> Most objects are a single line, however text objects are two lines long.</div>
209
</li>
210
<li class="level1"><div class="li"> No blank lines at the end of the file (these are ignored by the tools)</div>
211
</li>
212
<li class="level1"><div class="li"> For all enumerated types in the gEDA/gaf file formats, the field takes on the numeric value.</div>
213
</li>
214
</ul>
215
 
216
<p>
217
The “object type” id is a single letter and this id must start in the first column. The object type id is case sensitive.<br>
218
 
219
The schematic and symbol files share the same file layout. A symbol is
220
nothing more than a collection of primitive objects (lines, boxes,
221
circles, arcs, text, and pins). A schematic is a collection of symbols
222
(components), nets, and buses.<br>
223
 
224
The following sections describe the specifics of each recognized object
225
type. Each section has the name of the object, which file type (sch/sym)
226
 the object can appear in, the format of the data, a description of each
227
 individual field, details and caveats of the fields, and finally an
228
example with description.<br>
229
 
230
For information on the color index (which is used in practically all objects), see the Color section.
231
</p>
232
 
233
</div>
234
 
235
<h3 class="sectionedit7"><a name="version" id="version">version</a></h3>
236
<div class="level3">
237
 
238
<p>
239
Valid in: Schematic and Symbol files<br>
240
 
241
<strong><code>type version fileformat_version</code></strong>
242
</p>
243
<div class="table sectionedit8"><table class="inline">
244
        <tbody><tr class="row0">
245
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
246
        </tr>
247
        <tr class="row1">
248
                <td class="col0 rightalign">  # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">v</td>
249
        </tr>
250
        <tr class="row2">
251
                <td class="col0 rightalign">  1 </td><td class="col1">version</td><td class="col2">int</td><td class="col3">version of gEDA/gaf that wrote this file</td>
252
        </tr>
253
        <tr class="row3">
254
                <td class="col0 rightalign">  2 </td><td class="col1">fileformat_version</td><td class="col2">int</td><td class="col3">gEDA/gaf file format version number</td>
255
        </tr>
256
</tbody></table></div>
257
<ul>
258
<li class="level1"><div class="li"> The type is a lower case “v” (as in Victor).</div>
259
</li>
260
<li class="level1"><div class="li"> This object must be in every file used or created by the gEDA/gaf tools.</div>
261
</li>
262
<li class="level1"><div class="li"> The format of the first version field is YYYYMMDD.</div>
263
</li>
264
<li class="level1"><div class="li"> The version number is not an arbitrary timestamp. Do not make up a version number and expect the tools to behave properly.</div>
265
</li>
266
<li class="level1"><div class="li"> The “version of gEDA/gaf that wrote
267
this file” was used in all versions of gEDA/gaf up to 20030921 as the
268
file formats version. This field should no longer be used to determine
269
the file format. It is used for information purposes only now.</div>
270
</li>
271
<li class="level1"><div class="li"> Starting at and after gEDA/gaf
272
version 20031004, the fileformat version field is used to determine the
273
file format version. All file format code should key off of this field.</div>
274
</li>
275
<li class="level1"><div class="li"> fileformat version increases when the file format changes.</div>
276
</li>
277
<li class="level1"><div class="li"> The starting point for fileformat version was 1. The current fileformat is 2.</div>
278
</li>
279
<li class="level1"><div class="li"> fileformat version is just an integer with no minor number.</div>
280
</li>
281
<li class="level1"><div class="li"> Development versions include:
282
19990601, 19990610, 19990705, 19990829, 19990919, 19991011, 20000220,
283
20000704, 20001006, 20001217, 20010304, 20010708, 20010722, 20020209,
284
20020414, 20020527, 20020825, 20021103, 20030223, 20030525, 20030901,
285
20040111, 20040710, 20041228, 20050313, 20050820, 20060123, 20060824,
286
20060906, 20061020, 20070216, 20070705, 20070708, 20070818, 20071229,
287
20080110, 20080127, 20080706, 20081220, 20081221, 20090328, 20090829,
288
20090830, 20110116, 20110619, 20111231</div>
289
</li>
290
<li class="level1"><div class="li"> Stable versions include: 20070526,
291
20070626, 20070902, 20071231, 20080127, 20080929, 20081220, 20081231,
292
20091004, 20100214, 20110115</div>
293
</li>
294
<li class="level1"><div class="li"> <acronym title="Concurrent Versions System">CVS</acronym> or test versions (should not be used): 20030921, 20031004, 20031019, 20031231, 20050814</div>
295
</li>
296
<li class="level1"><div class="li"> Keep in mind that each of the above
297
listed versions might have had file format variations. This document
298
only covers the last version's file format.</div>
299
</li>
300
</ul>
301
 
302
<p>
303
Example:
304
</p>
305
<pre class="code">v 20040111 1</pre>
306
 
307
</div>
308
 
309
<h3 class="sectionedit9"><a name="line" id="line">line</a></h3>
310
<div class="level3">
311
 
312
<p>
313
Valid in: Schematic and Symbol files<br>
314
 
315
<strong><code>type x1 y1 x2 y2 color width capstyle dashstyle dashlength dashspace</code></strong>
316
</p>
317
<div class="table sectionedit10"><table class="inline">
318
        <tbody><tr class="row0">
319
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
320
        </tr>
321
        <tr class="row1">
322
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">L</td>
323
        </tr>
324
        <tr class="row2">
325
                <td class="col0 rightalign">   1 </td><td class="col1">x1</td><td class="col2">int/mils</td><td class="col3">First X coordinate</td>
326
        </tr>
327
        <tr class="row3">
328
                <td class="col0 rightalign">   2 </td><td class="col1">y1</td><td class="col2">int/mils</td><td class="col3">First Y coordinate</td>
329
        </tr>
330
        <tr class="row4">
331
                <td class="col0 rightalign">   3 </td><td class="col1">x2</td><td class="col2">int/mils</td><td class="col3">Second X coordinate</td>
332
        </tr>
333
        <tr class="row5">
334
                <td class="col0 rightalign">   4 </td><td class="col1">y2</td><td class="col2">int/mils</td><td class="col3">Second Y coordinate</td>
335
        </tr>
336
        <tr class="row6">
337
                <td class="col0 rightalign">   5 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
338
        </tr>
339
        <tr class="row7">
340
                <td class="col0 rightalign">   6 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of line</td>
341
        </tr>
342
        <tr class="row8">
343
                <td class="col0 rightalign">   7 </td><td class="col1">capstyle</td><td class="col2">int</td><td class="col3">Line cap style</td>
344
        </tr>
345
        <tr class="row9">
346
                <td class="col0 rightalign">   8 </td><td class="col1">dashstyle</td><td class="col2">int</td><td class="col3">Type of dash style</td>
347
        </tr>
348
        <tr class="row10">
349
                <td class="col0 rightalign">   9 </td><td class="col1">dashlength</td><td class="col2">int/mils</td><td class="col3">Length of dash</td>
350
        </tr>
351
        <tr class="row11">
352
                <td class="col0 rightalign">  10 </td><td class="col1">dashspace</td><td class="col2">int/mils</td><td class="col3">Space inbetween dashes</td>
353
        </tr>
354
</tbody></table></div>
355
<ul>
356
<li class="level1"><div class="li"> The capstyle is an enumerated type:</div>
357
<ul>
358
<li class="level2"><div class="li"> END NONE = 0</div>
359
</li>
360
<li class="level2"><div class="li"> END SQUARE = 1</div>
361
</li>
362
<li class="level2"><div class="li"> END ROUND = 2</div>
363
</li>
364
</ul>
365
</li>
366
<li class="level1"><div class="li"> The dashstyle is an enumerated type:</div>
367
<ul>
368
<li class="level2"><div class="li"> TYPE SOLID = 0</div>
369
</li>
370
<li class="level2"><div class="li"> TYPE DOTTED = 1</div>
371
</li>
372
<li class="level2"><div class="li"> TYPE DASHED = 2</div>
373
</li>
374
<li class="level2"><div class="li"> TYPE CENTER = 3</div>
375
</li>
376
<li class="level2"><div class="li"> TYPE PHANTOM = 4</div>
377
</li>
378
</ul>
379
</li>
380
<li class="level1"><div class="li"> The dashlength parameter is not used
381
 for TYPE SOLID and TYPE DOTTED. This parameter should take on a value
382
of -1 in these cases.</div>
383
</li>
384
<li class="level1"><div class="li"> The dashspace parameter is not used for TYPE SOLID. This parameter should take on a value of -1 in these case.</div>
385
</li>
386
</ul>
387
 
388
<p>
389
Example:
390
</p>
391
<pre class="code">L 23000 69000 28000 69000 3 40 0 1 -1 75</pre>
392
 
393
<p>
394
A line segment from (23000, 69000) to (28000, 69000) with color index 3,
395
 40 mils thick, no cap, dotted line style, and with a spacing of 75 mils
396
 in between each dot.
397
</p>
398
 
399
</div>
400
 
401
<h3 class="sectionedit11"><a name="picture" id="picture">picture</a></h3>
402
<div class="level3">
403
 
404
<p>
405
Valid in: Schematic and Symbol files<br>
406
 
407
<strong><code>type x1 y1 width height angle mirrored embedded<br>
408
 
409
filename<br>
410
 
411
[encoded picture data<br>
412
 
413
encoded picture end]</code></strong>
414
</p>
415
<div class="table sectionedit12"><table class="inline">
416
        <tbody><tr class="row0">
417
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
418
        </tr>
419
        <tr class="row1">
420
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">G</td>
421
        </tr>
422
        <tr class="row2">
423
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">Lower left X coordinate</td>
424
        </tr>
425
        <tr class="row3">
426
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">Lower left Y coordinate</td>
427
        </tr>
428
        <tr class="row4">
429
                <td class="col0 rightalign">   3 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of the picture</td>
430
        </tr>
431
        <tr class="row5">
432
                <td class="col0 rightalign">   4 </td><td class="col1">height</td><td class="col2">int/mils</td><td class="col3">Height of the picture</td>
433
        </tr>
434
        <tr class="row6">
435
                <td class="col0 rightalign">   5 </td><td class="col1">angle</td><td class="col2">int/degrees</td><td class="col3">Angle of the picture</td>
436
        </tr>
437
        <tr class="row7">
438
                <td class="col0 rightalign">   6 </td><td class="col1">mirrored</td><td class="col2">char</td><td class="col3">Mirrored or normal picture</td>
439
        </tr>
440
        <tr class="row8">
441
                <td class="col0 rightalign">   7 </td><td class="col1">embedded</td><td class="col2">char</td><td class="col3">Embedded or link to the picture file</td>
442
        </tr>
443
        <tr class="row9">
444
                <td class="col0 rightalign">   8 </td><td class="col1">filename</td><td class="col2">string</td><td class="col3">path and filename of a not embedded picture</td>
445
        </tr>
446
        <tr class="row10">
447
                <td class="col0 rightalign">   9 </td><td class="col1">encoded picture data</td><td class="col2">string</td><td class="col3">Serialized picture encoded using base64</td>
448
        </tr>
449
        <tr class="row11">
450
                <td class="col0 rightalign">  10 </td><td class="col1">encoded picture end</td><td class="col2">string</td><td class="col3">A line containing only a dot character</td>
451
        </tr>
452
</tbody></table></div>
453
<ul>
454
<li class="level1"><div class="li"> This object is a picture object. The
455
 first line contains all the picture parameters, and the second line is
456
the path and filename of the picture. The filename is not used if the
457
picture is embedded.</div>
458
</li>
459
<li class="level1"><div class="li"> The angle of the picture can only take on one of the following values: 0, 90, 180, 270.</div>
460
</li>
461
<li class="level1"><div class="li"> The mirrored field is an enumerated type:</div>
462
<ul>
463
<li class="level2"><div class="li"> NOT MIRRORED = 0</div>
464
</li>
465
<li class="level2"><div class="li"> MIRRORED = 1</div>
466
</li>
467
</ul>
468
</li>
469
<li class="level1"><div class="li"> The embedded field is an enumerated type:</div>
470
<ul>
471
<li class="level2"><div class="li"> NOT EMBEDDED = 0</div>
472
</li>
473
<li class="level2"><div class="li"> EMBEDDED = 1 (not yet supported)</div>
474
</li>
475
</ul>
476
</li>
477
<li class="level1"><div class="li"> The encoded picture and encoded picture end fields are only in the file if the picture is embedded in the schematic:</div>
478
<ul>
479
<li class="level2"><div class="li"> encoded picture data: This is a
480
multiple line field. The picture is serialized and then encoded using
481
base64. This way the encoded data uses only printable characters. This
482
field is the result of these two operations.</div>
483
</li>
484
<li class="level2"><div class="li"> encoded picture end : A line containing only a single dot '.' character marks the end of the encoded picture data.</div>
485
</li>
486
</ul>
487
</li>
488
</ul>
489
 
490
<p>
491
Example 1:
492
</p>
493
<pre class="code">G 16900 35800 1400 2175 0 0 0
494
../bitmaps/logo.jpg</pre>
495
 
496
<p>
497
A picture object with the lower left corner at (16900, 35800). The width
498
 of the image is 1400 mils, and its height is 2175 mils. The picture
499
rotation is 0 degrees and the picture is not mirrored, neither embedded.<br>
500
 
501
The picture path and filename is showed in the second line.
502
</p>
503
 
504
<p>
505
Example 2:
506
</p>
507
<pre class="code">G 16900 35800 1400 2175 0 0 1
508
../bitmaps/logo.jpg
509
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
510
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
511
.</pre>
512
 
513
<p>
514
A picture object with the lower left corner at (16900, 35800). The width of the image is 1400 mils, and its height is 2175 mils.<br>
515
 
516
The picture rotation is 0 degrees, it is not mirrored, and it is embedded.<br>
517
 
518
The picture path and filename is showed in the second line. Since this
519
is an embedded picture, the filename and path are not used.<br>
520
 
521
The encoded picture data is only an example (it is not real data). The
522
last line containing a single dot '.' character marks the end of the
523
encoded picture data.
524
</p>
525
 
526
</div>
527
 
528
<h3 class="sectionedit13"><a name="box" id="box">box</a></h3>
529
<div class="level3">
530
 
531
<p>
532
Valid in: Schematic and Symbol files<br>
533
 
534
<strong><code>type x y width height color width capstyle dashstyle dashlength dashspace
535
filltype fillwidth angle1 pitch1 angle2 pitch2</code></strong>
536
</p>
537
<div class="table sectionedit14"><table class="inline">
538
        <tbody><tr class="row0">
539
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
540
        </tr>
541
        <tr class="row1">
542
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">B</td>
543
        </tr>
544
        <tr class="row2">
545
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">Lower left hand X coordinate</td>
546
        </tr>
547
        <tr class="row3">
548
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">Lower left hand Y coordinate</td>
549
        </tr>
550
        <tr class="row4">
551
                <td class="col0 rightalign">   3 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of the box (x direction)</td>
552
        </tr>
553
        <tr class="row5">
554
                <td class="col0 rightalign">   4 </td><td class="col1">height</td><td class="col2">int/mils</td><td class="col3">Height of the box (y direction)</td>
555
        </tr>
556
        <tr class="row6">
557
                <td class="col0 rightalign">   5 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
558
        </tr>
559
        <tr class="row7">
560
                <td class="col0 rightalign">   6 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of lines</td>
561
        </tr>
562
        <tr class="row8">
563
                <td class="col0 rightalign">   7 </td><td class="col1">capstyle</td><td class="col2">int/mils</td><td class="col3">Line cap style</td>
564
        </tr>
565
        <tr class="row9">
566
                <td class="col0 rightalign">   8 </td><td class="col1">dashstyle</td><td class="col2">int</td><td class="col3">Type of dash style</td>
567
        </tr>
568
        <tr class="row10">
569
                <td class="col0 rightalign">   9 </td><td class="col1">dashlength</td><td class="col2">int/mils</td><td class="col3">Length of dash</td>
570
        </tr>
571
        <tr class="row11">
572
                <td class="col0 rightalign">  10 </td><td class="col1">dashspace</td><td class="col2">int/mils</td><td class="col3">Space inbetween dashes</td>
573
        </tr>
574
        <tr class="row12">
575
                <td class="col0 rightalign">  11 </td><td class="col1">filltype</td><td class="col2">int</td><td class="col3">Type of fill</td>
576
        </tr>
577
        <tr class="row13">
578
                <td class="col0 rightalign">  12 </td><td class="col1">fillwidth</td><td class="col2">int/mils</td><td class="col3">Width of the fill lines</td>
579
        </tr>
580
        <tr class="row14">
581
                <td class="col0 rightalign">  13 </td><td class="col1">angle1</td><td class="col2">int/degrees</td><td class="col3">First angle of fill</td>
582
        </tr>
583
        <tr class="row15">
584
                <td class="col0 rightalign">  14 </td><td class="col1">pitch1</td><td class="col2">int/mils</td><td class="col3">First pitch/spacing of fill</td>
585
        </tr>
586
        <tr class="row16">
587
                <td class="col0 rightalign">  15 </td><td class="col1">angle2</td><td class="col2">int/degrees</td><td class="col3">Second angle of fill</td>
588
        </tr>
589
        <tr class="row17">
590
                <td class="col0 rightalign">  16 </td><td class="col1">pitch2</td><td class="col2">int/mils</td><td class="col3">Second pitch/spacing of fill</td>
591
        </tr>
592
</tbody></table></div>
593
<ul>
594
<li class="level1"><div class="li"> The capstyle is an enumerated type:</div>
595
<ul>
596
<li class="level2"><div class="li"> END NONE = 0</div>
597
</li>
598
<li class="level2"><div class="li"> END SQUARE = 1</div>
599
</li>
600
<li class="level2"><div class="li"> END ROUND = 2</div>
601
</li>
602
</ul>
603
</li>
604
<li class="level1"><div class="li"> The dashstyle is an enumerated type:</div>
605
<ul>
606
<li class="level2"><div class="li"> TYPE SOLID = 0</div>
607
</li>
608
<li class="level2"><div class="li"> TYPE DOTTED = 1</div>
609
</li>
610
<li class="level2"><div class="li"> TYPE DASHED = 2</div>
611
</li>
612
<li class="level2"><div class="li"> TYPE CENTER = 3</div>
613
</li>
614
<li class="level2"><div class="li"> TYPE PHANTOM = 4</div>
615
</li>
616
</ul>
617
</li>
618
<li class="level1"><div class="li"> The dashlength parameter is not used
619
 for TYPE SOLID and TYPE DOTTED. This parameter should take on a value
620
of -1 in these cases.</div>
621
</li>
622
<li class="level1"><div class="li"> The dashspace parameter is not used for TYPE SOLID. This parameter should take on a value of -1 in these case.</div>
623
</li>
624
<li class="level1"><div class="li"> The filltype parameter is an enumerated type:</div>
625
<ul>
626
<li class="level2"><div class="li"> FILLING HOLLOW = 0</div>
627
</li>
628
<li class="level2"><div class="li"> FILLING FILL = 1</div>
629
</li>
630
<li class="level2"><div class="li"> FILLING MESH = 2</div>
631
</li>
632
<li class="level2"><div class="li"> FILLING HATCH = 3</div>
633
</li>
634
<li class="level2"><div class="li"> FILLING VOID = 4 unused</div>
635
</li>
636
</ul>
637
</li>
638
<li class="level1"><div class="li"> If the filltype is 0 (FILLING HOLLOW), then all the fill parameters should take on a value of -1.</div>
639
</li>
640
<li class="level1"><div class="li"> The fill type FILLING FILL is a solid color fill.</div>
641
</li>
642
<li class="level1"><div class="li"> The two pairs of pitch and spacing control the fill or hatch if the fill type is FILLING MESH.</div>
643
</li>
644
<li class="level1"><div class="li"> Only the first pair of pitch and spacing are used if the fill type is FILLING HATCH.</div>
645
</li>
646
</ul>
647
 
648
<p>
649
Example:
650
</p>
651
<pre class="code">B 33000 67300 2000 2000 3 60 0 2 75 50 0 -1 -1 -1 -1 -1</pre>
652
 
653
<p>
654
A box with the lower left hand corner at (33000, 67300) and a width and
655
height of (2000, 2000), color index 3, line width of 60 mils, no cap,
656
dashed line type, dash length of 75 mils, dash spacing of 50 mils, no
657
fill, rest parameters unset.
658
</p>
659
 
660
</div>
661
 
662
<h3 class="sectionedit15"><a name="circle" id="circle">circle</a></h3>
663
<div class="level3">
664
 
665
<p>
666
Valid in: Schematic and Symbol files<br>
667
 
668
<strong><code>type x y radius color width capstyle dashstyle dashlength dashspace
669
filltype fillwidth angle1 pitch1 angle2 pitch2</code></strong>
670
</p>
671
<div class="table sectionedit16"><table class="inline">
672
        <tbody><tr class="row0">
673
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
674
        </tr>
675
        <tr class="row1">
676
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">V</td>
677
        </tr>
678
        <tr class="row2">
679
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">Center X coordinate</td>
680
        </tr>
681
        <tr class="row3">
682
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">Center Y coordinate</td>
683
        </tr>
684
        <tr class="row4">
685
                <td class="col0 rightalign">   3 </td><td class="col1">radius</td><td class="col2">int/mils</td><td class="col3">Radius of the circle</td>
686
        </tr>
687
        <tr class="row5">
688
                <td class="col0 rightalign">   4 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
689
        </tr>
690
        <tr class="row6">
691
                <td class="col0 rightalign">   5 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of circle line</td>
692
        </tr>
693
        <tr class="row7">
694
                <td class="col0 rightalign">   6 </td><td class="col1">capstyle</td><td class="col2">int/mils</td><td class="col3">0 unused</td>
695
        </tr>
696
        <tr class="row8">
697
                <td class="col0 rightalign">   7 </td><td class="col1">dashstyle</td><td class="col2">int</td><td class="col3">Type of dash style</td>
698
        </tr>
699
        <tr class="row9">
700
                <td class="col0 rightalign">   8 </td><td class="col1">dashlength</td><td class="col2">int/mils</td><td class="col3">Length of dash</td>
701
        </tr>
702
        <tr class="row10">
703
                <td class="col0 rightalign">   9 </td><td class="col1">dashspace</td><td class="col2">int/mils</td><td class="col3">Space inbetween dashes</td>
704
        </tr>
705
        <tr class="row11">
706
                <td class="col0 rightalign">  10 </td><td class="col1">filltype</td><td class="col2">int</td><td class="col3">Type of fill</td>
707
        </tr>
708
        <tr class="row12">
709
                <td class="col0 rightalign">  11 </td><td class="col1">fillwidth</td><td class="col2">int/mils</td><td class="col3">Width of the fill lines</td>
710
        </tr>
711
        <tr class="row13">
712
                <td class="col0 rightalign">  12 </td><td class="col1">angle1</td><td class="col2">int/degrees</td><td class="col3">First angle of fill</td>
713
        </tr>
714
        <tr class="row14">
715
                <td class="col0 rightalign">  13 </td><td class="col1">pitch1</td><td class="col2">int/mils</td><td class="col3">First pitch/spacing of fill</td>
716
        </tr>
717
        <tr class="row15">
718
                <td class="col0 rightalign">  14 </td><td class="col1">angle2</td><td class="col2">int/degrees</td><td class="col3">Second angle of fill</td>
719
        </tr>
720
        <tr class="row16">
721
                <td class="col0 rightalign">  15 </td><td class="col1">pitch2</td><td class="col2">int/mils</td><td class="col3">Second pitch/spacing of fill</td>
722
        </tr>
723
</tbody></table></div>
724
<ul>
725
<li class="level1"><div class="li"> The dashstyle is an enumerated type:</div>
726
<ul>
727
<li class="level2"><div class="li"> TYPE SOLID = 0</div>
728
</li>
729
<li class="level2"><div class="li"> TYPE DOTTED = 1</div>
730
</li>
731
<li class="level2"><div class="li"> TYPE DASHED = 2</div>
732
</li>
733
<li class="level2"><div class="li"> TYPE CENTER = 3</div>
734
</li>
735
<li class="level2"><div class="li"> TYPE PHANTOM = 4</div>
736
</li>
737
</ul>
738
</li>
739
<li class="level1"><div class="li"> The dashlength parameter is not used
740
 for TYPE SOLID and TYPE DOTTED. This parameter should take on a value
741
of -1 in these cases.</div>
742
</li>
743
<li class="level1"><div class="li"> The dashspace parameter is not used for TYPE SOLID. This parameter should take on a value of -1 in these case.</div>
744
</li>
745
<li class="level1"><div class="li"> The filltype parameter is an enumerated type:</div>
746
<ul>
747
<li class="level2"><div class="li"> FILLING HOLLOW = 0</div>
748
</li>
749
<li class="level2"><div class="li"> FILLING FILL = 1</div>
750
</li>
751
<li class="level2"><div class="li"> FILLING MESH = 2</div>
752
</li>
753
<li class="level2"><div class="li"> FILLING HATCH = 3</div>
754
</li>
755
<li class="level2"><div class="li"> FILLING VOID = 4 unused</div>
756
</li>
757
</ul>
758
</li>
759
<li class="level1"><div class="li"> If the filltype is 0 (FILLING HOLLOW), then all the fill parameters should take on a value of -1.</div>
760
</li>
761
<li class="level1"><div class="li"> The fill type FILLING FILL is a solid color fill.</div>
762
</li>
763
<li class="level1"><div class="li"> The two pairs of pitch and spacing control the fill or hatch if the fill type is FILLING MESH.</div>
764
</li>
765
<li class="level1"><div class="li"> Only the first pair of pitch and spacing are used if the fill type is FILLING HATCH.</div>
766
</li>
767
</ul>
768
 
769
<p>
770
Example:
771
</p>
772
<pre class="code">V 38000 67000 900 3 0 0 2 75 50 2 10 20 30 90 50</pre>
773
 
774
<p>
775
A circle with the center at (38000, 67000) and a radius of 900 mils,
776
color index 3, line width of 0 mils (smallest size), no cap, dashed line
777
 type, dash length of 75 mils, dash spacing of 50 mils, mesh fill, 10
778
mils thick mesh lines, first mesh line: 20 degrees, with a spacing of 30
779
 mils, second mesh line: 90 degrees, with a spacing of 50 mils.
780
</p>
781
 
782
</div>
783
 
784
<h3 class="sectionedit17"><a name="arc" id="arc">arc</a></h3>
785
<div class="level3">
786
 
787
<p>
788
Valid in: Schematic and Symbol files<br>
789
 
790
<strong><code>type x y radius startangle sweepangle color width capstyle dashstyle
791
dashlength dashspace</code></strong>
792
</p>
793
<div class="table sectionedit18"><table class="inline">
794
        <tbody><tr class="row0">
795
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
796
        </tr>
797
        <tr class="row1">
798
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">A</td>
799
        </tr>
800
        <tr class="row2">
801
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">Center X coordinate</td>
802
        </tr>
803
        <tr class="row3">
804
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">Center Y coordinate</td>
805
        </tr>
806
        <tr class="row4">
807
                <td class="col0 rightalign">   3 </td><td class="col1">radius</td><td class="col2">int/mils</td><td class="col3">Radius of the arc</td>
808
        </tr>
809
        <tr class="row5">
810
                <td class="col0 rightalign">   4 </td><td class="col1">startangle</td><td class="col2">int/degrees</td><td class="col3">Starting angle of the arc</td>
811
        </tr>
812
        <tr class="row6">
813
                <td class="col0 rightalign">   5 </td><td class="col1">sweepangle</td><td class="col2">int/degrees</td><td class="col3">Amount the arc sweeps</td>
814
        </tr>
815
        <tr class="row7">
816
                <td class="col0 rightalign">   6 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
817
        </tr>
818
        <tr class="row8">
819
                <td class="col0 rightalign">   7 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of circle line</td>
820
        </tr>
821
        <tr class="row9">
822
                <td class="col0 rightalign">   8 </td><td class="col1">capstyle</td><td class="col2">int</td><td class="col3">Cap style</td>
823
        </tr>
824
        <tr class="row10">
825
                <td class="col0 rightalign">   9 </td><td class="col1">dashstyle</td><td class="col2">int</td><td class="col3">Type of dash style</td>
826
        </tr>
827
        <tr class="row11">
828
                <td class="col0 rightalign">  10 </td><td class="col1">dashlength</td><td class="col2">int/mils</td><td class="col3">Length of dash</td>
829
        </tr>
830
        <tr class="row12">
831
                <td class="col0 rightalign">  11 </td><td class="col1">dashspace</td><td class="col2">int/mils</td><td class="col3">Space inbetween dashes</td>
832
        </tr>
833
</tbody></table></div>
834
<ul>
835
<li class="level1"><div class="li"> The startangle can be negative, but not recommended.</div>
836
</li>
837
<li class="level1"><div class="li"> The sweepangle can be negative, but not recommended.</div>
838
</li>
839
<li class="level1"><div class="li"> The capstyle is an enumerated type:</div>
840
<ul>
841
<li class="level2"><div class="li"> END NONE = 0</div>
842
</li>
843
<li class="level2"><div class="li"> END SQUARE = 1</div>
844
</li>
845
<li class="level2"><div class="li"> END ROUND = 2</div>
846
</li>
847
</ul>
848
</li>
849
<li class="level1"><div class="li"> The dashstyle is an enumerated type:</div>
850
<ul>
851
<li class="level2"><div class="li"> TYPE SOLID = 0</div>
852
</li>
853
<li class="level2"><div class="li"> TYPE DOTTED = 1</div>
854
</li>
855
<li class="level2"><div class="li"> TYPE DASHED = 2</div>
856
</li>
857
<li class="level2"><div class="li"> TYPE CENTER = 3</div>
858
</li>
859
<li class="level2"><div class="li"> TYPE PHANTOM = 4</div>
860
</li>
861
</ul>
862
</li>
863
<li class="level1"><div class="li"> The dashlength parameter is not used
864
 for TYPE SOLID and TYPE DOTTED. This parameter should take on a value
865
of -1 in these cases.</div>
866
</li>
867
<li class="level1"><div class="li"> The dashspace parameter is not used for TYPE SOLID. This parameter should take on a value of -1 in these case.</div>
868
</li>
869
</ul>
870
 
871
<p>
872
Example:
873
</p>
874
<pre class="code">A 30600 75000 2000 0 45 3 0 0 3 75 50</pre>
875
 
876
<p>
877
An arc with the center at (30600, 75000) and a radius of 2000 mils, a
878
starting angle of 0, sweeping 45 degrees, color index 3, line width of 0
879
 mils (smallest size), no cap, center line type, dash length of 75 mils,
880
 dash spacing of 50 mils.
881
</p>
882
 
883
</div>
884
 
885
<h3 class="sectionedit19"><a name="text_and_attributes" id="text_and_attributes">text and attributes</a></h3>
886
<div class="level3">
887
 
888
<p>
889
Depending on context, text objects can play different roles. Outside any
890
 environment, they represent informative lines of text. When enclosed by
891
 curly braces, they are interpreted as attributes. See the <span class="curid"><a href="http://wiki.geda-project.org/geda:file_format_spec#attributes" class="wikilink1" title="geda:file_format_spec">attributes section</a></span>.
892
</p>
893
 
894
<p>
895
Valid in: Schematic and Symbol files<br>
896
 
897
<strong><code>type x y color size visibility show_name_value angle alignment num_lines<br>
898
 
899
string line 1<br>
900
 
901
string line 2<br>
902
 
903
string line 3<br>
904
 
905
…<br>
906
 
907
string line N</code></strong>
908
</p>
909
<div class="table sectionedit20"><table class="inline">
910
        <tbody><tr class="row0">
911
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
912
        </tr>
913
        <tr class="row1">
914
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">T</td>
915
        </tr>
916
        <tr class="row2">
917
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">First X coordinate</td>
918
        </tr>
919
        <tr class="row3">
920
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">First Y coordinate</td>
921
        </tr>
922
        <tr class="row4">
923
                <td class="col0 rightalign">   3 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
924
        </tr>
925
        <tr class="row5">
926
                <td class="col0 rightalign">   4 </td><td class="col1">size</td><td class="col2">int/points</td><td class="col3">Size of text</td>
927
        </tr>
928
        <tr class="row6">
929
                <td class="col0 rightalign">   5 </td><td class="col1">visibility</td><td class="col2">int</td><td class="col3">Visibility of text</td>
930
        </tr>
931
        <tr class="row7">
932
                <td class="col0 rightalign">   6 </td><td class="col1">show_name_value</td><td class="col2">int</td><td class="col3">Attribute visibility control</td>
933
        </tr>
934
        <tr class="row8">
935
                <td class="col0 rightalign">   7 </td><td class="col1">angle</td><td class="col2">int/degrees</td><td class="col3">Angle of the text</td>
936
        </tr>
937
        <tr class="row9">
938
                <td class="col0 rightalign">   8 </td><td class="col1">alignment</td><td class="col2">int</td><td class="col3">Alignment/origin of the text</td>
939
        </tr>
940
        <tr class="row10">
941
                <td class="col0 rightalign">   9 </td><td class="col1">num_lines</td><td class="col2">int</td><td class="col3">Number of lines of text (1 based)</td>
942
        </tr>
943
        <tr class="row11">
944
                <td class="col0 rightalign">  10 </td><td class="col1">string line 1 … N</td><td class="col2">string</td><td class="col3">The text strings, on a separate line</td>
945
        </tr>
946
</tbody></table></div>
947
<ul>
948
<li class="level1"><div class="li"> This object is a multi line object.
949
The first line contains all the text parameters and the subsequent lines
950
 are the text strings.</div>
951
</li>
952
<li class="level1"><div class="li"> There must be exactly num lines of text following the T … string.</div>
953
</li>
954
<li class="level1"><div class="li"> The maximum length of any single text string is 1024, however there is no limit to the number of text string lines.</div>
955
</li>
956
<li class="level1"><div class="li"> The minimum size is 2 points (1/72 of an inch).</div>
957
</li>
958
<li class="level1"><div class="li"> There is no maximum size.</div>
959
</li>
960
<li class="level1"><div class="li"> The coordinate pair is the origin of the text item.</div>
961
</li>
962
<li class="level1"><div class="li"> The visibility field is an enumerated type:</div>
963
<ul>
964
<li class="level2"><div class="li"> INVISIBLE = 0</div>
965
</li>
966
<li class="level2"><div class="li"> VISIBLE = 1</div>
967
</li>
968
</ul>
969
</li>
970
<li class="level1"><div class="li"> The show_name_value is an enumerated type:</div>
971
<ul>
972
<li class="level2"><div class="li"> SHOW NAME VALUE = 0 (show both name and value of an attribute)</div>
973
</li>
974
<li class="level2"><div class="li"> SHOW VALUE = 1 (show only the value of an attribute)</div>
975
</li>
976
<li class="level2"><div class="li"> SHOW NAME = 2 (show only the name of an attribute)</div>
977
</li>
978
</ul>
979
</li>
980
<li class="level1"><div class="li"> The show_name_value field is only
981
valid if the string is an attribute (string has to be in the form:
982
name=value to be considered an attribute).</div>
983
</li>
984
<li class="level1"><div class="li"> The angle of the text can only take
985
on one of the following values: 0, 90, 180, 270. A value of 270 will
986
always generate upright text.</div>
987
</li>
988
<li class="level1"><div class="li"> The alignment/origin field controls the relative location of the origin.</div>
989
</li>
990
<li class="level1"><div class="li"> The alignment field can take a value from 0 to 8. <br>
991
The following diagram shows what the values for the alignment field mean:</div>
992
</li>
993
</ul>
994
 
995
<p>
996
 <a href="http://wiki.geda-project.org/_detail/geda:fileformat_textgraphic.jpg?id=geda%3Afile_format_spec" class="media" title="geda:fileformat_textgraphic.jpg"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/gedafileformat_textgraphic.jpg" class="media" title="fileformat_textgraphic.jpg" alt="fileformat_textgraphic.jpg"></a>
997
</p>
998
<ul>
999
<li class="level1"><div class="li"> The num_lines field always starts at 1.<br>
1000
The num_lines field was added starting with file format version 1. Past
1001
versions (0 or earlier) only supported single line text objects.</div>
1002
</li>
1003
<li class="level1"><div class="li"> The text strings of the string line(s) can have overbars if the text is embedded in two overbar markers <strong>“\_”</strong>. A single backslash needs to be written as <strong>“\\”</strong>.</div>
1004
</li>
1005
</ul>
1006
 
1007
<p>
1008
Example 1:
1009
</p>
1010
<pre class="code">T 16900 35800 3 10 1 0 0 0 1
1011
Text string!</pre>
1012
 
1013
<p>
1014
A text object with the origin at (16900, 35800), color index 3, 10 points in size, visible, attribute
1015
flags not valid (not an attribute), origin at lower left, not rotated, string: Text string!
1016
</p>
1017
 
1018
<p>
1019
Example 2:
1020
</p>
1021
<pre class="code">T 16900 35800 3 10 1 0 0 0 5
1022
Text string line 1
1023
Text string line 2
1024
Text string line 3
1025
Text string line 4
1026
Text string line 5</pre>
1027
 
1028
<p>
1029
This is a similar text object as the above example, however here there are five lines of text.
1030
</p>
1031
 
1032
<p>
1033
Example 3:
1034
</p>
1035
<pre class="code">T 10000 20000 3 10 1 1 8 90 1
1036
pinlabel=R/\_W\_</pre>
1037
 
1038
<p>
1039
A text object with the origin at (10000, 20000), color index 3, 10
1040
points in size, visible, only the value of the attribute is visible,
1041
text origin at upper right, the text is rotated by 90 degree, the
1042
string: “R/W” has an overbar over the “W”.
1043
</p>
1044
 
1045
</div>
1046
 
1047
<h3 class="sectionedit21"><a name="net" id="net">net</a></h3>
1048
<div class="level3">
1049
 
1050
<p>
1051
Valid in: Schematic files ONLY<br>
1052
 
1053
<strong><code>type x1 y1 x2 y2 color</code></strong>
1054
</p>
1055
<div class="table sectionedit22"><table class="inline">
1056
        <tbody><tr class="row0">
1057
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1058
        </tr>
1059
        <tr class="row1">
1060
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">N</td>
1061
        </tr>
1062
        <tr class="row2">
1063
                <td class="col0 rightalign">   1 </td><td class="col1">x1</td><td class="col2">int/mils</td><td class="col3">First X coordinate</td>
1064
        </tr>
1065
        <tr class="row3">
1066
                <td class="col0 rightalign">   2 </td><td class="col1">y1</td><td class="col2">int/mils</td><td class="col3">First Y coordinate</td>
1067
        </tr>
1068
        <tr class="row4">
1069
                <td class="col0 rightalign">   3 </td><td class="col1">x2</td><td class="col2">int/mils</td><td class="col3">Second X coordinate</td>
1070
        </tr>
1071
        <tr class="row5">
1072
                <td class="col0 rightalign">   4 </td><td class="col1">y2</td><td class="col2">int/mils</td><td class="col3">Second Y coordinate</td>
1073
        </tr>
1074
        <tr class="row6">
1075
                <td class="col0 rightalign">   5 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
1076
        </tr>
1077
</tbody></table></div>
1078
<ul>
1079
<li class="level1"><div class="li"> Nets can only appear in schematic files.</div>
1080
</li>
1081
<li class="level1"><div class="li"> You cannot have a zero length net (the tools will throw them away).</div>
1082
</li>
1083
</ul>
1084
 
1085
<p>
1086
Example:
1087
</p>
1088
<pre class="code">N 12700 29400 32900 29400 4</pre>
1089
 
1090
<p>
1091
A net segment from (12700, 29400) to (32900, 29400) with color index 4.
1092
</p>
1093
 
1094
</div>
1095
 
1096
<h3 class="sectionedit23"><a name="bus" id="bus">bus</a></h3>
1097
<div class="level3">
1098
 
1099
<p>
1100
Valid in: Schematic files ONLY<br>
1101
 
1102
<strong><code>type x1 y1 x2 y2 color ripperdir</code></strong>
1103
</p>
1104
<div class="table sectionedit24"><table class="inline">
1105
        <tbody><tr class="row0">
1106
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1107
        </tr>
1108
        <tr class="row1">
1109
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">U</td>
1110
        </tr>
1111
        <tr class="row2">
1112
                <td class="col0 rightalign">   1 </td><td class="col1">x1</td><td class="col2">int/mils</td><td class="col3">First X coordinate</td>
1113
        </tr>
1114
        <tr class="row3">
1115
                <td class="col0 rightalign">   2 </td><td class="col1">y1</td><td class="col2">int/mils</td><td class="col3">First Y coordinate</td>
1116
        </tr>
1117
        <tr class="row4">
1118
                <td class="col0 rightalign">   3 </td><td class="col1">x2</td><td class="col2">int/mils</td><td class="col3">Second X coordinate</td>
1119
        </tr>
1120
        <tr class="row5">
1121
                <td class="col0 rightalign">   4 </td><td class="col1">y2</td><td class="col2">int/mils</td><td class="col3">Second Y coordinate</td>
1122
        </tr>
1123
        <tr class="row6">
1124
                <td class="col0 rightalign">   5 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
1125
        </tr>
1126
        <tr class="row7">
1127
                <td class="col0 rightalign">   6 </td><td class="col1">ripperdir</td><td class="col2">int</td><td class="col3">Direction of bus rippers</td>
1128
        </tr>
1129
</tbody></table></div>
1130
<ul>
1131
<li class="level1"><div class="li"> The ripperdir field for an brand new bus is 0.</div>
1132
</li>
1133
<li class="level1"><div class="li"> The ripperdir field takes on a value
1134
 of 1 or -1 when a net is connected to the bus for the first time. This
1135
value indicates the direction of the ripper symbol. The ripper direction
1136
 is set to the same value for the entire life of the bus object.</div>
1137
</li>
1138
<li class="level1"><div class="li"> Buses can only appear in schematic files.</div>
1139
</li>
1140
<li class="level1"><div class="li"> You cannot have a zero length bus (the tools will throw them away).</div>
1141
</li>
1142
</ul>
1143
 
1144
<p>
1145
Example:
1146
</p>
1147
<pre class="code">U 27300 37400 27300 35300 3 0</pre>
1148
 
1149
<p>
1150
A bus segment from (27300, 37400) to (27300, 35300) with color index 3 and no nets have been connected to this bus segment.
1151
</p>
1152
 
1153
</div>
1154
 
1155
<h3 class="sectionedit25"><a name="pin" id="pin">pin</a></h3>
1156
<div class="level3">
1157
 
1158
<p>
1159
Valid in: Symbol files ONLY<br>
1160
 
1161
<strong><code>type x1 y1 x2 y2 color pintype whichend</code></strong>
1162
</p>
1163
<div class="table sectionedit26"><table class="inline">
1164
        <tbody><tr class="row0">
1165
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1166
        </tr>
1167
        <tr class="row1">
1168
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">P</td>
1169
        </tr>
1170
        <tr class="row2">
1171
                <td class="col0 rightalign">   1 </td><td class="col1">x1</td><td class="col2">int/mils</td><td class="col3">First X coordinate</td>
1172
        </tr>
1173
        <tr class="row3">
1174
                <td class="col0 rightalign">   2 </td><td class="col1">y1</td><td class="col2">int/mils</td><td class="col3">First Y coordinate</td>
1175
        </tr>
1176
        <tr class="row4">
1177
                <td class="col0 rightalign">   3 </td><td class="col1">x2</td><td class="col2">int/mils</td><td class="col3">Second X coordinate</td>
1178
        </tr>
1179
        <tr class="row5">
1180
                <td class="col0 rightalign">   4 </td><td class="col1">y2</td><td class="col2">int/mils</td><td class="col3">Second Y coordinate</td>
1181
        </tr>
1182
        <tr class="row6">
1183
                <td class="col0 rightalign">   5 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
1184
        </tr>
1185
        <tr class="row7">
1186
                <td class="col0 rightalign">   6 </td><td class="col1">pintype</td><td class="col2">int</td><td class="col3">Type of pin</td>
1187
        </tr>
1188
        <tr class="row8">
1189
                <td class="col0 rightalign">   7 </td><td class="col1">whichend</td><td class="col2">int</td><td class="col3">Specifies the active end</td>
1190
        </tr>
1191
</tbody></table></div>
1192
<ul>
1193
<li class="level1"><div class="li"> The pintype is an enumerated type:</div>
1194
<ul>
1195
<li class="level2"><div class="li"> NORMAL <acronym title="Personal Identification Number">PIN</acronym> = 0</div>
1196
</li>
1197
<li class="level2"><div class="li"> BUS <acronym title="Personal Identification Number">PIN</acronym> = 1 unused</div>
1198
</li>
1199
</ul>
1200
</li>
1201
<li class="level1"><div class="li"> The whichend specifies which end
1202
point of the pin is the active connection port. Only this end point can
1203
have other pins or nets connected to it.</div>
1204
</li>
1205
<li class="level1"><div class="li"> To make the first end point active, whichend should be 0, else to specify the other end, whichend should be 1.</div>
1206
</li>
1207
<li class="level1"><div class="li"> Pins can only appear in symbol files.</div>
1208
</li>
1209
<li class="level1"><div class="li"> Zero length pins are allowed</div>
1210
</li>
1211
</ul>
1212
 
1213
<p>
1214
Example:
1215
</p>
1216
<pre class="code">P 0 200 200 200 1 0 0</pre>
1217
 
1218
<p>
1219
A pin from (0, 200) to (200, 200) with color index 1, a regular pin, and the first point being the active connection end.
1220
</p>
1221
 
1222
</div>
1223
 
1224
<h3 class="sectionedit27"><a name="component" id="component">component</a></h3>
1225
<div class="level3">
1226
 
1227
<p>
1228
Valid in: Schematic files ONLY<br>
1229
 
1230
<strong><code>type x y selectable angle mirror basename</code></strong>
1231
</p>
1232
<div class="table sectionedit28"><table class="inline">
1233
        <tbody><tr class="row0">
1234
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1235
        </tr>
1236
        <tr class="row1">
1237
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">C</td>
1238
        </tr>
1239
        <tr class="row2">
1240
                <td class="col0 rightalign">   1 </td><td class="col1">x</td><td class="col2">int/mils</td><td class="col3">Origin X coordinate</td>
1241
        </tr>
1242
        <tr class="row3">
1243
                <td class="col0 rightalign">   2 </td><td class="col1">y</td><td class="col2">int/mils</td><td class="col3">Origin Y coordinate</td>
1244
        </tr>
1245
        <tr class="row4">
1246
                <td class="col0 rightalign">   3 </td><td class="col1">selectable</td><td class="col2">int</td><td class="col3">Selectable flag</td>
1247
        </tr>
1248
        <tr class="row5">
1249
                <td class="col0 rightalign">   4 </td><td class="col1">angle</td><td class="col2">int/degrees</td><td class="col3">Angle of the component</td>
1250
        </tr>
1251
        <tr class="row6">
1252
                <td class="col0 rightalign">   5 </td><td class="col1">mirror</td><td class="col2">int</td><td class="col3">Mirror around Y axis</td>
1253
        </tr>
1254
        <tr class="row7">
1255
                <td class="col0 rightalign">   6 </td><td class="col1">basename</td><td class="col2">string</td><td class="col3">The filename of the component</td>
1256
        </tr>
1257
</tbody></table></div>
1258
<ul>
1259
<li class="level1"><div class="li"> The selectable field is either 1 for selectable or 0 if not selectable.</div>
1260
</li>
1261
<li class="level1"><div class="li"> The angle field can only take on the following values: 0, 90, 180, 270.</div>
1262
</li>
1263
<li class="level1"><div class="li"> The angle field can only be positive.</div>
1264
</li>
1265
<li class="level1"><div class="li"> The mirror flag is 0 if the component is not mirrored (around the Y axis).</div>
1266
</li>
1267
<li class="level1"><div class="li"> The mirror flag is 1 if the component is mirrored (around the Y axis).</div>
1268
</li>
1269
<li class="level1"><div class="li"> The just basename is the filename of the component. This filename is not the full path.</div>
1270
</li>
1271
</ul>
1272
 
1273
<p>
1274
Example:
1275
</p>
1276
<pre class="code">C 18600 19900 1 0 0 7400-1.sym</pre>
1277
 
1278
<p>
1279
A component who's origin is at (18600,19900), is selectable, not
1280
rotated, not mirrored, and the basename of the component is 7400-1.sym.
1281
</p>
1282
 
1283
</div>
1284
 
1285
<h3 class="sectionedit29"><a name="path" id="path">path</a></h3>
1286
<div class="level3">
1287
 
1288
<p>
1289
Valid in: Schematic and Symbol files<br>
1290
 
1291
Valid since: Fileformat version 2 (release 1.5.1)<br>
1292
 
1293
<strong><code>type color width capstyle dashstyle dashlength dashspace filltype fillwidth angle1 pitch1 angle2 pitch2 numlines<br>
1294
 
1295
path data line 1<br>
1296
 
1297
path data line 2<br>
1298
 
1299
path data line 3<br>
1300
 
1301
…<br>
1302
 
1303
path data line N</code></strong>
1304
</p>
1305
<div class="table sectionedit30"><table class="inline">
1306
        <tbody><tr class="row0">
1307
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1308
        </tr>
1309
        <tr class="row1">
1310
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">H</td>
1311
        </tr>
1312
        <tr class="row2">
1313
                <td class="col0 rightalign">   1 </td><td class="col1">color</td><td class="col2">int</td><td class="col3">Color index</td>
1314
        </tr>
1315
        <tr class="row3">
1316
                <td class="col0 rightalign">   2 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of line</td>
1317
        </tr>
1318
        <tr class="row4">
1319
                <td class="col0 rightalign">   3 </td><td class="col1">capstyle</td><td class="col2">int</td><td class="col3">Line cap style</td>
1320
        </tr>
1321
        <tr class="row5">
1322
                <td class="col0 rightalign">   4 </td><td class="col1">dashstyle</td><td class="col2">int</td><td class="col3">Type of dash style</td>
1323
        </tr>
1324
        <tr class="row6">
1325
                <td class="col0 rightalign">   5 </td><td class="col1">dashlength</td><td class="col2">int/mils</td><td class="col3">Length of dash</td>
1326
        </tr>
1327
        <tr class="row7">
1328
                <td class="col0 rightalign">   6 </td><td class="col1">dashspace</td><td class="col2">int/mils</td><td class="col3">Space inbetween dashes</td>
1329
        </tr>
1330
        <tr class="row8">
1331
                <td class="col0 rightalign">   7 </td><td class="col1">filltype</td><td class="col2">int</td><td class="col3">Type of fill</td>
1332
        </tr>
1333
        <tr class="row9">
1334
                <td class="col0 rightalign">   8 </td><td class="col1">fillwidth</td><td class="col2">int/mils</td><td class="col3">Width of the fill lines</td>
1335
        </tr>
1336
        <tr class="row10">
1337
                <td class="col0 rightalign">   9 </td><td class="col1">angle1</td><td class="col2">int/degrees</td><td class="col3">First angle of fill</td>
1338
        </tr>
1339
        <tr class="row11">
1340
                <td class="col0 rightalign">  10 </td><td class="col1">pitch1</td><td class="col2">int/mils</td><td class="col3">First pitch/spacing of fill</td>
1341
        </tr>
1342
        <tr class="row12">
1343
                <td class="col0 rightalign">  11 </td><td class="col1">angle2</td><td class="col2">int/degrees</td><td class="col3">Second angle of fill</td>
1344
        </tr>
1345
        <tr class="row13">
1346
                <td class="col0 rightalign">  12 </td><td class="col1">pitch2</td><td class="col2">int/mils</td><td class="col3">Second pitch/spacing of fill</td>
1347
        </tr>
1348
        <tr class="row14">
1349
                <td class="col0 rightalign">  13 </td><td class="col1">num_lines</td><td class="col2">int</td><td class="col3">Number of lines of path data (1 based)</td>
1350
        </tr>
1351
        <tr class="row15">
1352
                <td class="col0 rightalign">  14 </td><td class="col1">path data line 1 … N</td><td class="col2">path data</td><td class="col3">The path data, on separate lines</td>
1353
        </tr>
1354
</tbody></table></div>
1355
<ul>
1356
<li class="level1"><div class="li"> The capstyle is an enumerated type:</div>
1357
<ul>
1358
<li class="level2"><div class="li"> END NONE = 0</div>
1359
</li>
1360
<li class="level2"><div class="li"> END SQUARE = 1</div>
1361
</li>
1362
<li class="level2"><div class="li"> END ROUND = 2</div>
1363
</li>
1364
</ul>
1365
</li>
1366
</ul>
1367
<ul>
1368
<li class="level1"><div class="li"> The dashstyle is an enumerated type:</div>
1369
<ul>
1370
<li class="level2"><div class="li"> TYPE SOLID = 0</div>
1371
</li>
1372
<li class="level2"><div class="li"> TYPE DOTTED = 1</div>
1373
</li>
1374
<li class="level2"><div class="li"> TYPE DASHED = 2</div>
1375
</li>
1376
<li class="level2"><div class="li"> TYPE CENTER = 3</div>
1377
</li>
1378
<li class="level2"><div class="li"> TYPE PHANTOM = 4</div>
1379
</li>
1380
</ul>
1381
</li>
1382
<li class="level1"><div class="li"> The dashlength parameter is not used
1383
 for TYPE SOLID and TYPE DOTTED. This parameter should take on a value
1384
of -1 in these cases.</div>
1385
</li>
1386
<li class="level1"><div class="li"> The dashspace parameter is not used for TYPE SOLID. This parameter should take on a value of -1 in these case.</div>
1387
</li>
1388
</ul>
1389
<ul>
1390
<li class="level1"><div class="li"> The filltype parameter is an enumerated type:</div>
1391
<ul>
1392
<li class="level2"><div class="li"> FILLING HOLLOW = 0</div>
1393
</li>
1394
<li class="level2"><div class="li"> FILLING FILL = 1</div>
1395
</li>
1396
<li class="level2"><div class="li"> FILLING MESH = 2</div>
1397
</li>
1398
<li class="level2"><div class="li"> FILLING HATCH = 3</div>
1399
</li>
1400
<li class="level2"><div class="li"> FILLING VOID = 4 unused</div>
1401
</li>
1402
</ul>
1403
</li>
1404
<li class="level1"><div class="li"> If the filltype is 0 (FILLING HOLLOW), then all the fill parameters should take on a value of -1.</div>
1405
</li>
1406
<li class="level1"><div class="li"> The fill type FILLING FILL is a solid color fill.</div>
1407
</li>
1408
<li class="level1"><div class="li"> The two pairs of pitch and spacing control the fill or hatch if the fill type is FILLING MESH.</div>
1409
</li>
1410
<li class="level1"><div class="li"> Only the first pair of pitch and spacing are used if the fill type is FILLING HATCH.</div>
1411
</li>
1412
</ul>
1413
<ul>
1414
<li class="level1"><div class="li"> The format of path data is deliberately similar to that of <a href="http://www.w3.org/TR/SVG/paths.html" class="urlextern" title="http://www.w3.org/TR/SVG/paths.html" rel="nofollow">paths in the W3C SVG standard</a>.</div>
1415
</li>
1416
<li class="level1"><div class="li"> The subset of the <acronym title="Scalable Vector Graphics">SVG</acronym> path syntax emitted by gEDA is documented below in section <span class="curid"><a href="http://wiki.geda-project.org/geda:file_format_spec?&amp;#path_data" class="wikilink1" title="geda:file_format_spec">Path Data</a></span>.</div>
1417
</li>
1418
<li class="level1"><div class="li"> As an implementation detail; libgeda takes code from librsvg, an <acronym title="Scalable Vector Graphics">SVG</acronym> parsing library. As a result, the majority of <acronym title="Scalable Vector Graphics">SVG</acronym>
1419
 path syntax is read correctly, however this is always normalised to
1420
absolute move, line, Bézier curve and close-path commands internally
1421
(and is saved as such).</div>
1422
</li>
1423
<li class="level1"><div class="li"> Coordinates along the path are specified in the standard gschem coordinate space.</div>
1424
</li>
1425
</ul>
1426
 
1427
<p>
1428
Example:
1429
</p>
1430
<pre class="code">H 3 10 0 0 -1 -1 0 -1 -1 -1 -1 -1 5
1431
M 410,240
1432
L 501,200
1433
L 455,295
1434
L 435,265
1435
z</pre>
1436
 
1437
<p>
1438
A path starting at (410,240) with lines drawn from there, and joining
1439
points (501,200), (455,295), (435,265), closing back to its origin. It
1440
has color index 3, is 10 mils thick, no cap, solid style. There are 5
1441
lines of path data.
1442
</p>
1443
 
1444
</div>
1445
 
1446
<h3 class="sectionedit31"><a name="font" id="font">font</a></h3>
1447
<div class="level3">
1448
 
1449
<p>
1450
Valid in: Special font files ONLY<br>
1451
 
1452
<strong><code>type character width flag</code></strong>
1453
</p>
1454
<div class="table sectionedit32"><table class="inline">
1455
        <tbody><tr class="row0">
1456
                <th class="col0">Pos.</th><th class="col1">Field</th><th class="col2">Type/unit</th><th class="col3">Description</th>
1457
        </tr>
1458
        <tr class="row1">
1459
                <td class="col0 rightalign">   # </td><td class="col1">type</td><td class="col2">char</td><td class="col3">F</td>
1460
        </tr>
1461
        <tr class="row2">
1462
                <td class="col0 rightalign">   1 </td><td class="col1">character</td><td class="col2">char</td><td class="col3">The character being defined</td>
1463
        </tr>
1464
        <tr class="row3">
1465
                <td class="col0 rightalign">   2 </td><td class="col1">width</td><td class="col2">int/mils</td><td class="col3">Width of the character (mils)</td>
1466
        </tr>
1467
        <tr class="row4">
1468
                <td class="col0 rightalign">   3 </td><td class="col1">flag</td><td class="col2">int</td><td class="col3">Special space flag</td>
1469
        </tr>
1470
</tbody></table></div>
1471
<ul>
1472
<li class="level1"><div class="li"> This is a special tag and should ONLY show up in font definition files.</div>
1473
</li>
1474
<li class="level1"><div class="li"> If the font character being defined is the space character (32) then flag should be 1, otherwise 0.</div>
1475
</li>
1476
</ul>
1477
 
1478
<p>
1479
Example:
1480
</p>
1481
<pre class="code">F 11 1</pre>
1482
 
1483
<p>
1484
The above font definition is for the space character.
1485
</p>
1486
 
1487
</div>
1488
 
1489
<h2 class="sectionedit33"><a name="colors" id="colors">Colors</a></h2>
1490
<div class="level2">
1491
 
1492
<p>
1493
In the gEDA/gaf schematic and symbol file format colors are specified
1494
via an integer index. The relationship between integer and color is
1495
based on object type. Each object type typically has one or more colors.
1496
 Here is a table of color index to object type:
1497
</p>
1498
<div class="table sectionedit34"><table class="inline">
1499
        <tbody><tr class="row0">
1500
                <th class="col0">Index</th><th class="col1">Object type</th>
1501
        </tr>
1502
        <tr class="row1">
1503
                <td class="col0">0</td><td class="col1">BACKGROUND_COLOR</td>
1504
        </tr>
1505
        <tr class="row2">
1506
                <td class="col0">1</td><td class="col1"><acronym title="Personal Identification Number">PIN</acronym>_COLOR</td>
1507
        </tr>
1508
        <tr class="row3">
1509
                <td class="col0">2</td><td class="col1">NET_ENDPOINT_COLOR</td>
1510
        </tr>
1511
        <tr class="row4">
1512
                <td class="col0">3</td><td class="col1">GRAPHIC_COLOR</td>
1513
        </tr>
1514
        <tr class="row5">
1515
                <td class="col0">4</td><td class="col1">NET_COLOR</td>
1516
        </tr>
1517
        <tr class="row6">
1518
                <td class="col0">5</td><td class="col1">ATTRIBUTE_COLOR</td>
1519
        </tr>
1520
        <tr class="row7">
1521
                <td class="col0">6</td><td class="col1">LOGIC_BUBBLE_COLOR</td>
1522
        </tr>
1523
        <tr class="row8">
1524
                <td class="col0">7</td><td class="col1">DOTS_GRID_COLOR</td>
1525
        </tr>
1526
        <tr class="row9">
1527
                <td class="col0">8</td><td class="col1">DETACHED_ATTRIBUTE_COLOR</td>
1528
        </tr>
1529
        <tr class="row10">
1530
                <td class="col0">9</td><td class="col1">TEXT_COLOR</td>
1531
        </tr>
1532
        <tr class="row11">
1533
                <td class="col0">10</td><td class="col1">BUS_COLOR</td>
1534
        </tr>
1535
        <tr class="row12">
1536
                <td class="col0">11</td><td class="col1">SELECT_COLOR</td>
1537
        </tr>
1538
        <tr class="row13">
1539
                <td class="col0">12</td><td class="col1">BOUNDINGBOX_COLOR</td>
1540
        </tr>
1541
        <tr class="row14">
1542
                <td class="col0">13</td><td class="col1">ZOOM_BOX_COLOR</td>
1543
        </tr>
1544
        <tr class="row15">
1545
                <td class="col0">14</td><td class="col1">STROKE_COLOR</td>
1546
        </tr>
1547
        <tr class="row16">
1548
                <td class="col0">15</td><td class="col1">LOCK_COLOR</td>
1549
        </tr>
1550
        <tr class="row17">
1551
                <td class="col0">16</td><td class="col1">OUTPUT_BACKGROUND_COLOR</td>
1552
        </tr>
1553
        <tr class="row18">
1554
                <td class="col0">17</td><td class="col1">FREESTYLE1_COLOR</td>
1555
        </tr>
1556
        <tr class="row19">
1557
                <td class="col0">18</td><td class="col1">FREESTYLE2_COLOR</td>
1558
        </tr>
1559
        <tr class="row20">
1560
                <td class="col0">19</td><td class="col1">FREESTYLE3_COLOR</td>
1561
        </tr>
1562
        <tr class="row21">
1563
                <td class="col0">20</td><td class="col1">FREESTYLE4_COLOR</td>
1564
        </tr>
1565
        <tr class="row22">
1566
                <td class="col0">21</td><td class="col1">JUNCTION_COLOR</td>
1567
        </tr>
1568
        <tr class="row23">
1569
                <td class="col0">22</td><td class="col1">MESH_GRID_MAJOR_COLOR</td>
1570
        </tr>
1571
        <tr class="row24">
1572
                <td class="col0">23</td><td class="col1">MESH_GRID_MINOR_COLOR</td>
1573
        </tr>
1574
</tbody></table></div>
1575
 
1576
<p>
1577
The actual color associated with the color index is defined on a per
1578
tool bases. Objects are typically assigned their corresponding color
1579
index, but it is permissible (sometimes) to assign other color index
1580
values to different object types.
1581
</p>
1582
 
1583
</div>
1584
 
1585
<h2 class="sectionedit35"><a name="attributes" id="attributes">Attributes</a></h2>
1586
<div class="level2">
1587
 
1588
<p>
1589
Attributes are enclosed in braces {} and can only be text. Attributes
1590
are text items which take on the form name=value. If it doesn't have
1591
name=value, it's not an attribute. Attributes are attached to the
1592
previous object. Here's an example:
1593
</p>
1594
<pre class="code">P 988 500 1300 500 1
1595
{
1596
T 1000 570 5 8 1 1 0
1597
pinseq=3
1598
T 1000 550 5 8 1 1 0
1599
pinnumber=3
1600
}</pre>
1601
 
1602
<p>
1603
The object is a pin which has an attribute pinnumber=3 and pinseq=3
1604
(name=value). You can have multiple text objects (both the T … and text
1605
string are required) in between the braces {}. As of 20021103, you can
1606
only attached text items as attributes. Attaching other object types as
1607
attributes is unsupported.<br>
1608
 
1609
You can also have “toplevel” attributes. These attributes are not
1610
attached to any object, but instead are just text objects that take on
1611
the form name=value.<br>
1612
 
1613
These attributes are useful when you need to convey some info about a
1614
schematic page or symbol and need the netlister to have access to this
1615
info.
1616
</p>
1617
 
1618
</div>
1619
 
1620
<h2 class="sectionedit36"><a name="embedded_components" id="embedded_components">Embedded Components</a></h2>
1621
<div class="level2">
1622
 
1623
<p>
1624
Embedded components are components which have all of their definition
1625
stored within the schematic file. When a users place a component onto a
1626
schematic page, they have the option of making the component embedded.
1627
Other than storing all the symbol information inside of the schematic,
1628
an embedded component is just any other component. Embedded components
1629
are defined as:
1630
</p>
1631
<pre class="code">C 18600 21500 1 0 0 EMBEDDED555-1.sym
1632
[
1633
...
1634
... Embedded primitive objects
1635
...
1636
]</pre>
1637
 
1638
<p>
1639
In the example above, <strong>555-1.sym</strong> is the component. The EMBEDDED tag and the [ ] are the distinguishing characteristics of embedded components. <strong>componentname.sym</strong> must exist in one of the specified component-libraries if you want to unembed the component.
1640
</p>
1641
 
1642
</div>
1643
 
1644
<h2 class="sectionedit37"><a name="path_data" id="path_data">Path data</a></h2>
1645
<div class="level2">
1646
 
1647
<p>
1648
The gEDA/gaf path data format has been deliberately specified to match a subset of <a href="http://www.w3.org/TR/SVG/paths.html" class="urlextern" title="http://www.w3.org/TR/SVG/paths.html" rel="nofollow">that in the W3C SVG standard.</a>.
1649
</p>
1650
<ul>
1651
<li class="level1"><div class="li"> As an implementation detail; libgeda takes code from librsvg, an <acronym title="Scalable Vector Graphics">SVG</acronym> parsing library. As a result, the majority of <acronym title="Scalable Vector Graphics">SVG</acronym>
1652
 path syntax is read correctly, however this is always normalised to
1653
absolute move, line, Bézier curve and close-path commands internally
1654
(and is saved as such).</div>
1655
</li>
1656
<li class="level1"><div class="li"> Coordinates along the path are specified in the standard gschem coordinate space.</div>
1657
</li>
1658
<li class="level1"><div class="li"> Those path commands which gEDA emits, and will guarantee to parse, are listed in the table below:<br>
1659
(Text taken from the above <acronym title="Scalable Vector Graphics">SVG</acronym> specification).</div>
1660
</li>
1661
<li class="level1"><div class="li"> In the table below, the following notation is used:</div>
1662
<ul>
1663
<li class="level2"><div class="li"> (): grouping of parameters</div>
1664
</li>
1665
<li class="level2"><div class="li"> +: 1 or more of the given parameter(s) is required</div>
1666
</li>
1667
</ul>
1668
</li>
1669
</ul>
1670
<div class="table sectionedit38"><table class="inline">
1671
        <tbody><tr class="row0">
1672
                <th class="col0">Command</th><th class="col1">Name</th><th class="col2">Parameters</th><th class="col3">Description</th>
1673
        </tr>
1674
        <tr class="row1">
1675
                <td class="col0">M (absolute)</td><td class="col1">moveto</td><td class="col2">(x,y)+</td><td class="col3">Start
1676
 a new sub-path at the given (x,y) coordinate. M (uppercase) indicates
1677
that absolute coordinates will follow; m (lowercase) indicates that
1678
relative coordinates will follow. If a relative moveto (m) appears as
1679
the first element of the path, then it is treated as a pair of absolute
1680
coordinates. If a moveto is followed by multiple pairs of coordinates,
1681
the subsequent pairs are treated as implicit lineto commands.</td>
1682
        </tr>
1683
        <tr class="row2">
1684
                <td class="col0">L (absolute)</td><td class="col1">lineto</td><td class="col2">(x,y)+</td><td class="col3">Draw
1685
 a line from the current point to the given (x,y) coordinate which
1686
becomes the new current point. L (uppercase) indicates that absolute
1687
coordinates will follow; l (lowercase) indicates that relative
1688
coordinates will follow. A number of coordinates pairs may be specified
1689
to draw a polyline. At the end of the command, the new current point is
1690
set to the final set of coordinates provided.</td>
1691
        </tr>
1692
        <tr class="row3">
1693
                <td class="col0">C (absolute)</td><td class="col1">curveto</td><td class="col2">(x1,y1 x2,y2 x,y)+</td><td class="col3">Draws
1694
 a cubic Bézier curve from the current point to (x,y) using (x1,y1) as
1695
the control point at the beginning of the curve and (x2,y2) as the
1696
control point at the end of the curve. C (uppercase) indicates that
1697
absolute coordinates will follow; c (lowercase) indicates that relative
1698
coordinates will follow. Multiple sets of coordinates may be specified
1699
to draw a polybézier. At the end of the command, the new current point
1700
becomes the final (x,y) coordinate pair used in the polybézier.</td>
1701
        </tr>
1702
        <tr class="row4">
1703
                <td class="col0">Z or z</td><td class="col1">closepath</td><td class="col2">(none)</td><td class="col3">Close the current subpath by drawing a straight line from the current point to current subpath's initial point.</td>
1704
        </tr>
1705
</tbody></table></div>
1706
<ul>
1707
<li class="level1"><div class="li"> gEDA's output currently emits only the absolute coordinate versions of the above commands.</div>
1708
</li>
1709
<li class="level1"><div class="li"> gEDA's output currently emits the
1710
commands, M, L, C before every set of coordinates, even where they could
1711
 be omitted according to the <acronym title="Scalable Vector Graphics">SVG</acronym> specification.</div>
1712
</li>
1713
<li class="level1"><div class="li"> gEDA's output places commas between x,y coordinates. These may be replaced with whitespace according to the <acronym title="Scalable Vector Graphics">SVG</acronym> specification.</div>
1714
</li>
1715
<li class="level1"><div class="li"> gEDA's does not currently support more than one sub-path.</div>
1716
</li>
1717
<li class="level1"><div class="li"> gEDA currently emits one path data line per command + coordinate set.</div>
1718
</li>
1719
</ul>
1720
 
1721
<p>
1722
As example, lets draw the outline of an AND gate. The path data is:
1723
</p>
1724
<pre class="code">M 100,100 L 500,100 C 700,100 800,275 800,400
1725
C 800,525 700,700 500,700 L 100,700 z</pre>
1726
 
1727
<p>
1728
And a complete schematic:
1729
</p>
1730
<pre class="code">v 20080706 1
1731
H 3 0 0 0 -1 -1 0 2 20 100 -1 -1 6
1732
M 100,100
1733
L 500,100
1734
C 700,100 800,275 800,400
1735
C 800,525 700,700 500,700
1736
L 100,700
1737
z</pre>
1738
 
1739
<p>
1740
The resulting path (with control points drawn on to illustrate their positions) is shown here:
1741
</p>
1742
 
1743
<p>
1744
<a href="http://wiki.geda-project.org/_detail/geda:path_example_and_gate-smaller.png?id=geda%3Afile_format_spec" class="media" title="geda:path_example_and_gate-smaller.png"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/gedapath_example_and_gate-smaller.png" class="media" alt=""></a>
1745
</p>
1746
 
1747
</div>
1748
 
1749
<h2 class="sectionedit39"><a name="document_revision_history" id="document_revision_history">Document Revision History</a></h2>
1750
<div class="level2">
1751
<div class="table sectionedit40"><table class="inline">
1752
        <tbody><tr class="row0">
1753
                <td class="col0">November 30th, 2002</td><td class="col1">Created fleformats.tex from fleformats.html.</td>
1754
        </tr>
1755
        <tr class="row1">
1756
                <td class="col0">December 1st, 2002</td><td class="col1">Continued work on this document.</td>
1757
        </tr>
1758
        <tr class="row2">
1759
                <td class="col0">October 4th, 2003</td><td class="col1">Added new file format version flag info.</td>
1760
        </tr>
1761
        <tr class="row3">
1762
                <td class="col0">October 19th, 2003</td><td class="col1">Added num lines text field.</td>
1763
        </tr>
1764
        <tr class="row4">
1765
                <td class="col0">November 2nd, 2008</td><td class="col1">Added path object, bumping file format version to 2</td>
1766
        </tr>
1767
        <tr class="row5">
1768
                <td class="col0">May 26th, 2011</td><td class="col1">Added a column for the position of parameters in the tables</td>
1769
        </tr>
1770
</tbody></table></div>
1771
 
1772
</div>
1773
 
1774
    <!-- wikipage stop -->
1775
  </div>
1776
 
1777
  <div class="clearer"></div>
1778
 
1779
 
1780
  <div class="stylefoot">
1781
 
1782
    <div class="meta">
1783
      <div class="user">
1784
              </div>
1785
      <div class="doc">
1786
        geda/file_format_spec.txt · Last modified: 2014/04/25 07:46 by vzh      </div>
1787
    </div>
1788
 
1789
 
1790
    <div class="bar" id="bar__bottom">
1791
      <div class="bar-left" id="bar__bottomleft">
1792
        <form class="button btn_source" method="post" action="/geda:file_format_spec"><div class="no"><input name="do" value="edit" type="hidden"><input name="rev" value="" type="hidden"><input value="Show pagesource" class="button" accesskey="v" title="Show pagesource [V]" type="submit"></div></form>        <form class="button btn_revs" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="revisions" type="hidden"><input value="Old revisions" class="button" accesskey="o" title="Old revisions [O]" type="submit"></div></form>              </div>
1793
      <div class="bar-right" id="bar__bottomright">
1794
                <form class="button btn_media" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="media" type="hidden"><input value="Media Manager" class="button" title="Media Manager" type="submit"></div></form>                        <form class="button btn_login" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="login" type="hidden"><input name="sectok" value="5419369fec157cc265589296e6d4997d" type="hidden"><input value="Login" class="button" title="Login" type="submit"></div></form>        <form class="button btn_index" method="get" action="/geda:file_format_spec"><div class="no"><input name="do" value="index" type="hidden"><input value="Sitemap" class="button" accesskey="x" title="Sitemap [X]" type="submit"></div></form>        <a class="nolink" href="#dokuwiki__top"><input class="button" value="Back to top" onclick="window.scrollTo(0, 0)" title="Back to top" type="button"></a>&nbsp;
1795
      </div>
1796
      <div class="clearer"></div>
1797
    </div>
1798
 
1799
  </div>
1800
 
1801
  <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license" class="urlextern">CC Attribution-Share Alike 3.0 Unported</a></div>
1802
</div>
1803
 
1804
<div class="footerinc">
1805
 
1806
  <a href="http://wiki.geda-project.org/feed.php" title="Recent changes RSS feed"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-rss.png" alt="Recent changes RSS feed" height="15" width="80"></a>
1807
 
1808
        <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license" title="CC Attribution-Share Alike 3.0 Unported"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/cc-by-sa.png" alt="" height="15" width="80"></a>
1809
 
1810
  <a href="http://www.dokuwiki.org/donate" title="Donate"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-donate.gif" alt="Donate" height="15" width="80"></a>
1811
 
1812
  <a href="http://www.php.net/" title="Powered by PHP"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-php.gif" alt="Powered by PHP" height="15" width="80"></a>
1813
 
1814
  <a href="http://validator.w3.org/check/referer" title="Valid XHTML 1.0"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-xhtml.png" alt="Valid XHTML 1.0" height="15" width="80"></a>
1815
 
1816
  <a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-css.png" alt="Valid CSS" height="15" width="80"></a>
1817
 
1818
  <a href="http://dokuwiki.org/" title="Driven by DokuWiki"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/button-dw.png" alt="Driven by DokuWiki" height="15" width="80"></a>
1819
 
1820
 
1821
 
1822
</div>
1823
 
1824
<div class="no"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/indexer.gif" alt="" height="1" width="2"></div>
1825
 
1826
 
1827
<div aria-labelledby="ui-dialog-title-media__popup_content" role="dialog" tabindex="-1" class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable" style="display: none; z-index: 1000; outline: 0px none;"><div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"><span id="ui-dialog-title-media__popup_content" class="ui-dialog-title">Link settings</span><a role="button" class="ui-dialog-titlebar-close ui-corner-all" href="#"><span class="ui-icon ui-icon-closethick">close</span></a></div><div class="ui-dialog-content ui-widget-content" id="media__popup_content"><p id="media__link"><label>Link target</label><button title="Link to detail page" id="media__linkbtn1" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_link_lnk.png"></button><button title="Direct link to original" id="media__linkbtn2" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_link_direct.png"></button><button title="No link" id="media__linkbtn3" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_link_nolnk.png"></button><button title="Show only the link." id="media__linkbtn4" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_link_displaylnk.png"></button></p><p id="media__align"><label>Alignment</label><button title="Use no align." id="media__alignbtn1" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_align_noalign.png"></button><button title="Align the image on the left." id="media__alignbtn2" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_align_left.png"></button><button title="Align the image in the middle." id="media__alignbtn3" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_align_center.png"></button><button title="Align the image on the right." id="media__alignbtn4" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_align_right.png"></button></p><p id="media__size"><label>Image size</label><button title="Small version" id="media__sizebtn1" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_size_small.png"></button><button title="Medium version" id="media__sizebtn2" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_size_medium.png"></button><button title="Large version" id="media__sizebtn3" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_size_large.png"></button><button title="Original version" id="media__sizebtn4" class="button"><img src="geda:file_format_spec%20%5BgEDA%20Project%20Wiki%5D_files/media_size_original.png"></button></p><p><input value="Insert" class="button" id="media__sendbtn" type="button"></p></div></div></body></html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.