File: Layout-File.html

package info (click to toggle)
pcb 1.99j%2B20050127-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 8,632 kB
  • ctags: 4,302
  • sloc: ansic: 45,369; pascal: 3,526; sh: 1,140; yacc: 1,076; makefile: 575; lex: 348; perl: 183; awk: 102; tcl: 63
file content (165 lines) | stat: -rw-r--r-- 7,165 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<html lang="en">
<head>
<title>Pcb</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Pcb">
<meta name="generator" content="makeinfo 4.6">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
--></style>
</head>
<body>
<div class="node">
<p>
Node:&nbsp;<a name="Layout%20File">Layout File</a>,
Next:&nbsp;<a rel="next" accesskey="n" href="Element-File.html#Element%20File">Element File</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Basic-Types.html#Basic%20Types">Basic Types</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="File-Formats.html#File%20Formats">File Formats</a>
<hr><br>
</div>

<h3 class="section">Layout File Format</h3>

<p>The layout file describes a complete layout including symbols, vias,
elements and layers with lines, rectangles and text. This is the most
complex file of all.

<pre class="example">     File            = Header Font PCBData
     Header          = PCBName [GridData] [CursorData] [PCBFlags] [Groups]
     PCBName         = "PCB(" Name Width Height ")"
     GridData        = "Grid(" Grid GridOffsetX GridOffsetY ")"
     CursorData      = "Cursor(" X Y zoom ")"
     PCBFlags        = "Flags(" Flags ")"
     Groups          = "Groups(" GroupString ")"
     Styles		= "Styles(" StyleString ")"
     Font            = {FontData}...
     FontData        = {Symbol}...
     Symbol          = "Symbol(" SymbolID Spacing ")"
     		      "(" {SymbolData}... ")"
     SymbolData      = {SymbolLine}...
     SymbolLine      = "SymbolLine(" X1 Y1 X2 Y2 Thickness ")"
     PCBData         = {Via | Layer | Element}...
     
     Via             = "Via(" X Y Thickness DrillingHole Name Flags ")"
     
     Element         = "Element(" Flags Description LayoutName Value \
     		      TextX TextY direction scale TextFlags")"
     		      "(" {ElementData}... [Mark] ")"
     ElementData     = {ElementLine | Pad | Pin | ElementArc }...
     ElementArc      = "ElementArc(" X Y Width Height
     		      StartAngle DeltaAngle Thickness ")"
     ElementLine     = "ElementLine(" X1 Y1 X2 Y2 Thickness ")"
     Mark            = "Mark(" X Y ")"
     Pad             = "Pad(" X1 Y1 X2 Y2 Thickness Name PinNumber Flags")"
     Pin             = "Pin(" X Y Thickness DrillingHole Name PinNumber Flags ")"
     
     Layer           = "Layer(" LayerNumber Name ")"
     		      "(" {LayerData}... ")"
     LayerData       = {Line | Polygon | Text}...
     Line            = "Line(" X1 Y1 X2 Y2 Thickness Flags")"
     Arc		= "Arc(" X Y Width Height StartAngle DeltaAngle Thickness Flags")"
     Polygon         = "Polygon(" Flags ")" \
     		      "(" {Points}... ")"
     Points          = "(" X Y ")"
     Text            = "Text(" X Y direction scale TextData Flags")"
     </pre>

     <dl>

     <br><dt><code>PCBName</code>
     <dd>is used to define the layout's name which is independent of its filename. 
It is displayed in the lower left corner of the main window.

     <br><dt><code>GridData</code>
     <dd>is optional and is used to save the grid setting and offset which were set
at the time the layout was saved.

     <br><dt><code>CursorData</code>
     <dd>also is an optional parameter to save the last cursor location and zoom value. 
The real zoom factor is calculated by scale = 1:(2 power value).

     <br><dt><code>PCBFlags</code>
     <dd>determine how to draw lines and which name of the elements should be
displayed.
     <pre class="example">              bit 4:  do rubberband moves and rotates if set
              bit 5:  display description of elements if set
              bit 6:  display unique name of an element if set
              bit 7:  use absolute grid if set
              bit 8:  don't clip lines to 45 degrees
          </pre>

     <br><dt><code>Groups</code>
     <dd>Layergroups are saved by using this optional parameter. The only way of
changing them is to use an editor and alter the appropriate line. The
characters <em>c,s</em> identify the component- and solder-side for SMD
objects.

     <br><dt><code>Symbol</code>
     <dd>See the description of font files in this chapter.

     <br><dt><code>Via</code>
     <dd>Vias are always connected to all layers which also means vias are one
logical level ahead of layers. Vias are defined by position, size, name and
by some flags.
     <pre class="example">              bit 0:  always clear
              bit 1:  always set
              bit 2:  set if via was found during a connection search
              bit 4:  set if via is a hole (has no copper annulus)
              bit 5:  display the vias name
              bit 6:  via has been selected
              bit 12: set if via has octagonal shape
              Other bits have special meaning and should not be changed
              by the user.  See const.h for more information
          </pre>

     <br><dt><code>Element</code>
     <dd>See the description of element files in this chapter.

     <br><dt><code>Layer</code>
     <dd>A layer is the central object from the user's point of view. It holds all
connections and all text objects. Up to 8 may be used individually. 
Its number, starting with one, and its name are read as arguments.

          <dl>

          <br><dt><code>Line</code>
          <dd>All lines are identified by their start and endpoints together with their
thickness and some flags. They have to fit a 45 degree scheme.
          <pre class="example">                   bit 2:  set if line was found during a connection search
                   bit 4:  line is a rat-line
                   bit 6:  line has been selected
               </pre>

          <br><dt><code>Polygon</code>
          <dd>used to fill a larger area with <code>copper</code>. The coordinates specify the
corners. The flags are:
          <pre class="example">                   bit 2:  set if polygon was found during a connection search
                   bit 4:  polygon is a 1.5 style polygon that automatically clears pins
                   bit 6:  polygon has been selected
               </pre>

          <br><dt><code>Text</code>
          <dd>You may use text objects to add information to your board. An example would
be naming a connector or marking pin one of it. The position marks the
lower left corner of the string which is also a fix-point for rotations. 
Text directions are independent to those of lines. They are counted from
zero to three with a meaning of zero to 270 degree rotations counter-clockwise. 
The scaling value is a positive integer which determines a zoom factor in
percent.
          <pre class="example">                   bit 6:  the text has been selected
                   bit 7:  the text is on the solder (back) side of the board
                   bit 10: the text is on the silkscreen layer
               </pre>

     </dl>

   </dl>

   </body></html>