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: <a name="Layout%20File">Layout File</a>,
Next: <a rel="next" accesskey="n" href="Element-File.html#Element%20File">Element File</a>,
Previous: <a rel="previous" accesskey="p" href="Basic-Types.html#Basic%20Types">Basic Types</a>,
Up: <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>
|