diff --git a/cad/pcb/Makefile b/cad/pcb/Makefile index 651aec40456c..31a10a308be6 100644 --- a/cad/pcb/Makefile +++ b/cad/pcb/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.6 2000/08/08 07:39:24 rh Exp $ +# $NetBSD: Makefile,v 1.7 2000/08/31 14:55:29 dmcmahill Exp $ # FreeBSD Id: Makefile,v 1.19 1998/10/31 18:05:31 jseger Exp # @@ -9,12 +9,20 @@ MASTER_SITES= ftp://ftp.linuxppc.org/pub/linuxppc/users/harry/PCB/ \ EXTRACT_SUFX= .tgz MAINTAINER= packages@netbsd.org +HOMEPAGE= http://bach.ece.jhu.edu/~haceaton/pcb/ DEPENDS+= m4-1.4:../../devel/m4 -.if make(install-run-depends) -DEPENDS+= teTeX>=1.0.7:../../print/teTeX -.endif USE_IMAKE= yes +INFO_FILES= pcb.info + +post-install: + ${INSTALL_MAN_DIR} ${PREFIX}/share/doc/pcb/ + ${INSTALL_MAN} ${FILESDIR}/index.html ${PREFIX}/share/doc/pcb/ + ${INSTALL_MAN} ${FILESDIR}/pcb.html ${PREFIX}/share/doc/pcb/ + ${INSTALL_MAN} ${FILESDIR}/pcb.info ${PREFIX}/info/ + ${INSTALL_MAN} ${FILESDIR}/pcb.ps ${PREFIX}/share/doc/pcb/ + ${INSTALL_MAN} ${FILESDIR}/refcard.ps ${PREFIX}/share/doc/pcb/ + .include "../../mk/bsd.pkg.mk" diff --git a/cad/pcb/files/index.html b/cad/pcb/files/index.html new file mode 100644 index 000000000000..c8d0d6e25c20 --- /dev/null +++ b/cad/pcb/files/index.html @@ -0,0 +1,109 @@ + + + + +Pcb 1.6.3 - Table of Contents + + +

Pcb

+

an interactive

+

printed circuit board

+

layout system for X11

+
Thomas Nau
+

+


+

+


+This document was generated on 31 August 2000 using +texi2html 1.56k. + + diff --git a/cad/pcb/files/patch-sum b/cad/pcb/files/patch-sum index aea420901631..ef6bcaec5395 100644 --- a/cad/pcb/files/patch-sum +++ b/cad/pcb/files/patch-sum @@ -1,4 +1,5 @@ -$NetBSD: patch-sum,v 1.1 1999/07/09 13:50:21 agc Exp $ +$NetBSD: patch-sum,v 1.2 2000/08/31 14:55:31 dmcmahill Exp $ MD5 (patch-aa) = 3b394845186c2f0cec9bb03f70c20eee MD5 (patch-ab) = 6953bf71ba2952d783b7f2294b2aa704 +MD5 (patch-ac) = 6e33a104c5ac7ad2453a5575edc6c207 diff --git a/cad/pcb/files/pcb.html b/cad/pcb/files/pcb.html new file mode 100644 index 000000000000..2a0e02218f1c --- /dev/null +++ b/cad/pcb/files/pcb.html @@ -0,0 +1,5715 @@ + + + + +Pcb 1.6.3 + + +

Pcb

+

an interactive

+

printed circuit board

+

layout system for X11

+
Thomas Nau
+

+


+ + +

+ + + +

Copying

+

+Copyright (C) 1994,1995,1996,1997 Thomas Nau + + +

+This program is free software; you may redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + + +

+This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANT-ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + + + + +

History

+

+ +Pcb is a handy tool for laying out printed circuit +boards. +It was first written for an Atari ST in 1990 and ported to UNIX and +X11 in 1994. +I never had the intention to create another professional layout system, +but to write a tool which supports people like you who do some +home-developing of hardware. For this reason it has no auto-router nor +auto-placement code. + + +

+The second release 1.2 included menus for the first time. This made +PCB easier to use and thus a more important tool. + + +

+Release 1.3 introduced undo for highly-destructive commands, +more straightforward action handling and scalable fonts. Layer-groups +were introduced to group signal-layers together. + + +

+Release 1.4 provided support for add-on device drivers. +Two layers (the solder and the component side) +were added to support SMD elements. The handling of libraries +was also improved in 1.4.1. Support for additional devices like +GERBER plotters started in 1.4.4. The undo feature was expanded +and the redo-feature added in 1.4.5. + + +

+Release 1.5 provides support for rats-nest generation from simple net +lists. It also allows for automatic clearances around pins that pierce +a polygon. A variety of other enhancments including a Gerber RS274X +driver and NC drill file generation have also been added. +harry eaton (haceaton@aplcomm.jhuapl.edu) +was responsible for most of the changes found in this release. + + +

+Release 1.6 provides automatic screen updates of changed regions. +This should elliminate most of the need for the redraw (r) key. +Also some changes to what order items under the cursor are selected +were made for better consistancy - it is no longer possible to +accidentally move a line or line point that is completely obscured +by a polygon laying over top of it. Larger objects on the upper +most layers can be selected ahead of smaller objects on lower layers. +These changes make operations more intuitive. A new mode of line +creation was added that creates two line on 45 degree angles +with a single click. The actual outline of the prospective line(s) are +now shown during line creation. An arc creation mode was added. +Drawn arcs are quarter circles and can be useful for high frequency +controlled impedance lines. (You can have eighth circle arc if the +source is compiled with -DARC45, but be aware that the ends of such +arcs can never intersect a grid point). Two new flags for pins and +vias were created - one indicates that the pin or via is purely a +drill hole and has no copper annulus. You can only toggle this flag +for vias - for elements, it must be an integral part of the element +definition. The other flag controls whether the pad will be round +or octagonal. There is also now a feature for converting the contents +of a buffer into an element. Vias become the pins (or mounting holes), +lines and arcs on the solder layer become silkscreen, and lines on the +component layer become the pads. Action commands entered via the colon +command entry are no longer proceeded with "a ", just type the command +directly. Several bugs have also been fixed. New +ones were probably introduced since extensive changes were made. +harry eaton was responsible for these changes. + + +

+Release 1.6.1 adds the ability to make groups of action commands bound to +a single X11 event to be undone by a single undo. Also a simple design rule +checker was added - it checks for minimum spacing and overlap rules. Plus +many fixes for bugs introduced with the many changes of 1.6 +harry is responsible for these changes too. + + +

+Special thanks goes to: + +

+Bernhard Daeubler (Bernhard.Daeubler@physik.uni-ulm.de)
+Harald Daeubler (Harald.Daeubler@physik.uni-ulm.de)
+Roland Merk (merk@faw.uni-ulm.de)
+Erland Unruh (Erland.Unruh@malmo.trab.se)
+Albert John FitzPatrick III (ajf_nylorac@acm.org)
+Boerge Strand (borges@ifi.uio.no)
+harry eaton (haceaton@aplcomm.jhuapl.edu)
+Andre M. Hedrick (hedrick@Astro.Dyer.Vanderbilt.Edu)
+
+ +

+who did most of the alpha and beta testing, helped to port PCB to +several operating systems and platforms and corrected several typos in the +manuals. In addition to these, many others donated time for bug-fixing and +other important work. Some of them can be identified in the source code +files. Thanks to all of them. + + +

+ + + +

Introduction

+

+Each layout consists of several, mostly independent, objects. This chapter +gives an overview of the object types and their relationship to each other. +For a complete description of how to use Pcb, refer to +section Getting Started. +The layout is generated on-screen on a grid that has its origin in the +upper left corner of the screen. +The x coordinate increases to the right, y increases down to the bottom. +All distances and sizes in Pcb are measured in mils (0.001 inch). +One unit on the display grid is one mil in distance on the board. +The sections in this chapter are sorted by the +order of appearance of the objects within a layout file. + + + +

+ +

+ + + + +

Symbols

+

+The top object is the layout itself. It uses a set of symbols +that resides at the first logical level. Each symbol is uniquely identified +by a seven bit ASCII code. All layout objects share the same set of +symbols. These symbols are used to form text objects on the silkscreen +and copper layers. Undefined symbols are drawn as filled rectangles. + + +

+Every font file is preprocessed by a user-defined command when it is loaded. +For details see `fontCommand', section Non-Standard X11 Application Resources. + + +

+ + + +

Vias

+

+Vias are identical to the pins used by elements except that they can be added +or removed individually. +The purpose of vias is to provide connections between different layers. +Don't use vias for adding elements to the layout, even if that seems +easier than creating a new element. +Vias are useful for defining arbitrary drill points such as +those used for mounting a board. +You can assign a name to a via even though you probably won't ever want to. +Vias reside at the first logical level; therefore, each +via exists on all layers. (i.e. +blind vias are not supported) + + +

+ + + + +

Elements

+

+Elements represent the components on a board. +Elements are loaded from ASCII coded files in a +similar manner to the layout file itself. +They are composed of lines and arcs on the silk-screen +layer (used to define the package outline) , pins +(or pads for SMD) and three labels that define the +description, the element's layout-name (which also +appears on the silk- screen layer) and its value. +Element pins are contained on the first logical level +and so reside on all layers. +A mark is used to position the element with +respect to the cursor cross-hair during pasting. +SMD elements use pads instead of pins. +Pads are handled similarly to lines on a layer but they must be oriented +either vertically or horizontally. +Pads can have either rounded or square ends. +All parts of an element are treated as one unit. +It is not possible to delete a single pin or break +an element into pieces on the layout. +You can resize separate pieces of an element, +but doing so is usually a bad idea. + + +

+Elements are supported by several special layers: silk, pins/pads and +far-side. The silk layer shows the package outline and +also holds legend text and element names. The pins/pads layer is used to toggle +whether the element's pins and pads are displayed. The far-side layer controls visibility +of objects (silkscreen and pads) that are on the far (i.e. not currently viewed) side +of the board. + + +

+Every element file is preprocessed by a user-defined command when the file is read. +For details see `elementCommand', section Non-Standard X11 Application Resources. m4, the default +value of `elementCommand', allows you to create libraries for +package definitions that are shared by all elements. +The element libraries distributed with Pcb expect m4 or an +equivalent to be the elementCommand. + + +

+Pcb can create a list of +all connections from one (or all) elements to the others or a list of +unconnected pins. +It can also verify the layout connections against a netlist file. +The element's `layout-name' is the name used to identify an element +in a netlist file. +The pin numbering for an element is defined by unique strings assigned to +each pin. In addition to the "pin number" string, each pin has a "name" +which describes its function. Previously element pin number was established +by the order of appearance of the pin definitions in the layout or element +file. Since the "number" strings for each pin are a new feature, if they are +absent then the numbering is again established by the order of pin appearance +in the file. +In other words, the first pin appearing in the file is pin one, the +next pin is pin two and so on. +Usually the names assigned to pins are simply numbers, but they don't +have to be. It is only necessary that the "number" string for the pin +matches exactly the "number" string in the netlist file. +Be aware that a few of the library parts may still be incorrectly +implemented regarding pin-numbering. All of the DIL (Dual- +Inline-Pins) parts are correct and most of the others are too, +but you should verify the pin numbering +of any non-DIL part (use the Report Menu to see what Pcb thinks a pin's +number is) before using the rats nest feature with a library part. Hopefully sometime +soon someone will volunteer to cross-check all of the element libraries and make +fixes available as necessary. +Pcb can also check a layout to see that it meets minimum spacing +and overlap rules. + + +

+You can make your own quick-and-dirty element definitions graphically now. +Simply draw vias for the pins +and lines and arcs on a solder layer for the silkscreen +outline. You should name each via with the pin number. +If you want to create a SMD device, draw lines for the pads on a +component side layer (You must draw these in pin number order since lines can't +be named). They must be +either horizontal or vertical or they will not be recognized as pads. Once +you are happy with the geometry, select everything that is to become part of +the element, then choose "cut to buffer" from the menu. Now select "convert +buffer to element" from the menu. Viola'! Afterwards you can make pin one +square (or pads) if you like, and give the element its various names. Note that the +element mark corresponds to the cut position when everything was put into the +buffer. If the vias are not named, then the pin numbering will correspond to the +order in which the vias were placed. + + +

+ + + +

Layers

+

+Every layout consists of several layers that can be used independently +or treated as a group. +Layer groups can be used to logically separate (and color-code) +different traces (e.g. power and signal); however, all +layers within a group reside on the same physical +copper layer of a board, so using different layers within the same +group won't provide electrical separation where they touch or overlap. +For details, see `layerGroups', section Non-Standard X11 Application Resources. +Each layer is drawn in a color defined in the resource file (for +details see `layerColor', section Non-Standard X11 Application Resources) and identified by a name +that you can change. +Layers are really just containers for line, polygon, and text objects. The +component and solder layers contain SMD elements as well, but the +file structure doesn't reflect that fact directly. Each layer group +represents a physical layer on the printed circuit board. If you want to make +a four layer board, you'll need to have four layer groups. +Connections between layer groups are established only through element pins and vias. +The relationship between a specific layer and the board itself is configureable from +the `Edit layer groups' option in the `Objects' menu. +The layer groups corresponding to the physical layers component-side +and solder-side are always defined, and you must map at least one +logical layer to each. +Of course, you are not obligated to put tracks on either of them. +SMD-elements always reside on either the component-side or the solder-side +layer group. +You can swap which side of the board you are viewing by pressing +<Key>Tab. +You can decide which layer group will be the solder side and which will be +the component side. +The layers groups just have a name or number associated with them - where +they are sandwiched in the board is left to the manufacturing processes. + + +

+ + + +

Lines

+

+Lines are used to draw tracks on the pc board. +When in the line mode, each <Btn1> +press establishes one end of a line. +Once the second point is defined, the line is drawn +and a new line started where the first one ended. +You can abondon the new starting point in favor +of another by pressing Ctrl<Btn1>. +The undo function (<Key>u) will take you back +point by point if you use it while in the line mode. +New lines can be restricted to 45 degree angles if desired. You can toggle this +restriction on and off while creating lines by pressing <Key>. (that is the +period key). If the 45 degree restriction is turned on, then the <Key>/ +can be used to cylce through three different modes of 45 degree line creation. +One mode just creates a single line forced to the nearest 45 degree vector. The next +mode creates two lines from the start to end points such that the first line leaves the +start point at a 90 degree vector, and the second line enters the end point on a 45 +degree vector. The next mode creates two lines such that the first line leaves the +start point on a 45 degree vector and arrives at the end point on a 90 degree vector. +You can temporarily swap between the last two modes by holding the shift key down. +It is simple to edit a line type object by breaking it into pieces (insert point mode), +moving an end point (or the whole line) (<Btn2Down><drag><Btn2Up>), +or changing the layer it resides on (<Key>m moves the line under the pointer +to the active layer). +In the case when two line segments meet at exactly the same +point you can delete the intermediate point, otherwise the delete mode removes an entire line. +Feel free to experiment +since Pcb will allow you to undo anything that materially affects your work. +If you switch active layers in the midst of placing lines a via will automatically be +placed, when necessary, in order to continue the connection. + + +

+ + + +

Arcs

+

+With version 1.6 it is possible to draw copper arcs. The arcs are restricted to +be quarter circles. This means they always bend a right angle. They are very similar +to lines otherwise. They are created on the current layer and have the same thickness +that new lines will have. The various clicks for creating lines work pretty much the +same way for creating arcs. The start point for the arc is at the first <Btn1> +position. In order to make the arc curve in the direction desired, drag the mouse along +the tangent line from the starting position towards the end position. If the grid is +too coarse, it may not be possible to distinguish whether you've moved over then up, +or up then over, so if you can't seem to make the arc go the direction you want, you +should decrease the grid spacing. Alternatively you could drawn the wrong arc, then +rotate and move it where you want. Like the line tool, after an arc is drawn a new +starting point is established at the end point. Whenever a start point is established +by either the line or arc tools it will be retained if you switch directly between the +tools (e.g. <Key>F2 for Lines, <Key>F8 for Arcs. Of course connection +searches, undo and all the other features you'd expect work with arcs now. + + +

+ + + +

Polygons

+

+Sometimes it's useful to fill large areas with solid copper. +The way to do this is with polygons. +Polygons can be created in either the polygon mode or the rectangle mode. +In the polygon mode, you'll have to define each corner of the polygon +with a mouse click (<Btn1>). When the last point is clicked +exactly on top of the starting point, the polygon is finished. +Since this can be hard to do, the Shift<Key>p will enter the +final point for you, closing the polygon. +If the 45 degree angle restriction is turned on +and you try to close the polygon when it is not possible, you'll get a +warning instead. If you haven't finished entering a polygon, but want to +undo one (or more) of the points that you've already defined, use the +undo command (<Key>u). +With the rectangle tool, defining +the two opposite corners is sufficient, but of course the resulting +polygon is a rectangle. +Like lines, a polygon can by edited by deleting, inserting and moving the points +that define it. +Pcb is capable of handling complex polygons, but +using a number of simpler ones improves performance of the connection tracing code. + + +

+A new feature in version 1.5 of Pcb automatically creates clearance +regions around pins and vias that pierce a polygon. This means that they +aren't electrically connected to the polygon unless you add "thermals" +to cross the clearance region. +Thermals can be added and removed by selecting the thermal mode and clicking +<Btn1> on the pin or via. +Remember that this only creates connections to the polygon on the active layer. +The great advantage to this new polygon behavior is that simple or complex ground +and/or power planes can be easily made with polygons and seen on the screen. +If you don't want this auto-clearance behavior, or you load a layout created by +an earlier version of Pcb, the old behavior +(shorts to all piercing pins and vias) is available. A `ChangeSize' +operation (<Key>s) toggles a polygon between the new and old polygon/pin +behavior. + + +

+ + + + +

Text

+

+Text objects should be used to label a layout or to put additional +information on the board, but not to identify elements because elements +have their own labels. +Text is always horizontal when first created, but the +rotate mode can align it along 0, 90, 180 and 270 degree angles. +Text can be moved from any layer to the silk-screen layer with a +command in the `selection menu'. +Text that is moved to the silk-screen layer will appear on the +solder-side silk-screen if it originating on a solder-side layer. +Otherwise moving it to the silk-screen layer will put it on the +component-side silk-screen. +To move text back to a copper layer from +the silk-screen, use the `MoveToCurrentLayer' (<Key>m) command. +Text on the far side of the board will automatically appear mirror-imaged. + + +

+TEXT OBJECTS ON A COPPER LAYER CREATE COPPER LINES BUT THEY ARE NOT SCANNED FOR +CONNECTIONS OR TESTED FOR CREATING SHORTS VS. THE NETLIST. NEITHER ARE TEXT OBJECTS TESTED AGAINST ANY DESIGN RULES. + + +

+ + + +

Getting Started

+

+The goal of this chapter is to give you enough information to learn how +Pcb works and how to develop your layouts to make the best use of Pcb's +features. All event translations (i.e. the buttons and keys you +press) refer to the default application resource file shipped with Pcb. +There is probably no need to change them unless your window +manager uses some of the button events itself; however, if you want +to customize the behavior of Pcb then changing the resource file +is usually the best way to do it. + + +

+Get yourself a printout of this chapter and User Commands, if you +haven't already done so, and follow the examples. +An example layout may be found in `example/68HC11'. +An example illustrating some version 1.5 features is found in +`example/LED' along with its corresponding netlist file `example/LED.NET'. + + +

+Start Pcb (the actual command will use all lower-case letters) +without any additional options. +If you get the error message: + + + +

+    can't find default font-symbol-file 'default_font'
+
+ +

+then the font searchpath or filename in the application resource +file is wrong. Be sure that your m4 program supports searchpaths. +If not, get GNU m4. +For other messages, see section Troubleshooting. +Another quick-start is provided by pcbtest.sh in the `src' +directory. + + + +

+ + + +

The Application Window

+

+The main window consists of five areas: +the menu at the top, the control panel in the upper left corner, the mode buttons +located below the control panel, the drawing area to the right of these, and the +status line at the bottom of the window. + + + +

+ +

+ + + + + +

The Status-line and Input-field

+

+The status-line is located at the bottom edge of the main window. +During normal operation the status information is visible there. +When a selected menu operation requires an additional button click, the +status-line is replaced by a message telling you to position the cursor +and click. +When a text input is required, the status-line is replaced by the +Input-field which has a prompt for the typed input. + + +

+The status-line shows, from left to right, the side of the board that you +are viewing (<Key>Tab changes this), if an absolute +(abs) or relative (rel) grid is used, if new lines are restricted to 45 degrees, +which type of 45 degree line mode is active, whether rubberband move and +rotate mode is on (R), the current grid values, and the zoom factor. +This information is followed by the line-width, via-size +and drilling hole in mil, text scaling, the active buffer number and the +name of the layout. An asterisk appearing at the left edge indicates the +layout has been modified since the last save. +Note that the name of the layout is not the same +thing as the filename of the layout. + + +

+The input-field pops up (temporarily replacing the status-line) whenever user input +is required. Two keys are bound to the input field: <Key>Escape +aborts the input, <Key>Return finishes it. + + +

+The present cursor position is displayed in the upper right corner of the window. +Normally this position is an absolute coordinate, but with +version 1.5 of Pcb you can anchor a marker at +the current cursor location by pressing Ctrl<Key>m then the +display will read both the absolute cursor position as well as the difference +between it and the marker. Pressing Ctrl<Key>m again turns the marker off. + + +

+ + + + + + +

The Control Panel

+

+The control panel, located at the left side of the window, is used to turn on +and off the display of layer groups and to select the active drawing layer. +If a layer hasn't been named, the label "(unknown)" is used as the defualt. + + +

+The upper control box is used to switch layers on and off. Click +<Btn1Down> on one or more of them. Each click toggles the setting. +The currently active layer can't be switched off. +The layout is refreshed when the pointer reenters the drawing area. This +prevents excessive redrawing when the visibility of several layers is changed. +When the layers are grouped, clicking on these fields will toggle +the visibility of all layers in the same group. This is a good idea because +layers in the same group reside on the same physical layer of +the actual board. +Use the `Edit layer groups' option in the `Objects' menu to +change the layer groupings. +Grouping layers is only useful for helping you to color-code +signals in your layout. Note that grouping layers actually reduces the number +of different physical layers available for your board, thus to make an eight +layer board, you cannot group any layers. + + +

+far side turns on and off the visibility of elements +(including SMD pads) on the opposite +board side, as well as silk screening on that side. It does not automatically +hide the x-ray view of the other copper layers, these must be turned off +separately if desired. Use the tab key to view the entire board from the other +side. To see a view of what the back side of the board will actually look like, +make the solder layer the active layer then press tab until the status +line says "solder" on the right, then turn off the visibility of all other layers +except pins/pads, vias, and silk. + + +

+The lower control menu, named active, is used to change the active +drawing layer. <Btn1Down> pops up a menu to select a one. +Each entry is labeled with the layer's name and drawn in its color. +The new drawing layer is automatically made visible. +Try changing the active layer's name to ABC by selecting +`set name of layer' from the `File' menu. +Changing the active layer also is available with <Key>1..8. + + +

+ + + + +

The Mode Selectors

+

+The mode selector buttons reside below the control panel. +They are used to select the operation mode of Pcb. A mode can be +thought of as a tool that gets used when <Btn1> is pressed. +Each mode causes the cursor to take on a unique shape that identifies the tool. +The buttons themselves are icons that illustrate their function. +The drawing modes can also be selected from the keyboard: + +

+    <Key>Escape   reset mode
+    <Key>F1       via-mode
+    <Key>F2       line-mode
+    <Key>F3       pastebuffer-mode
+    <Key>F4       rectangle-mode
+    <Key>F5       text-mode
+    <Key>F6       polygon-mode
+    <Key>Insert   insert-point-mode
+    <Key>F7       thermal-mode
+    <Key>F8       arc-mode
+
+ +

+The <Key>Space cycles through all of the modes in the +mode button palette. + + +

+Reset-mode is really no mode, and <Btn1> has no effect with +this setting. +Some of the modes are very simple, such as the via-mode. Clicking +<Btn1> while in this mode creates a via at the cross-hair position. +The pastebuffer-mode is similar. With this mode, <Btn1> copies +the contents of the active buffer to the layout, but only +those parts that reside on visible layers are copied. +The rotate-mode allows you to rotate elements and text objects +90 degrees counter-clockwise with each click. +The line-mode is explained in detail in section Lines. +The arc-mode is explained in detainl in section Arcs. +Rectangle-mode, polygon-mode and thermal-mode are explained in detail in +section Polygons. +Remember that the thermal-mode will only create and destroy thermals +to polygons on the active layer. + + +

+The insert-point-mode is an editing tool that allows you to add +points into lines or polygons. With version 1.5 of Pcb, the +insert-point-mode enforces the 45 degree line +rule. You can force only the shorter line segment to 45 +degrees by holding the shift key down while inserting the point. +The delete-mode deletes the smallest object beneath the cursor with each +<Btn1> click. +If you use click at an end-point +that two lines have in common, it will replace the two lines with a single line +spanning the two remaining points. This can be used to delete an "inserted" +point in a line, restoring the previous line. + + +

+ + + +

Drawing Area

+

+The drawing area is made from a viewport widget that also includes two +scrollbars. The cursor changes shape depending +on the current operation mode when the pointer is moved into the drawing area. +A crosshair follows the X11 pointer with respect to the grid setting. +Move around and watch the cursor position displayed in the upper right of +the window. +Now select a new grid from the Display menu. +The new value is updated in the statusline. +Now move again and watch the difference. A different way to change the grid is +Shift<Key>g to decrease or <Key>g to increase +it. The grid setting is saved along with the data when you save a pcb layout. +For homemade layouts a value around 50 is a good setting. +The cursor also may be moved with the cursor keys or, for larger +distances, by pressing the shift modifier together with a cursor key. + + +

+ + + + +

Menu

+

+The menus are located at the top of the drawing area. Most, but not all, +of their functions are also available from the keyboard. +Some of the entries such as center require a certain cursor position. +In this case a statusline will popup at the bottom with wording similar to +the following: + +

+    move pointer to the appropriate screen position and press a button
+
+ +

+Any mouse button will do the job, whereas any key except the cursor keys +will cancel the operation. For details see section Actions. + + +

+ +
`About' +
+ + +There is no menu hiding behind this button, but a small information box will +pop up. + + +
`File' +
+This menu offers a choice of loading, saving and printing data, saving +connection information to a file or quitting the application. +You also may change the layout's or the active layer's name. Selecting +print layout pops up a printer control dialog which is, hopefully, +self explaining. This box contains a panner widget (only X11R5 and later) +which simplifies adjusting the offsets. With earlier releases the printout +will always appear in the upper left corner with respect to the media margins. + +A selection of several device drivers is available from the printer control +dialog. Presently PostScript, encapsulated PostScript, +and GerberX are supported. GerberD support may be forthcoming. +It requires a rastering engine that pcb presently lacks. + + + + + + + +
`Display' +
+The display menu supports the most needed functions related to +screen output. The entries are used to change the grid to some popular +values, the zoom factor, the displayed element name and also are used +to center or refresh the output. +You also may switch grid-displaying on or off and select between +absolute grid (origin at (0,0)) or relative grid (origin at the position where +the grid has been changed). The relative grid position is now +established at the actual pointer position, NOT necessarily the same +as the crosshair position. This allows you to shift the grid without +changing the grid spacing. I recommend that you zoom in as close as +possible before setting a relative grid so that you're sure the grid +lines fall where you want. +The clipping to 45-degree lines is selected in this menu, as well as +enabling rubberband mode (see description of Mode). + + +
`Sizes' +
+This menu allows you to select a group of line thickness, via diameter and via drill +size (collectively called a "routing style") to be coppied to the "active" sizes. +You can also change the names given to these styles and adjust their values from +this menu. You can also edit the "active" sizes (the initial size of new vias, +drilling holes, lines, text-objects and the current maximum size of the layout) +from this menu. + + + + +
`Objects' +
+Displaying the pinout of an element and changing its names, the one +that is currently selected by the Display menu, as well as +editing a text object is offered by this menu. The latter two selections +require an additional pointer button click at the object's position. +A dialog for changing the layer groupings is also reached from this +menu. + + + + + + +
`Selection' +
+This menu covers most of the operations that work with selected objects. +You may either (un)select all visible objects of a layout or only the ones +which have been found by the last connection scan. The mouse can also +be used to change which things are and are not selected: +toggle the selection of a single object by pressing +<Btn3Down> and releasing without moving the mouse. +Pressing Mod1<Btn3Down>, moving and +releasing the button selects all visible objects inside the +rectangle. Pressing the modifier key Shift too, unselects all +objects in the area. You can delete all selected objects from this +menu, and also move selected text objects to the silk-screen layer. +The other entries change the sizes of visible and selected objects. + + + +
`Buffer' +
+This menu handles pastebuffer related actions. You may select one out of five +(per viewing side) buffers to use, rotate or clear its contents and paste +it to the layout. You can also gather objects in the buffer into an element definition +from this menu. +Note: only visible objects are pasted to the layout. + + +
`Connections' +
+The entries available through the connections menu button allow the user to find +connections from pins or vias and to manipulate these. +The connection lists may be saved by selecting entries from the +File menu. In many cases it is desireable to use the ratsnest +function to check connections against a netlist file instead of using the +connections menu to generate text connection lists. + + +
`Undo' +
+This menu is a frontend for managing the reversing of operations +such as remove, copy, move, name changes, etc. The number of +operations is unlimited (depending on memory). The list is cleared if +new layout data is loaded or by selecting the appropriate entry from +this menu. The inverse operation, redo, is also available. + + +
`Report' +
+This menu allows you to generate a dialog that summerizes information +about an object such as sizes and coordinates. You can also get a report +about all of the drills that are used on the board. + +
+ +

+ + + + +

Log Window

+

+This optional window is used to display all kind of messages including +the ones written to stderr by external commands. The main advantage is +that its contents are saved in a scrolling list until the +program exits. Disabling this feature by setting the resource +useLogWindow to false will generate popup windows to display +messages. The stderr of external commands will appear on Pcbs +stderr which normally is the parent shell. I suggest you iconify +the window after startup for example by setting *log.iconic to +true. If raiseLogWindow is set true, +the window will deiconify and raise itself whenever new messages are to be +displayed. + + +

+ + + +

Library Window

+

+First appearing in 1.4.1 the library window is one of the best new features +in my opinion. It simplifies loading circuits quiet a lot just by selecting +the appropriate type from the menu at the top. A circuit is then selected +by simply double-clicking on the text line. For details on libraries +check-out section Library File Format and section Library Contents File Format. + + +

+ + + + + + +

Drawing and Removing Basic Objects

+

+There are several ways of creating new objects: you may draw them yourself, +you may copy an existing object or you may load an element from a file or +library. Creating new objects is normally related to a special +mode depending on the object type. +The notation of key and button events is the same as described in the +X11 Intrinsics manual. + + +

+The operation mode may be selected by one of the mode selectors in the bottom +left corner, by one of the function keys listed earlier in this chapter, +or by pressing the space bar to cycle through the modes. +<Btn1Down> sends a notify request to the application which +responds by creating or changing the appropriate object or at least takes +the first step to do so. Switching to a mode causes the cursor to take +on a unique shape and also causes the cooresponding +mode selector button to be drawn with thick lines. You can use either cue +to see which mode is currently selected. + + +

+Removing objects is possible using <Key>BackSpace (or <Key>Delete +on some machines) +which deletes the object at the cursor location. If more than one object +is located at the same position, the smallest matching type will be chosen. +If two or more of the same type are the smallest at the position, then the +newest one will be deleted. +You also may change to remove-mode and click <Btn1Down> +at the location of the objects which are to be removed. If you "remove" +the end-point where two lines connect, it will remove the point of +connection leaving a single line that spans the far end points. + + +

+Rotating works in a similar fashion. Change the mode and press +<Btn1Down> at the object's location. Remember only text, +elements and arcs can be rotated. (Anything including groups of objects +may be rotated inside a buffer using the rotate buffer menu option.) + + +

+Insert mode provides the capability of inserting new points into existing +polygons or lines. The 45 degree line clipping is now enforced when selected. +Press and hold the shift key while positioning the new point to only clip +the line segment to the nearer of the two existing points to 45 degrees. +You can also toggle the 45-degree clipping in the middle of a point +insertion by pressing the <Key>. +If the shift key is not depressed and the 45 degree line clipping mode +is on, both new line segments must be on 45 degree angles - greatly +restricting where the new point may be placed. In some cases this can cause +confusion as to whether an insertion has been started since the two new +lines may be forced to lie parallel on top of the original line until the +pointer is moved far from the end points. + + +

+Removing objects, changing their size or moving them only applies to objects +that are visible when the command is executed. + + + +

+ +

+ + + + + + +There are several keystrokes and button events refering to an object +without identifying its type. Here's a list of them: + + +

+<Btn1Down> creates (or deletes) an object depending on the +current mode. + + +

+<Key>BackSpace or <Key>Delete removes the visible +object at the cursor location. When more than one object exists at the +location, the order of removal is: via, line, text, polygon and +element. The drawn layer order also affects the search - whatever is +top - most (except elements) is affected before lower items. Basically +all this means that what is removed is probably just what you expect. +If for some reason it isn't, undo and try again. +Only one object is removed for each keystroke. If two or more +of the same type match, the newest one is removed. + + +

+Use <Key>s and Shift<Key>s to change the size (width) +of lines, arcs, text objects, pins, pads and vias, or to toggle the style +of polygons (whether pins and vias automatically have clearances). + + +

+<Key>n changes the name of pins, pads, vias, the +string of a text object, or the currently displayed label of an element. + + +

+<Key>m moves the line, arc, or polygon under the crosshair to the +active layer if it wasn't on that layer already. + + +

+<Key>u (undo) recovers from an unlimited number of operations +such as creating, removing, moving, copying, selecting etc. It works like +you'd expect even if you're in the midst of creating something. + + +

+Shift<Key>r restores the last undone operation provided no other +changes have been made since the undo was performed. + + +

+<Key>tab changes the board side you are viewing. + + +

+For a complete list of keystrokes and button events see section Default Translations. + + +

+ + + + +

Lines

+

+To draw new lines you have to be in line-mode. Get there either by +selecting it from the Tool palette or by pressing <Key>F2. +Each successive notify event creates a new line. The +adjustment to 45 degree lines is done automatically if it is selected from the +Display menu. You can toggle the 45 degree mode setting by +pressing the <Key>. (That is the period key). When 45 degree enforcement +is turned on there are three distinct modes of line creation: a single +line on the closest 45 degree vector towards the crosshair (but not necessarily +actually ending at the crosshair), two lines created such that the first leaves +the start point on a 90 degree vector and the second arrives at the crosshair +on a 45 degree vector, and finally two lines created such that the first leaves +the start point on a 45 degree vector and the second arrives at the crosshair +on a 90 degree vector. These last two modes always connect all the way from +the start and end points, and all lines have angles in 45 degree multiples. +The <Key>/ cycles through the three modes. The status line shows a +text icon to indicate which of the modes is active and the lines following +the crosshair motion show the outline of the line(s) that will actually be created. +Press <Key>Escape to leave line-mode. + + +

+<Key>l, Shift<Key>l and the entries in the +Sizes menu change the initial width of new lines. This width is also +displayed in the status line. + + +

+ + + +

Arcs

+

+An Arc is drawn with the arc-tool. Get there either by selecting it +from the Tool palette or by pressing <Key>F8. Press Btn1 to +define the starting point for the arc. Drag the mouse towards the desired +end point along the path you want the arc to follow. The outline of the arc that +will be created is shown on the screen as you move the mouse. Arcs are always +forced to be 90 degrees and have symmetrical length and width ( i.e. they are +a quarter circle). The next Btn1 click creates the arc. It will have +the same width as new lines (displayed in the status line) and appear on the +active layer. The arc leaves the starting point towards the crosshair along +the axis whose distance from the crosshair is largest. Normally this means that +if you drag along the path you want the arc to follow, you'll get what you +want. If the grid is set to the arc radius, then the two distances will be +equal and you won't be able to get all of the possible directions. If this +is thwarting your desires, reduce the grid spacing (!Shift<Key>G) and +try again. + + +

+ + + + + + +

Polygons and Rectangles

+

+A polygon is drawn by defining all of its segments as a series of +consecutive line segments. If the first point matches a new one and if +the number of points is greater than two, then the polygon is closed. +Since matching up with the first point may be difficult, you may use +Shift<Key>p to close the polygon. The Shift<Key>p won't +work if clipping to 45 degree lines is selected +and the final segment cannot match this condition. +I suggest you create simple convex polygons in order to avoid a strong +negative impact on the performance of the connection scanning routines. +The rectangle-mode is just an easy way to generate rectangular polygons. +Polygon-mode also is selected by <Key>F6 whereas +rectangle-mode uses <Key>F4. +Pressing a <Btn1Down> at two locations creates a rectangle by +defining two of its corners. +<Key>Insert brings you to insert-point-mode which lets you +add additional points to an already existing polygon. +Single points may be removed by moving the crosshair to them and selecting +one of the delete actions (remove-mode, BackSpace, or Delete. This only works +if the remaining polygon will still have three or more corners. +Pressing <Key>u or <Key>p while entering a new polygon +brings you back to the previous corner. Removing a point does not +force clipping to 45 degree angles (because it's not generally possible). +Newly created polygons will not connect to pins or vias +that pierce it unless you create a thermal (using the thermal mode) to make +the connection. If the edge of a polygon gets too close to a pin or via that +lies outside of it, a warning will be issued and the pin will be given a +special color. Increasing the distance between them will remove the warning +color. + + + + +

Text

+

+ + + +Pressing <Key>F5 or clicking one of the text selector buttons +changes to text-mode. +Each successive notify event (<Btn1Down>) +pops up the input line at the bottom and queries for a string. +Enter it and press <Key>Return to confirm or +<Key>Escape to abort. +The text object is created with its upper left corner at the current pointer +location. +The initial scaling is changed by <Key>t and +Shift<Key>t or from the Sizes menu. + + +

+Now switch to rotate-mode and press +<Btn1Down> at the text-objects location. Text objects +on the solder side of the layout are automatically mirrored and +flipped so that they are seen correctly when viewing the solder-side. + + +

+Use <Key>n to edit the string. + + +

+TEXT OBJECTS ON COPPER LAYERS CREATE COPPER LINES BUT THEY ARE NOT SCANNED FOR +CONNECTIONS. If they are moved to the silkscreen layer, they +no longer create copper. + + +

+ + + + +

Vias

+

+The initial size of new vias may be changed by <Key>v and +Shift<Key>v or by selecting the appropriate entry from the +Sizes menu. Mod1<Key>v and Mod1 Shift<Key>v do +the same for the drilling hole of the via. +The statusline is updated with the new values. +Creating a via is similar to the other objects. Switch to via-mode +by using either the selector button or <Key>F1 then press +<Key>] or <Btn1Down> to create one. +<Key>n changes the name of a via. If you want to create a mounting +hole for your board, then you can place a via where you want the hole to +be then convert the via into a hole. The conversion is done by pressing +!Ctrl<Key>h with the crosshair over the via. Conceptually it is +still a via, but it has no copper annulus. If you create such a hole in +the middle of two polygons on different layers, it will short the layers. +Theoretically you could arrange for such a hole not to be plated, but a +metal screw inserted in the hole would still risk shorting the layers. +A good rule is to realize that holes in the board really are vias between +the layers and so place them where they won't interfere with connectivity. +You can convert a hole back into a normal via with the same keystroke used +to convery it in the first place. + + +

+ + + + +

Elements

+

+Some of the functions related to elements only work if both the package +layer and the pin layer are switched on. + + +

+Now that you're familiar with many of the basic commands, it is +time to put the first element on the layout. +First of all, you have to load data into the paste buffer. +There are four ways to do this: + +

+   1) load the data from a library
+   2) load the data from a file
+   3) copy data from an already existing element
+   4) convert objects in the buffer into an element
+
+ +

+We don't have any elements on the screen yet nor anything in the +buffer, so we use number one. + + +

+ + +Select lsi from the menu in the library window press +<Btn1Down> twice at the appropriate text-line to get +the MC68030 CPU. +The data is loaded and the mode is switched to pastebuffer-mode. +Each notify event now creates one of these beasts. Leave the mode +by selecting a different one or by <Key>Escape which resets +all modes.. +The crosshair is located at the mark position as defined by +the data file. Rotating the buffer contents is done by selecting +the rotate entry of the Buffer menu or by pressing +Shift<Key>F3. The contents of the buffer +are valid until new data is loaded into it either by a cut-to-buffer +operation, copy-to-buffer operation or by loading a new data file. +There are 5 buffers +available. Switching between them is done by selecting a menu entry or +by Shift<Key>1..5. +Each of the two board sides has its own buffers. + + +

+The release includes all data files for the circuits that are used +by the demo layout. The elements in the LED example are not found in the library, +but you can lift them from the example itself if you want. +If you have problems with the color of the crosshair, change the resource +crosshairColor setting to a different one. + + +

+ + + +Now load a second circuit, the MC68882 FPU for example. +Create the circuit as explained above. You now have two different unnamed +elements. Unnamed means that the layout-name of the element +hasn't been set yet. Selecting description from the Display +menu displays the description string of the two circuits which +are CPU and FPU. The values of the circuits are set to MC68030 and MC68882. +Each of the names of an element may be changed +by <Key>n at the elements location and editing the old name in +the bottom input line. Naming pins and vias is similar to elements. +You can hide the element name so that it won't appear on the board +silkscreen by pressing <key>h with the cursor over the element. +Doing so again un-hides the element name. + + +

+Entering :le and selecting an element data file is +the second way to load circuits. + + +

+The third way to create a new element is to copy an existing one. +Please refer to section Moving and Copying. + + +

+ + + + +The fourth way to create a new element is to convert a buffer's contents +into an element. Here's how it's done: Select the Via-tool from the +Tool pallette. Set the grid spacing to something appropriate for +the element pin spacing. Now create a series of vias where the pins +go. Create them in pin number order. It is often handy to place a reference +point (!Ctrl<Key>m) in the center of the first pin in order to measure +the location of the other pins. Next make a solder-side layer the active +layer from the active-layer popup menu. Now draw the outline of +the element using lines and arcs. When you're done, select everything that +makes up the element with a box selection (<Btn3Down> drag, +<Btn3Up>). Now select "cut selection to buffer" from the Buffer +menu. Position the cursor over the center of pin 1 and press the left +button to load the data into the buffer. +Finally select "convert buffer to element" from the Buffer menu. +You'll only want to create elements this way if they aren't already in the +library. It's also probably a good idea to do this before starting any of +the other aspects of a layout, but it isn't necessary. + + +

+To display the pinout of a circuit move to it and press Shift<Key>d +or select show pinout from the Objects menu. A new window +pops up and displays the complete pinout of the element. This display can +be difficult to read if the component has been rotated 90 degrees :-( +therefore, the new window will show an un-rotated view so the pin names +are readable. +<Key>d displays the name of one or all pins/pads inside the +drawing area, this is only for display on-screen, it has no effect on any +printing of the layout. + + +

+You also may want to change a pin's or pad's current size by pressing +<Key>s to increase or Shift<Key>s to decrease it. While +this is possible, it is not recommended since care was probably taken +to define the element structure in the first place. You can also change the thickness +of the element's silkscreen outline with the same keys. You can +change whether a pin or SMD pad is rounded or square with the <Key>q. +SMD pads should usually have squared ends. Finally, you can change whether +the non-square pins are round or octagonal with the !Ctrl<Key>o. + + +

+SMD elements and silkscreen objects are drawn in the "invisible object" +color if they are located on the opposite side of the board. + + +

+For information on element connections refer to section Connection Lists. + + +

+ + + + + + +

Pastebuffer

+

+The linestack and element-buffer of former releases have been replaced +by 5 multi-purpose buffers that are selected by +Shift<Key>1..5. The status line shows which buffer is +the active one. +You may load data from a file or layout into them. +Cut-and-paste works too. +If you followed the instructions earlier in this chapter you should +now have several objects on the screen. Move the crosshair to one of them +and press <Btn3Down> to toggle its selection flag. (If you drag the +mouse while the button is down, a box selection will be attempted instead +of toggling the selection.) The object +is redrawn in a different color. You also may want to try +moving the pointer while holding the third button down and +release it on a different location. This selects all objects inside the +rectangle and unselects everything else. If you want to add a box selection +to an existing selection, drag with Mod1<Btn3Down> instead. +Dragging Shift Mod1<Btn3Down> unselects objects in a box. +Now change to pastebuffer-mode and select some operations from the +Buffer menu. Copying objects to the buffer is available as +Mod1<Key>c while cutting them uses Mod1<Key>x as +shortcut. Both clear the buffer before new data is added. +If you use the menu entries, you have to supply a crosshair position by +pressing a mouse button. The objects are attached to the pastebuffer +relative to that crosshair location. +Element data or PCB data may be merged into an existing layout by loading +the datafiles into the pastebuffer. Both operations are available from +the File menu or as user commands. + + + + +

Moving and Copying

+

+ + + + +All objects can be moved including element-names, by +<Btn2Down>, draging the pointer while holding the button down +and releasing it at the new location of the object. If you use +Mod1<Btn2Down> instead, the object is copied. Copying does not work for +element-names of course. You can move all selected objects with +Shift <Btn1Down>. This uses the Pastebuffer, so +it will remove whatever was previously in the Pastebuffer. +Please refer to section Pastebuffer. +If you want to give a small nudge to an object, but you don't think +that the mouse will give you the fine level of control that you want, +you can position the cursor over the object, press <Key>[, +move it with the arrow keys, then press <Key>] when it's at the +desired position. Remember that all movements are forced onto grid coordinates, so +you may want to change the grid spacing first. + + + + +

Loading and Saving

+

+ + + + +After your first experience with Pcb you will probably want to save +your work. :s name passes the data to an external program which +is responsible for saving it. For details see saveCommand in +section Non-Standard X11 Application Resources. +Saving also is available from the File menu, either with or +without supplying a filename. Pcb reuses the last +filename if you do not pass a new one to the save routine. + + +

+To load an existing layout either select load layout data from the +File menu or use :l filename. A file select box pops up if you +don't specify a filename. Merging existing layouts into the new one is +supported either by the File menu or by :m filename. + + +

+ + + + + + +Pcb saves a backup of the current layout depending on the resource +backup. The file is named `/tmp/PCB.%i.backup'. During critical +sections of the program or when data would be lost it is saved as +`/tmp/PCB.%i.save'. +%i is replaced by the process ID. + + +

+ + + + +

Printing

+

+Pcb now has support for device drivers, +PostScript, encapsulated PostScript, +and Gerber X drivers are +available so far. The Gerber X +driver generates a NC drill file for automated drilling. + I recommend the use of GhostScript if you +don't have a PostScript printer for handling the PostScript +output. Printing always generates +a complete set of files for a specified driver. +See the page about +the Print() action for addtional information about the filenames. +The control panel offers a number of options. Most of them are not avilable +for Gerber output because it wouldn't make sense, for example, to scale the gerber output +(you'd get an incorrectly made board!) The options are: + + +

+ +
`device' +
+ + + +The top menu button selects from the available device drivers. + + +
`rotate' +
+Rotate layout 90 degrees counter-clockwise before printing (default). + + +
`mirror' +
+Mirror layout before printing. Use this option depending +on your production line. + + +
`color' +
+Created colored output. All colors will be converted to black if this option +is inactive. + + +
`outline' +
+Add a board outline to the output file. The size is determined by the +maximum boardsize changeable from the sizes menu. The outline appears +on the top and bottom sides of the board, but not on the internal layers. +An outline can be useful for determining where to shear the board from the +panel, but be aware that it creates a copper line. Thus it has the potential +to cause short circuits if you don't leave enough room from your wiring +to the board edge. Use a viewer to see what the output outline looks like +if you want to know what it looks like. + + +
`alignment' +
+Additional alignement targets are added to the output. The distances between +the board outline is set by the resource alignmentDistance. Alignment +targets should only be used if you know for certain that YOU WILL BE USING +THEM YOURSELF. It is extremely unlikely that you will want to have alignment +targets if you send gerber files to a commercial pcb manufacture to be made. + + +
`scaling' +
+It's quite useful to enlarge your printout for checking the layout. +Use the scrollbar to adjust the scaling factor to your needs. + + + +
`media' +
+Select the size of the output media from this menu. The user defined size +may be set by the resource media either from one of the well known +paper sizes or by a X11 geometry specification. +This entry is only available if you use X11R5 or later. +For earlier releases the user defined size or, if not available, A4 +is used. +Well known size are: + +
+	A3
+	A4
+	A5
+	letter
+	tabloid
+	ledger
+	legal
+	executive
+
+ + + +
`offset' +
+Adjust the offsets of the printout by using the panner at the right side +of the dialog box. +This entry is only available if you use X11R5 or later. A zero +offset is used for earlier releases. + + +
`8.3 filenames' +
+Select this button to generate DOS compatible filenames for the output files. +The command input area will disappear if selected. + + +
`commandline' +
+Use this line to enter a command (starts with |) or a filename. +A %f is replaced by the current filename. +The default is set by the resource printCommand. + +
+ +

+The created file includes some labels which are guaranteed to stay unchanged +

+ +
`PCBMIN' +
+identifies the lowest x and y coordinates in mil. + +
`PCBMAX' +
+identifies the highest x and y coordinates in mil. + +
`PCBOFFSET' +
+is set to the x and y offset in mil. + +
`PCBSCALE' +
+is a floating point value which identifies the scaling factor. + +
`PCBSTARTDATA' +
+
`PCBENDDATA' +
+all layout data is included between these two marks. You may use them with an +awk script to produce several printouts on one piece of paper by +duplicating the code and putting some translate commands in front. +Note, the normal PostScript units are 1/72 inch. +
+ +

+ + + + +

Connection Lists

+

+After completing parts of your layout you may want to check if all drawn +connections match the ones you have in mind. This is probably best done +in conjunction with a net-list file: see section Rats Nest. +The following examples give more rudimentary ways to examine +the connections. + +

+    1) create at least two elements and name them
+    2) create some connections between their pins
+    3) optionally add some vias and connections to them
+
+ +

+Now select lookup connection from the Connections menu, +move the cursor to a pin or via and press any mouse button. Pcb +will look for all other pins and/or vias connected to the one you have +selected and display the objects in a different color. +Now try some of the reset options available from the same menu. + + +

+There also is a way to scan all connections of one element. Select +a single element from the menu and press any button at the +element's location. All connections of this element will be saved +to the specified file. +Either the layout name of the element or its canonical name is used to +identify pins depending on the one which is displayed on the screen +(may be changed by Display menu). + + +

+An automatic scan of all elements is initiated by choosing +all elements. It behaves in a similar fashion to scanning a single +element except the resource resetAfterElement +is used to determine if connections should be reset before a new element is +scanned. Doing so will produce very long lists because the power lines are +rescanned for every element. By default the resource is set to false +for this reason. + + +

+To scan for unconnected pins select unused pins from the same +menu. + + +

+ + + +

Selection

+

+Some commands mentioned earlier in this chapter also are able to operate on all +selected and visible objects. +Now go back to the layout and toggle the selection flag of a single one +by <Btn3Down>. Try <Btn3Down>, move the pointer while +holding the button down and release it on a different location. +This selects all objects inside the rectangle and unselects everything else. +Dragging with Mod1<Btn3Down> adds everything in the box to the +existing selection. Dragging Shift <Btn3Down> unselects objects in the +box. + + +

+The entries of the Selection menu are hopefully self-explanatory. +Many of the Action Commands can take various key words that make +them function on all or some of the selected items. + + +

+ + + + + +

Rats Nest

+

+If you have a netlist that corresponds to the layout you are working on, you +can use the rats-nest feature to add rat-lines to the layout. +First you will need to load a netlist file (see :rn, +section User Commands). +<Key>w adds rat-lines on the active layer using the current +line thickness shown in the status line (usually you'll want them to be thin lines). +Only those rat-lines that fill in missing connectivity (since you have +probably routed some connections already) are added. +If the layout is already completely wired, nothing will be added, and you will +get a message that the wiring is complete. + + +

+Rat-lines are lines having the special property that they only connect to pins and +pads at their end points. Rat-lines are drawn on the screen with a stippled pattern +to make them easier to identify since they have special behavior and cannot +remain in a completed layout. +Rat-lines are added in the minimum length straight-line tree pattern +(always ending on pins or pads) that satisfies the missing connectivity in the circuit. +Used in connection with moves and rotates of the elements, they are extremely useful for +deciding where to place elements on the board. The rat-lines will always automatically +rubberband to the elements whether or not the rubberband mode is on. The only way for +you to move them is by moving the parts they connect to. +This is because it is never desireable to have the rat-lines disconnected from +their element pins. Rat-lines will normally criss-cross +all over which gives rise to the name "rats nest" describing a layout connected with +them. If a SMD pad is unreachable on the active layer, a warning will be issued +about it and the rat-line to that pad will not be generated. + + +

+A common way to use rats nests is to place some +elements on the board, add the rat-lines, and then use a series of moves/rotates of the +elements until the rats nest appears to have minimum tangling. You may want to iterate this step +several times. Don't worry if the layout looks messy - as long as you can get a sense for whether +the criss-crossing is better or worse as you move things, you're fine. +After moving some elements arround, you may want to optimize the rats nest <Key>o +so that the lines are drawn between the closest points (this can change once you've moved components). +Adding rat-lines only to selected pads/pins (Shift<Key>w) +is often useful to layout a circuit a little bit at a time. +Sometimes you'll want to delete all the rat-lines (<Key>e) or +selected rat-lines (Shift<Key>e) in order to reduce confusion. +With a little practice you'll be able to achieve a near optimal component placement with +the use of a rats nest. + + +

+Rat-lines are not only used for assisting your element placement, they can also help +you to route traces on the board. +Use the <Key>m to convert a rat-line under the cursor into +a normal line on the active layer. +Inserting a point into a rat-line will also cause the two new lines to be normal lines +on the board. +Another way that you can use rat-lines is to +use the <Key>f with the cursor over a pad or pin. All of the pins and +pads and rat-lines belonging to that net will be highlighted. This is a helpful way to +distinguish one net from the rest of the rats nest. You can then route those tracks, +turn off the highlighting (Shift<Key>f) and repeat the process. This will work even +if the layer that the rat-lines reside on is made invisible - so only the pins and pads +are highlighted. +Be sure to erase the rat-lines (<Key>e erases them all) once you've +duplicated their connectivity by adding your own lines. +When in doubt, the <Key>o will delete only those +rat-lines that are no longer needed. + + +

+If connections exist on the board that are not listed in the netlist when +<Key>w is pressed, warning messages are issued and the affected pins and +pads are drawn in a special warnColor until the next Notify() event. +If the entire layout agrees completely with the netlist, a message informs you that +the layout is complete and no rat-lines will be added (since none are needed). +If the layout is complete, but still has rat-lines then you will be warned +that rat-lines remain. If you get no message at all it's probably because some +elements listed in the net list can't be found and where reported in an earlier +message. +There shouldn't be any rat-lines left in a completed layout, only normal lines. + + +

+The Shift<Key>w is used to add rat-lines to only those missing connections among +the selected pins and pads. This can be used to add rat-lines in an incremental +manner, or to force a rat-line to route between two points that are not the +closest points within the net. Often it is best to add the rats nest in an incremental fashion, laying +out a sub-section of the board before going further. This is easy to accomplish since +new rat-lines are never added where routed connectivity already makes the necessary +connections. + + +

+ + + + + + +

Design Rule Checking

+

+After you've finished laying out a board, you may want to check +to be certain that none of your interconnections are too closely +spaced or too tenuously touching to be reliably fabricated. The design +rule checking (DRC) function does this for you. Use the command ":DRC()" (without +the quotes of course) to invoke the checker. If there are no problem areas, +you'll get a message to that effect. If any problem is encountered, you will get +a message about it and the affected traces will be highlighted. One part of the +tracks of concern will be selected, while the other parts of concern will have the +"FindConnection" highlighting. The screen will automatically be centered in the +middle of the object having the "FindConnection" (Green) highlighting. The middle of +the object is also the coordinates reported to be "near" the problem. The actual trouble +region will be somewhere on the boundary of this object. If the two parts are +from different nets then there is some place where they approach each +other closer than the minimum rule. If the parts are from the same net, then +there is place where they are only barely connected. Find that place and connect +them better. + + +

+After a DRC error is found and corrected you must run the DRC again because +the search for errors is halted as soon as the first problem is found. Unless you've +been extremely careless there should be no more than a few design rule errors +in your layout. The DRC checker does not check for minimum spacing rules to +copper text, so always be very careful when adding copper text to a layout. +The rules for the DRC are specified in the application resource file. The minimum +spacing value (in mils) is given by the Settings.Bloat value. The default +is 7 mils. The minimum touching overlap (in mils) is given by the +Settings.Shrink value. This value defaults to 5 mils. Check with your +fabrication process people to determine the values that are right for you. + + +

+If you want to turn off the highlighting produced by the DRC, perform an +undo (assuming no other changes have been made). To restore the highlighting, +use redo. The redo will restore the highlighting quickly without re-running +the DRC checker. + + +

+ + + + +

User Commands

+

+The entering of user-commands is initiated by the action routine +Command() (the (":") character) and finished by either +<Key>Return +or <Key>Escape to confirm or to abort. These two keybindings +cannot be changed from the resource file. +The triggering event, normally a key press, is ignored. +The input area will replace the bottom statusline. It pops +up when Command() is called. The arguments of the user-commands +are passed to the external commands without modification. +See also, the resource saveInTMP. + + +

+There are simple usage dialogs for each command and one for the +complete set of commands. + + +

+ +
`l [filename]' +
+ + + + +Loads a new datafile (layout) and, if confirmed, overwrites any existing unsaved data. +The filename and the searchpath (filePath) are passed to the +command defined by fileCommand. +If no filename is specified a file select box will popup. + + + + +
`le [filename]' +
+Loads an element description into the paste buffer. +The filename and the searchpath (elementPath) are passed to the +command defined by elementCommand. +If no filename is specified a file select box will popup. + + + + + + +
`m [filename]' +
+Loads an layout file into the paste buffer. +The filename and the searchpath (filePath) are passed to the +command defined by fileCommand. +If no filename is specified a file select box will popup. + + + + +
`q[!]' +
+Quits the program without saving any data (after confirmation). +q! doesn't ask for confirmation, it just quits. + + + + +
`s [filename]' +
+Data and the filename are passed to the command defined by the resource +saveCommand. It must read the layout data from stdin. +If no filename is entered, either the last one is used +again or, if it is not available, a file select box will pop up. + + + + + +
`rn [filename]' +
+Reads in a netlist file. If no filename is given +a file select box will pop up. +The file is read via the command defined by the +RatCommand resource. The command must send its output to stdout. +The netlist received by pcb must have this simple text form: + +netname NAME-PINNUM NAME2-PINNUM2 NAME3-PINNUM3 ... [\] + +where "netname" is the name of the net (currently its value is ignored but +it must be present nonetheless), +NAME is the layout-name given to an element, and PINNUM is the (usually numeric) +pin number of the element that is part of the net (see section Elements +for details on pin numbering). +Spaces or tabs separate the fields. +If the line ends with a "\" the +net continues on the next line and the "\" is treated exactly as if it +were a space. If the NAME ends with a lower-case letter, +all lower-case letters are stripped from end of the NAME to determine the +matching name-on-board name. For example: + +Data U1-3 U2abc-4 FLOP1a-7 Uabc3-A9 + +would specifiy that pin 3 of U1 be connected to pin 4 of U2, to pin 7 of +FLOP1 and to pin A9 of Uabc3. Note that if pin numbers contain alphabetic +characters, they must match the case contained in the "number" string defining the +pin number on the cooresponding element. +It is up to you to name the elements so that their layout-names agrees with the netlist. +Netlists are used for generating rats nest (see section Rats Nest) and for +verifying the board layout (which is also accomplished by the Ratsnest +command. + + + + +
`w[q] [filename]' +
+These commands have been added for the convenience of vi users and +have the same functionality as s combined with q. + + + + +
`actionCommand' +
+Causes the actionCommand to be executed. This allows you to initiate actions +for which no bindings exist in the resource file. It can be used to initiate any +action with whatever arguments you enter. This makes it possible to do things +that otherwise would be extremely tedious. For example, to change the drilling +hole diameter of all vias in the layout to 32 mils, you could select everything using the +selection menu, then type ":ChangeDrillSize(SelectedVias, 32)". (This will +only work provided the via's diameter is sufficiently large to accomodate a 32 mil hole). +Another example might be to set the grid to 1 mil by typing ":SetValue(Grid, 1)". +Note that some actions use the current cursor location, so be sure to place the cursor +where you want before entering the command. This is one of my favorite new +features in 1.5 and can be a powerful tool. Study the section Actions section to +see what actions are available. + +
+ +

+ + + + +

Command-Line Options

+

+There are several resources which may be set or reset in addition to the +standard toolkit command-line options. For a complete list refer to +section Non-Standard X11 Application Resources. + + +

+The synopsis is: + + +

+pcb [-option ...] [-toolkit_option ...] [layout-file] + + +

+or + + +

+pcb -specialoption + + + +

+ + + +

Options

+
+ +
`-alldirections/+alldirections' +
+ + + + + + +Disables or enables line clipping to 45 degree angles. Overwrites the +resource allDirectionLines. + + + + +
`-backup value' +
+Time between two backups in seconds. Passing zero disables the backup feature. +Overwrites the resource backupInterval. + + + + + + +
`-c value' +
+Number of characters per output line. The resource charactersPerLine is +overwritten. + + + + + + +
`-fontfile filename' +
+The default set of symbols (font) for a new layout is read from this file. +All directories as defined by the resource fontPath are scanned +for the file. The scan is only performed if the filename doesn't contain +a directory component. The fontFile resource is changed. + + + + + + + + +
`-lelement command-line' +
+Sets the command to be executed when an element is loaded from a file to the +paste buffer. The command may contain %f and %p to pass the requested filename +and the searchpath to the command. It must write the data to its +standard output. The related resource is elementCommand. + + + + + + + + +
`-lfile command-line' +
+Sets the command to be executed when a new layout is loaded from a file. +The command may contain %f and %p to pass the requested filename +and the searchpath to the command. It must write the data to its +standard output. The related resource is fileCommand. + + + + + + + + + +
`-lfont command-line' +
+Sets the command to be executed when a font is loaded from a file. +The command may contain %f and %p to pass the requested filename +and the searchpath to the command. It must write the data to its +standard output. The related resource is fontCommand. + + + + + +
`-lg layergroups' +
+This option overwrites the resource layerGroups. See its description +for more information. The value is used for new layouts only. + + + + +
`-libname filename' +
+The default filename for the library. Overwrites the resource +libraryFilename. + + + + +
`-libpath path' +
+The default search path for the the library. Overwrites the resource +libraryPath. + + + + + + + +
`-llib command-line' +
+Sets the command to be executed when an element is loaded from the library. +The command may contain %f and %p to pass the requested filename +and the searchpath to the command. %a is replaces by the three arguments +template, value and package. The command must write +the data to its standard output. The related resource is libraryCommand. + + + + + + +
`-llibcont command-line' +
+The command lists the contents of the library. +The command may contain %f and %p to pass the library filename +and the searchpath to the command. Also refer to section Library File Format +and section Library Contents File Format. +The related resource is libraryContentsCommand. + + + + +
`-loggeometry geometry' +
+Determines the geometry of the log window. + + + + + + +
`-pnl value' +
+Restricts the displayed length of the name of a pin in the pinout window to +the passed value. See also, the resource pinoutNameLength. + + + + + +
`-pz value' +
+Sets the zoom factor for the pinout window according to the formula: +scale = 1:(2 power value). The related resource is pinoutZoom. + + + + + + +
`-reset/+reset' +
+If enabled, all connections are reset after each element is scanned. +This feature is only used while scanning connections to all elements. +See also, resetAfterElement. + + + + + +
`-ring/+ring' +
+Overrides the resource ringBellWhenFinished. If enabled, the bell +sounds when connection searching has finished. + + + + +
`-rs string' +
+Overrides the resource routeStyle. The string defines a colon +separated list of route styles. The route styles consist of a +comma separated list of name, line thickness, via diameter, and via drill size. +e.g. "Fat,50,100,40:Skinny,8,35,20:75Ohm,110,110,20" + + + + + + +
`-s/+s' +
+Enables/Disables the saving of the previous commandline. Overrides the +saveLastCommand resource. + + + + + + + + + + +
`-save/+save' +
+See the resource description of saveInTMP for details. + + + + + + + + +
`-sfile command-line' +
+Sets the command to be executed when an layout file is saved. +The command may contain %f which is replaced by the filename. The command +must read its data from the standard input. +The resource saveCommand is overwritten. + + + + + +
`-size <width>x<height>' +
+Overrides the resource size which determines the maximum size +of a layout. + + + + + +
`-v value' +
+Sets the volume of the X speaker. The value is passed to XBell() and +must be in the range -100..100. + +
+ + + +

Special Options

+

+There are some special options available in addition to normal command line +options. Each of these must be the only option specified on a command line. +The available special options are: + + +

+ +
`-copyright' +
+ + + +Prints out the copyright notice and terminates. + + + + +
`-version' +
+Prints out the version ID and terminates. + + +
`-help' +
+Prints out the usage message and terminates. + +
+ +

+ + + +

X11 Interface

+

+This chapter gives an overview about the additional X11 resources which +are defined by Pcb as well as the defined action routines. + + + +

+ +

+ + + + +

Non-Standard X11 Application Resources

+

+In addition to the toolkit resources, Pcb defines the +following resources: + + +

+ +
`absoluteGrid (boolean)' +
+ + + +Selects if either the grid is relative to the position where it has changed +last or absolute, the default, to the origin (0,0). + + + +
`alignmentDistance (dimension)' +
+Specifies the distance between the boards outline to the alignment targets. + + + + +
`allDirectionLines (boolean)' +
+Enables (default) or disables clipping of new lines to 45 degree angles. + + + +
`backupInterval (int)' +
+Pcb has an automatic backup feature which saves the current data +every n seconds. The default is 300 seconds. A value of zero disables +the feature. The backup file is named `/tmp/PCB.%i.backup'. +%i is replaced by the process ID. +See also, the command-line option -backup. + + + + +
`Bloat (dimension)' +
+Specifies the minimum spacing design rule in mils. + + + + + +
`charactersPerLine (int)' +
+Pcb uses this value to determine the page width when creating lists. +N, the number of characters per line, defaults to 80. +See also, the command-line option -c. + + + + +
`connectedColor (color)' +
+All pins, vias, lines and rectangles which are selected during a connection +search are drawn with this color. The default value is determined by +XtDefaultForeground. + + + + +
`crosshairColor (color)' +
+This color is used to draw the crosshair cursor. The color is a result of +a XOR operation with the contents of the drawing area. The result +also depends on the default colormap of the X11 server because only +the colormap index is used in the boolean operation and Pcb doesn't +create its own colormap. The default setting is XtDefaultForeground. + + + + + +
`elementColor (color)' +
+
`elementSelectedColor (color)' +
+The elements package part is drawn in these colors, for normal and selected +mode, respectively, which both default to XtDefaultForeground. + + + + + + + + +
`elementCommand (string)' +
+Pcb uses a user defined command to read element files. This resources +is used to set the command which is executed by the users default shell. +Two escape sequences are defined to pass the selected filename (%f) and the +current search path (%p). The command must write the element data +to its standard output. The default value is + +
+    M4PATH="%p";export M4PATH;echo 'include(%f)' | m4
+
+ +Using the GNU version of m4 is highly recommended. +See also, the command-line option -lelement. + + + + + + +
`elementPath (string)' +
+A colon separated list of directories or commands (starts with '|'). +The path is passed to the program specified in elementCommand together +with the selected elementname. A specified command will be executed in order +to create entries for the fileselect box. It must write its results to +stdout one entry per line. +See also, the user-command le[!]. + + + + + + + + +
`fileCommand (string)' +
+The command is executed by the user's default shell whenever existing layout +files are loaded. Data is read from the command's standard output. +Two escape sequences may be specified to pass the selected filename (%f) +and the current search path (%p). The default value is: + +
+    cat %f
+
+ +See also, the command-line option -lfile. + + + + + + +
`filePath (string)' +
+A colon separated list of directories or commands (starts with '|'). +The path is passed to the program specified in fileCommand together +with the selected filename. A specified command will be executed in order +to create entries for the fileselect box. It must write its results to +stdout one entry per line. +See also, the user-command l[!]. + + + + + + + + + +
`fontCommand (string)' +
+Loading new symbol sets also is handled by an external command. You again +may pass the selected filename and the current search path by passing +%f and %p in the command string. Data is read from the commands standard +output. This command defaults to + +
+    cat %f
+
+ +See also, the command-line option -lfont. + + + + +
`fontFile (string)' +
+The default font for new layouts is read from this file which is searched +in the directories as defined by the resource fontPath. +Searching is only performed if the filename does not contain a directory +component. +The default filename is `default_font'. +See also, the command-line option -fontfile. + + + + + + + +
`fontPath (string)' +
+This resource, a colon separated list of directories, defines the searchpath +for font files. See also, the resource fontFile. + + + + +
`grid (int)' +
+This resources defines the initial value of one cursor step. It defaults +to 100 mil and any changes are saved together with the layout data. + + + + +
`gridColor (color)' +
+This color is used to draw the grid. The color is a result of +a INVERT operation with the contents of the drawing area. The result +also depends on the default colormap of the X11 server because only +the colormap index is used in the boolean operation and Pcb doesn't +create its own colormap. The default setting is XtDefaultForeground. + + + + +
`elementColor (color)' +
+Elements localted on the opposite side of the board are drawn in this color. +The default is XtDefaultForeground. + + + + + +
`layerColor1..8 (color)' +
+
`layerSelectedColor1..8 (color)' +
+These resources define the drawing colors of the different layers in +normal and selected state. All values are preset to XtDefaultForeground. + + + + +
`layerGroups (string)' +
+The argument to this resource is a colon separated list of comma separated +layernumbers (1..8). All layers within one group are switched on/off +together. The default setting is 1:2:3:...:8 which means +all layers are handled separatly. Grouping layers one to three looks like +1,2,3:4:...:8 +See also, the command-line option -lg. + + + +
`layerName1..8 (string)' +
+The default name of the layers in a new layout are determined by these +resources. The defaults are empty strings. + + + + + +
`libraryCommand (string)' +
+Pcb uses a command to read element data from libraries. +The resources is used to set the command which is executed by the users +default shell. Three escape sequences are defined to pass the selected +filename (%f), the current search path (%p) as well (%a) as the three +parameters template, value and package to the command. +It must write the element data to its standard output. The default value is + +
+    /usr/X11R6/lib/X11/pcb/QueryLibrary.sh %p %f %a
+
+ + + + + +
`libraryContentsCommand (string)' +
+Similar to libraryCommand, Pcb uses the command specified +by this resource to list the contents of a library. + +
+	/usr/X11R6/lib/X11/pcb/ListLibraryContents.sh %p %f
+
+ +is the default. + + + + +
`libraryFilename (string)' +
+The resource specifies the name of the library. The default value is +pcblib. + + + + + +
`libraryPath (string)' +
+A colon separated list of directories that will be passed to the commands +specified by elementCommand and elementContentsCommand. + + + + + +
`lineThickness (dimension)' +
+The value, int the range [1..250], defines the +initial thickness of new lines. The value is preset to ten mil. + + + + + +
`media (<predefined> | <width>x<height>+-<left_margin>+-<top_margin>)' +
+The default (user defined) media of the PostScript device. Predefined +values are a3, a4, a5, letter, tabloit, +ledger, legal, and executive. +The second way is to specify the medias width, height and margins in mil. +The resource defaults to a4 size. + + + + +
`offLimitColor (color)' +
+The area outside the current maximum settings for width and height is drawn +with this color. The default value is determined by XtDefaultBackground. + + + + + +
`pinColor (color)' +
+
`pinSelectedColor(color)' +
+This resource defines the drawing color of pins and pads in both states. +The values are preset to XtDefaultForeground. + + + + +
`pinoutFont (string)' +
+This fonts are used to display pin names. There is one font for each zoom +value. The values are preset to XtdefaultFont. + + + + + +
`pinoutNameLength (int)' +
+This resource limits the number of characters which are displayed for +pin names in the pinout window. By default the string length is limited +to eight characters per name. +See also, the command-line option -pnl. + + + + +
`pinoutOffsetX (int)' +
+
`pinoutOffsetY (int)' +
+These resources determine the offset in mil of the circuit from the +upper left corner of the window when displaying pinout information. +Both default to 100 mil. + + + + +
`pinoutTextOffsetX (int)' +
+
`pinoutTextOffsetY (int)' +
+The resources determine the distance in mil between the drilling hole of a pin +to the location where its name is displayed in the pinout window. +They default to X:50 and Y:0. + + + + +
`pinoutZoom (int)' +
+Sets the zoom factor for the pinout window according to the formula: +scale = 1:(2 power value). Its default value is two which results in +a 1:4 scale. +See also, the command-line option -pz. + + + +
`printCommand (string)' +
+Default file for printouts. If the name starts with a '|' the output +is piped through the command. A %f is replaced by the current filename. +There is no default file or command. + + + + +
`raiseLogWindow (boolean)' +
+The log window will be raised when new messages arrive if this resource +is set true, the default. + + + + +
`ratCommand (string)' +
+Default command for reading a netlist. A %f is replaced by the netlist +filename. Its default value is "cat %f". + + + + +
`ratPath (string)' +
+Default path to look for netlist files. It's default value is "." + + + + +
`resetAfterElement (boolean)' +
+If set to true, all found connections will be reset before a new +element is scanned. This will produce long lists when scanning the whole +layout for connections. The resource is set to false by default. +The feature is only used while looking up connections of all elements. +See also, the command-line option -reset, +reset. + + + +
`ringBellWhenFinished (boolean)' +
+Whether to ring the bell (the default) when a possibly lengthy operation +has finished or not. +See also, the command-line option -ring, +ring. + + + +
`routeStyle (string)' +
+Default values for the menu of routing styles (seen in the sizes menu). +The string is a comma separated list of name, line thickness, +via diameter, and via drill size. +e.g. "Fat,50,100,40:Skinny,8,35,20:75Ohm,110,110,20" +See also, the command-line option -rs and Sizes Menu + + + + + +
`rubberBandMode (boolean)' +
+Whether rubberband move and rotate (attached lines stretch like +rubberbands) is enabled (the default). + + + + + + + + +
`saveCommand (string)' +
+This command is used to save data to a layout file. The filename may be +indicated by placing %f in the string. It must read the data from +its standard input. The default command is: + +
+    cat - > %f
+
+ +See also, the command-line option -sfile. + + + + + + + + +
`saveInTMP (boolean)' +
+Enabling this resource will save all data which would otherwise be lost +in a temporary file `/tmp/PCB.%i.save'. +%i is replaced by the process ID. +As an example, loading a new layout when the old one hasn't been saved would +use this resource. +See also, the command-line option -save, +save. + + + + +
`saveLastCommand (boolean)' +
+Enables the saving of the last entered user command. The option is +disabled by default. +See also, the command-line option -s, +s. + + + + +
`Shrink (dimension)' +
+Specifies the minimum overlap (touching) design rule in mils. + + + + +
`size (<width>x<height>)' +
+Defines the width and height of a new layout. The default is +7000x5000. + + + + +
`stipllePolygons (boolean)' +
+Determines whether to display polygons on the screen with a stippled +pattern. Stippling can create some amount of transperency so that +you can still (to some extent) see layers beneath polygons. +It defaults to False. + + + + +
`textScale (dimension)' +
+The font scaling in percent is defined by this resource. The default is +100 percent. + + + + +
`useLogWindow (boolean)' +
+Several subroutines send messages to the user if an error occurs. +This resource determines if they appear inside the log window or as a separate +dialog box. See also, the resource raiseLogWindow and the command line +option -loggeometry. +The default value is true. + + + + + +
`viaColor (color)' +
+
`viaSelectedColor (color)' +
+This resource defines the drawing color of vias in both states. +The values are preset to XtDefaultForeground. + + + + + + +
`viaThickness (dimension)' +
+
`viaDrillingHole (dimension)' +
+The initial thickness and drilling hole of new vias. The values must be in the +range [30..250] with at least 20 +mil of copper. +The default thickness is 40 mil and the default drilling hole is +20 mil. + + + + +
`volume (int)' +
+The value is passed to XBell() which sets the volume of the X +speaker. +The value lies in the range -100..100 and it defaults to the maximum volume of +100. + + + + +
`warnColor (color)' +
+This resources defines the color to be used for drawing pins and pads when +a warning has been issued about them. + + + +
`zoom (int)' +
+The initial value for output scaling is set according to the following +formula: scale = 1:(2 power value). It defaults to three which results +in an output scale of 1:8. + +
+ +

+Refer also to section Command-Line Options. + + +

+ + + + + + + +

Actions

+

+All user accessible commands may be bound to almost any X event. Almost +no default binding for commands is done in the binaries, so it is vital for the +application that at least a system-wide application resource file exists. +This file normally resides in the `X11/lib/app-defaults' directory and +is called `Pcb'. The bindings to which the manual refers to are the +ones as defined by the shipped resource file. Besides binding an action to +an X11 event, you can also execute any action command using a ":" command +(see section User Commands). + + +

+Take special care about translations related to the functions keys and the +pointer buttons because most of the window managers use them too. +Change the file according to your hardware/software environment. +You may have to replace all occurances of baseTranslations to +translations if you use a X11R4 server. + + +

+Passing Object as an argument to an action routine causes the object +at the cursor location to be changed, removed or whatever. If more than +one object is located at the crosshair position the smallest type is used. +If there are two of the same type the newer one is taken. +SelectedObjects will handle all selected and visible objects. + + +

+ +
`AddRats(AllRats|SelectedRats)' +
+ + + + + +Adds rat-lines to the layout using the loaded netlist file (see the :rn, +section User Commands.). Rat lines are added on the active layer using the current +line thickness shown in the status line. +Only missing connectivity is added by the +AddRats command so if, for example, the layout is complete nothing will be added. +Rat lines are drawn on the screen with a stippled pattern +to make them easier to identify since they cannot appear in a completed layout. +The rat-lines are added in the minimum length straight-line tree pattern +(always ending on pins or pads) that satisfies the missing connectivity in the circuit. +If a SMD pad is unreachable on the active layer, a warning will be issued +about it and the rat-line to that pad will not be generated. +If connections exist on the board which are not listed in the netlist while +AllRats are being added, warning messages will be issued and the affected pins and +pads will be drawn in a special warnColor until the next Notify() event. +If the entire layout agrees completely with the net-list a message informs you that +the layout is complete and no rat-lines are added (since none are needed). +If SelectedRats +is passed as the argument, only those missing connections that might connect among +the selected pins and pads are drawn. +Default: + +
+None<Key>w:	AddRats(AllRats)
+!Shift<Key>w:	AddRats(SelectedRats)
+None<Key>o:	DeleteRats(AllRats) AddRats(AllRats)
+!Shift<Key>o:	DeleteRats(SelectedRats) AddRats(SelectedRats)
+
+ + + + +
`Atomic(Save|Restore|Block|Close)' +
+Controls the undo grouping of sequences of actions. Before the first action +in a group, Atomic(Save) should be issued. After each action that might +be undoable, Atomic(Restore) should be issued. Atomic(Block) concludes +and save the undo grouping if there was anything in the group to undo. +Atomic(Close) concludes and save the undo grouping even if nothing was +actually done. Thus it might produce an "empty" undo. This can be useful +when you want to use undo in a group of actions. + + + + +
`Bell([-100..100])' +
+Rings the bell of your display. If no value is passed the setting +of the resource volume will be used. + + + + + +
`ChangeDrillSize(Object, value)' +
+
`ChangeDrillSize(SelectedPins|SelectedVias, value)' +
+This action routine changes the drilling hole of pins and vias. +If value starts with + or -, then it adds (or subtracts) +value from the current hole diameter, otherwise it sets the +diameter to the value. +Default: + +
+!Mod1<Key>s:       Change2ndSize(Object, +5)
+!Mod1 Shift<Key>s: Change2ndSize(Object, -5)
+
+ + + + +
`ChangeHole(Object|SelectedVias)' +
+This action routine converts a via to and from a hole. A hole is +a via that has no copper annulus. The drill size for the via +determines the hole diameter. + +
+!Ctrl<Key>h:	ChangeHole(Object)
+
+ + + + + +
`ChangeName(Object)' +
+
`ChangeName(Layer|Layout)' +
+Changes the name of the visible object at the cursor location. A text object +doesn't have a name therefore the text string itself is changed. +The element name currently used for display is always the one changed with this +command. +See Display(Description|NameOnPCB|Value) for details. +Passing Layer changes the current layers name. +Default: + +
+None<Key>n: ChangeName(Object)
+
+ + + + + +
`ChangeOctagon(Object|SelectElements|SelectedPins|SelectedVias|Selected)' +
+Toggles what shape the affected pin(s) or via(s) will be drawn when they +are not square. The shape will either be round or octagonal. +Default: + +
+!Ctrl<Key>o: ChangeOctagon(Object)
+
+ + + + + +
`ChangeSize(Object, value)' +
+
`ChangeSize(SelectedLines|SelectedPins|SelectedVias, value)' +
+
`ChangeSize(SelectedPads|SelectedTexts|SelectedNames, value)' +
+
`ChangeSize(SelectedElements, value)' +
+To change the size of an object you have to bind these action to some +X event (or use :ChangeSize(...)). If value begins with +a + or - then the value will be added (or subtracted) from the current +size, otherwise the size is set equal to value. Range checking is +done to insure that none of the maximum/minimums of any size are violated. +If Object is passed then a single object at the cursor location is +changed. If any of the Selected arguments are passed then all selected +and visible objects of that type are changed. If the type being modified is +an element, then the thickness of the silkscreen lines defining the element +is changed. +Default: + +
+None<Key>s:   ChangeSize(Object, +5)
+!Shift<Key>s: ChangeSize(Object, -5)
+
+ + + + + +
`ChangeSquare(Object|SelectedElements|SelectedPins)' +
+Toggles the setting of the square flag. The flag is used to identify a +certain pin, normally the first one, of circuits. It is also used to +make SMD pads have square ends. + +
+None<Key>q:   ChangeSquare(Object)
+
+ + + + +
`Command()' +
+Calling Command() pops up an input line at the bottom of the window +which allows you to enter commands. Including all action commands! +The dialog ends when None<Key>Return +to confirm or None<Key>Escape to abort is entered. +Default: + +
+<Key>colon: Command()
+
+ + + + + + + + +
`Connection(Find)' +
+
`Connection(ResetFoundLinesAndRectangles|ResetPinsViasAndPads|Reset)' +
+The Connection() action is used to mark all connections from one pin, +line or via to others. +The ResetFoundLinesAndRectangles, ResetFoundPinsAndVias and +Reset arguments may be used to reset all marked lines and rectangles, +vias and pins or all of them. The search starts with the pin or via +at the cursor position. All found objects are drawn with the color +defined by the resource connectedColor. +See also, Display(Description|NameOnPCB|Value). +Default: + +
+!Shift<Key>c: Connection(Reset)
+None<Key>f:   Connection(Find)
+!Shift<Key>f: Connection(Reset)
+
+ + + + + +
`DeleteRats(AllRats|SelectedRats)' +
+This routine deletes either all rat-lines in the layout, or only +the selected and visible ones. Non-rat-lines and other layout +objects are unaffected. +Default: + +
+None<Key>e:   DeleteRats(AllRats)
+!Shift<Key>e: DeleteRats(SelectedRats)
+
+ + + + + + + + + + + + + + + +
`Display(Description|NameOnPCB|Value)' +
+
`Display(Toggle45Degree|CycleClip)' +
+
`Display(Grid|ToggleGrid)' +
+
`Display(ToggleRubberBandMode)' +
+
`Display(Center|ClearAndRedraw|Redraw)' +
+
`Display(Pinout|PinOrPadName)' +
+This action routines handles some output related settings. It is +used to center the display around the cursor location and to redraw the +output area optionally after clearing the window. +Centering is done with respect to the grid setting. Displaying the +grid itself may be switched on and off by Grid but only if +the distance between two pixels exceeds 1_DISTANCE pixels. +Pcb is able to handle several labels of an element. One of them +is a description of the functionality (eg resistor), the second should be +a unique identifier (R1) whereas the last one is a value (100k). +The Display() action selects which of the names is displayed. +It also controls which name will be affected by the ChangeName command. +If ToggleGrid is passed, Pcb changes between relative +('rel' in the statusline) and absolute grid (an 'abs' in the statusline). +Relative grid means the pointer position when the command is issued is +used as the grid origin; while (0,0) is used in the absolute grid case. +Passing Pinout displays the pinout of the element at the current +cursor location whereas PinOrPadName toggles displaying of the +pins or pads name under the cursor. If none of them matches but the cursor +is inside of an element, the flags is toggled for all of its pins and pads. +For details about rubberbands see also the details about Mode. +Default: + +
+None<Key>c:  Display(Center)
+None<Key>d:  Display(PinOrPadName)
+!Shift<Key>d: Display(Pinout)
+None<Key>r:  Display(ClearAndRedraw)
+None<Key>.:  Display(Toggle45Degree)
+None<Key>/:  Display(CycleClip)
+
+ + + + +
`DRC()' +
+Initiates design rule checking of the entire layout. Must be repeated +until no errors are found. + + + + +
`EditLayerGroups()' +
+Pops up a dialog box to edit the layergroup setting. The function is also +available from the Objects menu. +There are no defaults. + + + +
`Load(ElementToBuffer|Layout|LayoutToBuffer|Nelist)' +
+This routine pops up a fileselect box to load layout, element data, +or netlist. +The passed filename for layout data is saved and may be reused. +ElementToBuffer and LayoutToBuffer load the data into the +current buffer. +There are no defaults. + + + + +
`MarkCrosshair()' +
+This routine marks the current cursor location with an X, and then +the cursor display shows both absolute position and position relative to +the mark. If a mark is already present, this routine removes it and +stops displaying relative cursor coordinates. +Defaults: + +
+!Ctrl<key>m:	MarkCrosshair()
+
+ + + + +
`Mode(Copy|InsertPoint|Line|Move|None|PasteBuffer|Polygon|Thermal)' +
+
`Mode(Remove|Rectangle|RubberbandMove|Text|Via)' +
+
`Mode(Cycle)' +
+
`Mode(Notify)' +
+
`Mode(Save|Restore)' +
+Switches to a new mode of operation. The active mode is displayed by a thick +line around the matching mode selector button. +Most of the functionality of Pcb is implemented by selecting a mode +and calling Mode(Notify). The arguments Line, Polygon, +Rectangle, Text and Via are used to create the +appropriate object whenever Mode(Notify) is called. Some of them, +such as Polygon, need more than one call for one object to be created. +InsertPoint adds points to existing polygons or lines. +Save and Restore are used to temporarily save the mode, switch +to another one, call Mode(Notify) and restore the saved one. Have +a look at the application resource file for examples. +Copy and Move modes are used to change an object's location and, +optionally, to create a new one. The first call of Mode(Notify) attaches +the object at the pointer location to the crosshair whereas the second +one drops it to the layout. The rubberband version of move performs the +move while overriding the current rubberband mode. +Passing PasteBuffer attaches the contents of the currently selected +buffer to the crosshair. Each call to Mode(Notify) pastes this contents +to the layout. Mode(Cycle) cycles through the modes available in the +mode-button pallete. +Mode(None) switches all modes off. +Default: + +
+<Key>Escape:             Mode(None)
+<Key>space:              Mode(Cycle)
+None<Key>BackSpace:      Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore) 
+None<Key>Delete:         Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore) 
+None<Key>F1:             Mode(Via)
+None<Key>F2:             Mode(Line)
+None<Key>F3:             Mode(PasteBuffer)
+None<Key>F4:             Mode(Rectangle)
+None<Key>F5:             Mode(Text)
+None<Key>F6:             Mode(Polygon)
+None<Key>F7:             Mode(Thermal)
+None<Key>F8:		 Mode(Arc)
+None<Key>Insert:         Mode(InsertPoint)
+None<Key>[:              Mode(Save) Mode(Move) Mode(Notify)
+None<Key>]:              Mode(Notify) Mode(Restore)
+None<Btn1Down>:          Mode(Notify)
+!Shift Ctrl<Btn1Down>:   Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore)
+None<Btn2Down>:          Mode(Save) Mode(Move) Mode(Notify)
+None<Btn2Up>:            Mode(Notify) Mode(Restore)
+!Mod1<Btn2Down>:       Mode(Save) Mode(Copy) Mode(Notify)
+!Mod1<Btn2Up>:         Mode(Notify) Mode(Restore)
+Shift Mod1<Btn2Down>: Mode(Save) Mode(RubberbandMove) Mode(Notify)
+
+ + + + +
`MovePointer(delta_x, delta_y)' +
+With this function it is possible to move the crosshair cursor by using the +cursor keys. The X server's pointer follows because the necessary +events are generated by Pcb. All movements are performed with respect +to the currently set grid value. +Default: + +
+None<Key>Up:      MovePointer(0, -1)
+!Shift<Key>Up:    MovePointer(0, -10)
+None<Key>Down:    MovePointer(0, 1)
+!Shift<Key>Down:  MovePointer(0, 10)
+None<Key>Right:   MovePointer(1, 0)
+!Shift<Key>Right: MovePointer(10, 0)
+None<Key>Left:    MovePointer(-1, 0)
+!Shift<Key>Left:  MovePointer(-10, 0)
+
+ + + + +
`MoveToCurrentLayer(Object|SelectedObjects)' +
+The function moves a single object at the crosshair location or all selected +objects to the current layer. Elements are not moveable by this function. +They have to be deleted and replaced on the other side. +If a line segment is moved and the movement would result in a loss of +connectivity to another segment then via(s) are automatically added to +maintain the connectivity. + +
+None<Key>m:       MoveToCurrentLayer(Object)
+!Shift<Key>m:     MoveToCurrentLayer(SelectedObjects)
+
+ + + + +
`New()' +
+Clear the current layout and starts a new one after entering its name. +Refer to the resource backup for more information. +No defaults. + + + + + + + + +
`PasteBuffer(AddSelected|Clear|1..5)' +
+
`PasteBuffer(Rotate, 1..3)' +
+
`PasteBuffer(Convert)' +
+This action routine controls and selects the pastebuffer as well as all +cut-and-paste operations. Passing a buffer number selects one in of the +range 1..5. The statusline is updated with the new number. +Rotate performs a number of 90 degree counter clockwise rotations +of the buffer contents. AddSelected as first argument copies all +selected and visible objects into the buffer. Passing Clear removes +all objects from the currently selected buffer. Convert causes +the contents of the buffer (lines, arc, vias) to be converted into an +element definition. Refer to section Pastebuffer +for examples. +Default: + +
+!Ctrl<Key>x:       PasteBuffer(Clear) PasteBuffer(AddSelected)
+                   Mode(PasteBuffer)
+!Shift Ctrl<Key>x: PasteBuffer(Clear) PasteBuffer(AddSelected)
+                   RemoveSelected() Mode(PasteBuffer)
+!Mod1<Key>c:       PasteBuffer(Clear) PasteBuffer(AddSelected)
+!Mod1<key>x:       PasteBuffer(Clear) PasteBuffer(AddSelected)
+		   RemoveSelected()
+!Shift<Key>1:      PasteBuffer(1)
+!Shift<Key>2:      PasteBuffer(2)
+!Shift<Key>3:      PasteBuffer(3)
+!Shift<Key>4:      PasteBuffer(4)
+!Shift<Key>5:      PasteBuffer(5)
+None<Key>F3:       Mode(PasteBuffer)
+
+ + + + + +
`Polygon((Close|PreviousPoint)' +
+Polygons need a special action routine to make life easier. Calling +Polygon(PreviousPoint) resets the newly entered corner to the +previous one. The Undo action will call Polygon(PreviousPoint) +when appropriate to do so. Close creates the final +segment of the polygon. This may fail if clipping to 45 degree +lines is switched on, in which case a warning is issued. +Default: + +
+None<Key>p:             Polygon(Close)
+!Shift<Key>p:           Polygon(Close)
+
+ + + + +
`Print()' +
+Pops up a print control box that lets you select the output +device, scaling and many more options. Each run creates all +files that are supported by the selected device. These are +mask files as well as drilling files, silk screens and so on. The table +shows the filenames for all possible files: + +
+        POSIX (extention)             8.3 filename
+		---------------------------------------------
+		*_componentmask.*             cmsk.*
+		*_componentsilk.*             cslk.*
+		*_soldermask.*                smsk.*
+		*_soldersilk.*                sslk.*
+		*_drill.*                     dril.*
+		*_groundplane.*               gpl.*
+		*_group[1..8].*       [..8].*
+
+ +The output may be sent to a postprocessor by starting the filename with the +pipe ("|") character. Any "%f" in a command is replaced +with the current filename. The function is available from the file menu. +There are no defaults. + + + + +
`Quit()' +
+Quits the application after confirming the operation. +Default: + +
+<Message>WM_PROTOCOLS: Quit()
+
+ + + + +
`Redo()' +
+This routine allows you to recover from the last undo command. +You might want to do this if you thought that undo was going to +revert something other than what it actually did (in case you +are confused about which operations are un-doable), or if you +have been backing up through a long undo list and over-shoot +your stopping point. Any change that is made since the undo +in question will trim the redo list. For example if you add +ten lines, then undo three of them you could use redo to put +them back, but if you move a line on the board before performing +the redo, you will lose the ability to "redo" the three "undone" lines. +Default: + +
+!Shift<Key>r:	Redo()
+
+ + + + +
`RemoveSelected()' +
+This routine removes all visible and selected objects. +There are no defaults. + + + + + +
`Report(Object|DrillReport)' +
+This routine pops up a dialog box describing the various +characteristics of an object (or piece of an object such as a pad or pin) +in the layout at the cursor position, or a report about all of the +drill holes in the layout. +There are no defaults. + + + + +
`RouteStyle(1|2|3|4)' +
+This routine copies the sizes corresponding to the numbered route style +into the active line thicknes, via diameter, and via drill size. +Defaults: + +
+!Ctrl<Key>1: RouteStyle(1)
+...
+!Ctrl<Key>4: RouteStyle(4)
+
+ + + + +
`Save(Layout|LayoutAs)' +
+
`Save(AllConnections|AllUnusedPins|ElementConnections)' +
+Passing Layout saves the layout using the file from which it was +loaded or, if it is a new layout, calls Save(LayoutAs) which queries +the user for a filename. +The values: AllConnections, AllUnusedPins and +ElementConnections start a connection scan and save all connections, +all unused pins or the connections of a single element to a file. +There are no defaults. + + + + +
`Select(All|Block|Connection|ToggleObject)' +
+
`Select(ElementByName|ObjectByName|PadByName|PinByName)' +
+
`Select(TextByName|ViaByName)' +
+Toggles either the selection flag of the object at the crosshair position +(ToggleObject) or selects all visible objects, all inside a +rectangle or all objects which have been found during the last connection +scan. The ByName functions use a regular expression search, +always case insensitive, to select the objects. +Default: + +
+None<Btn3Down>:  Select(ToggleObject)
+None<Btn3Down>,None<Btn3Motion>: See resource file - this is complex
+
+ + + + + + + + +
`SetValue(Grid|LineSize|TextScale|ViaDrillingHole|ViaSize|Zoom, value)' +
+Some internal values may be changed online by this function. +The first parameter specifies which data has to be changed. The other one +determines if the resource is set to the passed value, if value is +specified without sign, or increments/decrements if it is specified with +a plus or minus sign. +The function doesn't change any existing object only the initial values of +new objects. Use the ChangeSize() and ChangeDrillSize() +to change existing objects. +Default: + +
+None<Key>g:        SetValue(Grid, +5)
+!Shift<Key>g:      SetValue(Grid, -5)
+None<Key>l:        SetValue(LineSize, +5)
+!Shift<Key>l:      SetValue(LineSize, -5)
+None<Key>t:        SetValue(TextScale, +10)
+!Shift<Key>t:      SetValue(TextScale, -10)
+None<Key>v:        SetValue(ViaSize, +5)
+!Shift<Key>v:      SetValue(ViaSize, -5)
+!Mod1<Key>v:       SetValue(ViaDrillingHole, +5)
+!Mod1 Shift<Key>v: SetValue(ViaDrillingHole, -5)
+None<Key>z:        SetValue(Zoom, -1)
+!Shift<Key>z:      SetValue(Zoom, +1)
+
+ + + + +
`SwapSides()' +
+This routine changes the board side you are viewing. +Default: + +
+None<Key>Tab:      SwapSides()
+
+ + + + +
`SwitchDrawingLayer(value)' +
+Makes layer numer 1..8 the current one. +Default: + +
+None<Key>1:        SwitchDrawingLayer(1)
+...
+None<Key>8:        SwitchDrawingLayer(8)
+
+ + + + + +
`ToggleHideName(Object|SelectedElements)' +
+Toggles whether the element's name is displayed or hidden. If it +is hidden you won't see it on the screen and it will not appear +on the silk layer when you print the layout. + +
+None<Key>h:	ToggleHideName(Object)
+!Shift<Key>h:	ToggleHideName(SelectedElements)
+
+ + + + +
`Undo()' +
+
`Undo(ClearList)' +
+The unlimited undo feature of Pcb allows you to recover +from most operations that materially affect you work. +Calling Undo() without any parameter recovers +from the last (non-undo) operation. ClearList is used to release the +allocated memory. ClearList is called whenever a new layout is started +or loaded. See also Redo. +Default: + +
+None<Key>u:        Undo()
+!Shift Ctrl<Key>u: Undo(ClearList)
+
+ + + + +
`Unselect(All|Block|Connection)' +
+Unselects all visible objects, all inside a rectangle or all objects which +have been found during the last connection scan. +Default: + +
+!Shift <Btn3Down>: Mode(Save) Mode(None) Unselect(Block)
+!Shift <Btn3Up>:   Unselect(Block) Mode(Restore)
+
+ +
+ +

+ + + + + +

Default Translations

+

+This section covers some default translations of key and button events as +defined in the shipped default application resource file. Most of them have +already been listed in section Actions. Pcb makes use of a nice X11 +feature; calling several action routines for one event. + + +

+ +
`None<Key>BackSpace:' +
+ + + + + +
`None<key>Delete:' +
+
`!Shift<Key>BackSpace:' +
+
`!Shift Ctrl<Btn1Down>:' +
+The object at the cursor location is removed by None<Key>BackSpace or +Shift Ctrl<Btn1Down> whereas Shift<Key>BackSpace also removes +all other objects that are fully-connected to the one at the cursor location. + + +
`!Mod1 Ctrl<Key>Left:' +
+
`!Mod1 Ctrl<Key>Right:' +
+
`!Mod1 Ctrl<Key>Up:' +
+
`!Mod1 Ctrl<Key>Down:' +
+Scroll one page in one of the four directions. + + +
`None<Key>Left:, !Shift<Key>Left:' +
+
`None<Key>Right:, !Shift<Key>Right:' +
+
`None<Key>Up:, !Shift<Key>Up:' +
+
`None<Key>Down:, !Shift<Key>Down:' +
+Move crosshair either one or ten points in grid. + + +
`None<Key>Return:' +
+Finished user input, selects the 'default' button of dialogs. + + +
`None<Key>Escape:' +
+Mode(Reset), aborts user input, selects the 'abort' button of +dialogs or resets all modes. + + + + + + +
`None<Btn2Down>, Btn2<Motion>, None<Btn2Up>:' +
+
`!Mod1<Btn2Down>, Btn2<Motion>, !Mod1<Btn2Up>:' +
+The first sequence moves the object or element name at the cursor location. +The second one copies the objects. Copying isn't available for +element names. + +
+ +

+ + + + +

File Formats

+

+All files used by Pcb are read from the standard output of a command +or written to the standard input of one as plain seven bit ASCII. This +makes it possible to use any editor to change the contents of a layout file. +It is the only way for element or font description files to be created. +To do so you'll need to study the example files `example/*' and +`default_font' which are shipped with Pcb. +For an overview refer to section Introduction. + + +

+ + + + + + +The following sections provide the necessary information about the syntax of +the files. +Netlist files are not created by Pcb, but it does use them. For information +on the format of a netlist file see the :rn, +section User Commands. Rat lines are added on the current layer using the current +The commands described allow you to add almost any additional +functionality you may need. Examples are compressed read and write access as +well as archives. The commands themselves are defined by the resources +elementCommand, fileCommand, fontCommand, +libraryCommand, libraryContentsCommand and saveCommand. +Note that the commands are not saved along with the data. +It is considered an advantage to have the layout file contain all necessary +information, independent of any other files. + + +

+One thing common to all files is they may include comments, newlines, +and carriage returns at any place except within quoted strings. + + + +

+ +

+ + + + +

Basic Types

+

+Here are the basic type definitions used in the other sections of this +chapter. + + + +

+Description     = Name
+DeltaAngle      = Number
+DrillingHole    = Number
+Flags           = Number
+FontPosition    = Number
+Grid            = Number
+GridOffsetX     = Number
+GridOffsetY     = Number
+Group           = GroupMember [,GroupMember]...
+GroupMember     = decimal | [cs]
+GroupString     = """ Group [:Group]... """
+StyleString	= """ Style [:Style]... """
+Height          = Number
+LayerNumber     = Number
+LayoutName      = Name
+Name            = quoted_string
+Number          = decimal | hex
+PinNumber	= quoted_string
+Spacing         = Number
+StartAngle      = Number
+SymbolID        = Number | charconst
+Thickness       = Number
+TextData        = quoted_string
+TextFlags       = Flags
+TextScale       = scale
+TextX           = Number
+TextY           = Number
+Value           = Name
+Width           = Number
+X               = Number
+X1              = Number
+X2              = Number
+Y               = Number
+Y1              = Number
+Y2              = Number
+charconst       = "'" <any character> "'"
+comment         = "#" {<any character up to a newline>}...
+decimal         = [0-9]+
+direction       = [0-3]
+hex             = 0x[0-9a-fA-F]+
+scale           = [1-<positive integer>]
+quoted_string   = """ <anything except \n and \r> """
+zoom            = [0-MAX]
+
+ +

+ + + + + +

Layout File Format

+

+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. + + + +

+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")"
+
+ +
+ +
`PCBName' +
+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. + +
`GridData' +
+is optional and is used to save the grid setting and offset which were set +at the time the layout was saved. + +
`CursorData' +
+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). + +
`PCBFlags' +
+determine how to draw lines and which name of the elements should be +displayed. + +
+    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
+
+ +
`Groups' +
+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 c,s idenify the component- and solder-side for SMD +objects. + +
`Symbol' +
+See the description of font files in this chapter. + +
`Via' +
+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. + +
+    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
+
+ +
`Element' +
+See the description of element files in this chapter. + +
`Layer' +
+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. + +
+ +
`Line' +
+All lines are identified by their start and endpoints together with their +thickness and some flags. They have to fit a 45 degree scheme. + +
+    bit 2:  set if line was found during a connection search
+    bit 4:  line is a rat-line
+    bit 6:  line has been selected
+
+ +
`Polygon' +
+used to fill a larger area with `copper'. The coordinates specify the +corners. The flags are: + +
+    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
+
+ +
`Text' +
+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 fixpoint 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. + +
+    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
+
+ +
+ +
+ +

+ + + + + +

Element File Format

+

+Element files are used to describe one component which then may be used +several times within one or more layouts. You will normally split the +file into two parts, one for the pinout and one for the package description. +Using m4 allows you to define pin names as macros in one file and +include a package description file which evaluates the macros. See +the resource elementCommand for more information. The pins (and pads) +must appear in squential order in the element file (new in 1.5) so that +pin 1 must be the first PIN(...) in the file. + + +

+Doing things this way makes it possible to use one package file for several +different circuits. See the sample files `dil*'. + + +

+The lowest x and y coordinates of all subobjects of an element are used +as an attachment point for the crosshair cursor of the main window. + + + +

+File            = {Element}...
+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 ")"
+
+ +
+ +
`Element' +
+Objects of type element are determined by flags, some names, a canonical +and a layout name as well as a value. Additional fields are text position, +their direction counted from zero to three (n * 90 degrees counter-clockwise) +and element data. + +
+ +
`Flags' +
+The flag field determines the state of an element. +The bit values are: + +
+    bit 4:  the element name is hidden
+    bit 6:  element has been selected
+    bit 7:  element is located on the solder side
+
+ +
`TextFlags' +
+
`scale' +
+
`direction' +
+See the description of text object earlier in this chapter. + +
`ElementLine' +
+A line is defined by its start and end points and by its size, or width. + +
`ElementArc' +
+Defines an arc by its center, width, height, startangle, its length in +degrees and its size. Remember the y axis on the screen grows downwards. + +
`Mark' +
+is just a hint to make positioning easier. The crosshair will be positioned +here. Its center is passed as the two arguments. + +
`Pad' +
+A pad is very similar to a line except it may not be disconnected from +its element and it has an associated name. +Is is defined by two end point position, size, name and by some flags. + +
+    bit 2:  set if pad was found during a connection search
+    bit 5:  display the pads name
+    bit 6:  pad has been selected
+    bit 7:  pad is located on the solder side
+
+ +
`Pin' +
+A pin is very similar to a via except it may not be disconnected from +its element. + +
+    bit 0:  always set
+    bit 1:  always clear
+    bit 2:  set if pin was found during a connection search
+    bit 3:  set if pin is only a mounting hole (no copper annulus)
+    bit 5:  display the pins name
+    bit 6:  pin has been selected
+    bit 8:  pin is drawn as a square
+    bit 12: set if pin is drawn with an octagonal shape
+
+ +
+ +
+ +

+ + + + + +

Font File Format

+

+A number of user defined symbols are called a font. There is only one per +layout. All symbols are made of lines. See the file `default_font' +as an example. + + +

+The lowest x and y coordinates of all lines of a font are transformed to (0,0). + + + +

+File            = Font
+Font            = {FontData}...
+FontData        = {Symbol}...
+Symbol          = "Symbol(" SymbolID FontPosition ")"
+                      "(" {SymbolData}... ")"
+SymbolData      = {SymbolLine}...
+
+ +
+ +
`Symbol' +
+The two arguments are the ASCII code of the symbol and its distance to +the next symbol. Undefined symbols are drawn as filled rectangles. +The ASCII code may be passed as a character constant or as a hexadecimal +value. + +
+ +
`SymbolLine' +
+The symbol data itself is made up of several entries +of type SymbolLine. +
+ +
+ +

+ + + + + +

Library Contents File Format

+

+There is nothing like a special library format. The ones that have been +introduced in 1.4.1 just use some nice (and time consuming) fetures of GNU +m4. The only predefined format is the one of the contents file +which is read during startup. It is made up of two basic line types: + + + +

+menu entry      = "TYPE="name
+contents line   = template":"package":"value":"description
+name            = String
+template        = String
+package         = String
+value           = String
+description     = String
+String          = <anything except ":", "\n" and "\r">
+
+ +

+No leading whitespaces or comments are allowed in this file. If you need +either one, define a command that removes them before loading. Have a look +to the libraryContentsCommand resource. + + +

+The menu entry will appear in the selection menu at the top and of the +library window. + + +

+ + + + + +

Library File Format

+

+This section provides an overview about the existing m4 definitions +of the elements. There are basically two different types of files. One +to define element specific data like the pinout, package and so on, the +other to define the values. For example the static RAM circuits 43256 and +62256 are very similar. They therefore share a common definition in the +macro file but are defined with two different value labels. + + +

+The macro file entry: + +

+define(`Description_43256_dil', `SRAM 32Kx8')
+define(`Param1_43256_dil', 28)
+define(`Param2_43256_dil', 600)
+define(`PinList_43256_dil', ``pin1', `pin2', ...')
+
+ +

+And the list file: + +

+43256_dil:N:43256:62256
+
+ +

+The macro must define a description, the pin list and up to two additional +parameters that are passed to the package definitions. The first one is +the number of pins whereas the second one defines for example the width +of a package. + + +

+It is very important to select a unique identifier for each macro. In +the example this would be 43256_dil which is also the templates name. +It is required by some low-level macros that +Description_, Param1_, Param2_ and PinList_ are prepended. + + +

+The list file uses a syntax: + +

+template:package:value[:more values]
+
+ +

+This means that the shown example will create two element entries with the +sam package and pinout but with different names. + + +

+A number of packages are defined in `common.m4'. Included are: + + + +

+DIL packages with suffix D, DW, J, JD, JG, N, NT, P
+PLCC
+TO3
+generic connectors
+DIN 41.612 connectors
+zick-zack (SD suffix)
+15 pin multiwatt
+
+ +

+If you are going to start your own library please take care about m4 +functions. Be aware of quoting and so on and, most important check your +additional entry by calling the macro: + + + +

+CreateObject(`template', `value', `package suffix')
+
+ +

+If quoting is incorrect an endless loop may occur (broken by a out-of-memory +message). + + +

+The scripts in the `lib' directory handle the creation of libraries +as well as of their contents files. Querying is also supported. + + +

+I know quite well that this description of the library implementation is +not what some out there expect. But in my opinion it's much more useful to +look at the comments and follow the macros step by step. + + + + +

Installation and Troubleshooting

+

+Compiling and installing the package should be straightforward. If any problems +occur, please contact the author (Thomas.Nau@rz.uni-ulm.de) to find +a solution and include it into the next release. + + + +

+ +

+ + + + +

Compiling and Installing

+

+This section covers the steps which are necessary to compile the package. + + + +

+ +

+ + + + + +

Editing config.h

+

+Most X11 related options are automatically covered by imake +which is called from xmkmf. The ones special to Pcb +have to be edited in `config.h'. +In order of appearance: + + +

+ +
`INFOLIBDIR' +
+ + +must be set to the directory where your GNU info files are located. + + +
`/usr/X11R6/lib/X11/pcb' +
+is the path of a directory where the font files will be installed. + + +
`DEFAULTFONT' +
+the name of the default font file. + + +
`DEFAULTLIBRARY' +
+the name of the default library. + + +
`gm4' +
+the name of GNUs m4 version. + + +
`Mod1' +
+If your window manager has already bound Mod1 together with some +function keys you may want to change this setting. This is true for HP-VUE. + + +
`EXTRA_INCLUDES' +
+Some systems do not have the Athena Widget include files in their normal +place as configured by X11s config files. Define this as follows: + +
+    EXTRA_INCLUDES = -I/usr/openwin/share/include
+
+ +This is probably true for Suns which use OpenWindows. + + +
`PATCHES' +
+This symbol is passed to the compiler. Use it to define additional compiler +flags. +Add the -DNEED_STRDUP flag, if your system does not have a strdup() +library function. + + +
`HAS_REGEX' +
+Set to -DHAS_REGEX if your system supports regular expressions. +This enables the actions Select(*ByName). + + + +
`EXITCALL' +
+The symbol EXITCALL should be defined according to the +call on exit functions supported by your system. There are three +choices: + +
+    EXITCALL = -DHAS_ATEXIT    if atexit() is supported (SYSV)
+    EXITCALL = -DHAS_ON_EXIT   if on_exit() and no atexit() is supported
+    EXITCALL =                 if none of them is supported
+
+ +Please check your manpages for details. + + +
`SYS_LIBRARIES' +
+This symbol is used to pass additional libraries to the linker. The only +additional libraries which are used are the math and lex library. + +
+ +

+If you have to make system dependent changes please include them into a +#ifdef Architecture ... #endif construct and mail a copy to +the author (Thomas.Nau@rz.uni-ulm.de). + + +

+Now run xmkmf -a which creates the `Makefiles' and runs +make depend. This should finish without any problems except some +systems which complain about missing include files. Don't worry about any +such warnings at this time, the package should compile without any problems. + + +

+ + + + + + +

Manuals

+

+After xmkmf -a has created the new `Makefile' you are able to +create the manpages, the application resource, the info file, the +TeX output and a reference card by executing + +

+	(cd doc; make)
+	(cd src; make Pcb.ad)
+
+ +

+You'll need TeX, texindex and, if you want PostScript, +dvips to build the manuals. Preformatted documentation for the +default configuration may be found in the `./doc.ps' directory. +A simple make builds everything. +Generate a printed copy to make your life easier. +TeX-3.0 failed, TeX-3.14 worked just fine. + + +

+ + + +

Compiling the Package

+

+After reaching this point, it is time for make. It should build +everything without any errors. +If it doesn't refer to section Troubleshooting. + + +

+You have to be root to install the package or at least a user with +the appropriate priveleges in some X11 directories. Set the umask to +022 or else some files will not be found because the directory isn't +world readable. + + +

+If you do not have the appropriate permissions you should run +`./pcbtest.sh' in the `src' directory to run Pcb from +the installation directory. + + +

+make install and make install.man install the program, +the fonts, the application default resource file, all element and package +data as well as the manpage into the X11 directories. +make install.info does the same for the GNU info file. + + +

+ + + + +

Troubleshooting

+

+There are some known problems. Most of them are related to +missing parts of a standard X11 distribution. Some others are caused by +third party applications such as X servers. To make this list more +complete please mail your problems and, if available, solutions to the author. +The mail address may be found at the beginning of this chapter. +In any case, read section Problems related to X11. + + +

+By the way, you MUST HAVE AN ANSI COMPILER to make Pcb work. + + +

+If the shell script create_sed_script.sh fails with an error +of awk check your system for nawk or get the GNU gawk. +See the script for details. + + +

+Another source of problems are older versions of flex and bison. +Pcb definitely works with flex-2.4.7 and bison-1.22 or +later. The problems will result in a syntax error while parsing files. +You will have to add -lfl to the SYS_LIBRARIES identifier in +`Imakefile'. See also, section FreeBSD and NetBSD. + + +

+The following list gives you just an idea because I'm not able to test +all Pcb releases on all platforms. + + + +

+ +

+ + + + + +

HP Series 700 and 800

+

+You have to install several X11 tools (imake) and include files +or, better, install a complete X11R5 release. Hewlett-Packard doesn't +support the Athena Widgets. So the header files and libraries are missing +from the application media, but they are available as a patch. +They also do not ship the ANSI compiler with the normal operating +system release so you have to buy one or use GCC. +Some of the tools are available as patches. + + +

+In addition, Pcb has been successfully tested on these platforms with +HPUX 9.*, 10.* running self-compiled X11R5. + + +

+ + + + + + +

Sun SPARC architecture

+

+There are no known problems with Sun machines if they use X11R5 instead +of OpenWindows. Pcb compiled successfully with all kinds of +SPARCstations Solaris-2.[345]. + + +

+For problems with OpenWindows refer to section Problems related to X11. + + +

+If xmkmf is missing, try + +

+    /usr/openwin/bin/imake -DUseInstalled -I/usr/openwin/lib/config
+    make Makefile
+    make includes
+    make depend
+
+ +

+instead. I got it compiled but the linker complained about missing symbols. +The problem may be related to the mixed OpenWindows - X11R5 +environment which is installed on the test machine. +Anyway the code was executable and I haven't got a core yet. + + +

+ + + + + +

Silicon Graphics

+

+Pcb has been tested on some boxes running either IRIX-4.0.5 or +IRIX-5.3. The former one uses a X11R4 server. +There are no problems except some additionally needed +compiler flags. For known problems +with X11R4, see section Problems related to X11. Check `Imakefile', too. + + +

+ + + + + +

DEC Alpha

+

+Pcb compiled and runs without problems on DEC UNIX V3.2c if you +do the following instead of calling xmkmf -a: + +

+    xmkmf
+    make Makefiles
+    make includes
+    make depend
+
+ +

+ + + + + +

SCO Unix

+

+John DuBois <spcecdt@deeptht.armory.com> wrote: + +

+SCO-ODT-3.0 requires the latest version of tls003, the Athena
+widget library (available from sosco.sco.com). The main problems
+I have encountered are it core dumps fairly often, especially
+while loading/dropping elements...
+
+ +

+I'll see what I am able to do as soon as I have access to an SCO system. + + +

+ + + + + +

Linux

+

+Since the X11 version of Pcb has been developed on a Linux +system here are no known problems. + + +

+ + + + + +

FreeBSD and NetBSD

+

+If Pcb complains about syntax errors even in the demo files get +rid of your lex and yacc implementation. Replace them by +GNU flex and bison. Don't forget to change the SYS_LIBRARIES +in `Imakefile' from -ll to -lfl. You also need to define: + +

+    YACC = bison -y
+    LEX = flex
+
+ +

+ + + +

Problems related to X11

+

+There are a some problems related to X11R4 or systems derived from +X11 such as OpenWindows. See section Sun SPARC architecture. You at least have to change +all occurances of baseTranslations in the resource files to +translations if you are using a X11R4 server. Look at the +X11R5 Intrinsics manual for details. + + +

+The panner widget (print dialog box) appears only in release X11R5 and +later. It really simplifies adjusting the offsets. +With earlier releases the printout will always appear in the center of the +page. + + +

+You may have some problems in a mixed X11-OpenWindows +environment. +If you want to try it anyway you have to add an additional path for +include files and define another symbol in `Imakefile', + +

+    EXTRA_INCLUDES = -I/usr/openwin/include
+
+ +

+Pcb has been tested successfully with X11R6 under Linux 1.1.59 +and later. + + +

+ + + +

Problems related to TeX

+

+If your TeX installation complains about a missing `texinfo.tex' +file copy the one included in this release (directory `doc' +to your TeX macro directory. +Note, there are probably newer versions of this file available from some +FTP sites. +TeX-3.0 failed, TeX-3.14 worked just fine. Check our FTP server +ftp.uni-ulm.de for ready-to-print versions of the manuals. + + + + +

Index of Resources

+

+Jump to: +/ +- +a +- +b +- +c +- +d +- +e +- +f +- +g +- +h +- +i +- +l +- +m +- +o +- +p +- +r +- +s +- +t +- +u +- +v +- +w +- +z +

+

/

+ +
  • /usr/X11R6/lib/X11/pcb +
  • +

    a

    + +
  • absoluteGrid +
  • alignmentDistance +
  • allDirectionLines, allDirectionLines +
  • +

    b

    + +
  • backupInterval, backupInterval +
  • bloat +
  • +

    c

    + +
  • charactersPerLine, charactersPerLine +
  • connectedColor +
  • crosshairColor +
  • +

    d

    + +
  • default font +
  • DEFAULTFONT +
  • DEFAULTLIBRARY +
  • +

    e

    + +
  • elementColor +
  • elementCommand, elementCommand, elementCommand +
  • elementContentsCommand +
  • elementPath +
  • elementSelectedColor +
  • EXITCALL, EXITCALL +
  • EXTRA_INCLUDES +
  • +

    f

    + +
  • fileCommand, fileCommand, fileCommand +
  • filePath +
  • fontCommand, fontCommand, fontCommand +
  • fontFile, fontFile +
  • fontPath +
  • +

    g

    + +
  • gm4 +
  • grid +
  • gridColor +
  • +

    h

    + +
  • HAS_REGEX +
  • +

    i

    + +
  • INFOLIBDIR +
  • invisibleObjectsColor +
  • +

    l

    + +
  • layerColor +
  • layerGroups, layerGroups +
  • layerName +
  • layerSelectedColor +
  • libraryCommand, libraryCommand, libraryCommand +
  • libraryContentsCommand, libraryContentsCommand +
  • libraryFilename, libraryFilename +
  • libraryPath, libraryPath +
  • lineThickness +
  • +

    m

    + +
  • media +
  • Mod1 +
  • +

    o

    + +
  • offLimitColor +
  • +

    p

    + +
  • PATCHES +
  • pinColor +
  • pinoutFont0..4 +
  • pinoutNameLength, pinoutNameLength +
  • pinoutOffsetX +
  • pinoutOffsetY +
  • pinoutTextOffsetX +
  • pinoutTextOffsetY +
  • pinoutZoom, pinoutZoom +
  • pinSelectedColor +
  • printCommand +
  • +

    r

    + +
  • raiseLogWindow +
  • ratCommand +
  • ratPath +
  • resetAfterElement, resetAfterElement +
  • ringBellWhenFinished, ringBellWhenFinished +
  • routeStyle, routeStyle +
  • rubberBandMode +
  • +

    s

    + +
  • saveCommand, saveCommand, saveCommand +
  • saveInTMP, saveInTMP +
  • saveLastCommand, saveLastCommand +
  • shrink +
  • size, size +
  • stipplePolygons +
  • SYS_LIBRARIES +
  • +

    t

    + +
  • textScale +
  • +

    u

    + +
  • useLogWindow +
  • +

    v

    + +
  • viaColor +
  • viaDrillingHole +
  • viaSelectedColor +
  • viaThickness +
  • volume, volume +
  • +

    w

    + +
  • warnColor +
  • +

    z

    + +
  • zoom +
  • + + + + +

    Index of Actions, Commands and Options

    +

    +Jump to: ++ +- +- +- +: +- +a +- +b +- +c +- +d +- +e +- +l +- +m +- +n +- +p +- +q +- +r +- +s +- +t +- +u +

    +

    +

    + +
  • +alldirections +
  • +reset +
  • +ring +
  • +s +
  • +save +
  • +

    -

    + +
  • -alldirections +
  • -backup +
  • -c +
  • -copyright +
  • -fontfile +
  • -help +
  • -lelement +
  • -lfile +
  • -lfont +
  • -lg +
  • -libname +
  • -libpath +
  • -llib +
  • -llibcont +
  • -loggeometry +
  • -pnl +
  • -pz +
  • -reset +
  • -ring +
  • -rs +
  • -s +
  • -save +
  • -sfile +
  • -size +
  • -v +
  • -version +
  • +

    :

    + +
  • :actionCommand() +
  • :l +
  • :le +
  • :m +
  • :q +
  • :rn +
  • :s +
  • :w[q] +
  • +

    a

    + +
  • AddRats() +
  • Atomic() +
  • +

    b

    + +
  • Bell() +
  • +

    c

    + +
  • ChangeDrillSize() +
  • ChangeHole() +
  • ChangeName() +
  • ChangeOctagon() +
  • ChangeSize() +
  • ChangeSquare() +
  • Command() +
  • Connection() +
  • +

    d

    + +
  • DeleteRats() +
  • Display() +
  • DRC() +
  • +

    e

    + +
  • EditLayerGroups() +
  • +

    l

    + +
  • Load() +
  • +

    m

    + +
  • MarkCrosshair() +
  • Mode() +
  • MovePointer() +
  • MoveToCurrentLayer() +
  • +

    n

    + +
  • New() +
  • +

    p

    + +
  • PasteBuffer() +
  • Polygon() +
  • Print() +
  • +

    q

    + +
  • Quit() +
  • +

    r

    + +
  • Redo() +
  • RemoveSelected() +
  • Report() +
  • RouteStyle() +
  • +

    s

    + +
  • Save() +
  • Select() +
  • SetValue() +
  • SwapSides() +
  • SwitchDrawingLayer() +
  • +

    t

    + +
  • ToggleHideName() +
  • +

    u

    + +
  • Undo() +
  • Unselect() +
  • + + + + +

    Index of Concepts

    +

    +Jump to: +/ +- +a +- +b +- +c +- +d +- +e +- +f +- +g +- +h +- +i +- +k +- +l +- +m +- +n +- +o +- +p +- +q +- +r +- +s +- +t +- +u +- +v +- +x +- +z +

    +

    /

    + +
  • /tmp, /tmp, /tmp +
  • +

    a

    + +
  • about, command button +
  • action command +
  • actions +
  • Actions, initiating +
  • alignment +
  • alignment targets +
  • Alpha +
  • arc +
  • arc, an example +
  • architecture, architecture, architecture, architecture, architecture, architecture +
  • ASCII files, format of +
  • Atari version +
  • atomic +
  • +

    b

    + +
  • backup, backup, backup, backup, backup +
  • basic types +
  • bell +
  • bloat +
  • buffer, an example +
  • buffer, convert contents to element +
  • buffer, popup menu +
  • buffer, selecting a +
  • button translations +
  • +

    c

    + +
  • cat, cat, cat +
  • centering +
  • change active layer +
  • change drawing layer +
  • change object name +
  • change settings +
  • change sizes, change sizes +
  • change square flag +
  • change viewing side +
  • characters per line, characters per line +
  • clipping lines to 45 degree, clipping lines to 45 degree +
  • clipping of lines +
  • closing a polygon +
  • color printout +
  • color, warning +
  • colors, colors, colors, colors, colors, colors, colors, colors, colors, colors +
  • command-line options +
  • compile, how to +
  • config.h +
  • connection, removing an +
  • connections, colors +
  • connections, creating list of +
  • connections, popup menu +
  • connections, reseting +
  • connections, reseting after element, connections, reseting after element +
  • connections, searching for +
  • control panel +
  • copy an object +
  • copying objects +
  • copying, an example +
  • copyright +
  • creating objects +
  • cursor color +
  • cursor movements +
  • cursor position +
  • cursor steps +
  • cutting objects +
  • +

    d

    + +
  • DEC +
  • default font, default font +
  • default layout size +
  • default library +
  • default text scaling +
  • default translations +
  • design rule checking, design rule checking +
  • device, selecting an output +
  • directory /tmp, directory /tmp, directory /tmp +
  • display +
  • display, popup menu +
  • displaying element names, displaying element names +
  • displaying pinout +
  • displaying status information +
  • DOS filenames +
  • drawing objects +
  • drc, drc, drc, drc +
  • drill +
  • drilling hole, changing of objects +
  • drilling hole, setting of initial size +
  • DVI format of manual +
  • +

    e

    + +
  • element name, hiding +
  • element name, removing from silk-screen +
  • element, an example +
  • element, an overview +
  • element, color, element, color +
  • element, command, element, command +
  • element, creating a new package +
  • element, display names of, element, display names of +
  • element, fileformat +
  • element, files, element, files, element, files +
  • element, loading to buffer +
  • element, move name of +
  • entering user commands +
  • erasing objects +
  • example files +
  • example of buffer handling +
  • example of connection lists +
  • example of copying +
  • example of creating an element +
  • example of element handling +
  • example of line handling +
  • example of loading +
  • example of loading an element file +
  • example of moving +
  • example of pastebuffer handling +
  • example of pin handling +
  • example of polygon handling +
  • example of printing +
  • example of rectangle handling +
  • example of saving +
  • example of text handling +
  • example of via handling +
  • exit, exit +
  • +

    f

    + +
  • file format, element data +
  • file format, font data +
  • file format, layout data +
  • file format, libraries +
  • file format, library contents +
  • file formats +
  • file formats, basic types +
  • file load command, file load command +
  • file save command, file save command +
  • file, popup menu +
  • font command, font command +
  • font file, format of +
  • font files, font files, font files +
  • font, an overview +
  • font, used for pin names +
  • format of element files +
  • format of font files +
  • format of layout files +
  • format of libraries +
  • format of library contents +
  • FreeBSD +
  • +

    g

    + +
  • grid, grid, grid +
  • grid color +
  • grid, absolute and relative, grid, absolute and relative +
  • grid, display, grid, display +
  • grid, setting of +
  • groups, groups +
  • groups, editing of +
  • +

    h

    + +
  • Hewlett Packard +
  • hide element name +
  • how to start +
  • HP +
  • +

    i

    + +
  • info file +
  • information about objects +
  • input-field, position of +
  • inputfield, saving entered command-line, inputfield, saving entered command-line +
  • inputfield, start user input +
  • install, how to +
  • +

    k

    + +
  • key translations +
  • keyboard bell, keyboard bell +
  • +

    l

    + +
  • layer, change active +
  • layer, name of +
  • layers, an overview +
  • layers, changing active one +
  • layers, colors +
  • layers, editing of groups +
  • layers, groups, layers, groups +
  • layers, switching on/off +
  • layout files, layout files, layout files, layout files, layout files +
  • layout files, format of +
  • layout files, saving of, layout files, saving of +
  • layout objects, an overview +
  • layout size +
  • layout, default size of +
  • layout, loading a +
  • layout, loading to buffer +
  • layout, merging a +
  • layout, printing a +
  • layout, start a new +
  • layout-name, layout-name +
  • length of a pin name, length of a pin name +
  • length of outputline +
  • library command, library command +
  • library contents command, library contents command +
  • library contents file, format of +
  • library file, format of +
  • library name, library name +
  • library search path +
  • library searchpath +
  • library window +
  • line clipping +
  • linelength +
  • lines, an example +
  • lines, an overview +
  • lines, clipping to 45 degree, lines, clipping to 45 degree +
  • lines, setting of initial size +
  • lines, size +
  • Linux +
  • list of connections +
  • listing libraries +
  • listing library contents +
  • loading a layout to buffer +
  • loading elements, loading elements, loading elements, loading elements, loading elements +
  • loading elements to buffer +
  • loading files +
  • loading fonts, loading fonts, loading fonts +
  • loading layouts, loading layouts, loading layouts, loading layouts +
  • loading symbols, loading symbols, loading symbols +
  • loading, an example +
  • log window, log window, log window, log window +
  • +

    m

    + +
  • m4 +
  • m4, preprocessing example files +
  • make +
  • Makefile +
  • manuals +
  • mark +
  • media +
  • media margin +
  • media, size of +
  • menus +
  • merging layouts +
  • messages, messages, messages, messages +
  • mirroring printout +
  • mode selection +
  • mode, selecting of +
  • mounting holes +
  • move +
  • move an object +
  • moving objects to current layer +
  • moving, an example +
  • +

    n

    + +
  • name of an element +
  • name, change an objects +
  • namelength of pins, namelength of pins +
  • NetBSD +
  • netlist, netlist, netlist, netlist, netlist, netlist +
  • +

    o

    + +
  • object, change name of +
  • object, changing the size of an +
  • object, copy an +
  • object, creating an +
  • object, drawing and removing +
  • object, move an +
  • object, removing an, object, removing an +
  • object, selecting an +
  • objects, moving to current layer +
  • objects, popup menu +
  • octagonal pins and vias +
  • off limit color +
  • offset of pinnames +
  • offset of pinout +
  • offset of printout +
  • OpenWindows +
  • operation modes, selecting of +
  • outline printout +
  • output device +
  • outputline, length of +
  • overlap, minimum +
  • +

    p

    + +
  • pastebuffer, an example +
  • pastebuffer, convert contents to element +
  • pastebuffer, popup menu +
  • pastebuffer, selecting a +
  • path for element files +
  • path for font files +
  • path for layout files +
  • path for libraries +
  • PC UNIX, PC UNIX, PC UNIX +
  • pin color +
  • pin, name of, pin, name of +
  • pinout of elements +
  • pinout, display of +
  • pinout, font to display pin names +
  • pinout, zoomfactor of display, pinout, zoomfactor of display +
  • pins, an example +
  • pins, changing shape of +
  • pointer, moving of +
  • polygon +
  • polygon point, go back to previous +
  • polygon, an example +
  • polygon, an overview +
  • polygon, closing a +
  • popping up menus +
  • postprocessing layout data, postprocessing layout data +
  • preprocessing element data, preprocessing element data, preprocessing element data +
  • preprocessing font data, preprocessing font data +
  • preprocessing layout data, preprocessing layout data +
  • preventing loss of data, preventing loss of data, preventing loss of data +
  • print command +
  • print media, print media +
  • print offset +
  • printing +
  • printing a layout +
  • printing, an example +
  • problems +
  • +

    q

    + +
  • quit, quit +
  • +

    r

    + +
  • rat-line, rat-line, rat-line +
  • rats nest, rats nest, rats nest, rats nest, rats nest, rats nest +
  • recover, recover +
  • rectangle, an example +
  • redo +
  • redrawing layout +
  • refreshing layout +
  • release, current +
  • removing connections +
  • removing objects, removing objects, removing objects +
  • removing selected objects +
  • report +
  • report, popup menu +
  • reseting found connections, reseting found connections, reseting found connections +
  • resources +
  • rotate +
  • rotating a buffer +
  • rotating printout +
  • routing style, routing style, routing style +
  • rubberband, rubberband +
  • +

    s

    + +
  • saving connections +
  • saving files +
  • saving found connections +
  • saving last entered user command, saving last entered user command +
  • saving layouts, saving layouts, saving layouts, saving layouts, saving layouts, saving layouts, saving layouts +
  • saving, an example +
  • scaling a printout +
  • scanning connections +
  • SCO +
  • scrolling, scrolling +
  • searching connections +
  • searchpath for element files +
  • searchpath for font files +
  • searchpath for layout files +
  • searchpath for libraries +
  • selected object, removing an +
  • selected objects, changing size +
  • selected objects, removing +
  • selecting a buffer +
  • selecting a new mode +
  • selecting objects, selecting objects +
  • selection, selection +
  • selection, an example +
  • selection, popup menu +
  • SGI +
  • shrink +
  • signal +
  • Silicon Graphics +
  • size of a layout +
  • size of lines +
  • size of lines and vias +
  • size of vias +
  • sizes, changing of objects, sizes, changing of objects +
  • sizes, popup menu +
  • Solaris +
  • spacing, minimum +
  • speaker volume, speaker volume +
  • square flag, changing of objects +
  • start user input +
  • starting a new layout +
  • starting Pcb +
  • status information +
  • strings, an example +
  • strings, an overview +
  • Sun +
  • symbols, symbols +
  • symbols, an overview +
  • +

    t

    + +
  • temporary files, temporary files, temporary files +
  • TeX, problems +
  • texinfo file +
  • text, an example +
  • text, an overview +
  • text, default scaling +
  • text, editing +
  • thickness of lines +
  • thickness of objects +
  • thickness of vias +
  • thickness, changing of objects, thickness, changing of objects +
  • translations, translations +
  • troubleshooting +
  • +

    u

    + +
  • undo +
  • undo, multi-action resources +
  • undo, popup menu +
  • unix command, unix command, unix command, unix command, unix command, unix command, unix command, unix command, unix command, unix command, unix command, unix command +
  • unselect objects +
  • user commands +
  • user input, user input +
  • +

    v

    + +
  • version, current +
  • vias, an example +
  • vias, an overview +
  • vias, changing shape of +
  • vias, color +
  • vias, converting to mounting hole +
  • vias, setting of initial size +
  • vias, size +
  • viewing side, changing of +
  • volume of speaker, volume of speaker +
  • +

    x

    + +
  • X11 +
  • X11 default translations +
  • X11 resources +
  • X11 translations +
  • X11, problems +
  • xmkmf +
  • +

    z

    + +
  • zoom of drawing window +
  • zoom of pinout window, zoom of pinout window +
  • zoom, setting +
  • zoom, setting of +
  • + + +


    +This document was generated on 31 August 2000 using +texi2html 1.56k. + + diff --git a/cad/pcb/files/pcb.info b/cad/pcb/files/pcb.info new file mode 100644 index 000000000000..d206463fd1e3 --- /dev/null +++ b/cad/pcb/files/pcb.info @@ -0,0 +1,4125 @@ +This is Info file pcb.info, produced by Makeinfo version 1.68 from the +input file pcb.texi. + +INFO-DIR-SECTION PCB Layout Tool +START-INFO-DIR-ENTRY +* Pcb: (pcb). PCB Layout Tool. +END-INFO-DIR-ENTRY + + This file documents how to use Pcb, the interactive printed circuit +board layout system for `X11'. + + Copyright (C) 1994,1995,1996 Thomas Nau + + This program is free software; you may redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANT-ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + + +File: pcb.info, Node: Top, Next: Copying, Prev: (dir), Up: (dir) + +Pcb +*** + + This document is a manual for `Pcb', the interactive printed circuit +board layout system for `X11'. + +* Menu: + +* Copying:: `Pcb' is freely redistributable! +* History:: How it all began. +* Intro:: A short description of the basic objects. +* Getting Started:: Introduction to `Pcb'. +* User Commands:: User commands of `Pcb'. +* Command-Line Options:: Calling `Pcb' from a shell. +* X11 Interface:: Action routines, resources and default translation. +* File Formats:: Description of `ASCII' files used by `Pcb'. +* Installation:: Compiling, installing and troubleshooting. + + +File: pcb.info, Node: Copying, Next: History, Prev: Top, Up: Top + +Copying +******* + + Copyright (C) 1994,1995,1996,1997 Thomas Nau + + This program is free software; you may redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANT-ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + + +File: pcb.info, Node: History, Next: Intro, Prev: Copying, Up: Top + +History +******* + + `Pcb' is a handy tool for laying out printed circuit boards. It was +first written for an Atari ST in 1990 and ported to `UNIX' and `X11' in +1994. I never had the intention to create another professional layout +system, but to write a tool which supports people like you who do some +home-developing of hardware. For this reason it has no auto-router nor +auto-placement code. + + The second release 1.2 included menus for the first time. This made +`PCB' easier to use and thus a more important tool. + + Release 1.3 introduced undo for highly-destructive commands, more +straightforward action handling and scalable fonts. Layer-groups were +introduced to group signal-layers together. + + Release 1.4 provided support for add-on device drivers. Two layers +(the solder and the component side) were added to support SMD elements. +The handling of libraries was also improved in 1.4.1. Support for +additional devices like GERBER plotters started in 1.4.4. The undo +feature was expanded and the redo-feature added in 1.4.5. + + Release 1.5 provides support for rats-nest generation from simple net +lists. It also allows for automatic clearances around pins that pierce +a polygon. A variety of other enhancments including a Gerber RS274X +driver and NC drill file generation have also been added. harry eaton +(haceaton@aplcomm.jhuapl.edu) was responsible for most of the changes +found in this release. + + Release 1.6 provides automatic screen updates of changed regions. +This should elliminate most of the need for the redraw (r) key. Also +some changes to what order items under the cursor are selected were +made for better consistancy - it is no longer possible to accidentally +move a line or line point that is completely obscured by a polygon +laying over top of it. Larger objects on the upper most layers can be +selected ahead of smaller objects on lower layers. These changes make +operations more intuitive. A new mode of line creation was added that +creates two line on 45 degree angles with a single click. The actual +outline of the prospective line(s) are now shown during line creation. +An arc creation mode was added. Drawn arcs are quarter circles and can +be useful for high frequency controlled impedance lines. (You can have +eighth circle arc if the source is compiled with -DARC45, but be aware +that the ends of such arcs can never intersect a grid point). Two new +flags for pins and vias were created - one indicates that the pin or +via is purely a drill hole and has no copper annulus. You can only +toggle this flag for vias - for elements, it must be an integral part +of the element definition. The other flag controls whether the pad +will be round or octagonal. There is also now a feature for converting +the contents of a buffer into an element. Vias become the pins (or +mounting holes), lines and arcs on the solder layer become silkscreen, +and lines on the component layer become the pads. Action commands +entered via the colon command entry are no longer proceeded with "a ", +just type the command directly. Several bugs have also been fixed. New +ones were probably introduced since extensive changes were made. harry +eaton was responsible for these changes. + + Release 1.6.1 adds the ability to make groups of action commands +bound to a single X11 event to be undone by a single undo. Also a +simple design rule checker was added - it checks for minimum spacing +and overlap rules. Plus many fixes for bugs introduced with the many +changes of 1.6 harry is responsible for these changes too. + + Special thanks goes to: + Bernhard Daeubler (Bernhard.Daeubler@physik.uni-ulm.de) + Harald Daeubler (Harald.Daeubler@physik.uni-ulm.de) + Roland Merk (merk@faw.uni-ulm.de) + Erland Unruh (Erland.Unruh@malmo.trab.se) + Albert John FitzPatrick III (ajf_nylorac@acm.org) + Boerge Strand (borges@ifi.uio.no) + harry eaton (haceaton@aplcomm.jhuapl.edu) + Andre M. Hedrick (hedrick@Astro.Dyer.Vanderbilt.Edu) + + who did most of the alpha and beta testing, helped to port `PCB' to + several operating systems and platforms and corrected several typos +in the manuals. In addition to these, many others donated time for +bug-fixing and other important work. Some of them can be identified in +the source code files. Thanks to all of them. + + +File: pcb.info, Node: Intro, Next: Getting Started, Prev: History, Up: Top + +Introduction +************ + + Each layout consists of several, mostly independent, objects. This +chapter gives an overview of the object types and their relationship to +each other. For a complete description of how to use `Pcb', refer to +*Note Getting Started::. The layout is generated on-screen on a grid +that has its origin in the upper left corner of the screen. The x +coordinate increases to the right, y increases down to the bottom. All +distances and sizes in `Pcb' are measured in mils (0.001 inch). One +unit on the display grid is one mil in distance on the board. The +sections in this chapter are sorted by the order of appearance of the +objects within a layout file. + +* Menu: + +* Symbol Objects:: Information about fonts and symbols. +* Via Objects:: Vias and pins connect layers. +* Element Objects:: Element, the basic type of circuits. +* Layer Objects:: A `container' for lines, text... +* Line Objects:: +* Arc Objects:: +* Polygon Objects:: +* Text Objects:: Objects to add symbols to your board. + + +File: pcb.info, Node: Symbol Objects, Next: Via Objects, Up: Intro + +Symbols +======= + + The top object is the layout itself. It uses a set of symbols that +resides at the first logical level. Each symbol is uniquely identified +by a seven bit `ASCII' code. All layout objects share the same set of +symbols. These symbols are used to form text objects on the silkscreen +and copper layers. Undefined symbols are drawn as filled rectangles. + + Every font file is preprocessed by a user-defined command when it is +loaded. For details see `fontCommand', *Note Resources::. + + +File: pcb.info, Node: Via Objects, Next: Element Objects, Prev: Symbol Objects, Up: Intro + +Vias +==== + + Vias are identical to the pins used by elements except that they can +be added or removed individually. The purpose of vias is to provide +connections between different layers. Don't use vias for adding +elements to the layout, even if that seems easier than creating a new +element. Vias are useful for defining arbitrary drill points such as +those used for mounting a board. You can assign a name to a via even +though you probably won't ever want to. Vias reside at the first +logical level; therefore, each via exists on all layers. (*i.e.* blind +vias are not supported) + + +File: pcb.info, Node: Element Objects, Next: Layer Objects, Prev: Via Objects, Up: Intro + +Elements +======== + + Elements represent the components on a board. Elements are loaded +from `ASCII' coded files in a similar manner to the layout file itself. +They are composed of lines and arcs on the silk-screen layer (used to +define the package outline) , pins (or pads for SMD) and three labels +that define the description, the element's layout-name (which also +appears on the silk- screen layer) and its value. Element pins are +contained on the first logical level and so reside on all layers. A +mark is used to position the element with respect to the cursor +cross-hair during pasting. SMD elements use pads instead of pins. +Pads are handled similarly to lines on a layer but they must be oriented +either vertically or horizontally. Pads can have either rounded or +square ends. All parts of an element are treated as one unit. It is +not possible to delete a single pin or break an element into pieces on +the layout. You can resize separate pieces of an element, but doing so +is usually a bad idea. + + Elements are supported by several special layers: *silk*, +*pins/pads* and *far-side*. The *silk* layer shows the package outline +and also holds legend text and element names. The *pins/pads* layer is +used to toggle whether the element's pins and pads are displayed. The +*far-side* layer controls visibility of objects (silkscreen and pads) +that are on the far (*i.e.* not currently viewed) side of the board. + + Every element file is preprocessed by a user-defined command when +the file is read. For details see `elementCommand', *Note Resources::. +`m4', the default value of `elementCommand', allows you to create +libraries for package definitions that are shared by all elements. The +element libraries distributed with `Pcb' expect `m4' or an equivalent +to be the *elementCommand*. + + `Pcb' can create a list of all connections from one (or all) +elements to the others or a list of unconnected pins. It can also +verify the layout connections against a netlist file. The element's +`layout-name' is the name used to identify an element in a netlist file. +The pin numbering for an element is defined by unique strings assigned +to each pin. In addition to the "pin number" string, each pin has a +"name" which describes its function. Previously element pin number was +established by the order of appearance of the pin definitions in the +layout or element file. Since the "number" strings for each pin are a +new feature, if they are absent then the numbering is again established +by the order of pin appearance in the file. In other words, the first +pin appearing in the file is pin one, the next pin is pin two and so on. +Usually the names assigned to pins are simply numbers, but they don't +have to be. It is only necessary that the "number" string for the pin +matches exactly the "number" string in the netlist file. Be aware that +a few of the library parts may still be incorrectly implemented +regarding pin-numbering. All of the DIL (Dual- Inline-Pins) parts are +correct and most of the others are too, but you should verify the pin +numbering of any non-DIL part (use the *Report Menu* to see what `Pcb' +thinks a pin's number is) before using the rats nest feature with a +library part. Hopefully sometime soon someone will volunteer to +cross-check all of the element libraries and make fixes available as +necessary. `Pcb' can also check a layout to see that it meets minimum +spacing and overlap rules. + + You can make your own quick-and-dirty element definitions +graphically now. Simply draw vias for the pins and lines and arcs on a +solder layer for the silkscreen outline. You should name each via with +the pin number. If you want to create a SMD device, draw lines for the +pads on a component side layer (You must draw these in pin number order +since lines can't be named). They must be either horizontal or vertical +or they will not be recognized as pads. Once you are happy with the +geometry, select everything that is to become part of the element, then +choose "cut to buffer" from the menu. Now select "convert buffer to +element" from the menu. Viola'! Afterwards you can make pin one +square (or pads) if you like, and give the element its various names. +Note that the element mark corresponds to the cut position when +everything was put into the buffer. If the vias are not named, then the +pin numbering will correspond to the order in which the vias were +placed. + + +File: pcb.info, Node: Layer Objects, Next: Line Objects, Prev: Element Objects, Up: Intro + +Layers +====== + + Every layout consists of several layers that can be used +independently or treated as a group. Layer groups can be used to +logically separate (and color-code) different traces (*e.g.* power and +signal); however, all layers within a group reside on the same physical +copper layer of a board, so using different layers within the same +group won't provide electrical separation where they touch or overlap. +For details, see `layerGroups', *Note Resources::. Each layer is drawn +in a color defined in the resource file (for details see `layerColor', +*Note Resources::) and identified by a name that you can change. +Layers are really just containers for line, polygon, and text objects. +The component and solder layers contain SMD elements as well, but the +file structure doesn't reflect that fact directly. Each layer group +represents a physical layer on the printed circuit board. If you want +to make a four layer board, you'll need to have four layer groups. +Connections between layer groups are established only through element +pins and vias. The relationship between a specific layer and the board +itself is configureable from the `Edit layer groups' option in the +`Objects' menu. The layer groups corresponding to the physical layers +*component-side* and *solder-side* are always defined, and you must map +at least one logical layer to each. Of course, you are not obligated +to put tracks on either of them. SMD-elements always reside on either +the component-side or the solder-side layer group. You can swap which +side of the board you are viewing by pressing *Tab*. You can +decide which layer group will be the solder side and which will be the +component side. The layers groups just have a name or number +associated with them - where they are sandwiched in the board is left +to the manufacturing processes. + + +File: pcb.info, Node: Line Objects, Next: Arc Objects, Prev: Layer Objects, Up: Intro + +Lines +===== + + Lines are used to draw tracks on the pc board. When in the line +mode, each ** press establishes one end of a line. Once the +second point is defined, the line is drawn and a new line started where +the first one ended. You can abondon the new starting point in favor +of another by pressing *Ctrl*. The undo function (*u*) will +take you back point by point if you use it while in the line mode. New +lines can be restricted to 45 degree angles if desired. You can toggle +this restriction on and off while creating lines by pressing *.* +(that is the *period* key). If the 45 degree restriction is turned on, +then the */* can be used to cylce through three different modes of +45 degree line creation. One mode just creates a single line forced to +the nearest 45 degree vector. The next mode creates two lines from the +start to end points such that the first line leaves the start point at +a 90 degree vector, and the second line enters the end point on a 45 +degree vector. The next mode creates two lines such that the first line +leaves the start point on a 45 degree vector and arrives at the end +point on a 90 degree vector. You can temporarily swap between the last +two modes by holding the shift key down. It is simple to edit a line +type object by breaking it into pieces (insert point mode), moving an +end point (or the whole line) (**), or changing +the layer it resides on (*m* moves the line under the pointer to +the active layer). In the case when two line segments meet at exactly +the same point you can delete the intermediate point, otherwise the +delete mode removes an entire line. Feel free to experiment since +`Pcb' will allow you to undo anything that materially affects your work. +If you switch active layers in the midst of placing lines a via will +automatically be placed, when necessary, in order to continue the +connection. + + +File: pcb.info, Node: Arc Objects, Next: Polygon Objects, Prev: Line Objects, Up: Into + +Arcs +==== + + With version 1.6 it is possible to draw copper arcs. The arcs are +restricted to be quarter circles. This means they always bend a right +angle. They are very similar to lines otherwise. They are created on +the current layer and have the same thickness that new lines will have. +The various clicks for creating lines work pretty much the same way +for creating arcs. The start point for the arc is at the first ** +position. In order to make the arc curve in the direction desired, +drag the mouse along the tangent line from the starting position +towards the end position. If the grid is too coarse, it may not be +possible to distinguish whether you've moved over then up, or up then +over, so if you can't seem to make the arc go the direction you want, +you should decrease the grid spacing. Alternatively you could drawn +the wrong arc, then rotate and move it where you want. Like the line +tool, after an arc is drawn a new starting point is established at the +end point. Whenever a start point is established by either the line or +arc tools it will be retained if you switch directly between the tools +(e.g. *F2* for Lines, *F8* for Arcs. Of course connection +searches, undo and all the other features you'd expect work with arcs +now. + + +File: pcb.info, Node: Polygon Objects, Next: Text Objects, Prev: Arc Objects, Up: Intro + +Polygons +======== + + Sometimes it's useful to fill large areas with solid copper. The +way to do this is with polygons. Polygons can be created in either the +polygon mode or the rectangle mode. In the polygon mode, you'll have +to define each corner of the polygon with a mouse click (**). +When the last point is clicked exactly on top of the starting point, +the polygon is finished. Since this can be hard to do, the +*Shiftp* will enter the final point for you, closing the polygon. +If the 45 degree angle restriction is turned on and you try to close +the polygon when it is not possible, you'll get a warning instead. If +you haven't finished entering a polygon, but want to undo one (or more) +of the points that you've already defined, use the undo command +(*u*). With the rectangle tool, defining the two opposite corners +is sufficient, but of course the resulting polygon is a rectangle. +Like lines, a polygon can by edited by deleting, inserting and moving +the points that define it. `Pcb' is capable of handling complex +polygons, but using a number of simpler ones improves performance of +the connection tracing code. + + A new feature in version 1.5 of `Pcb' automatically creates clearance +regions around pins and vias that pierce a polygon. This means that they +aren't electrically connected to the polygon unless you add "thermals" +to cross the clearance region. Thermals can be added and removed by +selecting the thermal mode and clicking ** on the pin or via. +Remember that this only creates connections to the polygon on the +active layer. The great advantage to this new polygon behavior is that +simple or complex ground and/or power planes can be easily made with +polygons and seen on the screen. If you don't want this auto-clearance +behavior, or you load a layout created by an earlier version of `Pcb', +the old behavior (shorts to all piercing pins and vias) is available. +A `ChangeSize' operation (*s*) toggles a polygon between the new +and old polygon/pin behavior. + + +File: pcb.info, Node: Text Objects, Prev: Polygon Objects, Up: Intro + +Text +==== + + Text objects should be used to label a layout or to put additional +information on the board, but not to identify elements because elements +have their own labels. Text is always horizontal when first created, +but the rotate mode can align it along 0, 90, 180 and 270 degree angles. +Text can be moved from any layer to the silk-screen layer with a +command in the `selection menu'. Text that is moved to the silk-screen +layer will appear on the solder-side silk-screen if it originating on a +solder-side layer. Otherwise moving it to the silk-screen layer will +put it on the component-side silk-screen. To move text back to a +copper layer from the silk-screen, use the `MoveToCurrentLayer' +(*m*) command. Text on the far side of the board will +automatically appear mirror-imaged. + + TEXT OBJECTS ON A COPPER LAYER CREATE COPPER LINES BUT THEY ARE NOT +SCANNED FOR CONNECTIONS OR TESTED FOR CREATING SHORTS VS. THE NETLIST. +NEITHER ARE TEXT OBJECTS TESTED AGAINST ANY DESIGN RULES. + + +File: pcb.info, Node: Getting Started, Next: User Commands, Prev: Intro, Up: Top + +Getting Started +*************** + + The goal of this chapter is to give you enough information to learn +how `Pcb' works and how to develop your layouts to make the best use of +`Pcb''s features. All event translations (*i.e.* the buttons and keys +you press) refer to the default application resource file shipped with +`Pcb'. There is probably no need to change them unless your window +manager uses some of the button events itself; however, if you *want* +to customize the behavior of `Pcb' then changing the resource file is +usually the best way to do it. + + Get yourself a printout of this chapter and *User Commands*, if you +haven't already done so, and follow the examples. An example layout +may be found in `example/68HC11'. An example illustrating some version +1.5 features is found in `example/LED' along with its corresponding +netlist file `example/LED.NET'. + + Start `Pcb' (the actual command will use all lower-case letters) +without any additional options. If you get the error message: + + can't find default font-symbol-file 'default_font' + + then the font searchpath or filename in the application resource + file is wrong. Be sure that your `m4' program supports searchpaths. +If not, get `GNU m4'. For other messages, see *Note problems::. +Another quick-start is provided by `pcbtest.sh' in the `src' directory. + +* Menu: + +* Application Window:: The elements of the main window. +* Log Window:: The optional logging window +* Library Window:: The circuit selection window +* Drawing and Removing:: +* Moving and Copying:: +* Loading and Saving:: +* Printing:: +* Connection Lists:: How to get a list of all or some connections. +* Selection:: Commands which handle more than one object. +* Rats Nest:: Helps you place and route tracks against a netlist. +* Design Rule Checking:: + + +File: pcb.info, Node: Application Window, Next: Log Window, Up: Getting Started + +The Application Window +====================== + + The main window consists of five areas: the menu at the top, the +control panel in the upper left corner, the mode buttons located below +the control panel, the drawing area to the right of these, and the +status line at the bottom of the window. + +* Menu: + +* Status-line and Input-field:: What is the program configuration. +* Control Panel:: Switch layers on/off; change current one. +* Mode Selectors:: Select an operation mode. +* Drawing Area:: Where the layout is drawn. +* Menu:: + + +File: pcb.info, Node: Status-line and Input-field, Next: Control Panel, Up: Application Window + +The Status-line and Input-field +------------------------------- + + The status-line is located at the bottom edge of the main window. +During normal operation the status information is visible there. When +a selected menu operation requires an additional button click, the +status-line is replaced by a message telling you to position the cursor +and click. When a text input is required, the status-line is replaced +by the Input-field which has a prompt for the typed input. + + The status-line shows, from left to right, the side of the board +that you are viewing (*Tab* changes this), if an absolute (abs) or +relative (rel) grid is used, if new lines are restricted to 45 degrees, +which type of 45 degree line mode is active, whether rubberband move and +rotate mode is on (R), the current grid values, and the zoom factor. +This information is followed by the line-width, via-size and drilling +hole in mil, text scaling, the active buffer number and the name of the +layout. An asterisk appearing at the left edge indicates the layout has +been modified since the last save. Note that the name of the layout is +not the same thing as the filename of the layout. + + The input-field pops up (temporarily replacing the status-line) +whenever user input is required. Two keys are bound to the input field: +*Escape* aborts the input, *Return* finishes it. + + The present cursor position is displayed in the upper right corner +of the window. Normally this position is an absolute coordinate, but +with version 1.5 of `Pcb' you can anchor a marker at the current cursor +location by pressing *Ctrlm* then the display will read both the +absolute cursor position as well as the difference between it and the +marker. Pressing *Ctrlm* again turns the marker off. + + +File: pcb.info, Node: Control Panel, Next: Mode Selectors, Prev: Status-line and Input-field, Up: Application Window + +The Control Panel +----------------- + + The control panel, located at the left side of the window, is used +to turn on and off the display of layer groups and to select the active +drawing layer. If a layer hasn't been named, the label "*(unknown)*" +is used as the defualt. + + The upper control box is used to switch layers on and off. Click +** on one or more of them. Each click toggles the setting. +The currently active layer can't be switched off. The layout is +refreshed when the pointer reenters the drawing area. This prevents +excessive redrawing when the visibility of several layers is changed. +When the layers are grouped, clicking on these fields will toggle the +visibility of all layers in the same group. This is a good idea because +layers in the same group reside on the same physical layer of the +actual board. Use the `Edit layer groups' option in the `Objects' menu +to change the layer groupings. Grouping layers is only useful for +helping you to color-code signals in your layout. Note that grouping +layers actually reduces the number of different physical layers +available for your board, thus to make an eight layer board, you cannot +group any layers. + + *far side* turns on and off the visibility of elements (including +SMD pads) on the opposite board side, as well as silk screening on that +side. It does not automatically hide the x-ray view of the other copper +layers, these must be turned off separately if desired. Use the *tab* +key to view the entire board from the other side. To see a view of +what the back side of the board will actually look like, make the +solder layer the active layer then press *tab* until the status line +says "solder" on the right, then turn off the visibility of all other +layers except pins/pads, vias, and silk. + + The lower control menu, named *active*, is used to change the active +drawing layer. ** pops up a menu to select a one. Each entry +is labeled with the layer's name and drawn in its color. The new +drawing layer is automatically made visible. Try changing the active +layer's name to *ABC* by selecting `set name of layer' from the `File' +menu. Changing the active layer also is available with *1..8*. + + +File: pcb.info, Node: Mode Selectors, Next: Drawing Area, Prev: Control Panel, Up: Application Window + +The Mode Selectors +------------------ + + The mode selector buttons reside below the control panel. They are +used to select the operation mode of `Pcb'. A mode can be thought of as +a tool that gets used when ** is pressed. Each mode causes the +cursor to take on a unique shape that identifies the tool. The buttons +themselves are icons that illustrate their function. The drawing modes +can also be selected from the keyboard: + *Escape* reset mode + *F1* via-mode + *F2* line-mode + *F3* pastebuffer-mode + *F4* rectangle-mode + *F5* text-mode + *F6* polygon-mode + *Insert* insert-point-mode + *F7* thermal-mode + *F8* arc-mode + The *Space* cycles through all of the modes in the mode button +palette. + + Reset-mode is really no mode, and ** has no effect with this +setting. Some of the modes are very simple, such as the via-mode. +Clicking ** while in this mode creates a via at the cross-hair +position. The pastebuffer-mode is similar. With this mode, ** +copies the contents of the active buffer to the layout, but only those +parts that reside on visible layers are copied. The rotate-mode allows +you to rotate elements and text objects 90 degrees counter-clockwise +with each click. The line-mode is explained in detail in *Note Line +Objects::. The arc-mode is explained in detainl in *Note Arc Objects::. +Rectangle-mode, polygon-mode and thermal-mode are explained in detail in +*Note Polygon Objects::. Remember that the thermal-mode will only +create and destroy thermals to polygons on the active layer. + + The insert-point-mode is an editing tool that allows you to add +points into lines or polygons. With version 1.5 of `Pcb', the +insert-point-mode enforces the 45 degree line rule. You can force only +the shorter line segment to 45 degrees by holding the shift key down +while inserting the point. The delete-mode deletes the smallest object +beneath the cursor with each ** click. If you use click at an +end-point that two lines have in common, it will replace the two lines +with a single line spanning the two remaining points. This can be used +to delete an "inserted" point in a line, restoring the previous line. + + +File: pcb.info, Node: Drawing Area, Next: Menu, Prev: Mode Selectors, Up: Application Window + +Drawing Area +------------ + + The drawing area is made from a viewport widget that also includes +two scrollbars. The cursor changes shape depending on the current +operation mode when the pointer is moved into the drawing area. A +crosshair follows the X11 pointer with respect to the grid setting. +Move around and watch the cursor position displayed in the upper right +of the window. Now select a new grid from the *Display* menu. The new +value is updated in the statusline. Now move again and watch the +difference. A different way to change the grid is *Shiftg* to +decrease or *g* to increase it. The grid setting is saved along +with the data when you save a pcb layout. For homemade layouts a value +around 50 is a good setting. The cursor also may be moved with the +cursor keys or, for larger distances, by pressing the *shift* modifier +together with a cursor key. + + +File: pcb.info, Node: Menu, Prev: Drawing Area, Up: Application Window + +Menu +---- + + The menus are located at the top of the drawing area. Most, but not +all, of their functions are also available from the keyboard. Some of +the entries such as *center* require a certain cursor position. In +this case a statusline will popup at the bottom with wording similar to +the following: + move pointer to the appropriate screen position and press a button + Any mouse button will do the job, whereas any key except the cursor +keys will cancel the operation. For details see *Note Actions::. + +`About' + There is no menu hiding behind this button, but a small + information box will pop up. + +`File' + This menu offers a choice of loading, saving and printing data, + saving connection information to a file or quitting the + application. You also may change the layout's or the active + layer's name. Selecting *print layout* pops up a printer control + dialog which is, hopefully, self explaining. This box contains a + panner widget (only `X11R5' and later) which simplifies adjusting + the offsets. With earlier releases the printout will always appear + in the upper left corner with respect to the media margins. + + A selection of several device drivers is available from the + printer control dialog. Presently *PostScript*, *encapsulated + PostScript*, and *GerberX* are supported. *GerberD* support may be + forthcoming. It requires a rastering engine that pcb presently + lacks. + +`Display' + The display menu supports the most needed functions related to + screen output. The entries are used to change the grid to some + popular values, the zoom factor, the displayed element name and + also are used to center or refresh the output. You also may + switch grid-displaying on or off and select between absolute grid + (origin at (0,0)) or relative grid (origin at the position where + the grid has been changed). The relative grid position is now + established at the actual pointer position, NOT necessarily the + same as the crosshair position. This allows you to shift the grid + without changing the grid spacing. I recommend that you zoom in + as close as possible before setting a relative grid so that you're + sure the grid lines fall where you want. The clipping to + 45-degree lines is selected in this menu, as well as enabling + rubberband mode (see description of *Mode*). + +`Sizes' + This menu allows you to select a group of line thickness, via + diameter and via drill size (collectively called a "routing + style") to be coppied to the "active" sizes. You can also change + the names given to these styles and adjust their values from this + menu. You can also edit the "active" sizes (the initial size of + new vias, drilling holes, lines, text-objects and the current + maximum size of the layout) from this menu. + +`Objects' + Displaying the pinout of an element and changing its names, the one + that is currently selected by the *Display* menu, as well as + editing a text object is offered by this menu. The latter two + selections require an additional pointer button click at the + object's position. A dialog for changing the layer groupings is + also reached from this menu. + +`Selection' + This menu covers most of the operations that work with selected + objects. You may either (un)select all visible objects of a + layout or only the ones which have been found by the last + connection scan. The mouse can also be used to change which things + are and are not selected: toggle the selection of a single object + by pressing ** and releasing without moving the mouse. + Pressing *Mod1*, moving and releasing the button selects + all visible objects inside the rectangle. Pressing the modifier + key *Shift* too, unselects all objects in the area. You can delete + all selected objects from this menu, and also move selected text + objects to the silk-screen layer. The other entries change the + sizes of visible and selected objects. + +`Buffer' + This menu handles pastebuffer related actions. You may select one + out of five (per viewing side) buffers to use, rotate or clear its + contents and paste it to the layout. You can also gather objects + in the buffer into an element definition from this menu. Note: + only visible objects are pasted to the layout. + +`Connections' + The entries available through the connections menu button allow + the user to find connections from pins or vias and to manipulate + these. The connection lists may be saved by selecting entries + from the *File* menu. In many cases it is desireable to use the + ratsnest function to check connections against a netlist file + instead of using the connections menu to generate text connection + lists. + +`Undo' + This menu is a frontend for managing the reversing of operations + such as remove, copy, move, name changes, etc. The number of + operations is unlimited (depending on memory). The list is cleared + if new layout data is loaded or by selecting the appropriate entry + from this menu. The inverse operation, redo, is also available. + +`Report' + This menu allows you to generate a dialog that summerizes + information about an object such as sizes and coordinates. You can + also get a report about all of the drills that are used on the + board. + + +File: pcb.info, Node: Log Window, Next: Library Window, Prev: Application Window, Up: Getting Started + +Log Window +========== + + This optional window is used to display all kind of messages +including the ones written to *stderr* by external commands. The main +advantage is that its contents are saved in a scrolling list until the +program exits. Disabling this feature by setting the resource +*useLogWindow* to *false* will generate popup windows to display +messages. The *stderr* of external commands will appear on `Pcb's +*stderr* which normally is the parent shell. I suggest you iconify the +window after startup for example by setting **log.iconic* to *true*. If +*raiseLogWindow* is set *true*, the window will deiconify and raise +itself whenever new messages are to be displayed. + + +File: pcb.info, Node: Library Window, Next: Drawing and Removing, Prev: Log Window, Up: Getting Started + +Library Window +============== + + First appearing in 1.4.1 the library window is one of the best new +features in my opinion. It simplifies loading circuits quiet a lot just +by selecting the appropriate type from the menu at the top. A circuit +is then selected by simply double-clicking on the text line. For +details on libraries check-out *Note Library File:: and *Note Library +Contents File::. + + +File: pcb.info, Node: Drawing and Removing, Next: Moving and Copying, Prev: Library Window, Up: Getting Started + +Drawing and Removing Basic Objects +================================== + + There are several ways of creating new objects: you may draw them +yourself, you may copy an existing object or you may load an element +from a file or library. Creating new objects is normally related to a +special mode depending on the object type. The notation of key and +button events is the same as described in the X11 Intrinsics manual. + + The operation mode may be selected by one of the mode selectors in +the bottom left corner, by one of the function keys listed earlier in +this chapter, or by pressing the space bar to cycle through the modes. +** sends a notify request to the application which responds +by creating or changing the appropriate object or at least takes the +first step to do so. Switching to a mode causes the cursor to take on a +unique shape and also causes the cooresponding mode selector button to +be drawn with thick lines. You can use either cue to see which mode is +currently selected. + + Removing objects is possible using *BackSpace* (or *Delete* +on some machines) which deletes the object at the cursor location. If +more than one object is located at the same position, the smallest +matching type will be chosen. If two or more of the same type are the +smallest at the position, then the newest one will be deleted. You +also may change to *remove-mode* and click ** at the location +of the objects which are to be removed. If you "remove" the end-point +where two lines connect, it will remove the point of connection leaving +a single line that spans the far end points. + + Rotating works in a similar fashion. Change the mode and press +** at the object's location. Remember only text, elements and +arcs can be rotated. (Anything including groups of objects may be +rotated inside a buffer using the rotate buffer menu option.) + + Insert mode provides the capability of inserting new points into +existing polygons or lines. The 45 degree line clipping is now enforced +when selected. Press and hold the shift key while positioning the new +point to only clip the line segment to the nearer of the two existing +points to 45 degrees. You can also toggle the 45-degree clipping in +the middle of a point insertion by pressing the *.* If the shift +key is not depressed and the 45 degree line clipping mode is on, both +new line segments must be on 45 degree angles - greatly restricting +where the new point may be placed. In some cases this can cause +confusion as to whether an insertion has been started since the two new +lines may be forced to lie parallel on top of the original line until +the pointer is moved far from the end points. + + Removing objects, changing their size or moving them only applies to +objects that are visible when the command is executed. + +* Menu: + +* Common:: Keystrokes common to some objects. +* Lines:: +* Arcs:: +* Polygons:: Drawing polygons and rectangles. +* Text:: +* Vias:: +* Elements:: +* Pastebuffer:: A multi-purpose buffer. + + +File: pcb.info, Node: Common, Next: Lines, Up: Drawing and Removing + + There are several keystrokes and button events refering to an +*object* without identifying its type. Here's a list of them: + + ** creates (or deletes) an object depending on the +current mode. + + *BackSpace* or *Delete* removes the visible object at the +cursor location. When more than one object exists at the location, the +order of removal is: via, line, text, polygon and element. The drawn +layer order also affects the search - whatever is top - most (except +elements) is affected before lower items. Basically all this means +that what is removed is probably just what you expect. If for some +reason it isn't, undo and try again. Only one object is removed for +each keystroke. If two or more of the same type match, the newest one +is removed. + + Use *s* and *Shifts* to change the size (width) of lines, +arcs, text objects, pins, pads and vias, or to toggle the style of +polygons (whether pins and vias automatically have clearances). + + *n* changes the name of pins, pads, vias, the string of a text +object, or the currently displayed label of an element. + + *m* moves the line, arc, or polygon under the crosshair to the +active layer if it wasn't on that layer already. + + *u* (undo) recovers from an unlimited number of operations such +as creating, removing, moving, copying, selecting etc. It works like +you'd expect even if you're in the midst of creating something. + + *Shiftr* restores the last undone operation provided no other +changes have been made since the undo was performed. + + *tab* changes the board side you are viewing. + + For a complete list of keystrokes and button events see *Note +Translations::. + + +File: pcb.info, Node: Lines, Next: Arcs, Prev: Common, Up: Drawing and Removing + +Lines +----- + + To draw new lines you have to be in *line-mode*. Get there either by +selecting it from the *Tool palette* or by pressing *F2*. Each +successive *notify* event creates a new line. The adjustment to 45 +degree lines is done automatically if it is selected from the *Display* +menu. You can toggle the 45 degree mode setting by pressing the +*.* (That is the period key). When 45 degree enforcement is turned +on there are three distinct modes of line creation: a single line on +the closest 45 degree vector towards the crosshair (but not necessarily +actually ending at the crosshair), two lines created such that the +first leaves the start point on a 90 degree vector and the second +arrives at the crosshair on a 45 degree vector, and finally two lines +created such that the first leaves the start point on a 45 degree +vector and the second arrives at the crosshair on a 90 degree vector. +These last two modes always connect all the way from the start and end +points, and all lines have angles in 45 degree multiples. The */* +cycles through the three modes. The status line shows a text icon to +indicate which of the modes is active and the lines following the +crosshair motion show the outline of the line(s) that will actually be +created. Press *Escape* to leave line-mode. + + *l*, *Shiftl* and the entries in the *Sizes* menu change +the initial width of new lines. This width is also displayed in the +status line. + + +File: pcb.info, Node: Arcs, Next: Polygons, Prev: Lines, Up: Drawing and Removing + +Arcs +---- + + An Arc is drawn with the *arc-tool*. Get there either by selecting +it from the *Tool palette* or by pressing *F8*. Press *Btn1* to +define the starting point for the arc. Drag the mouse towards the +desired end point along the path you want the arc to follow. The +outline of the arc that will be created is shown on the screen as you +move the mouse. Arcs are always forced to be 90 degrees and have +symmetrical length and width ( i.e. they are a quarter circle). The +next *Btn1* click creates the arc. It will have the same width as new +lines (displayed in the status line) and appear on the active layer. +The arc leaves the starting point towards the crosshair along the axis +whose distance from the crosshair is largest. Normally this means that +if you drag along the path you want the arc to follow, you'll get what +you want. If the grid is set to the arc radius, then the two distances +will be equal and you won't be able to get all of the possible +directions. If this is thwarting your desires, reduce the grid spacing +(*!ShiftG*) and try again. + + +File: pcb.info, Node: Polygons, Next: Text, Prev: Arcs, Up: Drawing and Removing + +Polygons and Rectangles +----------------------- + + A polygon is drawn by defining all of its segments as a series of +consecutive line segments. If the first point matches a new one and if +the number of points is greater than two, then the polygon is closed. +Since matching up with the first point may be difficult, you may use +*Shiftp* to close the polygon. The *Shiftp* won't work if +clipping to 45 degree lines is selected and the final segment cannot +match this condition. I suggest you create simple convex polygons in +order to avoid a strong negative impact on the performance of the +connection scanning routines. The *rectangle-mode* is just an easy way +to generate rectangular polygons. *Polygon-mode* also is selected by +*F6* whereas *rectangle-mode* uses *F4*. Pressing a +** at two locations creates a rectangle by defining two of +its corners. *Insert* brings you to *insert-point-mode* which +lets you add additional points to an already existing polygon. Single +points may be removed by moving the crosshair to them and selecting one +of the delete actions *(remove-mode, BackSpace, or Delete*. This only +works if the remaining polygon will still have three or more corners. +Pressing *u* or *p* while entering a new polygon brings you +back to the previous corner. Removing a point does not force clipping +to 45 degree angles (because it's not generally possible). Newly +created polygons will not connect to pins or vias that pierce it unless +you create a thermal (using the thermal mode) to make the connection. +If the edge of a polygon gets too close to a pin or via that lies +outside of it, a warning will be issued and the pin will be given a +special color. Increasing the distance between them will remove the +warning color. + + +File: pcb.info, Node: Text, Next: Vias, Prev: Polygons, Up: Drawing and Removing + +Text +---- + + Pressing *F5* or clicking one of the text selector buttons +changes to *text-mode*. Each successive notify event (**) +pops up the input line at the bottom and queries for a string. Enter +it and press *Return* to confirm or *Escape* to abort. The +text object is created with its upper left corner at the current pointer +location. The initial scaling is changed by *t* and *Shiftt* +or from the *Sizes* menu. + + Now switch to *rotate-mode* and press ** at the +text-objects location. Text objects on the solder side of the layout +are automatically mirrored and flipped so that they are seen correctly +when viewing the solder-side. + + Use *n* to edit the string. + + TEXT OBJECTS ON COPPER LAYERS CREATE COPPER LINES BUT THEY ARE NOT +SCANNED FOR CONNECTIONS. If they are moved to the silkscreen layer, they +no longer create copper. + + +File: pcb.info, Node: Vias, Next: Elements, Prev: Text, Up: Drawing and Removing + +Vias +---- + + The initial size of new vias may be changed by *v* and +*Shiftv* or by selecting the appropriate entry from the *Sizes* +menu. *Mod1v* and *Mod1 Shiftv* do the same for the drilling +hole of the via. The statusline is updated with the new values. +Creating a via is similar to the other objects. Switch to *via-mode* by +using either the selector button or *F1* then press *]* or +** to create one. *n* changes the name of a via. If you +want to create a mounting hole for your board, then you can place a via +where you want the hole to be then convert the via into a hole. The +conversion is done by pressing *!Ctrlh* with the crosshair over +the via. Conceptually it is still a via, but it has no copper annulus. +If you create such a hole in the middle of two polygons on different +layers, it will short the layers. Theoretically you could arrange for +such a hole not to be plated, but a metal screw inserted in the hole +would still risk shorting the layers. A good rule is to realize that +holes in the board really are vias between the layers and so place them +where they won't interfere with connectivity. You can convert a hole +back into a normal via with the same keystroke used to convery it in +the first place. + + +File: pcb.info, Node: Elements, Next: Pastebuffer, Prev: Vias, Up: Drawing and Removing + +Elements +-------- + + Some of the functions related to elements only work if both the +package layer and the pin layer are switched on. + + Now that you're familiar with many of the basic commands, it is time +to put the first element on the layout. First of all, you have to load +data into the paste buffer. There are four ways to do this: + 1) load the data from a library + 2) load the data from a file + 3) copy data from an already existing element + 4) convert objects in the buffer into an element + We don't have any elements on the screen yet nor anything in the +buffer, so we use number one. + + Select *lsi* from the menu in the library window press ** +twice at the appropriate text-line to get the MC68030 CPU. The data is +loaded and the mode is switched to *pastebuffer-mode*. Each notify +event now creates one of these beasts. Leave the mode by selecting a +different one or by *Escape* which resets all modes.. The +crosshair is located at the *mark* position as defined by the data +file. Rotating the buffer contents is done by selecting the *rotate* +entry of the *Buffer* menu or by pressing *ShiftF3*. The contents +of the buffer are valid until new data is loaded into it either by a +cut-to-buffer operation, copy-to-buffer operation or by loading a new +data file. There are 5 buffers available. Switching between them is +done by selecting a menu entry or by *Shift1..5*. Each of the two +board sides has its own buffers. + + The release includes all data files for the circuits that are used +by the demo layout. The elements in the LED example are not found in +the library, but you can lift them from the example itself if you want. +If you have problems with the color of the crosshair, change the +resource *crosshairColor* setting to a different one. + + Now load a second circuit, the MC68882 FPU for example. Create the +circuit as explained above. You now have two different unnamed +elements. Unnamed means that the layout-name of the element hasn't been +set yet. Selecting *description* from the *Display* menu displays the +description string of the two circuits which are CPU and FPU. The +values of the circuits are set to MC68030 and MC68882. Each of the +names of an element may be changed by *n* at the elements location +and editing the old name in the bottom input line. Naming pins and vias +is similar to elements. You can hide the element name so that it won't +appear on the board silkscreen by pressing *h* with the cursor +over the element. Doing so again un-hides the element name. + + Entering `:le' and selecting an element data file is the second way +to load circuits. + + The third way to create a new element is to copy an existing one. +Please refer to *Note Moving and Copying::. + + The fourth way to create a new element is to convert a buffer's +contents into an element. Here's how it's done: Select the Via-tool +from the *Tool pallette*. Set the grid spacing to something +appropriate for the element pin spacing. Now create a series of vias +where the pins go. Create them in pin number order. It is often handy +to place a reference point (*!Ctrlm*) in the center of the first +pin in order to measure the location of the other pins. Next make a +solder-side layer the active layer from the *active-layer* popup menu. +Now draw the outline of the element using lines and arcs. When you're +done, select everything that makes up the element with a box selection +(* drag, *). Now select "cut selection to buffer" +from the *Buffer* menu. Position the cursor over the center of pin 1 +and press the left button to load the data into the buffer. Finally +select "convert buffer to element" from the *Buffer* menu. You'll only +want to create elements this way if they aren't already in the library. +It's also probably a good idea to do this before starting any of the +other aspects of a layout, but it isn't necessary. + + To display the pinout of a circuit move to it and press *Shiftd* +or select *show pinout* from the *Objects* menu. A new window pops up +and displays the complete pinout of the element. This display can be +difficult to read if the component has been rotated 90 degrees :-( +therefore, the new window will show an un-rotated view so the pin names +are readable. *d* displays the name of one or all pins/pads +inside the drawing area, this is only for display on-screen, it has no +effect on any printing of the layout. + + You also may want to change a pin's or pad's current size by pressing +*s* to increase or *Shifts* to decrease it. While this is +possible, it is not recommended since care was probably taken to define +the element structure in the first place. You can also change the +thickness of the element's silkscreen outline with the same keys. You +can change whether a pin or SMD pad is rounded or square with the +*q*. SMD pads should usually have squared ends. Finally, you can +change whether the non-square pins are round or octagonal with the +*!Ctrlo*. + + SMD elements and silkscreen objects are drawn in the "invisible +object" color if they are located on the opposite side of the board. + + For information on element connections refer to *Note Connection +Lists::. + + +File: pcb.info, Node: Pastebuffer, Prev: Elements, Up: Drawing and Removing + +Pastebuffer +----------- + + The linestack and element-buffer of former releases have been +replaced by 5 multi-purpose buffers that are selected by +*Shift1..5*. The status line shows which buffer is the active one. +You may load data from a file or layout into them. Cut-and-paste works +too. If you followed the instructions earlier in this chapter you +should now have several objects on the screen. Move the crosshair to +one of them and press ** to toggle its selection flag. (If +you drag the mouse while the button is down, a box selection will be +attempted instead of toggling the selection.) The object is redrawn in +a different color. You also may want to try moving the pointer while +holding the third button down and release it on a different location. +This selects all objects inside the rectangle and unselects everything +else. If you want to add a box selection to an existing selection, +drag with *Mod1* instead. Dragging *Shift Mod1* +unselects objects in a box. Now change to *pastebuffer-mode* and +select some operations from the *Buffer* menu. Copying objects to the +buffer is available as *Mod1c* while cutting them uses +*Mod1x* as shortcut. Both clear the buffer before new data is +added. If you use the menu entries, you have to supply a crosshair +position by pressing a mouse button. The objects are attached to the +pastebuffer relative to that crosshair location. Element data or PCB +data may be merged into an existing layout by loading the datafiles +into the pastebuffer. Both operations are available from the *File* +menu or as user commands. + + +File: pcb.info, Node: Moving and Copying, Next: Loading and Saving, Prev: Drawing and Removing, Up: Getting Started + +Moving and Copying +================== + + All objects can be moved including element-names, by **, +draging the pointer while holding the button down and releasing it at +the new location of the object. If you use *Mod1* instead, +the object is copied. Copying does not work for element-names of +course. You can move all selected objects with *Shift *. +This uses the Pastebuffer, so it will remove whatever was previously in +the Pastebuffer. Please refer to *Note Pastebuffer::. If you want to +give a small nudge to an object, but you don't think that the mouse +will give you the fine level of control that you want, you can position +the cursor over the object, press *[*, move it with the arrow +keys, then press *]* when it's at the desired position. Remember +that all movements are forced onto grid coordinates, so you may want to +change the grid spacing first. + + +File: pcb.info, Node: Loading and Saving, Next: Printing, Prev: Moving and Copying, Up: Getting Started + +Loading and Saving +================== + + After your first experience with `Pcb' you will probably want to save +your work. `:s name' passes the data to an external program which is +responsible for saving it. For details see *saveCommand* in *Note +Resources::. Saving also is available from the *File* menu, either +with or without supplying a filename. `Pcb' reuses the last filename if +you do not pass a new one to the save routine. + + To load an existing layout either select *load layout data* from the +*File* menu or use `:l filename'. A file select box pops up if you +don't specify a filename. Merging existing layouts into the new one is +supported either by the *File* menu or by `:m filename'. + + `Pcb' saves a backup of the current layout depending on the resource +*backup*. The file is named `/tmp/PCB.%i.backup'. During critical +sections of the program or when data would be lost it is saved as +`/tmp/PCB.%i.save'. *%i* is replaced by the process ID. + + +File: pcb.info, Node: Printing, Next: Connection Lists, Prev: Loading and Saving, Up: Getting Started + +Printing +======== + + `Pcb' now has support for device drivers, `PostScript', +*encapsulated PostScript*, and *Gerber X* drivers are available so far. +The *Gerber X* driver generates a NC drill file for automated drilling. +I recommend the use of `GhostScript' if you don't have a `PostScript' +printer for handling the PostScript output. Printing always generates a +complete set of files for a specified driver. See the page about the +*Print()* action for addtional information about the filenames. The +control panel offers a number of options. Most of them are not avilable +for Gerber output because it wouldn't make sense, for example, to +scale the gerber output (you'd get an incorrectly made board!) The +options are: + +`device' + The top menu button selects from the available device drivers. + +`rotate' + Rotate layout 90 degrees counter-clockwise before printing + (default). + +`mirror' + Mirror layout before printing. Use this option depending on your + production line. + +`color' + Created colored output. All colors will be converted to black if + this option is inactive. + +`outline' + Add a board outline to the output file. The size is determined by + the maximum boardsize changeable from the *sizes* menu. The + outline appears on the top and bottom sides of the board, but not + on the internal layers. An outline can be useful for determining + where to shear the board from the panel, but be aware that it + creates a copper line. Thus it has the potential to cause short + circuits if you don't leave enough room from your wiring to the + board edge. Use a viewer to see what the output outline looks like + if you want to know what it looks like. + +`alignment' + Additional alignement targets are added to the output. The + distances between the board outline is set by the resource + *alignmentDistance*. Alignment targets should only be used if you + know for certain that YOU WILL BE USING THEM YOURSELF. It is + extremely unlikely that you will want to have alignment targets if + you send gerber files to a commercial pcb manufacture to be made. + +`scaling' + It's quite useful to enlarge your printout for checking the layout. + Use the scrollbar to adjust the scaling factor to your needs. + +`media' + Select the size of the output media from this menu. The user + defined size may be set by the resource *media* either from one of + the well known paper sizes or by a `X11' geometry specification. + This entry is only available if you use `X11R5' or later. For + earlier releases the user defined size or, if not available, *A4* + is used. Well known size are: + A3 + A4 + A5 + letter + tabloid + ledger + legal + executive + +`offset' + Adjust the offsets of the printout by using the panner at the + right side of the dialog box. This entry is only available if you + use `X11R5' or later. A zero offset is used for earlier releases. + +`8.3 filenames' + Select this button to generate DOS compatible filenames for the + output files. The *command* input area will disappear if selected. + +`commandline' + Use this line to enter a command (starts with `|') or a filename. + A %f is replaced by the current filename. The default is set by + the resource *printCommand*. + + The created file includes some labels which are guaranteed to stay +unchanged +`PCBMIN' + identifies the lowest x and y coordinates in mil. + +`PCBMAX' + identifies the highest x and y coordinates in mil. + +`PCBOFFSET' + is set to the x and y offset in mil. + +`PCBSCALE' + is a floating point value which identifies the scaling factor. + +`PCBSTARTDATA' +`PCBENDDATA' + all layout data is included between these two marks. You may use + them with an `awk' script to produce several printouts on one + piece of paper by duplicating the code and putting some + `translate' commands in front. Note, the normal `PostScript' + units are 1/72 inch. + + +File: pcb.info, Node: Connection Lists, Next: Selection, Prev: Printing, Up: Getting Started + +Connection Lists +================ + + After completing parts of your layout you may want to check if all +drawn connections match the ones you have in mind. This is probably +best done in conjunction with a net-list file: see *Note Rats Nest::. +The following examples give more rudimentary ways to examine the +connections. + 1) create at least two elements and name them + 2) create some connections between their pins + 3) optionally add some vias and connections to them + + Now select *lookup connection* from the *Connections* menu, move the +cursor to a pin or via and press any mouse button. `Pcb' will look for +all other pins and/or vias connected to the one you have selected and +display the objects in a different color. Now try some of the reset +options available from the same menu. + + There also is a way to scan all connections of one element. Select +*a single element* from the menu and press any button at the element's +location. All connections of this element will be saved to the +specified file. Either the layout name of the element or its canonical +name is used to identify pins depending on the one which is displayed +on the screen (may be changed by *Display* menu). + + An automatic scan of all elements is initiated by choosing *all +elements*. It behaves in a similar fashion to scanning a single element +except the resource *resetAfterElement* is used to determine if +connections should be reset before a new element is scanned. Doing so +will produce very long lists because the power lines are rescanned for +every element. By default the resource is set to *false* for this +reason. + + To scan for unconnected pins select *unused pins* from the same menu. + + +File: pcb.info, Node: Selection, Next: Rats Nest, Prev: Connection Lists, Up: Getting Started + +Selection +========= + + Some commands mentioned earlier in this chapter also are able to +operate on all selected and visible objects. Now go back to the layout +and toggle the selection flag of a single one by **. Try +**, move the pointer while holding the button down and +release it on a different location. This selects all objects inside +the rectangle and unselects everything else. Dragging with +*Mod1* adds everything in the box to the existing selection. +Dragging *Shift * unselects objects in the box. + + The entries of the *Selection* menu are hopefully self-explanatory. +Many of the *Action Commands* can take various key words that make them +function on all or some of the selected items. + + +File: pcb.info, Node: Rats Nest, Next: Design Rule Checking, Prev: Selection, Up: Getting Started + +Rats Nest +========= + + If you have a netlist that corresponds to the layout you are working +on, you can use the rats-nest feature to add rat-lines to the layout. +First you will need to load a netlist file (see *:rn*, *Note User +Commands::). *w* adds rat-lines on the active layer using the +current line thickness shown in the status line (usually you'll want +them to be thin lines). Only those rat-lines that fill in missing +connectivity (since you have probably routed some connections already) +are added. If the layout is already completely wired, nothing will be +added, and you will get a message that the wiring is complete. + + Rat-lines are lines having the special property that they only +connect to pins and pads at their end points. Rat-lines are drawn on +the screen with a stippled pattern to make them easier to identify +since they have special behavior and cannot remain in a completed +layout. Rat-lines are added in the minimum length straight-line tree +pattern (always ending on pins or pads) that satisfies the missing +connectivity in the circuit. Used in connection with moves and rotates +of the elements, they are extremely useful for deciding where to place +elements on the board. The rat-lines will always automatically +rubberband to the elements whether or not the rubberband mode is on. +The only way for you to move them is by moving the parts they connect +to. This is because it is never desireable to have the rat-lines +disconnected from their element pins. Rat-lines will normally +criss-cross all over which gives rise to the name "rats nest" +describing a layout connected with them. If a SMD pad is unreachable +on the active layer, a warning will be issued about it and the rat-line +to that pad will not be generated. + + A common way to use rats nests is to place some elements on the +board, add the rat-lines, and then use a series of moves/rotates of the +elements until the rats nest appears to have minimum tangling. You may +want to iterate this step several times. Don't worry if the layout +looks messy - as long as you can get a sense for whether the +criss-crossing is better or worse as you move things, you're fine. +After moving some elements arround, you may want to optimize the rats +nest *o* so that the lines are drawn between the closest points +(this can change once you've moved components). Adding rat-lines only +to selected pads/pins (*Shiftw*) is often useful to layout a +circuit a little bit at a time. Sometimes you'll want to delete all +the rat-lines (*e*) or selected rat-lines (*Shifte*) in order +to reduce confusion. With a little practice you'll be able to achieve +a near optimal component placement with the use of a rats nest. + + Rat-lines are not only used for assisting your element placement, +they can also help you to route traces on the board. Use the *m* +to convert a rat-line under the cursor into a normal line on the active +layer. Inserting a point into a rat-line will also cause the two new +lines to be normal lines on the board. Another way that you can use +rat-lines is to use the *f* with the cursor over a pad or pin. +All of the pins and pads and rat-lines belonging to that net will be +highlighted. This is a helpful way to distinguish one net from the rest +of the rats nest. You can then route those tracks, turn off the +highlighting (*Shiftf*) and repeat the process. This will work even +if the layer that the rat-lines reside on is made invisible - so only +the pins and pads are highlighted. Be sure to erase the rat-lines +(*e* erases them all) once you've duplicated their connectivity by +adding your own lines. When in doubt, the *o* will delete only +those rat-lines that are no longer needed. + + If connections exist on the board that are not listed in the netlist +when *w* is pressed, warning messages are issued and the affected +pins and pads are drawn in a special *warnColor* until the next +*Notify()* event. If the entire layout agrees completely with the +netlist, a message informs you that the layout is complete and no +rat-lines will be added (since none are needed). If the layout is +complete, but still has rat-lines then you will be warned that +rat-lines remain. If you get no message at all it's probably because +some elements listed in the net list can't be found and where reported +in an earlier message. There shouldn't be any rat-lines left in a +completed layout, only normal lines. + + The *Shiftw* is used to add rat-lines to only those missing +connections among the selected pins and pads. This can be used to add +rat-lines in an incremental manner, or to force a rat-line to route +between two points that are not the closest points within the net. +Often it is best to add the rats nest in an incremental fashion, laying +out a sub-section of the board before going further. This is easy to +accomplish since new rat-lines are never added where routed +connectivity already makes the necessary connections. + + +File: pcb.info, Node: Design Rule Checking, Prev: Rats Nest, Up: Getting Started + +Design Rule Checking +==================== + + After you've finished laying out a board, you may want to check to +be certain that none of your interconnections are too closely spaced or +too tenuously touching to be reliably fabricated. The design rule +checking (DRC) function does this for you. Use the command ":DRC()" +(without the quotes of course) to invoke the checker. If there are no +problem areas, you'll get a message to that effect. If any problem is +encountered, you will get a message about it and the affected traces +will be highlighted. One part of the tracks of concern will be +selected, while the other parts of concern will have the +"FindConnection" highlighting. The screen will automatically be +centered in the middle of the object having the "FindConnection" +(Green) highlighting. The middle of the object is also the coordinates +reported to be "near" the problem. The actual trouble region will be +somewhere on the boundary of this object. If the two parts are from +different nets then there is some place where they approach each other +closer than the minimum rule. If the parts are from the same net, then +there is place where they are only barely connected. Find that place +and connect them better. + + After a DRC error is found and corrected you must run the DRC again +because the search for errors is halted as soon as the first problem is +found. Unless you've been extremely careless there should be no more +than a few design rule errors in your layout. The DRC checker does not +check for minimum spacing rules to copper text, so always be very +careful when adding copper text to a layout. The rules for the DRC are +specified in the application resource file. The minimum spacing value +(in mils) is given by the *Settings.Bloat* value. The default is 7 +mils. The minimum touching overlap (in mils) is given by the +*Settings.Shrink* value. This value defaults to 5 mils. Check with your +fabrication process people to determine the values that are right for +you. + + If you want to turn off the highlighting produced by the DRC, +perform an undo (assuming no other changes have been made). To restore +the highlighting, use redo. The redo will restore the highlighting +quickly without re-running the DRC checker. + + +File: pcb.info, Node: User Commands, Next: Command-Line Options, Prev: Getting Started, Up: Top + +User Commands +************* + + The entering of user-commands is initiated by the action routine +*Command()* (the `(":")' character) and finished by either *Return* +or *Escape* to confirm or to abort. These two keybindings cannot +be changed from the resource file. The triggering event, normally a +key press, is ignored. The input area will replace the bottom +statusline. It pops up when *Command()* is called. The arguments of the +user-commands are passed to the external commands without modification. +See also, the resource *saveInTMP*. + + There are simple *usage* dialogs for each command and one for the +complete set of commands. + +`l [filename]' + Loads a new datafile (layout) and, if confirmed, overwrites any + existing unsaved data. The filename and the searchpath + (*filePath*) are passed to the command defined by *fileCommand*. + If no filename is specified a file select box will popup. + +`le [filename]' + Loads an element description into the paste buffer. The filename + and the searchpath (*elementPath*) are passed to the command + defined by *elementCommand*. If no filename is specified a file + select box will popup. + +`m [filename]' + Loads an layout file into the paste buffer. The filename and the + searchpath (*filePath*) are passed to the command defined by + *fileCommand*. If no filename is specified a file select box will + popup. + +`q[!]' + Quits the program without saving any data (after confirmation). + q! doesn't ask for confirmation, it just quits. + +`s [filename]' + Data and the filename are passed to the command defined by the + resource *saveCommand*. It must read the layout data from *stdin*. + If no filename is entered, either the last one is used again or, + if it is not available, a file select box will pop up. + +`rn [filename]' + Reads in a netlist file. If no filename is given a file select + box will pop up. The file is read via the command defined by the + *RatCommand* resource. The command must send its output to + *stdout*. The netlist received by pcb must have this simple text + form: + + netname NAME-PINNUM NAME2-PINNUM2 NAME3-PINNUM3 ... [\] + + where "netname" is the name of the net (currently its value is + ignored but it must be present nonetheless), NAME is the + layout-name given to an element, and PINNUM is the (usually + numeric) pin number of the element that is part of the net (see + *Note Element Objects:: for details on pin numbering). Spaces or + tabs separate the fields. If the line ends with a "\" the net + continues on the next line and the "\" is treated exactly as if it + were a space. If the NAME ends with a lower-case letter, all + lower-case letters are stripped from end of the NAME to determine + the matching name-on-board name. For example: + + Data U1-3 U2abc-4 FLOP1a-7 Uabc3-A9 + + would specifiy that pin 3 of U1 be connected to pin 4 of U2, to + pin 7 of FLOP1 and to pin A9 of Uabc3. Note that if pin numbers + contain alphabetic characters, they must match the case contained + in the "number" string defining the pin number on the + cooresponding element. It is up to you to name the elements so + that their layout-names agrees with the netlist. Netlists are + used for generating rats nest (see *Note Rats Nest::) and for + verifying the board layout (which is also accomplished by the + *Ratsnest* command. + +`w[q] [filename]' + These commands have been added for the convenience of `vi' users + and have the same functionality as *s* combined with *q*. + +`actionCommand' + Causes the actionCommand to be executed. This allows you to + initiate actions for which no bindings exist in the resource file. + It can be used to initiate any action with whatever arguments you + enter. This makes it possible to do things that otherwise would + be extremely tedious. For example, to change the drilling hole + diameter of all vias in the layout to 32 mils, you could select + everything using the selection menu, then type + "*:ChangeDrillSize(SelectedVias, 32)*". (This will only work + provided the via's diameter is sufficiently large to accomodate a + 32 mil hole). Another example might be to set the grid to 1 mil + by typing "*:SetValue(Grid, 1)*". Note that some actions use the + current cursor location, so be sure to place the cursor where you + want before entering the command. This is one of my favorite new + features in 1.5 and can be a powerful tool. Study the *Note + Actions:: section to see what actions are available. + + +File: pcb.info, Node: Command-Line Options, Next: X11 Interface, Prev: User Commands, Up: Top + +Command-Line Options +******************** + + There are several resources which may be set or reset in addition to +the standard toolkit command-line options. For a complete list refer to +*Note Resources::. + + The synopsis is: + + `pcb [-option ...] [-toolkit_option ...] [layout-file]' + + or + + `pcb -specialoption' + +* Menu: + +* Options:: `Pcb' command-line options. +* Special Options:: Version and copyright information. + + +File: pcb.info, Node: Options, Next: Special Options, Up: Command-Line Options + +Options +======= + +`-alldirections/+alldirections' + Disables or enables line clipping to 45 degree angles. Overwrites + the resource *allDirectionLines*. + +`-backup value' + Time between two backups in seconds. Passing zero disables the + backup feature. Overwrites the resource *backupInterval*. + +`-c value' + Number of characters per output line. The resource + *charactersPerLine* is overwritten. + +`-fontfile filename' + The default set of symbols (font) for a new layout is read from + this file. All directories as defined by the resource *fontPath* + are scanned for the file. The scan is only performed if the + filename doesn't contain a directory component. The *fontFile* + resource is changed. + +`-lelement command-line' + Sets the command to be executed when an element is loaded from a + file to the paste buffer. The command may contain %f and %p to + pass the requested filename and the searchpath to the command. It + must write the data to its standard output. The related resource + is *elementCommand*. + +`-lfile command-line' + Sets the command to be executed when a new layout is loaded from a + file. The command may contain %f and %p to pass the requested + filename and the searchpath to the command. It must write the data + to its standard output. The related resource is *fileCommand*. + +`-lfont command-line' + Sets the command to be executed when a font is loaded from a file. + The command may contain %f and %p to pass the requested filename + and the searchpath to the command. It must write the data to its + standard output. The related resource is *fontCommand*. + +`-lg layergroups' + This option overwrites the resource *layerGroups*. See its + description for more information. The value is used for new + layouts only. + +`-libname filename' + The default filename for the library. Overwrites the resource + *libraryFilename*. + +`-libpath path' + The default search path for the the library. Overwrites the + resource *libraryPath*. + +`-llib command-line' + Sets the command to be executed when an element is loaded from the + library. The command may contain %f and %p to pass the requested + filename and the searchpath to the command. %a is replaces by the + three arguments *template*, *value* and *package*. The command + must write the data to its standard output. The related resource + is *libraryCommand*. + +`-llibcont command-line' + The command lists the contents of the library. The command may + contain %f and %p to pass the library filename and the searchpath + to the command. Also refer to *Note Library File:: and *Note + Library Contents File::. The related resource is + *libraryContentsCommand*. + +`-loggeometry geometry' + Determines the geometry of the log window. + +`-pnl value' + Restricts the displayed length of the name of a pin in the pinout + window to the passed value. See also, the resource + *pinoutNameLength*. + +`-pz value' + Sets the zoom factor for the pinout window according to the + formula: scale = 1:(2 power value). The related resource is + *pinoutZoom*. + +`-reset/+reset' + If enabled, all connections are reset after each element is + scanned. This feature is only used while scanning connections to + all elements. See also, *resetAfterElement*. + +`-ring/+ring' + Overrides the resource *ringBellWhenFinished*. If enabled, the bell + sounds when connection searching has finished. + +`-rs string' + Overrides the resource *routeStyle*. The string defines a colon + separated list of route styles. The route styles consist of a + comma separated list of name, line thickness, via diameter, and + via drill size. e.g. + "Fat,50,100,40:Skinny,8,35,20:75Ohm,110,110,20" + +`-s/+s' + Enables/Disables the saving of the previous commandline. Overrides + the *saveLastCommand* resource. + +`-save/+save' + See the resource description of *saveInTMP* for details. + +`-sfile command-line' + Sets the command to be executed when an layout file is saved. The + command may contain %f which is replaced by the filename. The + command must read its data from the standard input. The resource + *saveCommand* is overwritten. + +`-size x' + Overrides the resource *size* which determines the maximum size of + a layout. + +`-v value' + Sets the volume of the X speaker. The value is passed to `XBell()' + and must be in the range -100..100. + + +File: pcb.info, Node: Special Options, Prev: Options, Up: Command-Line Options + +Special Options +=============== + + There are some special options available in addition to normal +command line options. Each of these must be the only option specified +on a command line. The available special options are: + +`-copyright' + Prints out the copyright notice and terminates. + +`-version' + Prints out the version ID and terminates. + +`-help' + Prints out the usage message and terminates. + + +File: pcb.info, Node: X11 Interface, Next: File Formats, Prev: Command-Line Options, Up: Top + +X11 Interface +************* + + This chapter gives an overview about the additional `X11' resources +which are defined by `Pcb' as well as the defined action routines. + +* Menu: + +* Resources:: Non-standard `X11' application resources. +* Actions:: A list of available action routines. +* Translations:: A list of the default key translations (as shipped). + + +File: pcb.info, Node: Resources, Next: Actions, Up: X11 Interface + +Non-Standard X11 Application Resources +====================================== + + In addition to the toolkit resources, `Pcb' defines the following +resources: + +`absoluteGrid (boolean)' + Selects if either the grid is relative to the position where it + has changed last or absolute, the default, to the origin (0,0). + +`alignmentDistance (dimension)' + Specifies the distance between the boards outline to the alignment + targets. + +`allDirectionLines (boolean)' + Enables (default) or disables clipping of new lines to 45 degree + angles. + +`backupInterval (int)' + `Pcb' has an automatic backup feature which saves the current data + every n seconds. The default is *300* seconds. A value of zero + disables the feature. The backup file is named + `/tmp/PCB.%i.backup'. *%i* is replaced by the process ID. See + also, the command-line option *-backup*. + +`Bloat (dimension)' + Specifies the minimum spacing design rule in mils. + +`charactersPerLine (int)' + `Pcb' uses this value to determine the page width when creating + lists. N, the number of characters per line, defaults to *80*. + See also, the command-line option *-c*. + +`connectedColor (color)' + All pins, vias, lines and rectangles which are selected during a + connection search are drawn with this color. The default value is + determined by *XtDefaultForeground*. + +`crosshairColor (color)' + This color is used to draw the crosshair cursor. The color is a + result of a *XOR* operation with the contents of the drawing area. + The result also depends on the default colormap of the `X11' + server because only the colormap index is used in the boolean + operation and `Pcb' doesn't create its own colormap. The default + setting is *XtDefaultForeground*. + +`elementColor (color)' +`elementSelectedColor (color)' + The elements package part is drawn in these colors, for normal and + selected mode, respectively, which both default to + *XtDefaultForeground*. + +`elementCommand (string)' + `Pcb' uses a user defined command to read element files. This + resources is used to set the command which is executed by the + users default shell. Two escape sequences are defined to pass the + selected filename (%f) and the current search path (%p). The + command must write the element data to its standard output. The + default value is + M4PATH="%p";export M4PATH;echo 'include(%f)' | m4 + Using the GNU version of `m4' is highly recommended. See also, + the command-line option *-lelement*. + +`elementPath (string)' + A colon separated list of directories or commands (starts with + '|'). The path is passed to the program specified in + *elementCommand* together with the selected elementname. A + specified command will be executed in order to create entries for + the fileselect box. It must write its results to *stdout* one + entry per line. See also, the user-command *le[!]*. + +`fileCommand (string)' + The command is executed by the user's default shell whenever + existing layout files are loaded. Data is read from the command's + standard output. Two escape sequences may be specified to pass + the selected filename (%f) and the current search path (%p). The + default value is: + cat %f + See also, the command-line option *-lfile*. + +`filePath (string)' + A colon separated list of directories or commands (starts with + '|'). The path is passed to the program specified in + *fileCommand* together with the selected filename. A specified + command will be executed in order to create entries for the + fileselect box. It must write its results to *stdout* one entry + per line. See also, the user-command *l[!]*. + +`fontCommand (string)' + Loading new symbol sets also is handled by an external command. + You again may pass the selected filename and the current search + path by passing %f and %p in the command string. Data is read from + the commands standard output. This command defaults to + cat %f + See also, the command-line option *-lfont*. + +`fontFile (string)' + The default font for new layouts is read from this file which is + searched in the directories as defined by the resource *fontPath*. + Searching is only performed if the filename does not contain a + directory component. The default filename is `default_font'. See + also, the command-line option *-fontfile*. + +`fontPath (string)' + This resource, a colon separated list of directories, defines the + searchpath for font files. See also, the resource *fontFile*. + +`grid (int)' + This resources defines the initial value of one cursor step. It + defaults to *100 mil* and any changes are saved together with the + layout data. + +`gridColor (color)' + This color is used to draw the grid. The color is a result of a + *INVERT* operation with the contents of the drawing area. The + result also depends on the default colormap of the `X11' server + because only the colormap index is used in the boolean operation + and `Pcb' doesn't create its own colormap. The default setting is + *XtDefaultForeground*. + +`elementColor (color)' + Elements localted on the opposite side of the board are drawn in + this color. The default is *XtDefaultForeground*. + +`layerColor1..8 (color)' +`layerSelectedColor1..8 (color)' + These resources define the drawing colors of the different layers + in normal and selected state. All values are preset to + *XtDefaultForeground*. + +`layerGroups (string)' + The argument to this resource is a colon separated list of comma + separated layernumbers (1..8). All layers within one group are + switched on/off together. The default setting is *1:2:3:...:8* + which means all layers are handled separatly. Grouping layers one + to three looks like *1,2,3:4:...:8* See also, the command-line + option *-lg*. + +`layerName1..8 (string)' + The default name of the layers in a new layout are determined by + these resources. The defaults are empty strings. + +`libraryCommand (string)' + `Pcb' uses a command to read element data from libraries. The + resources is used to set the command which is executed by the users + default shell. Three escape sequences are defined to pass the + selected filename (%f), the current search path (%p) as well (%a) + as the three parameters *template*, *value* and *package* to the + command. It must write the element data to its standard output. + The default value is + /usr/X11R6/lib/X11/pcb/QueryLibrary.sh %p %f %a + +`libraryContentsCommand (string)' + Similar to *libraryCommand*, `Pcb' uses the command specified by + this resource to list the contents of a library. + /usr/X11R6/lib/X11/pcb/ListLibraryContents.sh %p %f + is the default. + +`libraryFilename (string)' + The resource specifies the name of the library. The default value + is *pcblib*. + +`libraryPath (string)' + A colon separated list of directories that will be passed to the + commands specified by *elementCommand* and + *elementContentsCommand*. + +`lineThickness (dimension)' + The value, int the range [1..250], defines the initial thickness + of new lines. The value is preset to *ten mil*. + +`media ( | x+-+-)' + The default (user defined) media of the `PostScript' device. + Predefined values are *a3*, *a4*, *a5*, *letter*, *tabloit*, + *ledger*, *legal*, and *executive*. The second way is to specify + the medias width, height and margins in mil. The resource + defaults to *a4* size. + +`offLimitColor (color)' + The area outside the current maximum settings for width and height + is drawn with this color. The default value is determined by + *XtDefaultBackground*. + +`pinColor (color)' +`pinSelectedColor(color)' + This resource defines the drawing color of pins and pads in both + states. The values are preset to *XtDefaultForeground*. + +`pinoutFont (string)' + This fonts are used to display pin names. There is one font for + each zoom value. The values are preset to *XtdefaultFont*. + +`pinoutNameLength (int)' + This resource limits the number of characters which are displayed + for pin names in the pinout window. By default the string length + is limited to *eight* characters per name. See also, the + command-line option *-pnl*. + +`pinoutOffsetX (int)' +`pinoutOffsetY (int)' + These resources determine the offset in *mil* of the circuit from + the upper left corner of the window when displaying pinout + information. Both default to *100 mil*. + +`pinoutTextOffsetX (int)' +`pinoutTextOffsetY (int)' + The resources determine the distance in mil between the drilling + hole of a pin to the location where its name is displayed in the + pinout window. They default to *X:50* and *Y:0*. + +`pinoutZoom (int)' + Sets the zoom factor for the pinout window according to the + formula: scale = 1:(2 power value). Its default value is *two* + which results in a *1:4* scale. See also, the command-line option + *-pz*. + +`printCommand (string)' + Default file for printouts. If the name starts with a '|' the + output is piped through the command. A %f is replaced by the + current filename. There is no default file or command. + +`raiseLogWindow (boolean)' + The log window will be raised when new messages arrive if this + resource is set *true*, the default. + +`ratCommand (string)' + Default command for reading a netlist. A %f is replaced by the + netlist filename. Its default value is "*cat %f*". + +`ratPath (string)' + Default path to look for netlist files. It's default value is "." + +`resetAfterElement (boolean)' + If set to *true*, all found connections will be reset before a new + element is scanned. This will produce long lists when scanning the + whole layout for connections. The resource is set to *false* by + default. The feature is only used while looking up connections of + all elements. See also, the command-line option *-reset, +reset*. + +`ringBellWhenFinished (boolean)' + Whether to ring the bell (the default) when a possibly lengthy + operation has finished or not. See also, the command-line option + *-ring, +ring*. + +`routeStyle (string)' + Default values for the menu of routing styles (seen in the sizes + menu). The string is a comma separated list of name, line + thickness, via diameter, and via drill size. e.g. + "Fat,50,100,40:Skinny,8,35,20:75Ohm,110,110,20" See also, the + command-line option *-rs* and *Sizes Menu* + +`rubberBandMode (boolean)' + Whether rubberband move and rotate (attached lines stretch like + rubberbands) is enabled (the default). + +`saveCommand (string)' + This command is used to save data to a layout file. The filename + may be indicated by placing `%f' in the string. It must read the + data from its standard input. The default command is: + cat - > %f + See also, the command-line option *-sfile*. + +`saveInTMP (boolean)' + Enabling this resource will save all data which would otherwise be + lost in a temporary file `/tmp/PCB.%i.save'. *%i* is replaced by + the process ID. As an example, loading a new layout when the old + one hasn't been saved would use this resource. See also, the + command-line option *-save, +save*. + +`saveLastCommand (boolean)' + Enables the saving of the last entered user command. The option is + *disabled* by default. See also, the command-line option *-s, +s*. + +`Shrink (dimension)' + Specifies the minimum overlap (touching) design rule in mils. + +`size (x)' + Defines the width and height of a new layout. The default is + *7000x5000*. + +`stipllePolygons (boolean)' + Determines whether to display polygons on the screen with a + stippled pattern. Stippling can create some amount of + transperency so that you can still (to some extent) see layers + beneath polygons. It defaults to False. + +`textScale (dimension)' + The font scaling in percent is defined by this resource. The + default is *100* percent. + +`useLogWindow (boolean)' + Several subroutines send messages to the user if an error occurs. + This resource determines if they appear inside the log window or + as a separate dialog box. See also, the resource *raiseLogWindow* + and the command line option *-loggeometry*. The default value is + *true*. + +`viaColor (color)' + +`viaSelectedColor (color)' + This resource defines the drawing color of vias in both states. + The values are preset to *XtDefaultForeground*. + +`viaThickness (dimension)' +`viaDrillingHole (dimension)' + The initial thickness and drilling hole of new vias. The values + must be in the range [30..250] with at least 20 mil of copper. + The default thickness is *40 mil* and the default drilling hole is + *20 mil*. + +`volume (int)' + The value is passed to `XBell()' which sets the volume of the `X' + speaker. The value lies in the range -100..100 and it defaults to + the maximum volume of *100*. + +`warnColor (color)' + This resources defines the color to be used for drawing pins and + pads when a warning has been issued about them. + +`zoom (int)' + The initial value for output scaling is set according to the + following formula: scale = 1:(2 power value). It defaults to + *three* which results in an output scale of *1:8*. + + Refer also to *Note Command-Line Options::. + + +File: pcb.info, Node: Actions, Next: Translations, Prev: Resources, Up: X11 Interface + +Actions +======= + + All user accessible commands may be bound to almost any `X' event. +Almost no default binding for commands is done in the binaries, so it +is vital for the application that at least a system-wide application +resource file exists. This file normally resides in the +`X11/lib/app-defaults' directory and is called `Pcb'. The bindings to +which the manual refers to are the ones as defined by the shipped +resource file. Besides binding an action to an X11 event, you can also +execute any action command using a ":" command (see *Note User +Commands::). + + Take special care about translations related to the functions keys +and the pointer buttons because most of the window managers use them +too. Change the file according to your hardware/software environment. +You may have to replace all occurances of *baseTranslations* to +*translations* if you use a `X11R4' server. + + Passing *Object* as an argument to an action routine causes the +object at the cursor location to be changed, removed or whatever. If +more than one object is located at the crosshair position the smallest +type is used. If there are two of the same type the newer one is taken. +*SelectedObjects* will handle all selected and visible objects. + +`AddRats(AllRats|SelectedRats)' + Adds rat-lines to the layout using the loaded netlist file (see + the *:rn*, *Note User Commands::.). Rat lines are added on the + active layer using the current line thickness shown in the status + line. Only missing connectivity is added by the AddRats command + so if, for example, the layout is complete nothing will be added. + Rat lines are drawn on the screen with a stippled pattern to make + them easier to identify since they cannot appear in a completed + layout. The rat-lines are added in the minimum length + straight-line tree pattern (always ending on pins or pads) that + satisfies the missing connectivity in the circuit. If a SMD pad + is unreachable on the active layer, a warning will be issued about + it and the rat-line to that pad will not be generated. If + connections exist on the board which are not listed in the netlist + while AllRats are being added, warning messages will be issued and + the affected pins and pads will be drawn in a special *warnColor* + until the next *Notify()* event. If the entire layout agrees + completely with the net-list a message informs you that the layout + is complete and no rat-lines are added (since none are needed). + If *SelectedRats* is passed as the argument, only those missing + connections that might connect among the selected pins and pads + are drawn. Default: + Nonew: AddRats(AllRats) + !Shiftw: AddRats(SelectedRats) + Noneo: DeleteRats(AllRats) AddRats(AllRats) + !Shifto: DeleteRats(SelectedRats) AddRats(SelectedRats) + +`Atomic(Save|Restore|Block|Close)' + Controls the undo grouping of sequences of actions. Before the + first action in a group, Atomic(Save) should be issued. After + each action that might be undoable, Atomic(Restore) should be + issued. Atomic(Block) concludes and save the undo grouping if + there was anything in the group to undo. Atomic(Close) concludes + and save the undo grouping even if nothing was actually done. + Thus it might produce an "empty" undo. This can be useful when + you want to use undo in a group of actions. + +`Bell([-100..100])' + Rings the bell of your display. If no value is passed the setting + of the resource *volume* will be used. + +`ChangeDrillSize(Object, value)' +`ChangeDrillSize(SelectedPins|SelectedVias, value)' + This action routine changes the drilling hole of pins and vias. + If *value* starts with + or -, then it adds (or subtracts) *value* + from the current hole diameter, otherwise it sets the diameter to + the value. Default: + !Mod1s: Change2ndSize(Object, +5) + !Mod1 Shifts: Change2ndSize(Object, -5) + +`ChangeHole(Object|SelectedVias)' + This action routine converts a via to and from a hole. A hole is + a via that has no copper annulus. The drill size for the via + determines the hole diameter. + !Ctrlh: ChangeHole(Object) + +`ChangeName(Object)' +`ChangeName(Layer|Layout)' + Changes the name of the visible object at the cursor location. A + text object doesn't have a name therefore the text string itself + is changed. The element name currently used for display is always + the one changed with this command. See + *Display(Description|NameOnPCB|Value)* for details. Passing + *Layer* changes the current layers name. Default: + Nonen: ChangeName(Object) + +`ChangeOctagon(Object|SelectElements|SelectedPins|SelectedVias|Selected)' + Toggles what shape the affected pin(s) or via(s) will be drawn + when they are not square. The shape will either be round or + octagonal. Default: + !Ctrlo: ChangeOctagon(Object) + +`ChangeSize(Object, value)' +`ChangeSize(SelectedLines|SelectedPins|SelectedVias, value)' +`ChangeSize(SelectedPads|SelectedTexts|SelectedNames, value)' +`ChangeSize(SelectedElements, value)' + To change the size of an object you have to bind these action to + some `X' event (or use :ChangeSize(...)). If *value* begins with + a + or - then the value will be added (or subtracted) from the + current size, otherwise the size is set equal to *value*. Range + checking is done to insure that none of the maximum/minimums of + any size are violated. If *Object* is passed then a single object + at the cursor location is changed. If any of the *Selected* + arguments are passed then all selected and visible objects of that + type are changed. If the type being modified is an element, then + the thickness of the silkscreen lines defining the element is + changed. Default: + Nones: ChangeSize(Object, +5) + !Shifts: ChangeSize(Object, -5) + +`ChangeSquare(Object|SelectedElements|SelectedPins)' + Toggles the setting of the square flag. The flag is used to + identify a certain pin, normally the first one, of circuits. It is + also used to make SMD pads have square ends. + Noneq: ChangeSquare(Object) + +`Command()' + Calling *Command()* pops up an input line at the bottom of the + window which allows you to enter commands. Including all action + commands! The dialog ends when *NoneReturn* to confirm or + *NoneEscape* to abort is entered. Default: + colon: Command() + +`Connection(Find)' +`Connection(ResetFoundLinesAndRectangles|ResetPinsViasAndPads|Reset)' + The *Connection()* action is used to mark all connections from one + pin, line or via to others. The *ResetFoundLinesAndRectangles, + ResetFoundPinsAndVias* and *Reset* arguments may be used to reset + all marked lines and rectangles, vias and pins or all of them. The + search starts with the pin or via at the cursor position. All + found objects are drawn with the color defined by the resource + *connectedColor*. See also, + *Display(Description|NameOnPCB|Value)*. Default: + !Shiftc: Connection(Reset) + Nonef: Connection(Find) + !Shiftf: Connection(Reset) + +`DeleteRats(AllRats|SelectedRats)' + This routine deletes either all rat-lines in the layout, or only + the selected and visible ones. Non-rat-lines and other layout + objects are unaffected. Default: + Nonee: DeleteRats(AllRats) + !Shifte: DeleteRats(SelectedRats) + +`Display(Description|NameOnPCB|Value)' +`Display(Toggle45Degree|CycleClip)' +`Display(Grid|ToggleGrid)' +`Display(ToggleRubberBandMode)' +`Display(Center|ClearAndRedraw|Redraw)' +`Display(Pinout|PinOrPadName)' + This action routines handles some output related settings. It is + used to center the display around the cursor location and to + redraw the output area optionally after clearing the window. + Centering is done with respect to the *grid* setting. Displaying + the grid itself may be switched on and off by *Grid* but only if + the distance between two pixels exceeds 1_DISTANCE pixels. `Pcb' + is able to handle several labels of an element. One of them is a + description of the functionality (eg resistor), the second should + be a unique identifier (R1) whereas the last one is a value (100k). + The *Display()* action selects which of the names is displayed. + It also controls which name will be affected by the *ChangeName* + command. If *ToggleGrid* is passed, `Pcb' changes between relative + ('rel' in the statusline) and absolute grid (an 'abs' in the + statusline). Relative grid means the pointer position when the + command is issued is used as the grid origin; while (0,0) is used + in the absolute grid case. Passing *Pinout* displays the pinout + of the element at the current cursor location whereas + *PinOrPadName* toggles displaying of the pins or pads name under + the cursor. If none of them matches but the cursor is inside of an + element, the flags is toggled for all of its pins and pads. For + details about rubberbands see also the details about *Mode*. + Default: + Nonec: Display(Center) + Noned: Display(PinOrPadName) + !Shiftd: Display(Pinout) + Noner: Display(ClearAndRedraw) + None.: Display(Toggle45Degree) + None/: Display(CycleClip) + +`DRC()' + Initiates design rule checking of the entire layout. Must be + repeated until no errors are found. + +`EditLayerGroups()' + Pops up a dialog box to edit the layergroup setting. The function + is also available from the *Objects* menu. There are no defaults. + +`Load(ElementToBuffer|Layout|LayoutToBuffer|Nelist)' + This routine pops up a fileselect box to load layout, element data, + or netlist. The passed filename for layout data is saved and may + be reused. *ElementToBuffer* and *LayoutToBuffer* load the data + into the current buffer. There are no defaults. + +`MarkCrosshair()' + This routine marks the current cursor location with an X, and then + the cursor display shows both absolute position and position + relative to the mark. If a mark is already present, this routine + removes it and stops displaying relative cursor coordinates. + Defaults: + !Ctrlm: MarkCrosshair() + +`Mode(Copy|InsertPoint|Line|Move|None|PasteBuffer|Polygon|Thermal)' +`Mode(Remove|Rectangle|RubberbandMove|Text|Via)' +`Mode(Cycle)' +`Mode(Notify)' +`Mode(Save|Restore)' + Switches to a new mode of operation. The active mode is displayed + by a thick line around the matching mode selector button. Most of + the functionality of `Pcb' is implemented by selecting a mode and + calling *Mode(Notify)*. The arguments *Line*, *Polygon*, + *Rectangle*, *Text* and *Via* are used to create the appropriate + object whenever *Mode(Notify)* is called. Some of them, such as + *Polygon*, need more than one call for one object to be created. + *InsertPoint* adds points to existing polygons or lines. *Save* + and *Restore* are used to temporarily save the mode, switch to + another one, call *Mode(Notify)* and restore the saved one. Have a + look at the application resource file for examples. *Copy* and + *Move* modes are used to change an object's location and, + optionally, to create a new one. The first call of *Mode(Notify)* + attaches the object at the pointer location to the crosshair + whereas the second one drops it to the layout. The *rubberband* + version of move performs the move while overriding the current + rubberband mode. Passing *PasteBuffer* attaches the contents of + the currently selected buffer to the crosshair. Each call to + *Mode(Notify)* pastes this contents to the layout. *Mode(Cycle)* + cycles through the modes available in the mode-button pallete. + *Mode(None)* switches all modes off. Default: + Escape: Mode(None) + space: Mode(Cycle) + NoneBackSpace: Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore) + NoneDelete: Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore) + NoneF1: Mode(Via) + NoneF2: Mode(Line) + NoneF3: Mode(PasteBuffer) + NoneF4: Mode(Rectangle) + NoneF5: Mode(Text) + NoneF6: Mode(Polygon) + NoneF7: Mode(Thermal) + NoneF8: Mode(Arc) + NoneInsert: Mode(InsertPoint) + None[: Mode(Save) Mode(Move) Mode(Notify) + None]: Mode(Notify) Mode(Restore) + None: Mode(Notify) + !Shift Ctrl: Mode(Save) Mode(Remove) Mode(Notify) Mode(Restore) + None: Mode(Save) Mode(Move) Mode(Notify) + None: Mode(Notify) Mode(Restore) + !Mod1: Mode(Save) Mode(Copy) Mode(Notify) + !Mod1: Mode(Notify) Mode(Restore) + Shift Mod1: Mode(Save) Mode(RubberbandMove) Mode(Notify) + +`MovePointer(delta_x, delta_y)' + With this function it is possible to move the crosshair cursor by + using the cursor keys. The `X' server's pointer follows because + the necessary events are generated by `Pcb'. All movements are + performed with respect to the currently set grid value. Default: + NoneUp: MovePointer(0, -1) + !ShiftUp: MovePointer(0, -10) + NoneDown: MovePointer(0, 1) + !ShiftDown: MovePointer(0, 10) + NoneRight: MovePointer(1, 0) + !ShiftRight: MovePointer(10, 0) + NoneLeft: MovePointer(-1, 0) + !ShiftLeft: MovePointer(-10, 0) + +`MoveToCurrentLayer(Object|SelectedObjects)' + The function moves a single object at the crosshair location or + all selected objects to the current layer. Elements are not + moveable by this function. They have to be deleted and replaced + on the other side. If a line segment is moved and the movement + would result in a loss of connectivity to another segment then + via(s) are automatically added to maintain the connectivity. + Nonem: MoveToCurrentLayer(Object) + !Shiftm: MoveToCurrentLayer(SelectedObjects) + +`New()' + Clear the current layout and starts a new one after entering its + name. Refer to the resource *backup* for more information. No + defaults. + +`PasteBuffer(AddSelected|Clear|1..5)' +`PasteBuffer(Rotate, 1..3)' +`PasteBuffer(Convert)' + This action routine controls and selects the pastebuffer as well + as all cut-and-paste operations. Passing a buffer number selects + one in of the range 1..5. The statusline is updated with the new + number. *Rotate* performs a number of 90 degree counter clockwise + rotations of the buffer contents. *AddSelected* as first argument + copies all selected and visible objects into the buffer. Passing + *Clear* removes all objects from the currently selected buffer. + *Convert* causes the contents of the buffer (lines, arc, vias) to + be converted into an element definition. Refer to *Note + Pastebuffer:: for examples. Default: + !Ctrlx: PasteBuffer(Clear) PasteBuffer(AddSelected) + Mode(PasteBuffer) + !Shift Ctrlx: PasteBuffer(Clear) PasteBuffer(AddSelected) + RemoveSelected() Mode(PasteBuffer) + !Mod1c: PasteBuffer(Clear) PasteBuffer(AddSelected) + !Mod1x: PasteBuffer(Clear) PasteBuffer(AddSelected) + RemoveSelected() + !Shift1: PasteBuffer(1) + !Shift2: PasteBuffer(2) + !Shift3: PasteBuffer(3) + !Shift4: PasteBuffer(4) + !Shift5: PasteBuffer(5) + NoneF3: Mode(PasteBuffer) + +`Polygon((Close|PreviousPoint)' + Polygons need a special action routine to make life easier. Calling + *Polygon(PreviousPoint)* resets the newly entered corner to the + previous one. The Undo action will call Polygon(PreviousPoint) + when appropriate to do so. *Close* creates the final segment of + the polygon. This may fail if clipping to 45 degree lines is + switched on, in which case a warning is issued. Default: + Nonep: Polygon(Close) + !Shiftp: Polygon(Close) + +`Print()' + Pops up a print control box that lets you select the output + device, scaling and many more options. Each run creates all files + that are supported by the selected device. These are mask files as + well as drilling files, silk screens and so on. The table shows + the filenames for all possible files: + POSIX (extention) 8.3 filename + --------------------------------------------- + *_componentmask.* cmsk.* + *_componentsilk.* cslk.* + *_soldermask.* smsk.* + *_soldersilk.* sslk.* + *_drill.* dril.* + *_groundplane.* gpl.* + *_group[1..8].* [..8].* + The output may be sent to a postprocessor by starting the filename + with the *pipe* `("|")' character. Any `"%f"' in a command is + replaced with the current filename. The function is available from + the *file* menu. There are no defaults. + +`Quit()' + Quits the application after confirming the operation. Default: + WM_PROTOCOLS: Quit() + +`Redo()' + This routine allows you to recover from the last undo command. + You might want to do this if you thought that undo was going to + revert something other than what it actually did (in case you are + confused about which operations are un-doable), or if you have + been backing up through a long undo list and over-shoot your + stopping point. Any change that is made since the undo in + question will trim the redo list. For example if you add ten + lines, then undo three of them you could use redo to put them + back, but if you move a line on the board before performing the + redo, you will lose the ability to "redo" the three "undone" lines. + Default: + !Shiftr: Redo() + +`RemoveSelected()' + This routine removes all visible and selected objects. There are + no defaults. + +`Report(Object|DrillReport)' + This routine pops up a dialog box describing the various + characteristics of an object (or piece of an object such as a pad + or pin) in the layout at the cursor position, or a report about + all of the drill holes in the layout. There are no defaults. + +`RouteStyle(1|2|3|4)' + This routine copies the sizes corresponding to the numbered route + style into the active line thicknes, via diameter, and via drill + size. Defaults: + !Ctrl1: RouteStyle(1) + ... + !Ctrl4: RouteStyle(4) + +`Save(Layout|LayoutAs)' +`Save(AllConnections|AllUnusedPins|ElementConnections)' + Passing *Layout* saves the layout using the file from which it was + loaded or, if it is a new layout, calls *Save(LayoutAs)* which + queries the user for a filename. The values: *AllConnections*, + *AllUnusedPins* and *ElementConnections* start a connection scan + and save all connections, all unused pins or the connections of a + single element to a file. There are no defaults. + +`Select(All|Block|Connection|ToggleObject)' +`Select(ElementByName|ObjectByName|PadByName|PinByName)' +`Select(TextByName|ViaByName)' + Toggles either the selection flag of the object at the crosshair + position (*ToggleObject*) or selects all visible objects, all + inside a rectangle or all objects which have been found during the + last connection scan. The *ByName* functions use a regular + expression search, always case insensitive, to select the objects. + Default: + None: Select(ToggleObject) + None,None: See resource file - this is complex + +`SetValue(Grid|LineSize|TextScale|ViaDrillingHole|ViaSize|Zoom, value)' + Some internal values may be changed online by this function. The + first parameter specifies which data has to be changed. The other + one determines if the resource is set to the passed value, if + *value* is specified without sign, or increments/decrements if it + is specified with a plus or minus sign. The function doesn't + change any existing object only the initial values of new objects. + Use the *ChangeSize()* and *ChangeDrillSize()* to change existing + objects. Default: + Noneg: SetValue(Grid, +5) + !Shiftg: SetValue(Grid, -5) + Nonel: SetValue(LineSize, +5) + !Shiftl: SetValue(LineSize, -5) + Nonet: SetValue(TextScale, +10) + !Shiftt: SetValue(TextScale, -10) + Nonev: SetValue(ViaSize, +5) + !Shiftv: SetValue(ViaSize, -5) + !Mod1v: SetValue(ViaDrillingHole, +5) + !Mod1 Shiftv: SetValue(ViaDrillingHole, -5) + Nonez: SetValue(Zoom, -1) + !Shiftz: SetValue(Zoom, +1) + +`SwapSides()' + This routine changes the board side you are viewing. Default: + NoneTab: SwapSides() + +`SwitchDrawingLayer(value)' + Makes layer numer 1..8 the current one. Default: + None1: SwitchDrawingLayer(1) + ... + None8: SwitchDrawingLayer(8) + +`ToggleHideName(Object|SelectedElements)' + Toggles whether the element's name is displayed or hidden. If it + is hidden you won't see it on the screen and it will not appear on + the silk layer when you print the layout. + Noneh: ToggleHideName(Object) + !Shifth: ToggleHideName(SelectedElements) + +`Undo()' +`Undo(ClearList)' + The unlimited undo feature of `Pcb' allows you to recover from + most operations that materially affect you work. Calling *Undo()* + without any parameter recovers from the last (non-undo) operation. + *ClearList* is used to release the allocated memory. *ClearList* + is called whenever a new layout is started or loaded. See also + *Redo*. Default: + Noneu: Undo() + !Shift Ctrlu: Undo(ClearList) + +`Unselect(All|Block|Connection)' + Unselects all visible objects, all inside a rectangle or all + objects which have been found during the last connection scan. + Default: + !Shift : Mode(Save) Mode(None) Unselect(Block) + !Shift : Unselect(Block) Mode(Restore) + + +File: pcb.info, Node: Translations, Prev: Actions, Up: X11 Interface + +Default Translations +==================== + + This section covers some default translations of key and button +events as defined in the shipped default application resource file. +Most of them have already been listed in *Note Actions::. `Pcb' makes +use of a nice `X11' feature; calling several action routines for one +event. + +`NoneBackSpace:' + +`NoneDelete:' +`!ShiftBackSpace:' +`!Shift Ctrl:' + The object at the cursor location is removed by + *NoneBackSpace* or *Shift Ctrl* whereas + *ShiftBackSpace* also removes all other objects that are + fully-connected to the one at the cursor location. + +`!Mod1 CtrlLeft:' +`!Mod1 CtrlRight:' +`!Mod1 CtrlUp:' +`!Mod1 CtrlDown:' + Scroll one page in one of the four directions. + +`NoneLeft:, !ShiftLeft:' +`NoneRight:, !ShiftRight:' +`NoneUp:, !ShiftUp:' +`NoneDown:, !ShiftDown:' + Move crosshair either one or ten points in grid. + +`NoneReturn:' + Finished user input, selects the 'default' button of dialogs. + +`NoneEscape:' + *Mode(Reset)*, aborts user input, selects the 'abort' button of + dialogs or resets all modes. + +`None, Btn2, None:' +`!Mod1, Btn2, !Mod1:' + The first sequence moves the object or element name at the cursor + location. The second one copies the objects. Copying isn't + available for element names. + + +File: pcb.info, Node: File Formats, Next: Installation, Prev: X11 Interface, Up: Top + +File Formats +************ + + All files used by `Pcb' are read from the standard output of a +command or written to the standard input of one as plain seven bit +`ASCII'. This makes it possible to use any editor to change the +contents of a layout file. It is the only way for element or font +description files to be created. To do so you'll need to study the +example files `example/*' and `default_font' which are shipped with +`Pcb'. For an overview refer to *Note Intro::. + + The following sections provide the necessary information about the +syntax of the files. Netlist files are not created by `Pcb', but it +does use them. For information on the format of a netlist file see the +*:rn*, *Note User Commands::. Rat lines are added on the current layer +using the current The commands described allow you to add almost any +additional functionality you may need. Examples are compressed read and +write access as well as archives. The commands themselves are defined +by the resources *elementCommand*, *fileCommand*, *fontCommand*, +*libraryCommand*, *libraryContentsCommand* and *saveCommand*. Note +that the commands are not saved along with the data. It is considered +an advantage to have the layout file contain all necessary information, +independent of any other files. + + One thing common to all files is they may include comments, newlines, +and carriage returns at any place except within quoted strings. + +* Menu: + +* Basic Types:: Basic types used by all data files. +* Layout File:: +* Element File:: +* Font File:: +* Library Contents File:: +* Library File:: + + +File: pcb.info, Node: Basic Types, Next: Layout File, Up: File Formats + +Basic Types +=========== + + Here are the basic type definitions used in the other sections of +this chapter. + + Description = Name + DeltaAngle = Number + DrillingHole = Number + Flags = Number + FontPosition = Number + Grid = Number + GridOffsetX = Number + GridOffsetY = Number + Group = GroupMember [,GroupMember]... + GroupMember = decimal | [cs] + GroupString = """ Group [:Group]... """ + StyleString = """ Style [:Style]... """ + Height = Number + LayerNumber = Number + LayoutName = Name + Name = quoted_string + Number = decimal | hex + PinNumber = quoted_string + Spacing = Number + StartAngle = Number + SymbolID = Number | charconst + Thickness = Number + TextData = quoted_string + TextFlags = Flags + TextScale = scale + TextX = Number + TextY = Number + Value = Name + Width = Number + X = Number + X1 = Number + X2 = Number + Y = Number + Y1 = Number + Y2 = Number + charconst = "'" "'" + comment = "#" {}... + decimal = [0-9]+ + direction = [0-3] + hex = 0x[0-9a-fA-F]+ + scale = [1-] + quoted_string = """ """ + zoom = [0-MAX] + + +File: pcb.info, Node: Layout File, Next: Element File, Prev: Basic Types, Up: File Formats + +Layout File Format +================== + + 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. + + 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")" + +`PCBName' + 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. + +`GridData' + is optional and is used to save the grid setting and offset which + were set at the time the layout was saved. + +`CursorData' + 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). + +`PCBFlags' + determine how to draw lines and which name of the elements should + be displayed. + 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 + +`Groups' + 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 *c,s* idenify the component- and solder-side + for SMD objects. + +`Symbol' + See the description of font files in this chapter. + +`Via' + 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. + 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 + +`Element' + See the description of element files in this chapter. + +`Layer' + 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. + + `Line' + All lines are identified by their start and endpoints + together with their thickness and some flags. They have to + fit a 45 degree scheme. + bit 2: set if line was found during a connection search + bit 4: line is a rat-line + bit 6: line has been selected + + `Polygon' + used to fill a larger area with `copper'. The coordinates + specify the corners. The flags are: + 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 + + `Text' + 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 fixpoint 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. + 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 + + +File: pcb.info, Node: Element File, Next: Font File, Prev: Layout File, Up: File Formats + +Element File Format +=================== + + Element files are used to describe one component which then may be +used several times within one or more layouts. You will normally split +the file into two parts, one for the pinout and one for the package +description. Using `m4' allows you to define pin names as macros in +one file and include a package description file which evaluates the +macros. See the resource *elementCommand* for more information. The +pins (and pads) must appear in squential order in the element file (new +in 1.5) so that pin 1 must be the first PIN(...) in the file. + + Doing things this way makes it possible to use one package file for +several different circuits. See the sample files `dil*'. + + The lowest x and y coordinates of all subobjects of an element are +used as an attachment point for the crosshair cursor of the main window. + + File = {Element}... + 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 ")" + +`Element' + Objects of type element are determined by flags, some names, a + canonical and a layout name as well as a value. Additional fields + are text position, their direction counted from zero to three (n * + 90 degrees counter-clockwise) and element data. + + `Flags' + The flag field determines the state of an element. The bit + values are: + bit 4: the element name is hidden + bit 6: element has been selected + bit 7: element is located on the solder side + + `TextFlags' + `scale' + `direction' + See the description of text object earlier in this chapter. + + `ElementLine' + A line is defined by its start and end points and by its + size, or width. + + `ElementArc' + Defines an arc by its center, width, height, startangle, its + length in degrees and its size. Remember the y axis on the + screen grows downwards. + + `Mark' + is just a hint to make positioning easier. The crosshair will + be positioned here. Its center is passed as the two arguments. + + `Pad' + A pad is very similar to a line except it may not be + disconnected from its element and it has an associated name. + Is is defined by two end point position, size, name and by + some flags. + bit 2: set if pad was found during a connection search + bit 5: display the pads name + bit 6: pad has been selected + bit 7: pad is located on the solder side + + `Pin' + A pin is very similar to a via except it may not be + disconnected from its element. + bit 0: always set + bit 1: always clear + bit 2: set if pin was found during a connection search + bit 3: set if pin is only a mounting hole (no copper annulus) + bit 5: display the pins name + bit 6: pin has been selected + bit 8: pin is drawn as a square + bit 12: set if pin is drawn with an octagonal shape + + +File: pcb.info, Node: Font File, Next: Library Contents File, Prev: Element File, Up: File Formats + +Font File Format +================ + + A number of user defined symbols are called a font. There is only +one per layout. All symbols are made of lines. See the file +`default_font' as an example. + + The lowest x and y coordinates of all lines of a font are +transformed to (0,0). + + File = Font + Font = {FontData}... + FontData = {Symbol}... + Symbol = "Symbol(" SymbolID FontPosition ")" + "(" {SymbolData}... ")" + SymbolData = {SymbolLine}... + +`Symbol' + The two arguments are the `ASCII' code of the symbol and its + distance to the next symbol. Undefined symbols are drawn as filled + rectangles. The `ASCII' code may be passed as a character + constant or as a hexadecimal value. + + `SymbolLine' + The symbol data itself is made up of several entries of type + *SymbolLine*. + + +File: pcb.info, Node: Library Contents File, Next: Library File, Prev: Font File, Up: File Formats + +Library Contents File Format +============================ + + There is nothing like a special library format. The ones that have +been introduced in 1.4.1 just use some nice (and time consuming) +fetures of GNU `m4'. The only predefined format is the one of the +contents file which is read during startup. It is made up of two basic +line types: + + menu entry = "TYPE="name + contents line = template":"package":"value":"description + name = String + template = String + package = String + value = String + description = String + String = + + No leading whitespaces or comments are allowed in this file. If you +need either one, define a command that removes them before loading. +Have a look to the *libraryContentsCommand* resource. + + The menu entry will appear in the selection menu at the top and of +the library window. + + +File: pcb.info, Node: Library File, Prev: Library Contents File, Up: File Formats + +Library File Format +=================== + + This section provides an overview about the existing `m4' definitions +of the elements. There are basically two different types of files. One +to define element specific data like the pinout, package and so on, the +other to define the values. For example the static RAM circuits 43256 +and 62256 are very similar. They therefore share a common definition in +the macro file but are defined with two different value labels. + + The macro file entry: + define(`Description_43256_dil', `SRAM 32Kx8') + define(`Param1_43256_dil', 28) + define(`Param2_43256_dil', 600) + define(`PinList_43256_dil', ``pin1', `pin2', ...') + + And the list file: + 43256_dil:N:43256:62256 + + The macro must define a description, the pin list and up to two +additional parameters that are passed to the package definitions. The +first one is the number of pins whereas the second one defines for +example the width of a package. + + It is very important to select a unique identifier for each macro. In +the example this would be *43256_dil* which is also the templates name. +It is required by some low-level macros that *Description_, Param1_, +Param2_* and *PinList_* are prepended. + + The list file uses a syntax: + template:package:value[:more values] + + This means that the shown example will create two element entries +with the sam package and pinout but with different names. + + A number of packages are defined in `common.m4'. Included are: + + DIL packages with suffix D, DW, J, JD, JG, N, NT, P + PLCC + TO3 + generic connectors + DIN 41.612 connectors + zick-zack (SD suffix) + 15 pin multiwatt + + If you are going to start your own library please take care about +`m4' functions. Be aware of quoting and so on and, most important check +your additional entry by calling the macro: + + CreateObject(`template', `value', `package suffix') + + If quoting is incorrect an endless loop may occur (broken by a +out-of-memory message). + + The scripts in the `lib' directory handle the creation of libraries +as well as of their contents files. Querying is also supported. + + I know quite well that this description of the library +implementation is not what some out there expect. But in my opinion +it's much more useful to look at the comments and follow the macros +step by step. + + +File: pcb.info, Node: Installation, Prev: File Formats, Up: Top + +Installation and Troubleshooting +******************************** + + Compiling and installing the package should be straightforward. If +any problems occur, please contact the author +(Thomas.Nau@rz.uni-ulm.de) to find a solution and include it into the +next release. + +* Menu: + +* compiling:: Compiling and installing. +* problems:: Troubleshooting. + + +File: pcb.info, Node: compiling, Next: problems, Up: Installation + +Compiling and Installing +======================== + + This section covers the steps which are necessary to compile the +package. + +* Menu: + +* config.h:: Editing `config.h' options. +* manuals:: Creating the man page, info file and this manual. +* make:: Creating the `Makefile', compiling and installing. + + +File: pcb.info, Node: config.h, Next: manuals, Up: compiling + +Editing config.h +---------------- + + Most `X11' related options are automatically covered by `imake' +which is called from `xmkmf'. The ones special to `Pcb' have to be +edited in `config.h'. In order of appearance: + +`INFOLIBDIR' + must be set to the directory where your GNU info files are located. + +`/usr/X11R6/lib/X11/pcb' + is the path of a directory where the font files will be installed. + +`DEFAULTFONT' + the name of the default font file. + +`DEFAULTLIBRARY' + the name of the default library. + +`gm4' + the name of GNUs m4 version. + +`Mod1' + If your window manager has already bound *Mod1* together with some + function keys you may want to change this setting. This is true + for HP-VUE. + +`EXTRA_INCLUDES' + Some systems do not have the Athena Widget include files in their + normal place as configured by `X11's config files. Define this as + follows: + EXTRA_INCLUDES = -I/usr/openwin/share/include + This is probably true for Suns which use `OpenWindows'. + +`PATCHES' + This symbol is passed to the compiler. Use it to define additional + compiler flags. Add the *-DNEED_STRDUP* flag, if your system does + not have a strdup() library function. + +`HAS_REGEX' + Set to *-DHAS_REGEX* if your system supports regular expressions. + This enables the actions *Select(*ByName)*. + +`EXITCALL' + The symbol *EXITCALL* should be defined according to the *call on + exit* functions supported by your system. There are three choices: + EXITCALL = -DHAS_ATEXIT if atexit() is supported (SYSV) + EXITCALL = -DHAS_ON_EXIT if on_exit() and no atexit() is supported + EXITCALL = if none of them is supported + Please check your manpages for details. + +`SYS_LIBRARIES' + This symbol is used to pass additional libraries to the linker. + The only additional libraries which are used are the math and lex + library. + + If you have to make system dependent changes please include them +into a *#ifdef Architecture* ... *#endif* construct and mail a copy to +the author (Thomas.Nau@rz.uni-ulm.de). + + Now run `xmkmf -a' which creates the `Makefiles' and runs `make +depend'. This should finish without any problems except some systems +which complain about missing include files. Don't worry about any such +warnings at this time, the package should compile without any problems. + + +File: pcb.info, Node: manuals, Next: make, Prev: config.h, Up: compiling + +Manuals +------- + + After `xmkmf -a' has created the new `Makefile' you are able to +create the manpages, the application resource, the info file, the `TeX' +output and a reference card by executing + (cd doc; make) + (cd src; make Pcb.ad) + You'll need `TeX', `texindex' and, if you want `PostScript', `dvips' +to build the manuals. Preformatted documentation for the default +configuration may be found in the `./doc.ps' directory. A simple +*make* builds everything. Generate a printed copy to make your life +easier. `TeX-3.0' failed, `TeX-3.14' worked just fine. + + +File: pcb.info, Node: make, Prev: manuals, Up: compiling + +Compiling the Package +--------------------- + + After reaching this point, it is time for `make'. It should build +everything without any errors. If it doesn't refer to *Note problems::. + + You have to be root to install the package or at least a user with +the appropriate priveleges in some `X11' directories. Set the umask to +*022* or else some files will not be found because the directory isn't +world readable. + + If you do not have the appropriate permissions you should run +`./pcbtest.sh' in the `src' directory to run `Pcb' from the +installation directory. + + `make install' and `make install.man' install the program, the +fonts, the application default resource file, all element and package +data as well as the manpage into the `X11' directories. `make +install.info' does the same for the `GNU' info file. + + +File: pcb.info, Node: problems, Prev: compiling, Up: Installation + +Troubleshooting +=============== + + There are some known problems. Most of them are related to missing +parts of a standard `X11' distribution. Some others are caused by third +party applications such as `X' servers. To make this list more complete +please mail your problems and, if available, solutions to the author. +The mail address may be found at the beginning of this chapter. In any +case, read *Note X11::. + + By the way, you `MUST HAVE AN ANSI COMPILER' to make `Pcb' work. + + If the shell script `create_sed_script.sh' fails with an error of +`awk' check your system for `nawk' or get the `GNU gawk'. See the +script for details. + + Another source of problems are older versions of `flex' and `bison'. +`Pcb' definitely works with `flex-2.4.7' and `bison-1.22' or later. The +problems will result in a *syntax error* while parsing files. You will +have to add *-lfl* to the SYS_LIBRARIES identifier in `Imakefile'. See +also, *Note FreeBSD::. + + The following list gives you just an idea because I'm not able to +test all `Pcb' releases on all platforms. + +* Menu: + +* HP:: Hewlett-Packard series 700 and 800 running HP-UX 10.* +* Sun:: Sun, Solaris 2.5 +* SGI:: SGI, IRIX 5.3 and 6.* +* DEC Alpha:: DEC Alpha, DEC UNIX 3.2c and 4.0 +* SCO:: SCO Unix ODT 3.0, PC hardware +* Linux:: Linux 0.99pl14 and later +* FreeBSD:: FreeBSD, NetBSD ... +* X11:: Refers to `X11R4', `X11R5', and `OpenWindows' +* TeX and Manuals:: Problems creating the `pcb.dvi' + + +File: pcb.info, Node: HP, Next: Sun, Up: problems + +HP Series 700 and 800 +--------------------- + + You have to install several `X11' tools (`imake') and include files +or, better, install a complete `X11R5' release. Hewlett-Packard doesn't +support the Athena Widgets. So the header files and libraries are +missing from the application media, but they are available as a patch. +They also do not ship the `ANSI' compiler with the normal operating +system release so you have to buy one or use `GCC'. Some of the tools +are available as patches. + + In addition, `Pcb' has been successfully tested on these platforms +with `HPUX 9.*, 10.*' running self-compiled `X11R5'. + + +File: pcb.info, Node: Sun, Next: SGI, Prev: HP, Up: problems + +Sun SPARC architecture +---------------------- + + There are no known problems with Sun machines if they use `X11R5' +instead of `OpenWindows'. `Pcb' compiled successfully with all kinds of +SPARCstations `Solaris-2.[345]'. + + For problems with `OpenWindows' refer to *Note X11::. + + If `xmkmf' is missing, try + /usr/openwin/bin/imake -DUseInstalled -I/usr/openwin/lib/config + make Makefile + make includes + make depend + instead. I got it compiled but the linker complained about missing +symbols. The problem may be related to the mixed `OpenWindows' - +`X11R5' environment which is installed on the test machine. Anyway the +code was executable and I haven't got a core yet. + + +File: pcb.info, Node: SGI, Next: DEC Alpha, Prev: Sun, Up: problems + +Silicon Graphics +---------------- + + `Pcb' has been tested on some boxes running either `IRIX-4.0.5' or +`IRIX-5.3'. The former one uses a `X11R4' server. There are no +problems except some additionally needed compiler flags. For known +problems with `X11R4', see *Note X11::. Check `Imakefile', too. + + +File: pcb.info, Node: DEC Alpha, Next: SCO, Prev: SGI, Up: problems + +DEC Alpha +--------- + + `Pcb' compiled and runs without problems on `DEC UNIX V3.2c' if you +do the following instead of calling `xmkmf -a': + xmkmf + make Makefiles + make includes + make depend + + +File: pcb.info, Node: SCO, Next: Linux, Prev: DEC Alpha, Up: problems + +SCO Unix +-------- + + John DuBois wrote: + `SCO-ODT-3.0' requires the latest version of tls003, the Athena + widget library (available from sosco.sco.com). The main problems + I have encountered are it core dumps fairly often, especially + while loading/dropping elements... + I'll see what I am able to do as soon as I have access to an `SCO' +system. + + +File: pcb.info, Node: Linux, Next: FreeBSD, Prev: SCO, Up: problems + +Linux +----- + + Since the `X11' version of `Pcb' has been developed on a Linux +system here are no known problems. + + +File: pcb.info, Node: FreeBSD, Next: X11, Prev: Linux, Up: problems + +FreeBSD and NetBSD +------------------ + + If `Pcb' complains about syntax errors even in the demo files get +rid of your `lex' and `yacc' implementation. Replace them by `GNU flex' +and `bison'. Don't forget to change the SYS_LIBRARIES in `Imakefile' +from *-ll* to *-lfl*. You also need to define: + YACC = bison -y + LEX = flex + + +File: pcb.info, Node: X11, Next: TeX and Manuals, Prev: FreeBSD, Up: problems + +Problems related to X11 +----------------------- + + There are a some problems related to `X11R4' or systems derived from +`X11' such as `OpenWindows'. *Note Sun::. You at least have to change +all occurances of *baseTranslations* in the resource files to +*translations* if you are using a `X11R4' server. Look at the `X11R5' +*Intrinsics* manual for details. + + The panner widget (print dialog box) appears only in release `X11R5' +and later. It really simplifies adjusting the offsets. With earlier +releases the printout will always appear in the center of the page. + + You may have some problems in a mixed `X11-OpenWindows' environment. +If you want to try it anyway you have to add an additional path for +include files and define another symbol in `Imakefile', + EXTRA_INCLUDES = -I/usr/openwin/include + + `Pcb' has been tested successfully with `X11R6' under Linux 1.1.59 +and later. + + +File: pcb.info, Node: TeX and Manuals, Prev: X11, Up: problems + +Problems related to TeX +----------------------- + + If your `TeX' installation complains about a missing `texinfo.tex' +file copy the one included in this release (directory `doc' to your +`TeX' macro directory. Note, there are probably newer versions of this +file available from some FTP sites. `TeX-3.0' failed, `TeX-3.14' +worked just fine. Check our FTP server *ftp.uni-ulm.de* for +ready-to-print versions of the manuals. + +Index of Resources +****************** + +* Menu: + +* /usr/X11R6/lib/X11/pcb: config.h. +* absoluteGrid: Resources. +* alignmentDistance: Resources. +* allDirectionLines <1>: Resources. +* allDirectionLines: Options. +* backupInterval <1>: Resources. +* backupInterval: Options. +* bloat: Resources. +* charactersPerLine <1>: Resources. +* charactersPerLine: Options. +* connectedColor: Resources. +* crosshairColor: Resources. +* default font: Options. +* DEFAULTFONT: config.h. +* DEFAULTLIBRARY: config.h. +* elementColor: Resources. +* elementCommand <1>: File Formats. +* elementCommand <2>: Resources. +* elementCommand: Options. +* elementContentsCommand: Resources. +* elementPath: Resources. +* elementSelectedColor: Resources. +* EXITCALL: config.h. +* EXTRA_INCLUDES: config.h. +* fileCommand <1>: Options. +* fileCommand <2>: File Formats. +* fileCommand: Resources. +* filePath: Resources. +* fontCommand <1>: Options. +* fontCommand <2>: File Formats. +* fontCommand: Resources. +* fontFile <1>: Options. +* fontFile: Resources. +* fontPath: Resources. +* gm4: config.h. +* grid: Resources. +* gridColor: Resources. +* HAS_REGEX: config.h. +* INFOLIBDIR: config.h. +* invisibleObjectsColor: Resources. +* layerColor: Resources. +* layerGroups <1>: Options. +* layerGroups: Resources. +* layerName: Resources. +* layerSelectedColor: Resources. +* libraryCommand <1>: Options. +* libraryCommand <2>: File Formats. +* libraryCommand: Resources. +* libraryContentsCommand <1>: File Formats. +* libraryContentsCommand: Options. +* libraryFilename <1>: Options. +* libraryFilename: Resources. +* libraryPath <1>: Options. +* libraryPath: Resources. +* lineThickness: Resources. +* media: Resources. +* Mod1: config.h. +* offLimitColor: Resources. +* PATCHES: config.h. +* pinColor: Resources. +* pinoutFont0..4: Resources. +* pinoutNameLength <1>: Options. +* pinoutNameLength: Resources. +* pinoutOffsetX: Resources. +* pinoutOffsetY: Resources. +* pinoutTextOffsetX: Resources. +* pinoutTextOffsetY: Resources. +* pinoutZoom <1>: Resources. +* pinoutZoom: Options. +* pinSelectedColor: Resources. +* printCommand: Resources. +* raiseLogWindow: Resources. +* ratCommand: Resources. +* ratPath: Resources. +* resetAfterElement <1>: Options. +* resetAfterElement: Resources. +* ringBellWhenFinished <1>: Resources. +* ringBellWhenFinished: Options. +* routeStyle <1>: Resources. +* routeStyle: Options. +* rubberBandMode: Resources. +* saveCommand <1>: Options. +* saveCommand <2>: File Formats. +* saveCommand: Resources. +* saveInTMP <1>: Options. +* saveInTMP: Resources. +* saveLastCommand <1>: Resources. +* saveLastCommand: Options. +* shrink: Resources. +* size <1>: Options. +* size: Resources. +* stipplePolygons: Resources. +* SYS_LIBRARIES: config.h. +* textScale: Resources. +* useLogWindow: Resources. +* viaColor: Resources. +* viaDrillingHole: Resources. +* viaSelectedColor: Resources. +* viaThickness: Resources. +* volume <1>: Options. +* volume: Resources. +* warnColor: Resources. +* zoom: Resources. + +Index of Actions, Commands and Options +************************************** + +* Menu: + +* +alldirections: Options. +* +reset: Options. +* +ring: Options. +* +s: Options. +* +save: Options. +* -alldirections: Options. +* -backup: Options. +* -c: Options. +* -copyright: Special Options. +* -fontfile: Options. +* -help: Special Options. +* -lelement: Options. +* -lfile: Options. +* -lfont: Options. +* -lg: Options. +* -libname: Options. +* -libpath: Options. +* -llib: Options. +* -llibcont: Options. +* -loggeometry: Options. +* -pnl: Options. +* -pz: Options. +* -reset: Options. +* -ring: Options. +* -rs: Options. +* -s: Options. +* -save: Options. +* -sfile: Options. +* -size: Options. +* -v: Options. +* -version: Special Options. +* :actionCommand(): User Commands. +* :l: User Commands. +* :le: User Commands. +* :m: User Commands. +* :q: User Commands. +* :rn: User Commands. +* :s: User Commands. +* :w[q]: User Commands. +* AddRats(): Actions. +* Atomic(): Actions. +* Bell(): Actions. +* ChangeDrillSize(): Actions. +* ChangeHole(): Actions. +* ChangeName(): Actions. +* ChangeOctagon(): Actions. +* ChangeSize(): Actions. +* ChangeSquare(): Actions. +* Command(): Actions. +* Connection(): Actions. +* DeleteRats(): Actions. +* Display(): Actions. +* DRC(): Actions. +* EditLayerGroups(): Actions. +* Load(): Actions. +* MarkCrosshair(): Actions. +* Mode(): Actions. +* MovePointer(): Actions. +* MoveToCurrentLayer(): Actions. +* New(): Actions. +* PasteBuffer(): Actions. +* Polygon(): Actions. +* Print(): Actions. +* Quit(): Actions. +* Redo(): Actions. +* RemoveSelected(): Actions. +* Report(): Actions. +* RouteStyle(): Actions. +* Save(): Actions. +* Select(): Actions. +* SetValue(): Actions. +* SwapSides(): Actions. +* SwitchDrawingLayer(): Actions. +* ToggleHideName(): Actions. +* Undo(): Actions. +* Unselect(): Actions. + +Index of Concepts +***************** + +* Menu: + +* /tmp <1>: Options. +* /tmp <2>: Loading and Saving. +* /tmp: Resources. +* about, command button: Menu. +* action command: User Commands. +* actions: Actions. +* Actions, initiating: User Commands. +* alignment: Resources. +* alignment targets: Printing. +* Alpha: DEC Alpha. +* arc: Arc Objects. +* arc, an example: Arcs. +* architecture <1>: SCO. +* architecture <2>: Linux. +* architecture <3>: Sun. +* architecture <4>: DEC Alpha. +* architecture <5>: SGI. +* architecture: HP. +* ASCII files, format of: File Formats. +* Atari version: History. +* atomic: Actions. +* backup <1>: Options. +* backup <2>: Loading and Saving. +* backup <3>: Resources. +* backup <4>: Options. +* backup: Resources. +* basic types: Basic Types. +* bell: Actions. +* bloat: Resources. +* buffer, an example: Pastebuffer. +* buffer, convert contents to element: Elements. +* buffer, popup menu: Menu. +* buffer, selecting a: Actions. +* button translations: Actions. +* cat: Resources. +* centering: Actions. +* change active layer: Control Panel. +* change drawing layer: Actions. +* change object name: Actions. +* change settings: Actions. +* change sizes: Actions. +* change square flag: Actions. +* change viewing side: Actions. +* characters per line <1>: Resources. +* characters per line: Options. +* clipping lines to 45 degree <1>: Resources. +* clipping lines to 45 degree: Actions. +* clipping of lines: Options. +* closing a polygon: Actions. +* color printout: Printing. +* color, warning: Resources. +* colors: Resources. +* command-line options: Command-Line Options. +* compile, how to: compiling. +* config.h: config.h. +* connection, removing an: Translations. +* connections, colors: Resources. +* connections, creating list of: Connection Lists. +* connections, popup menu: Menu. +* connections, reseting: Actions. +* connections, reseting after element <1>: Resources. +* connections, reseting after element: Options. +* connections, searching for: Actions. +* control panel: Control Panel. +* copy an object: Translations. +* copying objects: Actions. +* copying, an example: Moving and Copying. +* copyright: Special Options. +* creating objects: Common. +* cursor color: Resources. +* cursor movements: Actions. +* cursor position: Actions. +* cursor steps: Resources. +* cutting objects: Actions. +* DEC: DEC Alpha. +* default font <1>: Options. +* default font: Resources. +* default layout size: Resources. +* default library: Resources. +* default text scaling: Resources. +* default translations: Translations. +* design rule checking <1>: Actions. +* design rule checking: Design Rule Checking. +* device, selecting an output: Printing. +* directory /tmp <1>: Options. +* directory /tmp <2>: Loading and Saving. +* directory /tmp: Resources. +* display: Resources. +* display, popup menu: Menu. +* displaying element names <1>: Actions. +* displaying element names: Menu. +* displaying pinout: Actions. +* displaying status information: Status-line and Input-field. +* DOS filenames: Printing. +* drawing objects: Drawing and Removing. +* drc <1>: Resources. +* drc <2>: Actions. +* drc: Design Rule Checking. +* drill: Actions. +* drilling hole, changing of objects: Actions. +* drilling hole, setting of initial size: Actions. +* DVI format of manual: manuals. +* element name, hiding: Actions. +* element name, removing from silk-screen: Actions. +* element, an example: Elements. +* element, an overview: Element Objects. +* element, color: Resources. +* element, command <1>: Resources. +* element, command: Options. +* element, creating a new package: Elements. +* element, display names of <1>: Menu. +* element, display names of: Actions. +* element, fileformat: Element File. +* element, files <1>: Options. +* element, files: Resources. +* element, loading to buffer: User Commands. +* element, move name of: Translations. +* entering user commands: User Commands. +* erasing objects: Drawing and Removing. +* example files: Elements. +* example of buffer handling: Pastebuffer. +* example of connection lists: Connection Lists. +* example of copying: Moving and Copying. +* example of creating an element: Elements. +* example of element handling: Elements. +* example of line handling: Lines. +* example of loading: Loading and Saving. +* example of loading an element file: Elements. +* example of moving: Moving and Copying. +* example of pastebuffer handling: Pastebuffer. +* example of pin handling: Elements. +* example of polygon handling: Polygons. +* example of printing: Printing. +* example of rectangle handling: Polygons. +* example of saving: Loading and Saving. +* example of text handling: Text. +* example of via handling: Vias. +* exit <1>: Actions. +* exit: User Commands. +* file format, element data: Element File. +* file format, font data: Font File. +* file format, layout data: Layout File. +* file format, libraries: Library File. +* file format, library contents: Library Contents File. +* file formats: File Formats. +* file formats, basic types: Basic Types. +* file load command <1>: Resources. +* file load command: Options. +* file save command <1>: Resources. +* file save command: Options. +* file, popup menu: Menu. +* font command <1>: Options. +* font command: Resources. +* font file, format of: Font File. +* font files <1>: Resources. +* font files <2>: Options. +* font files: Resources. +* font, an overview: Symbol Objects. +* font, used for pin names: Resources. +* format of element files: Element File. +* format of font files: Font File. +* format of layout files: Layout File. +* format of libraries: Library File. +* format of library contents: Library Contents File. +* FreeBSD: FreeBSD. +* grid <1>: Resources. +* grid: Drawing Area. +* grid color: Resources. +* grid, absolute and relative <1>: Actions. +* grid, absolute and relative: Menu. +* grid, display <1>: Actions. +* grid, display: Menu. +* grid, setting of: Actions. +* groups <1>: Resources. +* groups: Options. +* groups, editing of: Actions. +* Hewlett Packard: HP. +* hide element name: Actions. +* how to start: Getting Started. +* HP: HP. +* info file: manuals. +* information about objects: Actions. +* input-field, position of: Status-line and Input-field. +* inputfield, saving entered command-line <1>: Options. +* inputfield, saving entered command-line: Resources. +* inputfield, start user input: Actions. +* install, how to: compiling. +* key translations: Actions. +* keyboard bell <1>: Resources. +* keyboard bell: Options. +* layer, change active: Actions. +* layer, name of: Resources. +* layers, an overview: Layer Objects. +* layers, changing active one: Control Panel. +* layers, colors: Resources. +* layers, editing of groups: Actions. +* layers, groups <1>: Resources. +* layers, groups: Options. +* layers, switching on/off: Control Panel. +* layout files <1>: Resources. +* layout files <2>: Options. +* layout files <3>: Resources. +* layout files: Options. +* layout files, format of: Layout File. +* layout files, saving of: User Commands. +* layout objects, an overview: Intro. +* layout size: Options. +* layout, default size of: Resources. +* layout, loading a: User Commands. +* layout, loading to buffer: User Commands. +* layout, merging a: User Commands. +* layout, printing a: Actions. +* layout, start a new: Actions. +* layout-name <1>: Element Objects. +* layout-name: User Commands. +* length of a pin name <1>: Resources. +* length of a pin name: Options. +* length of outputline: Options. +* library command <1>: Options. +* library command: Resources. +* library contents command <1>: Options. +* library contents command: Resources. +* library contents file, format of: Library Contents File. +* library file, format of: Library File. +* library name <1>: Resources. +* library name: Options. +* library search path: Options. +* library searchpath: Resources. +* library window: Library Window. +* line clipping: Options. +* linelength: Resources. +* lines, an example: Lines. +* lines, an overview: Line Objects. +* lines, clipping to 45 degree <1>: Resources. +* lines, clipping to 45 degree: Actions. +* lines, setting of initial size: Actions. +* lines, size: Resources. +* Linux: Linux. +* list of connections: Resources. +* listing libraries: Options. +* listing library contents: Resources. +* loading a layout to buffer: User Commands. +* loading elements <1>: Resources. +* loading elements: Options. +* loading elements to buffer: User Commands. +* loading files: Actions. +* loading fonts <1>: Resources. +* loading fonts: Options. +* loading layouts <1>: User Commands. +* loading layouts <2>: Options. +* loading layouts: Resources. +* loading symbols <1>: Resources. +* loading symbols: Options. +* loading, an example: Loading and Saving. +* log window <1>: Options. +* log window <2>: Resources. +* log window: Log Window. +* m4: Resources. +* m4, preprocessing example files: Elements. +* make: make. +* Makefile: config.h. +* manuals: manuals. +* mark: Actions. +* media: Resources. +* media margin: Resources. +* media, size of: Printing. +* menus: Menu. +* merging layouts: User Commands. +* messages <1>: Resources. +* messages <2>: Options. +* messages: Log Window. +* mirroring printout: Printing. +* mode selection: Mode Selectors. +* mode, selecting of: Actions. +* mounting holes: Actions. +* move: Resources. +* move an object: Translations. +* moving objects to current layer: Actions. +* moving, an example: Moving and Copying. +* name of an element: Actions. +* name, change an objects: Actions. +* namelength of pins <1>: Options. +* namelength of pins: Resources. +* NetBSD: FreeBSD. +* netlist <1>: Actions. +* netlist <2>: Resources. +* netlist <3>: User Commands. +* netlist <4>: Rats Nest. +* netlist: Actions. +* object, change name of: Actions. +* object, changing the size of an: Common. +* object, copy an: Translations. +* object, creating an: Common. +* object, drawing and removing: Drawing and Removing. +* object, move an: Translations. +* object, removing an <1>: Translations. +* object, removing an: Common. +* object, selecting an: Menu. +* objects, moving to current layer: Actions. +* objects, popup menu: Menu. +* octagonal pins and vias: Actions. +* off limit color: Resources. +* offset of pinnames: Resources. +* offset of pinout: Resources. +* offset of printout: Printing. +* OpenWindows: Sun. +* operation modes, selecting of: Actions. +* outline printout: Printing. +* output device: Printing. +* outputline, length of: Options. +* overlap, minimum: Design Rule Checking. +* pastebuffer, an example: Pastebuffer. +* pastebuffer, convert contents to element: Elements. +* pastebuffer, popup menu: Menu. +* pastebuffer, selecting a: Actions. +* path for element files: Resources. +* path for font files: Resources. +* path for layout files: Resources. +* path for libraries: Resources. +* PC UNIX <1>: SCO. +* PC UNIX <2>: Linux. +* PC UNIX: FreeBSD. +* pin color: Resources. +* pin, name of <1>: Options. +* pin, name of: Resources. +* pinout of elements: Menu. +* pinout, display of: Actions. +* pinout, font to display pin names: Resources. +* pinout, zoomfactor of display <1>: Resources. +* pinout, zoomfactor of display: Options. +* pins, an example: Elements. +* pins, changing shape of: Actions. +* pointer, moving of: Actions. +* polygon: Resources. +* polygon point, go back to previous: Actions. +* polygon, an example: Polygons. +* polygon, an overview: Polygon Objects. +* polygon, closing a: Actions. +* popping up menus: Menu. +* postprocessing layout data <1>: Resources. +* postprocessing layout data: Options. +* preprocessing element data <1>: Options. +* preprocessing element data: Resources. +* preprocessing font data <1>: Options. +* preprocessing font data: Resources. +* preprocessing layout data <1>: Options. +* preprocessing layout data: Resources. +* preventing loss of data <1>: Loading and Saving. +* preventing loss of data <2>: Options. +* preventing loss of data: Resources. +* print command: Printing. +* print media <1>: Printing. +* print media: Resources. +* print offset: Printing. +* printing: Resources. +* printing a layout: Actions. +* printing, an example: Printing. +* problems: problems. +* quit <1>: Actions. +* quit: User Commands. +* rat-line <1>: Actions. +* rat-line: Rats Nest. +* rats nest <1>: User Commands. +* rats nest <2>: Actions. +* rats nest <3>: Resources. +* rats nest <4>: Actions. +* rats nest: Rats Nest. +* recover: Actions. +* rectangle, an example: Polygons. +* redo: Actions. +* redrawing layout: Actions. +* refreshing layout: Actions. +* release, current: Special Options. +* removing connections: Translations. +* removing objects <1>: Translations. +* removing objects <2>: Drawing and Removing. +* removing objects: Common. +* removing selected objects: Actions. +* report: Actions. +* report, popup menu: Menu. +* reseting found connections <1>: Actions. +* reseting found connections <2>: Options. +* reseting found connections: Resources. +* resources: Resources. +* rotate: Resources. +* rotating a buffer: Actions. +* rotating printout: Printing. +* routing style <1>: Options. +* routing style <2>: Resources. +* routing style: Actions. +* rubberband <1>: Actions. +* rubberband: Resources. +* saving connections: Actions. +* saving files: Actions. +* saving found connections: Actions. +* saving last entered user command <1>: Resources. +* saving last entered user command: Options. +* saving layouts <1>: Loading and Saving. +* saving layouts <2>: Options. +* saving layouts <3>: Resources. +* saving layouts <4>: Options. +* saving layouts: User Commands. +* saving, an example: Loading and Saving. +* scaling a printout: Printing. +* scanning connections: Actions. +* SCO: SCO. +* scrolling: Translations. +* searching connections: Actions. +* searchpath for element files: Resources. +* searchpath for font files: Resources. +* searchpath for layout files: Resources. +* searchpath for libraries: Resources. +* selected object, removing an: Actions. +* selected objects, changing size: Menu. +* selected objects, removing: Menu. +* selecting a buffer: Actions. +* selecting a new mode: Mode Selectors. +* selecting objects <1>: Actions. +* selecting objects: Menu. +* selection: Actions. +* selection, an example: Selection. +* selection, popup menu: Menu. +* SGI: SGI. +* shrink: Resources. +* signal: Actions. +* Silicon Graphics: SGI. +* size of a layout: Options. +* size of lines: Resources. +* size of lines and vias: Actions. +* size of vias: Resources. +* sizes, changing of objects: Actions. +* sizes, popup menu: Menu. +* Solaris: Sun. +* spacing, minimum: Design Rule Checking. +* speaker volume <1>: Resources. +* speaker volume: Options. +* square flag, changing of objects: Actions. +* start user input: Actions. +* starting a new layout: Actions. +* starting Pcb: Command-Line Options. +* status information: Status-line and Input-field. +* strings, an example: Text. +* strings, an overview: Text Objects. +* Sun: Sun. +* symbols <1>: Options. +* symbols: Resources. +* symbols, an overview: Symbol Objects. +* temporary files <1>: Resources. +* temporary files <2>: Options. +* temporary files: Loading and Saving. +* TeX, problems: TeX and Manuals. +* texinfo file: manuals. +* text, an example: Text. +* text, an overview: Text Objects. +* text, default scaling: Resources. +* text, editing: Menu. +* thickness of lines: Resources. +* thickness of objects: Common. +* thickness of vias: Resources. +* thickness, changing of objects: Actions. +* translations <1>: Actions. +* translations: Translations. +* troubleshooting: problems. +* undo: Actions. +* undo, multi-action resources: Actions. +* undo, popup menu: Menu. +* unix command <1>: Options. +* unix command <2>: Resources. +* unix command <3>: Options. +* unix command <4>: Resources. +* unix command <5>: Options. +* unix command <6>: Resources. +* unix command <7>: Options. +* unix command: Resources. +* unselect objects: Actions. +* user commands: User Commands. +* user input: Translations. +* version, current: Special Options. +* vias, an example: Vias. +* vias, an overview: Via Objects. +* vias, changing shape of: Actions. +* vias, color: Resources. +* vias, converting to mounting hole: Actions. +* vias, setting of initial size: Actions. +* vias, size: Resources. +* viewing side, changing of: Actions. +* volume of speaker <1>: Options. +* volume of speaker: Resources. +* X11: X11 Interface. +* X11 default translations: Translations. +* X11 resources: Resources. +* X11 translations: Actions. +* X11, problems: X11. +* xmkmf: config.h. +* zoom of drawing window: Resources. +* zoom of pinout window <1>: Options. +* zoom of pinout window: Resources. +* zoom, setting: Menu. +* zoom, setting of: Actions. + + + +Tag Table: +Node: Top723 +Node: Copying1468 +Node: History2088 +Node: Intro6464 +Node: Symbol Objects7604 +Node: Via Objects8179 +Node: Element Objects8865 +Node: Layer Objects13372 +Node: Line Objects15314 +Node: Arc Objects17330 +Node: Polygon Objects18696 +Node: Text Objects20812 +Node: Getting Started21890 +Node: Application Window23822 +Node: Status-line and Input-field24472 +Node: Control Panel26349 +Node: Mode Selectors28678 +Node: Drawing Area31137 +Node: Menu32120 +Node: Log Window37656 +Node: Library Window38448 +Node: Drawing and Removing38955 +Node: Common42106 +Node: Lines43875 +Node: Arcs45425 +Node: Polygons46597 +Node: Text48478 +Node: Vias49463 +Node: Elements50833 +Node: Pastebuffer56184 +Node: Moving and Copying57883 +Node: Loading and Saving58911 +Node: Printing59987 +Node: Connection Lists64148 +Node: Selection65952 +Node: Rats Nest66796 +Node: Design Rule Checking71884 +Node: User Commands74218 +Node: Command-Line Options78975 +Node: Options79523 +Node: Special Options84130 +Node: X11 Interface84625 +Node: Resources85092 +Node: Actions98785 +Node: Translations122057 +Node: File Formats123597 +Node: Basic Types125267 +Node: Layout File126939 +Node: Element File132784 +Node: Font File136592 +Node: Library Contents File137593 +Node: Library File138638 +Node: Installation141066 +Node: compiling141493 +Node: config.h141887 +Node: manuals144357 +Node: make145012 +Node: problems145895 +Node: HP147499 +Node: Sun148170 +Node: SGI148947 +Node: DEC Alpha149323 +Node: SCO149622 +Node: Linux150094 +Node: FreeBSD150284 +Node: X11150701 +Node: TeX and Manuals151681 + +End Tag Table diff --git a/cad/pcb/files/pcb.ps b/cad/pcb/files/pcb.ps new file mode 100644 index 000000000000..73a8238a45ed --- /dev/null +++ b/cad/pcb/files/pcb.ps @@ -0,0 +1,6489 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software +%%Title: pcb.dvi +%%Pages: 67 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -D 300 -o pcb.ps pcb.dvi +%DVIPSParameters: dpi=300, compressed +%DVIPSSource: TeX output 2000.08.31:1013 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +TeXDict begin 39158280 55380996 1000 300 300 (pcb.dvi) +@start +%DVIPSBitmapFont: Fa cmbxti10 14.4 1 +/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmtt12 14.4 1 +/Fb 1 44 df<130C131EAA007FB51280B612C0A26C1480D8001EC7FCAA130C1A1A7E9E1F +>43 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmr9 9 63 +/Fc 63 123 df11 D<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C +03AE38FF8FF0141A809915>II<126012F0A212701210A31220A21240A2040B7D830B>44 +DI<126012F0A2126004047D830B>I<1304130C1318A31330A313 +60A313C0A3EA0180A3EA0300A31206A35AA35AA35AA35AA35AA20E257E9B13>II<12035AB4FC1207B3A2EA7FF80D187D9713>III<1318A21338137813F813B8EA01381202A2120412081218 +12101220124012C0B5FCEA0038A6EA03FF10187F9713>III<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206 +A2120EA5120410197E9813>III<130CA3131EA2132F1327A2EB4380A3EB81C0A200017F1300A248B47E38020070A248 +7FA3487FA2003C131EB4EBFFC01A1A7F991D>65 DII< +B57E380E00E01470808080A280A21580A81500A25C140E5CA2147814E0B51280191A7F99 +1D>IIII<39FFE1FFC0390E001C00AB +380FFFFC380E001CAC39FFE1FFC01A1A7F991D>II76 +DI<00FEEB7FC0000FEB0E00 +1404EA0B80EA09C0A2EA08E01370A21338131CA2130E1307EB0384A2EB01C4EB00E4A214 +74143CA2141C140C121C38FF80041A1A7F991D>I<137F3801C1C038070070000E7F487F +003C131E0038130E0078130F00707F00F01480A80078EB0F00A20038130E003C131E001C +131C6C5B6C5B3801C1C0D8007FC7FC191A7E991E>II83 D<007FB5FC38701C070040 +1301A200C0148000801300A300001400B13803FFE0191A7F991C>I<39FFE07FC0390E00 +0E001404B200065B12076C5B6C6C5A3800E0C0013FC7FC1A1A7F991D>I<39FF801FC039 +1C00070014066C1304A36C5BA26C6C5AA36C6C5AA26C6C5AA3EB7080A213790139C7FCA2 +131EA3130CA21A1A7F991D>I<3AFF81FF07F03A3C007801C0001CEC0080A36C90389C01 +00A33907010E02A33903830F04EB8207A2150C3901C40388A33900E801D0A390387000E0 +A301305B01201340241A7F9927>I<39FFC0FF80390F003C0014106C5BEA03806D5A0001 +5BEA00E101F1C7FC137A133E131C131EA21317EB27801343EB41C0EB81E0EA0100481370 +00021378481338000C7F001E133EB4EB7FC01A1A7F991D>I97 +D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906 +EA10F8131A809915>II<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A +EA1C373807C7E0131A7F9915>IIII<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218 +123CA212181200A612FC121CAE12FF081A80990A>II<12FC121CA9EB1FC0EB0F00130C5B +13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>I<12FC121C +B3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301AB39FF9FE7 +F81D107F8F20>II +IIIII<1208A41218A21238EAFFC0EA3800A813 +20A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E0B3803F3F0 +1410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C +5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16081317A238 +072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C1E00EA1C08 +6C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC012107F8F14 +>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5AA248C7FC +A212E112E212E4127811177F8F14>II E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmti9 9 1 +/Fd 1 47 df<1230127812F0126005047C830C>46 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmtt9 9 64 +/Fe 64 123 df40 D<128012C01260123012381218121C120EA31207A9120E +A3121C121812381230126012C01280081D7C9914>I43 D45 D<127012F8A312700505798414>I<130613 +0EA2131CA21338A21370A213E0A2EA01C0A2EA0380A3EA0700A2120EA25AA25AA25AA25A +A25A0F1D7E9914>II<1203A25A5A123F12F712471207AEEA7F +F0A20C177C9614>I<137813F8EA01B8A2EA0338A21206120E120C121C12381230127012 +E0B51280A238003800A548B4FCA211177F9614>52 D54 D<127012F8A312701200A6127012F8A312700510798F14 +>58 D65 DI<3801F180EA07FFEA0E1FEA1C0712 +38EA7003A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F9614>I< +EAFFE013F8EA383C7F130E7FA3EB0380A8EB0700A2130E131E5BEAFFF813E011177F9614 +>IIII<38FE3F80A238380E00A8 +EA3FFEA2EA380EA938FE3F80A211177F9614>II76 D<38FC1F80A2007C1300EA7637A4 +EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>I<38FE3F80A238 +3E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA211177F9614>IIIIII<387FFF80B5FCEAE1C3A43801C000AFEA0FF8A211177F9614>I<38 +FE0FE0A238380380B0381C0700A2EA0E0EEA07FCEA01F01317809614>I<38FC1F80A238 +380E00A3EA3C1EEA1C1CA46C5AA4EA0630EA0770A3EA0360A213E0A26C5A11177F9614> +I<38FC1F80A238700700A7EA31C6EA33E6EA3BEE136EA5EA1B6CA2EA1A2CEA1E3CA31117 +7F9614>II<38FC1F80A238380E00EA +3C1EEA1C1CEA1E3CEA0E38A26C5AA2EA036013E0A26C5AA8EA07F0A211177F9614>III93 D95 +D97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0 +A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>II<137EA2130E +A5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF1217 +7F9614>II<13FCEA01FEEA038EEA07041300A3EA7FFE12 +FFEA0700ACEAFFF8A20F177F9614>II<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF +8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I< +136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0C0EA7F80EA3F000C207E9714> +I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38 +FF1F80A21117809614>IIIIIIIII<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F +157F9414>II<38FE3F80A2383C +1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA +380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>II<38FE +3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC +127E123C11187F8F14>II E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmsltt10 10.95 9 +/Ff 9 116 df<120C121E123FA2123E121C1200A8127012F8A412700814769318>58 +D97 D<13F8EA07FE487E381F0780 +EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3FFE6C +5AEA07F012147B9318>101 DI<1318133C137C133C131890 +C7FCA4EA0FF8121F120FEA0038A25BA65BA6EA7FFFB512806C1300111D7C9C18>105 +D108 +D<381F3C3CEBFEFE13FF3807CFCEEB8F8E380F0F0EA2EA0E0EA4381C1C1CA638FE3E3E38 +FF7F7F38FE3E3E1814809318>I<381F8F80383FBFE0381FFFF03803F07013E0EA07C013 +801300A4000E13E0A638FF87F8EBCFFCEB87F816147F9318>I115 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmbx12 13.14 55 +/Fg 55 122 df<903907FC0FE090393FFF3FF89039FC03FC783A03F007F0FC3807E00F15 +E0D80FC0147802071300A7B71280A23A0FC007E000B3A239FFFC7FFFA226267FA524>11 +DI45 +D<123C127E12FFA4127E123C08087C8711>I48 D<131C133C13FC12FFA21200B3AA387FFFFCA21623 +7CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14FF147FA212 +7C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370EBE003EA01 +C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48B4FC000713 +E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8EB07F0EB0F +C03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214FEA2387C01 +FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F81301130313 +071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12705AB612C0 +A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF814F014E014 +C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC7127EA3147FA2 +127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018237DA21F> +II<1230123C003FB512C0A21580481400 +5C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25BA213F8A412 +01A66C5A13601A257DA41F>II<13FF000313C0380F83E0381F00F04813F8007E137CA2147E12FEA3 +147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C007E13FCA214F8 +14F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141CA2143EA3147FA2 +4A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A249 +6C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FF +F090B51280A229257EA42E>65 DI<9138 +FF8008010FEBF01890393FC03C789039FE0006F8D801F813034848130148481300484814 +78121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14 +606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C> +IIII<9138FF8010010FEBE03090393FC078F09038FE000DD801F81307D8 +07F0130348481301491300001F1570485AA2007F153090C8FCA2481500A70203B5FCA26C +90380007F0A27F123FA26C7E120F7F6C7EEA01F8D800FE130F90383FC03990390FFFF070 +0100EB803028257DA430>III76 DII<903803FF80011F13F090387F01FC +3901FC007FD803F0EB1F804848EB0FC0000F15E04848EB07F0491303003F15F8A2007F15 +FC90C71201A24815FEA96C15FCA26D1303003F15F8A26C6CEB07F0A26C6CEB0FE06C6CEB +1FC06C6CEB3F806C6CEB7F0039007F01FC90381FFFF00103138027257DA42E>II82 D<01FF1380000713E338 +0F80F7381E001F48130F481307140312F81401A27E91C7FCB4FCEA7FE013FE383FFFE014 +F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200C01303A315C07E6C1307 +6C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<007FB612F8A2397E00FE +010078EC00780070153800601518A200E0151C160C5AA4C71400B3A390B512FEA226247E +A32B>III<3A7FFFC07FFEA23A03FC00078093C7FC6C +6C130E6C6C130C5D90387F80386D6C5A90381FE0605DEB0FF1903807FB8092C8FCEB03FE +13011300806E7E81A2ECDFE0903801CFF0EB038FEC07F890380603FC90380E01FE131C90 +381800FF496D7E1370496D7E496D7E4848130F486C80D8FFFC90B51280A229257EA42E> +88 D97 +DIII<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E +12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80 +17187E971C>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800007E7FA6003E5B +6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C13FC806C7F4814 +80383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807FFF8C613C01B24 +7E971F>103 DI<120FEA1F80EA3FC0A4EA1F80EA0F00C7FCA7EA7F +C0A2120FB3A2EAFFF8A20D277EA611>I107 DI<26FF +80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001A013F0A201C0 +13E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E0FC013989038 +9007E013A0A213C0AF39FFFC7FFEA21F187E9722>II<38FFC1FCEBCFFF390FFC1FC09038F007E001C013F0140315 +F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00EBC3F801C0C7 +FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013A01478EBE000 +5BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF000A300FC1300 +B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0EAF00338FC07 +8038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB512C0A2380FC0 +00AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07FE0A2000F1307 +B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<3BFFF9FFE0FF80A23B +1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015E02601F863 +5BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA2011E133CA301 +0C131829187F972C>119 D<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00 +001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F +8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E00300A2 +6D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26D +C7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmti10 10.95 75 +/Fh 75 123 df<91383F03E09138C38470903901878CF0010313989138033860D9070013 +00A35D130EA390B6FC90380E00E05BA44A5A1338A549485AA54948C7FCA4EBC00E120114 +0CEA318638798F1838F31E1038620C60383C07C02429829F1C>11 +DII<13E0EA01F0A2EA03E0A313C0A3138012071300A31206A35AA31208 +A3C7FCA5127012F8A25A5A0C217BA00E>33 D35 D<01701304D80188130CD803041338D806071370390E02E3E0000CEB1C60001CEB00 +C0EC0180393804030014065C13085C495A5C381820C0EA08C03807018039000303C09038 +06062090380C0C10EB18181430EB3070EB6060EBC0E0EA0180EA0300903801C020120612 +0C0018144012300100138048EBC10048136248133C1E2579A125>37 +D<130113021304130813101320136013C0EA0180A2EA03005A1206120E120C121C121812 +38A212301270A21260A212E0A25AAD12401260A212207EA27E102E79A113>40 +D<13107F7F130613021303A37F1480A71303A31400A35BA21306A2130E130CA2131C1318 +133813301370136013E05B485A90C7FC5A12065A5A5A5A1280112E80A113>I<1330A313 +20A2381861C0381C678038064E00EA0378EA01E0A2EA07B0EA1C98EA798EEAE1860001C7 +FCA25AA3121478A117>I<121C123CA41204A21208A212101220A212401280060E7D840E> +44 DI<127012F8A212F012E005057B840E>I<154015 +C0EC0180A2EC0300A21406A25C5CA25CA25C5CA2495AA249C7FCA213065BA25BA25BA25B +5BA2485AA248C8FCA212065AA25AA25AA25A5AA25A1A2D7FA117>II<1302A21306130E +133C13DCEA031C12001338A41370A413E0A4EA01C0A4EA0380A41207EAFFF80F1E7B9D17 +>I<131FEB61C0EB80E0EA010000021370134012041320380840F0A3EB80E0EA09010006 +13C038000380EB0700130C5B13605B0003C7FC12044813405A1480EA2001EA7E033847FF +00EA41FEEA80FC1378141F7C9D17>II<146014E0A3EB01C0A3EB +0380A214005BA21306130E130C5BA25BA213635B1387EA01071203EA060E12041208EA3F +8EEA607C38801FC038001C00A25BA45BA2136013277E9D17>II +I<3804E010EA0BF0000F1320001F1340381E19C038380E80EA3001386003001240EA8006 +EA000E130C131C131813385BA213F05B1201A2485AA3485AA3120F90C7FCA21206141F79 +9D17>II<1207120F121FA2120E1200AA127012F8A212 +F012E008147B930E>58 D<14021406A2140E141EA2143F142F144F14CF148FEB010FA213 +02A213041308A20110138014071320EB3FFFEB40071380A2EA0100A2120212061204001E +14C039FF807FF81D207E9F22>65 D<48B512C039001E00F015781538153C5BA4491378A2 +15F0EC01E09038F007809038FFFE009038F00F80EC03C03801E00115E0A3EA03C0A315C0 +38078003EC0780EC0F00141E380F007CB512E01E1F7D9E20>II<90B5 +128090381E00E015701538151C5B150EA35BA449131EA44848133CA3157848481370A215 +E0EC01C0380780031580EC0E005C380F0070B512C01F1F7D9E22>I<48B512FE39001E00 +1C150C1504A25BA490387804081500A2140C495AEBFFF8EBF018A23801E010A3EC001048 +481320A21540A248481380140115001407380F001FB512FE1F1F7D9E1F>I<48B512FC39 +001E003815181508A25BA4491310EC0800A3495A1430EBFFF0EBF0303801E020A44848C7 +FCA4485AA4120FEAFFF81E1F7D9E1E>II<9039FF +F1FFE090391F003E00011E133CA3495BA4495BA449485A90B5FCEBF001A24848485AA448 +48485AA4484848C7FCA4000F5B39FFF1FFE0231F7D9E22>I<3801FFF038001F00131EA3 +5BA45BA45BA4485AA4485AA4485AA4120FEAFFF0141F7D9E12>I<9039FFF01FE090391F +000F80011EEB0E0015085D495B5D4AC7FC1402495A5C5C1430EBF0F0EBF1F8EBF27813F4 +48487E13F013E080EA03C0A280A2EA07806E7EA3000F8039FFF03FF8231F7D9E23>75 +D<3801FFF8D8001FC7FC131EA35BA45BA45BA4485AA315803903C00100A25C1402380780 +06A25C141C380F0078B512F8191F7D9E1D>II<01FFEB3FE0011FEB0F001504EB1780A201275BEB23C0A3903841 +E010A214F0134001805B1478A348486C5AA3141E00025CA2140FA24891C7FC80A2120C00 +1C1302EAFF80231F7D9E22>II<48 +B5128039001E00E015701538153C5BA4491378A215F015E09038F003C0EC0F00EBFFFC01 +F0C7FC485AA4485AA4485AA4120FEAFFF01E1F7D9E1F>I<90B5FC90381E03C0EC00E015 +7015785BA44913F0A2EC01E015C09038F00700141EEBFFF0EBF01C48487E140F80158039 +03C00F00A43807801E1508A21510000F130ED8FFF01320C7EA03C01D207D9E21>82 +D<903807E04090381C18C09038300580EB600313C000011301018013001203A391C7FC7F +A213F86CB47E14E06C6C7E131FEB01F8EB0078A21438A21220A2143000601370146014E0 +00705B38E80380D8C606C7FCEA81F81A217D9F1A>I<000FB512FC391E03C03800181418 +001014081220EB078012601240A239800F001000001400A3131EA45BA45BA45BA4120138 +7FFF801E1F799E21>I<393FFC0FF83907C003C09038800100A3380F0002A4001E5BA448 +5BA4485BA4485BA35CA200705B49C7FCEA3002EA3804EA0C18EA07E01D20779E22>I<39 +FFF003FC001FC712E06C14C01580EC0100A21402A25C5C138000075B143014205CA25C13 +8191C7FC13C2120313C413CC13C813D0A213E05BA25B120190C8FC1E20779E22>I<3BFF +E1FFC07F803B1F003E001C00001E013C13181610143E021E5B121F6C013E5BA2025E5B14 +9E4BC7FC9038011E02A201025BA201045BA201085BA201105B13205D01405BA2D9801FC8 +FC80EB000E7E0006130CA2000413082920779E2D>I<9039FFF07FE090391F801F009038 +0F000C6E5A010713105D6E5A01035B02C1C7FC14E2EB01E614EC14F86D5AA280A2EB017C +EB023C1306EB043EEB081E1310EB201F497E1380D801007F4813071206001F497E39FFC0 +3FF8231F7E9E22>I<39FFF003FC001FC712E06C14C06D1380EC0100000713026D5AA200 +035B6D5A5C00011360EBF0405CD800F1C7FC13FA13FE137C1378A2137013F0A35B1201A4 +485AEA3FFC1E1F779E22>I<90387FFFF89038FC00F09038E001E09038C003C090388007 +8012019038000F00141E5C00025BC712F85C495A495A495A49C7FCA2131E5B495A13F000 +01130213E03803C00638078004380F000C001E1308003E1318003C1338387801F0B5FC1D +1F7D9E1C>II93 D97 DI<137E +EA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA300CEA1830EA +07C011147C9315>I<1478EB03F8EB0070A414E0A4EB01C0A213F1EA038938070780EA0E +03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070015 +207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA78005AA4EA70 +01A21302EA380CEA1830EA07C010147C9315>I<1478EB019CEB033CA2EB07181400A213 +0EA5EBFFE0EB1C00A45BA55BA55BA5485AA35B1231007BC7FC12F31266123C1629829F0E +>II< +EA01E0120FEA01C0A4485AA448C7FCA2131E1363380E8180380F01C0120EA2381C0380A4 +38380700A3EB0E1000701320A2131CEB0C4000E013803860070014207D9F17>I<13C0EA +01E0A213C0C7FCA7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270 +EA31001232121C0B1F7C9E0E>I +III<391C0F80F0392630C318394740640C903880680EEB0070A2008E495A120E +A34848485AA3ED70803A3803807100A215E115623970070064D83003133821147C9325> +I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038 +1388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C338030180000E13 +C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA3018EA1870EA07C0 +13147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E01200A33801C03CA3 +143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2B47E171D809317 +>III<13FCEA0302EA0601 +EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA40 +10EA2060EA1F8010147D9313>II<000E13C0001313E0382301 +C0EA4381EA4701A238870380120EA3381C0700A31410EB0E201218A2381C1E40EA0C2638 +07C38014147C9318>I<380E0380EA1307002313C0EA4383EA4701130000871380120EA3 +381C0100A31302A25BA25BEA0E30EA03C012147C9315>I<000EEBC1C0001313E3392301 +C3E0384381C1384701C015603987038040120EA3391C070080A3EC0100A21306EB0F0200 +0C5B380E13083803E1F01B147C931E>I<38038380380CC440381068E013711220EB70C0 +3840E0001200A3485AA314403863808012F3EB810012E5EA84C6EA787813147D9315>I< +000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E1218A2 +EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C9316>I< +3801C0403803E080EA07F1380C1F00EA0802C65A5B5B5B5B5B48C7FC1202485AEA080212 +10EA3E0CEA63FCEA41F8EA80E012147D9313>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmb10 10.95 43 +/Fi 43 122 df45 D<1238127C12FEA3127C123807077D860D> +I<1307A3497EA2497EA3497E1337A2EB63F0A3EBC1F8A3380180FCA33803007EEBFFFE48 +7F3806003FA2000EEB1F80120CA2001CEB0FC039FF80FFF8A21D1F7E9E22>65 +DI<90380FF0109038 +7FFC703901FC0EF03803E003380FC001381F8000A248C71270A2007E1430A212FE1500A8 +007E1430A27E15706C6C136015E06C6C13C03903E003803901FC0F0038007FFCEB0FF01C +1F7E9E21>IIII<90381FE02090 +387FF8E03801F81D3807E007380FC003381F800190C7FC5A5A007E1460A212FE1500A590 +3801FFFCA290380007E0127EA2127F7E7E1380EA0FC03807E00F3801FC1F38007FF89038 +1FE0601E1F7D9E24>I<39FFFC7FFEA2390FC007E0AC90B5FCA2EBC007AD39FFFC7FFEA2 +1F1F7E9E24>II<3803FFF0A238001F80B3 +A21210127C12FEA338FC3F00EA783EEA3FFCEA0FE0141F809E18>I76 D<39FFC007FEA2390FE000 +607FEA0DF8A2EA0CFC137EA27FEB1F80EB0FC0A2EB07E0EB03F014F81301EB00FC147EA2 +143FEC1FE0140FA214071403A214011400D8FFC01360A21F1F7E9E24>78 +DII82 D<3803F040380FFDC0EA1C0FEA3803EA70 +01A2EAF000A36C13007EB47EEA7FF8EA3FFEEBFF806C13C01207C613E0130FEB03F01301 +130012C0A36C13E0130100F813C038FE038038EFFF00EA81FC141F7E9E19>I<007FB512 +C0A2387C1F830070138100601380A200E014E000C01460A400001400B13807FFFEA21B1E +7E9D20>I<39FFFC0FFCA2390FC000C0B3A40007EB018013E00003EB03006C6C5A3800F8 +1EEB3FF8EB0FE01E1F7E9E23>I<39FFF803FEA2390FC000701560A26C6C13C0A2EBF001 +00031480A23901F80300A26D5A00001306A2EB7E0CA36D5AA214B8EB1FB0A2EB0FE0A36D +5AA36D5AA21F1F7F9E22>I<397FFC3FF8A23907E00700EBF0060003130E3801F80CEBFC +1C000013186D5AEB7E70EB3F605C131FA2130F6D7E80130F801319EB38FCEB30FEEB607E +EBE07F497E3901801F80000314C0EB000F4814E039FFE07FFEA21F1F7F9E22>88 +D<39FFF803FEA2390FC000706D1360000714C07F3903F801800001130301FC130000005B +EBFE06EB7F0E140CEB3F9CEB1F9814F0130F5C1307ABEB7FFEA21F1F7F9E22>I97 DIIII<13 +7F3801FF803807C7C0EA0F8F130F121FEB078090C7FCA5EAFFF0A2001FC7FCB0EAFFF0A2 +12207F9F0E>I<3803F0E0380FFDF0EA1E1EEA3C0F007C1380A5003C1300EA1E1EEA1FFC +EA33F00030C7FCA21238EA3FFEEBFF806C13C04813E0387803F0EA700012F0A4387801E0 +383E07C0381FFF803803FC00141E7F9317>II<121C123E127FA3123E121CC7FCA6B4FCA2121FB0EA +FFE0A20B217FA00C>I108 +D<39FE0F80F890383FC3FC391E63E63E9038C1FC1FEB81F8381F01F0AD3AFFE7FE7FE0A2 +23147E9326>IIII114 +DI<1203A45AA25AA2123FEAFFF8A2 +EA1F00AA130CA5EA0F98EA07F0EA03E00E1D7F9C12>I<38FF1FE0A2EA1F03AE1307EA0F +0F3807FBFCEA03F316147E9319>I<39FFCFF1FCA2391F03C0701560EB07E0D80F8713C0 +A2EB8CF03907CCF180A2EBD8793903F87B00A2147F497E0001133EA2EBE01E0000131CEB +C00C1E147F9321>119 D<38FFC3F8A2381F00C0A2380F8180A33807C300A213E7EA03E6 +A2EA01FCA36C5AA31370A21360A2EA78E0EAFCC0A2EAC18012E3007FC7FC123C151D7F93 +18>121 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmsy10 10.95 1 +/Fj 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01 +800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15 +306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0 +D900FEC7FC272B7DA02E>13 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fk cmbx12 17.28 41 +/Fk 41 122 df<121E123FEA7F80EAFFC0A213E0A2127FEA3F60121E1200A313C0A3EA01 +80A2EA03001206A25A123812300B187A8916>44 DI49 +DII<157015F0140114031407140FA2141F143F147714F714E7EB01C7EB0387EB0707130F +130E131C1338137013F013E0EA01C0EA0380EA07005A120E5A5A5A5AB712E0A3C7380FF0 +00A9010FB512E0A3232E7EAD28>I<000C1430390FC007F090B512E015C0158015005C14 +F85C1480000EC8FCA8EB1FF0EBFFFE390FE03F809038000FC0000EEB07E0000C14F0C713 +F8140315FCA215FEA21218123E127F5AA215FCA25A0078EB07F815F06CEB0FE06CEB1FC0 +390FC07F806CB51200000113FC38003FE01F2E7CAD28>I<14FF010713E0011F7F90387F +80F89038FE003CD801F8137C484813FE00071301EA0FE0A2EA1FC0003F6D5A157892C7FC +485AA338FF83FC90388FFF8090389C0FC09038B003F06E7E01E07F01C07F140081A24914 +80A4127FA4003F15007F121F5D000F495AEA07E06C6C485A3901FC0FE06CB55A013F90C7 +FCEB0FFC212E7DAD28>I<1578A215FCA34A7EA24A7EA24A7FA34A7FEC0E7F021E7FEC1C +3FA202387F151F02787FEC700FA202E07F1507010180ECC003A249486C7EA201078191C7 +FC498191B6FCA24981011CC7123F013C810138141FA24981160F01F081491407A2484881 +486C1403B549B512FCA336317DB03D>65 D<913A03FF800180023FEBF00349B5EAFC0701 +079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49 +150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E +1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907 +FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>67 +D70 +DI +II76 D79 +D82 +D<90391FF8018090B51203000314C73907F007EF390F8000FF48C7127F003E141F150F5A +150712FCA215037EA26C91C7FC13C0EA7FF0EBFF806C13F8ECFF806C14F06C806C806C14 +FFC6FC013F1480010114C0D9001F13E01401EC003FED1FF0150F1507126000E01403A316 +E07EA26CEC07C07EB4EC0F8001C0EB1F00D8FBFC13FE00F1B512F8D8E03F5BD8C0031380 +24317CB02D>I<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F0 +1780A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>II<007FB590387FFFF8A3C601E0 +903801F000017F5D6D6C5C6D6C13036E495A010F4AC7FC6D6C130E6E131E6D5C6D6D5A6D +EBC070EDE0F091387FE1E091383FF3C0EDFB80EC1FFF6E90C8FC6E5A81806E7F82804A7F +4A7F913807BFF8151F4A6C7E021E7FEC3C0791383803FFDA78017F02F08049487E4A6D7E +0103814948133F91C76C7E010E6E7E011E8149140701386E7E01FC1680B500E0017F13FF +A338317EB03D>88 D97 +DIIIII<90 +391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0 +00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC +121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C +140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0 +D8001F90C7FC242F7E9F28>III108 D<2703F007F8EB1FE000FFD9 +3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602 +F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE +EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F +2D>II<3901F83FE000FFEBFF +FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216 +FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC +3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3 +0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 +D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0 +6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13 +1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201 +12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB +07F0192E7FAD1F>II<3A7FFF807FFCA3 +3A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF +806D90C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03FEEB +3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>120 +DI E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmbx12 14.4 63 +/Fl 63 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612 +0E5A5A12100A157B8813>44 DI<121C127FA2EAFF80A3EA7F00 +A2121C09097B8813>I<1403EC0780A2140F1500A25C141E143E143CA2147C1478A214F8 +5C13015CA213035CA213075C130F91C7FCA25B131E133E133CA2137C1378A213F85B1201 +5BA212035BA212075B120F90C8FCA25A121EA2123E123C127C1278A212F85AA21260193C +7CAC22>II<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>III<140FA25C5C5C5C5BA2EB03BFEB +073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8A3C7 +EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091C7FC +001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218127C +12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA622> +II< +1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA2495A13 +0791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>III<121C127FA2EAFF80A3EA7F00A2121CC7FCA9121C127FA2EAFF80 +A3EA7F00A2121C091B7B9A13>I65 +DI<91387FE003903907FF +FC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F48 +5A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C +6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831> +IIII<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FF +D801FC7F484880484880484880485A82485A82127FA290CAFC5AA892B512F87E7F030013 +00123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F903900 +7FF0032D297CA835>III75 DI< +D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038F +A3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0 +A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280 +A2157039297DA840>IIIII +I<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2 +14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB +007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00 +00E15B38C01FF01C297CA825>I<007FB71280A39039807F807FD87C00140F00781507A2 +0070150300F016C0A2481501A5C791C7FCB3A490B612C0A32A287EA72F>IIII<3B7FFFF01FFFE0A3000190C7EAF0 +006C6D485A02C05B017F13036D6C485AD91FF090C7FC5D90380FF81E6D6C5A1538903803 +FE786D6C5A5D6D5B147F6E7EA26E7E81143F81EC7BFEECF3FFEB01E102C07F01036D7EEB +078049486C7E010E6D7E131E496D7E01386D7E498001F0130348486D7EB5013F13FCA32E +297EA833>I<003FB6FCA39038F001FE90388003FCEB0007003E5C003C495A48131F5D14 +3F00705C4A5A14FF92C7FCC6485A13035C495A130F5C131F5C495A017FEB03801480EBFF +005A5B4848130712075B000FEC0F005B48485B003F5C4913FF387F8003B7FCA321297CA8 +29>90 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801 +FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B +7E9A21>97 DIIIII<9038FF80F000 +03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E +6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C +14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512 +0038007FF01E287E9A22>II<1207EA0F80EA1FC0EA3FE0 +A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<1307EB0F +80EB1FC0EB3FE0A3EB1FC0EB0F80EB070090C7FCA7EBFFE0A3130FB3AA127C12FE14C0EB +1F801400EA7C3EEA3FFCEA0FF0133784AA15>III<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039C803 +F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC07E90 +38C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA3201B7D +9A25>II<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F801E0 +13FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE09038EF +FF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E380FCC +7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA3E03 +EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6FCEB +07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B>I< +13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E0000313C0 +3801FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA2000713173903F0 +67FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F0003EB +01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA3 +6D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB0380A2 +01F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E3C01 +7F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F9A31 +>I<39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F86D5A +6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013E0EB +800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF000F0000714E07F0003EB01C0 +A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA36D5A +A26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA0F8020277F +9A23>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fm cmtt10 10.95 89 +/Fm 89 126 df<127012F8B012701200A5127012F8A31270051C779B18>33 +DI +I37 D<1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B +18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E +121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012787E7E7EEA078012 +03EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A12600C24 +7C9F18>II<136013F0A7387FFFC0B512E0A26C +13C03800F000A7136013147E9718>I<121C123E127E127F123F121F1207120E121E127C +12F81260080C788518>I<387FFFC0B512E0A26C13C013047E8F18>I<1230127812FCA212 +7812300606778518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F85B +12015B12035BA212075B120F90C7FCA25A121E123E123CA2127C127812F85AA212601124 +7D9F18>I +IIII<131F5B1377A213E7120113C7EA038712071307120E121E123C1238127812F0B5 +12F8A338000700A6EB7FF0A3151C7F9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F +383C0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA +1FFCEA03F0131C7E9B18>I<137E48B4FC00071380380F83C0EA1E03121C3838018090C7 +FC5AA2EAE1F8EAE7FEB5FC38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C +03381E0780380FFF006C5AEA01F8131C7E9B18>I<12E0B512E0A214C038E00380EB0700 +C65A131E131C5BA25B13F05BA2485AA3485AA448C7FCA7131D7E9C18>III<1230127812FCA2127812301200A81230127812FCA212781230 +0614779318>I<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C +123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0 +485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303 +EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C013 +0C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB +1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<137CEA +01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1 +C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00 +131C7E9B18>64 D<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA +0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>IIIII +I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F +387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F0 +38FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F +9B18>II<3801FF +C0A338000E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8 +387F07F0381C03C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C +0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>II<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA2 +13DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF838 +7F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F +07EAFF87EA7F03151C7F9B18>III +II<3803F1C0EA1FFF5AEA7C0F +EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2 +126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2 +38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F +01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0 +001C13C0A3EA1E03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370 +151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138C +A2EA1D8DA31305000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E07 +00120FEA070E138EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA07 +0F7F000E13801303001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EA +FF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A2 +1370A9EA01FC487E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A +131E131C133C5B137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3 +131C7E9B18>II<126012F0A27E1278127C +123CA2123E121E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131E +A2131F7F14801307A2EB030011247D9F18>II<387FFFC0B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A3 +12F812FC127CA21238070E789E18>II< +127E12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2 +EB80E013C1EBFFC0000E138038063E00151C809B18>IIIII<3801E1F03807FFF85A381E1E30381C +0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F0 +38700070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12 +FE127E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7 +FC171C809B18>II<1338137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0 +EA3F800E277E9C18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0F +F87F139C130EEA0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>II<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38 +FE3E3EEB7E7EEB3E3E1714809318>IIII<3801 +F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA +0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA +07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>II<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801 +C1C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F03 +3807FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E +0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F813 +8F1307383800E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA2380707 +0015147F9318>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013 +F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I< +387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA2 +13CC120013DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<38 +3FFFF05AA2387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F007012 +1E5A5AB512F0A314147F9318>II<126012F0B3B012600424769F18> +I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC +127C13247E9F18>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fn cmbx12 20.736 3 +/Fn 3 100 df80 D<13FE12FFA412071203B04AB4 +FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0 +17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB +FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>98 +D<903801FFF0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A12 +1F4848EB3FC0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB +01E012076C6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267D +A52B>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fo cmr10 10.95 80 +/Fo 80 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7 +B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701 +A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>II<90381F81F89038F04F043901C07C063903 +80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<127012 +F8A71270AA1220A51200A5127012F8A3127005217CA00D>33 D37 D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 +D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 +30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 +0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A +5A0A2E7EA112>II<127012F012F8A212781208A31210A31220A2124005 +0E7C840D>44 DI<127012F8A3127005057C840D>I<144014C0EB +0180A3EB0300A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA3 +5AA35AA2122D7EA117>II<13801203120F12 +F31203B3A6EA07C0EA7FFE0F1E7C9D17>III<1306A2130EA2131E132EA2 +134E138EA2EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0 +141E7F9D17>II<137CEA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EA +F21CEAF406EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01 +F0121F7E9D17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA2 +1360A213E05B1201A41203A76C5A131F7E9D17>II< +EA03F0EA0E18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA +03E338000380A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I< +127012F8A312701200AA127012F8A3127005147C930D>I<127012F8A312701200AA1270 +12F012F8A212781208A31210A31220A21240051D7C930D>I61 D<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801E +A248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22> +65 DI<90380FE010903838 +1C309038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A9 +1278007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E +9F21>IIII<90380FE0 +2090387818609038E004E03803800238070001481300001E1460A25A1520127C127800F8 +1400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E004609038781820 +90380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D +1F7E9E22>II<3807FFC038003E00131EB3A312 +2012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E17>I76 DIIIIII<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80 +EA3FF86CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038 +F8018038C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A2 +00C0143000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003 +E0EC0080B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39 +FFF003FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F0 +02A213F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I< +3BFFF07FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013 +C000035DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460 +013C144090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F +>I<397FF81FF8390FE007C03907C0030000031302EBE0063801F00400005BEBF818EB78 +106D5AEB3E60EB1E406D5AA213076D7E497E1305EB08F0EB18F8EB1078EB207CEB603EEB +401EEB801F3901000F801407000214C000061303001FEB07E039FFC01FFE1F1F7F9E22> +I<39FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB +7C06EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>I<12FF +A212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D>93 +D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 +DI<121C12FC121CAA137CEA1D87381E0180EB00 +C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F +19>IIII<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010 +20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33 +E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13 +C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212 +1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F +9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61 +80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0 +EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC +121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200 +1C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270 +12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F +9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8 +383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3 +132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807 +04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F +9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013 +7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I< +38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8 +A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>II E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 1852 -58 a Fo(1)75 659 y Fn(Pcb)p 75 692 1800 +17 v 1603 739 a Fo(an)16 b(in)o(teractiv)o(e)1460 793 +y(prin)o(ted)g(circuit)h(b)q(oard)1445 847 y(la)o(y)o(out)e(system)g +(for)f Fm(X11)75 2545 y Fl(Thomas)21 b(Nau)p 75 2570 +1800 9 v eop +%%Page: 1 2 +1 1 bop 75 -58 a Fo(Cop)o(ying)1613 b(1)75 149 y Fk(Cop)n(ying)137 +267 y Fo(Cop)o(yrigh)o(t)363 266 y(c)351 267 y Fj(\015)14 +b Fo(1994,1995,1996)o(,19)o(97)e(Thomas)j(Nau)137 334 +y(This)g(program)e(is)h(free)g(soft)o(w)o(are;)f(y)o(ou)g(ma)o(y)h +(redistribute)h(it)f(and/or)g(mo)q(dify)g(it)h(under)f(the)h(terms)75 +389 y(of)i(the)g(GNU)g(General)g(Public)i(License)g(as)e(published)i(b) +o(y)e(the)h(F)l(ree)f(Soft)o(w)o(are)e(F)l(oundation;)j(either)75 +443 y(v)o(ersion)d(2)g(of)g(the)g(License,)i(or)e(\(at)f(y)o(our)h +(option\))g(an)o(y)f(later)i(v)o(ersion.)137 511 y(This)21 +b(program)d(is)i(distributed)i(in)e(the)g(hop)q(e)g(that)f(it)h(will)i +(b)q(e)e(useful,)i(but)e(WITHOUT)g(ANY)75 565 y(W)-5 +b(ARRANTY;)12 b(without)j(ev)o(en)f(the)g(implied)j(w)o(arran)o(t)o(y) +12 b(of)i(MER)o(CHANT-ABILITY)g(or)g(FITNESS)75 620 y(F)o(OR)g(A)g(P)l +(AR)l(TICULAR)g(PURPOSE.)g(See)h(the)g Fi(GNU)e(General)j(Public)h +(License)f Fo(for)d(more)h(details.)p eop +%%Page: 2 3 +2 2 bop 75 -58 a Fo(History)1630 b(2)75 149 y Fk(History)137 +250 y Fm(Pcb)13 b Fo(is)g(a)g(handy)g(to)q(ol)g(for)f(la)o(ying)i(out)e +(prin)o(ted)i(circuit)g(b)q(oards.)19 b(It)13 b(w)o(as)f(\014rst)g +(written)h(for)g(an)f(A)o(tari)75 305 y(ST)h(in)h(1990)e(and)h(p)q +(orted)g(to)g Fm(UNIX)f Fo(and)i Fm(X11)e Fo(in)i(1994.)k(I)c(nev)o(er) +f(had)g(the)g(in)o(ten)o(tion)h(to)f(create)f(another)75 +359 y(professional)j(la)o(y)o(out)e(system,)g(but)h(to)g(write)g(a)f +(to)q(ol)h(whic)o(h)h(supp)q(orts)f(p)q(eople)h(lik)o(e)g(y)o(ou)f(who) +f(do)h(some)75 414 y(home-dev)o(eloping)22 b(of)d(hardw)o(are.)33 +b(F)l(or)19 b(this)h(reason)f(it)h(has)g(no)g(auto-router)e(nor)i +(auto-placemen)o(t)75 469 y(co)q(de.)137 533 y(The)e(second)g(release)f +(1.2)g(included)j(men)o(us)d(for)g(the)g(\014rst)g(time.)26 +b(This)18 b(made)f Fm(PCB)g Fo(easier)h(to)f(use)75 588 +y(and)e(th)o(us)g(a)g(more)g(imp)q(ortan)o(t)g(to)q(ol.)137 +652 y(Release)g(1.3)e(in)o(tro)q(duced)j(undo)e(for)g +(highly-destructiv)o(e)i(commands,)e(more)g(straigh)o(tforw)o(ard)e +(ac-)75 707 y(tion)18 b(handling)h(and)f(scalable)h(fon)o(ts.)26 +b(La)o(y)o(er-groups)17 b(w)o(ere)g(in)o(tro)q(duced)i(to)e(group)g +(signal-la)o(y)o(ers)h(to-)75 761 y(gether.)137 825 y(Release)f(1.4)e +(pro)o(vided)h(supp)q(ort)g(for)g(add-on)g(device)h(driv)o(ers.)23 +b(Tw)o(o)15 b(la)o(y)o(ers)h(\(the)f(solder)i(and)f(the)75 +880 y(comp)q(onen)o(t)g(side\))g(w)o(ere)f(added)h(to)f(supp)q(ort)h +(SMD)f(elemen)o(ts.)22 b(The)16 b(handling)h(of)e(libraries)i(w)o(as)e +(also)75 935 y(impro)o(v)o(ed)j(in)g(1.4.1.)25 b(Supp)q(ort)18 +b(for)e(additional)j(devices)g(lik)o(e)g(GERBER)d(plotters)h(started)g +(in)h(1.4.4.)75 990 y(The)d(undo)h(feature)f(w)o(as)f(expanded)j(and)e +(the)g(redo-feature)g(added)h(in)g(1.4.5.)137 1054 y(Release)e(1.5)e +(pro)o(vides)i(supp)q(ort)f(for)f(rats-nest)h(generation)g(from)g +(simple)h(net)g(lists.)19 b(It)14 b(also)f(allo)o(ws)75 +1108 y(for)f(automatic)g(clearances)h(around)g(pins)g(that)f(pierce)h +(a)g(p)q(olygon.)19 b(A)13 b(v)m(ariet)o(y)f(of)g(other)g(enhancmen)o +(ts)75 1163 y(including)k(a)e(Gerb)q(er)g(RS274X)e(driv)o(er)i(and)g +(NC)g(drill)h(\014le)g(generation)f(ha)o(v)o(e)f(also)h(b)q(een)g +(added.)20 b(harry)75 1218 y(eaton)12 b(\(haceaton)p +Fm(@)p Fo(aplcomm.jh)o(uapl.edu\))h(w)o(as)e(resp)q(onsible)k(for)d +(most)g(of)g(the)h(c)o(hanges)f(found)h(in)h(this)75 +1273 y(release.)137 1337 y(Release)e(1.6)e(pro)o(vides)i(automatic)e +(screen)i(up)q(dates)g(of)e(c)o(hanged)i(regions.)19 +b(This)11 b(should)i(elliminate)75 1391 y(most)i(of)g(the)g(need)h(for) +f(the)g(redra)o(w)g(\(r\))g(k)o(ey)l(.)20 b(Also)c(some)f(c)o(hanges)g +(to)g(what)g(order)g(items)h(under)g(the)75 1446 y(cursor)c(are)h +(selected)h(w)o(ere)e(made)h(for)f(b)q(etter)h(consistancy)g(-)g(it)g +(is)g(no)g(longer)g(p)q(ossible)h(to)e(acciden)o(tally)75 +1501 y(mo)o(v)o(e)18 b(a)g(line)i(or)e(line)i(p)q(oin)o(t)f(that)f(is)h +(completely)h(obscured)f(b)o(y)g(a)f(p)q(olygon)h(la)o(ying)g(o)o(v)o +(er)f(top)g(of)g(it.)75 1556 y(Larger)e(ob)s(jects)f(on)h(the)g(upp)q +(er)h(most)e(la)o(y)o(ers)h(can)g(b)q(e)g(selected)i(ahead)e(of)f +(smaller)i(ob)s(jects)e(on)h(lo)o(w)o(er)75 1611 y(la)o(y)o(ers.)29 +b(These)19 b(c)o(hanges)f(mak)o(e)g(op)q(erations)g(more)g(in)o(tuitiv) +o(e.)31 b(A)18 b(new)h(mo)q(de)f(of)g(line)i(creation)f(w)o(as)75 +1665 y(added)13 b(that)f(creates)g(t)o(w)o(o)g(line)i(on)e(45)g(degree) +h(angles)g(with)g(a)f(single)i(clic)o(k.)20 b(The)13 +b(actual)g(outline)h(of)e(the)75 1720 y(prosp)q(ectiv)o(e)18 +b(line\(s\))g(are)e(no)o(w)h(sho)o(wn)f(during)i(line)g(creation.)26 +b(An)17 b(arc)f(creation)h(mo)q(de)h(w)o(as)e(added.)75 +1775 y(Dra)o(wn)g(arcs)h(are)f(quarter)h(circles)h(and)f(can)h(b)q(e)f +(useful)h(for)f(high)h(frequency)f(con)o(trolled)h(imp)q(edance)75 +1830 y(lines.)j(\(Y)l(ou)13 b(can)g(ha)o(v)o(e)f(eigh)o(th)i(circle)g +(arc)f(if)h(the)f(source)g(is)g(compiled)i(with)e(-D)o(AR)o(C45,)e(but) +j(b)q(e)f(a)o(w)o(are)75 1885 y(that)18 b(the)g(ends)h(of)f(suc)o(h)g +(arcs)g(can)h(nev)o(er)f(in)o(tersect)h(a)f(grid)h(p)q(oin)o(t\).)29 +b(Tw)o(o)17 b(new)i(\015ags)f(for)f(pins)j(and)75 1939 +y(vias)14 b(w)o(ere)g(created)f(-)h(one)g(indicates)i(that)d(the)h(pin) +g(or)g(via)g(is)g(purely)h(a)f(drill)h(hole)g(and)f(has)g(no)f(copp)q +(er)75 1994 y(ann)o(ulus.)21 b(Y)l(ou)14 b(can)h(only)f(toggle)g(this)h +(\015ag)f(for)g(vias)g(-)h(for)f(elemen)o(ts,)g(it)h(m)o(ust)f(b)q(e)h +(an)f(in)o(tegral)h(part)e(of)75 2049 y(the)h(elemen)o(t)h +(de\014nition.)21 b(The)15 b(other)f(\015ag)f(con)o(trols)h(whether)h +(the)f(pad)g(will)i(b)q(e)f(round)f(or)g(o)q(ctagonal.)75 +2104 y(There)k(is)h(also)f(no)o(w)f(a)h(feature)f(for)h(con)o(v)o +(erting)f(the)i(con)o(ten)o(ts)e(of)g(a)h(bu\013er)g(in)o(to)g(an)g +(elemen)o(t.)29 b(Vias)75 2159 y(b)q(ecome)16 b(the)g(pins)h(\(or)e +(moun)o(ting)h(holes\),)g(lines)h(and)f(arcs)g(on)f(the)h(solder)h(la)o +(y)o(er)e(b)q(ecome)i(silkscreen,)75 2213 y(and)c(lines)i(on)d(the)h +(comp)q(onen)o(t)g(la)o(y)o(er)g(b)q(ecome)h(the)f(pads.)19 +b(Action)13 b(commands)g(en)o(tered)g(via)g(the)g(colon)75 +2268 y(command)g(en)o(try)f(are)h(no)g(longer)g(pro)q(ceeded)h(with)f +Fm(")p Fo(a)g Fm(")p Fo(,)g(just)f(t)o(yp)q(e)h(the)g(command)g +(directly)l(.)20 b(Sev)o(eral)75 2323 y(bugs)13 b(ha)o(v)o(e)f(also)h +(b)q(een)h(\014xed.)20 b(New)13 b(ones)g(w)o(ere)f(probably)i(in)o(tro) +q(duced)g(since)g(extensiv)o(e)f(c)o(hanges)g(w)o(ere)75 +2378 y(made.)20 b(harry)15 b(eaton)f(w)o(as)h(resp)q(onsible)i(for)e +(these)g(c)o(hanges.)137 2442 y(Release)20 b(1.6.1)e(adds)i(the)g +(abilit)o(y)g(to)f(mak)o(e)g(groups)h(of)f(action)g(commands)h(b)q +(ound)g(to)f(a)h(single)75 2496 y(X11)15 b(ev)o(en)o(t)f(to)h(b)q(e)g +(undone)h(b)o(y)f(a)g(single)h(undo.)k(Also)c(a)e(simple)j(design)f +(rule)g(c)o(hec)o(k)o(er)f(w)o(as)f(added)i(-)f(it)75 +2551 y(c)o(hec)o(ks)j(for)e(minim)o(um)j(spacing)f(and)f(o)o(v)o(erlap) +g(rules.)27 b(Plus)18 b(man)o(y)f(\014xes)h(for)f(bugs)g(in)o(tro)q +(duced)i(with)75 2606 y(the)c(man)o(y)g(c)o(hanges)g(of)g(1.6)f(harry)h +(is)h(resp)q(onsible)h(for)d(these)i(c)o(hanges)f(to)q(o.)137 +2670 y(Sp)q(ecial)j(thanks)d(go)q(es)g(to:)p eop +%%Page: 3 4 +3 3 bop 75 -58 a Fo(History)1630 b(3)195 149 y(Bernhard)16 +b(Daeubler)g(\(Bernhard.Daeubler)p Fm(@)p Fo(ph)o(ysik.uni-ulm.de\))195 +201 y(Harald)f(Daeubler)h(\(Harald.Daeubler)p Fm(@)p +Fo(ph)o(ysik.uni-ulm.de\))195 253 y(Roland)f(Merk)g(\(merk)p +Fm(@)p Fo(fa)o(w.uni-ulm.de\))195 305 y(Erland)h(Unruh)g +(\(Erland.Unruh)p Fm(@)p Fo(malmo.trab.se\))195 357 y(Alb)q(ert)g(John) +g(FitzP)o(atric)o(k)f(I)q(I)q(I)h(\(a)s(jf)p 831 357 +14 2 v 16 w(n)o(ylorac)p Fm(@)p Fo(acm.org\))195 409 +y(Bo)q(erge)f(Strand)g(\(b)q(orges)p Fm(@)p Fo(i\014.uio.no\))195 +461 y(harry)g(eaton)f(\(haceaton)p Fm(@)p Fo(aplcomm.jh)o(uapl.edu\)) +195 513 y(Andre)i(M.)e(Hedric)o(k)i(\(hedric)o(k)p Fm(@)p +Fo(Astro.Dy)o(er.V)l(anderbilt.Edu\))75 635 y(who)f(did)h(most)f(of)f +(the)i(alpha)f(and)h(b)q(eta)f(testing,)g(help)q(ed)i(to)e(p)q(ort)g +Fm(PCB)f Fo(to)75 689 y(sev)o(eral)20 b(op)q(erating)f(systems)g(and)h +(platforms)f(and)h(corrected)f(sev)o(eral)h(t)o(yp)q(os)f(in)h(the)g +(man)o(uals.)32 b(In)75 744 y(addition)23 b(to)f(these,)h(man)o(y)f +(others)f(donated)i(time)f(for)f(bug-\014xing)j(and)e(other)g(imp)q +(ortan)o(t)f(w)o(ork.)75 799 y(Some)15 b(of)g(them)g(can)g(b)q(e)h +(iden)o(ti\014ed)i(in)e(the)f(source)g(co)q(de)h(\014les.)21 +b(Thanks)15 b(to)f(all)j(of)d(them.)p eop +%%Page: 4 5 +4 4 bop 75 -58 a Fo(Chapter)15 b(1:)k(In)o(tro)q(duction)1297 +b(4)75 149 y Fk(1)41 b(In)n(tro)r(duction)137 267 y Fo(Eac)o(h)22 +b(la)o(y)o(out)f(consists)h(of)f(sev)o(eral,)i(mostly)f(indep)q(enden)o +(t,)j(ob)s(jects.)39 b(This)23 b(c)o(hapter)e(giv)o(es)h(an)75 +322 y(o)o(v)o(erview)12 b(of)f(the)h(ob)s(ject)g(t)o(yp)q(es)g(and)g +(their)g(relationship)i(to)d(eac)o(h)h(other.)19 b(F)l(or)11 +b(a)h(complete)g(description)75 377 y(of)h(ho)o(w)g(to)f(use)i +Fm(Pcb)p Fo(,)f(refer)g(to)f(Chapter)h(2)g([Getting)g(Started],)g(page) +g(9.)19 b(The)13 b(la)o(y)o(out)g(is)h(generated)f(on-)75 +432 y(screen)i(on)g(a)f(grid)h(that)f(has)h(its)g(origin)g(in)h(the)e +(upp)q(er)i(left)f(corner)g(of)f(the)h(screen.)20 b(The)15 +b(x)g(co)q(ordinate)75 487 y(increases)j(to)e(the)h(righ)o(t,)f(y)h +(increases)h(do)o(wn)f(to)f(the)h(b)q(ottom.)24 b(All)18 +b(distances)f(and)g(sizes)h(in)g Fm(Pcb)e Fo(are)75 541 +y(measured)h(in)h(mils)g(\(0.001)d(inc)o(h\).)26 b(One)18 +b(unit)g(on)f(the)g(displa)o(y)h(grid)f(is)h(one)f(mil)h(in)g(distance) +g(on)f(the)75 596 y(b)q(oard.)29 b(The)18 b(sections)h(in)g(this)f(c)o +(hapter)g(are)g(sorted)g(b)o(y)g(the)g(order)g(of)g(app)q(earance)h(of) +e(the)i(ob)s(jects)75 651 y(within)d(a)f(la)o(y)o(out)g(\014le.)75 +781 y Fl(1.1)33 b(Sym)n(b)r(ols)137 877 y Fo(The)13 b(top)g(ob)s(ject)f +(is)h(the)g(la)o(y)o(out)f(itself.)20 b(It)13 b(uses)g(a)f(set)h(of)f +(sym)o(b)q(ols)h(that)f(resides)h(at)g(the)f(\014rst)h(logical)75 +932 y(lev)o(el.)20 b(Eac)o(h)12 b(sym)o(b)q(ol)h(is)g(uniquely)h(iden)o +(ti\014ed)h(b)o(y)d(a)g(sev)o(en)g(bit)h Fm(ASCII)f Fo(co)q(de.)19 +b(All)14 b(la)o(y)o(out)d(ob)s(jects)h(share)75 987 y(the)i(same)f(set) +h(of)f(sym)o(b)q(ols.)20 b(These)14 b(sym)o(b)q(ols)g(are)f(used)h(to)g +(form)f(text)g(ob)s(jects)g(on)h(the)f(silkscreen)j(and)75 +1042 y(copp)q(er)g(la)o(y)o(ers.)j(Unde\014ned)e(sym)o(b)q(ols)f(are)f +(dra)o(wn)f(as)h(\014lled)i(rectangles.)137 1109 y(Ev)o(ery)d(fon)o(t)f +(\014le)i(is)g(prepro)q(cessed)g(b)o(y)f(a)f(user-de\014ned)j(command)e +(when)h(it)f(is)g(loaded.)21 b(F)l(or)13 b(details)75 +1164 y(see)i(`)p Fm(fontCommand)p Fo(',)e(Section)j(5.1)e([Resources],) +g(page)h(30.)75 1293 y Fl(1.2)33 b(Vias)137 1390 y Fo(Vias)13 +b(are)e(iden)o(tical)j(to)e(the)g(pins)h(used)g(b)o(y)f(elemen)o(ts)g +(except)h(that)e(they)h(can)h(b)q(e)f(added)h(or)e(remo)o(v)o(ed)75 +1445 y(individuall)q(y)l(.)24 b(The)16 b(purp)q(ose)g(of)f(vias)h(is)g +(to)f(pro)o(vide)h(connections)h(b)q(et)o(w)o(een)f(di\013eren)o(t)f +(la)o(y)o(ers.)21 b(Don't)75 1500 y(use)d(vias)g(for)g(adding)g(elemen) +o(ts)h(to)e(the)h(la)o(y)o(out,)g(ev)o(en)g(if)h(that)e(seems)h(easier) +g(than)g(creating)g(a)g(new)75 1554 y(elemen)o(t.)j(Vias)15 +b(are)g(useful)h(for)f(de\014ning)h(arbitrary)f(drill)i(p)q(oin)o(ts)e +(suc)o(h)h(as)f(those)g(used)g(for)g(moun)o(ting)75 1609 +y(a)j(b)q(oard.)29 b(Y)l(ou)18 b(can)g(assign)h(a)f(name)g(to)f(a)h +(via)h(ev)o(en)f(though)g(y)o(ou)g(probably)h(w)o(on't)e(ev)o(er)h(w)o +(an)o(t)f(to.)75 1664 y(Vias)f(reside)h(at)e(the)h(\014rst)f(logical)i +(lev)o(el;)g(therefore,)e(eac)o(h)h(via)g(exists)g(on)g(all)h(la)o(y)o +(ers.)k(\()p Fh(i.e.)g Fo(blind)d(vias)75 1719 y(are)d(not)g(supp)q +(orted\))75 1848 y Fl(1.3)33 b(Elemen)n(ts)137 1945 y +Fo(Elemen)o(ts)15 b(represen)o(t)g(the)g(comp)q(onen)o(ts)g(on)f(a)h(b) +q(oard.)k(Elemen)o(ts)c(are)g(loaded)g(from)f Fm(ASCII)g +Fo(co)q(ded)75 2000 y(\014les)k(in)h(a)e(similar)i(manner)e(to)g(the)h +(la)o(y)o(out)f(\014le)h(itself.)28 b(They)18 b(are)f(comp)q(osed)h(of) +f(lines)i(and)f(arcs)f(on)75 2054 y(the)c(silk-screen)j(la)o(y)o(er)d +(\(used)g(to)g(de\014ne)h(the)g(pac)o(k)m(age)f(outline\))h(,)g(pins)g +(\(or)f(pads)g(for)g(SMD\))f(and)i(three)75 2109 y(lab)q(els)21 +b(that)d(de\014ne)j(the)e(description,)j(the)d(elemen)o(t's)g(la)o(y)o +(out-name)g(\(whic)o(h)h(also)f(app)q(ears)h(on)f(the)75 +2164 y(silk-)d(screen)e(la)o(y)o(er\))g(and)g(its)h(v)m(alue.)21 +b(Elemen)o(t)14 b(pins)i(are)e(con)o(tained)g(on)h(the)f(\014rst)g +(logical)h(lev)o(el)h(and)e(so)75 2219 y(reside)g(on)f(all)h(la)o(y)o +(ers.)19 b(A)13 b(mark)g(is)g(used)h(to)f(p)q(osition)h(the)f(elemen)o +(t)h(with)f(resp)q(ect)h(to)e(the)h(cursor)g(cross-)75 +2274 y(hair)i(during)g(pasting.)20 b(SMD)14 b(elemen)o(ts)h(use)g(pads) +f(instead)i(of)e(pins.)20 b(P)o(ads)14 b(are)g(handled)i(similarly)h +(to)75 2328 y(lines)h(on)e(a)g(la)o(y)o(er)g(but)h(they)f(m)o(ust)g(b)q +(e)h(orien)o(ted)f(either)h(v)o(ertically)h(or)e(horizon)o(tally)l(.)24 +b(P)o(ads)16 b(can)g(ha)o(v)o(e)75 2383 y(either)i(rounded)h(or)e +(square)h(ends.)28 b(All)19 b(parts)e(of)h(an)f(elemen)o(t)i(are)e +(treated)h(as)f(one)h(unit.)28 b(It)18 b(is)g(not)75 +2438 y(p)q(ossible)e(to)d(delete)i(a)f(single)i(pin)f(or)e(break)h(an)g +(elemen)o(t)h(in)o(to)f(pieces)h(on)f(the)h(la)o(y)o(out.)k(Y)l(ou)14 +b(can)g(resize)75 2493 y(separate)h(pieces)h(of)f(an)g(elemen)o(t,)h +(but)f(doing)h(so)f(is)g(usually)i(a)e(bad)g(idea.)137 +2560 y(Elemen)o(ts)22 b(are)g(supp)q(orted)g(b)o(y)g(sev)o(eral)g(sp)q +(ecial)i(la)o(y)o(ers:)33 b Fh(silk)p Fo(,)22 b Fh(pins/p)n(ads)j +Fo(and)d Fh(far-side)p Fo(.)40 b(The)75 2615 y Fh(silk)22 +b Fo(la)o(y)o(er)c(sho)o(ws)g(the)g(pac)o(k)m(age)h(outline)g(and)g +(also)f(holds)h(legend)g(text)f(and)h(elemen)o(t)g(names.)29 +b(The)75 2670 y Fh(pins/p)n(ads)20 b Fo(la)o(y)o(er)d(is)h(used)f(to)g +(toggle)f(whether)h(the)h(elemen)o(t's)f(pins)h(and)f(pads)g(are)g +(displa)o(y)o(ed.)27 b(The)p eop +%%Page: 5 6 +5 5 bop 75 -58 a Fo(Chapter)15 b(1:)k(In)o(tro)q(duction)1297 +b(5)75 149 y Fh(far-side)17 b Fo(la)o(y)o(er)c(con)o(trols)g(visibilit) +o(y)j(of)d(ob)s(jects)f(\(silkscreen)j(and)f(pads\))f(that)f(are)h(on)g +(the)h(far)e(\()p Fh(i.e.)19 b Fo(not)75 204 y(curren)o(tly)d(view)o +(ed\))f(side)i(of)d(the)i(b)q(oard.)137 273 y(Ev)o(ery)e(elemen)o(t)i +(\014le)f(is)g(prepro)q(cessed)h(b)o(y)e(a)g(user-de\014ned)i(command)f +(when)g(the)f(\014le)i(is)f(read.)20 b(F)l(or)75 328 +y(details)h(see)f(`)p Fm(elementCommand)p Fo(',)e(Section)j(5.1)e +([Resources],)g(page)h(30.)33 b Fm(m4)p Fo(,)21 b(the)f(default)g(v)m +(alue)h(of)75 383 y(`)p Fm(elementCommand)p Fo(',)12 +b(allo)o(ws)k(y)o(ou)f(to)g(create)g(libraries)i(for)d(pac)o(k)m(age)i +(de\014nitions)h(that)d(are)i(shared)f(b)o(y)75 438 y(all)j(elemen)o +(ts.)26 b(The)18 b(elemen)o(t)f(libraries)i(distributed)g(with)e +Fm(Pcb)g Fo(exp)q(ect)h Fm(m4)e Fo(or)h(an)g(equiv)m(alen)o(t)i(to)d(b) +q(e)75 492 y(the)f Fh(elementCommand)p Fo(.)137 561 y +Fm(Pcb)g Fo(can)h(create)f(a)g(list)h(of)f(all)i(connections)f(from)f +(one)g(\(or)g(all\))h(elemen)o(ts)g(to)f(the)g(others)g(or)g(a)g(list) +75 616 y(of)j(unconnected)i(pins.)30 b(It)19 b(can)f(also)h(v)o(erify)f +(the)h(la)o(y)o(out)e(connections)j(against)e(a)g(netlist)h(\014le.)31 +b(The)75 671 y(elemen)o(t's)17 b(`)p Fm(layout-name)p +Fo(')d(is)j(the)f(name)g(used)h(to)f(iden)o(tify)i(an)e(elemen)o(t)h +(in)g(a)f(netlist)i(\014le.)24 b(The)17 b(pin)75 726 +y(n)o(um)o(b)q(ering)f(for)f(an)g(elemen)o(t)h(is)g(de\014ned)h(b)o(y)e +(unique)i(strings)f(assigned)g(to)e(eac)o(h)i(pin.)21 +b(In)16 b(addition)h(to)75 781 y(the)g Fm(")p Fo(pin)h(n)o(um)o(b)q(er) +p Fm(")g Fo(string,)f(eac)o(h)g(pin)h(has)f(a)g Fm(")p +Fo(name)p Fm(")g Fo(whic)o(h)h(describ)q(es)g(its)g(function.)26 +b(Previously)75 835 y(elemen)o(t)20 b(pin)f(n)o(um)o(b)q(er)h(w)o(as)e +(established)i(b)o(y)f(the)g(order)f(of)h(app)q(earance)g(of)g(the)g +(pin)h(de\014nitions)g(in)75 890 y(the)f(la)o(y)o(out)f(or)g(elemen)o +(t)h(\014le.)32 b(Since)20 b(the)e Fm(")p Fo(n)o(um)o(b)q(er)p +Fm(")h Fo(strings)g(for)f(eac)o(h)g(pin)i(are)e(a)h(new)g(feature,)f +(if)75 945 y(they)e(are)f(absen)o(t)g(then)h(the)f(n)o(um)o(b)q(ering)i +(is)f(again)f(established)i(b)o(y)f(the)f(order)g(of)h(pin)g(app)q +(earance)g(in)75 1000 y(the)i(\014le.)29 b(In)19 b(other)e(w)o(ords,)h +(the)g(\014rst)f(pin)i(app)q(earing)g(in)g(the)f(\014le)h(is)f(pin)h +(one,)f(the)g(next)g(pin)h(is)g(pin)75 1055 y(t)o(w)o(o)f(and)h(so)g +(on.)32 b(Usually)20 b(the)g(names)f(assigned)h(to)e(pins)i(are)f +(simply)i(n)o(um)o(b)q(ers,)f(but)f(they)g(don't)75 1109 +y(ha)o(v)o(e)d(to)g(b)q(e.)24 b(It)17 b(is)g(only)g(necessary)g(that)e +(the)i Fm(")p Fo(n)o(um)o(b)q(er)p Fm(")f Fo(string)h(for)f(the)g(pin)i +(matc)o(hes)e(exactly)h(the)75 1164 y Fm(")p Fo(n)o(um)o(b)q(er)p +Fm(")h Fo(string)f(in)i(the)e(netlist)i(\014le.)28 b +Fi(Be)18 b(a)o(w)o(are)g(that)f(a)h(few)f(of)g(the)h(library)i(parts)e +(ma)o(y)f(still)i(b)q(e)75 1219 y(incorrectly)c(implemen)o(ted)f +(regarding)h(pin-n)o(um)o(b)q(ering.)22 b Fo(All)14 b(of)e(the)g(DIL)h +(\(Dual-)g(Inline-Pins\))j(parts)75 1274 y(are)e(correct)h(and)g(most)f +(of)g(the)h(others)f(are)h(to)q(o,)e(but)i(y)o(ou)g(should)h(v)o(erify) +f(the)f(pin)i(n)o(um)o(b)q(ering)g(of)e(an)o(y)75 1329 +y(non-DIL)h(part)f(\(use)g(the)g Fh(R)n(ep)n(ort)i(Menu)h +Fo(to)c(see)i(what)f Fm(Pcb)f Fo(thinks)i(a)f(pin's)h(n)o(um)o(b)q(er)f +(is\))h(b)q(efore)f(using)75 1383 y(the)i(rats)f(nest)h(feature)f(with) +i(a)e(library)i(part.)k(Hop)q(efully)d(sometime)e(so)q(on)g(someone)f +(will)j(v)o(olun)o(teer)75 1438 y(to)g(cross-c)o(hec)o(k)g(all)i(of)e +(the)g(elemen)o(t)h(libraries)h(and)f(mak)o(e)f(\014xes)h(a)o(v)m +(ailable)h(as)e(necessary)l(.)30 b Fm(Pcb)18 b Fo(can)75 +1493 y(also)d(c)o(hec)o(k)h(a)f(la)o(y)o(out)f(to)h(see)g(that)g(it)g +(meets)g(minim)o(um)h(spacing)g(and)g(o)o(v)o(erlap)f(rules.)137 +1562 y(Y)l(ou)20 b(can)g(mak)o(e)f(y)o(our)g(o)o(wn)g(quic)o +(k-and-dirt)o(y)i(elemen)o(t)f(de\014nitions)i(graphically)f(no)o(w.)32 +b(Simply)75 1617 y(dra)o(w)16 b(vias)i(for)e(the)h(pins)h(and)f(lines)i +(and)e(arcs)g(on)g(a)f(solder)i(la)o(y)o(er)f(for)f(the)h(silkscreen)i +(outline.)27 b(Y)l(ou)75 1672 y(should)15 b(name)e(eac)o(h)h(via)g +(with)g(the)g(pin)h(n)o(um)o(b)q(er.)20 b(If)14 b(y)o(ou)f(w)o(an)o(t)g +(to)g(create)g(a)h(SMD)f(device,)i(dra)o(w)e(lines)75 +1726 y(for)e(the)h(pads)g(on)g(a)f(comp)q(onen)o(t)h(side)h(la)o(y)o +(er)f(\(Y)l(ou)g(m)o(ust)f(dra)o(w)g(these)h(in)h(pin)g(n)o(um)o(b)q +(er)f(order)f(since)i(lines)75 1781 y(can't)h(b)q(e)i(named\).)k(They) +15 b(m)o(ust)g(b)q(e)g(either)h(horizon)o(tal)f(or)g(v)o(ertical)g(or)g +(they)g(will)i(not)d(b)q(e)i(recognized)75 1836 y(as)g(pads.)24 +b(Once)18 b(y)o(ou)e(are)g(happ)o(y)h(with)g(the)f(geometry)l(,)g +(select)i(ev)o(erything)f(that)e(is)i(to)f(b)q(ecome)i(part)75 +1891 y(of)e(the)h(elemen)o(t,)g(then)f(c)o(ho)q(ose)h +Fm(")p Fo(cut)f(to)g(bu\013er)p Fm(")g Fo(from)g(the)h(men)o(u.)24 +b(No)o(w)15 b(select)j Fm(")p Fo(con)o(v)o(ert)d(bu\013er)i(to)75 +1946 y(elemen)o(t)p Fm(")e Fo(from)f(the)g(men)o(u.)20 +b(Viola')5 b(!)20 b(Afterw)o(ards)14 b(y)o(ou)g(can)h(mak)o(e)f(pin)h +(one)g(square)f(\(or)g(pads\))g(if)h(y)o(ou)75 2000 y(lik)o(e,)k(and)f +(giv)o(e)f(the)h(elemen)o(t)g(its)g(v)m(arious)g(names.)27 +b(Note)17 b(that)g(the)h(elemen)o(t)g(mark)f(corresp)q(onds)h(to)75 +2055 y(the)e(cut)h(p)q(osition)g(when)g(ev)o(erything)f(w)o(as)g(put)g +(in)o(to)g(the)g(bu\013er.)23 b(If)17 b(the)f(vias)h(are)e(not)h +(named,)h(then)75 2110 y(the)e(pin)i(n)o(um)o(b)q(ering)f(will)h +(corresp)q(ond)e(to)g(the)g(order)g(in)h(whic)o(h)g(the)f(vias)h(w)o +(ere)f(placed.)75 2243 y Fl(1.4)33 b(La)n(y)n(ers)137 +2341 y Fo(Ev)o(ery)18 b(la)o(y)o(out)f(consists)i(of)e(sev)o(eral)i(la) +o(y)o(ers)e(that)h(can)g(b)q(e)h(used)f(indep)q(enden)o(tly)j(or)d +(treated)g(as)f(a)75 2396 y(group.)37 b(La)o(y)o(er)21 +b(groups)g(can)g(b)q(e)h(used)g(to)e(logically)j(separate)e(\(and)f +(color-co)q(de\))i(di\013eren)o(t)f(traces)75 2451 y(\()p +Fh(e.g.)34 b Fo(p)q(o)o(w)o(er)20 b(and)g(signal\);)j(ho)o(w)o(ev)o +(er,)d(all)h(la)o(y)o(ers)f(within)h(a)f(group)g(reside)h(on)f(the)g +(same)g(ph)o(ysical)75 2506 y(copp)q(er)i(la)o(y)o(er)g(of)f(a)h(b)q +(oard,)h(so)e(using)i(di\013eren)o(t)f(la)o(y)o(ers)f(within)i(the)f +(same)f(group)h(w)o(on't)e(pro)o(vide)75 2560 y(electrical)13 +b(separation)e(where)g(they)g(touc)o(h)f(or)h(o)o(v)o(erlap.)18 +b(F)l(or)10 b(details,)j(see)e(`)p Fm(layerGroups)p Fo(',)e(Section)j +(5.1)75 2615 y([Resources],)i(page)h(30.)20 b(Eac)o(h)15 +b(la)o(y)o(er)h(is)f(dra)o(wn)g(in)i(a)e(color)g(de\014ned)i(in)f(the)g +(resource)f(\014le)i(\(for)d(details)75 2670 y(see)i(`)p +Fm(layerColor)p Fo(',)d(Section)k(5.1)e([Resources],)f(page)i(30\))f +(and)h(iden)o(ti\014ed)h(b)o(y)f(a)g(name)f(that)g(y)o(ou)h(can)p +eop +%%Page: 6 7 +6 6 bop 75 -58 a Fo(Chapter)15 b(1:)k(In)o(tro)q(duction)1297 +b(6)75 149 y(c)o(hange.)19 b(La)o(y)o(ers)11 b(are)h(really)g(just)g +(con)o(tainers)g(for)f(line,)j(p)q(olygon,)e(and)g(text)g(ob)s(jects.) +18 b(The)12 b(comp)q(onen)o(t)75 204 y(and)17 b(solder)g(la)o(y)o(ers)f +(con)o(tain)h(SMD)f(elemen)o(ts)i(as)e(w)o(ell,)i(but)e(the)h(\014le)h +(structure)e(do)q(esn't)h(re\015ect)g(that)75 259 y(fact)10 +b(directly)l(.)20 b(Eac)o(h)10 b(la)o(y)o(er)h(group)f(represen)o(ts)h +(a)f(ph)o(ysical)i(la)o(y)o(er)e(on)h(the)g(prin)o(ted)g(circuit)h(b)q +(oard.)18 b(If)11 b(y)o(ou)75 314 y(w)o(an)o(t)g(to)g(mak)o(e)g(a)h +(four)f(la)o(y)o(er)g(b)q(oard,)i(y)o(ou'll)f(need)g(to)g(ha)o(v)o(e)f +(four)g(la)o(y)o(er)h(groups.)18 b(Connections)13 b(b)q(et)o(w)o(een)75 +369 y(la)o(y)o(er)i(groups)g(are)f(established)j(only)f(through)e +(elemen)o(t)i(pins)g(and)g(vias.)k(The)15 b(relationship)i(b)q(et)o(w)o +(een)75 423 y(a)c(sp)q(eci\014c)i(la)o(y)o(er)e(and)g(the)g(b)q(oard)g +(itself)h(is)g(con\014gureable)g(from)e(the)h(`)p Fm(Edit)i(layer)f +(groups)p Fo(')e(option)h(in)75 478 y(the)i(`)p Fm(Objects)p +Fo(')d(men)o(u.)20 b(The)15 b(la)o(y)o(er)f(groups)g(corresp)q(onding)i +(to)d(the)i(ph)o(ysical)h(la)o(y)o(ers)e Fh(c)n(omp)n(onent-side)75 +533 y Fo(and)g Fh(solder-side)j Fo(are)d(alw)o(a)o(ys)g(de\014ned,)h +(and)f(y)o(ou)g(m)o(ust)g(map)g(at)f(least)h(one)g(logical)i(la)o(y)o +(er)e(to)f(eac)o(h.)20 b(Of)75 588 y(course,)15 b(y)o(ou)f(are)h(not)f +(obligated)i(to)e(put)h(trac)o(ks)f(on)h(either)g(of)g(them.)20 +b(SMD-elemen)o(ts)15 b(alw)o(a)o(ys)f(reside)75 643 y(on)k(either)h +(the)f(comp)q(onen)o(t-side)h(or)f(the)g(solder-side)i(la)o(y)o(er)d +(group.)29 b(Y)l(ou)18 b(can)g(sw)o(ap)f(whic)o(h)i(side)g(of)75 +697 y(the)14 b(b)q(oard)f(y)o(ou)h(are)f(viewing)i(b)o(y)e(pressing)i +Fm(<)p Fh(Key)p Fm(>)p Fh(T)m(ab)p Fo(.)j(Y)l(ou)c(can)f(decide)j(whic) +o(h)e(la)o(y)o(er)g(group)f(will)i(b)q(e)75 752 y(the)h(solder)g(side)g +(and)g(whic)o(h)g(will)i(b)q(e)e(the)f(comp)q(onen)o(t)h(side.)22 +b(The)16 b(la)o(y)o(ers)f(groups)g(just)h(ha)o(v)o(e)f(a)g(name)75 +807 y(or)j(n)o(um)o(b)q(er)h(asso)q(ciated)g(with)g(them)g(-)g(where)g +(they)f(are)h(sandwic)o(hed)h(in)f(the)g(b)q(oard)g(is)g(left)g(to)f +(the)75 862 y(man)o(ufacturing)d(pro)q(cesses.)75 986 +y Fl(1.5)33 b(Lines)137 1081 y Fo(Lines)20 b(are)e(used)g(to)g(dra)o(w) +f(trac)o(ks)h(on)g(the)g(p)q(c)h(b)q(oard.)29 b(When)18 +b(in)h(the)f(line)i(mo)q(de,)f(eac)o(h)f Fm(<)p Fh(Btn1)p +Fm(>)75 1136 y Fo(press)d(establishes)i(one)e(end)h(of)f(a)g(line.)22 +b(Once)16 b(the)g(second)g(p)q(oin)o(t)g(is)f(de\014ned,)i(the)e(line)i +(is)f(dra)o(wn)f(and)75 1191 y(a)i(new)g(line)i(started)d(where)h(the)g +(\014rst)g(one)g(ended.)26 b(Y)l(ou)17 b(can)h(ab)q(ondon)f(the)g(new)g +(starting)g(p)q(oin)o(t)g(in)75 1245 y(fa)o(v)o(or)e(of)i(another)f(b)o +(y)h(pressing)h Fh(Ctrl)p Fm(<)p Fh(Btn1)p Fm(>)p Fo(.)23 +b(The)17 b(undo)h(function)f(\()p Fm(<)p Fh(Key)p Fm(>)p +Fh(u)s Fo(\))g(will)h(tak)o(e)f(y)o(ou)f(bac)o(k)75 1300 +y(p)q(oin)o(t)e(b)o(y)g(p)q(oin)o(t)h(if)f(y)o(ou)f(use)i(it)f(while)h +(in)g(the)f(line)h(mo)q(de.)20 b(New)14 b(lines)h(can)f(b)q(e)h +(restricted)f(to)f(45)h(degree)75 1355 y(angles)h(if)h(desired.)21 +b(Y)l(ou)15 b(can)g(toggle)g(this)g(restriction)h(on)f(and)g(o\013)f +(while)j(creating)e(lines)h(b)o(y)f(pressing)75 1410 +y Fm(<)p Fh(Key)p Fm(>)p Fh(.)20 b Fo(\(that)14 b(is)i(the)f +Fh(p)n(erio)n(d)20 b Fo(k)o(ey\).)g(If)15 b(the)h(45)f(degree)g +(restriction)h(is)g(turned)f(on,)g(then)h(the)f Fm(<)p +Fh(Key)p Fm(>)p Fh(/)75 1465 y Fo(can)j(b)q(e)g(used)g(to)f(cylce)i +(through)e(three)h(di\013eren)o(t)f(mo)q(des)h(of)f(45)g(degree)h(line) +h(creation.)27 b(One)19 b(mo)q(de)75 1519 y(just)g(creates)g(a)g +(single)i(line)g(forced)e(to)g(the)g(nearest)g(45)g(degree)h(v)o +(ector.)32 b(The)19 b(next)h(mo)q(de)f(creates)75 1574 +y(t)o(w)o(o)14 b(lines)j(from)e(the)g(start)f(to)h(end)h(p)q(oin)o(ts)g +(suc)o(h)g(that)e(the)i(\014rst)f(line)i(lea)o(v)o(es)e(the)h(start)e +(p)q(oin)o(t)i(at)e(a)i(90)75 1629 y(degree)j(v)o(ector,)f(and)g(the)g +(second)h(line)h(en)o(ters)e(the)h(end)g(p)q(oin)o(t)f(on)h(a)f(45)f +(degree)i(v)o(ector.)28 b(The)19 b(next)75 1684 y(mo)q(de)d(creates)g +(t)o(w)o(o)f(lines)j(suc)o(h)e(that)g(the)g(\014rst)g(line)i(lea)o(v)o +(es)e(the)g(start)f(p)q(oin)o(t)i(on)f(a)g(45)f(degree)i(v)o(ector)75 +1738 y(and)j(arriv)o(es)f(at)g(the)g(end)h(p)q(oin)o(t)g(on)f(a)g(90)g +(degree)h(v)o(ector.)32 b(Y)l(ou)19 b(can)h(temp)q(orarily)g(sw)o(ap)f +(b)q(et)o(w)o(een)75 1793 y(the)f(last)g(t)o(w)o(o)e(mo)q(des)i(b)o(y)g +(holding)h(the)f(shift)g(k)o(ey)g(do)o(wn.)27 b(It)18 +b(is)h(simple)g(to)e(edit)i(a)e(line)j(t)o(yp)q(e)e(ob)s(ject)75 +1848 y(b)o(y)i(breaking)g(it)g(in)o(to)g(pieces)h(\(insert)f(p)q(oin)o +(t)g(mo)q(de\),)h(mo)o(ving)f(an)f(end)i(p)q(oin)o(t)f(\(or)f(the)h +(whole)h(line\))75 1903 y(\()p Fm(<)p Fh(Btn2Down)p Fm(><)p +Fh(dr)n(ag)p Fm(><)p Fh(Btn2Up)p Fm(>)p Fo(\),)g(or)f(c)o(hanging)i +(the)f(la)o(y)o(er)g(it)g(resides)h(on)f(\()p Fm(<)p +Fh(Key)p Fm(>)p Fh(m)j Fo(mo)o(v)o(es)c(the)75 1958 y(line)h(under)f +(the)f(p)q(oin)o(ter)h(to)f(the)g(activ)o(e)g(la)o(y)o(er\).)32 +b(In)20 b(the)f(case)g(when)h(t)o(w)o(o)e(line)j(segmen)o(ts)d(meet)i +(at)75 2012 y(exactly)f(the)f(same)g(p)q(oin)o(t)g(y)o(ou)g(can)g +(delete)i(the)e(in)o(termediate)h(p)q(oin)o(t,)g(otherwise)f(the)g +(delete)i(mo)q(de)75 2067 y(remo)o(v)o(es)c(an)h(en)o(tire)g(line.)27 +b(F)l(eel)17 b(free)g(to)g(exp)q(erimen)o(t)h(since)g +Fm(Pcb)e Fo(will)j(allo)o(w)e(y)o(ou)f(to)g(undo)i(an)o(ything)75 +2122 y(that)c(materially)h(a\013ects)f(y)o(our)g(w)o(ork.)k(If)d(y)o +(ou)f(switc)o(h)h(activ)o(e)f(la)o(y)o(ers)h(in)g(the)g(midst)f(of)g +(placing)i(lines)g(a)75 2177 y(via)f(will)i(automatically)f(b)q(e)g +(placed,)g(when)g(necessary)l(,)f(in)h(order)f(to)f(con)o(tin)o(ue)i +(the)f(connection.)75 2301 y Fl(1.6)33 b(Arcs)137 2396 +y Fo(With)14 b(v)o(ersion)g(1.6)e(it)i(is)g(p)q(ossible)i(to)c(dra)o(w) +h(copp)q(er)h(arcs.)19 b(The)14 b(arcs)f(are)h(restricted)f(to)g(b)q(e) +i(quarter)75 2451 y(circles.)20 b(This)13 b(means)f(they)g(alw)o(a)o +(ys)f(b)q(end)i(a)f(righ)o(t)g(angle.)19 b(They)13 b(are)e(v)o(ery)h +(similar)h(to)f(lines)h(otherwise.)75 2506 y(They)h(are)f(created)h(on) +f(the)h(curren)o(t)f(la)o(y)o(er)h(and)f(ha)o(v)o(e)g(the)h(same)f +(thic)o(kness)i(that)e(new)g(lines)j(will)f(ha)o(v)o(e.)75 +2560 y(The)g(v)m(arious)g(clic)o(ks)h(for)f(creating)g(lines)h(w)o(ork) +e(prett)o(y)g(m)o(uc)o(h)h(the)g(same)f(w)o(a)o(y)g(for)g(creating)h +(arcs.)20 b(The)75 2615 y(start)13 b(p)q(oin)o(t)i(for)f(the)g(arc)g +(is)h(at)f(the)g(\014rst)g Fm(<)p Fh(Btn1)p Fm(>)g Fo(p)q(osition.)20 +b(In)15 b(order)f(to)g(mak)o(e)g(the)g(arc)g(curv)o(e)h(in)g(the)75 +2670 y(direction)h(desired,)f(drag)f(the)g(mouse)g(along)h(the)f +(tangen)o(t)g(line)i(from)d(the)i(starting)e(p)q(osition)j(to)o(w)o +(ards)p eop +%%Page: 7 8 +7 7 bop 75 -58 a Fo(Chapter)15 b(1:)k(In)o(tro)q(duction)1297 +b(7)75 149 y(the)18 b(end)h(p)q(osition.)29 b(If)18 b(the)g(grid)g(is)h +(to)q(o)e(coarse,)h(it)g(ma)o(y)f(not)h(b)q(e)h(p)q(ossible)g(to)f +(distinguish)i(whether)75 204 y(y)o(ou'v)o(e)d(mo)o(v)o(ed)f(o)o(v)o +(er)h(then)g(up,)h(or)f(up)h(then)g(o)o(v)o(er,)e(so)h(if)h(y)o(ou)f +(can't)g(seem)g(to)g(mak)o(e)g(the)g(arc)g(go)g(the)75 +259 y(direction)i(y)o(ou)e(w)o(an)o(t,)g(y)o(ou)g(should)i(decrease)f +(the)g(grid)g(spacing.)28 b(Alternativ)o(ely)18 b(y)o(ou)g(could)g(dra) +o(wn)75 314 y(the)g(wrong)g(arc,)h(then)f(rotate)g(and)g(mo)o(v)o(e)g +(it)g(where)h(y)o(ou)f(w)o(an)o(t.)29 b(Lik)o(e)19 b(the)f(line)i(to)q +(ol,)f(after)f(an)g(arc)75 369 y(is)h(dra)o(wn)e(a)h(new)h(starting)e +(p)q(oin)o(t)i(is)f(established)i(at)e(the)g(end)h(p)q(oin)o(t.)29 +b(Whenev)o(er)18 b(a)g(start)f(p)q(oin)o(t)h(is)75 423 +y(established)f(b)o(y)f(either)g(the)g(line)h(or)e(arc)g(to)q(ols)g(it) +h(will)h(b)q(e)g(retained)f(if)g(y)o(ou)f(switc)o(h)h(directly)h(b)q +(et)o(w)o(een)75 478 y(the)e(to)q(ols)f(\(e.g.)19 b Fm(<)p +Fh(Key)p Fm(>)p Fh(F2)h Fo(for)14 b(Lines,)i Fm(<)p Fh(Key)p +Fm(>)p Fh(F8)k Fo(for)14 b(Arcs.)20 b(Of)15 b(course)g(connection)g +(searc)o(hes,)g(undo)75 533 y(and)g(all)i(the)e(other)g(features)f(y)o +(ou'd)h(exp)q(ect)h(w)o(ork)e(with)i(arcs)f(no)o(w.)75 +671 y Fl(1.7)33 b(P)n(olygons)137 771 y Fo(Sometimes)19 +b(it's)f(useful)h(to)e(\014ll)j(large)e(areas)g(with)g(solid)h(copp)q +(er.)29 b(The)19 b(w)o(a)o(y)e(to)g(do)h(this)h(is)g(with)75 +826 y(p)q(olygons.)g(P)o(olygons)11 b(can)h(b)q(e)h(created)e(in)i +(either)f(the)g(p)q(olygon)g(mo)q(de)g(or)g(the)f(rectangle)i(mo)q(de.) +19 b(In)12 b(the)75 881 y(p)q(olygon)h(mo)q(de,)g(y)o(ou'll)g(ha)o(v)o +(e)f(to)g(de\014ne)h(eac)o(h)g(corner)f(of)g(the)g(p)q(olygon)h(with)g +(a)f(mouse)h(clic)o(k)g(\()p Fm(<)p Fh(Btn1)p Fm(>)p +Fo(\).)75 936 y(When)j(the)f(last)g(p)q(oin)o(t)g(is)h(clic)o(k)o(ed)h +(exactly)e(on)g(top)g(of)g(the)g(starting)g(p)q(oin)o(t,)g(the)g(p)q +(olygon)h(is)g(\014nished.)75 991 y(Since)g(this)g(can)f(b)q(e)g(hard)g +(to)f(do,)g(the)h Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(p)j +Fo(will)e(en)o(ter)f(the)g(\014nal)g(p)q(oin)o(t)h(for)e(y)o(ou,)g +(closing)i(the)75 1045 y(p)q(olygon.)28 b(If)18 b(the)g(45)f(degree)h +(angle)g(restriction)g(is)g(turned)g(on)g(and)g(y)o(ou)f(try)g(to)g +(close)i(the)e(p)q(olygon)75 1100 y(when)k(it)f(is)g(not)g(p)q +(ossible,)j(y)o(ou'll)d(get)g(a)g(w)o(arning)g(instead.)35 +b(If)20 b(y)o(ou)g(ha)o(v)o(en't)f(\014nished)j(en)o(tering)e(a)75 +1155 y(p)q(olygon,)h(but)e(w)o(an)o(t)f(to)h(undo)h(one)f(\(or)g +(more\))f(of)h(the)h(p)q(oin)o(ts)f(that)g(y)o(ou'v)o(e)g(already)g +(de\014ned,)j(use)75 1210 y(the)17 b(undo)h(command)e(\()p +Fm(<)p Fh(Key)p Fm(>)p Fh(u)s Fo(\).)25 b(With)18 b(the)f(rectangle)g +(to)q(ol,)g(de\014ning)i(the)e(t)o(w)o(o)e(opp)q(osite)j(corners)75 +1265 y(is)h(su\016cien)o(t,)g(but)f(of)f(course)i(the)f(resulting)h(p)q +(olygon)f(is)h(a)f(rectangle.)29 b(Lik)o(e)19 b(lines,)h(a)d(p)q +(olygon)i(can)75 1319 y(b)o(y)h(edited)g(b)o(y)g(deleting,)i(inserting) +f(and)f(mo)o(ving)f(the)h(p)q(oin)o(ts)g(that)f(de\014ne)i(it.)33 +b Fm(Pcb)20 b Fo(is)g(capable)g(of)75 1374 y(handling)f(complex)f(p)q +(olygons,)g(but)g(using)g(a)f(n)o(um)o(b)q(er)h(of)f(simpler)h(ones)g +(impro)o(v)o(es)f(p)q(erformance)g(of)75 1429 y(the)e(connection)i +(tracing)e(co)q(de.)137 1500 y(A)g(new)h(feature)e(in)i(v)o(ersion)f +(1.5)f(of)h Fm(Pcb)g Fo(automatically)g(creates)g(clearance)h(regions)f +(around)g(pins)75 1555 y(and)i(vias)g(that)f(pierce)j(a)d(p)q(olygon.) +26 b(This)17 b(means)g(that)f(they)h(aren't)f(electrically)k(connected) +e(to)e(the)75 1610 y(p)q(olygon)11 b(unless)g(y)o(ou)f(add)g +Fm(")p Fo(thermals)p Fm(")g Fo(to)g(cross)g(the)g(clearance)h(region.) +18 b(Thermals)11 b(can)f(b)q(e)h(added)g(and)75 1664 +y(remo)o(v)o(ed)k(b)o(y)h(selecting)h(the)f(thermal)g(mo)q(de)g(and)g +(clic)o(king)i Fm(<)p Fh(Btn1)p Fm(>)d Fo(on)h(the)g(pin)h(or)e(via.)22 +b(Remem)o(b)q(er)75 1719 y(that)15 b(this)g(only)h(creates)f +(connections)h(to)f(the)g(p)q(olygon)h(on)f(the)g(activ)o(e)h(la)o(y)o +(er.)k(The)15 b(great)g(adv)m(an)o(tage)75 1774 y(to)e(this)h(new)g(p)q +(olygon)g(b)q(eha)o(vior)h(is)f(that)f(simple)i(or)e(complex)i(ground)e +(and/or)h(p)q(o)o(w)o(er)f(planes)h(can)g(b)q(e)75 1829 +y(easily)19 b(made)f(with)g(p)q(olygons)g(and)g(seen)h(on)e(the)h +(screen.)29 b(If)18 b(y)o(ou)f(don't)h(w)o(an)o(t)e(this)j +(auto-clearance)75 1884 y(b)q(eha)o(vior,)14 b(or)g(y)o(ou)f(load)h(a)g +(la)o(y)o(out)f(created)h(b)o(y)g(an)g(earlier)g(v)o(ersion)h(of)e +Fm(Pcb)p Fo(,)g(the)h(old)h(b)q(eha)o(vior)f(\(shorts)75 +1938 y(to)19 b(all)h(piercing)h(pins)f(and)f(vias\))g(is)h(a)o(v)m +(ailable.)33 b(A)20 b(`)p Fm(ChangeSize)p Fo(')d(op)q(eration)i(\()p +Fm(<)p Fh(Key)p Fm(>)p Fh(s)t Fo(\))f(toggles)g(a)75 +1993 y(p)q(olygon)e(b)q(et)o(w)o(een)f(the)h(new)f(and)g(old)h(p)q +(olygon/pin)h(b)q(eha)o(vior.)75 2131 y Fl(1.8)33 b(T)-6 +b(ext)137 2232 y Fo(T)l(ext)18 b(ob)s(jects)g(should)h(b)q(e)g(used)f +(to)g(lab)q(el)h(a)f(la)o(y)o(out)g(or)f(to)h(put)g(additional)i +(information)e(on)g(the)75 2286 y(b)q(oard,)d(but)g(not)f(to)g(iden)o +(tify)j(elemen)o(ts)e(b)q(ecause)h(elemen)o(ts)g(ha)o(v)o(e)e(their)i +(o)o(wn)e(lab)q(els.)21 b(T)l(ext)15 b(is)h(alw)o(a)o(ys)75 +2341 y(horizon)o(tal)j(when)g(\014rst)g(created,)g(but)g(the)g(rotate)e +(mo)q(de)i(can)g(align)h(it)f(along)f(0,)h(90,)g(180)f(and)h(270)75 +2396 y(degree)13 b(angles.)19 b(T)l(ext)12 b(can)h(b)q(e)g(mo)o(v)o(ed) +f(from)g(an)o(y)g(la)o(y)o(er)g(to)g(the)g(silk-screen)j(la)o(y)o(er)d +(with)h(a)f(command)g(in)75 2451 y(the)h(`)p Fm(selection)h(menu)p +Fo('.)k(T)l(ext)13 b(that)g(is)g(mo)o(v)o(ed)g(to)f(the)i(silk-screen)h +(la)o(y)o(er)e(will)i(app)q(ear)e(on)g(the)g(solder-)75 +2506 y(side)g(silk-screen)i(if)e(it)g(originating)g(on)f(a)g +(solder-side)i(la)o(y)o(er.)19 b(Otherwise)14 b(mo)o(ving)e(it)h(to)f +(the)g(silk-screen)75 2560 y(la)o(y)o(er)18 b(will)i(put)e(it)h(on)f +(the)h(comp)q(onen)o(t-side)g(silk-screen.)31 b(T)l(o)18 +b(mo)o(v)o(e)g(text)f(bac)o(k)i(to)e(a)h(copp)q(er)h(la)o(y)o(er)75 +2615 y(from)c(the)i(silk-screen,)g(use)g(the)f(`)p Fm +(MoveToCurrentLayer)p Fo(')d(\()p Fm(<)p Fh(Key)p Fm(>)p +Fh(m)s Fo(\))j(command.)22 b(T)l(ext)16 b(on)g(the)h(far)75 +2670 y(side)f(of)f(the)g(b)q(oard)g(will)i(automatically)f(app)q(ear)f +(mirror-imaged.)p eop +%%Page: 8 9 +8 8 bop 75 -58 a Fo(Chapter)15 b(1:)k(In)o(tro)q(duction)1297 +b(8)137 149 y Fi(TEXT)19 b(OBJECTS)h(ON)f(A)h(COPPER)g(LA)l(YER)g(CREA) +l(TE)f(COPPER)g(LINES)h(BUT)g(THEY)75 204 y(ARE)d(NOT)f(SCANNED)g(F)o +(OR)g(CONNECTIONS)f(OR)h(TESTED)g(F)o(OR)g(CREA)l(TING)f(SHOR)l(TS)75 +259 y(VS.)k(THE)f(NETLIST.)f(NEITHER)g(ARE)i(TEXT)f(OBJECTS)g(TESTED)g +(A)o(GAINST)g(ANY)h(DE-)75 314 y(SIGN)c(R)o(ULES)p Fo(.)p +eop +%%Page: 9 10 +9 9 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1231 +b(9)75 149 y Fk(2)41 b(Getting)27 b(Started)137 273 y +Fo(The)16 b(goal)g(of)f(this)h(c)o(hapter)g(is)g(to)f(giv)o(e)h(y)o(ou) +f(enough)h(information)g(to)f(learn)i(ho)o(w)e Fm(Pcb)g +Fo(w)o(orks)g(and)75 328 y(ho)o(w)g(to)h(dev)o(elop)h(y)o(our)e(la)o(y) +o(outs)g(to)h(mak)o(e)f(the)h(b)q(est)g(use)h(of)e Fm(Pcb)p +Fo('s)g(features.)22 b(All)17 b(ev)o(en)o(t)f(translations)75 +383 y(\()p Fh(i.e.)23 b Fo(the)16 b(buttons)g(and)h(k)o(eys)f(y)o(ou)g +(press\))g(refer)g(to)g(the)g(default)h(application)h(resource)f +(\014le)g(shipp)q(ed)75 438 y(with)j Fm(Pcb)p Fo(.)31 +b(There)19 b(is)h(probably)g(no)f(need)h(to)e(c)o(hange)i(them)f +(unless)h(y)o(our)f(windo)o(w)g(manager)g(uses)75 493 +y(some)12 b(of)h(the)g(button)f(ev)o(en)o(ts)h(itself;)h(ho)o(w)o(ev)o +(er,)e(if)h(y)o(ou)f Fh(want)17 b Fo(to)c(customize)g(the)g(b)q(eha)o +(vior)g(of)f Fm(Pcb)h Fo(then)75 547 y(c)o(hanging)j(the)f(resource)g +(\014le)h(is)g(usually)h(the)e(b)q(est)g(w)o(a)o(y)g(to)f(do)h(it.)137 +617 y(Get)21 b(y)o(ourself)h(a)f(prin)o(tout)g(of)g(this)h(c)o(hapter)g +(and)f Fh(User)h(Commands)p Fo(,)g(if)g(y)o(ou)f(ha)o(v)o(en't)g +(already)75 672 y(done)16 b(so,)f(and)h(follo)o(w)g(the)g(examples.)22 +b(An)16 b(example)h(la)o(y)o(out)e(ma)o(y)g(b)q(e)h(found)g(in)h(`)p +Fm(example/68HC11)p Fo('.)75 726 y(An)f(example)g(illustrating)g(some)f +(v)o(ersion)h(1.5)e(features)h(is)g(found)h(in)g(`)p +Fm(example/LED)p Fo(')d(along)i(with)h(its)75 781 y(corresp)q(onding)g +(netlist)g(\014le)h(`)p Fm(example/LED.NET)p Fo('.)137 +851 y(Start)h Fm(Pcb)g Fo(\(the)h(actual)f(command)h(will)h(use)f(all)h +(lo)o(w)o(er-case)e(letters\))h(without)f(an)o(y)h(additional)75 +906 y(options.)h(If)15 b(y)o(ou)g(get)g(the)g(error)g(message:)256 +972 y(can't)f(\014nd)i(default)g(fon)o(t-sym)o(b)q(ol-\014le)g +('default)p 1088 972 14 2 v 17 w(fon)o(t')75 1096 y(then)g(the)f(fon)o +(t)f(searc)o(hpath)h(or)g(\014lename)h(in)g(the)f(application)i +(resource)75 1151 y(\014le)g(is)g(wrong.)k(Be)16 b(sure)h(that)e(y)o +(our)g Fm(m4)h Fo(program)f(supp)q(orts)h(searc)o(hpaths.)22 +b(If)16 b(not,)f(get)h Fm(GNU)f(m4)p Fo(.)22 b(F)l(or)75 +1206 y(other)d(messages,)f(see)i(Section)f(A.2)g([problems],)g(page)g +(53.)30 b(Another)19 b(quic)o(k-start)g(is)g(pro)o(vided)h(b)o(y)75 +1261 y Fm(pcbtest.sh)14 b Fo(in)i(the)f(`)p Fm(src)p +Fo(')f(directory)l(.)75 1395 y Fl(2.1)33 b(The)22 b(Application)i +(Windo)n(w)137 1494 y Fo(The)18 b(main)f(windo)o(w)g(consists)h(of)e +(\014v)o(e)h(areas:)23 b(the)17 b(men)o(u)h(at)e(the)h(top,)g(the)g +(con)o(trol)g(panel)h(in)g(the)75 1549 y(upp)q(er)g(left)g(corner,)f +(the)g(mo)q(de)h(buttons)f(lo)q(cated)g(b)q(elo)o(w)h(the)f(con)o(trol) +g(panel,)i(the)e(dra)o(wing)g(area)g(to)75 1603 y(the)e(righ)o(t)g(of)g +(these,)g(and)g(the)h(status)e(line)j(at)d(the)i(b)q(ottom)e(of)h(the)g +(windo)o(w.)75 1720 y Fg(2.1.1)30 b(The)20 b(Status-line)h(and)g +(Input-\014eld)137 1819 y Fo(The)i(status-line)g(is)f(lo)q(cated)h(at)e +(the)i(b)q(ottom)e(edge)h(of)g(the)g(main)h(windo)o(w.)41 +b(During)22 b(normal)75 1873 y(op)q(eration)15 b(the)g(status)f +(information)h(is)g(visible)i(there.)j(When)15 b(a)g(selected)h(men)o +(u)f(op)q(eration)g(requires)75 1928 y(an)h(additional)i(button)f(clic) +o(k,)h(the)e(status-line)i(is)f(replaced)h(b)o(y)e(a)g(message)h +(telling)h(y)o(ou)e(to)g(p)q(osition)75 1983 y(the)21 +b(cursor)g(and)g(clic)o(k.)39 b(When)22 b(a)f(text)f(input)i(is)g +(required,)h(the)f(status-line)g(is)f(replaced)i(b)o(y)e(the)75 +2038 y(Input-\014eld)c(whic)o(h)g(has)e(a)f(prompt)h(for)g(the)g(t)o +(yp)q(ed)h(input.)137 2107 y(The)21 b(status-line)g(sho)o(ws,)f(from)f +(left)i(to)e(righ)o(t,)i(the)f(side)h(of)f(the)g(b)q(oard)g(that)f(y)o +(ou)h(are)g(viewing)75 2162 y(\()p Fm(<)p Fh(Key)p Fm(>)p +Fh(T)m(ab)d Fo(c)o(hanges)e(this\),)g(if)h(an)g(absolute)f(\(abs\))g +(or)g(relativ)o(e)h(\(rel\))f(grid)h(is)g(used,)g(if)g(new)f(lines)i +(are)75 2217 y(restricted)g(to)f(45)g(degrees,)g(whic)o(h)i(t)o(yp)q(e) +e(of)h(45)e(degree)i(line)i(mo)q(de)d(is)h(activ)o(e,)g(whether)g(rubb) +q(erband)75 2272 y(mo)o(v)o(e)h(and)h(rotate)e(mo)q(de)i(is)g(on)g +(\(R\),)e(the)i(curren)o(t)f(grid)h(v)m(alues,)h(and)f(the)g(zo)q(om)f +(factor.)30 b(This)19 b(in-)75 2326 y(formation)e(is)h(follo)o(w)o(ed)g +(b)o(y)g(the)f(line-width,)k(via-size)e(and)f(drilling)i(hole)e(in)h +(mil,)g(text)e(scaling,)i(the)75 2381 y(activ)o(e)f(bu\013er)g(n)o(um)o +(b)q(er)g(and)g(the)g(name)g(of)g(the)g(la)o(y)o(out.)27 +b(An)19 b(asterisk)e(app)q(earing)i(at)e(the)h(left)h(edge)75 +2436 y(indicates)c(the)e(la)o(y)o(out)g(has)g(b)q(een)h(mo)q(di\014ed)g +(since)h(the)e(last)g(sa)o(v)o(e.)19 b(Note)13 b(that)f(the)h(name)g +(of)g(the)h(la)o(y)o(out)75 2491 y(is)i(not)f(the)g(same)g(thing)g(as)g +(the)g(\014lename)i(of)e(the)g(la)o(y)o(out.)137 2560 +y(The)d(input-\014eld)j(p)q(ops)d(up)g(\(temp)q(orarily)g(replacing)h +(the)f(status-line\))h(whenev)o(er)f(user)g(input)h(is)f(re-)75 +2615 y(quired.)20 b(Tw)o(o)11 b(k)o(eys)g(are)h(b)q(ound)h(to)e(the)h +(input)h(\014eld:)19 b Fm(<)p Fh(Key)p Fm(>)p Fh(Esc)n(ap)n(e)14 +b Fo(ab)q(orts)d(the)h(input,)h Fm(<)p Fh(Key)p Fm(>)p +Fh(R)n(eturn)75 2670 y Fo(\014nishes)k(it.)p eop +%%Page: 10 11 +10 10 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(10)137 149 y(The)17 b(presen)o(t)f(cursor)g(p)q(osition)i(is)e +(displa)o(y)o(ed)i(in)f(the)g(upp)q(er)g(righ)o(t)f(corner)g(of)g(the)h +(windo)o(w.)23 b(Nor-)75 204 y(mally)18 b(this)g(p)q(osition)g(is)g(an) +g(absolute)f(co)q(ordinate,)h(but)g(with)g(v)o(ersion)f(1.5)g(of)g +Fm(Pcb)g Fo(y)o(ou)g(can)g(anc)o(hor)75 259 y(a)e(mark)o(er)f(at)h(the) +g(curren)o(t)g(cursor)g(lo)q(cation)h(b)o(y)f(pressing)h +Fh(Ctrl)p Fm(<)p Fh(Key)p Fm(>)p Fh(m)i Fo(then)e(the)f(displa)o(y)h +(will)h(read)75 314 y(b)q(oth)c(the)f(absolute)h(cursor)f(p)q(osition)h +(as)f(w)o(ell)i(as)e(the)g(di\013erence)i(b)q(et)o(w)o(een)e(it)h(and)g +(the)f(mark)o(er.)18 b(Press-)75 369 y(ing)e Fh(Ctrl)p +Fm(<)p Fh(Key)p Fm(>)p Fh(m)i Fo(again)d(turns)g(the)g(mark)o(er)f +(o\013.)75 478 y Fg(2.1.2)30 b(The)20 b(Con)n(trol)h(P)n(anel)137 +573 y Fo(The)16 b(con)o(trol)f(panel,)h(lo)q(cated)g(at)e(the)i(left)f +(side)i(of)e(the)g(windo)o(w,)g(is)h(used)g(to)e(turn)i(on)f(and)g +(o\013)g(the)75 628 y(displa)o(y)g(of)e(la)o(y)o(er)h(groups)f(and)h +(to)f(select)i(the)e(activ)o(e)h(dra)o(wing)g(la)o(y)o(er.)19 +b(If)14 b(a)g(la)o(y)o(er)f(hasn't)g(b)q(een)i(named,)75 +683 y(the)g(lab)q(el)i Fm(")p Fh(\(unknown\))r Fm(")c +Fo(is)j(used)g(as)f(the)g(defualt.)137 749 y(The)g(upp)q(er)h(con)o +(trol)e(b)q(o)o(x)h(is)g(used)g(to)f(switc)o(h)h(la)o(y)o(ers)g(on)f +(and)h(o\013.)k(Clic)o(k)d Fm(<)p Fh(Btn1Down)p Fm(>)e +Fo(on)h(one)f(or)75 804 y(more)h(of)h(them.)22 b(Eac)o(h)15 +b(clic)o(k)i(toggles)f(the)g(setting.)22 b(The)16 b(curren)o(tly)g +(activ)o(e)g(la)o(y)o(er)g(can't)f(b)q(e)h(switc)o(hed)75 +859 y(o\013.)34 b(The)21 b(la)o(y)o(out)e(is)i(refreshed)g(when)f(the)h +(p)q(oin)o(ter)g(reen)o(ters)f(the)g(dra)o(wing)g(area.)34 +b(This)21 b(prev)o(en)o(ts)75 914 y(excessiv)o(e)e(redra)o(wing)g(when) +f(the)h(visibilit)o(y)i(of)d(sev)o(eral)g(la)o(y)o(ers)g(is)h(c)o +(hanged.)30 b(When)19 b(the)f(la)o(y)o(ers)g(are)75 969 +y(group)q(ed,)i(clic)o(king)g(on)f(these)g(\014elds)h(will)g(toggle)e +(the)h(visibili)q(t)o(y)i(of)d(all)h(la)o(y)o(ers)g(in)g(the)g(same)g +(group.)75 1023 y(This)f(is)f(a)g(go)q(o)q(d)f(idea)i(b)q(ecause)g(la)o +(y)o(ers)f(in)h(the)f(same)f(group)h(reside)h(on)f(the)g(same)f(ph)o +(ysical)j(la)o(y)o(er)d(of)75 1078 y(the)d(actual)g(b)q(oard.)19 +b(Use)13 b(the)g(`)p Fm(Edit)h(layer)h(groups)p Fo(')d(option)h(in)g +(the)g(`)p Fm(Objects)p Fo(')e(men)o(u)j(to)e(c)o(hange)h(the)75 +1133 y(la)o(y)o(er)h(groupings.)20 b(Grouping)14 b(la)o(y)o(ers)g(is)g +(only)h(useful)g(for)e(helping)j(y)o(ou)e(to)f(color-co)q(de)i(signals) +g(in)f(y)o(our)75 1188 y(la)o(y)o(out.)24 b(Note)16 b(that)g(grouping)h +(la)o(y)o(ers)g(actually)g(reduces)h(the)f(n)o(um)o(b)q(er)g(of)f +(di\013eren)o(t)h(ph)o(ysical)h(la)o(y)o(ers)75 1242 +y(a)o(v)m(ailable)f(for)d(y)o(our)h(b)q(oard,)g(th)o(us)g(to)f(mak)o(e) +h(an)g(eigh)o(t)h(la)o(y)o(er)f(b)q(oard,)f(y)o(ou)h(cannot)g(group)g +(an)o(y)g(la)o(y)o(ers.)137 1309 y Fh(far)g(side)h Fo(turns)d(on)h(and) +f(o\013)f(the)i(visibilit)o(y)i(of)c(elemen)o(ts)i(\(including)i(SMD)d +(pads\))g(on)g(the)g(opp)q(osite)75 1364 y(b)q(oard)j(side,)h(as)e(w)o +(ell)i(as)f(silk)h(screening)g(on)f(that)f(side.)23 b(It)16 +b(do)q(es)g(not)g(automatically)g(hide)i(the)e(x-ra)o(y)75 +1418 y(view)g(of)f(the)g(other)g(copp)q(er)h(la)o(y)o(ers,)e(these)i(m) +o(ust)f(b)q(e)h(turned)f(o\013)g(separately)g(if)h(desired.)21 +b(Use)15 b(the)h Fh(tab)75 1473 y Fo(k)o(ey)d(to)g(view)i(the)e(en)o +(tire)h(b)q(oard)g(from)f(the)h(other)f(side.)20 b(T)l(o)13 +b(see)h(a)g(view)g(of)f(what)g(the)h(bac)o(k)f(side)i(of)e(the)75 +1528 y(b)q(oard)i(will)h(actually)g(lo)q(ok)f(lik)o(e,)g(mak)o(e)g(the) +f(solder)i(la)o(y)o(er)e(the)h(activ)o(e)g(la)o(y)o(er)f(then)h(press)g +Fh(tab)j Fo(un)o(til)e(the)75 1583 y(status)f(line)j(sa)o(ys)e +Fm(")p Fo(solder)p Fm(")g Fo(on)h(the)f(righ)o(t,)g(then)h(turn)f +(o\013)f(the)i(visibilit)o(y)i(of)c(all)j(other)d(la)o(y)o(ers)h +(except)75 1638 y(pins/pads,)g(vias,)f(and)g(silk.)137 +1704 y(The)23 b(lo)o(w)o(er)g(con)o(trol)f(men)o(u,)j(named)e +Fh(active)p Fo(,)h(is)g(used)f(to)f(c)o(hange)h(the)g(activ)o(e)g(dra)o +(wing)g(la)o(y)o(er.)75 1759 y Fm(<)p Fh(Btn1Down)p Fm(>)16 +b Fo(p)q(ops)g(up)h(a)e(men)o(u)i(to)e(select)i(a)f(one.)22 +b(Eac)o(h)16 b(en)o(try)g(is)g(lab)q(eled)i(with)e(the)h(la)o(y)o(er's) +e(name)75 1814 y(and)f(dra)o(wn)g(in)h(its)f(color.)19 +b(The)c(new)f(dra)o(wing)g(la)o(y)o(er)g(is)g(automatically)h(made)f +(visible.)22 b(T)l(ry)13 b(c)o(hanging)75 1868 y(the)19 +b(activ)o(e)g(la)o(y)o(er's)f(name)h(to)f Fh(ABC)25 b +Fo(b)o(y)19 b(selecting)h(`)p Fm(set)14 b(name)h(of)g(layer)p +Fo(')j(from)g(the)h(`)p Fm(File)p Fo(')e(men)o(u.)75 +1923 y(Changing)f(the)f(activ)o(e)g(la)o(y)o(er)g(also)g(is)h(a)o(v)m +(ailable)h(with)e Fm(<)p Fh(Key)p Fm(>)p Fh(1..8)p Fo(.)75 +2033 y Fg(2.1.3)30 b(The)20 b(Mo)r(de)g(Selectors)137 +2128 y Fo(The)d(mo)q(de)g(selector)g(buttons)f(reside)i(b)q(elo)o(w)f +(the)g(con)o(trol)f(panel.)25 b(They)17 b(are)f(used)i(to)d(select)j +(the)75 2183 y(op)q(eration)f(mo)q(de)h(of)e Fm(Pcb)p +Fo(.)25 b(A)17 b(mo)q(de)g(can)h(b)q(e)f(though)o(t)g(of)f(as)h(a)f(to) +q(ol)h(that)g(gets)f(used)i(when)f Fm(<)p Fh(Btn1)p Fm(>)75 +2238 y Fo(is)f(pressed.)k(Eac)o(h)15 b(mo)q(de)g(causes)h(the)f(cursor) +g(to)f(tak)o(e)h(on)g(a)g(unique)h(shap)q(e)g(that)e(iden)o(ti\014es)j +(the)e(to)q(ol.)75 2292 y(The)k(buttons)g(themselv)o(es)g(are)g(icons)g +(that)g(illustrate)h(their)f(function.)32 b(The)19 b(dra)o(wing)g(mo)q +(des)g(can)75 2347 y(also)c(b)q(e)h(selected)g(from)f(the)g(k)o(eyb)q +(oard:)290 2411 y Fm(<)p Fh(Key)p Fm(>)p Fh(Esc)n(ap)n(e)74 +b Fm(reset)23 b(mode)290 2462 y(<)p Fh(Key)p Fm(>)p Fh(F1)173 +b Fm(via-mode)290 2514 y(<)p Fh(Key)p Fm(>)p Fh(F2)g +Fm(line-mode)290 2566 y(<)p Fh(Key)p Fm(>)p Fh(F3)g Fm +(pastebuffer-mode)290 2618 y(<)p Fh(Key)p Fm(>)p Fh(F4)g +Fm(rectangle-mode)290 2670 y(<)p Fh(Key)p Fm(>)p Fh(F5)g +Fm(text-mode)p eop +%%Page: 11 12 +11 11 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(11)290 149 y Fm(<)p Fh(Key)p Fm(>)p Fh(F6)173 b Fm(polygon-mode)290 +201 y(<)p Fh(Key)p Fm(>)p Fh(Insert)75 b Fm(insert-point-mode)290 +253 y(<)p Fh(Key)p Fm(>)p Fh(F7)173 b Fm(thermal-mode)290 +305 y(<)p Fh(Key)p Fm(>)p Fh(F8)g Fm(arc-mode)137 376 +y Fo(The)16 b Fm(<)p Fh(Key)p Fm(>)p Fh(Sp)n(ac)n(e)h +Fo(cycles)f(through)f(all)h(of)f(the)g(mo)q(des)h(in)g(the)f(mo)q(de)h +(button)f(palette.)137 446 y(Reset-mo)q(de)21 b(is)h(really)f(no)g(mo)q +(de,)i(and)e Fm(<)p Fh(Btn1)p Fm(>)f Fo(has)h(no)g(e\013ect)g(with)g +(this)g(setting.)37 b(Some)21 b(of)75 501 y(the)g(mo)q(des)h(are)e(v)o +(ery)h(simple,)j(suc)o(h)d(as)g(the)g(via-mo)q(de.)39 +b(Clic)o(king)23 b Fm(<)p Fh(Btn1)p Fm(>)d Fo(while)j(in)f(this)g(mo)q +(de)75 556 y(creates)16 b(a)g(via)g(at)g(the)g(cross-hair)g(p)q +(osition.)24 b(The)17 b(pastebu\013er-mo)q(de)f(is)h(similar.)24 +b(With)16 b(this)h(mo)q(de,)75 611 y Fm(<)p Fh(Btn1)p +Fm(>)i Fo(copies)i(the)f(con)o(ten)o(ts)g(of)f(the)h(activ)o(e)g +(bu\013er)g(to)f(the)h(la)o(y)o(out,)g(but)g(only)h(those)e(parts)h +(that)75 666 y(reside)15 b(on)g(visible)h(la)o(y)o(ers)f(are)f(copied.) +21 b(The)14 b(rotate-mo)q(de)g(allo)o(ws)h(y)o(ou)f(to)f(rotate)h +(elemen)o(ts)h(and)f(text)75 720 y(ob)s(jects)i(90)g(degrees)h(coun)o +(ter-clo)q(c)o(kwise)h(with)f(eac)o(h)g(clic)o(k.)26 +b(The)17 b(line-mo)q(de)h(is)g(explained)g(in)g(detail)75 +775 y(in)g(Section)g(1.5)e([Line)i(Ob)s(jects],)e(page)h(6.)25 +b(The)17 b(arc-mo)q(de)g(is)g(explained)i(in)f(detainl)g(in)g(Section)g +(1.6)75 830 y([Arc)e(Ob)s(jects],)f(page)h(6.)21 b(Rectangle-mo)q(de,) +16 b(p)q(olygon-mo)q(de)h(and)f(thermal-mo)q(de)h(are)e(explained)j(in) +75 885 y(detail)d(in)f(Section)g(1.7)f([P)o(olygon)f(Ob)s(jects],)h +(page)h(7.)19 b(Remem)o(b)q(er)13 b(that)g(the)g(thermal-mo)q(de)h +(will)h(only)75 940 y(create)g(and)g(destro)o(y)g(thermals)g(to)g(p)q +(olygons)g(on)g(the)h(activ)o(e)f(la)o(y)o(er.)137 1010 +y(The)22 b(insert-p)q(oin)o(t-mo)q(de)h(is)f(an)f(editing)i(to)q(ol)e +(that)g(allo)o(ws)h(y)o(ou)f(to)g(add)g(p)q(oin)o(ts)h(in)o(to)f(lines) +i(or)75 1065 y(p)q(olygons.)i(With)17 b(v)o(ersion)f(1.5)g(of)g +Fm(Pcb)p Fo(,)h(the)f(insert-p)q(oin)o(t-mo)q(de)j(enforces)d(the)h(45) +f(degree)h(line)h(rule.)75 1120 y(Y)l(ou)h(can)f(force)g(only)h(the)g +(shorter)e(line)j(segmen)o(t)e(to)g(45)g(degrees)h(b)o(y)f(holding)i +(the)e(shift)h(k)o(ey)f(do)o(wn)75 1175 y(while)g(inserting)g(the)e(p)q +(oin)o(t.)25 b(The)17 b(delete-mo)q(de)h(deletes)f(the)g(smallest)g(ob) +s(ject)f(b)q(eneath)i(the)e(cursor)75 1229 y(with)g(eac)o(h)g +Fm(<)p Fh(Btn1)p Fm(>)f Fo(clic)o(k.)22 b(If)16 b(y)o(ou)f(use)h(clic)o +(k)h(at)e(an)g(end-p)q(oin)o(t)i(that)e(t)o(w)o(o)f(lines)j(ha)o(v)o(e) +e(in)i(common,)e(it)75 1284 y(will)h(replace)f(the)f(t)o(w)o(o)e(lines) +k(with)e(a)g(single)h(line)h(spanning)f(the)f(t)o(w)o(o)f(remaining)i +(p)q(oin)o(ts.)20 b(This)14 b(can)g(b)q(e)75 1339 y(used)i(to)e(delete) +j(an)e Fm(")p Fo(inserted)p Fm(")h Fo(p)q(oin)o(t)f(in)h(a)f(line,)i +(restoring)e(the)g(previous)h(line.)75 1458 y Fg(2.1.4)30 +b(Dra)n(wing)21 b(Area)137 1558 y Fo(The)14 b(dra)o(wing)f(area)g(is)h +(made)f(from)g(a)g(viewp)q(ort)h(widget)f(that)g(also)g(includes)j(t)o +(w)o(o)c(scrollbars.)20 b(The)75 1612 y(cursor)15 b(c)o(hanges)g(shap)q +(e)g(dep)q(ending)i(on)e(the)g(curren)o(t)g(op)q(eration)g(mo)q(de)g +(when)h(the)f(p)q(oin)o(ter)g(is)g(mo)o(v)o(ed)75 1667 +y(in)o(to)f(the)h(dra)o(wing)f(area.)19 b(A)c(crosshair)f(follo)o(ws)g +(the)h(X11)f(p)q(oin)o(ter)h(with)f(resp)q(ect)h(to)f(the)h(grid)f +(setting.)75 1722 y(Mo)o(v)o(e)k(around)h(and)g(w)o(atc)o(h)f(the)i +(cursor)e(p)q(osition)i(displa)o(y)o(ed)h(in)e(the)h(upp)q(er)g(righ)o +(t)e(of)h(the)g(windo)o(w.)75 1777 y(No)o(w)14 b(select)i(a)e(new)h +(grid)g(from)f(the)h Fh(Display)k Fo(men)o(u.)h(The)15 +b(new)g(v)m(alue)h(is)f(up)q(dated)h(in)g(the)e(statusline.)75 +1832 y(No)o(w)d(mo)o(v)o(e)h(again)g(and)g(w)o(atc)o(h)g(the)g +(di\013erence.)20 b(A)12 b(di\013eren)o(t)g(w)o(a)o(y)g(to)f(c)o(hange) +h(the)h(grid)f(is)h Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p +Fh(g)75 1886 y Fo(to)k(decrease)g(or)g Fm(<)p Fh(Key)p +Fm(>)p Fh(g)k Fo(to)c(increase)h(it.)26 b(The)18 b(grid)g(setting)f(is) +h(sa)o(v)o(ed)e(along)i(with)f(the)h(data)e(when)75 1941 +y(y)o(ou)i(sa)o(v)o(e)g(a)g(p)q(cb)h(la)o(y)o(out.)28 +b(F)l(or)18 b(homemade)g(la)o(y)o(outs)g(a)g(v)m(alue)i(around)e(50)g +(is)g(a)g(go)q(o)q(d)g(setting.)30 b(The)75 1996 y(cursor)13 +b(also)h(ma)o(y)f(b)q(e)h(mo)o(v)o(ed)f(with)h(the)g(cursor)f(k)o(eys)g +(or,)g(for)g(larger)h(distances,)g(b)o(y)f(pressing)i(the)e +Fh(shift)75 2051 y Fo(mo)q(di\014er)j(together)f(with)g(a)g(cursor)g(k) +o(ey)l(.)75 2170 y Fg(2.1.5)30 b(Men)n(u)137 2269 y Fo(The)22 +b(men)o(us)g(are)g(lo)q(cated)g(at)g(the)g(top)f(of)g(the)h(dra)o(wing) +g(area.)39 b(Most,)22 b(but)g(not)g(all,)i(of)d(their)75 +2324 y(functions)c(are)f(also)g(a)o(v)m(ailable)i(from)d(the)i(k)o(eyb) +q(oard.)23 b(Some)16 b(of)g(the)g(en)o(tries)g(suc)o(h)h(as)f +Fh(c)n(enter)k Fo(require)75 2379 y(a)c(certain)g(cursor)g(p)q +(osition.)24 b(In)17 b(this)f(case)h(a)e(statusline)j(will)f(p)q(opup)g +(at)f(the)g(b)q(ottom)g(with)g(w)o(ording)75 2434 y(similar)g(to)f(the) +g(follo)o(wing:)256 2501 y(mo)o(v)o(e)f(p)q(oin)o(ter)i(to)e(the)i +(appropriate)f(screen)h(p)q(osition)g(and)f(press)g(a)g(button)137 +2572 y(An)o(y)i(mouse)h(button)f(will)h(do)g(the)f(job,)g(whereas)g(an) +o(y)g(k)o(ey)g(except)h(the)f(cursor)g(k)o(eys)g(will)i(cancel)75 +2627 y(the)c(op)q(eration.)20 b(F)l(or)15 b(details)h(see)g(Section)g +(5.2)e([Actions],)g(page)i(35.)p eop +%%Page: 12 13 +12 12 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(12)75 149 y(`)p Fm(About)p Fo(')94 b(There)16 b(is)h(no)f(men)o(u)h +(hiding)h(b)q(ehind)g(this)f(button,)f(but)g(a)g(small)h(information)f +(b)q(o)o(x)g(will)315 204 y(p)q(op)g(up.)75 289 y(`)p +Fm(File)p Fo(')118 b(This)11 b(men)o(u)g(o\013ers)f(a)h(c)o(hoice)h(of) +e(loading,)i(sa)o(ving)f(and)g(prin)o(ting)h(data,)e(sa)o(ving)h +(connection)315 344 y(information)22 b(to)f(a)g(\014le)i(or)e(quitting) +i(the)e(application.)42 b(Y)l(ou)21 b(also)h(ma)o(y)f(c)o(hange)h(the) +315 399 y(la)o(y)o(out's)c(or)h(the)g(activ)o(e)h(la)o(y)o(er's)e +(name.)32 b(Selecting)21 b Fh(print)f(layout)k Fo(p)q(ops)c(up)g(a)f +(prin)o(ter)315 453 y(con)o(trol)d(dialog)h(whic)o(h)h(is,)f(hop)q +(efully)l(,)i(self)e(explaining.)26 b(This)17 b(b)q(o)o(x)g(con)o +(tains)f(a)h(panner)315 508 y(widget)23 b(\(only)f Fm(X11R5)g +Fo(and)h(later\))f(whic)o(h)h(simpli\014es)i(adjusting)e(the)f +(o\013sets.)41 b(With)315 563 y(earlier)20 b(releases)g(the)g(prin)o +(tout)f(will)i(alw)o(a)o(ys)d(app)q(ear)i(in)g(the)f(upp)q(er)i(left)e +(corner)h(with)315 618 y(resp)q(ect)c(to)e(the)i(media)f(margins.)315 +687 y(A)k(selection)h(of)e(sev)o(eral)g(device)i(driv)o(ers)f(is)g(a)o +(v)m(ailable)i(from)c(the)i(prin)o(ter)g(con)o(trol)f(dia-)315 +742 y(log.)h(Presen)o(tly)11 b Fh(PostScript)p Fo(,)h +Fh(enc)n(apsulate)n(d)g(PostScript)p Fo(,)f(and)h Fh(Gerb)n(erX)18 +b Fo(are)11 b(supp)q(orted.)315 797 y Fh(Gerb)n(erD)21 +b Fo(supp)q(ort)16 b(ma)o(y)f(b)q(e)i(forthcoming.)22 +b(It)17 b(requires)g(a)e(rastering)h(engine)i(that)d(p)q(cb)315 +852 y(presen)o(tly)h(lac)o(ks.)75 936 y(`)p Fm(Display)p +Fo(')46 b(The)13 b(displa)o(y)h(men)o(u)g(supp)q(orts)f(the)g(most)f +(needed)i(functions)g(related)g(to)e(screen)i(output.)315 +991 y(The)e(en)o(tries)g(are)g(used)g(to)f(c)o(hange)h(the)g(grid)g(to) +f(some)g(p)q(opular)i(v)m(alues,)g(the)f(zo)q(om)f(factor,)315 +1046 y(the)16 b(displa)o(y)o(ed)i(elemen)o(t)f(name)g(and)f(also)h(are) +f(used)h(to)e(cen)o(ter)i(or)f(refresh)g(the)h(output.)315 +1101 y(Y)l(ou)e(also)g(ma)o(y)g(switc)o(h)g(grid-displa)o(ying)j(on)d +(or)f(o\013)g(and)i(select)g(b)q(et)o(w)o(een)f(absolute)h(grid)315 +1156 y(\(origin)f(at)f(\(0,0\)\))e(or)i(relativ)o(e)h(grid)g(\(origin)g +(at)f(the)h(p)q(osition)g(where)g(the)g(grid)f(has)h(b)q(een)315 +1210 y(c)o(hanged\).)30 b(The)18 b(relativ)o(e)h(grid)g(p)q(osition)h +(is)f(no)o(w)e(established)k(at)c(the)i(actual)f(p)q(oin)o(ter)315 +1265 y(p)q(osition,)f(NOT)f(necessarily)i(the)e(same)g(as)g(the)g +(crosshair)g(p)q(osition.)24 b(This)17 b(allo)o(ws)f(y)o(ou)315 +1320 y(to)k(shift)h(the)g(grid)g(without)f(c)o(hanging)h(the)g(grid)g +(spacing.)37 b(I)20 b(recommend)h(that)f(y)o(ou)315 1375 +y(zo)q(om)e(in)h(as)f(close)h(as)f(p)q(ossible)j(b)q(efore)d(setting)h +(a)f(relativ)o(e)h(grid)f(so)g(that)g(y)o(ou're)g(sure)315 +1430 y(the)c(grid)g(lines)h(fall)g(where)f(y)o(ou)g(w)o(an)o(t.)k(The)c +(clipping)i(to)e(45-degree)f(lines)j(is)e(selected)h(in)315 +1484 y(this)h(men)o(u,)f(as)g(w)o(ell)h(as)f(enabling)h(rubb)q(erband)h +(mo)q(de)e(\(see)g(description)i(of)e Fh(Mo)n(de)s Fo(\).)75 +1569 y(`)p Fm(Sizes)p Fo(')94 b(This)16 b(men)o(u)h(allo)o(ws)f(y)o(ou) +f(to)g(select)i(a)e(group)h(of)f(line)j(thic)o(kness,)e(via)g(diameter) +h(and)f(via)315 1624 y(drill)21 b(size)f(\(collectiv)o(ely)h(called)g +(a)e Fm(")p Fo(routing)g(st)o(yle)p Fm(")p Fo(\))g(to)f(b)q(e)i +(coppied)g(to)f(the)g Fm(")p Fo(activ)o(e)p Fm(")315 +1679 y Fo(sizes.)34 b(Y)l(ou)20 b(can)g(also)g(c)o(hange)g(the)f(names) +h(giv)o(en)g(to)f(these)h(st)o(yles)g(and)g(adjust)f(their)315 +1733 y(v)m(alues)e(from)f(this)h(men)o(u.)23 b(Y)l(ou)17 +b(can)f(also)h(edit)g(the)f Fm(")p Fo(activ)o(e)p Fm(")g +Fo(sizes)i(\(the)e(initial)i(size)f(of)315 1788 y(new)c(vias,)g +(drilling)j(holes,)d(lines,)i(text-ob)s(jects)d(and)h(the)g(curren)o(t) +g(maxim)o(um)g(size)g(of)g(the)315 1843 y(la)o(y)o(out\))h(from)h(this) +g(men)o(u.)75 1928 y(`)p Fm(Objects)p Fo(')46 b(Displa)o(ying)20 +b(the)f(pinout)g(of)f(an)h(elemen)o(t)g(and)g(c)o(hanging)g(its)g +(names,)g(the)g(one)g(that)e(is)315 1983 y(curren)o(tly)12 +b(selected)h(b)o(y)e(the)h Fh(Display)j Fo(men)o(u,)d(as)g(w)o(ell)g +(as)f(editing)i(a)e(text)g(ob)s(ject)g(is)h(o\013ered)315 +2037 y(b)o(y)18 b(this)h(men)o(u.)30 b(The)18 b(latter)g(t)o(w)o(o)f +(selections)j(require)f(an)g(additional)g(p)q(oin)o(ter)g(button)315 +2092 y(clic)o(k)e(at)d(the)i(ob)s(ject's)e(p)q(osition.)22 +b(A)15 b(dialog)h(for)f(c)o(hanging)h(the)f(la)o(y)o(er)g(groupings)h +(is)g(also)315 2147 y(reac)o(hed)g(from)e(this)i(men)o(u.)75 +2232 y(`)p Fm(Selection)p Fo(')315 2286 y(This)g(men)o(u)f(co)o(v)o +(ers)g(most)f(of)h(the)h(op)q(erations)f(that)g(w)o(ork)f(with)i +(selected)g(ob)s(jects.)k(Y)l(ou)315 2341 y(ma)o(y)13 +b(either)i(\(un\)select)f(all)h(visible)h(ob)s(jects)e(of)f(a)h(la)o(y) +o(out)f(or)g(only)i(the)f(ones)g(whic)o(h)g(ha)o(v)o(e)315 +2396 y(b)q(een)h(found)g(b)o(y)f(the)h(last)f(connection)h(scan.)20 +b(The)14 b(mouse)h(can)f(also)g(b)q(e)h(used)g(to)f(c)o(hange)315 +2451 y(whic)o(h)20 b(things)f(are)f(and)h(are)g(not)f(selected:)28 +b(toggle)19 b(the)g(selection)h(of)e(a)g(single)j(ob)s(ject)315 +2506 y(b)o(y)e(pressing)h Fm(<)p Fh(Btn3Down)p Fm(>)f +Fo(and)h(releasing)g(without)g(mo)o(ving)f(the)g(mouse.)33 +b(Pressing)315 2560 y Fh(Mo)n(d1)p Fm(<)p Fh(Btn3Down)p +Fm(>)p Fo(,)17 b(mo)o(ving)h(and)f(releasing)h(the)g(button)f(selects)h +(all)g(visible)i(ob)s(jects)315 2615 y(inside)f(the)e(rectangle.)25 +b(Pressing)17 b(the)g(mo)q(di\014er)h(k)o(ey)f Fh(Shift)j +Fo(to)q(o,)d(unselects)h(all)g(ob)s(jects)315 2670 y(in)e(the)g(area.)k +(Y)l(ou)15 b(can)h(delete)g(all)h(selected)f(ob)s(jects)f(from)g(this)g +(men)o(u,)h(and)f(also)h(mo)o(v)o(e)p eop +%%Page: 13 14 +13 13 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(13)315 149 y(selected)15 b(text)e(ob)s(jects)h(to)f(the)h +(silk-screen)h(la)o(y)o(er.)20 b(The)14 b(other)f(en)o(tries)h(c)o +(hange)g(the)g(sizes)315 204 y(of)h(visible)i(and)f(selected)g(ob)s +(jects.)75 285 y(`)p Fm(Buffer)p Fo(')70 b(This)17 b(men)o(u)f(handles) +h(pastebu\013er)f(related)g(actions.)23 b(Y)l(ou)16 b(ma)o(y)g(select)g +(one)h(out)e(of)h(\014v)o(e)315 340 y(\(p)q(er)j(viewing)i(side\))f +(bu\013ers)f(to)g(use,)h(rotate)e(or)h(clear)h(its)g(con)o(ten)o(ts)e +(and)i(paste)f(it)h(to)315 395 y(the)14 b(la)o(y)o(out.)19 +b(Y)l(ou)c(can)g(also)f(gather)g(ob)s(jects)f(in)j(the)e(bu\013er)g(in) +o(to)h(an)f(elemen)o(t)h(de\014nition)315 450 y(from)f(this)i(men)o(u.) +k(Note:)g(only)c(visible)h(ob)s(jects)d(are)h(pasted)h(to)e(the)h(la)o +(y)o(out.)75 531 y(`)p Fm(Connections)p Fo(')315 586 +y(The)k(en)o(tries)f(a)o(v)m(ailable)i(through)e(the)h(connections)g +(men)o(u)g(button)f(allo)o(w)h(the)f(user)h(to)315 641 +y(\014nd)h(connections)g(from)e(pins)j(or)d(vias)h(and)h(to)e +(manipulate)j(these.)32 b(The)19 b(connection)315 695 +y(lists)g(ma)o(y)e(b)q(e)i(sa)o(v)o(ed)e(b)o(y)h(selecting)h(en)o +(tries)g(from)e(the)h Fh(File)i Fo(men)o(u.)29 b(In)18 +b(man)o(y)g(cases)g(it)315 750 y(is)e(desireable)h(to)d(use)i(the)f +(ratsnest)f(function)i(to)f(c)o(hec)o(k)g(connections)h(against)f(a)g +(netlist)315 805 y(\014le)h(instead)g(of)f(using)h(the)f(connections)h +(men)o(u)g(to)e(generate)h(text)g(connection)h(lists.)75 +886 y(`)p Fm(Undo)p Fo(')118 b(This)19 b(men)o(u)f(is)g(a)g(fron)o +(tend)g(for)f(managing)h(the)g(rev)o(ersing)g(of)g(op)q(erations)g(suc) +o(h)g(as)g(re-)315 941 y(mo)o(v)o(e,)e(cop)o(y)l(,)h(mo)o(v)o(e,)g +(name)g(c)o(hanges,)g(etc.)25 b(The)17 b(n)o(um)o(b)q(er)g(of)g(op)q +(erations)g(is)h(unlimited)315 996 y(\(dep)q(ending)g(on)e(memory\).)21 +b(The)16 b(list)g(is)h(cleared)g(if)f(new)g(la)o(y)o(out)f(data)h(is)g +(loaded)h(or)e(b)o(y)315 1050 y(selecting)h(the)e(appropriate)h(en)o +(try)f(from)g(this)g(men)o(u.)20 b(The)15 b(in)o(v)o(erse)g(op)q +(eration,)f(redo,)g(is)315 1105 y(also)h(a)o(v)m(ailable.)75 +1186 y(`)p Fm(Report)p Fo(')70 b(This)16 b(men)o(u)f(allo)o(ws)h(y)o +(ou)f(to)f(generate)h(a)g(dialog)h(that)f(summerizes)h(information)f +(ab)q(out)315 1241 y(an)g(ob)s(ject)g(suc)o(h)g(as)g(sizes)h(and)g(co)q +(ordinates.)k(Y)l(ou)15 b(can)h(also)f(get)f(a)h(rep)q(ort)g(ab)q(out)g +(all)h(of)315 1296 y(the)f(drills)i(that)e(are)g(used)g(on)h(the)f(b)q +(oard.)75 1455 y Fl(2.2)33 b(Log)22 b(Windo)n(w)137 1552 +y Fo(This)16 b(optional)g(windo)o(w)g(is)g(used)f(to)g(displa)o(y)i +(all)f(kind)g(of)f(messages)g(including)j(the)e(ones)f(written)75 +1607 y(to)i Fh(stderr)23 b Fo(b)o(y)18 b(external)g(commands.)27 +b(The)18 b(main)g(adv)m(an)o(tage)g(is)g(that)f(its)h(con)o(ten)o(ts)f +(are)g(sa)o(v)o(ed)h(in)g(a)75 1662 y(scrolling)e(list)f(un)o(til)h +(the)f(program)e(exits.)20 b(Disabling)c(this)f(feature)f(b)o(y)h +(setting)g(the)f(resource)h Fh(useL)n(o)n(g-)75 1717 +y(Window)21 b Fo(to)15 b Fh(false)j Fo(will)f(generate)e(p)q(opup)h +(windo)o(ws)g(to)e(displa)o(y)j(messages.)j(The)15 b +Fh(stderr)21 b Fo(of)15 b(external)75 1772 y(commands)k(will)i(app)q +(ear)e(on)g Fm(Pcb)p Fo(s)g Fh(stderr)24 b Fo(whic)o(h)c(normally)g(is) +g(the)f(paren)o(t)g(shell.)33 b(I)20 b(suggest)e(y)o(ou)75 +1826 y(iconify)d(the)f(windo)o(w)g(after)f(startup)g(for)g(example)i(b) +o(y)e(setting)h Fh(*lo)n(g.ic)n(onic)h Fo(to)e Fh(true)p +Fo(.)20 b(If)14 b Fh(r)n(aiseL)n(o)n(gWin-)75 1881 y(dow)20 +b Fo(is)15 b(set)f Fh(true)p Fo(,)h(the)g(windo)o(w)f(will)j(deiconify) +f(and)e(raise)h(itself)h(whenev)o(er)f(new)f(messages)g(are)g(to)g(b)q +(e)75 1936 y(displa)o(y)o(ed.)75 2068 y Fl(2.3)33 b(Library)25 +b(Windo)n(w)137 2166 y Fo(First)12 b(app)q(earing)h(in)g(1.4.1)e(the)i +(library)g(windo)o(w)f(is)h(one)f(of)g(the)h(b)q(est)f(new)h(features)f +(in)h(m)o(y)f(opinion.)75 2221 y(It)g(simpli\014es)j(loading)e +(circuits)h(quiet)f(a)f(lot)g(just)g(b)o(y)h(selecting)g(the)g +(appropriate)f(t)o(yp)q(e)h(from)e(the)i(men)o(u)75 2276 +y(at)h(the)g(top.)20 b(A)14 b(circuit)i(is)f(then)f(selected)i(b)o(y)f +(simply)g(double-clic)o(ki)q(ng)i(on)d(the)h(text)f(line.)21 +b(F)l(or)14 b(details)75 2330 y(on)h(libraries)h(c)o(hec)o(k-out)f +(Section)g(6.6)f([Library)h(File],)g(page)g(50)f(and)h(Section)g(6.5)f +([Library)h(Con)o(ten)o(ts)75 2385 y(File],)h(page)f(50.)75 +2517 y Fl(2.4)33 b(Dra)n(wing)22 b(and)h(Remo)n(ving)g(Basic)f(Ob)t +(jects)137 2615 y Fo(There)17 b(are)f(sev)o(eral)g(w)o(a)o(ys)f(of)h +(creating)g(new)h(ob)s(jects:)k(y)o(ou)16 b(ma)o(y)f(dra)o(w)h(them)g +(y)o(ourself,)g(y)o(ou)g(ma)o(y)75 2670 y(cop)o(y)i(an)g(existing)h(ob) +s(ject)f(or)g(y)o(ou)g(ma)o(y)f(load)i(an)f(elemen)o(t)h(from)e(a)h +(\014le)h(or)f(library)l(.)30 b(Creating)18 b(new)p eop +%%Page: 14 15 +14 14 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(14)75 149 y(ob)s(jects)15 b(is)i(normally)g(related)f(to)g(a)g(sp)q +(ecial)i(mo)q(de)e(dep)q(ending)i(on)e(the)h(ob)s(ject)e(t)o(yp)q(e.)23 +b(The)16 b(notation)75 204 y(of)f(k)o(ey)g(and)g(button)g(ev)o(en)o(ts) +g(is)h(the)f(same)g(as)g(describ)q(ed)i(in)f(the)f(X11)g(In)o(trinsics) +i(man)o(ual.)137 277 y(The)i(op)q(eration)g(mo)q(de)g(ma)o(y)f(b)q(e)h +(selected)h(b)o(y)e(one)h(of)f(the)h(mo)q(de)g(selectors)g(in)g(the)g +(b)q(ottom)f(left)75 332 y(corner,)13 b(b)o(y)f(one)h(of)f(the)h +(function)g(k)o(eys)g(listed)g(earlier)h(in)f(this)g(c)o(hapter,)g(or)f +(b)o(y)g(pressing)i(the)e(space)h(bar)75 387 y(to)j(cycle)h(through)g +(the)f(mo)q(des.)24 b Fm(<)p Fh(Btn1Down)p Fm(>)16 b +Fo(sends)h(a)g(notify)f(request)h(to)e(the)i(application)h(whic)o(h)75 +442 y(resp)q(onds)f(b)o(y)g(creating)g(or)f(c)o(hanging)h(the)g +(appropriate)g(ob)s(ject)f(or)h(at)f(least)h(tak)o(es)f(the)g(\014rst)h +(step)g(to)75 496 y(do)d(so.)k(Switc)o(hing)d(to)e(a)g(mo)q(de)h +(causes)g(the)g(cursor)f(to)g(tak)o(e)g(on)g(a)h(unique)h(shap)q(e)f +(and)g(also)f(causes)h(the)75 551 y(co)q(oresp)q(onding)k(mo)q(de)f +(selector)f(button)h(to)f(b)q(e)h(dra)o(wn)f(with)h(thic)o(k)g(lines.) +26 b(Y)l(ou)16 b(can)h(use)g(either)g(cue)75 606 y(to)e(see)g(whic)o(h) +h(mo)q(de)g(is)f(curren)o(tly)h(selected.)137 679 y(Remo)o(ving)c(ob)s +(jects)f(is)h(p)q(ossible)i(using)e Fm(<)p Fh(Key)p Fm(>)p +Fh(BackSp)n(ac)n(e)j Fo(\(or)c Fm(<)p Fh(Key)p Fm(>)p +Fh(Delete)j Fo(on)e(some)g(mac)o(hines\))75 734 y(whic)o(h)18 +b(deletes)g(the)f(ob)s(ject)g(at)f(the)i(cursor)f(lo)q(cation.)26 +b(If)17 b(more)g(than)g(one)g(ob)s(ject)g(is)h(lo)q(cated)f(at)g(the)75 +789 y(same)k(p)q(osition,)j(the)d(smallest)h(matc)o(hing)f(t)o(yp)q(e)h +(will)h(b)q(e)f(c)o(hosen.)38 b(If)22 b(t)o(w)o(o)e(or)h(more)g(of)g +(the)g(same)75 844 y(t)o(yp)q(e)d(are)f(the)h(smallest)g(at)f(the)h(p)q +(osition,)h(then)f(the)g(new)o(est)g(one)f(will)j(b)q(e)e(deleted.)29 +b(Y)l(ou)18 b(also)g(ma)o(y)75 898 y(c)o(hange)e(to)g +Fh(r)n(emove-mo)n(de)k Fo(and)c(clic)o(k)i Fm(<)p Fh(Btn1Down)p +Fm(>)e Fo(at)g(the)g(lo)q(cation)h(of)f(the)g(ob)s(jects)g(whic)o(h)h +(are)f(to)75 953 y(b)q(e)k(remo)o(v)o(ed.)33 b(If)20 +b(y)o(ou)f Fm(")p Fo(remo)o(v)o(e)p Fm(")g Fo(the)h(end-p)q(oin)o(t)h +(where)e(t)o(w)o(o)g(lines)i(connect,)g(it)f(will)h(remo)o(v)o(e)e(the) +75 1008 y(p)q(oin)o(t)d(of)e(connection)j(lea)o(ving)f(a)f(single)h +(line)h(that)e(spans)g(the)g(far)g(end)g(p)q(oin)o(ts.)137 +1081 y(Rotating)i(w)o(orks)h(in)h(a)f(similar)h(fashion.)30 +b(Change)18 b(the)h(mo)q(de)f(and)h(press)f Fm(<)p Fh(Btn1Down)p +Fm(>)g Fo(at)g(the)75 1136 y(ob)s(ject's)k(lo)q(cation.)42 +b(Remem)o(b)q(er)23 b(only)g(text,)g(elemen)o(ts)h(and)e(arcs)h(can)f +(b)q(e)i(rotated.)41 b(\(An)o(ything)75 1191 y(including)23 +b(groups)c(of)g(ob)s(jects)g(ma)o(y)g(b)q(e)i(rotated)d(inside)k(a)d +(bu\013er)h(using)h(the)e(rotate)g(bu\013er)h(men)o(u)75 +1245 y(option.\))137 1318 y(Insert)h(mo)q(de)f(pro)o(vides)g(the)g +(capabilit)o(y)i(of)d(inserting)i(new)g(p)q(oin)o(ts)f(in)o(to)g +(existing)h(p)q(olygons)f(or)75 1373 y(lines.)25 b(The)17 +b(45)f(degree)g(line)j(clipping)g(is)d(no)o(w)g(enforced)h(when)g +(selected.)25 b(Press)16 b(and)h(hold)g(the)g(shift)75 +1428 y(k)o(ey)f(while)i(p)q(ositioning)g(the)f(new)f(p)q(oin)o(t)h(to)f +(only)h(clip)h(the)e(line)i(segmen)o(t)e(to)g(the)h(nearer)f(of)g(the)g +(t)o(w)o(o)75 1483 y(existing)g(p)q(oin)o(ts)f(to)f(45)g(degrees.)20 +b(Y)l(ou)15 b(can)g(also)g(toggle)f(the)h(45-degree)g(clipping)i(in)f +(the)e(middle)j(of)d(a)75 1538 y(p)q(oin)o(t)j(insertion)h(b)o(y)e +(pressing)h(the)g Fm(<)p Fh(Key)p Fm(>)p Fh(.)24 b Fo(If)17 +b(the)f(shift)h(k)o(ey)g(is)g(not)f(depressed)h(and)g(the)g(45)f +(degree)75 1592 y(line)21 b(clipping)i(mo)q(de)d(is)g(on,)g(b)q(oth)g +(new)g(line)i(segmen)o(ts)d(m)o(ust)g(b)q(e)h(on)g(45)f(degree)h +(angles)g(-)g(greatly)75 1647 y(restricting)13 b(where)h(the)f(new)g(p) +q(oin)o(t)g(ma)o(y)g(b)q(e)g(placed.)20 b(In)14 b(some)f(cases)g(this)g +(can)g(cause)g(confusion)h(as)f(to)75 1702 y(whether)i(an)h(insertion)g +(has)f(b)q(een)i(started)d(since)j(the)e(t)o(w)o(o)f(new)h(lines)i(ma)o +(y)e(b)q(e)h(forced)f(to)g(lie)h(parallel)75 1757 y(on)f(top)g(of)g +(the)g(original)h(line)h(un)o(til)f(the)g(p)q(oin)o(ter)f(is)h(mo)o(v)o +(ed)f(far)f(from)h(the)g(end)h(p)q(oin)o(ts.)137 1830 +y(Remo)o(ving)g(ob)s(jects,)g(c)o(hanging)h(their)h(size)f(or)f(mo)o +(ving)h(them)f(only)h(applies)h(to)e(ob)s(jects)g(that)g(are)75 +1885 y(visible)h(when)f(the)f(command)g(is)h(executed.)137 +1958 y(There)f(are)f(sev)o(eral)h(k)o(eystrok)o(es)e(and)h(button)g(ev) +o(en)o(ts)h(refering)f(to)g(an)g Fh(obje)n(ct)19 b Fo(without)14 +b(iden)o(tifying)75 2012 y(its)h(t)o(yp)q(e.)20 b(Here's)15 +b(a)g(list)h(of)f(them:)137 2086 y Fm(<)p Fh(Btn1Down)p +Fm(>)g Fo(creates)g(\(or)g(deletes\))h(an)f(ob)s(ject)f(dep)q(ending)k +(on)d(the)g(curren)o(t)g(mo)q(de.)137 2159 y Fm(<)p Fh(Key)p +Fm(>)p Fh(BackSp)n(ac)n(e)e Fo(or)e Fm(<)p Fh(Key)p Fm(>)p +Fh(Delete)i Fo(remo)o(v)o(es)d(the)h(visible)i(ob)s(ject)e(at)f(the)h +(cursor)f(lo)q(cation.)20 b(When)75 2213 y(more)14 b(than)g(one)g(ob)s +(ject)f(exists)i(at)e(the)h(lo)q(cation,)h(the)f(order)g(of)f(remo)o(v) +m(al)h(is:)20 b(via,)14 b(line,)i(text,)d(p)q(olygon)75 +2268 y(and)h(elemen)o(t.)20 b(The)14 b(dra)o(wn)g(la)o(y)o(er)f(order)h +(also)g(a\013ects)f(the)h(searc)o(h)g(-)g(whatev)o(er)f(is)h(top)g(-)g +(most)f(\(except)75 2323 y(elemen)o(ts\))18 b(is)g(a\013ected)f(b)q +(efore)h(lo)o(w)o(er)f(items.)26 b(Basically)19 b(all)g(this)f(means)f +(that)g(what)g(is)h(remo)o(v)o(ed)e(is)75 2378 y(probably)h(just)g +(what)f(y)o(ou)h(exp)q(ect.)25 b(If)17 b(for)f(some)h(reason)f(it)h +(isn't,)g(undo)g(and)g(try)f(again.)25 b(Only)18 b(one)75 +2433 y(ob)s(ject)f(is)g(remo)o(v)o(ed)g(for)g(eac)o(h)g(k)o(eystrok)o +(e.)25 b(If)17 b(t)o(w)o(o)f(or)h(more)g(of)g(the)g(same)g(t)o(yp)q(e)g +(matc)o(h,)g(the)g(new)o(est)75 2487 y(one)e(is)h(remo)o(v)o(ed.)137 +2560 y(Use)e Fm(<)p Fh(Key)p Fm(>)p Fh(s)j Fo(and)c Fh(Shift)p +Fm(<)p Fh(Key)p Fm(>)p Fh(s)k Fo(to)c(c)o(hange)g(the)h(size)g +(\(width\))g(of)f(lines,)i(arcs,)e(text)g(ob)s(jects,)g(pins,)75 +2615 y(pads)h(and)h(vias,)f(or)f(to)h(toggle)f(the)i(st)o(yle)f(of)g(p) +q(olygons)g(\(whether)g(pins)h(and)f(vias)h(automatically)f(ha)o(v)o(e) +75 2670 y(clearances\).)p eop +%%Page: 15 16 +15 15 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(15)137 149 y Fm(<)p Fh(Key)p Fm(>)p Fh(n)15 b Fo(c)o(hanges)e(the)g +(name)f(of)g(pins,)i(pads,)f(vias,)g(the)g(string)f(of)g(a)h(text)f(ob) +s(ject,)g(or)g(the)g(curren)o(tly)75 204 y(displa)o(y)o(ed)k(lab)q(el)h +(of)e(an)g(elemen)o(t.)137 276 y Fm(<)p Fh(Key)p Fm(>)p +Fh(m)24 b Fo(mo)o(v)o(es)c(the)h(line,)i(arc,)e(or)f(p)q(olygon)h +(under)h(the)e(crosshair)h(to)f(the)h(activ)o(e)f(la)o(y)o(er)h(if)g +(it)75 331 y(w)o(asn't)14 b(on)h(that)g(la)o(y)o(er)g(already)l(.)137 +403 y Fm(<)p Fh(Key)p Fm(>)p Fh(u)22 b Fo(\(undo\))c(reco)o(v)o(ers)f +(from)g(an)h(unlimited)i(n)o(um)o(b)q(er)f(of)e(op)q(erations)h(suc)o +(h)h(as)e(creating,)i(re-)75 458 y(mo)o(ving,)h(mo)o(ving,)h(cop)o +(ying,)f(selecting)h(etc.)34 b(It)19 b(w)o(orks)g(lik)o(e)i(y)o(ou'd)e +(exp)q(ect)h(ev)o(en)g(if)g(y)o(ou're)f(in)i(the)75 513 +y(midst)16 b(of)e(creating)i(something.)137 584 y Fh(Shift)p +Fm(<)p Fh(Key)p Fm(>)p Fh(r)25 b Fo(restores)19 b(the)h(last)g(undone)h +(op)q(eration)f(pro)o(vided)h(no)f(other)f(c)o(hanges)h(ha)o(v)o(e)g(b) +q(een)75 639 y(made)15 b(since)i(the)e(undo)g(w)o(as)g(p)q(erformed.) +137 711 y Fm(<)p Fh(Key)p Fm(>)p Fh(tab)j Fo(c)o(hanges)d(the)h(b)q +(oard)f(side)h(y)o(ou)f(are)g(viewing.)137 783 y(F)l(or)10 +b(a)h(complete)g(list)g(of)g(k)o(eystrok)o(es)e(and)i(button)f(ev)o(en) +o(ts)h(see)g(Section)g(5.3)f([T)l(ranslations],)g(page)h(43.)75 +905 y Fg(2.4.1)30 b(Lines)137 1006 y Fo(T)l(o)14 b(dra)o(w)f(new)h +(lines)i(y)o(ou)d(ha)o(v)o(e)h(to)f(b)q(e)i(in)f Fh(line-mo)n(de)p +Fo(.)19 b(Get)14 b(there)g(either)g(b)o(y)g(selecting)i(it)e(from)f +(the)75 1060 y Fh(T)m(o)n(ol)i(p)n(alette)k Fo(or)c(b)o(y)h(pressing)g +Fm(<)p Fh(Key)p Fm(>)p Fh(F2)p Fo(.)k(Eac)o(h)c(successiv)o(e)g +Fh(notify)k Fo(ev)o(en)o(t)15 b(creates)g(a)g(new)h(line.)23 +b(The)75 1115 y(adjustmen)o(t)14 b(to)f(45)h(degree)h(lines)g(is)g +(done)g(automatically)f(if)h(it)g(is)f(selected)i(from)d(the)i +Fh(Display)j Fo(men)o(u.)75 1170 y(Y)l(ou)13 b(can)g(toggle)g(the)g(45) +g(degree)g(mo)q(de)g(setting)h(b)o(y)f(pressing)g(the)g +Fm(<)p Fh(Key)p Fm(>)p Fh(.)20 b Fo(\(That)12 b(is)h(the)g(p)q(erio)q +(d)i(k)o(ey\).)75 1225 y(When)g(45)f(degree)g(enforcemen)o(t)h(is)g +(turned)g(on)f(there)h(are)f(three)g(distinct)i(mo)q(des)e(of)h(line)h +(creation:)j(a)75 1280 y(single)14 b(line)f(on)g(the)f(closest)h(45)e +(degree)i(v)o(ector)e(to)o(w)o(ards)g(the)h(crosshair)h(\(but)f(not)f +(necessarily)j(actually)75 1334 y(ending)20 b(at)e(the)g(crosshair\),)h +(t)o(w)o(o)e(lines)k(created)d(suc)o(h)h(that)f(the)h(\014rst)f(lea)o +(v)o(es)h(the)f(start)g(p)q(oin)o(t)h(on)f(a)75 1389 +y(90)d(degree)i(v)o(ector)e(and)h(the)h(second)f(arriv)o(es)g(at)f(the) +i(crosshair)f(on)g(a)f(45)h(degree)g(v)o(ector,)f(and)i(\014nally)75 +1444 y(t)o(w)o(o)g(lines)j(created)e(suc)o(h)g(that)g(the)g(\014rst)g +(lea)o(v)o(es)g(the)g(start)f(p)q(oin)o(t)i(on)f(a)g(45)g(degree)g(v)o +(ector)g(and)g(the)75 1499 y(second)d(arriv)o(es)e(at)h(the)g +(crosshair)g(on)g(a)g(90)f(degree)i(v)o(ector.)k(These)14 +b(last)g(t)o(w)o(o)f(mo)q(des)h(alw)o(a)o(ys)f(connect)75 +1554 y(all)j(the)g(w)o(a)o(y)e(from)h(the)g(start)f(and)i(end)g(p)q +(oin)o(ts,)f(and)h(all)g(lines)h(ha)o(v)o(e)e(angles)h(in)g(45)f +(degree)h(m)o(ultiples.)75 1608 y(The)f Fm(<)p Fh(Key)p +Fm(>)p Fh(/)22 b Fo(cycles)16 b(through)f(the)g(three)g(mo)q(des.)20 +b(The)15 b(status)f(line)i(sho)o(ws)f(a)f(text)h(icon)g(to)f(indicate) +75 1663 y(whic)o(h)j(of)e(the)h(mo)q(des)g(is)h(activ)o(e)f(and)g(the)g +(lines)h(follo)o(wing)g(the)f(crosshair)g(motion)f(sho)o(w)h(the)g +(outline)75 1718 y(of)f(the)g(line\(s\))h(that)f(will)i(actually)f(b)q +(e)f(created.)20 b(Press)15 b Fm(<)p Fh(Key)p Fm(>)p +Fh(Esc)n(ap)n(e)j Fo(to)c(lea)o(v)o(e)h(line-mo)q(de.)137 +1790 y Fm(<)p Fh(Key)p Fm(>)p Fh(l)p Fo(,)h Fh(Shift)p +Fm(<)p Fh(Key)p Fm(>)p Fh(l)21 b Fo(and)c(the)g(en)o(tries)g(in)g(the)g +Fh(Sizes)i Fo(men)o(u)e(c)o(hange)g(the)g(initial)i(width)e(of)g(new)75 +1845 y(lines.)k(This)16 b(width)g(is)g(also)f(displa)o(y)o(ed)h(in)g +(the)g(status)e(line.)75 1966 y Fg(2.4.2)30 b(Arcs)137 +2067 y Fo(An)15 b(Arc)f(is)h(dra)o(wn)f(with)h(the)g +Fh(ar)n(c-to)n(ol)p Fo(.)k(Get)14 b(there)h(either)g(b)o(y)f(selecting) +i(it)f(from)e(the)i Fh(T)m(o)n(ol)f(p)n(alette)75 2122 +y Fo(or)19 b(b)o(y)h(pressing)g Fm(<)p Fh(Key)p Fm(>)p +Fh(F8)p Fo(.)33 b(Press)20 b Fh(Btn1)26 b Fo(to)19 b(de\014ne)i(the)f +(starting)f(p)q(oin)o(t)h(for)f(the)h(arc.)33 b(Drag)19 +b(the)75 2177 y(mouse)13 b(to)o(w)o(ards)e(the)i(desired)h(end)f(p)q +(oin)o(t)g(along)g(the)g(path)g(y)o(ou)f(w)o(an)o(t)g(the)h(arc)f(to)g +(follo)o(w.)20 b(The)13 b(outline)75 2232 y(of)18 b(the)h(arc)f(that)g +(will)i(b)q(e)f(created)g(is)g(sho)o(wn)f(on)g(the)h(screen)g(as)f(y)o +(ou)h(mo)o(v)o(e)e(the)i(mouse.)30 b(Arcs)18 b(are)75 +2286 y(alw)o(a)o(ys)g(forced)h(to)f(b)q(e)h(90)f(degrees)h(and)g(ha)o +(v)o(e)g(symmetrical)g(length)g(and)g(width)h(\()e(i.e.)31 +b(they)19 b(are)f(a)75 2341 y(quarter)11 b(circle\).)20 +b(The)12 b(next)g Fh(Btn1)18 b Fo(clic)o(k)13 b(creates)e(the)h(arc.)19 +b(It)11 b(will)j(ha)o(v)o(e)d(the)h(same)g(width)g(as)f(new)h(lines)75 +2396 y(\(displa)o(y)o(ed)19 b(in)f(the)g(status)f(line\))i(and)f(app)q +(ear)g(on)g(the)f(activ)o(e)h(la)o(y)o(er.)28 b(The)17 +b(arc)h(lea)o(v)o(es)g(the)g(starting)75 2451 y(p)q(oin)o(t)j(to)o(w)o +(ards)f(the)h(crosshair)g(along)g(the)g(axis)g(whose)f(distance)i(from) +e(the)h(crosshair)g(is)h(largest.)75 2506 y(Normally)16 +b(this)g(means)f(that)f(if)i(y)o(ou)f(drag)g(along)g(the)h(path)f(y)o +(ou)g(w)o(an)o(t)f(the)i(arc)f(to)f(follo)o(w,)i(y)o(ou'll)f(get)75 +2560 y(what)j(y)o(ou)g(w)o(an)o(t.)28 b(If)19 b(the)f(grid)h(is)g(set)f +(to)f(the)i(arc)f(radius,)h(then)g(the)f(t)o(w)o(o)f(distances)i(will)h +(b)q(e)f(equal)75 2615 y(and)c(y)o(ou)f(w)o(on't)f(b)q(e)i(able)g(to)f +(get)g(all)h(of)f(the)h(p)q(ossible)h(directions.)21 +b(If)14 b(this)h(is)g(th)o(w)o(arting)f(y)o(our)f(desires,)75 +2670 y(reduce)j(the)f(grid)h(spacing)g(\()p Fh(!Shift)p +Fm(<)p Fh(Key)p Fm(>)p Fh(G)t Fo(\))e(and)h(try)g(again.)p +eop +%%Page: 16 17 +16 16 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(16)75 149 y Fg(2.4.3)30 b(P)n(olygons)20 b(and)h(Rectangles)137 +246 y Fo(A)12 b(p)q(olygon)g(is)g(dra)o(wn)f(b)o(y)h(de\014ning)h(all)f +(of)f(its)h(segmen)o(ts)f(as)g(a)h(series)g(of)f(consecutiv)o(e)i(line) +g(segmen)o(ts.)75 300 y(If)j(the)h(\014rst)f(p)q(oin)o(t)g(matc)o(hes)g +(a)g(new)g(one)h(and)f(if)h(the)f(n)o(um)o(b)q(er)g(of)g(p)q(oin)o(ts)h +(is)g(greater)e(than)h(t)o(w)o(o,)f(then)75 355 y(the)k(p)q(olygon)h +(is)f(closed.)33 b(Since)20 b(matc)o(hing)f(up)h(with)f(the)g(\014rst)g +(p)q(oin)o(t)h(ma)o(y)e(b)q(e)i(di\016cult,)h(y)o(ou)e(ma)o(y)75 +410 y(use)c Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(p)h +Fo(to)e(close)h(the)f(p)q(olygon.)20 b(The)14 b Fh(Shift)p +Fm(<)p Fh(Key)p Fm(>)p Fh(p)j Fo(w)o(on't)c(w)o(ork)g(if)i(clipping)h +(to)e(45)g(degree)75 465 y(lines)20 b(is)f(selected)g(and)g(the)f +(\014nal)h(segmen)o(t)f(cannot)g(matc)o(h)g(this)g(condition.)31 +b(I)19 b(suggest)e(y)o(ou)h(create)75 520 y(simple)23 +b(con)o(v)o(ex)e(p)q(olygons)g(in)h(order)f(to)g(a)o(v)o(oid)g(a)f +(strong)h(negativ)o(e)g(impact)g(on)h(the)f(p)q(erformance)75 +574 y(of)d(the)g(connection)h(scanning)h(routines.)29 +b(The)19 b Fh(r)n(e)n(ctangle-mo)n(de)h Fo(is)f(just)f(an)g(easy)g(w)o +(a)o(y)g(to)f(generate)75 629 y(rectangular)g(p)q(olygons.)27 +b Fh(Polygon-mo)n(de)21 b Fo(also)c(is)h(selected)h(b)o(y)e +Fm(<)p Fh(Key)p Fm(>)p Fh(F6)24 b Fo(whereas)17 b Fh(r)n(e)n +(ctangle-mo)n(de)75 684 y Fo(uses)d Fm(<)p Fh(Key)p Fm(>)p +Fh(F4)p Fo(.)19 b(Pressing)14 b(a)f Fm(<)p Fh(Btn1Down)p +Fm(>)g Fo(at)g(t)o(w)o(o)f(lo)q(cations)i(creates)g(a)f(rectangle)h(b)o +(y)f(de\014ning)i(t)o(w)o(o)75 739 y(of)h(its)h(corners.)23 +b Fm(<)p Fh(Key)p Fm(>)p Fh(Insert)c Fo(brings)e(y)o(ou)f(to)g +Fh(insert-p)n(oint-mo)n(de)k Fo(whic)o(h)d(lets)g(y)o(ou)f(add)h +(additional)75 793 y(p)q(oin)o(ts)11 b(to)f(an)h(already)g(existing)g +(p)q(olygon.)19 b(Single)13 b(p)q(oin)o(ts)e(ma)o(y)f(b)q(e)h(remo)o(v) +o(ed)f(b)o(y)h(mo)o(ving)f(the)h(crosshair)75 848 y(to)k(them)h(and)g +(selecting)h(one)f(of)f(the)h(delete)h(actions)f Fh(\(r)n(emove-mo)n +(de,)h(BackSp)n(ac)n(e,)f(or)h(Delete)p Fo(.)k(This)75 +903 y(only)16 b(w)o(orks)d(if)j(the)f(remaining)h(p)q(olygon)f(will)i +(still)f(ha)o(v)o(e)f(three)g(or)f(more)h(corners.)20 +b(Pressing)15 b Fm(<)p Fh(Key)p Fm(>)p Fh(u)75 958 y +Fo(or)e Fm(<)p Fh(Key)p Fm(>)p Fh(p)k Fo(while)e(en)o(tering)g(a)e(new) +h(p)q(olygon)h(brings)f(y)o(ou)g(bac)o(k)f(to)g(the)h(previous)h +(corner.)k(Remo)o(ving)75 1013 y(a)g(p)q(oin)o(t)h(do)q(es)g(not)g +(force)f(clipping)j(to)d(45)g(degree)h(angles)g(\(b)q(ecause)g(it's)g +(not)f(generally)i(p)q(ossible\).)75 1067 y(Newly)d(created)e(p)q +(olygons)i(will)g(not)f(connect)g(to)f(pins)i(or)f(vias)g(that)f +(pierce)i(it)f(unless)h(y)o(ou)f(create)f(a)75 1122 y(thermal)i +(\(using)g(the)g(thermal)f(mo)q(de\))h(to)f(mak)o(e)g(the)h +(connection.)28 b(If)18 b(the)g(edge)g(of)f(a)g(p)q(olygon)h(gets)75 +1177 y(to)q(o)c(close)i(to)e(a)h(pin)h(or)e(via)i(that)e(lies)i +(outside)g(of)e(it,)h(a)g(w)o(arning)g(will)i(b)q(e)e(issued)h(and)g +(the)f(pin)h(will)g(b)q(e)75 1232 y(giv)o(en)g(a)f(sp)q(ecial)i(color.) +i(Increasing)e(the)e(distance)h(b)q(et)o(w)o(een)g(them)f(will)i(remo)o +(v)o(e)d(the)h(w)o(arning)g(color.)75 1343 y Fg(2.4.4)30 +b(T)-5 b(ext)137 1439 y Fo(Pressing)12 b Fm(<)p Fh(Key)p +Fm(>)p Fh(F5)17 b Fo(or)11 b(clic)o(king)i(one)f(of)f(the)g(text)g +(selector)h(buttons)f(c)o(hanges)g(to)g Fh(text-mo)n(de)p +Fo(.)19 b(Eac)o(h)75 1494 y(successiv)o(e)c(notify)f(ev)o(en)o(t)g(\()p +Fm(<)p Fh(Btn1Down)p Fm(>)p Fo(\))f(p)q(ops)h(up)h(the)f(input)h(line)g +(at)e(the)h(b)q(ottom)g(and)g(queries)h(for)75 1549 y(a)i(string.)27 +b(En)o(ter)16 b(it)i(and)g(press)f Fm(<)p Fh(Key)p Fm(>)p +Fh(R)n(eturn)k Fo(to)16 b(con\014rm)i(or)f Fm(<)p Fh(Key)p +Fm(>)p Fh(Esc)n(ap)n(e)i Fo(to)e(ab)q(ort.)26 b(The)17 +b(text)75 1604 y(ob)s(ject)j(is)i(created)f(with)g(its)g(upp)q(er)h +(left)g(corner)f(at)f(the)h(curren)o(t)g(p)q(oin)o(ter)h(lo)q(cation.) +38 b(The)21 b(initial)75 1659 y(scaling)16 b(is)g(c)o(hanged)f(b)o(y)h +Fm(<)p Fh(Key)p Fm(>)p Fh(t)j Fo(and)c Fh(Shift)p Fm(<)p +Fh(Key)p Fm(>)p Fh(t)k Fo(or)c(from)f(the)i Fh(Sizes)h +Fo(men)o(u.)137 1726 y(No)o(w)h(switc)o(h)h(to)f Fh(r)n(otate-mo)n(de) +24 b Fo(and)18 b(press)h Fm(<)p Fh(Btn1Down)p Fm(>)g +Fo(at)f(the)h(text-ob)s(jects)f(lo)q(cation.)31 b(T)l(ext)75 +1780 y(ob)s(jects)13 b(on)h(the)h(solder)f(side)h(of)f(the)g(la)o(y)o +(out)f(are)h(automatically)g(mirrored)h(and)f(\015ipp)q(ed)i(so)e(that) +f(they)75 1835 y(are)i(seen)h(correctly)f(when)h(viewing)g(the)f +(solder-side.)137 1902 y(Use)h Fm(<)p Fh(Key)p Fm(>)p +Fh(n)h Fo(to)e(edit)h(the)f(string.)137 1969 y Fi(TEXT)10 +b(OBJECTS)h(ON)f(COPPER)h(LA)l(YERS)g(CREA)l(TE)f(COPPER)g(LINES)h(BUT) +g(THEY)f(ARE)75 2024 y(NOT)j(SCANNED)g(F)o(OR)f(CONNECTIONS)p +Fo(.)f(If)j(they)g(are)f(mo)o(v)o(ed)g(to)g(the)h(silkscreen)h(la)o(y)o +(er,)e(they)h(no)75 2079 y(longer)h(create)g(copp)q(er.)75 +2190 y Fg(2.4.5)30 b(Vias)137 2286 y Fo(The)15 b(initial)h(size)g(of)e +(new)h(vias)f(ma)o(y)g(b)q(e)h(c)o(hanged)g(b)o(y)f Fm(<)p +Fh(Key)p Fm(>)p Fh(v)19 b Fo(and)c Fh(Shift)p Fm(<)p +Fh(Key)p Fm(>)p Fh(v)j Fo(or)c(b)o(y)h(selecting)75 2341 +y(the)j(appropriate)h(en)o(try)f(from)f(the)i Fh(Sizes)h +Fo(men)o(u.)30 b Fh(Mo)n(d1)p Fm(<)p Fh(Key)p Fm(>)p +Fh(v)22 b Fo(and)d Fh(Mo)n(d1)g(Shift)p Fm(<)p Fh(Key)p +Fm(>)p Fh(v)k Fo(do)18 b(the)75 2396 y(same)11 b(for)f(the)i(drilling)h +(hole)f(of)f(the)g(via.)19 b(The)12 b(statusline)g(is)f(up)q(dated)h +(with)g(the)f(new)g(v)m(alues.)20 b(Creating)75 2451 +y(a)14 b(via)g(is)g(similar)h(to)f(the)g(other)f(ob)s(jects.)19 +b(Switc)o(h)c(to)e Fh(via-mo)n(de)18 b Fo(b)o(y)c(using)g(either)h(the) +f(selector)g(button)75 2506 y(or)i Fm(<)p Fh(Key)p Fm(>)p +Fh(F1)23 b Fo(then)17 b(press)g Fm(<)p Fh(Key)p Fm(>)p +Fh(])22 b Fo(or)16 b Fm(<)p Fh(Btn1Down)p Fm(>)h Fo(to)f(create)h(one.) +25 b Fm(<)p Fh(Key)p Fm(>)p Fh(n)20 b Fo(c)o(hanges)d(the)g(name)75 +2560 y(of)g(a)g(via.)27 b(If)18 b(y)o(ou)f(w)o(an)o(t)f(to)h(create)g +(a)g(moun)o(ting)g(hole)i(for)d(y)o(our)h(b)q(oard,)h(then)g(y)o(ou)f +(can)g(place)i(a)e(via)75 2615 y(where)f(y)o(ou)f(w)o(an)o(t)f(the)h +(hole)h(to)f(b)q(e)h(then)g(con)o(v)o(ert)e(the)i(via)f(in)o(to)g(a)g +(hole.)21 b(The)16 b(con)o(v)o(ersion)f(is)h(done)g(b)o(y)75 +2670 y(pressing)i Fh(!Ctrl)p Fm(<)p Fh(Key)p Fm(>)p Fh(h)h +Fo(with)f(the)f(crosshair)g(o)o(v)o(er)f(the)h(via.)25 +b(Conceptually)19 b(it)e(is)g(still)i(a)d(via,)i(but)f(it)p +eop +%%Page: 17 18 +17 17 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(17)75 149 y(has)14 b(no)g(copp)q(er)h(ann)o(ulus.)21 +b(If)15 b(y)o(ou)e(create)i(suc)o(h)f(a)g(hole)h(in)g(the)g(middle)h +(of)e(t)o(w)o(o)f(p)q(olygons)h(on)h(di\013eren)o(t)75 +204 y(la)o(y)o(ers,)j(it)g(will)i(short)d(the)h(la)o(y)o(ers.)28 +b(Theoretically)20 b(y)o(ou)d(could)i(arrange)e(for)h(suc)o(h)g(a)g +(hole)g(not)g(to)f(b)q(e)75 259 y(plated,)g(but)g(a)f(metal)g(screw)h +(inserted)g(in)g(the)g(hole)g(w)o(ould)g(still)h(risk)e(shorting)h(the) +f(la)o(y)o(ers.)24 b(A)16 b(go)q(o)q(d)75 314 y(rule)e(is)f(to)f +(realize)i(that)e(holes)h(in)h(the)f(b)q(oard)g(really)g(are)g(vias)g +(b)q(et)o(w)o(een)g(the)g(la)o(y)o(ers)f(and)h(so)f(place)i(them)75 +369 y(where)k(they)g(w)o(on't)f(in)o(terfere)h(with)g(connectivit)o(y)l +(.)29 b(Y)l(ou)18 b(can)g(con)o(v)o(ert)f(a)g(hole)i(bac)o(k)f(in)o(to) +f(a)h(normal)75 423 y(via)d(with)h(the)f(same)g(k)o(eystrok)o(e)f(used) +i(to)f(con)o(v)o(ery)f(it)i(in)g(the)f(\014rst)g(place.)75 +530 y Fg(2.4.6)30 b(Elemen)n(ts)137 624 y Fo(Some)17 +b(of)g(the)g(functions)h(related)g(to)e(elemen)o(ts)i(only)g(w)o(ork)e +(if)h(b)q(oth)g(the)h(pac)o(k)m(age)f(la)o(y)o(er)g(and)g(the)75 +679 y(pin)f(la)o(y)o(er)f(are)g(switc)o(hed)h(on.)137 +744 y(No)o(w)h(that)f(y)o(ou're)h(familiar)h(with)f(man)o(y)g(of)g(the) +g(basic)h(commands,)f(it)g(is)h(time)f(to)g(put)g(the)g(\014rst)75 +799 y(elemen)o(t)g(on)f(the)g(la)o(y)o(out.)22 b(First)16 +b(of)g(all,)g(y)o(ou)g(ha)o(v)o(e)g(to)f(load)i(data)e(in)o(to)h(the)g +(paste)g(bu\013er.)23 b(There)16 b(are)75 854 y(four)f(w)o(a)o(ys)f(to) +g(do)i(this:)267 917 y Fm(1\))23 b(load)g(the)h(data)f(from)h(a)f +(library)267 968 y(2\))g(load)g(the)h(data)f(from)h(a)f(file)267 +1020 y(3\))g(copy)g(data)h(from)f(an)h(already)f(existing)f(element)267 +1072 y(4\))h(convert)g(objects)g(in)h(the)f(buffer)g(into)g(an)h +(element)137 1138 y Fo(W)l(e)c(don't)g(ha)o(v)o(e)g(an)o(y)g(elemen)o +(ts)g(on)g(the)h(screen)f(y)o(et)g(nor)g(an)o(ything)g(in)h(the)f +(bu\013er,)h(so)f(w)o(e)g(use)75 1192 y(n)o(um)o(b)q(er)c(one.)137 +1258 y(Select)i Fh(lsi)j Fo(from)16 b(the)h(men)o(u)g(in)h(the)f +(library)g(windo)o(w)g(press)g Fm(<)p Fh(Btn1Down)p Fm(>)g +Fo(t)o(wice)g(at)f(the)h(appro-)75 1313 y(priate)i(text-line)i(to)d +(get)h(the)g(MC68030)e(CPU.)h(The)i(data)e(is)h(loaded)h(and)f(the)g +(mo)q(de)h(is)f(switc)o(hed)75 1367 y(to)e Fh(p)n(astebu\013er-mo)n(de) +p Fo(.)29 b(Eac)o(h)18 b(notify)h(ev)o(en)o(t)e(no)o(w)h(creates)g(one) +g(of)g(these)g(b)q(easts.)28 b(Lea)o(v)o(e)18 b(the)h(mo)q(de)75 +1422 y(b)o(y)f(selecting)i(a)e(di\013eren)o(t)h(one)f(or)g(b)o(y)g +Fm(<)p Fh(Key)p Fm(>)p Fh(Esc)n(ap)n(e)j Fo(whic)o(h)e(resets)f(all)h +(mo)q(des..)30 b(The)18 b(crosshair)g(is)75 1477 y(lo)q(cated)h(at)f +(the)h Fh(mark)24 b Fo(p)q(osition)19 b(as)g(de\014ned)h(b)o(y)e(the)h +(data)f(\014le.)31 b(Rotating)17 b(the)i(bu\013er)g(con)o(ten)o(ts)e +(is)75 1532 y(done)h(b)o(y)g(selecting)h(the)f Fh(r)n(otate)k +Fo(en)o(try)17 b(of)g(the)h Fh(Bu\013er)23 b Fo(men)o(u)18 +b(or)g(b)o(y)f(pressing)i Fh(Shift)p Fm(<)p Fh(Key)p +Fm(>)p Fh(F3)p Fo(.)27 b(The)75 1587 y(con)o(ten)o(ts)11 +b(of)h(the)g(bu\013er)g(are)g(v)m(alid)i(un)o(til)f(new)f(data)g(is)g +(loaded)h(in)o(to)f(it)g(either)h(b)o(y)f(a)g(cut-to-bu\013er)g(op)q +(er-)75 1641 y(ation,)i(cop)o(y-to-bu\013er)h(op)q(eration)g(or)f(b)o +(y)h(loading)h(a)e(new)h(data)f(\014le.)21 b(There)15 +b(are)f(5)h(bu\013ers)g(a)o(v)m(ailable.)75 1696 y(Switc)o(hing)j(b)q +(et)o(w)o(een)f(them)g(is)g(done)g(b)o(y)g(selecting)h(a)f(men)o(u)g +(en)o(try)f(or)h(b)o(y)f Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p +Fh(1..5)p Fo(.)25 b(Eac)o(h)16 b(of)75 1751 y(the)f(t)o(w)o(o)f(b)q +(oard)h(sides)h(has)f(its)h(o)o(wn)f(bu\013ers.)137 1816 +y(The)g(release)f(includes)j(all)e(data)e(\014les)i(for)f(the)g +(circuits)h(that)f(are)g(used)g(b)o(y)g(the)h(demo)f(la)o(y)o(out.)19 +b(The)75 1871 y(elemen)o(ts)e(in)f(the)g(LED)g(example)h(are)e(not)h +(found)g(in)h(the)f(library)l(,)h(but)f(y)o(ou)f(can)h(lift)h(them)f +(from)f(the)75 1926 y(example)g(itself)g(if)g(y)o(ou)f(w)o(an)o(t.)k +(If)d(y)o(ou)f(ha)o(v)o(e)f(problems)i(with)g(the)f(color)g(of)g(the)h +(crosshair,)f(c)o(hange)g(the)75 1981 y(resource)h Fh(cr)n +(osshairColor)20 b Fo(setting)15 b(to)g(a)f(di\013eren)o(t)i(one.)137 +2046 y(No)o(w)i(load)i(a)e(second)h(circuit,)i(the)e(MC68882)e(FPU)h +(for)g(example.)32 b(Create)18 b(the)h(circuit)h(as)f(ex-)75 +2101 y(plained)g(ab)q(o)o(v)o(e.)25 b(Y)l(ou)17 b(no)o(w)g(ha)o(v)o(e)f +(t)o(w)o(o)g(di\013eren)o(t)h(unnamed)h(elemen)o(ts.)26 +b(Unnamed)18 b(means)f(that)f(the)75 2156 y(la)o(y)o(out-name)k(of)g +(the)h(elemen)o(t)g(hasn't)f(b)q(een)h(set)g(y)o(et.)35 +b(Selecting)22 b Fh(description)i Fo(from)19 b(the)i +Fh(Display)75 2210 y Fo(men)o(u)15 b(displa)o(ys)h(the)f(description)h +(string)f(of)f(the)h(t)o(w)o(o)f(circuits)i(whic)o(h)g(are)e(CPU)h(and) +g(FPU.)f(The)h(v)m(al-)75 2265 y(ues)f(of)e(the)i(circuits)g(are)f(set) +g(to)g(MC68030)e(and)j(MC68882.)j(Eac)o(h)c(of)g(the)g(names)h(of)e(an) +i(elemen)o(t)g(ma)o(y)75 2320 y(b)q(e)19 b(c)o(hanged)f(b)o(y)h +Fm(<)p Fh(Key)p Fm(>)p Fh(n)h Fo(at)e(the)g(elemen)o(ts)h(lo)q(cation)g +(and)g(editing)g(the)f(old)h(name)f(in)h(the)g(b)q(ottom)75 +2375 y(input)d(line.)21 b(Naming)15 b(pins)g(and)g(vias)g(is)g(similar) +g(to)f(elemen)o(ts.)21 b(Y)l(ou)14 b(can)h(hide)h(the)f(elemen)o(t)g +(name)f(so)75 2430 y(that)j(it)h(w)o(on't)e(app)q(ear)i(on)f(the)h(b)q +(oard)f(silkscreen)i(b)o(y)f(pressing)g Fm(<)p Fh(key)p +Fm(>)p Fh(h)j Fo(with)c(the)h(cursor)f(o)o(v)o(er)g(the)75 +2484 y(elemen)o(t.)k(Doing)15 b(so)g(again)g(un-hides)i(the)e(elemen)o +(t)h(name.)137 2550 y(En)o(tering)g Ff(:le)e Fo(and)i(selecting)g(an)f +(elemen)o(t)h(data)f(\014le)h(is)g(the)f(second)h(w)o(a)o(y)e(to)h +(load)g(circuits.)137 2615 y(The)23 b(third)f(w)o(a)o(y)f(to)h(create)g +(a)g(new)g(elemen)o(t)h(is)f(to)g(cop)o(y)g(an)g(existing)h(one.)41 +b(Please)23 b(refer)f(to)75 2670 y(Section)16 b(2.5)e([Mo)o(ving)h(and) +g(Cop)o(ying],)g(page)g(19.)p eop +%%Page: 18 19 +18 18 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(18)137 149 y(The)14 b(fourth)e(w)o(a)o(y)g(to)g(create)h(a)g(new)g +(elemen)o(t)h(is)f(to)g(con)o(v)o(ert)f(a)h(bu\013er's)f(con)o(ten)o +(ts)h(in)o(to)g(an)g(elemen)o(t.)75 204 y(Here's)19 b(ho)o(w)f(it's)h +(done:)27 b(Select)20 b(the)f(Via-to)q(ol)g(from)f(the)h +Fh(T)m(o)n(ol)g(p)n(al)r(lette)p Fo(.)30 b(Set)19 b(the)g(grid)g +(spacing)h(to)75 259 y(something)d(appropriate)g(for)f(the)h(elemen)o +(t)h(pin)g(spacing.)26 b(No)o(w)16 b(create)h(a)f(series)i(of)f(vias)g +(where)g(the)75 314 y(pins)j(go.)31 b(Create)19 b(them)g(in)g(pin)i(n)o +(um)o(b)q(er)e(order.)31 b(It)20 b(is)f(often)g(handy)g(to)g(place)h(a) +f(reference)g(p)q(oin)o(t)75 369 y(\()p Fh(!Ctrl)p Fm(<)p +Fh(Key)p Fm(>)p Fh(m)s Fo(\))d(in)i(the)g(cen)o(ter)f(of)g(the)g +(\014rst)g(pin)h(in)g(order)f(to)g(measure)g(the)g(lo)q(cation)h(of)f +(the)g(other)75 423 y(pins.)j(Next)12 b(mak)o(e)g(a)g(solder-side)i(la) +o(y)o(er)e(the)g(activ)o(e)h(la)o(y)o(er)f(from)f(the)i +Fh(active-layer)k Fo(p)q(opup)c(men)o(u.)20 b(No)o(w)75 +478 y(dra)o(w)15 b(the)i(outline)g(of)f(the)g(elemen)o(t)h(using)f +(lines)i(and)e(arcs.)23 b(When)16 b(y)o(ou're)f(done,)i(select)g(ev)o +(erything)75 533 y(that)12 b(mak)o(es)g(up)i(the)e(elemen)o(t)i(with)f +(a)g(b)q(o)o(x)f(selection)i(\()p Fm(<)p Fh(Btn3Down)p +Fm(>)g Fh(dr)n(ag,)h Fm(<)p Fh(Btn3Up)p Fm(>)p Fo(\).)j(No)o(w)12 +b(select)75 588 y Fm(")p Fo(cut)i(selection)h(to)e(bu\013er)p +Fm(")h Fo(from)f(the)h Fh(Bu\013er)19 b Fo(men)o(u.)g(P)o(osition)14 +b(the)g(cursor)f(o)o(v)o(er)g(the)h(cen)o(ter)g(of)f(pin)i(1)75 +643 y(and)h(press)f(the)g(left)h(button)f(to)g(load)h(the)f(data)g(in)o +(to)g(the)g(bu\013er.)21 b(Finally)c(select)f Fm(")p +Fo(con)o(v)o(ert)e(bu\013er)i(to)75 697 y(elemen)o(t)p +Fm(")e Fo(from)f(the)h Fh(Bu\013er)19 b Fo(men)o(u.)h(Y)l(ou'll)15 +b(only)f(w)o(an)o(t)f(to)g(create)g(elemen)o(ts)i(this)f(w)o(a)o(y)f +(if)h(they)g(aren't)75 752 y(already)j(in)g(the)g(library)l(.)25 +b(It's)16 b(also)g(probably)h(a)g(go)q(o)q(d)f(idea)h(to)f(do)h(this)g +(b)q(efore)g(starting)f(an)o(y)g(of)g(the)75 807 y(other)f(asp)q(ects)g +(of)g(a)g(la)o(y)o(out,)f(but)h(it)h(isn't)f(necessary)l(.)137 +876 y(T)l(o)e(displa)o(y)h(the)f(pinout)h(of)e(a)h(circuit)h(mo)o(v)o +(e)f(to)f(it)h(and)g(press)h Fh(Shift)p Fm(<)p Fh(Key)p +Fm(>)p Fh(d)j Fo(or)12 b(select)i Fh(show)h(pinout)75 +931 y Fo(from)i(the)h Fh(Obje)n(cts)i Fo(men)o(u.)27 +b(A)18 b(new)g(windo)o(w)g(p)q(ops)g(up)g(and)g(displa)o(ys)g(the)g +(complete)g(pinout)h(of)e(the)75 986 y(elemen)o(t.)j(This)15 +b(displa)o(y)g(can)f(b)q(e)h(di\016cult)g(to)f(read)g(if)g(the)g(comp)q +(onen)o(t)g(has)g(b)q(een)h(rotated)e(90)h(degrees)75 +1041 y(:-\()h(therefore,)f(the)i(new)f(windo)o(w)g(will)i(sho)o(w)e(an) +g(un-rotated)g(view)h(so)f(the)g(pin)h(names)g(are)f(readable.)75 +1096 y Fm(<)p Fh(Key)p Fm(>)p Fh(d)21 b Fo(displa)o(ys)c(the)f(name)g +(of)g(one)g(or)g(all)h(pins/pads)g(inside)h(the)e(dra)o(wing)g(area,)g +(this)g(is)h(only)g(for)75 1150 y(displa)o(y)f(on-screen,)g(it)f(has)g +(no)g(e\013ect)g(on)h(an)o(y)e(prin)o(ting)i(of)f(the)h(la)o(y)o(out.) +137 1220 y(Y)l(ou)d(also)g(ma)o(y)f(w)o(an)o(t)f(to)h(c)o(hange)h(a)f +(pin's)h(or)f(pad's)h(curren)o(t)f(size)i(b)o(y)e(pressing)i +Fm(<)p Fh(Key)p Fm(>)p Fh(s)h Fo(to)d(increase)75 1275 +y(or)j Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(s)j Fo(to)c(decrease)i(it.) +k(While)d(this)f(is)f(p)q(ossible,)i(it)f(is)f(not)g(recommended)h +(since)h(care)e(w)o(as)75 1330 y(probably)i(tak)o(en)f(to)f(de\014ne)i +(the)g(elemen)o(t)g(structure)f(in)h(the)f(\014rst)g(place.)24 +b(Y)l(ou)16 b(can)g(also)h(c)o(hange)f(the)75 1384 y(thic)o(kness)h(of) +g(the)f(elemen)o(t's)h(silkscreen)i(outline)f(with)e(the)h(same)g(k)o +(eys.)23 b(Y)l(ou)17 b(can)g(c)o(hange)g(whether)75 1439 +y(a)f(pin)i(or)e(SMD)h(pad)g(is)g(rounded)g(or)g(square)f(with)h(the)g +Fm(<)p Fh(Key)p Fm(>)p Fh(q)p Fo(.)24 b(SMD)17 b(pads)g(should)g +(usually)h(ha)o(v)o(e)75 1494 y(squared)d(ends.)20 b(Finally)l(,)c(y)o +(ou)e(can)h(c)o(hange)g(whether)g(the)f(non-square)h(pins)h(are)e +(round)h(or)f(o)q(ctagonal)75 1549 y(with)i(the)f Fh(!Ctrl)p +Fm(<)p Fh(Key)p Fm(>)p Fh(o)p Fo(.)137 1618 y(SMD)j(elemen)o(ts)h(and)g +(silkscreen)g(ob)s(jects)f(are)g(dra)o(wn)g(in)h(the)f +Fm(")p Fo(in)o(visible)j(ob)s(ject)p Fm(")d Fo(color)g(if)h(they)75 +1673 y(are)c(lo)q(cated)h(on)f(the)g(opp)q(osite)h(side)g(of)f(the)g(b) +q(oard.)137 1743 y(F)l(or)f(information)g(on)h(elemen)o(t)g +(connections)g(refer)f(to)g(Section)h(2.8)e([Connection)i(Lists],)f +(page)g(21.)75 1859 y Fg(2.4.7)30 b(P)n(astebu\013er)137 +1958 y Fo(The)11 b(linestac)o(k)g(and)f(elemen)o(t-bu\013er)h(of)f +(former)g(releases)h(ha)o(v)o(e)e(b)q(een)j(replaced)f(b)o(y)f(5)g(m)o +(ulti-purp)q(ose)75 2012 y(bu\013ers)j(that)g(are)g(selected)i(b)o(y)e +Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(1..5)p Fo(.)19 b(The)14 +b(status)e(line)j(sho)o(ws)e(whic)o(h)h(bu\013er)f(is)h(the)g(activ)o +(e)75 2067 y(one.)24 b(Y)l(ou)16 b(ma)o(y)g(load)h(data)e(from)h(a)g +(\014le)i(or)d(la)o(y)o(out)h(in)o(to)h(them.)23 b(Cut-and-paste)16 +b(w)o(orks)g(to)q(o.)23 b(If)16 b(y)o(ou)75 2122 y(follo)o(w)o(ed)f +(the)g(instructions)h(earlier)f(in)h(this)f(c)o(hapter)f(y)o(ou)h +(should)h(no)o(w)e(ha)o(v)o(e)g(sev)o(eral)h(ob)s(jects)f(on)h(the)75 +2177 y(screen.)k(Mo)o(v)o(e)11 b(the)h(crosshair)g(to)g(one)g(of)f +(them)h(and)g(press)g Fm(<)p Fh(Btn3Down)p Fm(>)g Fo(to)g(toggle)f(its) +h(selection)i(\015ag.)75 2232 y(\(If)g(y)o(ou)g(drag)g(the)h(mouse)f +(while)i(the)e(button)g(is)h(do)o(wn,)f(a)g(b)q(o)o(x)h(selection)g +(will)h(b)q(e)f(attempted)f(instead)75 2286 y(of)j(toggling)h(the)f +(selection.\))28 b(The)18 b(ob)s(ject)f(is)h(redra)o(wn)f(in)i(a)e +(di\013eren)o(t)h(color.)27 b(Y)l(ou)18 b(also)f(ma)o(y)g(w)o(an)o(t)75 +2341 y(to)d(try)g(mo)o(ving)g(the)h(p)q(oin)o(ter)g(while)h(holding)g +(the)e(third)h(button)f(do)o(wn)h(and)f(release)h(it)g(on)g(a)f +(di\013eren)o(t)75 2396 y(lo)q(cation.)24 b(This)17 b(selects)g(all)g +(ob)s(jects)f(inside)i(the)e(rectangle)h(and)f(unselects)i(ev)o +(erything)f(else.)24 b(If)16 b(y)o(ou)75 2451 y(w)o(an)o(t)f(to)g(add)h +(a)g(b)q(o)o(x)g(selection)h(to)e(an)h(existing)h(selection,)g(drag)f +(with)g Fh(Mo)n(d1)p Fm(<)p Fh(Btn3Down)p Fm(>)g Fo(instead.)75 +2506 y(Dragging)h Fh(Shift)i(Mo)n(d1)p Fm(<)p Fh(Btn3Down)p +Fm(>)e Fo(unselects)i(ob)s(jects)f(in)g(a)g(b)q(o)o(x.)28 +b(No)o(w)17 b(c)o(hange)h(to)f Fh(p)n(astebu\013er-)75 +2560 y(mo)n(de)k Fo(and)c(select)h(some)f(op)q(erations)g(from)g(the)g +Fh(Bu\013er)22 b Fo(men)o(u.)27 b(Cop)o(ying)17 b(ob)s(jects)f(to)h +(the)g(bu\013er)g(is)75 2615 y(a)o(v)m(ailable)e(as)f +Fh(Mo)n(d1)p Fm(<)p Fh(Key)p Fm(>)p Fh(c)i Fo(while)f(cutting)f(them)g +(uses)g Fh(Mo)n(d1)p Fm(<)p Fh(Key)p Fm(>)p Fh(x)19 b +Fo(as)13 b(shortcut.)19 b(Both)14 b(clear)g(the)75 2670 +y(bu\013er)f(b)q(efore)g(new)h(data)e(is)i(added.)20 +b(If)13 b(y)o(ou)g(use)g(the)g(men)o(u)h(en)o(tries,)f(y)o(ou)g(ha)o(v) +o(e)f(to)h(supply)h(a)f(crosshair)p eop +%%Page: 19 20 +19 19 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(19)75 149 y(p)q(osition)14 b(b)o(y)e(pressing)h(a)g(mouse)f(button.) +19 b(The)13 b(ob)s(jects)e(are)i(attac)o(hed)f(to)g(the)g +(pastebu\013er)h(relativ)o(e)g(to)75 204 y(that)i(crosshair)g(lo)q +(cation.)21 b(Elemen)o(t)16 b(data)f(or)f(PCB)i(data)e(ma)o(y)h(b)q(e)h +(merged)g(in)o(to)f(an)g(existing)i(la)o(y)o(out)75 259 +y(b)o(y)h(loading)g(the)g(data\014les)g(in)o(to)g(the)g(pastebu\013er.) +27 b(Both)18 b(op)q(erations)g(are)f(a)o(v)m(ailable)j(from)d(the)h +Fh(File)75 314 y Fo(men)o(u)d(or)g(as)g(user)g(commands.)75 +450 y Fl(2.5)33 b(Mo)n(ving)23 b(and)f(Cop)n(ying)137 +549 y Fo(All)14 b(ob)s(jects)e(can)h(b)q(e)g(mo)o(v)o(ed)f(including)j +(elemen)o(t-names,)e(b)o(y)g Fm(<)p Fh(Btn2Down)p Fm(>)p +Fo(,)f(draging)h(the)f(p)q(oin)o(ter)75 604 y(while)19 +b(holding)h(the)e(button)g(do)o(wn)f(and)h(releasing)h(it)g(at)e(the)h +(new)g(lo)q(cation)h(of)e(the)i(ob)s(ject.)27 b(If)18 +b(y)o(ou)75 658 y(use)g Fh(Mo)n(d1)p Fm(<)p Fh(Btn2Down)p +Fm(>)g Fo(instead,)h(the)f(ob)s(ject)g(is)g(copied.)30 +b(Cop)o(ying)18 b(do)q(es)g(not)g(w)o(ork)f(for)g(elemen)o(t-)75 +713 y(names)e(of)g(course.)21 b(Y)l(ou)16 b(can)g(mo)o(v)o(e)e(all)j +(selected)f(ob)s(jects)f(with)h Fh(Shift)g Fm(<)p Fh(Btn1Down)p +Fm(>)p Fo(.)21 b(This)16 b(uses)g(the)75 768 y(P)o(astebu\013er,)h(so)g +(it)h(will)h(remo)o(v)o(e)d(whatev)o(er)h(w)o(as)g(previously)i(in)f +(the)f(P)o(astebu\013er.)26 b(Please)18 b(refer)g(to)75 +823 y(Section)c(2.4.7)e([P)o(astebu\013er],)f(page)i(18.)19 +b(If)13 b(y)o(ou)g(w)o(an)o(t)f(to)h(giv)o(e)g(a)g(small)h(n)o(udge)g +(to)e(an)h(ob)s(ject,)g(but)g(y)o(ou)75 878 y(don't)k(think)i(that)e +(the)h(mouse)g(will)h(giv)o(e)f(y)o(ou)g(the)g(\014ne)g(lev)o(el)i(of)d +(con)o(trol)h(that)f(y)o(ou)g(w)o(an)o(t,)g(y)o(ou)h(can)75 +932 y(p)q(osition)f(the)g(cursor)e(o)o(v)o(er)h(the)g(ob)s(ject,)g +(press)g Fm(<)p Fh(Key)p Fm(>)p Fh([)p Fo(,)g(mo)o(v)o(e)f(it)i(with)f +(the)h(arro)o(w)d(k)o(eys,)i(then)h(press)75 987 y Fm(<)p +Fh(Key)p Fm(>)p Fh(])22 b Fo(when)d(it's)f(at)f(the)i(desired)g(p)q +(osition.)30 b(Remem)o(b)q(er)18 b(that)f(all)i(mo)o(v)o(emen)o(ts)e +(are)h(forced)g(on)o(to)75 1042 y(grid)e(co)q(ordinates,)f(so)g(y)o(ou) +f(ma)o(y)h(w)o(an)o(t)f(to)h(c)o(hange)g(the)g(grid)h(spacing)g +(\014rst.)75 1178 y Fl(2.6)33 b(Loading)23 b(and)g(Sa)n(ving)137 +1277 y Fo(After)14 b(y)o(our)g(\014rst)h(exp)q(erience)h(with)f +Fm(Pcb)f Fo(y)o(ou)g(will)j(probably)e(w)o(an)o(t)e(to)h(sa)o(v)o(e)g +(y)o(our)g(w)o(ork.)19 b Ff(:s)c(name)75 1332 y Fo(passes)i(the)h(data) +f(to)g(an)g(external)h(program)e(whic)o(h)j(is)f(resp)q(onsible)h(for)e +(sa)o(ving)g(it.)27 b(F)l(or)17 b(details)i(see)75 1387 +y Fh(saveCommand)j Fo(in)d(Section)g(5.1)e([Resources],)h(page)g(30.)28 +b(Sa)o(ving)18 b(also)g(is)h(a)o(v)m(ailable)g(from)f(the)g +Fh(File)75 1441 y Fo(men)o(u,)f(either)g(with)g(or)g(without)f +(supplying)j(a)d(\014lename.)26 b Fm(Pcb)16 b Fo(reuses)h(the)g(last)g +(\014lename)g(if)h(y)o(ou)e(do)75 1496 y(not)f(pass)g(a)g(new)g(one)g +(to)g(the)g(sa)o(v)o(e)g(routine.)137 1566 y(T)l(o)i(load)h(an)f +(existing)h(la)o(y)o(out)e(either)i(select)g Fh(lo)n(ad)g(layout)h +(data)i Fo(from)c(the)g Fh(File)j Fo(men)o(u)d(or)g(use)g +Ff(:l)75 1621 y(filename)p Fo(.)h(A)11 b(\014le)i(select)f(b)q(o)o(x)g +(p)q(ops)g(up)g(if)g(y)o(ou)f(don't)g(sp)q(ecify)i(a)f(\014lename.)19 +b(Merging)12 b(existing)h(la)o(y)o(outs)75 1676 y(in)o(to)i(the)g(new)h +(one)f(is)h(supp)q(orted)g(either)g(b)o(y)f(the)g Fh(File)j +Fo(men)o(u)d(or)g(b)o(y)g Ff(:m)g(filename)p Fo(.)137 +1746 y Fm(Pcb)h Fo(sa)o(v)o(es)f(a)h(bac)o(kup)h(of)f(the)g(curren)o(t) +g(la)o(y)o(out)g(dep)q(ending)i(on)e(the)g(resource)h +Fh(b)n(ackup)p Fo(.)23 b(The)16 b(\014le)h(is)75 1801 +y(named)d(`)p Fm(/tmp/PCB.\045i.backup)p Fo('.)i(During)e(critical)h +(sections)f(of)f(the)h(program)e(or)i(when)g(data)f(w)o(ould)75 +1856 y(b)q(e)j(lost)f(it)g(is)h(sa)o(v)o(ed)f(as)g(`)p +Fm(/tmp/PCB.\045i.save)p Fo('.)i Fh(\045i)i Fo(is)d(replaced)h(b)o(y)e +(the)g(pro)q(cess)g(ID.)75 1991 y Fl(2.7)33 b(Prin)n(ting)137 +2091 y Fm(Pcb)10 b Fo(no)o(w)h(has)f(supp)q(ort)h(for)f(device)i(driv)o +(ers,)f Fm(PostScript)p Fo(,)f Fh(enc)n(apsulate)n(d)h(PostScript)p +Fo(,)g(and)g Fh(Gerb)n(er)75 2145 y(X)21 b Fo(driv)o(ers)15 +b(are)f(a)o(v)m(ailable)i(so)e(far.)19 b(The)14 b Fh(Gerb)n(er)i(X)21 +b Fo(driv)o(er)14 b(generates)g(a)g(NC)h(drill)h(\014le)f(for)f +(automated)75 2200 y(drilling.)40 b(I)21 b(recommend)h(the)f(use)g(of)g +Fm(GhostScript)e Fo(if)j(y)o(ou)e(don't)h(ha)o(v)o(e)f(a)h +Fm(PostScript)f Fo(prin)o(ter)75 2255 y(for)e(handling)j(the)e(P)o +(ostScript)f(output.)31 b(Prin)o(ting)19 b(alw)o(a)o(ys)f(generates)h +(a)f(complete)i(set)e(of)h(\014les)h(for)75 2310 y(a)d(sp)q(eci\014ed)i +(driv)o(er.)26 b(See)18 b(the)f(page)g(ab)q(out)g(the)g +Fh(Print\(\))g Fo(action)h(for)e(addtional)i(information)f(ab)q(out)75 +2365 y(the)e(\014lenames.)21 b(The)15 b(con)o(trol)f(panel)i(o\013ers)e +(a)h(n)o(um)o(b)q(er)g(of)f(options.)20 b(Most)14 b(of)h(them)f(are)h +(not)f(a)o(vilable)75 2419 y(for)h(Gerb)q(er)g(output)g(b)q(ecause)h +(it)g(w)o(ouldn't)f(mak)o(e)g(sense,)g(for)g(example,)h(to)e(scale)i +(the)g(gerb)q(er)f(output)75 2474 y(\(y)o(ou'd)f(get)h(an)g +(incorrectly)i(made)e(b)q(oard!\))k(The)d(options)f(are:)75 +2587 y(`)p Fm(device)p Fo(')70 b(The)15 b(top)g(men)o(u)h(button)f +(selects)h(from)e(the)h(a)o(v)m(ailable)i(device)g(driv)o(ers.)75 +2670 y(`)p Fm(rotate)p Fo(')70 b(Rotate)14 b(la)o(y)o(out)g(90)h +(degrees)g(coun)o(ter-clo)q(c)o(kwise)i(b)q(efore)e(prin)o(ting)h +(\(default\).)p eop +%%Page: 20 21 +20 20 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(20)75 149 y(`)p Fm(mirror)p Fo(')70 b(Mirror)17 b(la)o(y)o(out)g(b)q +(efore)h(prin)o(ting.)29 b(Use)18 b(this)g(option)g(dep)q(ending)i(on)e +(y)o(our)f(pro)q(duction)315 204 y(line.)75 282 y(`)p +Fm(color)p Fo(')94 b(Created)17 b(colored)h(output.)26 +b(All)18 b(colors)f(will)i(b)q(e)f(con)o(v)o(erted)f(to)g(blac)o(k)h +(if)f(this)h(option)f(is)315 337 y(inactiv)o(e.)75 415 +y(`)p Fm(outline)p Fo(')46 b(Add)13 b(a)f(b)q(oard)h(outline)h(to)e +(the)h(output)f(\014le.)20 b(The)13 b(size)h(is)f(determined)h(b)o(y)e +(the)h(maxim)o(um)315 470 y(b)q(oardsize)i(c)o(hangeable)f(from)f(the)h +Fh(sizes)i Fo(men)o(u.)k(The)14 b(outline)h(app)q(ears)f(on)g(the)f +(top)h(and)315 524 y(b)q(ottom)j(sides)i(of)e(the)h(b)q(oard,)g(but)g +(not)f(on)h(the)g(in)o(ternal)h(la)o(y)o(ers.)27 b(An)18 +b(outline)h(can)f(b)q(e)315 579 y(useful)f(for)f(determining)i(where)e +(to)g(shear)g(the)g(b)q(oard)h(from)e(the)i(panel,)g(but)f(b)q(e)h(a)o +(w)o(are)315 634 y(that)c(it)i(creates)e(a)h(copp)q(er)h(line.)21 +b(Th)o(us)14 b(it)g(has)g(the)g(p)q(oten)o(tial)h(to)e(cause)i(short)e +(circuits)i(if)315 689 y(y)o(ou)f(don't)f(lea)o(v)o(e)h(enough)g(ro)q +(om)f(from)g(y)o(our)h(wiring)g(to)g(the)f(b)q(oard)h(edge.)20 +b(Use)14 b(a)g(view)o(er)315 744 y(to)f(see)g(what)g(the)g(output)g +(outline)i(lo)q(oks)f(lik)o(e)g(if)g(y)o(ou)f(w)o(an)o(t)f(to)h(kno)o +(w)f(what)h(it)h(lo)q(oks)f(lik)o(e.)75 821 y(`)p Fm(alignment)p +Fo(')315 876 y(Additional)j(alignemen)o(t)f(targets)e(are)h(added)h(to) +f(the)h(output.)k(The)c(distances)g(b)q(et)o(w)o(een)315 +931 y(the)h(b)q(oard)g(outline)h(is)g(set)e(b)o(y)h(the)g(resource)g +Fh(alignmentDistanc)n(e)p Fo(.)k(Alignmen)o(t)d(targets)315 +986 y(should)c(only)f(b)q(e)h(used)f(if)g(y)o(ou)g(kno)o(w)f(for)g +(certain)h(that)f(YOU)i(WILL)f(BE)g(USING)g(THEM)315 +1041 y(YOURSELF.)21 b(It)h(is)g(extremely)g(unlik)o(ely)h(that)e(y)o +(ou)g(will)i(w)o(an)o(t)d(to)h(ha)o(v)o(e)g(alignmen)o(t)315 +1095 y(targets)14 b(if)i(y)o(ou)e(send)i(gerb)q(er)g(\014les)g(to)e(a)h +(commercial)h(p)q(cb)g(man)o(ufacture)f(to)g(b)q(e)h(made.)75 +1173 y(`)p Fm(scaling)p Fo(')46 b(It's)22 b(quite)i(useful)f(to)f +(enlarge)h(y)o(our)g(prin)o(tout)f(for)g(c)o(hec)o(king)i(the)e(la)o(y) +o(out.)42 b(Use)23 b(the)315 1228 y(scrollbar)16 b(to)e(adjust)h(the)h +(scaling)g(factor)e(to)h(y)o(our)f(needs.)75 1306 y(`)p +Fm(media)p Fo(')94 b(Select)16 b(the)g(size)g(of)e(the)i(output)e +(media)i(from)f(this)g(men)o(u.)20 b(The)c(user)f(de\014ned)i(size)f +(ma)o(y)315 1361 y(b)q(e)h(set)f(b)o(y)g(the)g(resource)h +Fh(me)n(dia)j Fo(either)d(from)e(one)h(of)g(the)h(w)o(ell)g(kno)o(wn)f +(pap)q(er)g(sizes)h(or)315 1416 y(b)o(y)f(a)g Fm(X11)g +Fo(geometry)g(sp)q(eci\014cation.)25 b(This)17 b(en)o(try)f(is)g(only)h +(a)o(v)m(ailable)h(if)f(y)o(ou)f(use)h Fm(X11R5)315 1470 +y Fo(or)12 b(later.)19 b(F)l(or)12 b(earlier)h(releases)g(the)g(user)f +(de\014ned)i(size)g(or,)e(if)h(not)f(a)o(v)m(ailable,)i +Fh(A4)19 b Fo(is)13 b(used.)315 1525 y(W)l(ell)k(kno)o(wn)d(size)j +(are:)435 1589 y(A3)435 1640 y(A4)435 1692 y(A5)435 1744 +y(letter)435 1796 y(tabloid)435 1848 y(ledger)435 1900 +y(legal)435 1952 y(executiv)o(e)75 2030 y(`)p Fm(offset)p +Fo(')70 b(Adjust)17 b(the)g(o\013sets)f(of)g(the)h(prin)o(tout)g(b)o(y) +f(using)i(the)f(panner)g(at)f(the)h(righ)o(t)g(side)g(of)g(the)315 +2084 y(dialog)f(b)q(o)o(x.)j(This)d(en)o(try)e(is)i(only)f(a)o(v)m +(ailable)i(if)e(y)o(ou)g(use)g Fm(X11R5)f Fo(or)g(later.)20 +b(A)15 b(zero)g(o\013set)315 2139 y(is)h(used)f(for)g(earlier)h +(releases.)75 2217 y(`)p Fm(8.3)e(filenames)p Fo(')315 +2272 y(Select)19 b(this)f(button)g(to)f(generate)g(DOS)h(compatible)h +(\014lenames)g(for)e(the)h(output)f(\014les.)315 2327 +y(The)e Fh(c)n(ommand)20 b Fo(input)d(area)d(will)j(disapp)q(ear)f(if)g +(selected.)75 2405 y(`)p Fm(commandline)p Fo(')315 2459 +y(Use)d(this)g(line)h(to)e(en)o(ter)h(a)f(command)h(\(starts)e(with)i +Fm(|)p Fo(\))f(or)g(a)g(\014lename.)20 b(A)13 b(\045f)g(is)g(replaced) +315 2514 y(b)o(y)i(the)g(curren)o(t)g(\014lename.)21 +b(The)16 b(default)g(is)f(set)g(b)o(y)g(the)h(resource)f +Fh(printCommand)p Fo(.)137 2592 y(The)h(created)f(\014le)h(includes)i +(some)d(lab)q(els)h(whic)o(h)g(are)f(guaran)o(teed)g(to)g(sta)o(y)f +(unc)o(hanged)75 2670 y(`)p Fm(PCBMIN)p Fo(')70 b(iden)o(ti\014es)17 +b(the)e(lo)o(w)o(est)g(x)g(and)g(y)g(co)q(ordinates)h(in)g(mil.)p +eop +%%Page: 21 22 +21 21 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(21)75 149 y(`)p Fm(PCBMAX)p Fo(')70 b(iden)o(ti\014es)17 +b(the)e(highest)h(x)f(and)h(y)f(co)q(ordinates)g(in)h(mil.)75 +233 y(`)p Fm(PCBOFFSET)p Fo(')315 287 y(is)g(set)f(to)f(the)i(x)f(and)g +(y)g(o\013set)f(in)i(mil.)75 370 y(`)p Fm(PCBSCALE)p +Fo(')315 425 y(is)g(a)f(\015oating)g(p)q(oin)o(t)g(v)m(alue)i(whic)o(h) +f(iden)o(ti\014es)h(the)e(scaling)h(factor.)75 508 y(`)p +Fm(PCBSTARTDATA)p Fo(')75 563 y(`)p Fm(PCBENDDATA)p Fo(')315 +618 y(all)i(la)o(y)o(out)e(data)g(is)h(included)i(b)q(et)o(w)o(een)e +(these)g(t)o(w)o(o)e(marks.)24 b(Y)l(ou)17 b(ma)o(y)f(use)h(them)g +(with)315 673 y(an)d Fm(awk)f Fo(script)i(to)e(pro)q(duce)i(sev)o(eral) +f(prin)o(touts)g(on)g(one)g(piece)i(of)d(pap)q(er)i(b)o(y)f +(duplicating)315 728 y(the)k(co)q(de)h(and)f(putting)g(some)g +Fm(translate)e Fo(commands)i(in)h(fron)o(t.)27 b(Note,)18 +b(the)g(normal)315 782 y Fm(PostScript)c Fo(units)i(are)f(1/72)f(inc)o +(h.)75 948 y Fl(2.8)33 b(Connection)22 b(Lists)137 1047 +y Fo(After)17 b(completing)i(parts)e(of)g(y)o(our)f(la)o(y)o(out)h(y)o +(ou)g(ma)o(y)g(w)o(an)o(t)f(to)h(c)o(hec)o(k)h(if)g(all)g(dra)o(wn)f +(connections)75 1102 y(matc)o(h)c(the)h(ones)g(y)o(ou)g(ha)o(v)o(e)f +(in)i(mind.)20 b(This)15 b(is)f(probably)g(b)q(est)g(done)h(in)f +(conjunction)h(with)f(a)g(net-list)75 1157 y(\014le:)22 +b(see)17 b(Section)g(2.10)d([Rats)h(Nest],)g(page)h(22.)21 +b(The)c(follo)o(wing)f(examples)h(giv)o(e)f(more)g(rudimen)o(tary)75 +1212 y(w)o(a)o(ys)e(to)h(examine)h(the)f(connections.)290 +1280 y Fm(1\))24 b(create)f(at)h(least)f(two)g(elements)g(and)h(name)f +(them)290 1332 y(2\))h(create)f(some)g(connections)g(between)g(their)g +(pins)290 1383 y(3\))h(optionally)f(add)g(some)g(vias)h(and)f +(connections)f(to)i(them)137 1454 y Fo(No)o(w)16 b(select)h +Fh(lo)n(okup)g(c)n(onne)n(ction)h Fo(from)d(the)i Fh(Conne)n(ctions)g +Fo(men)o(u,)f(mo)o(v)o(e)g(the)g(cursor)g(to)f(a)h(pin)h(or)75 +1509 y(via)f(and)h(press)f(an)o(y)g(mouse)g(button.)22 +b Fm(Pcb)15 b Fo(will)j(lo)q(ok)f(for)e(all)i(other)f(pins)h(and/or)e +(vias)i(connected)g(to)75 1564 y(the)e(one)g(y)o(ou)g(ha)o(v)o(e)f +(selected)i(and)f(displa)o(y)h(the)g(ob)s(jects)e(in)i(a)e(di\013eren)o +(t)h(color.)20 b(No)o(w)14 b(try)h(some)f(of)h(the)75 +1618 y(reset)g(options)g(a)o(v)m(ailable)i(from)e(the)g(same)g(men)o +(u.)137 1689 y(There)g(also)g(is)g(a)f(w)o(a)o(y)g(to)g(scan)g(all)i +(connections)f(of)g(one)f(elemen)o(t.)21 b(Select)15 +b Fh(a)h(single)f(element)j Fo(from)75 1744 y(the)f(men)o(u)g(and)g +(press)g(an)o(y)f(button)h(at)f(the)h(elemen)o(t's)g(lo)q(cation.)26 +b(All)18 b(connections)g(of)e(this)h(elemen)o(t)75 1799 +y(will)i(b)q(e)g(sa)o(v)o(ed)e(to)g(the)g(sp)q(eci\014ed)j(\014le.)28 +b(Either)18 b(the)g(la)o(y)o(out)f(name)h(of)f(the)g(elemen)o(t)i(or)e +(its)h(canonical)75 1853 y(name)e(is)h(used)g(to)e(iden)o(tify)j(pins)f +(dep)q(ending)h(on)e(the)g(one)h(whic)o(h)g(is)f(displa)o(y)o(ed)i(on)e +(the)g(screen)h(\(ma)o(y)75 1908 y(b)q(e)f(c)o(hanged)f(b)o(y)h +Fh(Display)j Fo(men)o(u\).)137 1979 y(An)d(automatic)f(scan)h(of)f(all) +i(elemen)o(ts)f(is)h(initiated)g(b)o(y)e(c)o(ho)q(osing)i +Fh(al)r(l)f(elements)p Fo(.)k(It)c(b)q(eha)o(v)o(es)g(in)g(a)75 +2034 y(similar)h(fashion)g(to)e(scanning)i(a)f(single)h(elemen)o(t)g +(except)g(the)f(resource)g Fh(r)n(esetAfterElement)j +Fo(is)d(used)75 2088 y(to)f(determine)h(if)f(connections)i(should)f(b)q +(e)g(reset)e(b)q(efore)i(a)f(new)g(elemen)o(t)h(is)g(scanned.)k(Doing)c +(so)e(will)75 2143 y(pro)q(duce)h(v)o(ery)e(long)h(lists)h(b)q(ecause)g +(the)f(p)q(o)o(w)o(er)f(lines)i(are)f(rescanned)g(for)g(ev)o(ery)f +(elemen)o(t.)20 b(By)14 b(default)75 2198 y(the)h(resource)h(is)f(set)g +(to)g Fh(false)j Fo(for)c(this)i(reason.)137 2269 y(T)l(o)f(scan)g(for) +g(unconnected)i(pins)f(select)g Fh(unuse)n(d)g(pins)i +Fo(from)d(the)g(same)g(men)o(u.)75 2406 y Fl(2.9)33 b(Selection)137 +2506 y Fo(Some)13 b(commands)f(men)o(tioned)i(earlier)f(in)h(this)f(c)o +(hapter)g(also)f(are)h(able)g(to)f(op)q(erate)g(on)h(all)h(selected)75 +2560 y(and)h(visible)j(ob)s(jects.)h(No)o(w)c(go)g(bac)o(k)g(to)f(the)i +(la)o(y)o(out)e(and)i(toggle)f(the)g(selection)i(\015ag)d(of)h(a)g +(single)i(one)75 2615 y(b)o(y)g Fm(<)p Fh(Btn3Down)p +Fm(>)p Fo(.)24 b(T)l(ry)17 b Fm(<)p Fh(Btn3Down)p Fm(>)p +Fo(,)g(mo)o(v)o(e)f(the)h(p)q(oin)o(ter)g(while)h(holding)h(the)e +(button)f(do)o(wn)h(and)75 2670 y(release)f(it)g(on)f(a)g(di\013eren)o +(t)h(lo)q(cation.)22 b(This)16 b(selects)g(all)g(ob)s(jects)f(inside)j +(the)d(rectangle)h(and)g(unselects)p eop +%%Page: 22 23 +22 22 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(22)75 149 y(ev)o(erything)12 b(else.)19 b(Dragging)11 +b(with)h Fh(Mo)n(d1)p Fm(<)p Fh(Btn3Down)p Fm(>)f Fo(adds)h(ev)o +(erything)g(in)g(the)f(b)q(o)o(x)h(to)e(the)i(existing)75 +204 y(selection.)21 b(Dragging)15 b Fh(Shift)h Fm(<)p +Fh(Btn3Down)p Fm(>)f Fo(unselects)h(ob)s(jects)f(in)h(the)f(b)q(o)o(x.) +137 271 y(The)k(en)o(tries)g(of)f(the)h Fh(Sele)n(ction)h +Fo(men)o(u)f(are)f(hop)q(efully)j(self-explanatory)l(.)30 +b(Man)o(y)18 b(of)g(the)h Fh(A)n(ction)75 326 y(Commands)24 +b Fo(can)e(tak)o(e)e(v)m(arious)i(k)o(ey)f(w)o(ords)f(that)g(mak)o(e)h +(them)g(function)h(on)f(all)h(or)e(some)h(of)g(the)75 +381 y(selected)16 b(items.)75 509 y Fl(2.10)32 b(Rats)22 +b(Nest)137 606 y Fo(If)e(y)o(ou)e(ha)o(v)o(e)h(a)g(netlist)h(that)e +(corresp)q(onds)i(to)e(the)h(la)o(y)o(out)g(y)o(ou)g(are)f(w)o(orking)h +(on,)h(y)o(ou)e(can)i(use)75 660 y(the)15 b(rats-nest)f(feature)g(to)h +(add)g(rat-lines)g(to)f(the)h(la)o(y)o(out.)k(First)c(y)o(ou)f(will)j +(need)e(to)g(load)g(a)f(netlist)i(\014le)75 715 y(\(see)f +Fh(:rn)p Fo(,)f(Chapter)h(3)g([User)f(Commands],)g(page)h(25\).)k +Fm(<)p Fh(Key)p Fm(>)p Fh(w)h Fo(adds)15 b(rat-lines)h(on)f(the)g +(activ)o(e)g(la)o(y)o(er)75 770 y(using)e(the)f(curren)o(t)g(line)i +(thic)o(kness)f(sho)o(wn)f(in)h(the)f(status)g(line)i(\(usually)f(y)o +(ou'll)f(w)o(an)o(t)g(them)g(to)f(b)q(e)i(thin)75 825 +y(lines\).)21 b(Only)14 b(those)f(rat-lines)h(that)f(\014ll)i(in)f +(missing)g(connectivit)o(y)h(\(since)f(y)o(ou)f(ha)o(v)o(e)g(probably)h +(routed)75 880 y(some)k(connections)i(already\))f(are)g(added.)31 +b(If)19 b(the)g(la)o(y)o(out)f(is)h(already)g(completely)h(wired,)g +(nothing)75 934 y(will)d(b)q(e)f(added,)f(and)h(y)o(ou)e(will)j(get)e +(a)g(message)g(that)f(the)h(wiring)h(is)g(complete.)137 +1001 y(Rat-lines)h(are)e(lines)i(ha)o(ving)g(the)e(sp)q(ecial)j(prop)q +(ert)o(y)d(that)g(they)h(only)h(connect)f(to)f(pins)i(and)f(pads)75 +1056 y(at)j(their)h(end)h(p)q(oin)o(ts.)34 b(Rat-lines)20 +b(are)f(dra)o(wn)g(on)h(the)g(screen)g(with)g(a)g(stippled)h(pattern)e +(to)g(mak)o(e)75 1111 y(them)c(easier)h(to)f(iden)o(tify)h(since)h +(they)e(ha)o(v)o(e)g(sp)q(ecial)i(b)q(eha)o(vior)f(and)g(cannot)f +(remain)h(in)g(a)f(completed)75 1166 y(la)o(y)o(out.)j(Rat-lines)13 +b(are)f(added)h(in)g(the)g(minim)o(um)g(length)g(straigh)o(t-line)g +(tree)g(pattern)e(\(alw)o(a)o(ys)h(ending)75 1221 y(on)17 +b(pins)h(or)f(pads\))g(that)f(satis\014es)h(the)g(missing)h +(connectivit)o(y)h(in)e(the)h(circuit.)26 b(Used)18 b(in)g(connection) +75 1275 y(with)h(mo)o(v)o(es)f(and)i(rotates)d(of)i(the)g(elemen)o(ts,) +h(they)f(are)g(extremely)g(useful)h(for)e(deciding)j(where)f(to)75 +1330 y(place)g(elemen)o(ts)g(on)f(the)g(b)q(oard.)32 +b(The)19 b(rat-lines)h(will)h(alw)o(a)o(ys)d(automatically)i(rubb)q +(erband)g(to)f(the)75 1385 y(elemen)o(ts)e(whether)f(or)f(not)h(the)g +(rubb)q(erband)h(mo)q(de)g(is)f(on.)22 b(The)17 b(only)f(w)o(a)o(y)f +(for)h(y)o(ou)f(to)h(mo)o(v)o(e)f(them)75 1440 y(is)i(b)o(y)g(mo)o +(ving)g(the)g(parts)f(they)h(connect)g(to.)24 b(This)18 +b(is)f(b)q(ecause)h(it)f(is)h(nev)o(er)f(desireable)h(to)e(ha)o(v)o(e)h +(the)75 1495 y(rat-lines)h(disconnected)i(from)c(their)i(elemen)o(t)g +(pins.)28 b(Rat-lines)18 b(will)h(normally)f(criss-cross)f(all)i(o)o(v) +o(er)75 1549 y(whic)o(h)13 b(giv)o(es)g(rise)g(to)f(the)h(name)f +Fm(")p Fo(rats)g(nest)p Fm(")g Fo(describing)j(a)d(la)o(y)o(out)g +(connected)h(with)g(them.)19 b(If)13 b(a)f(SMD)75 1604 +y(pad)i(is)h(unreac)o(hable)h(on)e(the)g(activ)o(e)h(la)o(y)o(er,)e(a)h +(w)o(arning)h(will)h(b)q(e)e(issued)i(ab)q(out)e(it)h(and)f(the)g +(rat-line)i(to)75 1659 y(that)e(pad)i(will)h(not)e(b)q(e)g(generated.) +137 1726 y(A)i(common)g(w)o(a)o(y)f(to)h(use)g(rats)g(nests)g(is)g(to)g +(place)h(some)f(elemen)o(ts)h(on)f(the)g(b)q(oard,)g(add)g(the)h(rat-) +75 1781 y(lines,)f(and)f(then)g(use)g(a)g(series)g(of)f(mo)o(v)o +(es/rotates)f(of)h(the)h(elemen)o(ts)g(un)o(til)h(the)f(rats)f(nest)h +(app)q(ears)g(to)75 1836 y(ha)o(v)o(e)h(minim)o(um)h(tangling.)27 +b(Y)l(ou)18 b(ma)o(y)e(w)o(an)o(t)g(to)h(iterate)g(this)h(step)f(sev)o +(eral)h(times.)26 b(Don't)16 b(w)o(orry)g(if)75 1891 +y(the)j(la)o(y)o(out)g(lo)q(oks)g(messy)g(-)h(as)e(long)i(as)f(y)o(ou)g +(can)g(get)g(a)g(sense)g(for)g(whether)g(the)g(criss-crossing)h(is)75 +1945 y(b)q(etter)15 b(or)g(w)o(orse)g(as)g(y)o(ou)g(mo)o(v)o(e)f +(things,)i(y)o(ou're)e(\014ne.)21 b(After)15 b(mo)o(ving)g(some)h +(elemen)o(ts)g(arround,)e(y)o(ou)75 2000 y(ma)o(y)g(w)o(an)o(t)f(to)g +(optimize)j(the)e(rats)f(nest)i Fm(<)p Fh(Key)p Fm(>)p +Fh(o)i Fo(so)c(that)h(the)g(lines)i(are)e(dra)o(wn)g(b)q(et)o(w)o(een)g +(the)h(closest)75 2055 y(p)q(oin)o(ts)h(\(this)f(can)h(c)o(hange)f +(once)h(y)o(ou'v)o(e)f(mo)o(v)o(ed)g(comp)q(onen)o(ts\).)20 +b(Adding)d(rat-lines)f(only)g(to)f(selected)75 2110 y(pads/pins)g(\()p +Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(w)5 b Fo(\))12 b(is)i(often)g +(useful)h(to)e(la)o(y)o(out)g(a)g(circuit)j(a)d(little)i(bit)f(at)f(a)h +(time.)20 b(Sometimes)75 2164 y(y)o(ou'll)12 b(w)o(an)o(t)f(to)g +(delete)i(all)g(the)f(rat-lines)g(\()p Fm(<)p Fh(Key)p +Fm(>)p Fh(e)s Fo(\))g(or)f(selected)i(rat-lines)g(\()p +Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(e)s Fo(\))d(in)j(order)f(to)75 +2219 y(reduce)j(confusion.)20 b(With)14 b(a)g(little)h(practice)g(y)o +(ou'll)f(b)q(e)h(able)g(to)e(ac)o(hiev)o(e)i(a)e(near)h(optimal)h(comp) +q(onen)o(t)75 2274 y(placemen)o(t)h(with)f(the)h(use)f(of)g(a)g(rats)f +(nest.)137 2341 y(Rat-lines)h(are)f(not)g(only)h(used)f(for)g +(assisting)h(y)o(our)e(elemen)o(t)i(placemen)o(t,)g(they)f(can)h(also)f +(help)h(y)o(ou)75 2396 y(to)f(route)g(traces)f(on)i(the)f(b)q(oard.)20 +b(Use)14 b(the)g Fm(<)p Fh(Key)p Fm(>)p Fh(m)k Fo(to)c(con)o(v)o(ert)f +(a)h(rat-line)i(under)f(the)f(cursor)g(in)o(to)g(a)75 +2451 y(normal)g(line)i(on)e(the)g(activ)o(e)g(la)o(y)o(er.)19 +b(Inserting)c(a)f(p)q(oin)o(t)h(in)o(to)f(a)g(rat-line)h(will)g(also)f +(cause)h(the)f(t)o(w)o(o)f(new)75 2506 y(lines)j(to)f(b)q(e)g(normal)g +(lines)i(on)e(the)g(b)q(oard.)k(Another)c(w)o(a)o(y)f(that)g(y)o(ou)h +(can)g(use)g(rat-lines)h(is)f(to)g(use)g(the)75 2560 +y Fm(<)p Fh(Key)p Fm(>)p Fh(f)24 b Fo(with)15 b(the)f(cursor)h(o)o(v)o +(er)e(a)i(pad)f(or)g(pin.)21 b(All)16 b(of)e(the)h(pins)h(and)e(pads)h +(and)g(rat-lines)g(b)q(elonging)75 2615 y(to)h(that)g(net)h(will)h(b)q +(e)g(highligh)o(ted.)26 b(This)18 b(is)f(a)f(helpful)j(w)o(a)o(y)d(to)g +(distinguish)j(one)e(net)g(from)f(the)g(rest)75 2670 +y(of)h(the)g(rats)f(nest.)25 b(Y)l(ou)17 b(can)g(then)g(route)g(those)g +(trac)o(ks,)f(turn)g(o\013)h(the)g(highligh)o(ting)i(\()p +Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(f)8 b Fo(\))p eop +%%Page: 23 24 +23 23 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(23)75 149 y(and)14 b(rep)q(eat)h(the)f(pro)q(cess.)20 +b(This)15 b(will)h(w)o(ork)d(ev)o(en)i(if)f(the)h(la)o(y)o(er)f(that)f +(the)i(rat-lines)g(reside)g(on)f(is)h(made)75 204 y(in)o(visible)i(-)d +(so)g(only)h(the)f(pins)i(and)e(pads)g(are)g(highligh)o(ted.)22 +b(Be)14 b(sure)h(to)e(erase)h(the)h(rat-lines)g(\()p +Fm(<)p Fh(Key)p Fm(>)p Fh(e)75 259 y Fo(erases)f(them)g(all\))h(once)g +(y)o(ou'v)o(e)f(duplicated)i(their)f(connectivit)o(y)g(b)o(y)g(adding)g +(y)o(our)f(o)o(wn)f(lines.)22 b(When)75 314 y(in)16 b(doubt,)f(the)g +Fm(<)p Fh(Key)p Fm(>)p Fh(o)j Fo(will)f(delete)f(only)g(those)f +(rat-lines)h(that)f(are)g(no)g(longer)g(needed.)137 400 +y(If)22 b(connections)h(exist)f(on)f(the)h(b)q(oard)f(that)g(are)g(not) +h(listed)h(in)f(the)g(netlist)g(when)g Fm(<)p Fh(Key)p +Fm(>)p Fh(w)k Fo(is)75 455 y(pressed,)15 b(w)o(arning)f(messages)g(are) +g(issued)i(and)e(the)h(a\013ected)f(pins)h(and)g(pads)g(are)f(dra)o(wn) +g(in)h(a)f(sp)q(ecial)75 509 y Fh(warnColor)23 b Fo(un)o(til)d(the)e +(next)h Fh(Notify\(\))g Fo(ev)o(en)o(t.)30 b(If)19 b(the)f(en)o(tire)h +(la)o(y)o(out)f(agrees)g(completely)i(with)f(the)75 564 +y(netlist,)g(a)e(message)h(informs)g(y)o(ou)f(that)g(the)h(la)o(y)o +(out)f(is)i(complete)f(and)g(no)g(rat-lines)g(will)i(b)q(e)e(added)75 +619 y(\(since)k(none)f(are)g(needed\).)37 b(If)21 b(the)g(la)o(y)o(out) +g(is)g(complete,)i(but)e(still)h(has)f(rat-lines)h(then)f(y)o(ou)f +(will)75 674 y(b)q(e)e(w)o(arned)f(that)g(rat-lines)h(remain.)27 +b(If)18 b(y)o(ou)f(get)g(no)g(message)g(at)g(all)i(it's)e(probably)h(b) +q(ecause)g(some)75 728 y(elemen)o(ts)j(listed)g(in)g(the)f(net)g(list)h +(can't)f(b)q(e)h(found)f(and)g(where)h(rep)q(orted)f(in)h(an)f(earlier) +h(message.)75 783 y(There)15 b(shouldn't)h(b)q(e)g(an)o(y)f(rat-lines)h +(left)g(in)g(a)f(completed)h(la)o(y)o(out,)e(only)i(normal)f(lines.)137 +869 y(The)i Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(w)k +Fo(is)c(used)f(to)g(add)h(rat-lines)g(to)f(only)h(those)f(missing)h +(connections)g(among)f(the)75 924 y(selected)h(pins)g(and)f(pads.)22 +b(This)17 b(can)f(b)q(e)g(used)h(to)e(add)h(rat-lines)h(in)g(an)e +(incremen)o(tal)i(manner,)f(or)g(to)75 979 y(force)g(a)f(rat-line)i(to) +e(route)h(b)q(et)o(w)o(een)g(t)o(w)o(o)e(p)q(oin)o(ts)j(that)e(are)g +(not)h(the)g(closest)g(p)q(oin)o(ts)g(within)h(the)f(net.)75 +1034 y(Often)h(it)f(is)h(b)q(est)g(to)e(add)i(the)f(rats)f(nest)i(in)g +(an)f(incremen)o(tal)i(fashion,)e(la)o(ying)h(out)f(a)g(sub-section)h +(of)75 1088 y(the)i(b)q(oard)g(b)q(efore)g(going)h(further.)31 +b(This)19 b(is)h(easy)f(to)f(accomplish)j(since)f(new)f(rat-lines)h +(are)f(nev)o(er)75 1143 y(added)d(where)f(routed)g(connectivit)o(y)i +(already)e(mak)o(es)g(the)g(necessary)g(connections.)75 +1318 y Fl(2.11)32 b(Design)22 b(Rule)h(Chec)n(king)137 +1433 y Fo(After)14 b(y)o(ou'v)o(e)f(\014nished)j(la)o(ying)e(out)g(a)g +(b)q(oard,)f(y)o(ou)h(ma)o(y)f(w)o(an)o(t)g(to)h(c)o(hec)o(k)g(to)f(b)q +(e)i(certain)f(that)g(none)75 1488 y(of)20 b(y)o(our)g(in)o +(terconnections)i(are)e(to)q(o)g(closely)h(spaced)g(or)f(to)q(o)g(ten)o +(uously)h(touc)o(hing)g(to)f(b)q(e)h(reliably)75 1543 +y(fabricated.)h(The)16 b(design)h(rule)g(c)o(hec)o(king)g(\(DR)o(C\))d +(function)j(do)q(es)f(this)g(for)f(y)o(ou.)22 b(Use)16 +b(the)g(command)75 1598 y Fm(")p Fo(:DR)o(C\(\))p Fm(")g +Fo(\(without)j(the)g(quotes)f(of)h(course\))g(to)f(in)o(v)o(ok)o(e)h +(the)g(c)o(hec)o(k)o(er.)31 b(If)19 b(there)g(are)f(no)h(problem)75 +1653 y(areas,)g(y)o(ou'll)h(get)f(a)g(message)g(to)g(that)f(e\013ect.) +32 b(If)20 b(an)o(y)f(problem)h(is)g(encoun)o(tered,)g(y)o(ou)f(will)i +(get)e(a)75 1707 y(message)h(ab)q(out)g(it)h(and)f(the)g(a\013ected)g +(traces)g(will)i(b)q(e)f(highligh)o(ted.)37 b(One)21 +b(part)f(of)g(the)g(trac)o(ks)f(of)75 1762 y(concern)e(will)h(b)q(e)g +(selected,)f(while)i(the)d(other)g(parts)g(of)g(concern)i(will)g(ha)o +(v)o(e)e(the)h Fm(")p Fo(FindConnection)p Fm(")75 1817 +y Fo(highligh)o(ting.)23 b(The)16 b(screen)g(will)i(automatically)e(b)q +(e)g(cen)o(tered)g(in)h(the)e(middle)j(of)d(the)h(ob)s(ject)f(ha)o +(ving)75 1872 y(the)c Fm(")p Fo(FindConnection)p Fm(")h +Fo(\(Green\))e(highligh)o(ting.)21 b(The)11 b(middle)i(of)d(the)h(ob)s +(ject)f(is)i(also)f(the)g(co)q(ordinates)75 1927 y(rep)q(orted)18 +b(to)g(b)q(e)h Fm(")p Fo(near)p Fm(")f Fo(the)h(problem.)30 +b(The)18 b(actual)h(trouble)g(region)f(will)i(b)q(e)f(somewhere)g(on)f +(the)75 1981 y(b)q(oundary)g(of)e(this)i(ob)s(ject.)25 +b(If)17 b(the)g(t)o(w)o(o)f(parts)g(are)h(from)g(di\013eren)o(t)g(nets) +g(then)g(there)h(is)f(some)g(place)75 2036 y(where)h(they)f(approac)o +(h)h(eac)o(h)f(other)g(closer)h(than)g(the)f(minim)o(um)i(rule.)28 +b(If)17 b(the)h(parts)f(are)g(from)g(the)75 2091 y(same)g(net,)h(then)g +(there)g(is)g(place)g(where)g(they)g(are)f(only)h(barely)g(connected.) +28 b(Find)18 b(that)f(place)i(and)75 2146 y(connect)d(them)f(b)q +(etter.)137 2232 y(After)20 b(a)f(DR)o(C)f(error)i(is)g(found)g(and)g +(corrected)g(y)o(ou)f(m)o(ust)g(run)h(the)g(DR)o(C)e(again)i(b)q +(ecause)h(the)75 2286 y(searc)o(h)11 b(for)f(errors)g(is)i(halted)g(as) +e(so)q(on)h(as)g(the)g(\014rst)f(problem)i(is)f(found.)19 +b(Unless)12 b(y)o(ou'v)o(e)e(b)q(een)i(extremely)75 2341 +y(careless)18 b(there)g(should)h(b)q(e)f(no)g(more)f(than)h(a)f(few)h +(design)g(rule)h(errors)e(in)h(y)o(our)f(la)o(y)o(out.)27 +b(The)18 b(DR)o(C)75 2396 y(c)o(hec)o(k)o(er)c(do)q(es)h(not)e(c)o(hec) +o(k)i(for)e(minim)o(um)j(spacing)f(rules)g(to)e(copp)q(er)i(text,)e(so) +h(alw)o(a)o(ys)g(b)q(e)g(v)o(ery)g(careful)75 2451 y(when)f(adding)h +(copp)q(er)g(text)e(to)h(a)f(la)o(y)o(out.)19 b(The)13 +b(rules)h(for)e(the)h(DR)o(C)f(are)g(sp)q(eci\014ed)j(in)f(the)f +(application)75 2506 y(resource)f(\014le.)20 b(The)12 +b(minim)o(um)h(spacing)g(v)m(alue)g(\(in)g(mils\))g(is)f(giv)o(en)h(b)o +(y)f(the)g Fh(Settings.Blo)n(at)j Fo(v)m(alue.)20 b(The)75 +2560 y(default)d(is)g(7)f(mils.)25 b(The)17 b(minim)o(um)h(touc)o(hing) +e(o)o(v)o(erlap)h(\(in)g(mils\))g(is)g(giv)o(en)g(b)o(y)f(the)h +Fh(Settings.Shrink)75 2615 y Fo(v)m(alue.)j(This)11 b(v)m(alue)g +(defaults)g(to)f(5)g(mils.)19 b(Chec)o(k)11 b(with)g(y)o(our)f +(fabrication)h(pro)q(cess)f(p)q(eople)i(to)e(determine)75 +2670 y(the)15 b(v)m(alues)i(that)d(are)h(righ)o(t)g(for)g(y)o(ou.)p +eop +%%Page: 24 25 +24 24 bop 75 -58 a Fo(Chapter)15 b(2:)k(Getting)c(Started)1209 +b(24)137 149 y(If)11 b(y)o(ou)f(w)o(an)o(t)f(to)h(turn)h(o\013)e(the)i +(highligh)o(ting)h(pro)q(duced)g(b)o(y)e(the)h(DR)o(C,)e(p)q(erform)h +(an)g(undo)h(\(assuming)75 204 y(no)18 b(other)h(c)o(hanges)f(ha)o(v)o +(e)g(b)q(een)i(made\).)29 b(T)l(o)18 b(restore)g(the)h(highligh)o +(ting,)i(use)d(redo.)30 b(The)19 b(redo)f(will)75 259 +y(restore)c(the)i(highligh)o(ting)h(quic)o(kly)g(without)e(re-running)h +(the)g(DR)o(C)d(c)o(hec)o(k)o(er.)p eop +%%Page: 25 26 +25 25 bop 75 -58 a Fo(Chapter)15 b(3:)k(User)d(Commands)1194 +b(25)75 149 y Fk(3)41 b(User)26 b(Commands)137 267 y +Fo(The)13 b(en)o(tering)f(of)g(user-commands)g(is)g(initiated)i(b)o(y)e +(the)g(action)g(routine)h Fh(Command\(\))g Fo(\(the)f +Fm(\(":"\))75 321 y Fo(c)o(haracter\))20 b(and)i(\014nished)h(b)o(y)e +(either)h Fm(<)p Fh(Key)p Fm(>)p Fh(R)n(eturn)i Fo(or)d +Fm(<)p Fh(Key)p Fm(>)p Fh(Esc)n(ap)n(e)i Fo(to)d(con\014rm)i(or)e(to)h +(ab)q(ort.)75 376 y(These)g(t)o(w)o(o)e(k)o(eybindings)k(cannot)d(b)q +(e)h(c)o(hanged)g(from)f(the)g(resource)h(\014le.)37 +b(The)21 b(triggering)g(ev)o(en)o(t,)75 431 y(normally)14 +b(a)g(k)o(ey)f(press,)h(is)h(ignored.)k(The)c(input)f(area)f(will)j +(replace)f(the)f(b)q(ottom)e(statusline.)21 b(It)14 b(p)q(ops)75 +486 y(up)20 b(when)g Fh(Command\(\))g Fo(is)g(called.)34 +b(The)19 b(argumen)o(ts)g(of)g(the)g(user-commands)h(are)f(passed)g(to) +g(the)75 540 y(external)d(commands)f(without)g(mo)q(di\014cation.)21 +b(See)16 b(also,)e(the)i(resource)f Fh(saveInTMP)p Fo(.)137 +608 y(There)h(are)f(simple)i Fh(usage)h Fo(dialogs)e(for)f(eac)o(h)g +(command)g(and)h(one)f(for)g(the)g(complete)h(set)f(of)g(com-)75 +663 y(mands.)75 767 y(`)p Fm(l)g([filename])p Fo(')315 +822 y(Loads)d(a)g(new)h(data\014le)f(\(la)o(y)o(out\))f(and,)i(if)f +(con\014rmed,)h(o)o(v)o(erwrites)f(an)o(y)g(existing)h(unsa)o(v)o(ed) +315 877 y(data.)24 b(The)17 b(\014lename)h(and)f(the)f(searc)o(hpath)h +(\()p Fh(\014lePath)s Fo(\))f(are)g(passed)h(to)f(the)h(command)315 +932 y(de\014ned)e(b)o(y)f Fh(\014leCommand)p Fo(.)19 +b(If)14 b(no)g(\014lename)h(is)f(sp)q(eci\014ed)j(a)c(\014le)i(select)g +(b)q(o)o(x)f(will)h(p)q(opup.)75 1011 y(`)p Fm(le)g([filename])p +Fo(')315 1066 y(Loads)c(an)f(elemen)o(t)i(description)g(in)o(to)f(the)g +(paste)f(bu\013er.)18 b(The)11 b(\014lename)h(and)f(the)g(searc)o(h-) +315 1121 y(path)16 b(\()p Fh(elementPath)s Fo(\))f(are)h(passed)g(to)g +(the)g(command)g(de\014ned)h(b)o(y)f Fh(elementCommand)p +Fo(.)315 1176 y(If)f(no)h(\014lename)g(is)g(sp)q(eci\014ed)h(a)e +(\014le)h(select)g(b)q(o)o(x)f(will)i(p)q(opup.)75 1255 +y(`)p Fm(m)e([filename])p Fo(')315 1310 y(Loads)20 b(an)f(la)o(y)o(out) +h(\014le)g(in)o(to)g(the)g(paste)f(bu\013er.)34 b(The)20 +b(\014lename)h(and)e(the)h(searc)o(hpath)315 1365 y(\()p +Fh(\014lePath)s Fo(\))15 b(are)h(passed)g(to)f(the)h(command)g +(de\014ned)h(b)o(y)f Fh(\014leCommand)p Fo(.)21 b(If)16 +b(no)g(\014lename)315 1420 y(is)g(sp)q(eci\014ed)h(a)e(\014le)h(select) +g(b)q(o)o(x)f(will)i(p)q(opup.)75 1499 y(`)p Fm(q[!])p +Fo(')118 b(Quits)20 b(the)f(program)f(without)h(sa)o(ving)f(an)o(y)h +(data)f(\(after)g(con\014rmation\).)31 b(q!)g(do)q(esn't)315 +1554 y(ask)15 b(for)f(con\014rmation,)h(it)h(just)f(quits.)75 +1634 y(`)p Fm(s)g([filename])p Fo(')315 1689 y(Data)21 +b(and)h(the)g(\014lename)h(are)e(passed)h(to)f(the)h(command)g +(de\014ned)h(b)o(y)f(the)g(resource)315 1743 y Fh(saveCommand)p +Fo(.)39 b(It)22 b(m)o(ust)f(read)h(the)f(la)o(y)o(out)g(data)g(from)g +Fh(stdin)p Fo(.)39 b(If)22 b(no)g(\014lename)g(is)315 +1798 y(en)o(tered,)c(either)g(the)g(last)f(one)h(is)g(used)g(again)f +(or,)g(if)h(it)g(is)g(not)f(a)o(v)m(ailable,)i(a)f(\014le)g(select)315 +1853 y(b)q(o)o(x)d(will)i(p)q(op)f(up.)75 1933 y(`)p +Fm(rn)f([filename])p Fo(')315 1988 y(Reads)20 b(in)h(a)f(netlist)h +(\014le.)36 b(If)21 b(no)f(\014lename)h(is)g(giv)o(en)g(a)f(\014le)h +(select)g(b)q(o)o(x)f(will)i(p)q(op)f(up.)315 2042 y(The)c(\014le)h(is) +g(read)e(via)i(the)f(command)g(de\014ned)h(b)o(y)f(the)g +Fh(R)n(atCommand)22 b Fo(resource.)j(The)315 2097 y(command)19 +b(m)o(ust)g(send)i(its)e(output)h(to)f Fh(stdout)p Fo(.)33 +b(The)20 b(netlist)h(receiv)o(ed)f(b)o(y)g(p)q(cb)h(m)o(ust)315 +2152 y(ha)o(v)o(e)15 b(this)g(simple)i(text)e(form:)315 +2219 y(netname)g(NAME-PINNUM)h(NAME2-PINNUM2)f(NAME3-PINNUM3)f(...)19 +b([)p Fm(\\)p Fo(])315 2286 y(where)e Fm(")p Fo(netname)p +Fm(")h Fo(is)f(the)h(name)f(of)g(the)g(net)g(\(curren)o(tly)h(its)f(v)m +(alue)i(is)f(ignored)f(but)h(it)315 2341 y(m)o(ust)e(b)q(e)h(presen)o +(t)g(nonetheless\),)g(NAME)f(is)h(the)g(la)o(y)o(out-name)f(giv)o(en)h +(to)f(an)h(elemen)o(t,)315 2396 y(and)12 b(PINNUM)h(is)f(the)g +(\(usually)h(n)o(umeric\))g(pin)g(n)o(um)o(b)q(er)f(of)g(the)g(elemen)o +(t)h(that)e(is)i(part)e(of)315 2451 y(the)h(net)g(\(see)f(Section)i +(1.3)d([Elemen)o(t)i(Ob)s(jects],)g(page)f(4)h(for)f(details)h(on)g +(pin)h(n)o(um)o(b)q(ering\).)315 2506 y(Spaces)i(or)e(tabs)h(separate)f +(the)i(\014elds.)20 b(If)15 b(the)f(line)i(ends)e(with)h(a)e +Fm("\\")h Fo(the)g(net)g(con)o(tin)o(ues)315 2560 y(on)d(the)g(next)g +(line)i(and)e(the)h Fm("\\")e Fo(is)i(treated)e(exactly)i(as)e(if)i(it) +f(w)o(ere)g(a)g(space.)19 b(If)11 b(the)g(NAME)315 2615 +y(ends)k(with)f(a)g(lo)o(w)o(er-case)g(letter,)g(all)h(lo)o(w)o +(er-case)f(letters)g(are)g(stripp)q(ed)h(from)e(end)i(of)f(the)315 +2670 y(NAME)h(to)f(determine)j(the)e(matc)o(hing)g(name-on-b)q(oard)h +(name.)k(F)l(or)14 b(example:)p eop +%%Page: 26 27 +26 26 bop 75 -58 a Fo(Chapter)15 b(3:)k(User)d(Commands)1194 +b(26)315 149 y(Data)14 b(U1-3)h(U2ab)q(c-4)g(FLOP1a-7)g(Uab)q(c3-A9)315 +217 y(w)o(ould)f(sp)q(eci\014y)i(that)d(pin)h(3)g(of)f(U1)h(b)q(e)g +(connected)h(to)e(pin)i(4)e(of)h(U2,)f(to)g(pin)i(7)f(of)f(FLOP1)315 +271 y(and)e(to)g(pin)h(A9)e(of)h(Uab)q(c3.)19 b(Note)10 +b(that)g(if)i(pin)g(n)o(um)o(b)q(ers)f(con)o(tain)g(alphab)q(etic)i(c)o +(haracters,)315 326 y(they)19 b(m)o(ust)f(matc)o(h)g(the)g(case)h(con)o +(tained)g(in)g(the)g Fm(")p Fo(n)o(um)o(b)q(er)p Fm(")g +Fo(string)f(de\014ning)i(the)f(pin)315 381 y(n)o(um)o(b)q(er)14 +b(on)g(the)h(co)q(oresp)q(onding)g(elemen)o(t.)20 b(It)14 +b(is)h(up)g(to)e(y)o(ou)h(to)f(name)h(the)h(elemen)o(ts)f(so)315 +436 y(that)e(their)i(la)o(y)o(out-names)f(agrees)f(with)i(the)f +(netlist.)20 b(Netlists)14 b(are)f(used)g(for)g(generating)315 +491 y(rats)18 b(nest)i(\(see)f(Section)h(2.10)e([Rats)g(Nest],)h(page)g +(22\))f(and)i(for)f(v)o(erifying)h(the)f(b)q(oard)315 +545 y(la)o(y)o(out)c(\(whic)o(h)g(is)h(also)f(accomplished)i(b)o(y)e +(the)h Fh(R)n(atsnest)i Fo(command.)75 625 y(`)p Fm(w[q])c([filename])p +Fo(')315 680 y(These)g(commands)f(ha)o(v)o(e)g(b)q(een)h(added)g(for)f +(the)g(con)o(v)o(enience)i(of)e Fm(vi)g Fo(users)g(and)h(ha)o(v)o(e)f +(the)315 735 y(same)i(functionalit)o(y)h(as)f Fh(s)k +Fo(com)o(bined)d(with)f Fh(q)p Fo(.)75 814 y(`)p Fm(actionCommand)p +Fo(')315 869 y(Causes)f(the)g(actionCommand)g(to)g(b)q(e)g(executed.)21 +b(This)15 b(allo)o(ws)f(y)o(ou)g(to)f(initiate)j(actions)315 +924 y(for)22 b(whic)o(h)h(no)f(bindings)i(exist)f(in)g(the)f(resource)g +(\014le.)43 b(It)22 b(can)g(b)q(e)h(used)g(to)f(initiate)315 +979 y(an)o(y)c(action)g(with)g(whatev)o(er)g(argumen)o(ts)f(y)o(ou)g +(en)o(ter.)29 b(This)18 b(mak)o(es)g(it)g(p)q(ossible)i(to)d(do)315 +1034 y(things)22 b(that)f(otherwise)h(w)o(ould)h(b)q(e)f(extremely)g +(tedious.)41 b(F)l(or)21 b(example,)j(to)d(c)o(hange)315 +1088 y(the)c(drilling)i(hole)e(diameter)g(of)g(all)g(vias)g(in)h(the)e +(la)o(y)o(out)g(to)g(32)g(mils,)i(y)o(ou)e(could)i(select)315 +1143 y(ev)o(erything)13 b(using)g(the)f(selection)i(men)o(u,)f(then)g +(t)o(yp)q(e)f Fm(")p Fh(:ChangeDril)r(lSize\(Sele)n(cte)m(dVias,)315 +1198 y(32\))r Fm(")p Fo(.)27 b(\(This)17 b(will)j(only)e(w)o(ork)f(pro) +o(vided)h(the)g(via's)f(diameter)h(is)g(su\016cien)o(tly)h(large)f(to) +315 1253 y(accomo)q(date)d(a)g(32)f(mil)j(hole\).)j(Another)15 +b(example)h(migh)o(t)f(b)q(e)h(to)f(set)g(the)g(grid)g(to)g(1)g(mil)315 +1308 y(b)o(y)f(t)o(yping)h Fm(")p Fh(:SetV)m(alue\(Grid,)f(1\))r +Fm(")p Fo(.)19 b(Note)14 b(that)g(some)g(actions)h(use)g(the)f(curren)o +(t)g(cursor)315 1362 y(lo)q(cation,)22 b(so)e(b)q(e)h(sure)g(to)f +(place)h(the)g(cursor)f(where)h(y)o(ou)f(w)o(an)o(t)f(b)q(efore)i(en)o +(tering)g(the)315 1417 y(command.)e(This)c(is)f(one)g(of)f(m)o(y)g(fa)o +(v)o(orite)g(new)h(features)g(in)g(1.5)f(and)h(can)g(b)q(e)g(a)g(p)q(o) +o(w)o(erful)315 1472 y(to)q(ol.)25 b(Study)18 b(the)f(Section)h(5.2)e +([Actions],)g(page)h(35)g(section)g(to)f(see)i(what)e(actions)h(are)315 +1527 y(a)o(v)m(ailable.)p eop +%%Page: 27 28 +27 27 bop 75 -58 a Fo(Chapter)15 b(4:)k(Command-Line)e(Options)1045 +b(27)75 149 y Fk(4)41 b(Command-Line)27 b(Options)137 +266 y Fo(There)14 b(are)f(sev)o(eral)g(resources)h(whic)o(h)g(ma)o(y)f +(b)q(e)h(set)f(or)g(reset)g(in)h(addition)h(to)d(the)i(standard)f(to)q +(olkit)75 321 y(command-line)k(options.)j(F)l(or)15 b(a)f(complete)i +(list)g(refer)f(to)g(Section)h(5.1)e([Resources],)g(page)h(30.)137 +388 y(The)h(synopsis)f(is:)137 456 y Fm(pcb)g([-option)f(...])h +([-toolkit_option)e(...])h([layout-file])137 523 y Fo(or)137 +590 y Fm(pcb)h(-specialoption)75 719 y Fl(4.1)33 b(Options)75 +852 y Fo(`)p Fm(-alldirections/+alldire)o(ctions)p Fo(')315 +907 y(Disables)18 b(or)f(enables)h(line)h(clipping)h(to)c(45)h(degree)g +(angles.)26 b(Ov)o(erwrites)18 b(the)f(resource)315 962 +y Fh(al)r(lDir)n(e)n(ctionLines)p Fo(.)75 1041 y(`)p +Fm(-backup)d(value)p Fo(')315 1096 y(Time)d(b)q(et)o(w)o(een)g(t)o(w)o +(o)f(bac)o(kups)h(in)h(seconds.)19 b(P)o(assing)10 b(zero)h(disables)h +(the)f(bac)o(kup)h(feature.)315 1151 y(Ov)o(erwrites)j(the)h(resource)f +Fh(b)n(ackupInterval)p Fo(.)75 1231 y(`)p Fm(-c)g(value)p +Fo(')31 b(Num)o(b)q(er)15 b(of)e(c)o(haracters)h(p)q(er)g(output)g +(line.)21 b(The)14 b(resource)h Fh(char)n(actersPerLine)h +Fo(is)f(o)o(v)o(er-)315 1285 y(written.)75 1365 y(`)p +Fm(-fontfile)f(filename)p Fo(')315 1420 y(The)19 b(default)g(set)f(of)g +(sym)o(b)q(ols)h(\(fon)o(t\))e(for)h(a)h(new)f(la)o(y)o(out)g(is)h +(read)g(from)f(this)h(\014le.)31 b(All)315 1475 y(directories)20 +b(as)f(de\014ned)h(b)o(y)f(the)h(resource)f Fh(fontPath)k +Fo(are)18 b(scanned)i(for)f(the)g(\014le.)33 b(The)315 +1529 y(scan)17 b(is)g(only)g(p)q(erformed)g(if)h(the)e(\014lename)i(do) +q(esn't)f(con)o(tain)g(a)f(directory)h(comp)q(onen)o(t.)315 +1584 y(The)e Fh(fontFile)j Fo(resource)d(is)h(c)o(hanged.)75 +1664 y(`)p Fm(-lelement)e(command-line)p Fo(')315 1719 +y(Sets)21 b(the)f(command)h(to)e(b)q(e)j(executed)f(when)g(an)g(elemen) +o(t)g(is)g(loaded)g(from)f(a)g(\014le)i(to)315 1774 y(the)15 +b(paste)g(bu\013er.)20 b(The)c(command)f(ma)o(y)f(con)o(tain)i(\045f)f +(and)g(\045p)h(to)e(pass)h(the)g(requested)315 1828 y(\014lename)20 +b(and)g(the)g(searc)o(hpath)f(to)f(the)i(command.)32 +b(It)20 b(m)o(ust)e(write)i(the)f(data)g(to)g(its)315 +1883 y(standard)c(output.)k(The)d(related)g(resource)f(is)g +Fh(elementCommand)p Fo(.)75 1963 y(`)p Fm(-lfile)f(command-line)p +Fo(')315 2018 y(Sets)21 b(the)g(command)g(to)f(b)q(e)h(executed)h(when) +g(a)e(new)h(la)o(y)o(out)g(is)g(loaded)h(from)e(a)g(\014le.)315 +2072 y(The)15 b(command)g(ma)o(y)g(con)o(tain)g(\045f)g(and)h(\045p)f +(to)f(pass)h(the)h(requested)f(\014lename)i(and)e(the)315 +2127 y(searc)o(hpath)k(to)g(the)g(command.)32 b(It)19 +b(m)o(ust)g(write)h(the)f(data)g(to)f(its)i(standard)f(output.)315 +2182 y(The)c(related)h(resource)f(is)h Fh(\014leCommand)p +Fo(.)75 2262 y(`)p Fm(-lfont)e(command-line)p Fo(')315 +2316 y(Sets)i(the)f(command)h(to)f(b)q(e)h(executed)h(when)f(a)f(fon)o +(t)g(is)h(loaded)h(from)e(a)g(\014le.)22 b(The)16 b(com-)315 +2371 y(mand)11 b(ma)o(y)f(con)o(tain)h(\045f)g(and)g(\045p)g(to)g(pass) +f(the)i(requested)f(\014lename)h(and)f(the)g(searc)o(hpath)315 +2426 y(to)17 b(the)g(command.)26 b(It)18 b(m)o(ust)e(write)i(the)f +(data)g(to)f(its)i(standard)f(output.)26 b(The)18 b(related)315 +2481 y(resource)d(is)h Fh(fontCommand)p Fo(.)75 2560 +y(`)p Fm(-lg)e(layergroups)p Fo(')315 2615 y(This)k(option)g(o)o(v)o +(erwrites)e(the)i(resource)f Fh(layerGr)n(oups)p Fo(.)27 +b(See)18 b(its)g(description)h(for)d(more)315 2670 y(information.)k +(The)15 b(v)m(alue)i(is)f(used)f(for)g(new)g(la)o(y)o(outs)g(only)l(.)p +eop +%%Page: 28 29 +28 28 bop 75 -58 a Fo(Chapter)15 b(4:)k(Command-Line)e(Options)1045 +b(28)75 149 y(`)p Fm(-libname)14 b(filename)p Fo(')315 +204 y(The)h(default)h(\014lename)h(for)d(the)h(library)l(.)21 +b(Ov)o(erwrites)16 b(the)f(resource)g Fh(libr)n(aryFilename)p +Fo(.)75 277 y(`)p Fm(-libpath)f(path)p Fo(')315 332 y(The)e(default)g +(searc)o(h)f(path)h(for)f(the)h(the)f(library)l(.)20 +b(Ov)o(erwrites)12 b(the)g(resource)f Fh(libr)n(aryPath)p +Fo(.)75 405 y(`)p Fm(-llib)j(command-line)p Fo(')315 +460 y(Sets)i(the)f(command)h(to)f(b)q(e)h(executed)h(when)f(an)g +(elemen)o(t)g(is)g(loaded)h(from)e(the)g(library)l(.)315 +515 y(The)g(command)g(ma)o(y)g(con)o(tain)g(\045f)g(and)h(\045p)f(to)f +(pass)h(the)h(requested)f(\014lename)i(and)e(the)315 +570 y(searc)o(hpath)h(to)h(the)f(command.)25 b(\045a)16 +b(is)h(replaces)h(b)o(y)f(the)f(three)h(argumen)o(ts)f +Fh(template)p Fo(,)315 624 y Fh(value)j Fo(and)c Fh(p)n(ackage)p +Fo(.)20 b(The)c(command)f(m)o(ust)g(write)g(the)h(data)e(to)h(its)h +(standard)f(output.)315 679 y(The)g(related)h(resource)f(is)h +Fh(libr)n(aryCommand)p Fo(.)75 752 y(`)p Fm(-llibcont)e(command-line)p +Fo(')315 807 y(The)i(command)f(lists)h(the)g(con)o(ten)o(ts)f(of)g(the) +h(library)l(.)22 b(The)15 b(command)h(ma)o(y)f(con)o(tain)g(\045f)315 +862 y(and)g(\045p)f(to)g(pass)h(the)f(library)h(\014lename)h(and)f(the) +f(searc)o(hpath)h(to)e(the)i(command.)20 b(Also)315 917 +y(refer)e(to)f(Section)i(6.6)e([Library)h(File],)h(page)f(50)g(and)g +(Section)h(6.5)e([Library)h(Con)o(ten)o(ts)315 971 y(File],)e(page)f +(50.)k(The)c(related)h(resource)f(is)h Fh(libr)n(aryContentsCommand)p +Fo(.)75 1044 y(`)p Fm(-loggeometry)d(geometry)p Fo(')315 +1099 y(Determines)j(the)f(geometry)f(of)h(the)g(log)h(windo)o(w.)75 +1172 y(`)p Fm(-pnl)e(value)p Fo(')315 1227 y(Restricts)f(the)h(displa)o +(y)o(ed)g(length)h(of)e(the)g(name)h(of)f(a)g(pin)i(in)f(the)g(pinout)g +(windo)o(w)g(to)f(the)315 1282 y(passed)i(v)m(alue.)22 +b(See)15 b(also,)g(the)g(resource)h Fh(pinoutNameL)n(ength)p +Fo(.)75 1355 y(`)p Fm(-pz)e(value)p Fo(')315 1410 y(Sets)i(the)g(zo)q +(om)g(factor)f(for)g(the)h(pinout)h(windo)o(w)f(according)h(to)e(the)h +(form)o(ula:)21 b(scale)c(=)315 1465 y(1:\(2)d(p)q(o)o(w)o(er)h(v)m +(alue\).)20 b(The)c(related)f(resource)h(is)f Fh(pinoutZo)n(om)p +Fo(.)75 1538 y(`)p Fm(-reset/+reset)p Fo(')315 1592 y(If)f(enabled,)i +(all)f(connections)g(are)f(reset)f(after)h(eac)o(h)g(elemen)o(t)h(is)f +(scanned.)21 b(This)14 b(feature)315 1647 y(is)g(only)f(used)h(while)g +(scanning)g(connections)g(to)f(all)h(elemen)o(ts.)19 +b(See)14 b(also,)f Fh(r)n(esetAfterEle-)315 1702 y(ment)p +Fo(.)75 1775 y(`)p Fm(-ring/+ring)p Fo(')315 1830 y(Ov)o(errides)h(the) +f(resource)h Fh(ringBel)r(lWhenFinishe)n(d)p Fo(.)j(If)c(enabled,)i +(the)e(b)q(ell)i(sounds)e(when)315 1885 y(connection)j(searc)o(hing)g +(has)f(\014nished.)75 1958 y(`)p Fm(-rs)f(string)p Fo(')315 +2012 y(Ov)o(errides)30 b(the)f(resource)g Fh(r)n(outeStyle)p +Fo(.)61 b(The)30 b(string)f(de\014nes)h(a)f(colon)g(separated)315 +2067 y(list)35 b(of)f(route)g(st)o(yles.)78 b(The)34 +b(route)g(st)o(yles)h(consist)f(of)g(a)g(comma)g(separated)315 +2122 y(list)k(of)e(name,)42 b(line)c(thic)o(kness,)43 +b(via)37 b(diameter,)42 b(and)37 b(via)g(drill)i(size.)86 +b(e.g.)315 2177 y Fm(")p Fo(F)l(at,50,100,4)o(0:Skinn)o(y)l(,8,35)o +(,20:)o(75Ohm,1)o(10,1)o(10,)o(20)p Fm(")75 2250 y Fo(`)p +Fm(-s/+s)p Fo(')94 b(Enables/Disables)16 b(the)f(sa)o(ving)g(of)f(the)h +(previous)g(commandline.)22 b(Ov)o(errides)15 b(the)g +Fh(save-)315 2305 y(L)n(astCommand)k Fo(resource.)75 +2378 y(`)p Fm(-save/+save)p Fo(')315 2433 y(See)d(the)f(resource)g +(description)i(of)e Fh(saveInTMP)i Fo(for)e(details.)75 +2506 y(`)p Fm(-sfile)f(command-line)p Fo(')315 2560 y(Sets)i(the)g +(command)f(to)g(b)q(e)i(executed)g(when)f(an)g(la)o(y)o(out)f(\014le)i +(is)f(sa)o(v)o(ed.)21 b(The)16 b(command)315 2615 y(ma)o(y)d(con)o +(tain)g(\045f)g(whic)o(h)i(is)f(replaced)g(b)o(y)g(the)f(\014lename.)21 +b(The)13 b(command)h(m)o(ust)e(read)i(its)315 2670 y(data)h(from)f(the) +h(standard)g(input.)21 b(The)15 b(resource)h Fh(saveCommand)j +Fo(is)d(o)o(v)o(erwritten.)p eop +%%Page: 29 30 +29 29 bop 75 -58 a Fo(Chapter)15 b(4:)k(Command-Line)e(Options)1045 +b(29)75 149 y(`)p Fm(-size)14 b(x)p Fo(')315 +204 y(Ov)o(errides)i(the)f(resource)h Fh(size)h Fo(whic)o(h)f +(determines)g(the)g(maxim)o(um)f(size)h(of)f(a)g(la)o(y)o(out.)75 +284 y(`)p Fm(-v)g(value)p Fo(')31 b(Sets)14 b(the)g(v)o(olume)g(of)g +(the)g(X)g(sp)q(eak)o(er.)19 b(The)c(v)m(alue)g(is)f(passed)g(to)g +Fm(XBell\(\))f Fo(and)h(m)o(ust)f(b)q(e)315 339 y(in)j(the)f(range)g +(-100..100.)75 467 y Fl(4.2)33 b(Sp)r(ecial)23 b(Options)137 +564 y Fo(There)18 b(are)g(some)f(sp)q(ecial)j(options)e(a)o(v)m +(ailable)h(in)g(addition)f(to)f(normal)h(command)g(line)h(options.)75 +619 y(Eac)o(h)d(of)g(these)g(m)o(ust)g(b)q(e)h(the)f(only)h(option)f +(sp)q(eci\014ed)i(on)e(a)g(command)g(line.)25 b(The)16 +b(a)o(v)m(ailable)i(sp)q(ecial)75 673 y(options)d(are:)75 +778 y(`)p Fm(-copyright)p Fo(')315 833 y(Prin)o(ts)g(out)g(the)g(cop)o +(yrigh)o(t)g(notice)h(and)f(terminates.)75 912 y(`)p +Fm(-version)p Fo(')315 967 y(Prin)o(ts)g(out)g(the)g(v)o(ersion)h(ID)f +(and)g(terminates.)75 1047 y(`)p Fm(-help)p Fo(')94 b(Prin)o(ts)15 +b(out)g(the)g(usage)g(message)g(and)g(terminates.)p eop +%%Page: 30 31 +30 30 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(30)75 149 y Fk(5)41 b(X11)27 b(In)n(terface)137 287 +y Fo(This)16 b(c)o(hapter)e(giv)o(es)h(an)g(o)o(v)o(erview)f(ab)q(out)h +(the)g(additional)h Fm(X11)e Fo(resources)h(whic)o(h)g(are)g(de\014ned) +h(b)o(y)75 342 y Fm(Pcb)f Fo(as)g(w)o(ell)h(as)f(the)g(de\014ned)h +(action)g(routines.)75 488 y Fl(5.1)33 b(Non-Standard)23 +b(X11)f(Application)i(Resources)137 591 y Fo(In)16 b(addition)g(to)f +(the)g(to)q(olkit)h(resources,)f Fm(Pcb)f Fo(de\014nes)i(the)g(follo)o +(wing)g(resources:)75 717 y(`)p Fm(absoluteGrid)d(\(boolean\))p +Fo(')315 771 y(Selects)j(if)f(either)h(the)e(grid)i(is)f(relativ)o(e)g +(to)f(the)h(p)q(osition)h(where)f(it)g(has)g(c)o(hanged)g(last)f(or)315 +826 y(absolute,)h(the)g(default,)h(to)e(the)i(origin)g(\(0,0\).)75 +913 y(`)p Fm(alignmentDistance)c(\(dimension\))p Fo(')315 +968 y(Sp)q(eci\014es)17 b(the)f(distance)g(b)q(et)o(w)o(een)f(the)g(b)q +(oards)h(outline)g(to)f(the)g(alignmen)o(t)h(targets.)75 +1054 y(`)p Fm(allDirectionLines)c(\(boolean\))p Fo(')315 +1109 y(Enables)k(\(default\))f(or)g(disables)i(clipping)g(of)e(new)h +(lines)g(to)f(45)f(degree)i(angles.)75 1196 y(`)p Fm(backupInterval)d +(\(int\))p Fo(')315 1251 y Fm(Pcb)21 b Fo(has)g(an)h(automatic)e(bac)o +(kup)i(feature)f(whic)o(h)h(sa)o(v)o(es)f(the)g(curren)o(t)h(data)e(ev) +o(ery)i(n)315 1305 y(seconds.)e(The)c(default)g(is)g +Fh(300)22 b Fo(seconds.)e(A)15 b(v)m(alue)i(of)e(zero)g(disables)i(the) +e(feature.)20 b(The)315 1360 y(bac)o(kup)15 b(\014le)g(is)g(named)f(`)p +Fm(/tmp/PCB.\045i.backup)p Fo('.)j Fh(\045i)i Fo(is)c(replaced)g(b)o(y) +f(the)h(pro)q(cess)f(ID.)315 1415 y(See)i(also,)f(the)g(command-line)i +(option)e Fh(-b)n(ackup)p Fo(.)75 1502 y(`)p Fm(Bloat)f(\(dimension\))p +Fo(')315 1556 y(Sp)q(eci\014es)j(the)f(minim)o(um)g(spacing)g(design)g +(rule)g(in)g(mils.)75 1643 y(`)p Fm(charactersPerLine)c(\(int\))p +Fo(')315 1698 y Fm(Pcb)19 b Fo(uses)g(this)h(v)m(alue)g(to)f(determine) +h(the)f(page)g(width)h(when)g(creating)f(lists.)33 b(N,)19 +b(the)315 1753 y(n)o(um)o(b)q(er)k(of)f(c)o(haracters)g(p)q(er)i(line,) +i(defaults)d(to)f Fh(80)p Fo(.)43 b(See)23 b(also,)h(the)f +(command-line)315 1807 y(option)15 b Fh(-c)p Fo(.)75 +1894 y(`)p Fm(connectedColor)e(\(color\))p Fo(')315 1949 +y(All)g(pins,)g(vias,)f(lines)i(and)d(rectangles)i(whic)o(h)f(are)f +(selected)i(during)g(a)e(connection)i(searc)o(h)315 2004 +y(are)j(dra)o(wn)h(with)g(this)g(color.)24 b(The)17 b(default)g(v)m +(alue)h(is)g(determined)g(b)o(y)e Fh(XtDefaultF)m(or)n(e-)315 +2058 y(gr)n(ound)p Fo(.)75 2145 y(`)p Fm(crosshairColor)d(\(color\))p +Fo(')315 2200 y(This)j(color)f(is)h(used)f(to)g(dra)o(w)f(the)i +(crosshair)f(cursor.)k(The)d(color)f(is)g(a)g(result)h(of)f(a)f +Fh(X)o(OR)315 2255 y Fo(op)q(eration)k(with)h(the)f(con)o(ten)o(ts)f +(of)h(the)g(dra)o(wing)g(area.)28 b(The)19 b(result)f(also)g(dep)q +(ends)i(on)315 2309 y(the)14 b(default)g(colormap)g(of)g(the)g +Fm(X11)f Fo(serv)o(er)h(b)q(ecause)h(only)f(the)g(colormap)g(index)h +(is)f(used)315 2364 y(in)h(the)f(b)q(o)q(olean)h(op)q(eration)f(and)g +Fm(Pcb)f Fo(do)q(esn't)h(create)f(its)i(o)o(wn)e(colormap.)19 +b(The)14 b(default)315 2419 y(setting)h(is)h Fh(XtDefaultF)m(or)n(e)n +(gr)n(ound)p Fo(.)75 2506 y(`)p Fm(elementColor)d(\(color\))p +Fo(')75 2560 y(`)p Fm(elementSelectedColor)f(\(color\))p +Fo(')315 2615 y(The)20 b(elemen)o(ts)g(pac)o(k)m(age)f(part)g(is)h(dra) +o(wn)f(in)h(these)g(colors,)g(for)f(normal)g(and)h(selected)315 +2670 y(mo)q(de,)15 b(resp)q(ectiv)o(ely)l(,)i(whic)o(h)f(b)q(oth)f +(default)h(to)f Fh(XtDefaultF)m(or)n(e)n(gr)n(ound)p +Fo(.)p eop +%%Page: 31 32 +31 31 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(31)75 149 y(`)p Fm(elementCommand)13 b(\(string\))p +Fo(')315 204 y Fm(Pcb)j Fo(uses)g(a)g(user)g(de\014ned)h(command)f(to)f +(read)h(elemen)o(t)h(\014les.)23 b(This)17 b(resources)f(is)g(used)315 +259 y(to)g(set)h(the)g(command)f(whic)o(h)i(is)f(executed)h(b)o(y)f +(the)g(users)g(default)g(shell.)26 b(Tw)o(o)16 b(escap)q(e)315 +314 y(sequences)f(are)f(de\014ned)h(to)f(pass)g(the)g(selected)h +(\014lename)g(\(\045f)t(\))e(and)h(the)g(curren)o(t)g(searc)o(h)315 +369 y(path)g(\(\045p\).)19 b(The)14 b(command)g(m)o(ust)g(write)g(the)h +(elemen)o(t)f(data)g(to)f(its)i(standard)f(output.)315 +423 y(The)h(default)h(v)m(alue)h(is)530 488 y Fm(M4PATH="\045p";export) +22 b(M4PATH;echo)g('include\(\045f\)')g(|)i(m4)315 555 +y Fo(Using)16 b(the)g(GNU)g(v)o(ersion)f(of)h Fm(m4)f +Fo(is)h(highly)h(recommended.)22 b(See)17 b(also,)e(the)h(command-)315 +610 y(line)h(option)e Fh(-lelement)p Fo(.)75 690 y(`)p +Fm(elementPath)e(\(string\))p Fo(')315 745 y(A)h(colon)g(separated)f +(list)i(of)e(directories)h(or)g(commands)f(\(starts)f(with)i(')p +Fm(|)p Fo('\).)k(The)c(path)f(is)315 800 y(passed)g(to)f(the)g(program) +g(sp)q(eci\014ed)i(in)g Fh(elementCommand)i Fo(together)c(with)h(the)g +(selected)315 855 y(elemen)o(tname.)21 b(A)15 b(sp)q(eci\014ed)j +(command)d(will)i(b)q(e)f(executed)g(in)g(order)f(to)g(create)g(en)o +(tries)315 910 y(for)f(the)h(\014leselect)h(b)q(o)o(x.)k(It)15 +b(m)o(ust)f(write)h(its)g(results)g(to)f Fh(stdout)20 +b Fo(one)14 b(en)o(try)h(p)q(er)g(line.)21 b(See)315 +964 y(also,)15 b(the)g(user-command)g Fh(le[!])p Fo(.)75 +1044 y(`)p Fm(fileCommand)e(\(string\))p Fo(')315 1099 +y(The)j(command)g(is)h(executed)g(b)o(y)f(the)g(user's)g(default)h +(shell)h(whenev)o(er)e(existing)i(la)o(y)o(out)315 1154 +y(\014les)13 b(are)e(loaded.)19 b(Data)11 b(is)h(read)f(from)g(the)h +(command's)f(standard)g(output.)19 b(Tw)o(o)10 b(escap)q(e)315 +1209 y(sequences)17 b(ma)o(y)f(b)q(e)h(sp)q(eci\014ed)h(to)e(pass)g +(the)g(selected)i(\014lename)f(\(\045f)t(\))e(and)i(the)f(curren)o(t) +315 1264 y(searc)o(h)f(path)g(\(\045p\).)k(The)d(default)g(v)m(alue)g +(is:)530 1328 y Fm(cat)24 b(\045f)315 1396 y Fo(See)16 +b(also,)f(the)g(command-line)i(option)e Fh(-l\014le)p +Fo(.)75 1476 y(`)p Fm(filePath)f(\(string\))p Fo(')315 +1531 y(A)j(colon)h(separated)f(list)g(of)g(directories)h(or)f(commands) +g(\(starts)e(with)i(')p Fm(|)p Fo('\).)25 b(The)17 b(path)315 +1585 y(is)h(passed)f(to)g(the)g(program)f(sp)q(eci\014ed)j(in)f +Fh(\014leCommand)j Fo(together)c(with)g(the)h(selected)315 +1640 y(\014lename.)27 b(A)17 b(sp)q(eci\014ed)i(command)e(will)h(b)q(e) +g(executed)g(in)g(order)f(to)f(create)h(en)o(tries)h(for)315 +1695 y(the)h(\014leselect)h(b)q(o)o(x.)31 b(It)18 b(m)o(ust)h(write)f +(its)h(results)g(to)f Fh(stdout)24 b Fo(one)19 b(en)o(try)f(p)q(er)h +(line.)32 b(See)315 1750 y(also,)15 b(the)g(user-command)g +Fh(l[!])p Fo(.)75 1830 y(`)p Fm(fontCommand)e(\(string\))p +Fo(')315 1885 y(Loading)k(new)f(sym)o(b)q(ol)h(sets)e(also)h(is)h +(handled)h(b)o(y)e(an)g(external)g(command.)23 b(Y)l(ou)16 +b(again)315 1939 y(ma)o(y)f(pass)g(the)h(selected)g(\014lename)h(and)f +(the)f(curren)o(t)h(searc)o(h)f(path)g(b)o(y)h(passing)g(\045f)f(and) +315 1994 y(\045p)f(in)h(the)g(command)f(string.)20 b(Data)13 +b(is)h(read)h(from)e(the)i(commands)f(standard)g(output.)315 +2049 y(This)i(command)f(defaults)h(to)530 2114 y Fm(cat)24 +b(\045f)315 2181 y Fo(See)16 b(also,)f(the)g(command-line)i(option)e +Fh(-lfont)p Fo(.)75 2261 y(`)p Fm(fontFile)f(\(string\))p +Fo(')315 2316 y(The)i(default)h(fon)o(t)e(for)g(new)h(la)o(y)o(outs)f +(is)i(read)f(from)f(this)h(\014le)h(whic)o(h)g(is)f(searc)o(hed)g(in)h +(the)315 2371 y(directories)g(as)f(de\014ned)h(b)o(y)f(the)g(resource)g +Fh(fontPath)p Fo(.)22 b(Searc)o(hing)17 b(is)g(only)f(p)q(erformed)g +(if)315 2425 y(the)h(\014lename)h(do)q(es)f(not)f(con)o(tain)h(a)g +(directory)g(comp)q(onen)o(t.)25 b(The)17 b(default)h(\014lename)f(is) +315 2480 y(`)p Fm(default_font)p Fo('.)g(See)f(also,)f(the)g +(command-line)i(option)f Fh(-font\014le)p Fo(.)75 2560 +y(`)p Fm(fontPath)e(\(string\))p Fo(')315 2615 y(This)19 +b(resource,)f(a)g(colon)h(separated)e(list)i(of)f(directories,)h +(de\014nes)h(the)e(searc)o(hpath)g(for)315 2670 y(fon)o(t)c(\014les.)21 +b(See)16 b(also,)f(the)g(resource)g Fh(fontFile)p Fo(.)p +eop +%%Page: 32 33 +32 32 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(32)75 149 y(`)p Fm(grid)14 b(\(int\))p Fo(')315 204 +y(This)g(resources)f(de\014nes)i(the)e(initial)i(v)m(alue)g(of)e(one)g +(cursor)g(step.)19 b(It)14 b(defaults)f(to)g Fh(100)i(mil)315 +259 y Fo(and)g(an)o(y)g(c)o(hanges)g(are)g(sa)o(v)o(ed)g(together)f +(with)i(the)f(la)o(y)o(out)g(data.)75 335 y(`)p Fm(gridColor)f +(\(color\))p Fo(')315 390 y(This)e(color)g(is)g(used)g(to)f(dra)o(w)g +(the)h(grid.)19 b(The)12 b(color)g(is)g(a)f(result)h(of)g(a)f +Fh(INVER)m(T)16 b Fo(op)q(eration)315 445 y(with)g(the)h(con)o(ten)o +(ts)e(of)h(the)g(dra)o(wing)g(area.)22 b(The)16 b(result)h(also)f(dep)q +(ends)h(on)f(the)g(default)315 500 y(colormap)21 b(of)h(the)f +Fm(X11)g Fo(serv)o(er)h(b)q(ecause)g(only)g(the)g(colormap)f(index)i +(is)f(used)g(in)h(the)315 554 y(b)q(o)q(olean)13 b(op)q(eration)f(and)g +Fm(Pcb)g Fo(do)q(esn't)g(create)g(its)g(o)o(wn)f(colormap.)19 +b(The)12 b(default)h(setting)315 609 y(is)j Fh(XtDefaultF)m(or)n(e)n +(gr)n(ound)p Fo(.)75 685 y(`)p Fm(elementColor)d(\(color\))p +Fo(')315 740 y(Elemen)o(ts)20 b(lo)q(calted)h(on)e(the)g(opp)q(osite)i +(side)f(of)f(the)h(b)q(oard)f(are)g(dra)o(wn)g(in)h(this)g(color.)315 +795 y(The)15 b(default)h(is)g Fh(XtDefaultF)m(or)n(e)n(gr)n(ound)p +Fo(.)75 871 y(`)p Fm(layerColor1..8)d(\(color\))p Fo(')75 +926 y(`)p Fm(layerSelectedColor1..8)f(\(color\))p Fo(')315 +981 y(These)k(resources)f(de\014ne)i(the)f(dra)o(wing)f(colors)g(of)g +(the)h(di\013eren)o(t)g(la)o(y)o(ers)f(in)h(normal)g(and)315 +1036 y(selected)g(state.)j(All)e(v)m(alues)f(are)f(preset)g(to)g +Fh(XtDefaultF)m(or)n(e)n(gr)n(ound)p Fo(.)75 1112 y(`)p +Fm(layerGroups)e(\(string\))p Fo(')315 1167 y(The)20 +b(argumen)o(t)g(to)f(this)i(resource)f(is)h(a)f(colon)h(separated)f +(list)h(of)f(comma)f(separated)315 1221 y(la)o(y)o(ern)o(um)o(b)q(ers)d +(\(1..8\).)22 b(All)17 b(la)o(y)o(ers)f(within)i(one)e(group)g(are)g +(switc)o(hed)h(on/o\013)e(together.)315 1276 y(The)h(default)h(setting) +f(is)h Fh(1:2:3:...:8)22 b Fo(whic)o(h)17 b(means)f(all)h(la)o(y)o(ers) +f(are)g(handled)h(separatly)l(.)315 1331 y(Grouping)d(la)o(y)o(ers)g +(one)g(to)f(three)h(lo)q(oks)g(lik)o(e)h Fh(1,2,3:4:...:8)20 +b Fo(See)15 b(also,)e(the)h(command-line)315 1386 y(option)h +Fh(-lg)p Fo(.)75 1462 y(`)p Fm(layerName1..8)e(\(string\))p +Fo(')315 1517 y(The)20 b(default)h(name)f(of)f(the)h(la)o(y)o(ers)g(in) +h(a)e(new)i(la)o(y)o(out)e(are)h(determined)h(b)o(y)f(these)g(re-)315 +1572 y(sources.)g(The)15 b(defaults)h(are)f(empt)o(y)g(strings.)75 +1648 y(`)p Fm(libraryCommand)e(\(string\))p Fo(')315 +1703 y Fm(Pcb)g Fo(uses)h(a)f(command)h(to)f(read)h(elemen)o(t)g(data)f +(from)g(libraries.)21 b(The)14 b(resources)f(is)h(used)315 +1757 y(to)g(set)h(the)g(command)f(whic)o(h)i(is)f(executed)h(b)o(y)f +(the)g(users)f(default)i(shell.)21 b(Three)15 b(escap)q(e)315 +1812 y(sequences)e(are)e(de\014ned)i(to)d(pass)i(the)f(selected)i +(\014lename)f(\(\045f)t(\),)f(the)g(curren)o(t)h(searc)o(h)f(path)315 +1867 y(\(\045p\))k(as)h(w)o(ell)h(\(\045a\))e(as)g(the)h(three)h +(parameters)e Fh(template)p Fo(,)h Fh(value)j Fo(and)d +Fh(p)n(ackage)k Fo(to)15 b(the)315 1922 y(command.)20 +b(It)15 b(m)o(ust)g(write)g(the)h(elemen)o(t)g(data)e(to)h(its)g +(standard)g(output.)20 b(The)15 b(default)315 1977 y(v)m(alue)h(is)530 +2039 y Fm(/usr/X11R6/lib/X11/pcb/QueryL)o(ibrary.s)o(h)21 +b(\045p)j(\045f)f(\045a)75 2115 y Fo(`)p Fm(libraryContentsCommand)12 +b(\(string\))p Fo(')315 2170 y(Similar)19 b(to)e Fh(libr)n(aryCommand)p +Fo(,)h Fm(Pcb)f Fo(uses)h(the)f(command)h(sp)q(eci\014ed)h(b)o(y)f +(this)g(resource)315 2225 y(to)d(list)h(the)f(con)o(ten)o(ts)f(of)h(a)g +(library)l(.)435 2288 y Fm(/usr/X11R6/lib/X11/pcb/Lis)o(tLibrar)o +(yContent)o(s.sh)21 b(\045p)i(\045f)315 2353 y Fo(is)16 +b(the)f(default.)75 2429 y(`)p Fm(libraryFilename)e(\(string\))p +Fo(')315 2484 y(The)i(resource)h(sp)q(eci\014es)h(the)e(name)g(of)g +(the)g(library)l(.)21 b(The)16 b(default)f(v)m(alue)i(is)e +Fh(p)n(cblib)p Fo(.)75 2560 y(`)p Fm(libraryPath)e(\(string\))p +Fo(')315 2615 y(A)h(colon)h(separated)f(list)i(of)e(directories)h(that) +f(will)i(b)q(e)f(passed)g(to)e(the)i(commands)f(sp)q(ec-)315 +2670 y(i\014ed)i(b)o(y)g Fh(elementCommand)j Fo(and)c +Fh(elementContentsCommand)p Fo(.)p eop +%%Page: 33 34 +33 33 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(33)75 149 y(`)p Fm(lineThickness)13 b(\(dimension\))p +Fo(')315 204 y(The)i(v)m(alue,)h(in)o(t)f(the)g(range)g([1..250],)d +(de\014nes)k(the)f(initial)i(thic)o(kness)f(of)e(new)h(lines.)22 +b(The)315 259 y(v)m(alue)16 b(is)g(preset)f(to)g Fh(ten)h(mil)p +Fo(.)75 336 y(`)p Fm(media)e(\()f(|)i +(x+-+-\))p +Fo(')315 391 y(The)h(default)g(\(user)g(de\014ned\))h(media)f(of)f(the) +h Fm(PostScript)f Fo(device.)23 b(Prede\014ned)17 b(v)m(alues)315 +445 y(are)e Fh(a3)p Fo(,)h Fh(a4)p Fo(,)g Fh(a5)p Fo(,)g +Fh(letter)p Fo(,)f Fh(tabloit)p Fo(,)g Fh(le)n(dger)p +Fo(,)g Fh(le)n(gal)p Fo(,)f(and)i Fh(exe)n(cutive)p Fo(.)21 +b(The)16 b(second)g(w)o(a)o(y)e(is)j(to)315 500 y(sp)q(ecify)g(the)f +(medias)g(width,)h(heigh)o(t)f(and)g(margins)g(in)g(mil.)23 +b(The)16 b(resource)g(defaults)h(to)315 555 y Fh(a4)22 +b Fo(size.)75 632 y(`)p Fm(offLimitColor)13 b(\(color\))p +Fo(')315 686 y(The)j(area)f(outside)h(the)f(curren)o(t)g(maxim)o(um)h +(settings)f(for)g(width)h(and)g(heigh)o(t)f(is)h(dra)o(wn)315 +741 y(with)g(this)f(color.)20 b(The)c(default)f(v)m(alue)i(is)e +(determined)i(b)o(y)e Fh(XtDefaultBackgr)n(ound)p Fo(.)75 +818 y(`)p Fm(pinColor)f(\(color\))p Fo(')75 873 y(`)p +Fm(pinSelectedColor\(color\))o Fo(')315 928 y(This)k(resource)g +(de\014nes)h(the)f(dra)o(wing)g(color)f(of)h(pins)h(and)f(pads)f(in)i +(b)q(oth)f(states.)27 b(The)315 982 y(v)m(alues)16 b(are)f(preset)g(to) +g Fh(XtDefaultF)m(or)n(e)n(gr)n(ound)p Fo(.)75 1059 y(`)p +Fm(pinoutFont)e(\(string\))p Fo(')315 1114 y(This)g(fon)o(ts)f(are)g +(used)h(to)e(displa)o(y)j(pin)f(names.)19 b(There)13 +b(is)g(one)f(fon)o(t)g(for)g(eac)o(h)g(zo)q(om)g(v)m(alue.)315 +1169 y(The)j(v)m(alues)i(are)e(preset)g(to)f Fh(XtdefaultF)m(ont)p +Fo(.)75 1245 y(`)p Fm(pinoutNameLength)f(\(int\))p Fo(')315 +1300 y(This)g(resource)f(limits)i(the)e(n)o(um)o(b)q(er)g(of)g(c)o +(haracters)g(whic)o(h)h(are)f(displa)o(y)o(ed)h(for)f(pin)h(names)315 +1355 y(in)g(the)f(pinout)h(windo)o(w.)19 b(By)12 b(default)h(the)f +(string)g(length)g(is)h(limited)h(to)d Fh(eight)17 b +Fo(c)o(haracters)315 1410 y(p)q(er)f(name.)k(See)15 b(also,)g(the)g +(command-line)i(option)f Fh(-pnl)p Fo(.)75 1486 y(`)p +Fm(pinoutOffsetX)d(\(int\))p Fo(')75 1541 y(`)p Fm(pinoutOffsetY)g +(\(int\))p Fo(')315 1596 y(These)18 b(resources)g(determine)h(the)f +(o\013set)f(in)i Fh(mil)j Fo(of)17 b(the)h(circuit)i(from)d(the)h(upp)q +(er)h(left)315 1651 y(corner)14 b(of)h(the)f(windo)o(w)h(when)g(displa) +o(ying)h(pinout)f(information.)20 b(Both)14 b(default)h(to)f +Fh(100)315 1706 y(mil)p Fo(.)75 1782 y(`)p Fm(pinoutTextOffsetX)e +(\(int\))p Fo(')75 1837 y(`)p Fm(pinoutTextOffsetY)g(\(int\))p +Fo(')315 1892 y(The)k(resources)h(determine)g(the)f(distance)h(in)g +(mil)h(b)q(et)o(w)o(een)e(the)g(drilling)j(hole)e(of)f(a)g(pin)315 +1947 y(to)d(the)h(lo)q(cation)g(where)g(its)f(name)h(is)g(displa)o(y)o +(ed)h(in)f(the)g(pinout)g(windo)o(w.)20 b(They)13 b(default)315 +2001 y(to)i Fh(X:50)21 b Fo(and)15 b Fh(Y:0)p Fo(.)75 +2078 y(`)p Fm(pinoutZoom)e(\(int\))p Fo(')315 2133 y(Sets)j(the)g(zo)q +(om)g(factor)f(for)g(the)h(pinout)h(windo)o(w)f(according)h(to)e(the)h +(form)o(ula:)21 b(scale)c(=)315 2188 y(1:\(2)12 b(p)q(o)o(w)o(er)g(v)m +(alue\).)20 b(Its)13 b(default)h(v)m(alue)g(is)g Fh(two)i +Fo(whic)o(h)e(results)g(in)g(a)e Fh(1:4)20 b Fo(scale.)g(See)13 +b(also,)315 2243 y(the)i(command-line)i(option)f Fh(-pz)p +Fo(.)75 2319 y(`)p Fm(printCommand)d(\(string\))p Fo(')315 +2374 y(Default)20 b(\014le)i(for)d(prin)o(touts.)35 b(If)21 +b(the)f(name)g(starts)f(with)i(a)f(')p Fm(|)p Fo(')f(the)h(output)g(is) +h(pip)q(ed)315 2429 y(through)16 b(the)h(command.)23 +b(A)17 b(\045f)f(is)h(replaced)h(b)o(y)e(the)h(curren)o(t)f +(\014lename.)25 b(There)17 b(is)g(no)315 2484 y(default)f(\014le)g(or)f +(command.)75 2560 y(`)p Fm(raiseLogWindow)e(\(boolean\))p +Fo(')315 2615 y(The)j(log)f(windo)o(w)h(will)i(b)q(e)e(raised)g(when)g +(new)g(messages)f(arriv)o(e)g(if)h(this)g(resource)g(is)g(set)315 +2670 y Fh(true)p Fo(,)f(the)h(default.)p eop +%%Page: 34 35 +34 34 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(34)75 149 y(`)p Fm(ratCommand)13 b(\(string\))p Fo(')315 +204 y(Default)f(command)h(for)f(reading)h(a)f(netlist.)20 +b(A)12 b(\045f)g(is)h(replaced)h(b)o(y)e(the)h(netlist)g(\014lename.) +315 259 y(Its)i(default)h(v)m(alue)g(is)g Fm(")p Fh(c)n(at)g(\045f)10 +b Fm(")p Fo(.)75 332 y(`)p Fm(ratPath)k(\(string\))p +Fo(')315 387 y(Default)h(path)g(to)g(lo)q(ok)g(for)g(netlist)h +(\014les.)21 b(It's)15 b(default)g(v)m(alue)i(is)f Fm(")p +Fo(.)p Fm(")75 460 y Fo(`)p Fm(resetAfterElement)c(\(boolean\))p +Fo(')315 515 y(If)f(set)g(to)f Fh(true)p Fo(,)i(all)g(found)f +(connections)h(will)h(b)q(e)f(reset)e(b)q(efore)i(a)e(new)h(elemen)o(t) +h(is)g(scanned.)315 570 y(This)f(will)h(pro)q(duce)f(long)f(lists)h +(when)g(scanning)g(the)f(whole)h(la)o(y)o(out)f(for)f(connections.)20 +b(The)315 625 y(resource)e(is)h(set)f(to)f Fh(false)k +Fo(b)o(y)d(default.)29 b(The)18 b(feature)g(is)h(only)f(used)h(while)h +(lo)q(oking)e(up)315 680 y(connections)e(of)f(all)h(elemen)o(ts.)21 +b(See)15 b(also,)g(the)h(command-line)g(option)g Fh(-r)n(eset,)g +Fm(+)p Fh(r)n(eset)p Fo(.)75 753 y(`)p Fm(ringBellWhenFinished)c +(\(boolean\))p Fo(')315 808 y(Whether)18 b(to)f(ring)h(the)f(b)q(ell)j +(\(the)d(default\))h(when)g(a)f(p)q(ossibly)i(length)o(y)f(op)q +(eration)g(has)315 862 y(\014nished)f(or)e(not.)k(See)d(also,)f(the)g +(command-line)i(option)e Fh(-ring,)h Fm(+)p Fh(ring)p +Fo(.)75 936 y(`)p Fm(routeStyle)d(\(string\))p Fo(')315 +991 y(Default)20 b(v)m(alues)h(for)e(the)h(men)o(u)g(of)f(routing)h(st) +o(yles)g(\(seen)g(in)h(the)e(sizes)i(men)o(u\).)34 b(The)315 +1045 y(string)16 b(is)g(a)f(comma)g(separated)h(list)g(of)f(name,)h +(line)h(thic)o(kness,)f(via)g(diameter,)g(and)g(via)315 +1100 y(drill)k(size.)28 b(e.g.)f Fm(")p Fo(F)l(at,50,100,40)o(:Skinn)o +(y)l(,8,35,)o(20:)o(75Ohm,11)o(0,1)o(10,2)o(0)p Fm(")15 +b Fo(See)j(also,)g(the)315 1155 y(command-line)f(option)e +Fh(-rs)k Fo(and)d Fh(Sizes)e(Menu)75 1228 y Fo(`)p Fm(rubberBandMode)f +(\(boolean\))p Fo(')315 1283 y(Whether)g(rubb)q(erband)h(mo)o(v)o(e)e +(and)h(rotate)e(\(attac)o(hed)h(lines)i(stretc)o(h)e(lik)o(e)i(rubb)q +(erbands\))315 1338 y(is)i(enabled)g(\(the)f(default\).)75 +1411 y(`)p Fm(saveCommand)e(\(string\))p Fo(')315 1466 +y(This)22 b(command)g(is)g(used)g(to)f(sa)o(v)o(e)g(data)g(to)g(a)g(la) +o(y)o(out)g(\014le.)41 b(The)22 b(\014lename)g(ma)o(y)f(b)q(e)315 +1521 y(indicated)d(b)o(y)e(placing)h Fm(\045f)f Fo(in)g(the)g(string.) +22 b(It)16 b(m)o(ust)g(read)g(the)g(data)f(from)g(its)h(standard)315 +1576 y(input.)21 b(The)15 b(default)h(command)f(is:)530 +1637 y Fm(cat)24 b(-)g(>)f(\045f)315 1701 y Fo(See)16 +b(also,)f(the)g(command-line)i(option)e Fh(-s\014le)p +Fo(.)75 1774 y(`)p Fm(saveInTMP)f(\(boolean\))p Fo(')315 +1829 y(Enabling)21 b(this)g(resource)f(will)i(sa)o(v)o(e)d(all)i(data)e +(whic)o(h)i(w)o(ould)g(otherwise)f(b)q(e)g(lost)g(in)h(a)315 +1884 y(temp)q(orary)c(\014le)i(`)p Fm(/tmp/PCB.\045i.save)p +Fo('.)25 b Fh(\045i)d Fo(is)d(replaced)g(b)o(y)f(the)g(pro)q(cess)g +(ID.)f(As)h(an)315 1938 y(example,)g(loading)g(a)e(new)h(la)o(y)o(out)g +(when)g(the)g(old)h(one)f(hasn't)f(b)q(een)i(sa)o(v)o(ed)e(w)o(ould)i +(use)315 1993 y(this)e(resource.)k(See)15 b(also,)g(the)g(command-line) +i(option)f Fh(-save,)g Fm(+)p Fh(save)p Fo(.)75 2067 +y(`)p Fm(saveLastCommand)d(\(boolean\))p Fo(')315 2121 +y(Enables)19 b(the)f(sa)o(ving)g(of)g(the)g(last)g(en)o(tered)h(user)f +(command.)28 b(The)19 b(option)f(is)h Fh(disable)n(d)315 +2176 y Fo(b)o(y)c(default.)21 b(See)15 b(also,)g(the)g(command-line)i +(option)f Fh(-s,)g Fm(+)p Fh(s)p Fo(.)75 2249 y(`)p Fm(Shrink)e +(\(dimension\))p Fo(')315 2304 y(Sp)q(eci\014es)j(the)f(minim)o(um)g(o) +o(v)o(erlap)f(\(touc)o(hing\))g(design)h(rule)g(in)g(mils.)75 +2378 y(`)p Fm(size)e(\(x\))p Fo(')315 +2432 y(De\014nes)i(the)f(width)h(and)f(heigh)o(t)h(of)f(a)f(new)i(la)o +(y)o(out.)j(The)d(default)f(is)h Fh(7000x5000)p Fo(.)75 +2506 y(`)p Fm(stipllePolygons)d(\(boolean\))p Fo(')315 +2560 y(Determines)i(whether)g(to)f(displa)o(y)i(p)q(olygons)g(on)e(the) +h(screen)h(with)f(a)f(stippled)j(pattern.)315 2615 y(Stippling)e(can)d +(create)g(some)g(amoun)o(t)g(of)f(transp)q(erency)i(so)f(that)g(y)o(ou) +g(can)g(still)i(\(to)d(some)315 2670 y(exten)o(t\))k(see)g(la)o(y)o +(ers)g(b)q(eneath)h(p)q(olygons.)k(It)c(defaults)f(to)g(F)l(alse.)p +eop +%%Page: 35 36 +35 35 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(35)75 149 y(`)p Fm(textScale)14 b(\(dimension\))p Fo(')315 +204 y(The)22 b(fon)o(t)f(scaling)i(in)f(p)q(ercen)o(t)h(is)f(de\014ned) +h(b)o(y)f(this)g(resource.)40 b(The)22 b(default)g(is)g +Fh(100)315 259 y Fo(p)q(ercen)o(t.)75 334 y(`)p Fm(useLogWindow)13 +b(\(boolean\))p Fo(')315 388 y(Sev)o(eral)i(subroutines)h(send)f +(messages)f(to)g(the)g(user)h(if)g(an)g(error)f(o)q(ccurs.)20 +b(This)15 b(resource)315 443 y(determines)e(if)f(they)g(app)q(ear)g +(inside)i(the)e(log)g(windo)o(w)g(or)g(as)f(a)h(separate)f(dialog)i(b)q +(o)o(x.)18 b(See)315 498 y(also,)d(the)f(resource)h Fh(r)n(aiseL)n(o)n +(gWindow)k Fo(and)c(the)g(command)g(line)h(option)g Fh(-lo)n(gge)n +(ometry)p Fo(.)315 553 y(The)f(default)h(v)m(alue)h(is)e +Fh(true)p Fo(.)75 627 y(`)p Fm(viaColor)f(\(color\))p +Fo(')75 692 y(`)p Fm(viaSelectedColor)f(\(color\))p Fo(')315 +747 y(This)18 b(resource)f(de\014nes)h(the)f(dra)o(wing)f(color)h(of)g +(vias)g(in)h(b)q(oth)f(states.)24 b(The)17 b(v)m(alues)h(are)315 +802 y(preset)d(to)g Fh(XtDefaultF)m(or)n(e)n(gr)n(ound)p +Fo(.)75 876 y(`)p Fm(viaThickness)e(\(dimension\))p Fo(')75 +931 y(`)p Fm(viaDrillingHole)g(\(dimension\))p Fo(')315 +986 y(The)k(initial)i(thic)o(kness)e(and)g(drilling)i(hole)f(of)e(new)h +(vias.)25 b(The)17 b(v)m(alues)h(m)o(ust)e(b)q(e)h(in)h(the)315 +1041 y(range)e([30..250])e(with)j(at)f(least)h(20)f(mil)i(of)e(copp)q +(er.)25 b(The)16 b(default)i(thic)o(kness)f(is)g Fh(40)h(mil)315 +1096 y Fo(and)d(the)h(default)f(drilling)j(hole)e(is)g +Fh(20)h(mil)p Fo(.)75 1170 y(`)p Fm(volume)d(\(int\))p +Fo(')315 1225 y(The)k(v)m(alue)h(is)f(passed)g(to)f Fm(XBell\(\))f +Fo(whic)o(h)j(sets)e(the)h(v)o(olume)g(of)f(the)h Fm(X)f +Fo(sp)q(eak)o(er.)28 b(The)315 1280 y(v)m(alue)15 b(lies)g(in)f(the)f +(range)g(-100..100)f(and)h(it)h(defaults)g(to)f(the)g(maxim)o(um)h(v)o +(olume)g(of)f Fh(100)p Fo(.)75 1354 y(`)p Fm(warnColor)h(\(color\))p +Fo(')315 1409 y(This)k(resources)f(de\014nes)h(the)f(color)g(to)f(b)q +(e)i(used)g(for)e(dra)o(wing)h(pins)h(and)g(pads)f(when)g(a)315 +1464 y(w)o(arning)e(has)g(b)q(een)h(issued)h(ab)q(out)e(them.)75 +1539 y(`)p Fm(zoom)f(\(int\))p Fo(')315 1594 y(The)19 +b(initial)h(v)m(alue)g(for)e(output)g(scaling)h(is)g(set)f(according)h +(to)f(the)h(follo)o(wing)g(form)o(ula:)315 1648 y(scale)d(=)g(1:\(2)e +(p)q(o)o(w)o(er)g(v)m(alue\).)22 b(It)15 b(defaults)h(to)f +Fh(thr)n(e)n(e)j Fo(whic)o(h)e(results)g(in)g(an)f(output)g(scale)315 +1703 y(of)g Fh(1:8)p Fo(.)137 1778 y(Refer)g(also)g(to)g(Chapter)g(4)f +([Command-Line)i(Options],)g(page)f(27.)75 1899 y Fl(5.2)33 +b(Actions)137 1993 y Fo(All)22 b(user)f(accessible)i(commands)e(ma)o(y) +f(b)q(e)h(b)q(ound)h(to)e(almost)g(an)o(y)h Fm(X)g Fo(ev)o(en)o(t.)36 +b(Almost)21 b(no)f(de-)75 2047 y(fault)e(binding)i(for)e(commands)g(is) +h(done)f(in)h(the)f(binaries,)i(so)e(it)h(is)f(vital)h(for)f(the)g +(application)i(that)75 2102 y(at)g(least)h(a)g(system-wide)g +(application)h(resource)f(\014le)h(exists.)37 b(This)21 +b(\014le)h(normally)g(resides)f(in)h(the)75 2157 y(`)p +Fm(X11/lib/app-defaults)p Fo(')13 b(directory)j(and)g(is)h(called)h(`)p +Fm(Pcb)p Fo('.)j(The)16 b(bindings)i(to)e(whic)o(h)h(the)f(man)o(ual)75 +2212 y(refers)c(to)f(are)h(the)g(ones)g(as)f(de\014ned)j(b)o(y)e(the)g +(shipp)q(ed)i(resource)e(\014le.)19 b(Besides)14 b(binding)g(an)e +(action)g(to)f(an)75 2267 y(X11)j(ev)o(en)o(t,)g(y)o(ou)g(can)h(also)f +(execute)i(an)o(y)e(action)g(command)h(using)g(a)f Fm(")p +Fo(:)p Fm(")g Fo(command)h(\(see)f(Chapter)g(3)75 2321 +y([User)h(Commands],)f(page)h(25\).)137 2386 y(T)l(ak)o(e)c(sp)q(ecial) +i(care)e(ab)q(out)h(translations)f(related)g(to)g(the)g(functions)i(k)o +(eys)e(and)g(the)g(p)q(oin)o(ter)h(buttons)75 2441 y(b)q(ecause)20 +b(most)f(of)g(the)g(windo)o(w)h(managers)e(use)i(them)f(to)q(o.)32 +b(Change)19 b(the)h(\014le)g(according)g(to)e(y)o(our)75 +2496 y(hardw)o(are/soft)o(w)o(are)8 b(en)o(vironmen)o(t.)19 +b(Y)l(ou)11 b(ma)o(y)f(ha)o(v)o(e)h(to)f(replace)i(all)g(o)q(ccurances) +g(of)e Fh(b)n(aseT)m(r)n(anslations)75 2550 y Fo(to)15 +b Fh(tr)n(anslations)i Fo(if)f(y)o(ou)f(use)g(a)g Fm(X11R4)f +Fo(serv)o(er.)137 2615 y(P)o(assing)21 b Fh(Obje)n(ct)k +Fo(as)c(an)g(argumen)o(t)g(to)f(an)i(action)f(routine)h(causes)f(the)h +(ob)s(ject)e(at)h(the)g(cursor)75 2670 y(lo)q(cation)f(to)e(b)q(e)i(c)o +(hanged,)f(remo)o(v)o(ed)g(or)f(whatev)o(er.)31 b(If)19 +b(more)f(than)h(one)g(ob)s(ject)g(is)g(lo)q(cated)h(at)e(the)p +eop +%%Page: 36 37 +36 36 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(36)75 149 y(crosshair)18 b(p)q(osition)h(the)f(smallest)h(t)o(yp)q(e) +f(is)g(used.)29 b(If)19 b(there)f(are)g(t)o(w)o(o)e(of)i(the)g(same)g +(t)o(yp)q(e)g(the)g(new)o(er)75 204 y(one)d(is)h(tak)o(en.)j +Fh(Sele)n(cte)n(dObje)n(cts)e Fo(will)g(handle)f(all)g(selected)h(and)e +(visible)i(ob)s(jects.)75 295 y(`)p Fm(AddRats\(AllRats|Selecte)o +(dRats\))p Fo(')315 350 y(Adds)e(rat-lines)g(to)e(the)h(la)o(y)o(out)g +(using)h(the)f(loaded)h(netlist)g(\014le)g(\(see)f(the)g +Fh(:rn)p Fo(,)f(Chapter)h(3)315 405 y([User)20 b(Commands],)h(page)f +(25.\).)35 b(Rat)19 b(lines)j(are)e(added)h(on)g(the)f(activ)o(e)h(la)o +(y)o(er)f(using)315 460 y(the)d(curren)o(t)f(line)j(thic)o(kness)e(sho) +o(wn)g(in)g(the)g(status)f(line.)26 b(Only)18 b(missing)g(connectivit)o +(y)315 514 y(is)g(added)g(b)o(y)g(the)f(AddRats)g(command)h(so)f(if,)h +(for)f(example,)i(the)e(la)o(y)o(out)g(is)h(complete)315 +569 y(nothing)12 b(will)h(b)q(e)f(added.)19 b(Rat)11 +b(lines)i(are)e(dra)o(wn)g(on)g(the)g(screen)h(with)g(a)f(stippled)i +(pattern)315 624 y(to)f(mak)o(e)g(them)h(easier)g(to)e(iden)o(tify)j +(since)g(they)f(cannot)f(app)q(ear)h(in)g(a)f(completed)i(la)o(y)o +(out.)315 679 y(The)d(rat-lines)h(are)e(added)i(in)f(the)g(minim)o(um)h +(length)f(straigh)o(t-line)h(tree)f(pattern)f(\(alw)o(a)o(ys)315 +734 y(ending)16 b(on)e(pins)i(or)e(pads\))g(that)g(satis\014es)g(the)h +(missing)g(connectivit)o(y)h(in)f(the)g(circuit.)21 b(If)315 +788 y(a)16 b(SMD)g(pad)h(is)f(unreac)o(hable)i(on)e(the)h(activ)o(e)f +(la)o(y)o(er,)g(a)g(w)o(arning)h(will)h(b)q(e)f(issued)g(ab)q(out)315 +843 y(it)h(and)h(the)f(rat-line)h(to)e(that)h(pad)g(will)i(not)e(b)q(e) +g(generated.)29 b(If)18 b(connections)i(exist)e(on)315 +898 y(the)i(b)q(oard)f(whic)o(h)i(are)e(not)h(listed)h(in)f(the)g +(netlist)g(while)i(AllRats)d(are)h(b)q(eing)h(added,)315 +953 y(w)o(arning)16 b(messages)g(will)i(b)q(e)g(issued)f(and)g(the)f +(a\013ected)g(pins)i(and)f(pads)f(will)i(b)q(e)f(dra)o(wn)315 +1008 y(in)d(a)g(sp)q(ecial)h Fh(warnColor)k Fo(un)o(til)14 +b(the)g(next)g Fh(Notify\(\))g Fo(ev)o(en)o(t.)20 b(If)13 +b(the)h(en)o(tire)g(la)o(y)o(out)f(agrees)315 1062 y(completely)j(with) +g(the)f(net-list)h(a)e(message)h(informs)g(y)o(ou)f(that)g(the)h(la)o +(y)o(out)g(is)g(complete)315 1117 y(and)j(no)g(rat-lines)h(are)f(added) +h(\(since)f(none)h(are)f(needed\).)29 b(If)18 b Fh(Sele)n(cte)n(dR)n +(ats)i Fo(is)f(passed)315 1172 y(as)13 b(the)g(argumen)o(t,)g(only)h +(those)f(missing)h(connections)g(that)f(migh)o(t)g(connect)g(among)g +(the)315 1227 y(selected)j(pins)h(and)e(pads)g(are)g(dra)o(wn.)20 +b(Default:)435 1288 y Fm(Nonew:)46 b(AddRats\(AllRats\))435 +1340 y(!Shiftw:)g(AddRats\(SelectedRats\))435 1392 +y(Noneo:)g(DeleteRats\(AllRats\))21 b(AddRats\(AllRats\))435 +1443 y(!Shifto:)46 b(DeleteRats\(SelectedRats\))21 +b(AddRats\(SelectedRats\))75 1516 y Fo(`)p Fm(Atomic\(Save|Restore|Blo) +o(ck|Close)o(\))p Fo(')315 1571 y(Con)o(trols)f(the)i(undo)f(grouping)h +(of)f(sequences)h(of)f(actions.)38 b(Before)21 b(the)g(\014rst)g +(action)315 1626 y(in)f(a)e(group,)h(A)o(tomic\(Sa)o(v)o(e\))f(should)i +(b)q(e)g(issued.)32 b(After)18 b(eac)o(h)h(action)g(that)g(migh)o(t)f +(b)q(e)315 1681 y(undoable,)13 b(A)o(tomic\(Restore\))c(should)i(b)q(e) +h(issued.)19 b(A)o(tomic\(Blo)q(c)o(k\))11 b(concludes)i(and)e(sa)o(v)o +(e)315 1736 y(the)16 b(undo)h(grouping)f(if)g(there)g(w)o(as)g(an)o +(ything)g(in)h(the)f(group)f(to)h(undo.)22 b(A)o(tomic\(Close\))315 +1790 y(concludes)16 b(and)e(sa)o(v)o(e)g(the)g(undo)h(grouping)f(ev)o +(en)h(if)g(nothing)g(w)o(as)e(actually)i(done.)20 b(Th)o(us)315 +1845 y(it)c(migh)o(t)h(pro)q(duce)g(an)f Fm(")p Fo(empt)o(y)p +Fm(")f Fo(undo.)24 b(This)17 b(can)f(b)q(e)h(useful)g(when)g(y)o(ou)f +(w)o(an)o(t)f(to)h(use)315 1900 y(undo)g(in)g(a)f(group)f(of)h +(actions.)75 1973 y(`)p Fm(Bell\([-100..100]\))p Fo(')315 +2028 y(Rings)h(the)f(b)q(ell)j(of)d(y)o(our)g(displa)o(y)l(.)23 +b(If)16 b(no)f(v)m(alue)i(is)g(passed)e(the)h(setting)g(of)f(the)h +(resource)315 2082 y Fh(volume)j Fo(will)e(b)q(e)f(used.)75 +2155 y(`)p Fm(ChangeDrillSize\(Object,)c(value\))p Fo(')75 +2210 y(`)p Fm(ChangeDrillSize\(Selecte)o(dPins|Se)o(lectedV)o(ias,)g +(value\))p Fo(')315 2265 y(This)19 b(action)f(routine)g(c)o(hanges)g +(the)g(drilling)i(hole)f(of)e(pins)i(and)f(vias.)29 b(If)18 +b Fh(value)j Fo(starts)315 2320 y(with)d Fm(+)f Fo(or)f(-,)i(then)f(it) +h(adds)f(\(or)f(subtracts\))h Fh(value)j Fo(from)d(the)g(curren)o(t)g +(hole)h(diameter,)315 2375 y(otherwise)d(it)h(sets)f(the)g(diameter)h +(to)e(the)h(v)m(alue.)21 b(Default:)435 2436 y Fm(!Mod1s:)165 +b(Change2ndSize\(Object,)21 b(+5\))435 2487 y(!Mod1)i(Shifts:)f +(Change2ndSize\(Object,)f(-5\))75 2560 y Fo(`)p Fm +(ChangeHole\(Object|Selec)o(tedVias\))o Fo(')315 2615 +y(This)16 b(action)f(routine)h(con)o(v)o(erts)f(a)g(via)g(to)g(and)g +(from)g(a)g(hole.)21 b(A)15 b(hole)h(is)g(a)f(via)h(that)e(has)315 +2670 y(no)h(copp)q(er)h(ann)o(ulus.)21 b(The)15 b(drill)i(size)f(for)f +(the)g(via)h(determines)g(the)f(hole)h(diameter.)p eop +%%Page: 37 38 +37 37 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(37)435 149 y Fm(!Ctrlh:)46 b(ChangeHole\(Object\))75 +227 y Fo(`)p Fm(ChangeName\(Object\))p Fo(')75 282 y(`)p +Fm(ChangeName\(Layer|Layout)o(\))p Fo(')315 337 y(Changes)22 +b(the)g(name)g(of)g(the)g(visible)i(ob)s(ject)d(at)h(the)g(cursor)f(lo) +q(cation.)41 b(A)22 b(text)g(ob-)315 391 y(ject)e(do)q(esn't)f(ha)o(v)o +(e)g(a)h(name)g(therefore)f(the)h(text)f(string)h(itself)g(is)g(c)o +(hanged.)34 b(The)20 b(el-)315 446 y(emen)o(t)h(name)h(curren)o(tly)g +(used)g(for)f(displa)o(y)i(is)f(alw)o(a)o(ys)f(the)g(one)h(c)o(hanged)g +(with)g(this)315 501 y(command.)j(See)17 b Fh(Display\(Description)p +Fm(|)p Fh(NameOnPCB)p Fm(|)p Fh(V)m(alue\))f Fo(for)g(details.)26 +b(P)o(assing)315 556 y Fh(L)n(ayer)20 b Fo(c)o(hanges)15 +b(the)g(curren)o(t)g(la)o(y)o(ers)g(name.)20 b(Default:)435 +619 y Fm(Nonen:)i(ChangeName\(Object\))75 685 y +Fo(`)p Fm(ChangeOctagon\(Object|Se)o(lectElem)o(ents|Se)o(lectedP)o +(ins|Sele)o(ctedVia)o(s|Selec)o(ted\))p Fo(')315 740 +y(T)l(oggles)17 b(what)g(shap)q(e)h(the)f(a\013ected)g(pin\(s\))h(or)f +(via\(s\))f(will)j(b)q(e)f(dra)o(wn)f(when)h(they)f(are)315 +795 y(not)e(square.)20 b(The)15 b(shap)q(e)h(will)h(either)f(b)q(e)f +(round)h(or)f(o)q(ctagonal.)k(Default:)435 858 y Fm(!Ctrlo:)j +(ChangeOctagon\(Object\))75 936 y Fo(`)p Fm(ChangeSize\(Object,)12 +b(value\))p Fo(')75 990 y(`)p Fm(ChangeSize\(SelectedLine)o(s|Select)o +(edPins|)o(Selecte)o(dVias,)g(value\))p Fo(')75 1045 +y(`)p Fm(ChangeSize\(SelectedPads)o(|Selecte)o(dTexts|)o(Selecte)o +(dNames,)g(value\))p Fo(')75 1100 y(`)p Fm(ChangeSize\(SelectedElem)o +(ents,)g(value\))p Fo(')315 1155 y(T)l(o)f(c)o(hange)h(the)f(size)i(of) +e(an)g(ob)s(ject)g(y)o(ou)g(ha)o(v)o(e)g(to)g(bind)i(these)f(action)f +(to)g(some)g Fm(X)h Fo(ev)o(en)o(t)f(\(or)315 1209 y(use)j +(:ChangeSize\(...\)\).)k(If)c Fh(value)k Fo(b)q(egins)d(with)f(a)f +Fm(+)h Fo(or)f(-)h(then)g(the)g(v)m(alue)h(will)h(b)q(e)e(added)315 +1264 y(\(or)j(subtracted\))f(from)h(the)h(curren)o(t)f(size,)h +(otherwise)g(the)f(size)h(is)g(set)f(equal)i(to)d Fh(value)p +Fo(.)315 1319 y(Range)e(c)o(hec)o(king)h(is)h(done)f(to)e(insure)j +(that)e(none)h(of)f(the)h(maxim)o(um/minim)o(ums)g(of)f(an)o(y)315 +1374 y(size)e(are)g(violated.)19 b(If)12 b Fh(Obje)n(ct)j +Fo(is)d(passed)g(then)g(a)f(single)i(ob)s(ject)e(at)g(the)h(cursor)f +(lo)q(cation)h(is)315 1429 y(c)o(hanged.)19 b(If)10 b(an)o(y)g(of)g +(the)g Fh(Sele)n(cte)n(d)k Fo(argumen)o(ts)9 b(are)h(passed)h(then)f +(all)i(selected)f(and)g(visible)315 1483 y(ob)s(jects)h(of)h(that)f(t)o +(yp)q(e)h(are)g(c)o(hanged.)19 b(If)14 b(the)f(t)o(yp)q(e)g(b)q(eing)h +(mo)q(di\014ed)g(is)g(an)f(elemen)o(t,)h(then)315 1538 +y(the)h(thic)o(kness)h(of)f(the)g(silkscreen)i(lines)g(de\014ning)g +(the)e(elemen)o(t)h(is)g(c)o(hanged.)k(Default:)435 1601 +y Fm(Nones:)70 b(ChangeSize\(Object,)21 b(+5\))435 +1653 y(!Shifts:)h(ChangeSize\(Object,)f(-5\))75 +1731 y Fo(`)p Fm(ChangeSquare\(Object|Sel)o(ectedEle)o(ments|S)o +(elected)o(Pins\))p Fo(')315 1786 y(T)l(oggles)e(the)h(setting)g(of)f +(the)g(square)g(\015ag.)33 b(The)20 b(\015ag)f(is)h(used)g(to)f(iden)o +(tify)h(a)g(certain)315 1840 y(pin,)c(normally)g(the)g(\014rst)f(one,)g +(of)g(circuits.)22 b(It)16 b(is)g(also)f(used)h(to)f(mak)o(e)g(SMD)g +(pads)g(ha)o(v)o(e)315 1895 y(square)g(ends.)435 1959 +y Fm(Noneq:)70 b(ChangeSquare\(Object\))75 2036 +y Fo(`)p Fm(Command\(\))p Fo(')315 2091 y(Calling)17 +b Fh(Command\(\))f Fo(p)q(ops)f(up)h(an)f(input)h(line)h(at)d(the)h(b)q +(ottom)g(of)g(the)g(windo)o(w)g(whic)o(h)315 2146 y(allo)o(ws)d(y)o(ou) +f(to)g(en)o(ter)h(commands.)19 b(Including)14 b(all)f(action)e +(commands!)19 b(The)12 b(dialog)g(ends)315 2200 y(when)18 +b Fh(None)p Fm(<)p Fh(Key)p Fm(>)p Fh(R)n(eturn)i Fo(to)c(con\014rm)i +(or)f Fh(None)p Fm(<)p Fh(Key)p Fm(>)p Fh(Esc)n(ap)n(e)i +Fo(to)d(ab)q(ort)h(is)h(en)o(tered.)315 2255 y(Default:)435 +2318 y Fm(colon:)k(Command\(\))75 2396 y Fo(`)p +Fm(Connection\(Find\))p Fo(')75 2451 y(`)p Fm(Connection\(ResetFoundLi) +o(nesAndRe)o(ctangle)o(s|Reset)o(PinsVias)o(AndPads)o(|Reset\))o +Fo(')315 2506 y(The)16 b Fh(Conne)n(ction\(\))g Fo(action)g(is)h(used)f +(to)g(mark)f(all)j(connections)f(from)e(one)h(pin,)i(line)f(or)315 +2560 y(via)k(to)f(others.)36 b(The)21 b Fh(R)n(esetF)m(oundLinesA)o(n)o +(dR)n(e)n(ctangl)o(es,)e(R)n(esetF)m(oundPinsA)o(ndVias)315 +2615 y Fo(and)14 b Fh(R)n(eset)i Fo(argumen)o(ts)d(ma)o(y)g(b)q(e)h +(used)g(to)e(reset)h(all)i(mark)o(ed)e(lines)i(and)e(rectangles,)h +(vias)315 2670 y(and)19 b(pins)h(or)e(all)i(of)f(them.)31 +b(The)19 b(searc)o(h)g(starts)e(with)i(the)g(pin)h(or)f(via)g(at)f(the) +h(cursor)p eop +%%Page: 38 39 +38 38 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(38)315 149 y(p)q(osition.)30 b(All)20 b(found)f(ob)s(jects)f(are)g +(dra)o(wn)g(with)g(the)h(color)f(de\014ned)i(b)o(y)e(the)h(resource)315 +204 y Fh(c)n(onne)n(cte)n(dColor)p Fo(.)f(See)e(also,)f +Fh(Display\(Description)p Fm(|)p Fh(NameOnPCB)p Fm(|)p +Fh(V)m(alue\))p Fo(.)h(Default:)435 274 y Fm(!Shiftc:)22 +b(Connection\(Reset\))435 326 y(Nonef:)70 b(Connection\(Find\))435 +378 y(!Shiftf:)22 b(Connection\(Reset\))75 468 y +Fo(`)p Fm(DeleteRats\(AllRats|Sele)o(ctedRats)o(\))p +Fo(')315 523 y(This)c(routine)f(deletes)h(either)g(all)f(rat-lines)h +(in)g(the)f(la)o(y)o(out,)g(or)f(only)i(the)f(selected)h(and)315 +578 y(visible)f(ones.)j(Non-rat-lines)d(and)e(other)g(la)o(y)o(out)g +(ob)s(jects)f(are)h(una\013ected.)20 b(Default:)435 648 +y Fm(Nonee:)70 b(DeleteRats\(AllRats\))435 699 y(!Shifte:)22 +b(DeleteRats\(SelectedRats\))75 790 y Fo(`)p Fm +(Display\(Description|Nam)o(eOnPCB|V)o(alue\))p Fo(')75 +845 y(`)p Fm(Display\(Toggle45Degree|)o(CycleCli)o(p\))p +Fo(')75 900 y(`)p Fm(Display\(Grid|ToggleGrid)o(\))p +Fo(')75 954 y(`)p Fm(Display\(ToggleRubberBan)o(dMode\))p +Fo(')75 1009 y(`)p Fm(Display\(Center|ClearAnd)o(Redraw|R)o(edraw\))p +Fo(')75 1064 y(`)p Fm(Display\(Pinout|PinOrPad)o(Name\))p +Fo(')315 1119 y(This)16 b(action)g(routines)g(handles)h(some)f(output)f +(related)h(settings.)22 b(It)15 b(is)i(used)f(to)f(cen)o(ter)315 +1174 y(the)d(displa)o(y)i(around)e(the)h(cursor)f(lo)q(cation)h(and)g +(to)f(redra)o(w)f(the)i(output)f(area)g(optionally)315 +1228 y(after)k(clearing)i(the)f(windo)o(w.)25 b(Cen)o(tering)17 +b(is)g(done)g(with)g(resp)q(ect)h(to)e(the)h Fh(grid)k +Fo(setting.)315 1283 y(Displa)o(ying)d(the)g(grid)f(itself)h(ma)o(y)f +(b)q(e)g(switc)o(hed)h(on)f(and)h(o\013)e(b)o(y)h Fh(Grid)22 +b Fo(but)c(only)f(if)h(the)315 1338 y(distance)c(b)q(et)o(w)o(een)f(t)o +(w)o(o)f(pixels)j(exceeds)f(1)p 1060 1338 14 2 v 16 w(DIST)l(ANCE)f +(pixels.)21 b Fm(Pcb)13 b Fo(is)g(able)h(to)f(handle)315 +1393 y(sev)o(eral)k(lab)q(els)h(of)e(an)h(elemen)o(t.)24 +b(One)18 b(of)e(them)g(is)i(a)e(description)i(of)e(the)h(functionalit)o +(y)315 1447 y(\(eg)c(resistor\),)f(the)i(second)g(should)g(b)q(e)g(a)f +(unique)i(iden)o(ti\014er)f(\(R1\))e(whereas)h(the)h(last)f(one)315 +1502 y(is)h(a)g(v)m(alue)h(\(100k\).)j(The)d Fh(Display\(\))f +Fo(action)g(selects)h(whic)o(h)g(of)f(the)g(names)g(is)g(displa)o(y)o +(ed.)315 1557 y(It)20 b(also)h(con)o(trols)e(whic)o(h)j(name)e(will)i +(b)q(e)f(a\013ected)f(b)o(y)g(the)g Fh(ChangeName)j Fo(command.)315 +1612 y(If)c Fh(T)m(o)n(ggleGrid)j Fo(is)c(passed,)i Fm(Pcb)e +Fo(c)o(hanges)g(b)q(et)o(w)o(een)h(relativ)o(e)g(\('rel')f(in)h(the)f +(statusline\))315 1667 y(and)e(absolute)g(grid)h(\(an)e('abs')g(in)i +(the)f(statusline\).)22 b(Relativ)o(e)16 b(grid)h(means)e(the)h(p)q +(oin)o(ter)315 1721 y(p)q(osition)i(when)g(the)f(command)f(is)i(issued) +g(is)g(used)f(as)g(the)g(grid)g(origin;)i(while)f(\(0,0\))d(is)315 +1776 y(used)c(in)h(the)f(absolute)g(grid)g(case.)18 b(P)o(assing)10 +b Fh(Pinout)15 b Fo(displa)o(ys)d(the)f(pinout)g(of)f(the)h(elemen)o(t) +315 1831 y(at)g(the)i(curren)o(t)f(cursor)f(lo)q(cation)i(whereas)f +Fh(PinOrPadName)k Fo(toggles)11 b(displa)o(ying)j(of)e(the)315 +1886 y(pins)k(or)e(pads)h(name)f(under)i(the)e(cursor.)20 +b(If)15 b(none)g(of)f(them)g(matc)o(hes)h(but)f(the)h(cursor)f(is)315 +1941 y(inside)i(of)d(an)h(elemen)o(t,)h(the)f(\015ags)g(is)g(toggled)g +(for)f(all)i(of)f(its)g(pins)h(and)f(pads.)20 b(F)l(or)13 +b(details)315 1995 y(ab)q(out)i(rubb)q(erbands)h(see)g(also)f(the)g +(details)i(ab)q(out)e Fh(Mo)n(de)p Fo(.)k(Default:)435 +2065 y Fm(Nonec:)46 b(Display\(Center\))435 2117 +y(Noned:)g(Display\(PinOrPadName\))435 2169 y(!Shiftd:)22 +b(Display\(Pinout\))435 2221 y(Noner:)46 b +(Display\(ClearAndRedraw\))435 2273 y(None.:)g +(Display\(Toggle45Degree\))435 2325 y(None/:)g +(Display\(CycleClip\))75 2415 y Fo(`)p Fm(DRC\(\))p Fo(')94 +b(Initiates)19 b(design)f(rule)h(c)o(hec)o(king)g(of)e(the)h(en)o(tire) +g(la)o(y)o(out.)26 b(Must)18 b(b)q(e)g(rep)q(eated)g(un)o(til)h(no)315 +2470 y(errors)14 b(are)h(found.)75 2560 y(`)p Fm(EditLayerGroups\(\))p +Fo(')315 2615 y(P)o(ops)f(up)i(a)e(dialog)i(b)q(o)o(x)e(to)h(edit)g +(the)g(la)o(y)o(ergroup)f(setting.)20 b(The)15 b(function)h(is)f(also)g +(a)o(v)m(ail-)315 2670 y(able)h(from)e(the)i Fh(Obje)n(cts)h +Fo(men)o(u.)k(There)15 b(are)g(no)g(defaults.)p eop +%%Page: 39 40 +39 39 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(39)75 149 y(`)p Fm(Load\(ElementToBuffer|La)o(yout|Lay)o(outToBu)o +(ffer|Ne)o(list\))p Fo(')315 204 y(This)11 b(routine)g(p)q(ops)g(up)g +(a)f(\014leselect)j(b)q(o)o(x)d(to)g(load)h(la)o(y)o(out,)g(elemen)o(t) +g(data,)f(or)g(netlist.)20 b(The)315 259 y(passed)c(\014lename)h(for)f +(la)o(y)o(out)f(data)g(is)i(sa)o(v)o(ed)e(and)i(ma)o(y)e(b)q(e)h +(reused.)23 b Fh(ElementT)m(oBu\013er)315 314 y Fo(and)11 +b Fh(L)n(ayoutT)m(oBu\013er)k Fo(load)10 b(the)h(data)e(in)o(to)i(the)f +(curren)o(t)h(bu\013er.)18 b(There)10 b(are)h(no)f(defaults.)75 +401 y(`)p Fm(MarkCrosshair\(\))p Fo(')315 456 y(This)16 +b(routine)f(marks)f(the)h(curren)o(t)g(cursor)g(lo)q(cation)h(with)f +(an)g(X,)g(and)g(then)g(the)g(cursor)315 511 y(displa)o(y)20 +b(sho)o(ws)f(b)q(oth)g(absolute)g(p)q(osition)h(and)g(p)q(osition)g +(relativ)o(e)f(to)g(the)g(mark.)31 b(If)19 b(a)315 566 +y(mark)f(is)g(already)h(presen)o(t,)g(this)f(routine)h(remo)o(v)o(es)f +(it)g(and)h(stops)e(displa)o(ying)j(relativ)o(e)315 621 +y(cursor)15 b(co)q(ordinates.)20 b(Defaults:)435 689 +y Fm(!Ctrlm:)46 b(MarkCrosshair\(\))75 776 y Fo(`)p +Fm(Mode\(Copy|InsertPoint|L)o(ine|Move)o(|None|P)o(asteBuf)o(fer|Poly)o +(gon|The)o(rmal\))p Fo(')75 831 y(`)p Fm(Mode\(Remove|Rectangle|R)o +(ubberban)o(dMove|T)o(ext|Via)o(\))p Fo(')75 886 y(`)p +Fm(Mode\(Cycle\))p Fo(')75 941 y(`)p Fm(Mode\(Notify\))p +Fo(')75 996 y(`)p Fm(Mode\(Save|Restore\))p Fo(')315 +1050 y(Switc)o(hes)16 b(to)f(a)f(new)i(mo)q(de)g(of)e(op)q(eration.)21 +b(The)15 b(activ)o(e)h(mo)q(de)f(is)h(displa)o(y)o(ed)g(b)o(y)g(a)f +(thic)o(k)315 1105 y(line)e(around)e(the)g(matc)o(hing)h(mo)q(de)f +(selector)h(button.)18 b(Most)10 b(of)h(the)g(functionalit)o(y)i(of)d +Fm(Pcb)315 1160 y Fo(is)16 b(implemen)o(ted)i(b)o(y)e(selecting)h(a)e +(mo)q(de)h(and)g(calling)i Fh(Mo)n(de\(Notify\))p Fo(.)j(The)16 +b(argumen)o(ts)315 1215 y Fh(Line)p Fo(,)22 b Fh(Polygon)p +Fo(,)h Fh(R)n(e)n(ctangle)p Fo(,)f Fh(T)m(ext)k Fo(and)c +Fh(Via)k Fo(are)c(used)g(to)g(create)g(the)g(appropriate)315 +1270 y(ob)s(ject)16 b(whenev)o(er)g Fh(Mo)n(de\(Notify\))h +Fo(is)g(called.)24 b(Some)16 b(of)g(them,)g(suc)o(h)g(as)g +Fh(Polygon)p Fo(,)f(need)315 1324 y(more)k(than)g(one)g(call)i(for)d +(one)i(ob)s(ject)e(to)h(b)q(e)h(created.)32 b Fh(InsertPoint)22 +b Fo(adds)d(p)q(oin)o(ts)h(to)315 1379 y(existing)e(p)q(olygons)f(or)f +(lines.)25 b Fh(Save)20 b Fo(and)c Fh(R)n(estor)n(e)k +Fo(are)c(used)h(to)f(temp)q(orarily)h(sa)o(v)o(e)f(the)315 +1434 y(mo)q(de,)24 b(switc)o(h)e(to)g(another)g(one,)i(call)f +Fh(Mo)n(de\(Notify\))g Fo(and)f(restore)g(the)g(sa)o(v)o(ed)g(one.)315 +1489 y(Ha)o(v)o(e)f(a)h(lo)q(ok)g(at)f(the)h(application)i(resource)e +(\014le)g(for)g(examples.)40 b Fh(Copy)26 b Fo(and)c +Fh(Move)315 1544 y Fo(mo)q(des)15 b(are)g(used)h(to)f(c)o(hange)g(an)g +(ob)s(ject's)g(lo)q(cation)h(and,)f(optionally)l(,)h(to)f(create)g(a)g +(new)315 1598 y(one.)23 b(The)16 b(\014rst)g(call)h(of)e +Fh(Mo)n(de\(Notify\))i Fo(attac)o(hes)e(the)i(ob)s(ject)e(at)g(the)i(p) +q(oin)o(ter)f(lo)q(cation)315 1653 y(to)e(the)g(crosshair)g(whereas)h +(the)f(second)h(one)g(drops)f(it)g(to)g(the)h(la)o(y)o(out.)k(The)14 +b Fh(rubb)n(erb)n(and)315 1708 y Fo(v)o(ersion)20 b(of)g(mo)o(v)o(e)g +(p)q(erforms)g(the)g(mo)o(v)o(e)g(while)h(o)o(v)o(erriding)g(the)g +(curren)o(t)f(rubb)q(erband)315 1763 y(mo)q(de.)f(P)o(assing)10 +b Fh(PasteBu\013er)16 b Fo(attac)o(hes)9 b(the)i(con)o(ten)o(ts)f(of)g +(the)h(curren)o(tly)g(selected)h(bu\013er)315 1818 y(to)j(the)h +(crosshair.)22 b(Eac)o(h)16 b(call)h(to)f Fh(Mo)n(de\(Notify\))g +Fo(pastes)g(this)g(con)o(ten)o(ts)g(to)f(the)h(la)o(y)o(out.)315 +1872 y Fh(Mo)n(de\(Cycle\))j Fo(cycles)i(through)e(the)g(mo)q(des)h(a)o +(v)m(ailable)h(in)f(the)f(mo)q(de-button)h(pallete.)315 +1927 y Fh(Mo)n(de\(None\))15 b Fo(switc)o(hes)h(all)g(mo)q(des)f +(o\013.)k(Default:)435 1995 y Fm(Escape:)309 b(Mode\(None\))435 +2047 y(space:)333 b(Mode\(Cycle\))435 2099 y(NoneBackSpace:) +141 b(Mode\(Save\))22 b(Mode\(Remove\))g(Mode\(Notify\))h +(Mode\(Restore\))435 2151 y(NoneDelete:)213 b(Mode\(Save\))22 +b(Mode\(Remove\))g(Mode\(Notify\))h(Mode\(Restore\))435 +2203 y(NoneF1:)309 b(Mode\(Via\))435 2255 y(NoneF2:)g +(Mode\(Line\))435 2307 y(NoneF3:)g(Mode\(PasteBuffer\))435 +2359 y(NoneF4:)g(Mode\(Rectangle\))435 2411 y(NoneF5:)g +(Mode\(Text\))435 2462 y(NoneF6:)g(Mode\(Polygon\))435 +2514 y(NoneF7:)g(Mode\(Thermal\))435 2566 y(NoneF8:)70 +b(Mode\(Arc\))435 2618 y(NoneInsert:)213 b(Mode\(InsertPoint\))435 +2670 y(None[:)333 b(Mode\(Save\))22 b(Mode\(Move\))h +(Mode\(Notify\))p eop +%%Page: 40 41 +40 40 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(40)435 149 y Fm(None]:)333 b(Mode\(Notify\))22 +b(Mode\(Restore\))435 201 y(None:)237 b(Mode\(Notify\))435 +253 y(!Shift)23 b(Ctrl:)70 b(Mode\(Save\))22 +b(Mode\(Remove\))g(Mode\(Notify\))h(Mode\(Restore\))435 +305 y(None:)237 b(Mode\(Save\))22 b(Mode\(Move\))h +(Mode\(Notify\))435 357 y(None:)285 b(Mode\(Notify\))22 +b(Mode\(Restore\))435 409 y(!Mod1:)165 b(Mode\(Save\))22 +b(Mode\(Copy\))h(Mode\(Notify\))435 461 y(!Mod1:)213 +b(Mode\(Notify\))22 b(Mode\(Restore\))435 513 y(Shift)h +(Mod1:)f(Mode\(Save\))g(Mode\(RubberbandMove\))g +(Mode\(Notify\))75 589 y Fo(`)p Fm(MovePointer\(delta_x,)12 +b(delta_y\))p Fo(')315 643 y(With)g(this)g(function)h(it)f(is)h(p)q +(ossible)g(to)e(mo)o(v)o(e)h(the)g(crosshair)f(cursor)h(b)o(y)g(using)g +(the)g(cursor)315 698 y(k)o(eys.)19 b(The)c Fm(X)e Fo(serv)o(er's)h(p)q +(oin)o(ter)g(follo)o(ws)g(b)q(ecause)h(the)f(necessary)h(ev)o(en)o(ts)e +(are)h(generated)315 753 y(b)o(y)19 b Fm(Pcb)p Fo(.)31 +b(All)20 b(mo)o(v)o(emen)o(ts)e(are)g(p)q(erformed)h(with)h(resp)q(ect) +f(to)f(the)h(curren)o(tly)h(set)f(grid)315 808 y(v)m(alue.)i(Default:) +435 870 y Fm(NoneUp:)142 b(MovePointer\(0,)21 b(-1\))435 +922 y(!ShiftUp:)94 b(MovePointer\(0,)21 b(-10\))435 +974 y(NoneDown:)94 b(MovePointer\(0,)21 b(1\))435 +1026 y(!ShiftDown:)46 b(MovePointer\(0,)21 b(10\))435 +1078 y(NoneRight:)70 b(MovePointer\(1,)21 b(0\))435 +1130 y(!ShiftRight:)h(MovePointer\(10,)f(0\))435 +1181 y(NoneLeft:)94 b(MovePointer\(-1,)21 b(0\))435 +1233 y(!ShiftLeft:)46 b(MovePointer\(-10,)21 b(0\))75 +1309 y Fo(`)p Fm(MoveToCurrentLayer\(Obje)o(ct|Selec)o(tedObje)o(cts\)) +p Fo(')315 1364 y(The)h(function)h(mo)o(v)o(es)e(a)h(single)h(ob)s +(ject)e(at)h(the)g(crosshair)g(lo)q(cation)g(or)g(all)h(selected)315 +1419 y(ob)s(jects)13 b(to)g(the)h(curren)o(t)f(la)o(y)o(er.)19 +b(Elemen)o(ts)c(are)e(not)g(mo)o(v)o(eable)h(b)o(y)f(this)i(function.) +20 b(They)315 1474 y(ha)o(v)o(e)c(to)g(b)q(e)i(deleted)g(and)f +(replaced)h(on)e(the)h(other)g(side.)25 b(If)17 b(a)g(line)h(segmen)o +(t)e(is)h(mo)o(v)o(ed)315 1528 y(and)i(the)h(mo)o(v)o(emen)o(t)e(w)o +(ould)i(result)f(in)h(a)f(loss)h(of)f(connectivit)o(y)h(to)f(another)f +(segmen)o(t)315 1583 y(then)e(via\(s\))e(are)h(automatically)h(added)g +(to)e(main)o(tain)i(the)f(connectivit)o(y)l(.)435 1646 +y Fm(Nonem:)166 b(MoveToCurrentLayer\(Obje)o(ct\))435 +1697 y(!Shiftm:)118 b(MoveToCurrentLayer\(Sele)o(ctedObj)o(ects\)) +75 1773 y Fo(`)p Fm(New\(\))p Fo(')94 b(Clear)14 b(the)h(curren)o(t)f +(la)o(y)o(out)g(and)g(starts)f(a)h(new)h(one)f(after)g(en)o(tering)h +(its)f(name.)20 b(Refer)14 b(to)315 1828 y(the)h(resource)h +Fh(b)n(ackup)i Fo(for)c(more)h(information.)20 b(No)15 +b(defaults.)75 1904 y(`)p Fm(PasteBuffer\(AddSelected)o(|Clear|1)o +(..5\))p Fo(')75 1959 y(`)p Fm(PasteBuffer\(Rotate,)d(1..3\))p +Fo(')75 2014 y(`)p Fm(PasteBuffer\(Convert\))p Fo(')315 +2068 y(This)17 b(action)g(routine)g(con)o(trols)f(and)h(selects)g(the)g +(pastebu\013er)f(as)g(w)o(ell)i(as)e(all)h(cut-and-)315 +2123 y(paste)k(op)q(erations.)39 b(P)o(assing)22 b(a)f(bu\013er)g(n)o +(um)o(b)q(er)h(selects)h(one)e(in)i(of)e(the)g(range)h(1..5.)315 +2178 y(The)e(statusline)g(is)g(up)q(dated)g(with)g(the)f(new)h(n)o(um)o +(b)q(er.)32 b Fh(R)n(otate)24 b Fo(p)q(erforms)19 b(a)g(n)o(um)o(b)q +(er)315 2233 y(of)c(90)g(degree)g(coun)o(ter)h(clo)q(c)o(kwise)g +(rotations)f(of)g(the)g(bu\013er)g(con)o(ten)o(ts.)20 +b Fh(A)n(ddSele)n(cte)n(d)e Fo(as)315 2288 y(\014rst)g(argumen)o(t)g +(copies)i(all)f(selected)h(and)f(visible)i(ob)s(jects)d(in)o(to)g(the)h +(bu\013er.)30 b(P)o(assing)315 2342 y Fh(Cle)n(ar)23 +b Fo(remo)o(v)o(es)18 b(all)i(ob)s(jects)e(from)g(the)h(curren)o(tly)g +(selected)h(bu\013er.)31 b Fh(Convert)23 b Fo(causes)315 +2397 y(the)e(con)o(ten)o(ts)f(of)h(the)g(bu\013er)g(\(lines,)i(arc,)f +(vias\))f(to)f(b)q(e)i(con)o(v)o(erted)e(in)o(to)h(an)g(elemen)o(t)315 +2452 y(de\014nition.)h(Refer)14 b(to)h(Section)h(2.4.7)e([P)o +(astebu\013er],)f(page)i(18)g(for)f(examples.)21 b(Default:)435 +2514 y Fm(!Ctrlx:)165 b(PasteBuffer\(Clear\))22 +b(PasteBuffer\(AddSelected\))888 2566 y(Mode\(PasteBuffer\))435 +2618 y(!Shift)h(Ctrlx:)f(PasteBuffer\(Clear\))g +(PasteBuffer\(AddSelected\))888 2670 y(RemoveSelected\(\))g +(Mode\(PasteBuffer\))p eop +%%Page: 41 42 +41 41 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(41)435 149 y Fm(!Mod1c:)165 b(PasteBuffer\(Clear\))22 +b(PasteBuffer\(AddSelected\))435 201 y(!Mod1x:)165 +b(PasteBuffer\(Clear\))22 b(PasteBuffer\(AddSelected\))507 +253 y(RemoveSelected\(\))435 305 y(!Shift1:)141 +b(PasteBuffer\(1\))435 357 y(!Shift2:)g(PasteBuffer\(2\))435 +409 y(!Shift3:)g(PasteBuffer\(3\))435 461 y(!Shift4:)g +(PasteBuffer\(4\))435 513 y(!Shift5:)g(PasteBuffer\(5\))435 +565 y(NoneF3:)165 b(Mode\(PasteBuffer\))75 646 y +Fo(`)p Fm(Polygon\(\(Close|Previous)o(Point\))p Fo(')315 +700 y(P)o(olygons)35 b(need)i(a)f(sp)q(ecial)h(action)f(routine)h(to)e +(mak)o(e)g(life)i(easier.)83 b(Calling)315 755 y Fh(Polygon\(Pr)n +(eviousPoint\))19 b Fo(resets)g(the)h(newly)h(en)o(tered)f(corner)f(to) +g(the)h(previous)g(one.)315 810 y(The)d(Undo)g(action)g(will)h(call)g +(P)o(olygon\(PreviousP)o(oin)o(t\))d(when)j(appropriate)e(to)g(do)h +(so.)315 865 y Fh(Close)h Fo(creates)e(the)g(\014nal)h(segmen)o(t)f(of) +g(the)g(p)q(olygon.)23 b(This)17 b(ma)o(y)e(fail)i(if)f(clipping)j(to)d +(45)315 920 y(degree)g(lines)g(is)g(switc)o(hed)g(on,)f(in)h(whic)o(h)g +(case)f(a)g(w)o(arning)g(is)h(issued.)21 b(Default:)435 +985 y Fm(Nonep:)309 b(Polygon\(Close\))435 1036 +y(!Shiftp:)261 b(Polygon\(Close\))75 1118 y Fo(`)p +Fm(Print\(\))p Fo(')46 b(P)o(ops)15 b(up)h(a)f(prin)o(t)g(con)o(trol)g +(b)q(o)o(x)g(that)g(lets)h(y)o(ou)f(select)h(the)f(output)g(device,)h +(scaling)h(and)315 1172 y(man)o(y)11 b(more)h(options.)19 +b(Eac)o(h)11 b(run)i(creates)e(all)i(\014les)g(that)e(are)h(supp)q +(orted)g(b)o(y)g(the)g(selected)315 1227 y(device.)21 +b(These)14 b(are)g(mask)f(\014les)i(as)f(w)o(ell)h(as)f(drilling)i +(\014les,)f(silk)g(screens)g(and)f(so)f(on.)20 b(The)315 +1282 y(table)c(sho)o(ws)e(the)h(\014lenames)i(for)d(all)i(p)q(ossible)h +(\014les:)626 1347 y Fm(POSIX)23 b(\(extention\))309 +b(8.3)23 b(filename)435 1399 y(--------------------------)o(-------)o +(--------)o(----)435 1451 y(*_componentmask.*)308 b(cmsk.*)435 +1503 y(*_componentsilk.*)g(cslk.*)435 1554 y(*_soldermask.*)380 +b(smsk.*)435 1606 y(*_soldersilk.*)g(sslk.*)435 1658 +y(*_drill.*)500 b(dril.*)435 1710 y(*_groundplane.*)356 +b(gpl.*)435 1762 y(*_group[1..8].*)165 b([..8].*)315 +1830 y Fo(The)18 b(output)f(ma)o(y)f(b)q(e)i(sen)o(t)g(to)e(a)h(p)q +(ostpro)q(cessor)g(b)o(y)h(starting)e(the)i(\014lename)g(with)g(the)315 +1885 y Fh(pip)n(e)23 b Fm(\("|"\))18 b Fo(c)o(haracter.)31 +b(An)o(y)19 b Fm("\045f")g Fo(in)h(a)f(command)g(is)h(replaced)g(with)g +(the)f(curren)o(t)315 1940 y(\014lename.)i(The)15 b(function)h(is)g(a)o +(v)m(ailable)h(from)d(the)i Fh(\014le)h Fo(men)o(u.)k(There)15 +b(are)g(no)g(defaults.)75 2021 y(`)p Fm(Quit\(\))p Fo(')70 +b(Quits)16 b(the)f(application)i(after)e(con\014rming)g(the)h(op)q +(eration.)k(Default:)435 2086 y Fm(WM_PROTOCOLS:)h(Quit\(\))75 +2167 y Fo(`)p Fm(Redo\(\))p Fo(')70 b(This)19 b(routine)g(allo)o(ws)g +(y)o(ou)g(to)f(reco)o(v)o(er)g(from)g(the)g(last)h(undo)g(command.)30 +b(Y)l(ou)19 b(migh)o(t)315 2221 y(w)o(an)o(t)c(to)h(do)g(this)h(if)f(y) +o(ou)g(though)o(t)g(that)f(undo)i(w)o(as)e(going)i(to)e(rev)o(ert)h +(something)g(other)315 2276 y(than)k(what)g(it)h(actually)g(did)h(\(in) +f(case)f(y)o(ou)g(are)g(confused)h(ab)q(out)g(whic)o(h)g(op)q(erations) +315 2331 y(are)d(un-doable\),)i(or)e(if)h(y)o(ou)f(ha)o(v)o(e)g(b)q +(een)h(bac)o(king)g(up)g(through)f(a)g(long)h(undo)g(list)g(and)315 +2386 y(o)o(v)o(er-sho)q(ot)f(y)o(our)h(stopping)h(p)q(oin)o(t.)34 +b(An)o(y)20 b(c)o(hange)f(that)g(is)h(made)g(since)g(the)g(undo)g(in) +315 2441 y(question)f(will)g(trim)f(the)h(redo)f(list.)29 +b(F)l(or)17 b(example)i(if)g(y)o(ou)f(add)g(ten)g(lines,)i(then)f(undo) +315 2495 y(three)d(of)g(them)g(y)o(ou)g(could)h(use)f(redo)g(to)g(put)g +(them)g(bac)o(k,)g(but)g(if)g(y)o(ou)g(mo)o(v)o(e)g(a)f(line)j(on)315 +2550 y(the)h(b)q(oard)f(b)q(efore)h(p)q(erforming)f(the)h(redo,)g(y)o +(ou)f(will)i(lose)f(the)f(abilit)o(y)i(to)e Fm(")p Fo(redo)p +Fm(")g Fo(the)315 2605 y(three)d Fm(")p Fo(undone)p Fm(")h +Fo(lines.)22 b(Default:)435 2670 y Fm(!Shiftr:)46 +b(Redo\(\))p eop +%%Page: 42 43 +42 42 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(42)75 149 y(`)p Fm(RemoveSelected\(\))p Fo(')315 204 +y(This)16 b(routine)f(remo)o(v)o(es)g(all)h(visible)h(and)f(selected)g +(ob)s(jects.)j(There)d(are)f(no)g(defaults.)75 282 y(`)p +Fm(Report\(Object|DrillRepo)o(rt\))p Fo(')315 337 y(This)j(routine)f(p) +q(ops)g(up)h(a)e(dialog)i(b)q(o)o(x)f(describing)i(the)e(v)m(arious)g +(c)o(haracteristics)g(of)g(an)315 392 y(ob)s(ject)f(\(or)g(piece)i(of)e +(an)g(ob)s(ject)g(suc)o(h)h(as)f(a)g(pad)h(or)f(pin\))h(in)g(the)g(la)o +(y)o(out)f(at)g(the)g(cursor)315 447 y(p)q(osition,)21 +b(or)d(a)h(rep)q(ort)g(ab)q(out)g(all)h(of)f(the)g(drill)i(holes)f(in)g +(the)f(la)o(y)o(out.)31 b(There)19 b(are)g(no)315 501 +y(defaults.)75 579 y(`)p Fm(RouteStyle\(1|2|3|4\))p Fo(')315 +634 y(This)h(routine)f(copies)i(the)e(sizes)h(corresp)q(onding)g(to)f +(the)g(n)o(um)o(b)q(ered)h(route)f(st)o(yle)g(in)o(to)315 +689 y(the)c(activ)o(e)h(line)g(thic)o(knes,)g(via)g(diameter,)f(and)g +(via)h(drill)h(size.)j(Defaults:)435 752 y Fm(!Ctrl1:)i +(RouteStyle\(1\))435 804 y(...)435 856 y(!Ctrl4:)g +(RouteStyle\(4\))75 934 y Fo(`)p Fm(Save\(Layout|LayoutAs\))p +Fo(')75 989 y(`)p Fm(Save\(AllConnections|All)o(UnusedPi)o(ns|Elem)o +(entConn)o(ections\))o Fo(')315 1044 y(P)o(assing)17 +b Fh(L)n(ayout)22 b Fo(sa)o(v)o(es)17 b(the)g(la)o(y)o(out)g(using)h +(the)g(\014le)g(from)f(whic)o(h)h(it)g(w)o(as)e(loaded)i(or,)f(if)315 +1098 y(it)f(is)h(a)f(new)g(la)o(y)o(out,)g(calls)h Fh(Save\(L)n +(ayoutAs\))f Fo(whic)o(h)h(queries)g(the)g(user)f(for)f(a)h +(\014lename.)315 1153 y(The)j(v)m(alues:)29 b Fh(A)o(l)r(lConne)n +(ctions)p Fo(,)16 b Fh(A)o(l)r(lUnuse)n(dPins)k Fo(and)f +Fh(ElementConne)n(ctions)h Fo(start)d(a)315 1208 y(connection)f(scan)f +(and)g(sa)o(v)o(e)f(all)i(connections,)g(all)f(un)o(used)h(pins)g(or)e +(the)h(connections)h(of)315 1263 y(a)f(single)h(elemen)o(t)g(to)f(a)g +(\014le.)21 b(There)15 b(are)g(no)g(defaults.)75 1341 +y(`)p Fm(Select\(All|Block|Connec)o(tion|Tog)o(gleObje)o(ct\))p +Fo(')75 1395 y(`)p Fm(Select\(ElementByName|Ob)o(jectByNa)o(me|PadB)o +(yName|P)o(inByName)o(\))p Fo(')75 1450 y(`)p Fm +(Select\(TextByName|ViaBy)o(Name\))p Fo(')315 1505 y(T)l(oggles)k +(either)h(the)g(selection)g(\015ag)f(of)g(the)h(ob)s(ject)e(at)h(the)h +(crosshair)f(p)q(osition)h(\()p Fh(T)m(o)n(g-)315 1560 +y(gleObje)n(ct)t Fo(\))11 b(or)h(selects)h(all)g(visible)h(ob)s(jects,) +e(all)h(inside)h(a)e(rectangle)h(or)e(all)j(ob)s(jects)d(whic)o(h)315 +1615 y(ha)o(v)o(e)j(b)q(een)h(found)f(during)h(the)f(last)g(connection) +i(scan.)j(The)14 b Fh(ByName)k Fo(functions)d(use)f(a)315 +1669 y(regular)e(expression)h(searc)o(h,)f(alw)o(a)o(ys)f(case)h +(insensitiv)o(e,)i(to)d(select)i(the)f(ob)s(jects.)18 +b(Default:)435 1733 y Fm(None:)46 b(Select\(ToggleObject\)) +435 1785 y(None,None:)20 b(See)k(resource)f +(file)g(-)h(this)f(is)h(complex)75 1863 y Fo(`)p Fm +(SetValue\(Grid|LineSize|)o(TextScal)o(e|ViaDr)o(illingH)o(ole|ViaS)o +(ize|Zoo)o(m,)12 b(value\))p Fo(')315 1917 y(Some)20 +b(in)o(ternal)h(v)m(alues)g(ma)o(y)e(b)q(e)i(c)o(hanged)g(online)g(b)o +(y)f(this)h(function.)35 b(The)20 b(\014rst)g(pa-)315 +1972 y(rameter)d(sp)q(eci\014es)j(whic)o(h)e(data)g(has)f(to)h(b)q(e)g +(c)o(hanged.)28 b(The)18 b(other)g(one)g(determines)g(if)315 +2027 y(the)i(resource)h(is)f(set)g(to)g(the)g(passed)h(v)m(alue,)h(if)f +Fh(value)j Fo(is)c(sp)q(eci\014ed)j(without)d(sign,)h(or)315 +2082 y(incremen)o(ts/decremen)o(ts)14 b(if)g(it)f(is)h(sp)q(eci\014ed)h +(with)f(a)e(plus)j(or)d(min)o(us)i(sign.)20 b(The)13 +b(function)315 2137 y(do)q(esn't)k(c)o(hange)g(an)o(y)f(existing)i(ob)s +(ject)f(only)g(the)g(initial)i(v)m(alues)g(of)d(new)h(ob)s(jects.)25 +b(Use)315 2191 y(the)15 b Fh(ChangeSize\(\))g Fo(and)g +Fh(ChangeDril)r(lSize\(\))f Fo(to)h(c)o(hange)g(existing)h(ob)s(jects.) +k(Default:)435 2255 y Fm(Noneg:)189 b(SetValue\(Grid,)22 +b(+5\))435 2307 y(!Shiftg:)141 b(SetValue\(Grid,)22 +b(-5\))435 2359 y(Nonel:)189 b(SetValue\(LineSize,)22 +b(+5\))435 2411 y(!Shiftl:)141 b(SetValue\(LineSize,)22 +b(-5\))435 2462 y(Nonet:)189 b(SetValue\(TextScale,)22 +b(+10\))435 2514 y(!Shiftt:)141 b(SetValue\(TextScale,)22 +b(-10\))435 2566 y(Nonev:)189 b(SetValue\(ViaSize,)22 +b(+5\))435 2618 y(!Shiftv:)141 b(SetValue\(ViaSize,)22 +b(-5\))435 2670 y(!Mod1v:)165 b(SetValue\(ViaDrillingHole,)21 +b(+5\))p eop +%%Page: 43 44 +43 43 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(43)435 149 y Fm(!Mod1)23 b(Shiftv:)f(SetValue\(ViaDrillingHole,) +f(-5\))435 201 y(Nonez:)189 b(SetValue\(Zoom,)22 +b(-1\))435 253 y(!Shiftz:)141 b(SetValue\(Zoom,)22 +b(+1\))75 347 y Fo(`)p Fm(SwapSides\(\))p Fo(')315 402 +y(This)16 b(routine)f(c)o(hanges)h(the)f(b)q(oard)g(side)h(y)o(ou)f +(are)g(viewing.)21 b(Default:)435 474 y Fm(NoneTab:)141 +b(SwapSides\(\))75 568 y Fo(`)p Fm(SwitchDrawingLayer\(valu)o(e\))p +Fo(')315 622 y(Mak)o(es)14 b(la)o(y)o(er)h(n)o(umer)h(1..8)e(the)h +(curren)o(t)g(one.)20 b(Default:)435 694 y Fm(None1:)189 +b(SwitchDrawingLayer\(1\))435 746 y(...)435 798 y(None8:)g +(SwitchDrawingLayer\(8\))75 892 y Fo(`)p Fm(ToggleHideName\(Object|S)o +(electedE)o(lements)o(\))p Fo(')315 947 y(T)l(oggles)15 +b(whether)h(the)f(elemen)o(t's)h(name)f(is)h(displa)o(y)o(ed)g(or)f +(hidden.)22 b(If)16 b(it)f(is)h(hidden)h(y)o(ou)315 1001 +y(w)o(on't)h(see)h(it)h(on)f(the)g(screen)h(and)f(it)h(will)h(not)e +(app)q(ear)g(on)g(the)g(silk)i(la)o(y)o(er)e(when)g(y)o(ou)315 +1056 y(prin)o(t)d(the)f(la)o(y)o(out.)435 1128 y Fm(Noneh:)46 +b(ToggleHideName\(Object\))435 1180 y(!Shifth:)g +(ToggleHideName\(SelectedEle)o(ments\))75 1274 y Fo(`)p +Fm(Undo\(\))p Fo(')75 1328 y(`)p Fm(Undo\(ClearList\))p +Fo(')315 1383 y(The)15 b(unlimited)j(undo)e(feature)e(of)h +Fm(Pcb)g Fo(allo)o(ws)g(y)o(ou)g(to)g(reco)o(v)o(er)f(from)g(most)h(op) +q(erations)315 1438 y(that)10 b(materially)i(a\013ect)e(y)o(ou)h(w)o +(ork.)18 b(Calling)12 b Fh(Undo\(\))g Fo(without)f(an)o(y)f(parameter)h +(reco)o(v)o(ers)315 1493 y(from)16 b(the)h(last)g(\(non-undo\))g(op)q +(eration.)24 b Fh(Cle)n(arList)c Fo(is)d(used)g(to)g(release)g(the)g +(allo)q(cated)315 1548 y(memory)l(.)28 b Fh(Cle)n(arList)20 +b Fo(is)f(called)g(whenev)o(er)f(a)g(new)g(la)o(y)o(out)g(is)g(started) +f(or)h(loaded.)28 b(See)315 1602 y(also)15 b Fh(R)n(e)n(do)p +Fo(.)20 b(Default:)435 1674 y Fm(Noneu:)189 b(Undo\(\))435 +1726 y(!Shift)23 b(Ctrlu:)f(Undo\(ClearList\))75 +1820 y Fo(`)p Fm(Unselect\(All|Block|Conn)o(ection\))p +Fo(')315 1875 y(Unselects)13 b(all)g(visible)i(ob)s(jects,)c(all)i +(inside)h(a)e(rectangle)h(or)e(all)j(ob)s(jects)d(whic)o(h)i(ha)o(v)o +(e)f(b)q(een)315 1930 y(found)k(during)g(the)f(last)g(connection)h +(scan.)k(Default:)435 2001 y Fm(!Shift)j(:)f(Mode\(Save\))h +(Mode\(None\))f(Unselect\(Block\))435 2053 y(!Shift)h(:)70 +b(Unselect\(Block\))22 b(Mode\(Restore\))75 2257 y Fl(5.3)33 +b(Default)22 b(T)-6 b(ranslations)137 2367 y Fo(This)22 +b(section)f(co)o(v)o(ers)f(some)h(default)g(translations)g(of)f(k)o(ey) +h(and)g(button)f(ev)o(en)o(ts)h(as)f(de\014ned)i(in)75 +2422 y(the)f(shipp)q(ed)h(default)g(application)g(resource)f(\014le.)37 +b(Most)20 b(of)g(them)h(ha)o(v)o(e)f(already)h(b)q(een)h(listed)g(in)75 +2477 y(Section)c(5.2)d([Actions],)i(page)g(35.)24 b Fm(Pcb)16 +b Fo(mak)o(es)g(use)h(of)g(a)f(nice)i Fm(X11)e Fo(feature;)h(calling)i +(sev)o(eral)e(action)75 2532 y(routines)f(for)e(one)i(ev)o(en)o(t.)75 +2680 y(`)p Fm(NoneBackSpace:)p Fo(')p eop +%%Page: 44 45 +44 44 bop 75 -58 a Fo(Chapter)15 b(5:)k(X11)c(In)o(terface)1255 +b(44)75 149 y(`)p Fm(NoneDelete:)p Fo(')75 204 y(`)p +Fm(!ShiftBackSpace:)p Fo(')75 259 y(`)p Fm(!Shift)14 +b(Ctrl:)p Fo(')315 314 y(The)h(ob)s(ject)f(at)g(the)h(cursor) +f(lo)q(cation)i(is)f(remo)o(v)o(ed)f(b)o(y)h Fh(None)p +Fm(<)p Fh(Key)p Fm(>)p Fh(BackSp)n(ac)n(e)h Fo(or)e Fh(Shift)315 +369 y(Ctrl)p Fm(<)p Fh(Btn1Down)p Fm(>)i Fo(whereas)g +Fh(Shift)p Fm(<)p Fh(Key)p Fm(>)p Fh(BackSp)n(ac)n(e)i +Fo(also)f(remo)o(v)o(es)e(all)j(other)e(ob)s(jects)315 +423 y(that)e(are)h(fully-connected)j(to)d(the)g(one)g(at)g(the)g +(cursor)g(lo)q(cation.)75 503 y(`)p Fm(!Mod1)f(CtrlLeft:)p +Fo(')75 558 y(`)p Fm(!Mod1)g(CtrlRight:)p Fo(')75 +613 y(`)p Fm(!Mod1)g(CtrlUp:)p Fo(')75 667 y(`)p +Fm(!Mod1)g(CtrlDown:)p Fo(')315 722 y(Scroll)i(one)g(page)f(in)h +(one)f(of)g(the)g(four)g(directions.)75 802 y(`)p Fm(NoneLeft:,)e +(!ShiftLeft:)p Fo(')75 857 y(`)p Fm(NoneRight:,)g +(!ShiftRight:)p Fo(')75 912 y(`)p Fm(NoneUp:,)g +(!ShiftUp:)p Fo(')75 966 y(`)p Fm(NoneDown:,)g +(!ShiftDown:)p Fo(')315 1021 y(Mo)o(v)o(e)h(crosshair)h(either)h +(one)g(or)e(ten)i(p)q(oin)o(ts)f(in)h(grid.)75 1101 y(`)p +Fm(NoneReturn:)p Fo(')315 1156 y(Finished)h(user)e(input,)h +(selects)g(the)f('default')g(button)g(of)g(dialogs.)75 +1235 y(`)p Fm(NoneEscape:)p Fo(')315 1290 y Fh(Mo)n(de\(R)n +(eset\))p Fo(,)h(ab)q(orts)g(user)i(input,)g(selects)g(the)g('ab)q +(ort')e(button)h(of)g(dialogs)g(or)g(resets)315 1345 +y(all)f(mo)q(des.)75 1425 y(`)p Fm(None,)d(Btn2,)g +(None:)p Fo(')75 1479 y(`)p Fm(!Mod1,)g +(Btn2,)g(!Mod1:)p Fo(')315 1534 y(The)19 +b(\014rst)g(sequence)h(mo)o(v)o(es)f(the)g(ob)s(ject)f(or)h(elemen)o(t) +h(name)f(at)g(the)g(cursor)g(lo)q(cation.)315 1589 y(The)c(second)h +(one)f(copies)i(the)e(ob)s(jects.)k(Cop)o(ying)c(isn't)h(a)o(v)m +(ailable)h(for)d(elemen)o(t)i(names.)p eop +%%Page: 45 46 +45 45 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(45)75 149 y Fk(6)41 b(File)25 b(F)-7 b(ormats)137 273 +y Fo(All)16 b(\014les)f(used)g(b)o(y)g Fm(Pcb)f Fo(are)g(read)g(from)g +(the)g(standard)g(output)g(of)g(a)g(command)h(or)f(written)g(to)g(the) +75 327 y(standard)g(input)i(of)e(one)h(as)f(plain)i(sev)o(en)f(bit)h +Fm(ASCII)p Fo(.)j(This)c(mak)o(es)f(it)h(p)q(ossible)h(to)e(use)h(an)o +(y)g(editor)g(to)75 382 y(c)o(hange)e(the)g(con)o(ten)o(ts)f(of)g(a)h +(la)o(y)o(out)f(\014le.)20 b(It)13 b(is)g(the)g(only)g(w)o(a)o(y)f(for) +g(elemen)o(t)h(or)g(fon)o(t)f(description)i(\014les)g(to)75 +437 y(b)q(e)f(created.)19 b(T)l(o)12 b(do)g(so)g(y)o(ou'll)h(need)g(to) +f(study)h(the)f(example)h(\014les)h(`)p Fm(example/*)p +Fo(')c(and)i(`)p Fm(default_font)p Fo(')75 492 y(whic)o(h)k(are)f +(shipp)q(ed)i(with)f Fm(Pcb)p Fo(.)j(F)l(or)c(an)g(o)o(v)o(erview)g +(refer)g(to)f(Chapter)h(1)g([In)o(tro],)f(page)h(4.)137 +561 y(The)j(follo)o(wing)f(sections)h(pro)o(vide)g(the)f(necessary)g +(information)g(ab)q(out)g(the)g(syn)o(tax)g(of)f(the)h(\014les.)75 +616 y(Netlist)h(\014les)g(are)f(not)g(created)g(b)o(y)g +Fm(Pcb)p Fo(,)g(but)g(it)h(do)q(es)f(use)h(them.)26 b(F)l(or)17 +b(information)g(on)g(the)g(format)75 671 y(of)f(a)h(netlist)g(\014le)h +(see)f(the)g Fh(:rn)p Fo(,)f(Chapter)h(3)f([User)g(Commands],)g(page)h +(25.)23 b(Rat)16 b(lines)i(are)f(added)g(on)75 725 y(the)f(curren)o(t)g +(la)o(y)o(er)g(using)h(the)g(curren)o(t)f(The)g(commands)g(describ)q +(ed)i(allo)o(w)f(y)o(ou)f(to)f(add)i(almost)e(an)o(y)75 +780 y(additional)i(functionalit)o(y)g(y)o(ou)e(ma)o(y)g(need.)23 +b(Examples)16 b(are)f(compressed)h(read)g(and)g(write)g(access)f(as)75 +835 y(w)o(ell)f(as)f(arc)o(hiv)o(es.)19 b(The)14 b(commands)f(themselv) +o(es)g(are)g(de\014ned)i(b)o(y)e(the)g(resources)g Fh(elementCommand)p +Fo(,)75 890 y Fh(\014leCommand)p Fo(,)22 b Fh(fontCommand)p +Fo(,)i Fh(libr)n(aryCommand)p Fo(,)f Fh(libr)n(aryContentsCommand)i +Fo(and)d Fh(saveCom-)75 945 y(mand)p Fo(.)32 b(Note)19 +b(that)g(the)g(commands)g(are)g(not)g(sa)o(v)o(ed)g(along)g(with)h(the) +f(data.)31 b(It)20 b(is)f(considered)i(an)75 999 y(adv)m(an)o(tage)g +(to)f(ha)o(v)o(e)h(the)g(la)o(y)o(out)f(\014le)i(con)o(tain)g(all)g +(necessary)f(information,)h(indep)q(enden)o(t)i(of)c(an)o(y)75 +1054 y(other)15 b(\014les.)137 1123 y(One)21 b(thing)f(common)g(to)f +(all)h(\014les)h(is)g(they)e(ma)o(y)h(include)i(commen)o(ts,)e +(newlines,)i(and)e(carriage)75 1178 y(returns)15 b(at)g(an)o(y)f(place) +j(except)e(within)i(quoted)e(strings.)75 1312 y Fl(6.1)33 +b(Basic)22 b(T)n(yp)r(es)137 1410 y Fo(Here)16 b(are)f(the)g(basic)h(t) +o(yp)q(e)f(de\014nitions)i(used)f(in)g(the)f(other)g(sections)h(of)e +(this)i(c)o(hapter.)195 1477 y Fm(Description)118 b(=)24 +b(Name)195 1528 y(DeltaAngle)142 b(=)24 b(Number)195 +1580 y(DrillingHole)94 b(=)24 b(Number)195 1632 y(Flags)262 +b(=)24 b(Number)195 1684 y(FontPosition)94 b(=)24 b(Number)195 +1736 y(Grid)286 b(=)24 b(Number)195 1788 y(GridOffsetX)118 +b(=)24 b(Number)195 1840 y(GridOffsetY)118 b(=)24 b(Number)195 +1892 y(Group)262 b(=)24 b(GroupMember)e([,GroupMember]...)195 +1944 y(GroupMember)118 b(=)24 b(decimal)e(|)i([cs])195 +1995 y(GroupString)118 b(=)24 b(""")f(Group)g([:Group]...)g(""")195 +2047 y(StyleString)f(=)i(""")g(Style)f([:Style]...)f(""")195 +2099 y(Height)238 b(=)24 b(Number)195 2151 y(LayerNumber)118 +b(=)24 b(Number)195 2203 y(LayoutName)142 b(=)24 b(Name)195 +2255 y(Name)286 b(=)24 b(quoted_string)195 2307 y(Number)238 +b(=)24 b(decimal)e(|)i(hex)195 2359 y(PinNumber)f(=)g(quoted_string)195 +2411 y(Spacing)214 b(=)24 b(Number)195 2462 y(StartAngle)142 +b(=)24 b(Number)195 2514 y(SymbolID)190 b(=)24 b(Number)f(|)g +(charconst)195 2566 y(Thickness)166 b(=)24 b(Number)195 +2618 y(TextData)190 b(=)24 b(quoted_string)195 2670 y(TextFlags)166 +b(=)24 b(Flags)p eop +%%Page: 46 47 +46 46 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(46)195 149 y Fm(TextScale)166 b(=)24 b(scale)195 201 +y(TextX)262 b(=)24 b(Number)195 253 y(TextY)262 b(=)24 +b(Number)195 305 y(Value)262 b(=)24 b(Name)195 357 y(Width)262 +b(=)24 b(Number)195 409 y(X)358 b(=)24 b(Number)195 461 +y(X1)334 b(=)24 b(Number)195 513 y(X2)334 b(=)24 b(Number)195 +565 y(Y)358 b(=)24 b(Number)195 616 y(Y1)334 b(=)24 b(Number)195 +668 y(Y2)334 b(=)24 b(Number)195 720 y(charconst)166 +b(=)24 b("'")f()g("'")195 772 y(comment)214 +b(=)24 b("#")f({}...)195 +824 y(decimal)214 b(=)24 b([0-9]+)195 876 y(direction)166 +b(=)24 b([0-3])195 928 y(hex)310 b(=)24 b(0x[0-9a-fA-F]+)195 +980 y(scale)262 b(=)24 b([1-])195 +1032 y(quoted_string)70 b(=)24 b(""")f()f(""")195 1083 y(zoom)286 b(=)24 b([0-MAX])75 1210 +y Fl(6.2)33 b(La)n(y)n(out)23 b(File)h(F)-6 b(ormat)137 +1306 y Fo(The)15 b(la)o(y)o(out)g(\014le)h(describ)q(es)g(a)f(complete) +h(la)o(y)o(out)e(including)k(sym)o(b)q(ols,)d(vias,)g(elemen)o(ts)g +(and)g(la)o(y)o(ers)75 1361 y(with)h(lines,)g(rectangles)f(and)h(text.) +j(This)d(is)g(the)f(most)f(complex)i(\014le)h(of)d(all.)195 +1425 y Fm(File)286 b(=)24 b(Header)f(Font)g(PCBData)195 +1477 y(Header)238 b(=)24 b(PCBName)e([GridData])h([CursorData])f +([PCBFlags])h([Groups])195 1528 y(PCBName)214 b(=)24 +b("PCB\(")f(Name)g(Width)g(Height)g("\)")195 1580 y(GridData)190 +b(=)24 b("Grid\(")e(Grid)i(GridOffsetX)e(GridOffsetY)g("\)")195 +1632 y(CursorData)142 b(=)24 b("Cursor\(")e(X)i(Y)g(zoom)f("\)")195 +1684 y(PCBFlags)190 b(=)24 b("Flags\(")e(Flags)h("\)")195 +1736 y(Groups)238 b(=)24 b("Groups\(")e(GroupString)h("\)")195 +1788 y(Styles)g(=)h("Styles\(")e(StyleString)h("\)")195 +1840 y(Font)286 b(=)24 b({FontData}...)195 1892 y(FontData)190 +b(=)24 b({Symbol}...)195 1944 y(Symbol)238 b(=)24 b("Symbol\(")e +(SymbolID)h(Spacing)g("\)")720 1995 y("\(")g({SymbolData}...)f("\)")195 +2047 y(SymbolData)142 b(=)24 b({SymbolLine}...)195 2099 +y(SymbolLine)142 b(=)24 b("SymbolLine\(")e(X1)h(Y1)h(X2)f(Y2)h +(Thickness)f("\)")195 2151 y(PCBData)214 b(=)24 b({Via)f(|)h(Layer)f(|) +g(Element}...)195 2255 y(Via)310 b(=)24 b("Via\(")f(X)g(Y)h(Thickness)f +(DrillingHole)f(Name)h(Flags)g("\)")195 2359 y(Element)214 +b(=)24 b("Element\(")e(Flags)h(Description)g(LayoutName)f(Value)h(\\) +720 2411 y(TextX)g(TextY)g(direction)g(scale)g(TextFlags"\)")720 +2462 y("\(")g({ElementData}...)f([Mark])h("\)")195 2514 +y(ElementData)118 b(=)24 b({ElementLine)e(|)h(Pad)h(|)g(Pin)f(|)h +(ElementArc)e(}...)195 2566 y(ElementArc)142 b(=)24 b("ElementArc\(")e +(X)h(Y)h(Width)f(Height)720 2618 y(StartAngle)f(DeltaAngle)h(Thickness) +g("\)")195 2670 y(ElementLine)118 b(=)24 b("ElementLine\(")d(X1)j(Y1)g +(X2)f(Y2)h(Thickness)e("\)")p eop +%%Page: 47 48 +47 47 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(47)195 149 y Fm(Mark)286 b(=)24 b("Mark\(")e(X)i(Y)g("\)")195 +201 y(Pad)310 b(=)24 b("Pad\(")f(X1)g(Y1)h(X2)f(Y2)h(Thickness)f(Name)g +(PinNumber)g(Flags"\)")195 253 y(Pin)310 b(=)24 b("Pin\(")f(X)g(Y)h +(Thickness)f(DrillingHole)f(Name)h(PinNumber)g(Flags)g("\)")195 +357 y(Layer)262 b(=)24 b("Layer\(")e(LayerNumber)h(Name)g("\)")720 +409 y("\(")g({LayerData}...)f("\)")195 461 y(LayerData)166 +b(=)24 b({Line)f(|)g(Polygon)g(|)h(Text}...)195 513 y(Line)286 +b(=)24 b("Line\(")e(X1)i(Y1)g(X2)f(Y2)h(Thickness)e(Flags"\)")195 +565 y(Arc)h(=)h("Arc\(")f(X)h(Y)g(Width)f(Height)g(StartAngle)f +(DeltaAngle)h(Thickness)g(Flags"\)")195 616 y(Polygon)214 +b(=)24 b("Polygon\(")e(Flags)h("\)")h(\\)720 668 y("\(")f({Points}...)g +("\)")195 720 y(Points)238 b(=)24 b("\(")f(X)h(Y)f("\)")195 +772 y(Text)286 b(=)24 b("Text\(")e(X)i(Y)g(direction)f(scale)g +(TextData)f(Flags"\)")75 850 y Fo(`)p Fm(PCBName)p Fo(')46 +b(is)18 b(used)f(to)g(de\014ne)h(the)f(la)o(y)o(out's)f(name)h(whic)o +(h)h(is)g(indep)q(enden)o(t)i(of)c(its)i(\014lename.)26 +b(It)17 b(is)315 905 y(displa)o(y)o(ed)f(in)h(the)e(lo)o(w)o(er)g(left) +g(corner)g(of)g(the)g(main)h(windo)o(w.)75 983 y(`)p +Fm(GridData)p Fo(')315 1038 y(is)f(optional)h(and)e(is)i(used)f(to)f +(sa)o(v)o(e)g(the)h(grid)g(setting)g(and)g(o\013set)e(whic)o(h)j(w)o +(ere)e(set)h(at)f(the)315 1092 y(time)i(the)f(la)o(y)o(out)f(w)o(as)h +(sa)o(v)o(ed.)75 1170 y(`)p Fm(CursorData)p Fo(')315 +1225 y(also)h(is)h(an)g(optional)f(parameter)g(to)g(sa)o(v)o(e)f(the)i +(last)f(cursor)g(lo)q(cation)h(and)g(zo)q(om)f(v)m(alue.)315 +1280 y(The)f(real)h(zo)q(om)f(factor)f(is)i(calculated)g(b)o(y)g(scale) +f(=)h(1:\(2)e(p)q(o)o(w)o(er)h(v)m(alue\).)75 1358 y(`)p +Fm(PCBFlags)p Fo(')315 1413 y(determine)20 b(ho)o(w)e(to)h(dra)o(w)f +(lines)i(and)g(whic)o(h)f(name)g(of)g(the)g(elemen)o(ts)g(should)h(b)q +(e)g(dis-)315 1467 y(pla)o(y)o(ed.)530 1531 y Fm(bit)k(4:)47 +b(do)24 b(rubberband)e(moves)i(and)f(rotates)g(if)h(set)530 +1583 y(bit)g(5:)47 b(display)23 b(description)g(of)g(elements)g(if)h +(set)530 1635 y(bit)g(6:)47 b(display)23 b(unique)g(name)h(of)f(an)h +(element)f(if)g(set)530 1687 y(bit)h(7:)47 b(use)24 b(absolute)f(grid)g +(if)g(set)530 1738 y(bit)h(8:)47 b(don't)24 b(clip)f(lines)g(to)h(45)f +(degrees)75 1816 y Fo(`)p Fm(Groups)p Fo(')70 b(La)o(y)o(ergroups)10 +b(are)h(sa)o(v)o(ed)g(b)o(y)g(using)h(this)g(optional)f(parameter.)18 +b(The)11 b(only)h(w)o(a)o(y)e(of)h(c)o(hang-)315 1871 +y(ing)16 b(them)g(is)g(to)f(use)h(an)g(editor)g(and)g(alter)g(the)g +(appropriate)f(line.)24 b(The)16 b(c)o(haracters)f Fh(c,s)315 +1926 y Fo(idenify)i(the)e(comp)q(onen)o(t-)h(and)f(solder-side)i(for)e +(SMD)f(ob)s(jects.)75 2004 y(`)p Fm(Symbol)p Fo(')70 +b(See)16 b(the)f(description)i(of)e(fon)o(t)f(\014les)i(in)g(this)g(c)o +(hapter.)75 2082 y(`)p Fm(Via)p Fo(')142 b(Vias)19 b(are)e(alw)o(a)o +(ys)h(connected)h(to)f(all)h(la)o(y)o(ers)f(whic)o(h)h(also)f(means)g +(vias)g(are)g(one)h(logical)315 2137 y(lev)o(el)i(ahead)f(of)g(la)o(y)o +(ers.)34 b(Vias)20 b(are)g(de\014ned)h(b)o(y)f(p)q(osition,)i(size,)f +(name)f(and)g(b)o(y)g(some)315 2191 y(\015ags.)530 2255 +y Fm(bit)k(0:)47 b(always)23 b(clear)530 2307 y(bit)h(1:)47 +b(always)23 b(set)530 2359 y(bit)h(2:)47 b(set)24 b(if)f(via)h(was)f +(found)g(during)h(a)f(connection)g(search)530 2411 y(bit)h(4:)47 +b(set)24 b(if)f(via)h(is)f(a)h(hole)f(\(has)h(no)f(copper)g(annulus\)) +530 2462 y(bit)h(5:)47 b(display)23 b(the)h(vias)f(name)530 +2514 y(bit)h(6:)47 b(via)24 b(has)f(been)h(selected)530 +2566 y(bit)g(12:)f(set)h(if)f(via)h(has)f(octagonal)g(shape)530 +2618 y(Other)h(bits)f(have)g(special)g(meaning)g(and)h(should)f(not)g +(be)h(changed)530 2670 y(by)g(the)f(user.)48 b(See)23 +b(const.h)g(for)g(more)h(information)p eop +%%Page: 48 49 +48 48 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(48)75 149 y(`)p Fm(Element)p Fo(')46 b(See)16 b(the)f(description)i +(of)e(elemen)o(t)g(\014les)i(in)f(this)f(c)o(hapter.)75 +229 y(`)p Fm(Layer)p Fo(')94 b(A)19 b(la)o(y)o(er)g(is)h(the)f(cen)o +(tral)h(ob)s(ject)e(from)h(the)g(user's)g(p)q(oin)o(t)h(of)f(view.)32 +b(It)20 b(holds)g(all)g(con-)315 284 y(nections)e(and)g(all)g(text)f +(ob)s(jects.)26 b(Up)18 b(to)e(8)h(ma)o(y)g(b)q(e)h(used)g(individuall) +q(y)l(.)30 b(Its)17 b(n)o(um)o(b)q(er,)315 339 y(starting)e(with)g +(one,)g(and)g(its)h(name)f(are)g(read)g(as)g(argumen)o(ts.)315 +419 y(`)p Fm(Line)p Fo(')118 b(All)19 b(lines)g(are)e(iden)o(ti\014ed)j +(b)o(y)d(their)h(start)f(and)g(endp)q(oin)o(ts)i(together)e(with)555 +474 y(their)c(thic)o(kness)f(and)g(some)g(\015ags.)19 +b(They)12 b(ha)o(v)o(e)f(to)h(\014t)g(a)f(45)h(degree)g(sc)o(heme.)770 +538 y Fm(bit)24 b(2:)47 b(set)24 b(if)f(line)h(was)f(found)g(during)g +(a)h(connection)f(search)770 590 y(bit)h(4:)47 b(line)24 +b(is)f(a)h(rat-line)770 642 y(bit)g(6:)47 b(line)24 b(has)f(been)g +(selected)315 722 y Fo(`)p Fm(Polygon)p Fo(')46 b(used)13 +b(to)g(\014ll)h(a)f(larger)f(area)h(with)g(`)p Fm(copper)p +Fo('.)k(The)c(co)q(ordinates)h(sp)q(ecify)g(the)555 777 +y(corners.)20 b(The)15 b(\015ags)g(are:)770 841 y Fm(bit)24 +b(2:)47 b(set)24 b(if)f(polygon)g(was)h(found)f(during)g(a)h +(connection)e(search)770 893 y(bit)i(4:)47 b(polygon)23 +b(is)h(a)g(1.5)f(style)g(polygon)g(that)g(automatically)g(clears)g +(pins)770 945 y(bit)h(6:)47 b(polygon)23 b(has)h(been)f(selected)315 +1025 y Fo(`)p Fm(Text)p Fo(')118 b(Y)l(ou)19 b(ma)o(y)e(use)i(text)f +(ob)s(jects)g(to)g(add)h(information)f(to)g(y)o(our)g(b)q(oard.)30 +b(An)555 1080 y(example)21 b(w)o(ould)f(b)q(e)g(naming)h(a)e(connector) +h(or)f(marking)h(pin)h(one)f(of)f(it.)555 1134 y(The)c(p)q(osition)g +(marks)f(the)g(lo)o(w)o(er)h(left)f(corner)h(of)f(the)g(string)h(whic)o +(h)g(is)g(also)555 1189 y(a)i(\014xp)q(oin)o(t)i(for)e(rotations.)27 +b(T)l(ext)17 b(directions)i(are)f(indep)q(enden)o(t)i(to)d(those)555 +1244 y(of)h(lines.)32 b(They)19 b(are)f(coun)o(ted)h(from)f(zero)g(to)g +(three)h(with)g(a)f(meaning)h(of)555 1299 y(zero)f(to)f(270)g(degree)h +(rotations)f(coun)o(ter-clo)q(c)o(kwise.)30 b(The)18 +b(scaling)h(v)m(alue)555 1354 y(is)d(a)f(p)q(ositiv)o(e)h(in)o(teger)f +(whic)o(h)h(determines)g(a)f(zo)q(om)g(factor)f(in)i(p)q(ercen)o(t.)770 +1418 y Fm(bit)24 b(6:)47 b(the)24 b(text)f(has)h(been)f(selected)770 +1470 y(bit)h(7:)47 b(the)24 b(text)f(is)h(on)f(the)h(solder)f(\(back\)) +g(side)g(of)h(the)f(board)770 1522 y(bit)h(10:)f(the)h(text)f(is)h(on)f +(the)h(silkscreen)e(layer)75 1676 y Fl(6.3)33 b(Elemen)n(t)23 +b(File)h(F)-6 b(ormat)137 1773 y Fo(Elemen)o(t)15 b(\014les)g(are)f +(used)h(to)f(describ)q(e)i(one)e(comp)q(onen)o(t)h(whic)o(h)g(then)g +(ma)o(y)e(b)q(e)i(used)g(sev)o(eral)g(times)75 1827 y(within)21 +b(one)f(or)g(more)f(la)o(y)o(outs.)34 b(Y)l(ou)20 b(will)h(normally)g +(split)g(the)f(\014le)h(in)o(to)f(t)o(w)o(o)e(parts,)i(one)h(for)e(the) +75 1882 y(pinout)g(and)g(one)g(for)f(the)h(pac)o(k)m(age)g +(description.)32 b(Using)19 b Fm(m4)g Fo(allo)o(ws)g(y)o(ou)f(to)g +(de\014ne)i(pin)g(names)e(as)75 1937 y(macros)f(in)h(one)g(\014le)g +(and)g(include)h(a)f(pac)o(k)m(age)f(description)i(\014le)f(whic)o(h)h +(ev)m(aluates)f(the)g(macros.)25 b(See)75 1992 y(the)15 +b(resource)h Fh(elementCommand)j Fo(for)c(more)g(information.)20 +b(The)c(pins)g(\(and)g(pads\))f(m)o(ust)g(app)q(ear)g(in)75 +2047 y(squen)o(tial)j(order)e(in)i(the)f(elemen)o(t)g(\014le)h(\(new)f +(in)g(1.5\))f(so)g(that)g(pin)i(1)f(m)o(ust)f(b)q(e)h(the)g(\014rst)g +(PIN\(...\))23 b(in)75 2101 y(the)15 b(\014le.)137 2169 +y(Doing)22 b(things)g(this)g(w)o(a)o(y)f(mak)o(es)g(it)h(p)q(ossible)h +(to)e(use)i(one)e(pac)o(k)m(age)h(\014le)h(for)e(sev)o(eral)h +(di\013eren)o(t)75 2224 y(circuits.)f(See)16 b(the)f(sample)h(\014les)g +(`)p Fm(dil*)p Fo('.)137 2291 y(The)d(lo)o(w)o(est)e(x)i(and)f(y)g(co)q +(ordinates)h(of)f(all)h(sub)q(ob)s(jects)f(of)g(an)g(elemen)o(t)h(are)f +(used)h(as)f(an)g(attac)o(hmen)o(t)75 2346 y(p)q(oin)o(t)k(for)e(the)i +(crosshair)f(cursor)g(of)f(the)i(main)f(windo)o(w.)195 +2411 y Fm(File)286 b(=)24 b({Element}...)195 2462 y(Element)214 +b(=)24 b("Element\(")e(Flags)h(Description)g(LayoutName)f(Value)h(\\) +720 2514 y(TextX)g(TextY)g(direction)g(scale)g(TextFlags"\)")720 +2566 y("\(")g({ElementData}...)f([Mark])h("\)")195 2618 +y(ElementData)118 b(=)24 b({ElementLine)e(|)h(Pad)h(|)g(Pin)f(|)h +(ElementArc)e(}...)195 2670 y(ElementArc)142 b(=)24 b("ElementArc\(")e +(X)h(Y)h(Width)f(Height)p eop +%%Page: 49 50 +49 49 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(49)720 149 y Fm(StartAngle)22 b(DeltaAngle)h(Thickness)g("\)")195 +201 y(ElementLine)118 b(=)24 b("ElementLine\(")d(X1)j(Y1)g(X2)f(Y2)h +(Thickness)e("\)")195 253 y(Mark)286 b(=)24 b("Mark\(")e(X)i(Y)g("\)") +195 305 y(Pad)310 b(=)24 b("Pad\(")f(X1)g(Y1)h(X2)f(Y2)h(Thickness)f +(Name)g(PinNumber)g(Flags)g("\)")195 357 y(Pin)310 b(=)24 +b("Pin\(")f(X)g(Y)h(Thickness)f(DrillingHole)f(Name)h(PinNumber)g +(Flags)g("\)")75 432 y Fo(`)p Fm(Element)p Fo(')46 b(Ob)s(jects)15 +b(of)g(t)o(yp)q(e)g(elemen)o(t)h(are)f(determined)i(b)o(y)e(\015ags,)g +(some)f(names,)h(a)g(canonical)i(and)315 487 y(a)k(la)o(y)o(out)g(name) +g(as)g(w)o(ell)i(as)e(a)g(v)m(alue.)39 b(Additional)23 +b(\014elds)g(are)e(text)g(p)q(osition,)i(their)315 541 +y(direction)f(coun)o(ted)e(from)g(zero)g(to)g(three)g(\(n)g(*)g(90)g +(degrees)g(coun)o(ter-clo)q(c)o(kwise\))i(and)315 596 +y(elemen)o(t)16 b(data.)315 671 y(`)p Fm(Flags)p Fo(')94 +b(The)18 b(\015ag)g(\014eld)h(determines)h(the)e(state)f(of)h(an)g +(elemen)o(t.)29 b(The)18 b(bit)h(v)m(alues)555 726 y(are:)736 +788 y(bit)c(4:)30 b(the)15 b(elemen)o(t)h(name)f(is)h(hidden)736 +839 y(bit)f(6:)30 b(elemen)o(t)16 b(has)f(b)q(een)h(selected)736 +891 y(bit)f(7:)30 b(elemen)o(t)16 b(is)g(lo)q(cated)f(on)h(the)f +(solder)h(side)315 966 y(`)p Fm(TextFlags)p Fo(')315 +1021 y(`)p Fm(scale)p Fo(')315 1076 y(`)p Fm(direction)p +Fo(')555 1130 y(See)g(the)f(description)i(of)e(text)f(ob)s(ject)h +(earlier)h(in)g(this)g(c)o(hapter.)315 1205 y(`)p Fm(ElementLine)p +Fo(')555 1260 y(A)21 b(line)i(is)e(de\014ned)h(b)o(y)f(its)g(start)f +(and)h(end)h(p)q(oin)o(ts)f(and)g(b)o(y)g(its)h(size,)g(or)555 +1315 y(width.)315 1390 y(`)p Fm(ElementArc)p Fo(')555 +1444 y(De\014nes)e(an)f(arc)g(b)o(y)g(its)g(cen)o(ter,)h(width,)h +(heigh)o(t,)f(startangle,)f(its)g(length)555 1499 y(in)f(degrees)f(and) +g(its)g(size.)26 b(Remem)o(b)q(er)16 b(the)h(y)g(axis)g(on)g(the)g +(screen)g(gro)o(ws)555 1554 y(do)o(wn)o(w)o(ards.)315 +1629 y(`)p Fm(Mark)p Fo(')118 b(is)22 b(just)f(a)h(hin)o(t)g(to)f(mak)o +(e)g(p)q(ositioning)i(easier.)40 b(The)21 b(crosshair)h(will)h(b)q(e) +555 1683 y(p)q(ositioned)17 b(here.)j(Its)15 b(cen)o(ter)g(is)h(passed) +g(as)e(the)i(t)o(w)o(o)d(argumen)o(ts.)315 1758 y(`)p +Fm(Pad)p Fo(')142 b(A)17 b(pad)h(is)f(v)o(ery)g(similar)i(to)d(a)h +(line)i(except)f(it)f(ma)o(y)g(not)f(b)q(e)i(disconnected)555 +1813 y(from)g(its)h(elemen)o(t)g(and)g(it)g(has)f(an)h(asso)q(ciated)g +(name.)30 b(Is)19 b(is)g(de\014ned)h(b)o(y)555 1868 y(t)o(w)o(o)14 +b(end)i(p)q(oin)o(t)f(p)q(osition,)h(size,)g(name)f(and)h(b)o(y)f(some) +g(\015ags.)770 1930 y Fm(bit)24 b(2:)47 b(set)24 b(if)f(pad)h(was)f +(found)g(during)h(a)f(connection)g(search)770 1982 y(bit)h(5:)47 +b(display)23 b(the)h(pads)f(name)770 2033 y(bit)h(6:)47 +b(pad)24 b(has)f(been)h(selected)770 2085 y(bit)g(7:)47 +b(pad)24 b(is)f(located)g(on)h(the)f(solder)g(side)315 +2160 y Fo(`)p Fm(Pin)p Fo(')142 b(A)19 b(pin)h(is)f(v)o(ery)g(similar)h +(to)e(a)g(via)i(except)f(it)g(ma)o(y)f(not)h(b)q(e)g(disconnected)555 +2215 y(from)14 b(its)i(elemen)o(t.)770 2277 y Fm(bit)24 +b(0:)47 b(always)23 b(set)770 2329 y(bit)h(1:)47 b(always)23 +b(clear)770 2380 y(bit)h(2:)47 b(set)24 b(if)f(pin)h(was)f(found)g +(during)h(a)f(connection)g(search)770 2432 y(bit)h(3:)47 +b(set)24 b(if)f(pin)h(is)f(only)h(a)f(mounting)g(hole)h(\(no)f(copper)g +(annulus\))770 2484 y(bit)h(5:)47 b(display)23 b(the)h(pins)f(name)770 +2536 y(bit)h(6:)47 b(pin)24 b(has)f(been)h(selected)770 +2588 y(bit)g(8:)47 b(pin)24 b(is)f(drawn)h(as)f(a)h(square)770 +2640 y(bit)g(12:)f(set)h(if)f(pin)h(is)f(drawn)h(with)f(an)h(octagonal) +e(shape)p eop +%%Page: 50 51 +50 50 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(50)75 149 y Fl(6.4)33 b(F)-6 b(on)n(t)23 b(File)h(F)-6 +b(ormat)137 246 y Fo(A)17 b(n)o(um)o(b)q(er)h(of)e(user)h(de\014ned)i +(sym)o(b)q(ols)e(are)g(called)i(a)d(fon)o(t.)25 b(There)17 +b(is)h(only)f(one)g(p)q(er)h(la)o(y)o(out.)25 b(All)75 +301 y(sym)o(b)q(ols)15 b(are)g(made)h(of)e(lines.)22 +b(See)16 b(the)f(\014le)h(`)p Fm(default_font)p Fo(')d(as)i(an)g +(example.)137 368 y(The)h(lo)o(w)o(est)e(x)h(and)h(y)f(co)q(ordinates)h +(of)e(all)i(lines)h(of)e(a)g(fon)o(t)f(are)h(transformed)f(to)h +(\(0,0\).)195 433 y Fm(File)286 b(=)24 b(Font)195 484 +y(Font)286 b(=)24 b({FontData}...)195 536 y(FontData)190 +b(=)24 b({Symbol}...)195 588 y(Symbol)238 b(=)24 b("Symbol\(")e +(SymbolID)h(FontPosition)f("\)")720 640 y("\(")h({SymbolData}...)f +("\)")195 692 y(SymbolData)142 b(=)24 b({SymbolLine}...)75 +772 y Fo(`)p Fm(Symbol)p Fo(')70 b(The)18 b(t)o(w)o(o)e(argumen)o(ts)h +(are)g(the)h Fm(ASCII)e Fo(co)q(de)i(of)g(the)f(sym)o(b)q(ol)h(and)g +(its)g(distance)g(to)f(the)315 827 y(next)12 b(sym)o(b)q(ol.)19 +b(Unde\014ned)13 b(sym)o(b)q(ols)f(are)g(dra)o(wn)f(as)h(\014lled)h +(rectangles.)19 b(The)12 b Fm(ASCII)f Fo(co)q(de)315 +882 y(ma)o(y)j(b)q(e)i(passed)g(as)f(a)f(c)o(haracter)h(constan)o(t)f +(or)h(as)g(a)g(hexadecimal)i(v)m(alue.)315 961 y(`)p +Fm(SymbolLine)p Fo(')555 1016 y(The)g(sym)o(b)q(ol)h(data)e(itself)i +(is)g(made)f(up)h(of)e(sev)o(eral)i(en)o(tries)f(of)g(t)o(yp)q(e)g +Fh(Sym-)555 1071 y(b)n(olLine)p Fo(.)75 1225 y Fl(6.5)33 +b(Library)25 b(Con)n(ten)n(ts)d(File)h(F)-6 b(ormat)137 +1321 y Fo(There)18 b(is)g(nothing)h(lik)o(e)g(a)e(sp)q(ecial)j(library) +e(format.)26 b(The)18 b(ones)g(that)f(ha)o(v)o(e)g(b)q(een)i(in)o(tro)q +(duced)g(in)75 1376 y(1.4.1)f(just)h(use)g(some)g(nice)i(\(and)e(time)h +(consuming\))g(fetures)f(of)g(GNU)g Fm(m4)p Fo(.)32 b(The)19 +b(only)h(prede\014ned)75 1431 y(format)d(is)i(the)f(one)g(of)g(the)g +(con)o(ten)o(ts)g(\014le)h(whic)o(h)g(is)g(read)f(during)h(startup.)28 +b(It)18 b(is)h(made)f(up)h(of)e(t)o(w)o(o)75 1486 y(basic)f(line)h(t)o +(yp)q(es:)195 1550 y Fm(menu)23 b(entry)143 b(=)24 b("TYPE="name)195 +1602 y(contents)f(line)71 b(=)24 b(template":"package":"va)o(lue":"d)o +(escript)o(ion)195 1654 y(name)286 b(=)24 b(String)195 +1706 y(template)190 b(=)24 b(String)195 1758 y(package)214 +b(=)24 b(String)195 1810 y(value)262 b(=)24 b(String)195 +1862 y(description)118 b(=)24 b(String)195 1914 y(String)238 +b(=)24 b()137 +1981 y Fo(No)11 b(leading)i(whitespaces)f(or)e(commen)o(ts)h(are)g +(allo)o(w)o(ed)h(in)g(this)f(\014le.)20 b(If)11 b(y)o(ou)g(need)h +(either)g(one,)g(de\014ne)75 2036 y(a)g(command)g(that)f(remo)o(v)o(es) +g(them)h(b)q(efore)g(loading.)20 b(Ha)o(v)o(e)11 b(a)h(lo)q(ok)g(to)f +(the)i Fh(libr)n(aryContentsCommand)75 2091 y Fo(resource.)137 +2158 y(The)i(men)o(u)f(en)o(try)g(will)i(app)q(ear)e(in)h(the)g +(selection)g(men)o(u)g(at)e(the)i(top)f(and)g(of)g(the)g(library)h +(windo)o(w.)75 2287 y Fl(6.6)33 b(Library)25 b(File)e(F)-6 +b(ormat)137 2383 y Fo(This)23 b(section)f(pro)o(vides)g(an)g(o)o(v)o +(erview)g(ab)q(out)f(the)h(existing)h Fm(m4)f Fo(de\014nitions)h(of)f +(the)g(elemen)o(ts.)75 2438 y(There)16 b(are)f(basically)i(t)o(w)o(o)c +(di\013eren)o(t)j(t)o(yp)q(es)f(of)g(\014les.)21 b(One)16 +b(to)f(de\014ne)i(elemen)o(t)f(sp)q(eci\014c)h(data)d(lik)o(e)j(the)75 +2493 y(pinout,)j(pac)o(k)m(age)f(and)h(so)e(on,)i(the)f(other)g(to)f +(de\014ne)j(the)e(v)m(alues.)32 b(F)l(or)19 b(example)h(the)f(static)g +(RAM)75 2548 y(circuits)c(43256)e(and)i(62256)d(are)i(v)o(ery)g +(similar.)21 b(They)14 b(therefore)g(share)g(a)g(common)g(de\014nition) +i(in)f(the)75 2603 y(macro)f(\014le)j(but)e(are)g(de\014ned)i(with)e(t) +o(w)o(o)f(di\013eren)o(t)h(v)m(alue)i(lab)q(els.)137 +2670 y(The)f(macro)e(\014le)i(en)o(try:)p eop +%%Page: 51 52 +51 51 bop 75 -58 a Fo(Chapter)15 b(6:)k(File)e(F)l(ormats)1268 +b(51)195 149 y Fm(define\(`Description_43256_)o(dil',)21 +b(`SRAM)i(32Kx8'\))195 201 y(define\(`Param1_43256_dil',)d(28\))195 +253 y(define\(`Param2_43256_dil',)g(600\))195 305 y +(define\(`PinList_43256_dil')o(,)h(``pin1',)i(`pin2',)g(...'\))137 +372 y Fo(And)16 b(the)f(list)h(\014le:)195 437 y Fm +(43256_dil:N:43256:62256)137 504 y Fo(The)h(macro)f(m)o(ust)g(de\014ne) +h(a)f(description,)i(the)f(pin)g(list)g(and)g(up)g(to)f(t)o(w)o(o)f +(additional)j(parameters)75 559 y(that)c(are)h(passed)g(to)g(the)g(pac) +o(k)m(age)g(de\014nitions.)21 b(The)16 b(\014rst)e(one)h(is)h(the)f(n)o +(um)o(b)q(er)g(of)g(pins)h(whereas)f(the)75 614 y(second)h(one)f +(de\014nes)h(for)f(example)h(the)f(width)h(of)f(a)g(pac)o(k)m(age.)137 +681 y(It)k(is)g(v)o(ery)g(imp)q(ortan)o(t)f(to)g(select)h(a)g(unique)h +(iden)o(ti\014er)g(for)e(eac)o(h)h(macro.)30 b(In)19 +b(the)g(example)h(this)75 736 y(w)o(ould)h(b)q(e)h Fh(43256)p +399 736 14 2 v 18 w(dil)j Fo(whic)o(h)d(is)f(also)g(the)g(templates)g +(name.)38 b(It)21 b(is)g(required)h(b)o(y)f(some)g(lo)o(w-lev)o(el)75 +790 y(macros)14 b(that)h Fh(Description)p 560 790 V 17 +w(,)h(Par)n(am1)p 761 790 V 17 w(,)g(Par)n(am2)p 962 +790 V 33 w Fo(and)f Fh(PinList)p 1231 790 V 30 w Fo(are)g(prep)q +(ended.)137 858 y(The)h(list)g(\014le)g(uses)f(a)g(syn)o(tax:)195 +922 y Fm(template:package:value[:mo)o(re)21 b(values])137 +989 y Fo(This)13 b(means)f(that)f(the)h(sho)o(wn)f(example)i(will)g +(create)f(t)o(w)o(o)f(elemen)o(t)h(en)o(tries)g(with)h(the)f(sam)f(pac) +o(k)m(age)75 1044 y(and)k(pinout)h(but)g(with)f(di\013eren)o(t)h +(names.)137 1111 y(A)g(n)o(um)o(b)q(er)f(of)g(pac)o(k)m(ages)g(are)g +(de\014ned)h(in)g(`)p Fm(common.m4)p Fo('.)i(Included)g(are:)195 +1176 y Fm(DIL)23 b(packages)g(with)h(suffix)f(D,)g(DW,)h(J,)f(JD,)h +(JG,)f(N,)h(NT,)f(P)195 1227 y(PLCC)195 1279 y(TO3)195 +1331 y(generic)g(connectors)195 1383 y(DIN)g(41.612)g(connectors)195 +1435 y(zick-zack)g(\(SD)g(suffix\))195 1487 y(15)h(pin)f(multiwatt)137 +1554 y Fo(If)15 b(y)o(ou)e(are)h(going)g(to)f(start)g(y)o(our)h(o)o(wn) +f(library)i(please)g(tak)o(e)e(care)h(ab)q(out)g Fm(m4)g +Fo(functions.)20 b(Be)14 b(a)o(w)o(are)75 1609 y(of)f(quoting)g(and)g +(so)g(on)g(and,)h(most)e(imp)q(ortan)o(t)h(c)o(hec)o(k)g(y)o(our)g +(additional)h(en)o(try)f(b)o(y)g(calling)i(the)e(macro:)195 +1673 y Fm(CreateObject\(`template',)21 b(`value',)h(`package)h +(suffix'\))137 1741 y Fo(If)15 b(quoting)f(is)h(incorrect)g(an)f +(endless)h(lo)q(op)g(ma)o(y)e(o)q(ccur)i(\(brok)o(en)f(b)o(y)g(a)g +(out-of-memory)f(message\).)137 1808 y(The)22 b(scripts)f(in)h(the)f(`) +p Fm(lib)p Fo(')f(directory)h(handle)i(the)e(creation)g(of)g(libraries) +h(as)f(w)o(ell)h(as)f(of)f(their)75 1863 y(con)o(ten)o(ts)15 +b(\014les.)20 b(Querying)d(is)e(also)h(supp)q(orted.)137 +1930 y(I)h(kno)o(w)f(quite)i(w)o(ell)f(that)f(this)h(description)h(of)e +(the)h(library)g(implemen)o(tation)h(is)f(not)f(what)g(some)75 +1985 y(out)h(there)h(exp)q(ect.)28 b(But)18 b(in)g(m)o(y)g(opinion)h +(it's)e(m)o(uc)o(h)h(more)f(useful)i(to)e(lo)q(ok)h(at)f(the)h(commen)o +(ts)f(and)75 2039 y(follo)o(w)e(the)h(macros)e(step)h(b)o(y)g(step.)p +eop +%%Page: 52 53 +52 52 bop 75 -58 a Fo(App)q(endix)17 b(A:)e(Installation)i(and)e(T)l +(roublesho)q(oting)835 b(52)75 149 y Fk(App)r(endix)25 +b(A)41 b(Installation)26 b(and)h(T)-7 b(roublesho)r(oting)137 +254 y Fo(Compiling)16 b(and)f(installing)i(the)e(pac)o(k)m(age)g +(should)g(b)q(e)h(straigh)o(tforw)o(ard.)h(If)e(an)o(y)g(problems)g(o)q +(ccur,)75 309 y(please)e(con)o(tact)f(the)g(author)g(\(Thomas.Nau)p +Fm(@)p Fo(rz.uni-ulm.de\))g(to)g(\014nd)h(a)f(solution)h(and)g(include) +h(it)f(in)o(to)75 364 y(the)i(next)h(release.)75 485 +y Fl(A.1)33 b(Compiling)24 b(and)f(Installing)137 579 +y Fo(This)16 b(section)g(co)o(v)o(ers)e(the)i(steps)f(whic)o(h)h(are)f +(necessary)g(to)g(compile)h(the)g(pac)o(k)m(age.)75 684 +y Fg(A.1.1)30 b(Editing)21 b(con\014g.h)137 778 y Fo(Most)11 +b Fm(X11)h Fo(related)g(options)g(are)g(automatically)g(co)o(v)o(ered)g +(b)o(y)g Fm(imake)f Fo(whic)o(h)i(is)f(called)i(from)d +Fm(xmkmf)p Fo(.)75 832 y(The)k(ones)h(sp)q(ecial)h(to)d +Fm(Pcb)h Fo(ha)o(v)o(e)g(to)f(b)q(e)i(edited)h(in)f(`)p +Fm(config.h)p Fo('.)i(In)d(order)g(of)g(app)q(earance:)75 +927 y(`)p Fm(INFOLIBDIR)p Fo(')315 982 y(m)o(ust)g(b)q(e)g(set)g(to)g +(the)g(directory)h(where)f(y)o(our)g(GNU)g(info)g(\014les)i(are)e(lo)q +(cated.)75 1057 y(`)p Fm(/usr/X11R6/lib/X11/pcb)p Fo(')315 +1112 y(is)h(the)f(path)g(of)g(a)g(directory)g(where)h(the)f(fon)o(t)f +(\014les)i(will)h(b)q(e)f(installed.)75 1186 y(`)p Fm(DEFAULTFONT)p +Fo(')315 1241 y(the)f(name)g(of)g(the)h(default)f(fon)o(t)g(\014le.)75 +1316 y(`)p Fm(DEFAULTLIBRARY)p Fo(')315 1371 y(the)g(name)g(of)g(the)h +(default)f(library)l(.)75 1446 y(`)p Fm(gm4)p Fo(')142 +b(the)15 b(name)g(of)g(GNUs)g(m4)g(v)o(ersion.)75 1520 +y(`)p Fm(Mod1)p Fo(')118 b(If)15 b(y)o(our)e(windo)o(w)i(manager)e(has) +i(already)f(b)q(ound)h Fh(Mo)n(d1)21 b Fo(together)13 +b(with)i(some)f(function)315 1575 y(k)o(eys)h(y)o(ou)g(ma)o(y)f(w)o(an) +o(t)g(to)h(c)o(hange)g(this)h(setting.)k(This)c(is)f(true)g(for)g +(HP-VUE.)75 1650 y(`)p Fm(EXTRA_INCLUDES)p Fo(')315 1705 +y(Some)d(systems)g(do)g(not)f(ha)o(v)o(e)h(the)g(A)o(thena)g(Widget)g +(include)j(\014les)e(in)f(their)h(normal)f(place)315 +1760 y(as)j(con\014gured)h(b)o(y)f Fm(X11)p Fo(s)f(con\014g)i(\014les.) +21 b(De\014ne)15 b(this)h(as)f(follo)o(ws:)530 1822 y +Fm(EXTRA_INCLUDES)22 b(=)i(-I/usr/openwin/share/includ)o(e)315 +1886 y Fo(This)16 b(is)f(probably)h(true)f(for)g(Suns)h(whic)o(h)g(use) +f Fm(OpenWindows)p Fo(.)75 1961 y(`)p Fm(PATCHES)p Fo(')46 +b(This)21 b(sym)o(b)q(ol)f(is)h(passed)g(to)e(the)i(compiler.)36 +b(Use)20 b(it)h(to)f(de\014ne)h(additional)h(compiler)315 +2016 y(\015ags.)d(Add)12 b(the)h Fh(-DNEED)p 791 2016 +14 2 v 17 w(STRDUP)j Fo(\015ag,)c(if)h(y)o(our)f(system)g(do)q(es)h +(not)e(ha)o(v)o(e)h(a)g(strdup\(\))315 2071 y(library)k(function.)75 +2146 y(`)p Fm(HAS_REGEX)p Fo(')315 2200 y(Set)h(to)g +Fh(-DHAS)p 600 2200 V 16 w(REGEX)24 b Fo(if)18 b(y)o(our)f(system)f +(supp)q(orts)i(regular)f(expressions.)27 b(This)17 b(en-)315 +2255 y(ables)f(the)f(actions)g Fh(Sele)n(ct\(*ByName\))p +Fo(.)75 2330 y(`)p Fm(EXITCALL)p Fo(')315 2385 y(The)i(sym)o(b)q(ol)g +Fh(EXITCALL)d Fo(should)j(b)q(e)h(de\014ned)g(according)f(to)f(the)h +Fh(c)n(al)r(l)g(on)g(exit)k Fo(func-)315 2440 y(tions)15 +b(supp)q(orted)h(b)o(y)f(y)o(our)g(system.)k(There)d(are)f(three)g(c)o +(hoices:)530 2501 y Fm(EXITCALL)23 b(=)h(-DHAS_ATEXIT)94 +b(if)23 b(atexit\(\))g(is)h(supported)e(\(SYSV\))530 +2553 y(EXITCALL)h(=)h(-DHAS_ON_EXIT)70 b(if)23 b(on_exit\(\))g(and)g +(no)h(atexit\(\))f(is)g(supported)530 2605 y(EXITCALL)g(=)406 +b(if)23 b(none)h(of)f(them)h(is)f(supported)315 2670 +y Fo(Please)16 b(c)o(hec)o(k)f(y)o(our)g(manpages)g(for)f(details.)p +eop +%%Page: 53 54 +53 53 bop 75 -58 a Fo(App)q(endix)17 b(A:)e(Installation)i(and)e(T)l +(roublesho)q(oting)835 b(53)75 149 y(`)p Fm(SYS_LIBRARIES)p +Fo(')315 204 y(This)18 b(sym)o(b)q(ol)g(is)g(used)g(to)f(pass)g +(additional)i(libraries)h(to)c(the)i(link)o(er.)28 b(The)18 +b(only)g(addi-)315 259 y(tional)e(libraries)h(whic)o(h)f(are)e(used)i +(are)f(the)g(math)g(and)g(lex)h(library)l(.)137 344 y(If)f(y)o(ou)f(ha) +o(v)o(e)g(to)g(mak)o(e)g(system)f(dep)q(enden)o(t)j(c)o(hanges)f +(please)g(include)i(them)d(in)o(to)g(a)h Fh(#ifdef)g(A)o(r)n(chi-)75 +398 y(te)n(ctur)n(e)j Fo(...)h Fh(#endif)25 b Fo(construct)15 +b(and)g(mail)h(a)f(cop)o(y)g(to)g(the)g(author)g(\(Thomas.Nau)p +Fm(@)p Fo(rz.uni-ulm.de\).)137 469 y(No)o(w)i(run)h Fm(xmkmf)c(-a)j +Fo(whic)o(h)i(creates)e(the)g(`)p Fm(Makefiles)p Fo(')f(and)h(runs)h +Fm(make)c(depend)p Fo(.)26 b(This)18 b(should)75 524 +y(\014nish)12 b(without)e(an)o(y)g(problems)h(except)g(some)f(systems)f +(whic)o(h)j(complain)f(ab)q(out)f(missing)i(include)g(\014les.)75 +578 y(Don't)g(w)o(orry)h(ab)q(out)g(an)o(y)g(suc)o(h)g(w)o(arnings)h +(at)e(this)i(time,)g(the)f(pac)o(k)m(age)h(should)g(compile)h(without)e +(an)o(y)75 633 y(problems.)75 752 y Fg(A.1.2)30 b(Man)n(uals)137 +851 y Fo(After)13 b Fm(xmkmf)h(-a)f Fo(has)f(created)h(the)g(new)g(`)p +Fm(Makefile)p Fo(')e(y)o(ou)i(are)f(able)i(to)e(create)g(the)h +(manpages,)g(the)75 906 y(application)k(resource,)e(the)g(info)h +(\014le,)g(the)f Fm(TeX)g Fo(output)g(and)g(a)g(reference)h(card)f(b)o +(y)g(executing)195 974 y Fm(\(cd)23 b(doc;)h(make\))195 +1026 y(\(cd)f(src;)h(make)f(Pcb.ad\))137 1096 y Fo(Y)l(ou'll)c(need)f +Fm(TeX)p Fo(,)f Fm(texindex)f Fo(and,)i(if)f(y)o(ou)g(w)o(an)o(t)f +Fm(PostScript)p Fo(,)g Fm(dvips)h Fo(to)g(build)i(the)e(man)o(uals.)75 +1151 y(Preformatted)d(do)q(cumen)o(tation)h(for)g(the)g(default)g +(con\014guration)h(ma)o(y)e(b)q(e)i(found)f(in)h(the)f(`)p +Fm(./doc.ps)p Fo(')75 1206 y(directory)l(.)33 b(A)19 +b(simple)i Fh(make)i Fo(builds)f(ev)o(erything.)32 b(Generate)20 +b(a)f(prin)o(ted)h(cop)o(y)f(to)g(mak)o(e)g(y)o(our)g(life)75 +1260 y(easier.)h Fm(TeX-3.0)15 b Fo(failed,)h Fm(TeX-3.14)e +Fo(w)o(ork)o(ed)g(just)h(\014ne.)75 1379 y Fg(A.1.3)30 +b(Compiling)21 b(the)f(P)n(ac)n(k)m(age)137 1479 y Fo(After)e(reac)o +(hing)h(this)g(p)q(oin)o(t,)g(it)g(is)g(time)g(for)f +Fm(make)p Fo(.)29 b(It)18 b(should)i(build)g(ev)o(erything)f(without)f +(an)o(y)75 1533 y(errors.)h(If)d(it)f(do)q(esn't)g(refer)g(to)g +(Section)h(A.2)e([problems],)h(page)g(53.)137 1604 y(Y)l(ou)23 +b(ha)o(v)o(e)g(to)f(b)q(e)h(ro)q(ot)f(to)g(install)j(the)d(pac)o(k)m +(age)h(or)g(at)f(least)h(a)f(user)h(with)g(the)g(appropriate)75 +1659 y(priv)o(eleges)f(in)f(some)f Fm(X11)g Fo(directories.)37 +b(Set)20 b(the)h(umask)f(to)g Fh(022)27 b Fo(or)20 b(else)i(some)e +(\014les)h(will)h(not)e(b)q(e)75 1713 y(found)c(b)q(ecause)g(the)f +(directory)g(isn't)h(w)o(orld)f(readable.)137 1784 y(If)j(y)o(ou)g(do)f +(not)h(ha)o(v)o(e)f(the)h(appropriate)g(p)q(ermissions)h(y)o(ou)e +(should)i(run)f(`)p Fm(./pcbtest.sh)p Fo(')d(in)k(the)75 +1839 y(`)p Fm(src)p Fo(')14 b(directory)h(to)g(run)g +Fm(Pcb)g Fo(from)g(the)g(installation)i(directory)l(.)137 +1909 y Fm(make)e(install)20 b Fo(and)i Fm(make)14 b(install.man)20 +b Fo(install)j(the)e(program,)h(the)f(fon)o(ts,)h(the)f(application)75 +1964 y(default)g(resource)f(\014le,)i(all)f(elemen)o(t)g(and)f(pac)o(k) +m(age)h(data)e(as)h(w)o(ell)h(as)f(the)g(manpage)g(in)o(to)g(the)g +Fm(X11)75 2019 y Fo(directories.)h Fm(make)14 b(install.info)g +Fo(do)q(es)i(the)f(same)g(for)f(the)i Fm(GNU)e Fo(info)i(\014le.)75 +2156 y Fl(A.2)33 b(T)-6 b(roublesho)r(oting)137 2255 +y Fo(There)12 b(are)g(some)f(kno)o(wn)h(problems.)19 +b(Most)11 b(of)g(them)h(are)f(related)i(to)e(missing)h(parts)g(of)f(a)g +(standard)75 2310 y Fm(X11)k Fo(distribution.)21 b(Some)15 +b(others)g(are)g(caused)h(b)o(y)f(third)h(part)o(y)e(applications)j +(suc)o(h)e(as)g Fm(X)g Fo(serv)o(ers.)k(T)l(o)75 2365 +y(mak)o(e)e(this)g(list)h(more)e(complete)i(please)g(mail)g(y)o(our)e +(problems)i(and,)f(if)h(a)o(v)m(ailable,)h(solutions)e(to)g(the)75 +2419 y(author.)i(The)c(mail)g(address)g(ma)o(y)f(b)q(e)h(found)g(at)f +(the)g(b)q(eginning)j(of)d(this)h(c)o(hapter.)k(In)d(an)o(y)e(case,)g +(read)75 2474 y(Section)i(A.2.8)e([X11],)g(page)h(55.)137 +2545 y(By)h(the)f(w)o(a)o(y)l(,)f(y)o(ou)h Fm(MUST)f(HAVE)h(AN)g(ANSI)f +(COMPILER)h Fo(to)f(mak)o(e)h Fm(Pcb)f Fo(w)o(ork.)137 +2615 y(If)j(the)g(shell)h(script)f Fm(create_sed_script.sh)d +Fo(fails)j(with)g(an)f(error)g(of)g Fm(awk)h Fo(c)o(hec)o(k)f(y)o(our)g +(system)75 2670 y(for)f Fm(nawk)f Fo(or)h(get)g(the)g +Fm(GNU)g(gawk)p Fo(.)k(See)d(the)f(script)h(for)e(details.)p +eop +%%Page: 54 55 +54 54 bop 75 -58 a Fo(App)q(endix)17 b(A:)e(Installation)i(and)e(T)l +(roublesho)q(oting)835 b(54)137 149 y(Another)16 b(source)g(of)f +(problems)i(are)e(older)i(v)o(ersions)f(of)f Fm(flex)h +Fo(and)g Fm(bison)p Fo(.)21 b Fm(Pcb)15 b Fo(de\014nitely)j(w)o(orks)75 +204 y(with)13 b Fm(flex-2.4.7)e Fo(and)i Fm(bison-1.22)e +Fo(or)h(later.)19 b(The)13 b(problems)g(will)h(result)f(in)g(a)f +Fh(syntax)i(err)n(or)j Fo(while)75 259 y(parsing)h(\014les.)27 +b(Y)l(ou)17 b(will)i(ha)o(v)o(e)e(to)g(add)h Fh(-l\015)j +Fo(to)c(the)g(SYS)p 1092 259 14 2 v 17 w(LIBRARIES)h(iden)o(ti\014er)h +(in)f(`)p Fm(Imakefile)p Fo('.)75 314 y(See)e(also,)f(Section)h(A.2.7)e +([F)l(reeBSD],)g(page)h(55.)137 380 y(The)g(follo)o(wing)h(list)g(giv)o +(es)f(y)o(ou)g(just)f(an)h(idea)h(b)q(ecause)g(I'm)f(not)g(able)g(to)g +(test)f(all)i Fm(Pcb)e Fo(releases)i(on)75 435 y(all)g(platforms.)75 +544 y Fg(A.2.1)30 b(HP)21 b(Series)g(700)e(and)i(800)137 +640 y Fo(Y)l(ou)11 b(ha)o(v)o(e)f(to)f(install)j(sev)o(eral)e +Fm(X11)g Fo(to)q(ols)g(\()p Fm(imake)p Fo(\))f(and)i(include)h(\014les) +f(or,)g(b)q(etter,)g(install)g(a)f(complete)75 695 y +Fm(X11R5)17 b Fo(release.)27 b(Hewlett-P)o(ac)o(k)m(ard)17 +b(do)q(esn't)g(supp)q(ort)h(the)f(A)o(thena)h(Widgets.)26 +b(So)18 b(the)f(header)h(\014les)75 749 y(and)i(libraries)i(are)d +(missing)i(from)e(the)h(application)i(media,)f(but)f(they)g(are)g(a)o +(v)m(ailable)h(as)f(a)g(patc)o(h.)75 804 y(They)c(also)h(do)f(not)f +(ship)j(the)e Fm(ANSI)f Fo(compiler)j(with)e(the)h(normal)f(op)q +(erating)g(system)g(release)h(so)e(y)o(ou)75 859 y(ha)o(v)o(e)g(to)f +(buy)i(one)f(or)g(use)h Fm(GCC)p Fo(.)j(Some)c(of)g(the)g(to)q(ols)g +(are)g(a)o(v)m(ailable)i(as)e(patc)o(hes.)137 925 y(In)k(addition,)h +Fm(Pcb)d Fo(has)h(b)q(een)i(successfully)g(tested)e(on)g(these)g +(platforms)g(with)g Fm(HPUX)d(9.*,)g(10.*)75 980 y Fo(running)h +(self-compiled)i Fm(X11R5)p Fo(.)75 1089 y Fg(A.2.2)30 +b(Sun)21 b(SP)-5 b(AR)n(C)21 b(arc)n(hitecture)137 1185 +y Fo(There)36 b(are)f(no)g(kno)o(wn)f(problems)i(with)g(Sun)g(mac)o +(hines)g(if)f(they)g(use)h Fm(X11R5)e Fo(instead)75 1240 +y(of)41 b Fm(OpenWindows)p Fo(.)96 b Fm(Pcb)41 b Fo(compiled)i +(successfully)g(with)f(all)g(kinds)g(of)f(SP)l(AR)o(Cstations)75 +1294 y Fm(Solaris-2.[345])p Fo(.)137 1361 y(F)l(or)15 +b(problems)h(with)f Fm(OpenWindows)f Fo(refer)h(to)f(Section)j(A.2.8)c +([X11],)h(page)h(55.)137 1427 y(If)h Fm(xmkmf)e Fo(is)i(missing,)g(try) +290 1491 y Fm(/usr/openwin/bin/imake)21 b(-DUseInstalled)h +(-I/usr/openwin/lib/config)290 1542 y(make)i(Makefile)290 +1594 y(make)g(includes)290 1646 y(make)g(depend)137 1713 +y Fo(instead.)19 b(I)12 b(got)e(it)h(compiled)h(but)f(the)g(link)o(er)h +(complained)h(ab)q(out)e(missing)g(sym)o(b)q(ols.)19 +b(The)11 b(problem)75 1767 y(ma)o(y)17 b(b)q(e)h(related)g(to)e(the)i +(mixed)g Fm(OpenWindows)e Fo(-)i Fm(X11R5)e Fo(en)o(vironmen)o(t)i +(whic)o(h)g(is)g(installed)i(on)d(the)75 1822 y(test)e(mac)o(hine.)20 +b(An)o(yw)o(a)o(y)15 b(the)g(co)q(de)h(w)o(as)e(executable)j(and)e(I)g +(ha)o(v)o(en't)g(got)f(a)h(core)g(y)o(et.)75 1932 y Fg(A.2.3)30 +b(Silicon)21 b(Graphics)137 2027 y Fm(Pcb)13 b Fo(has)f(b)q(een)i +(tested)f(on)g(some)f(b)q(o)o(xes)h(running)h(either)g +Fm(IRIX-4.0.5)d Fo(or)i Fm(IRIX-5.3)p Fo(.)18 b(The)13 +b(former)75 2082 y(one)j(uses)f(a)h Fm(X11R4)e Fo(serv)o(er.)21 +b(There)15 b(are)h(no)f(problems)h(except)g(some)f(additionally)j +(needed)f(compiler)75 2137 y(\015ags.)h(F)l(or)10 b(kno)o(wn)g +(problems)i(with)f Fm(X11R4)p Fo(,)f(see)h(Section)h(A.2.8)d([X11],)h +(page)h(55.)18 b(Chec)o(k)10 b(`)p Fm(Imakefile)p Fo(',)75 +2191 y(to)q(o.)75 2301 y Fg(A.2.4)30 b(DEC)22 b(Alpha)137 +2396 y Fm(Pcb)e Fo(compiled)j(and)d(runs)h(without)g(problems)g(on)g +Fm(DEC)14 b(UNIX)h(V3.2c)20 b Fo(if)h(y)o(ou)f(do)h(the)f(follo)o(wing) +75 2451 y(instead)c(of)f(calling)i Fm(xmkmf)d(-a)p Fo(:)290 +2514 y Fm(xmkmf)290 2566 y(make)24 b(Makefiles)290 2618 +y(make)g(includes)290 2670 y(make)g(depend)p eop +%%Page: 55 56 +55 55 bop 75 -58 a Fo(App)q(endix)17 b(A:)e(Installation)i(and)e(T)l +(roublesho)q(oting)835 b(55)75 149 y Fg(A.2.5)30 b(SCO)21 +b(Unix)137 246 y Fo(John)16 b(DuBois)g Fm(<)p Fo(sp)q(cecdt)p +Fm(@)p Fo(deepth)o(t.armory)l(.com)p Fm(>)e Fo(wrote:)195 +310 y Fm(SCO-ODT-3.0)22 b(requires)h(the)h(latest)f(version)g(of)g +(tls003,)g(the)g(Athena)195 362 y(widget)g(library)g(\(available)f +(from)i(sosco.sco.com\).)e(The)h(main)g(problems)195 +414 y(I)h(have)f(encountered)f(are)i(it)f(core)h(dumps)f(fairly)g +(often,)g(especially)195 466 y(while)g(loading/dropping)f(elements...) +137 533 y Fo(I'll)17 b(see)e(what)g(I)g(am)g(able)h(to)f(do)g(as)g(so)q +(on)g(as)f(I)i(ha)o(v)o(e)f(access)g(to)g(an)g Fm(SCO)g +Fo(system.)75 645 y Fg(A.2.6)30 b(Lin)n(ux)137 741 y +Fo(Since)18 b(the)e Fm(X11)g Fo(v)o(ersion)g(of)g Fm(Pcb)f +Fo(has)h(b)q(een)h(dev)o(elop)q(ed)h(on)e(a)g(Lin)o(ux)h(system)f(here) +g(are)g(no)g(kno)o(wn)75 796 y(problems.)75 908 y Fg(A.2.7)30 +b(F)-5 b(reeBSD)20 b(and)h(NetBSD)137 1005 y Fo(If)g +Fm(Pcb)e Fo(complains)j(ab)q(out)e(syn)o(tax)f(errors)g(ev)o(en)i(in)g +(the)f(demo)g(\014les)h(get)f(rid)h(of)e(y)o(our)h Fm(lex)g +Fo(and)75 1059 y Fm(yacc)d Fo(implemen)o(tation.)27 b(Replace)18 +b(them)f(b)o(y)g Fm(GNU)e(flex)i Fo(and)g Fm(bison)p +Fo(.)25 b(Don't)17 b(forget)f(to)h(c)o(hange)g(the)75 +1114 y(SYS)p 162 1114 14 2 v 17 w(LIBRARIES)f(in)g(`)p +Fm(Imakefile)p Fo(')d(from)h Fh(-l)r(l)20 b Fo(to)15 +b Fh(-l\015)p Fo(.)k(Y)l(ou)c(also)h(need)g(to)e(de\014ne:)290 +1178 y Fm(YACC)24 b(=)f(bison)h(-y)290 1230 y(LEX)g(=)g(flex)75 +1342 y Fg(A.2.8)30 b(Problems)21 b(related)f(to)g(X11)137 +1439 y Fo(There)k(are)g(a)f(some)h(problems)g(related)h(to)e +Fm(X11R4)g Fo(or)g(systems)h(deriv)o(ed)h(from)e Fm(X11)g +Fo(suc)o(h)h(as)75 1494 y Fm(OpenWindows)p Fo(.)34 b(See)22 +b(Section)f(A.2.2)e([Sun],)j(page)e(54.)36 b(Y)l(ou)20 +b(at)g(least)h(ha)o(v)o(e)f(to)g(c)o(hange)h(all)g(o)q(ccu-)75 +1548 y(rances)g(of)f Fh(b)n(aseT)m(r)n(anslations)i Fo(in)g(the)f +(resource)g(\014les)g(to)g Fh(tr)n(anslations)i Fo(if)e(y)o(ou)g(are)f +(using)i(a)f Fm(X11R4)75 1603 y Fo(serv)o(er.)e(Lo)q(ok)d(at)e(the)i +Fm(X11R5)e Fh(Intrinsics)j Fo(man)o(ual)e(for)g(details.)137 +1670 y(The)h(panner)g(widget)f(\(prin)o(t)h(dialog)g(b)q(o)o(x\))f(app) +q(ears)g(only)h(in)h(release)f Fm(X11R5)e Fo(and)i(later.)21 +b(It)15 b(really)75 1725 y(simpli\014es)i(adjusting)e(the)g(o\013sets.) +k(With)14 b(earlier)i(releases)f(the)g(prin)o(tout)g(will)h(alw)o(a)o +(ys)e(app)q(ear)h(in)h(the)75 1780 y(cen)o(ter)f(of)g(the)g(page.)137 +1847 y(Y)l(ou)j(ma)o(y)e(ha)o(v)o(e)h(some)g(problems)g(in)h(a)f(mixed) +h Fm(X11-OpenWindows)d Fo(en)o(vironmen)o(t.)26 b(If)17 +b(y)o(ou)g(w)o(an)o(t)75 1902 y(to)h(try)g(it)h(an)o(yw)o(a)o(y)e(y)o +(ou)h(ha)o(v)o(e)h(to)f(add)g(an)h(additional)h(path)e(for)g(include)j +(\014les)f(and)f(de\014ne)g(another)75 1957 y(sym)o(b)q(ol)d(in)g(`)p +Fm(Imakefile)p Fo(',)290 2021 y Fm(EXTRA_INCLUDES)22 +b(=)i(-I/usr/openwin/include)137 2088 y(Pcb)15 b Fo(has)g(b)q(een)h +(tested)f(successfully)j(with)d Fm(X11R6)g Fo(under)h(Lin)o(ux)g +(1.1.59)d(and)j(later.)75 2200 y Fg(A.2.9)30 b(Problems)21 +b(related)f(to)g(T)-5 b(eX)137 2297 y Fo(If)18 b(y)o(our)e +Fm(TeX)h Fo(installation)h(complains)h(ab)q(out)e(a)g(missing)h(`)p +Fm(texinfo.tex)p Fo(')c(\014le)19 b(cop)o(y)e(the)g(one)g(in-)75 +2352 y(cluded)d(in)g(this)e(release)i(\(directory)e(`)p +Fm(doc)p Fo(')f(to)h(y)o(our)g Fm(TeX)g Fo(macro)g(directory)l(.)19 +b(Note,)13 b(there)f(are)g(probably)75 2406 y(new)o(er)i(v)o(ersions)g +(of)f(this)i(\014le)g(a)o(v)m(ailable)g(from)e(some)h(FTP)f(sites.)20 +b Fm(TeX-3.0)13 b Fo(failed,)i Fm(TeX-3.14)e Fo(w)o(ork)o(ed)75 +2461 y(just)i(\014ne.)20 b(Chec)o(k)c(our)f(FTP)f(serv)o(er)h +Fh(ftp.uni-ulm.de)k Fo(for)c(ready-to-prin)o(t)g(v)o(ersions)g(of)g +(the)g(man)o(uals.)p eop +%%Page: 56 57 +56 56 bop 75 -58 a Fo(Index)16 b(of)f(Resources)1381 +b(56)75 149 y Fk(Index)26 b(of)h(Resources)75 307 y Fl(/)75 +372 y Fe(/usr/X11R6)o(/l)o(ib/)o(X1)o(1/p)o(cb)8 b Fd(.)e(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 +b Fc(52)75 512 y Fl(A)75 577 y Fe(absoluteGr)o(id)6 b +Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 +b Fc(30)75 624 y Fe(alignmentD)o(is)o(tan)o(ce)5 b Fd(.)s(.)i(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)19 b Fc(30)75 672 y Fe(allDirecti)o(on)o(Lin)o(es)8 +b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)24 b Fc(27,)13 b(30)75 811 y Fl(B)75 +875 y Fe(backupInte)o(rv)o(al)t Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 +b Fc(27,)c(30)75 923 y Fe(bloat)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 +b Fc(30)75 1055 y Fl(C)75 1120 y Fe(characters)o(Pe)o(rLi)o(ne)8 +b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)24 b Fc(27,)13 b(30)75 1168 y Fe(connectedC)o(ol)o +(or)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Fc(30)75 1215 y Fe(crosshairC)o(ol)o(or)8 b Fd(.)s(.)e(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)21 b Fc(30)75 1348 y Fl(D)75 1412 +y Fe(default)10 b(font)t Fd(.)5 b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)17 b Fc(27)75 1460 y Fe(DEFAULTFON)o(T)7 +b Fd(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 +b Fc(52)75 1508 y Fe(DEFAULTLIB)o(RA)o(RY)8 b Fd(.)s(.)e(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)21 b Fc(52)75 1640 y Fl(E)75 1705 +y Fe(elementCol)o(or)6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)22 b Fc(30)75 1752 y Fe(elementCom)o(ma)o(nd)6 +b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)22 b Fc(27,)13 b(30,)g(45)75 1800 +y Fe(elementCon)o(te)o(nts)o(Co)o(mma)o(nd)8 b Fd(.)e(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 +b Fc(32)75 1847 y Fe(elementPat)o(h)7 b Fd(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Fc(31)75 1895 y Fe(elementSel)o(ec)o +(ted)o(Co)o(lor)s Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Fc(30)75 +1943 y Fe(EXITCALL)s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(52)75 1990 y Fe(EXTRA_INCL)o(UD)o +(ES)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Fc(52)75 2123 y Fl(F)75 2187 y Fe(fileComman)o(d)9 +b Fd(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(27,)13 b(31,)g(45)75 +2235 y Fe(filePath)s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(31)75 2283 y Fe(fontComman)o(d)9 +b Fd(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(27,)13 b(31,)g(45)75 +2330 y Fe(fontFile)c Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)21 b Fc(27,)13 b(31)75 2378 y Fe(fontPath)s Fd(.)s(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 +b Fc(31)75 2510 y Fl(G)75 2575 y Fe(gm4)7 b Fd(.)e(.)h(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(52)75 2622 y Fe(grid)6 b Fd(.)f(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b Fc(31)75 2670 y Fe(gridColor)8 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(32)1012 307 y +Fl(H)1012 368 y Fe(HAS_REGEX)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 b Fc(52)1012 490 y Fl(I)1012 +551 y Fe(INFOLIBDIR)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)24 b Fc(52)1012 597 y Fe(invisibleOb)o(je)o(cts)o(Co)o +(lor)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)25 b Fc(32)1012 726 y Fl(L)1012 +787 y Fe(layerColor)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)24 b Fc(32)1012 833 y Fe(layerGroups)6 +b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b +Fc(27,)13 b(32)1012 879 y Fe(layerName)c Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 b Fc(32)1012 924 +y Fe(layerSelect)o(ed)o(Col)o(or)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 +b Fc(32)1012 970 y Fe(libraryComm)o(an)o(d)7 b Fd(.)f(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 +b Fc(28,)13 b(32,)g(45)1012 1016 y Fe(libraryCont)o(en)o(tsC)o(om)o +(man)o(d)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)21 b Fc(28,)13 b(45)1012 1062 y Fe(libraryFile)o(na)o(me)s +Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 b Fc(27,)c(32)1012 +1107 y Fe(libraryPath)6 b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)20 b Fc(28,)13 b(32)1012 1153 y Fe(lineThickne)o(ss)8 +b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Fc(32)1012 1275 y Fl(M)1012 1336 y Fe(media)6 b Fd(.)t(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b Fc(33)1012 1382 y Fe(Mod1)6 b Fd(.)f(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 +b Fc(52)1012 1504 y Fl(O)1012 1565 y Fe(offLimitCol)o(or)8 +b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Fc(33)1012 1687 y Fl(P)1012 1748 y Fe(PATCHES)t Fd(.)t(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +17 b Fc(52)1012 1794 y Fe(pinColor)s Fd(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(33)1012 +1839 y Fe(pinoutFont0)o(..)o(4)8 b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)21 b Fc(33)1012 1885 y Fe(pinoutNameL)o(en)o(gth)8 +b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)25 b Fc(28,)13 b(33)1012 1931 +y Fe(pinoutOffse)o(tX)8 b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)22 b Fc(33)1012 1977 y Fe(pinoutOffse)o(tY)8 b +Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Fc(33)1012 2022 y Fe(pinoutTextO)o(ff)o(set)o(X)6 b +Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Fc(33)1012 2068 +y Fe(pinoutTextO)o(ff)o(set)o(Y)6 b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +19 b Fc(33)1012 2114 y Fe(pinoutZoom)7 b Fd(.)s(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)21 b Fc(28,)13 b(33)1012 2159 y Fe(pinSelected)o +(Co)o(lor)6 b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b Fc(33)1012 2205 y Fe(printComman)o(d)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Fc(33)1012 2335 y Fl(R)1012 +2396 y Fe(raiseLogWin)o(do)o(w)8 b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)21 b Fc(33)1012 2441 y Fe(ratCommand)8 b +Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(33)1012 2487 y Fe(ratPath)t Fd(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Fc(34)1012 +2533 y Fe(resetAfterE)o(le)o(men)o(t)8 b Fd(.)e(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)25 +b Fc(28,)13 b(34)1012 2579 y Fe(ringBellWhe)o(nF)o(ini)o(sh)o(ed)c +Fd(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)22 b Fc(28,)13 b(34)1012 2624 y Fe(routeStyle)7 +b Fd(.)s(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 +b Fc(28,)13 b(34)1012 2670 y Fe(rubberBandM)o(od)o(e)8 +b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b +Fc(34)p eop +%%Page: 57 58 +57 57 bop 75 -58 a Fo(Index)16 b(of)f(Resources)1381 +b(57)75 149 y Fl(S)75 210 y Fe(saveComman)o(d)9 b Fd(.)d(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)24 b Fc(28,)13 b(34,)g(45)75 256 y Fe(saveInTMP)8 +b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 +b Fc(28,)13 b(34)75 302 y Fe(saveLastCo)o(mm)o(and)s +Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Fc(28,)d(34)75 348 +y Fe(shrink)5 b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(34)75 394 y Fe(size)10 +b Fd(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)24 b Fc(29,)13 b(34)75 440 y Fe(stipplePol)o(yg)o(ons)6 +b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Fc(34)75 +485 y Fe(SYS_LIBRAR)o(IE)o(S)9 b Fd(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)22 b Fc(52)75 608 y Fl(T)75 669 y Fe(textScale)8 +b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(34)75 792 y Fl(U)75 853 y Fe(useLogWind)o(ow)6 b +Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 +b Fc(35)1012 149 y Fl(V)1012 219 y Fe(viaColor)s Fd(.)t(.)6 +b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 +b Fc(35)1012 269 y Fe(viaDrilling)o(Ho)o(le)7 b Fd(.)s(.)f(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)21 b Fc(35)1012 319 y Fe(viaSelected)o(Co)o(lor)6 +b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Fc(35)1012 +368 y Fe(viaThicknes)o(s)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)23 b Fc(35)1012 418 y Fe(volume)8 b Fd(.)e(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Fc(29,)13 +b(35)1012 569 y Fl(W)1012 639 y Fe(warnColor)c Fd(.)d(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 b Fc(35)1012 +784 y Fl(Z)1012 853 y Fe(zoom)6 b Fd(.)f(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 +b Fc(35)p eop +%%Page: 58 59 +58 58 bop 75 -58 a Fo(Index)16 b(of)f(Actions,)g(Commands)g(and)g +(Options)917 b(58)75 149 y Fk(Index)26 b(of)h(Actions,)g(Commands)h +(and)e(Options)75 321 y Fl(-)75 384 y Fe(-alldirect)o(io)o(ns)8 +b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b +Fc(27)75 430 y Fe(-backup)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(27)75 +477 y Fe(-c)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(27)75 +523 y Fe(-copyright)7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)24 b Fc(29)75 570 y Fe(-fontfile)8 b +Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(27)75 616 y Fe(-help)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(29)75 +662 y Fe(-lelement)8 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)24 b Fc(27)75 709 y Fe(-lfile)5 b +Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)18 b Fc(27)75 755 y Fe(-lfont)5 b Fd(.)t(.)h(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 +b Fc(27)75 802 y Fe(-lg)7 b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(27)75 848 y Fe(-libname)s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(27)75 895 +y Fe(-libpath)s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(28)75 941 y Fe(-llib)6 +b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)18 b Fc(28)75 988 y Fe(-llibcont)8 +b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(28)75 1034 y Fe(-loggeomet)o(ry)6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)22 b Fc(28)75 1081 y Fe(-pnl)6 +b Fd(.)f(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(28)75 1127 y Fe(-pz)7 +b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Fc(28)75 1174 y Fe(-reset)5 +b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)18 b Fc(28)75 1220 y Fe(-ring)6 b Fd(.)t(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 +b Fc(28)75 1267 y Fe(-rs)7 b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(28)75 1313 y Fe(-s)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(28)75 1360 y Fe(-save)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b +Fc(28)75 1406 y Fe(-sfile)5 b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(28)75 +1453 y Fe(-size)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(29)75 1499 +y Fe(-v)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(29)75 +1546 y Fe(-version)s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(29)75 1672 y Fl(:)75 +1734 y Fe(:actionCom)o(ma)o(nd\()o(\))6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)19 b Fc(26)75 1781 y Fe(:l)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +20 b Fc(25)75 1827 y Fe(:le)7 b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(25)75 1874 y Fe(:m)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(25)75 1920 y Fe(:q)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(25)75 1967 y Fe(:rn)7 b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(25)75 2013 y Fe(:s)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(25)75 2060 y Fe(:w[q])6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b +Fc(26)75 2186 y Fb(+)75 2249 y Fe(+alldirect)o(io)o(ns)8 +b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b +Fc(27)75 2295 y Fe(+reset)5 b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(28)75 +2342 y Fe(+ring)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(28)75 2388 +y Fe(+s)8 b Fd(.)d(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(28)75 +2435 y Fe(+save)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(28)75 2561 +y Fl(A)75 2624 y Fe(AddRats\(\))8 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(36)75 2670 y +Fe(Atomic\(\))s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(36)1012 321 y Fl(B)1012 +387 y Fe(Bell\(\))5 b Fd(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(36)1012 521 +y Fl(C)1012 586 y Fe(ChangeDrill)o(Si)o(ze\()o(\))6 b +Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Fc(36)1012 634 +y Fe(ChangeHole\()o(\))6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)23 b Fc(36)1012 682 y Fe(ChangeName\()o(\))6 +b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 +b Fc(37)1012 730 y Fe(ChangeOctag)o(on)o(\(\))7 b Fd(.)s(.)f(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)21 b Fc(37)1012 778 y Fe(ChangeSize\()o(\))6 +b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 +b Fc(37)1012 826 y Fe(ChangeSquar)o(e\()o(\))8 b Fd(.)s(.)e(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)21 b Fc(37)1012 874 y Fe(Command\(\))9 +b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 +b Fc(37)1012 922 y Fe(Connection\()o(\))6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Fc(37)1012 1056 y Fl(D)1012 +1121 y Fe(DeleteRats\()o(\))6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)23 b Fc(38)1012 1169 y Fe(Display\(\))9 +b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 +b Fc(38)1012 1217 y Fe(DRC\(\))6 b Fd(.)t(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b Fc(38)1012 1351 y Fl(E)1012 1417 y Fe(EditLayerGr)o(ou)o(ps\()o(\))6 +b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Fc(38)1012 1559 +y Fl(L)1012 1624 y Fe(Load\(\))5 b Fd(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b +Fc(38)1012 1758 y Fl(M)1012 1824 y Fe(MarkCrossha)o(ir)o(\(\))7 +b Fd(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Fc(39)1012 +1872 y Fe(Mode\(\))5 b Fd(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(39)1012 1920 +y Fe(MovePointer)o(\(\))8 b Fd(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)22 b Fc(40)1012 1968 y Fe(MoveToCurre)o(nt)o(Lay)o(er)o(\(\))s +Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(40)1012 2109 y Fl(N)1012 +2175 y Fe(New\(\))6 b Fd(.)t(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(40)1012 +2309 y Fl(P)1012 2374 y Fe(PasteBuffer)o(\(\))8 b Fd(.)s(.)e(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(40)1012 2422 y +Fe(Polygon\(\))9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)25 b Fc(41)1012 2470 y Fe(Print\(\))t +Fd(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)17 b Fc(41)1012 2605 y Fl(Q)1012 2670 y Fe(Quit\(\))5 +b Fd(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)18 b Fc(41)p eop +%%Page: 59 60 +59 59 bop 75 -58 a Fo(Index)16 b(of)f(Actions,)g(Commands)g(and)g +(Options)917 b(59)75 149 y Fl(R)75 210 y Fe(Redo\(\))5 +b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)18 b Fc(41)75 256 y Fe(RemoveSele)o(ct)o(ed\()o(\))6 +b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(42)75 +302 y Fe(Report\(\))s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(42)75 347 y Fe(RouteStyle)o(\(\))6 +b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 +b Fc(42)75 477 y Fl(S)75 538 y Fe(Save\(\))5 b Fd(.)t(.)h(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 +b Fc(42)75 583 y Fe(Select\(\))s Fd(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Fc(42)75 +629 y Fe(SetValue\(\))7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)24 b Fc(42)1012 149 y Fe(SwapSides\(\))6 +b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 +b Fc(43)1012 196 y Fe(SwitchDrawi)o(ng)o(Lay)o(er)o(\(\))s +Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(43)1012 327 y Fl(T)1012 +389 y Fe(ToggleHideN)o(am)o(e\(\))6 b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)20 b Fc(43)1012 521 y Fl(U)1012 583 y Fe(Undo\(\))5 +b Fd(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)18 b Fc(43)1012 629 y Fe(Unselect\(\))8 +b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(43)p eop +%%Page: 60 61 +60 60 bop 75 -58 a Fo(Index)16 b(of)f(Concepts)1395 b(60)75 +149 y Fk(Index)26 b(of)h(Concepts)75 321 y Fl(/)75 383 +y Fc(/tmp)s Fd(.)7 b(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)16 b Fc(19,)d(28,)g(34)75 517 y Fl(A)75 580 y +Fc(ab)q(out,)h(command)f(button)5 b Fd(.)i(.)g(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 +b Fc(11)75 626 y(action)d(command)7 b Fd(.)g(.)f(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)19 b Fc(26)75 672 y(actions)5 b Fd(.)j(.)e(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 +b Fc(35)75 719 y(Actions,)c(initiating)h Fd(.)6 b(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)24 b Fc(26)75 765 y(alignmen)o(t)8 b Fd(.)h(.)d(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b +Fc(30)75 811 y(alignmen)o(t)15 b(targets)8 b Fd(.)e(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)20 b Fc(20)75 858 y(Alpha)t Fd(.)7 b(.)g(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(54)75 904 y(arc)12 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 +b Fc(6)75 950 y(arc,)13 b(an)g(example)s Fd(.)8 b(.)e(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)16 b Fc(15)75 997 y(arc)o(hitecture)6 +b Fd(.)h(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 +b Fc(54,)13 b(55)75 1043 y(ASCI)q(I)f(\014les,)i(format)f(of)c +Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(44)75 1089 y(A)o(tari)13 +b(v)o(ersion)f Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)22 b Fc(2)75 1136 y(atomic)7 b Fd(.)g(.)g(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b Fc(36)75 1261 y Fl(B)75 1324 y Fc(bac)o(kup)7 b Fd(.)h(.)e(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)21 b Fc(19,)13 b(27,)f(28,)h(30,)g(34)75 1370 +y(basic)h(t)o(yp)q(es)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)20 b Fc(45)75 1416 y(b)q(ell)6 +b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fc(36)75 1463 y(bloat)13 +b Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)25 b Fc(30)75 1509 y(bu\013er,)14 +b(an)f(example)8 b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(18)75 1555 y(bu\013er,)14 b(con)o(v)o(ert)f(con)o(ten)o(ts)h(to)f +(elemen)o(t)8 b Fd(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 +b Fc(17)75 1602 y(bu\013er,)14 b(p)q(opup)g(men)o(u)8 +b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(13)75 1648 +y(bu\013er,)14 b(selecting)h(a)7 b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)19 b Fc(40)75 1694 y(button)14 b(translations)g +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Fc(35)75 1820 +y Fl(C)75 1882 y Fc(cat)7 b Fd(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Fc(31,)13 +b(34)75 1928 y(cen)o(tering)5 b Fd(.)j(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(38)75 1975 +y(c)o(hange)c(activ)o(e)g(la)o(y)o(er)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)17 b Fc(10)75 2021 y(c)o(hange)d(dra)o(wing)g(la)o(y)o(er)5 +b Fd(.)i(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Fc(43)75 2068 y(c)o(hange)c(ob)r +(ject)f(name)6 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b Fc(37)75 2114 y(c)o(hange)14 b(settings)9 b Fd(.)e(.)f(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b Fc(42)75 2160 y(c)o(hange)14 +b(sizes)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 +b Fc(36,)c(37)75 2207 y(c)o(hange)h(square)g(\015ag)c +Fd(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)23 b Fc(37)75 +2253 y(c)o(hange)14 b(viewing)h(side)7 b Fd(.)g(.)f(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)20 b Fc(43)75 2299 y(c)o(haracters)14 b(p)q(er)f(line)5 +b Fd(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fc(27,)13 b(30)75 2346 +y(clipping)j(lines)f(to)e(45)g(degree)5 b Fd(.)h(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(30,)c(38)75 +2392 y(clipping)j(of)d(lines)t Fd(.)8 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)17 b Fc(27)75 2438 y(closing)e(a)e(p)q(olygon)f +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(41)75 +2485 y(color)14 b(prin)o(tout)f Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)24 b Fc(20)75 2531 y(color,)14 b(w)o(arning)8 +b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b Fc(35)75 2577 y(colors)t Fd(.)8 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)18 b Fc(30,)12 b(32,)h(33,)g(35)75 2624 y(command-line)i(options)6 +b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(26)75 2670 y(compile,)14 +b(ho)o(w)f(to)s Fd(.)7 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 +b Fc(52)1012 321 y(con\014g.h)8 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Fc(52)1012 +376 y(connection,)15 b(remo)o(ving)g(an)t Fd(.)6 b(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 +b Fc(43)1012 431 y(connections,)e(colors)6 b Fd(.)i(.)e(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)20 b Fc(30)1012 486 y(connections,)15 b(creating)f(list)h +(of)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)19 b Fc(21)1012 541 y(connections,)c(p)q(opup)g(men)o(u) +5 b Fd(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)18 b Fc(13)1012 596 y(connections,)d(reseting)8 +b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Fc(37)1012 651 y(connections,)15 +b(reseting)f(after)f(elemen)o(t)6 b Fd(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)g +(.)19 b Fc(28,)13 b(34)1012 706 y(connections,)i(searc)o(hing)g(for)c +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)25 b Fc(37)1012 761 y(con)o(trol)15 b(panel)9 +b Fd(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 +b Fc(10)1012 816 y(cop)o(y)14 b(an)f(ob)r(ject)t Fd(.)7 +b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)17 +b Fc(44)1012 871 y(cop)o(ying)e(ob)r(jects)7 b Fd(.)g(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Fc(40)1012 926 y(cop)o(ying,)15 +b(an)e(example)f Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 +b Fc(19)1012 981 y(cop)o(yrigh)o(t)s Fd(.)9 b(.)d(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(29)1012 +1036 y(creating)e(ob)r(jects)s Fd(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)17 b Fc(14)1012 1091 y(cursor)d(color)e Fd(.)6 +b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 +b Fc(30)1012 1146 y(cursor)14 b(mo)o(v)o(emen)o(ts)t +Fd(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(40)1012 +1201 y(cursor)d(p)q(osition)g Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)25 b Fc(39)1012 1256 y(cursor)14 b(steps)c +Fd(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 +b Fc(31)1012 1311 y(cutting)15 b(ob)r(jects)c Fd(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Fc(40)1012 +1490 y Fl(D)1012 1571 y Fc(DEC)t Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Fc(54)1012 1625 y(default)d(fon)o(t)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)21 b Fc(27,)13 b(31)1012 1680 +y(default)h(la)o(y)o(out)h(size)d Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)24 b Fc(34)1012 1735 y(default)14 b(library)7 b Fd(.)h(.)f(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Fc(32)1012 1790 +y(default)14 b(text)f(scaling)h Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 +b Fc(34)1012 1845 y(default)14 b(translations)f Fd(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(43)1012 1900 y(design)15 +b(rule)f(c)o(hec)o(king)e Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(23,)13 +b(38)1012 1955 y(device,)h(selecting)h(an)f(output)e +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)25 b Fc(19)1012 2010 y(directory)15 b(/tmp)s +Fd(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(19,)c(28,)g(34)1012 +2065 y(displa)o(y)5 b Fd(.)k(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(34)1012 2120 +y(displa)o(y)m(,)d(p)q(opup)g(men)o(u)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)22 b Fc(12)1012 2175 y(displa)o(yi)q(ng)16 b(elemen)o(t)e(names)c +Fd(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 +b Fc(12,)13 b(38)1012 2230 y(displa)o(yi)q(ng)j(pinout)11 +b Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(38)1012 +2285 y(displa)o(yi)q(ng)16 b(status)d(information)f Fd(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 +b Fc(9)1012 2340 y(DOS)14 b(\014lenames)t Fd(.)7 b(.)f(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 b Fc(20)1012 2395 y(dra)o(wing)e(ob)r +(jects)t Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Fc(13)1012 2450 y(drc)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)21 b Fc(23,)13 b(30,)g(34,)g(38)1012 2505 +y(drill)h Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)25 b Fc(42)1012 2560 +y(drillin)q(g)16 b(hole,)d(c)o(hanging)j(of)c(ob)r(jects)c +Fd(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 +b Fc(36)1012 2615 y(drillin)q(g)16 b(hole,)d(setting)i(of)d(initial)k +(size)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 +b Fc(42)1012 2670 y(D)o(VI)13 b(format)g(of)g(man)o(ual)s +Fd(.)8 b(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(53)p eop +%%Page: 61 62 +61 61 bop 75 -58 a Fo(Index)16 b(of)f(Concepts)1395 b(61)75 +149 y Fl(E)75 212 y Fc(elemen)o(t)14 b(name,)f(hiding)h +Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(43)75 258 y(elemen)o(t)14 +b(name,)f(remo)o(ving)h(from)f(silk-screen)h Fd(.)7 b(.)f(.)g(.)g(.)g +(.)25 b Fc(43)75 305 y(elemen)o(t,)14 b(an)f(example)e +Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(17)75 351 y(elemen)o(t,)14 +b(an)f(o)o(v)o(erview)7 b Fd(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 +b Fc(4)75 398 y(elemen)o(t,)14 b(color)7 b Fd(.)g(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)19 b Fc(30,)13 b(32)75 444 y(elemen)o(t,)h(command)e +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)24 b Fc(27,)13 b(30)75 491 y(elemen)o(t,)h +(creating)g(a)f(new)g(pac)o(k)n(age)f Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(17)75 537 y(elemen)o(t,)14 +b(displa)o(y)h(names)e(of)8 b Fd(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fc(12,)13 b(38)75 584 +y(elemen)o(t,)h(\014leformat)7 b Fd(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +19 b Fc(48)75 630 y(elemen)o(t,)14 b(\014les)e Fd(.)6 +b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fc(27,)13 b(30,)g(31)75 +677 y(elemen)o(t,)h(loading)h(to)e(bu\013er)g Fd(.)6 +b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)24 b Fc(25)75 723 y(elemen)o(t,)14 b(mo)o(v)o(e)f(name)g(of)7 +b Fd(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)20 b Fc(44)75 770 y(en)o(tering)14 +b(user)g(commands)5 b Fd(.)j(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(24)75 +816 y(erasing)c(ob)r(jects)f Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)25 b Fc(13)75 862 y(example)14 b(\014les)e +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 +b Fc(17)75 909 y(example)14 b(of)f(bu\013er)h(handling)h +Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)24 b Fc(18)75 955 y(example)14 b(of)f(connection)i(lists)d +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)23 b Fc(21)75 1002 y(example)14 b(of)f(cop)o(ying)h +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Fc(19)75 1048 +y(example)14 b(of)f(creating)h(an)g(elemen)o(t)d Fd(.)c(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Fc(17)75 +1095 y(example)14 b(of)f(elemen)o(t)h(handling)5 b Fd(.)k(.)d(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 +b Fc(17)75 1141 y(example)d(of)f(line)i(handling)s Fd(.)9 +b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)16 b Fc(15)75 1188 y(example)e(of)f(loading)6 +b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Fc(19)75 +1234 y(example)c(of)f(loading)j(an)d(elemen)o(t)h(\014le)t +Fd(.)7 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 +b Fc(17)75 1281 y(example)d(of)f(mo)o(ving)6 b Fd(.)i(.)e(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)18 b Fc(19)75 1327 y(example)c(of)f(pastebu\013er)i +(handling)t Fd(.)9 b(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)17 b Fc(18)75 1374 y(example)d(of)f(pin)h(handling)7 +b Fd(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)19 b Fc(17)75 1420 y(example)14 b(of)f(p)q(olygon)i +(handling)t Fd(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)16 b Fc(15)75 1467 y(example)e(of)f(prin)o(ting)c +Fd(.)g(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 b Fc(19)75 1513 +y(example)14 b(of)f(rectangle)i(handling)f Fd(.)6 b(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(15)75 +1560 y(example)14 b(of)f(sa)o(ving)5 b Fd(.)j(.)e(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)18 b Fc(19)75 1606 y(example)c(of)f(text)g(handling)c +Fd(.)g(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)21 b Fc(16)75 1652 y(example)14 b(of)f(via)h(handling)8 +b Fd(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)21 b Fc(16)75 1699 y(exit)11 b Fd(.)6 +b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)23 b Fc(25,)13 b(41)75 1832 y Fl(F)75 1894 y Fc(\014le)h(format,)e +(elemen)o(t)i(data)e Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(48)75 +1941 y(\014le)14 b(format,)e(fon)o(t)h(data)6 b Fd(.)h(.)g(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)19 b Fc(49)75 1987 y(\014le)14 b(format,)e(la)o(y)o(out)j(data) +6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Fc(46)75 2034 y(\014le)c(format,)e +(libraries)7 b Fd(.)i(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 +b Fc(50)75 2080 y(\014le)14 b(format,)e(library)j(con)o(ten)o(ts)6 +b Fd(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)18 b Fc(50)75 2127 y(\014le)c(formats)5 b Fd(.)i(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(44)75 +2173 y(\014le)c(formats,)f(basic)h(t)o(yp)q(es)d Fd(.)6 +b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)23 b Fc(45)75 2219 y(\014le)14 b(load)g(command)6 +b Fd(.)i(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fc(27,)13 b(31)75 2266 +y(\014le)h(sa)o(v)o(e)f(command)7 b Fd(.)g(.)f(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 +b Fc(28,)13 b(34)75 2312 y(\014le,)h(p)q(opup)g(men)o(u)5 +b Fd(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b +Fc(12)75 2359 y(fon)o(t)c(command)g Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)25 b Fc(27,)13 b(31)75 2405 y(fon)o(t)g(\014le,)g(format)g(of)d +Fd(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(49)75 +2452 y(fon)o(t)13 b(\014les)7 b Fd(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)19 b Fc(27,)13 b(31)75 2498 y(fon)o(t,)g(an)g +(o)o(v)o(erview)f Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 +b Fc(4)1012 149 y(fon)o(t,)13 b(used)h(for)e(pin)j(names)5 +b Fd(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)19 b Fc(33)1012 195 y(format)13 b(of)g(elemen)o(t)h +(\014les)s Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(48)1012 +241 y(format)c(of)g(fon)o(t)g(\014les)8 b Fd(.)f(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)21 b Fc(49)1012 286 y(format)13 b(of)g(la)o(y)o(out)h +(\014les)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(46)1012 +332 y(format)13 b(of)g(libraries)i Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)25 b Fc(50)1012 378 y(format)13 b(of)g(library)i(con)o(ten)o(ts)d +Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)24 b Fc(50)1012 423 y(F)m(reeBSD)7 b Fd(.)h(.)e(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 +b Fc(55)1012 545 y Fl(G)1012 606 y Fc(grid)5 b Fd(.)j(.)e(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fc(11,)13 +b(30,)g(31)1012 652 y(grid)h(color)e Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Fc(32)1012 +698 y(grid,)14 b(absolute)h(and)e(relativ)o(e)s Fd(.)c(.)d(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(12,)c(38)1012 +743 y(grid,)h(displa)o(y)f Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)24 b Fc(12,)13 b(38)1012 789 y(grid,)h(setting)g(of)t +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 +b Fc(42)1012 835 y(groups)t Fd(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(27,)13 b(32)1012 +880 y(groups,)h(editing)h(of)8 b Fd(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)21 b Fc(38)1012 1009 y Fl(H)1012 1069 y Fc(Hewlett)13 +b(P)o(ac)o(k)n(ard)6 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +20 b Fc(54)1012 1115 y(hide)15 b(elemen)o(t)e(name)6 +b Fd(.)h(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 b Fc(43)1012 +1161 y(ho)o(w)13 b(to)g(start)6 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 b Fc(8)1012 1206 y(HP)9 +b Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Fc(54)1012 1328 y Fl(I)1012 +1389 y Fc(info)14 b(\014le)e Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 b Fc(53)1012 +1435 y(information)15 b(ab)q(out)f(ob)r(jects)9 b Fd(.)e(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)22 +b Fc(42)1012 1481 y(input-\014eld,)16 b(p)q(osition)f(of)5 +b Fd(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(9)1012 1526 y(input\014eld,)e +(sa)o(ving)e(en)o(tered)g(command-line)6 b Fd(.)j(.)d(.)g(.)19 +b Fc(28,)13 b(34)1012 1572 y(input\014eld,)j(start)d(user)g(input)t +Fd(.)8 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)17 b Fc(37)1012 1618 y(install,)e(ho)o(w)e(to)7 +b Fd(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(52)1012 1746 y Fl(K)1012 1807 y Fc(k)o(ey)14 b(translations)s +Fd(.)9 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(35)1012 1852 y(k)o(eyb)q(oard)e(b)q(ell)d Fd(.)6 +b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(28,)13 +b(34)1012 1981 y Fl(L)1012 2042 y Fc(la)o(y)o(er,)h(c)o(hange)g(activ)o +(e)8 b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 b Fc(43)1012 +2087 y(la)o(y)o(er,)14 b(name)f(of)c Fd(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)22 b Fc(32)1012 2133 y(la)o(y)o(ers,)14 +b(an)f(o)o(v)o(erview)5 b Fd(.)j(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 +b Fc(5)1012 2179 y(la)o(y)o(ers,)14 b(c)o(hanging)h(activ)o(e)f(one)f +Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)25 b Fc(10)1012 2224 y(la)o(y)o(ers,)14 b(colors)e +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b Fc(32)1012 2270 y(la)o(y)o(ers,)14 b(editing)h(of)e(groups)8 +b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)21 b Fc(38)1012 2316 y(la)o(y)o(ers,)14 +b(groups)9 b Fd(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 +b Fc(27,)13 b(32)1012 2361 y(la)o(y)o(ers,)h(switc)o(hing)h(on/o\013)5 +b Fd(.)i(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(10)1012 2407 y(la)o(y)o(out)d(\014les)8 +b Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Fc(27,)13 b(28,)g(31,)g(34)1012 +2453 y(la)o(y)o(out)i(\014les,)e(format)g(of)e Fd(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)24 b Fc(46)1012 2498 y(la)o(y)o(out)15 +b(\014les,)e(sa)o(ving)i(of)c Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Fc(25,)13 +b(26)p eop +%%Page: 62 63 +62 62 bop 75 -58 a Fo(Index)16 b(of)f(Concepts)1395 b(62)75 +149 y Fc(la)o(y)o(out)14 b(ob)r(jects,)f(an)h(o)o(v)o(erview)8 +b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)21 b Fc(3)75 195 y(la)o(y)o(out)14 b(size)f +Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)25 +b Fc(29)75 241 y(la)o(y)o(out,)14 b(default)g(size)g(of)d +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 b Fc(34)75 287 y(la)o(y)o(out,)14 +b(loading)h(a)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 +b Fc(25)75 333 y(la)o(y)o(out,)c(loading)h(to)e(bu\013er)6 +b Fd(.)i(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)19 b Fc(25)75 379 y(la)o(y)o(out,)14 +b(merging)g(a)8 b Fd(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(25)75 425 y(la)o(y)o(out,)14 b(prin)o(ting)h(a)8 +b Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Fc(41)75 +471 y(la)o(y)o(out,)14 b(start)f(a)g(new)5 b Fd(.)h(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)18 b Fc(40)75 517 y(la)o(y)o(out-name)c Fd(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 b Fc(4,)12 +b(25)75 563 y(length)i(of)f(a)g(pin)h(name)t Fd(.)7 b(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)16 +b Fc(28,)d(33)75 609 y(length)h(of)f(outputline)6 b Fd(.)j(.)d(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)18 b Fc(27)75 654 y(library)d(command)7 +b Fd(.)g(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Fc(28,)13 b(32)75 +700 y(library)i(con)o(ten)o(ts)f(command)t Fd(.)7 b(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(28,)c(32)75 +746 y(library)i(con)o(ten)o(ts)f(\014le,)f(format)g(of)e +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 +b Fc(50)75 792 y(library)15 b(\014le,)f(format)e(of)5 +b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Fc(50)75 838 y(library)d(name)7 +b Fd(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b +Fc(27,)13 b(32)75 884 y(library)i(searc)o(h)f(path)t +Fd(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(28)75 +930 y(library)e(searc)o(hpath)d Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)24 b Fc(32)75 976 y(library)15 b(windo)o(w)c Fd(.)6 +b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(13)75 +1022 y(line)15 b(clipping)7 b Fd(.)i(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(27)75 1068 y(linelength)9 +b Fd(.)g(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)21 b Fc(30)75 1114 y(lines,)14 b(an)g(example)d Fd(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(15)75 +1160 y(lines,)14 b(an)g(o)o(v)o(erview)7 b Fd(.)g(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)19 b Fc(6)75 1205 y(lines,)14 b(clipping)i(to)d(45) +h(degree)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)21 b Fc(30,)13 b(38)75 1251 y(lines,)h(setting)g(of)f(initial)j +(size)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)20 b Fc(42)75 1297 y(lines,)14 b(size)f +Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)24 b Fc(32)75 1343 y(Lin)o(ux)6 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 +b Fc(55)75 1389 y(list)14 b(of)f(connections)s Fd(.)c(.)d(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)16 b Fc(30)75 1435 y(listing)f(libraries)f +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b Fc(28)75 1481 y(listing)15 b(library)g(con)o(ten)o(ts)c +Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)23 b Fc(32)75 1527 y(loading)15 +b(a)e(la)o(y)o(out)i(to)e(bu\013er)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 +b Fc(25)75 1573 y(loading)e(elemen)o(ts)c Fd(.)6 b(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(27,)13 b(28,)f(30,)h(31,)g +(32)75 1619 y(loading)i(elemen)o(ts)f(to)f(bu\013er)e +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)22 b Fc(25)75 1665 y(loading)15 b(\014les)c +Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 +b Fc(38)75 1710 y(loading)15 b(fon)o(ts)7 b Fd(.)f(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)19 b Fc(27,)13 b(31)75 1756 y(loading)i(la)o(y)o +(outs)e Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fc(25,)13 b(27,)g(31)75 +1802 y(loading)i(sym)o(b)q(ols)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +20 b Fc(27,)13 b(31)75 1848 y(loading,)i(an)e(example)5 +b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b Fc(19)75 1894 +y(log)d(windo)o(w)t Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 b +Fc(13,)12 b(28,)h(33,)g(35)75 2024 y Fl(M)75 2085 y Fc(m4)e +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)24 b Fc(30)75 2131 y(m4,)13 +b(prepro)q(cessing)i(example)g(\014les)9 b Fd(.)e(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b Fc(17)75 2177 +y(mak)o(e)11 b Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 b Fc(53)75 2223 y(Mak)o(e\014le)14 +b Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)25 b Fc(52)75 2269 y(man)o(uals)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(53)75 2315 y(mark)12 b Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Fc(39)75 +2361 y(media)t Fd(.)8 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(33)75 2406 y(media)d(margin)f +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 +b Fc(33)75 2452 y(media,)14 b(size)f(of)t Fd(.)7 b(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(20)75 2498 y(men)o(us)12 +b Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)23 b Fc(11)1012 149 y(merging)15 b(la)o(y)o(outs)s +Fd(.)8 b(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 +b Fc(25)1012 205 y(messages)5 b Fd(.)i(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 +b Fc(13,)13 b(28,)g(33,)g(35)1012 260 y(mirroring)i(prin)o(tout)c +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fc(19)1012 +315 y(mo)q(de)14 b(selection)t Fd(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)17 b Fc(10)1012 371 y(mo)q(de,)d(selecting)g(of)t +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(39)1012 +426 y(moun)o(ting)e(holes)9 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)22 b Fc(36)1012 481 y(mo)o(v)o(e)12 b Fd(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)25 b Fc(34)1012 536 y(mo)o(v)o(e)14 b(an)f(ob)r(ject)8 +b Fd(.)f(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 +b Fc(44)1012 592 y(mo)o(ving)15 b(ob)r(jects)e(to)g(curren)o(t)h(la)o +(y)o(er)c Fd(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +23 b Fc(40)1012 647 y(mo)o(ving,)14 b(an)g(example)5 +b Fd(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Fc(19)1012 828 +y Fl(N)1012 909 y Fc(name)c(of)f(an)g(elemen)o(t)8 b +Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 b Fc(38)1012 965 +y(name,)13 b(c)o(hange)h(an)g(ob)r(jects)e Fd(.)7 b(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 +b Fc(37)1012 1020 y(namelength)15 b(of)e(pins)e Fd(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)23 b Fc(28,)13 b(33)1012 1075 y(NetBSD)s +Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)17 b Fc(55)1012 1130 y(netlist)c Fd(.)6 b(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 +b Fc(22,)13 b(25,)g(33,)g(34,)g(36,)g(38)1012 1312 y +Fl(O)1012 1393 y Fc(ob)r(ject,)g(c)o(hange)h(name)g(of)6 +b Fd(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)20 b Fc(37)1012 1448 y(ob)r(ject,)13 +b(c)o(hanging)i(the)f(size)f(of)g(an)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Fc(14)1012 1503 +y(ob)r(ject,)13 b(cop)o(y)h(an)8 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)21 b Fc(44)1012 1558 y(ob)r(ject,)13 +b(creating)i(an)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)20 +b Fc(14)1012 1614 y(ob)r(ject,)13 b(dra)o(wing)i(and)e(remo)o(ving)t +Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +17 b Fc(13)1012 1669 y(ob)r(ject,)c(mo)o(v)o(e)h(an)e +Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 b +Fc(44)1012 1724 y(ob)r(ject,)13 b(remo)o(ving)i(an)c +Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)24 b Fc(14,)13 b(43)1012 1780 y(ob)r(ject,)g +(selecting)i(an)d Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 +b Fc(12)1012 1835 y(ob)r(jects,)13 b(mo)o(ving)i(to)e(curren)o(t)g(la)o +(y)o(er)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)17 b Fc(40)1012 1890 y(ob)r(jects,)c(p)q(opup)i(men)o(u)6 +b Fd(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(12)1012 1945 +y(o)q(ctagonal)c(pins)g(and)e(vias)g Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 +b Fc(37)1012 2001 y(o\013)14 b(limit)h(color)t Fd(.)7 +b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 +b Fc(33)1012 2056 y(o\013set)c(of)f(pinnames)h Fd(.)6 +b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)25 b Fc(33)1012 2111 +y(o\013set)14 b(of)f(pinout)e Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)23 b Fc(33)1012 2167 y(o\013set)14 b(of)f(prin)o(tout)t +Fd(.)7 b(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b +Fc(20)1012 2222 y(Op)q(enWindo)o(ws)5 b Fd(.)k(.)d(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(54)1012 2277 y(op)q(eration)d(mo)q +(des,)e(selecting)i(of)c Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(39)1012 2332 y(outline)15 +b(prin)o(tout)s Fd(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 +b Fc(20)1012 2388 y(output)d(device)s Fd(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Fc(19)1012 2443 y(outputline,)f +(length)e(of)9 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Fc(27)1012 +2498 y(o)o(v)o(erlap,)14 b(minim)o(um)g Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)25 b Fc(23)p eop +%%Page: 63 64 +63 63 bop 75 -58 a Fo(Index)16 b(of)f(Concepts)1395 b(63)75 +149 y Fl(P)75 212 y Fc(pastebu\013er,)14 b(an)g(example)d +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)22 b Fc(18)75 258 y(pastebu\013er,)14 +b(con)o(v)o(ert)g(con)o(ten)o(ts)g(to)e(elemen)o(t)f +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(17)75 304 y(pastebu\013er,)14 +b(p)q(opup)h(men)o(u)10 b Fd(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(13)75 +350 y(pastebu\013er,)14 b(selecting)h(a)8 b Fd(.)f(.)f(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b Fc(40)75 397 y(path)14 b(for)e(elemen)o(t)i(\014les)t +Fd(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(31)75 443 y(path)d(for)e(fon)o +(t)h(\014les)c Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 +b Fc(31)75 489 y(path)14 b(for)e(la)o(y)o(out)j(\014les)8 +b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Fc(31)75 536 +y(path)14 b(for)e(libraries)t Fd(.)d(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)17 b Fc(32)75 582 y(PC)c(UNIX)t Fd(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Fc(54,)d(55)75 628 y(pin)h(color)8 +b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)21 b Fc(33)75 675 y(pin,)14 b(name)f(of)d Fd(.)c(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)22 b Fc(28,)13 b(33)75 721 y(pinout)i(of)d +(elemen)o(ts)d Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 +b Fc(12)75 767 y(pinout,)14 b(displa)o(y)i(of)8 b Fd(.)d(.)i(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(38)75 814 y(pinout,)14 +b(fon)o(t)f(to)g(displa)o(y)i(pin)g(names)c Fd(.)6 b(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(33)75 860 y(pinout,)14 +b(zo)q(omfactor)g(of)e(displa)o(y)5 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(28,)c(33)75 906 y(pins,)h(an)f(example) +t Fd(.)8 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(17)75 953 y(pins,)d(c)o(hanging)h(shap)q(e)f(of)t +Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(37)75 999 y(p)q(oin)o(ter,)d(mo)o(ving) +g(of)c Fd(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Fc(40)75 +1045 y(p)q(olygon)7 b Fd(.)h(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(34)75 1091 y(p)q(olygon)c(p)q +(oin)o(t,)f(go)f(bac)o(k)h(to)f(previous)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)21 b Fc(41)75 1138 y(p)q(olygon,)15 +b(an)e(example)8 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 +b Fc(15)75 1184 y(p)q(olygon,)15 b(an)e(o)o(v)o(erview)5 +b Fd(.)i(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(7)75 1230 +y(p)q(olygon,)d(closing)g(a)t Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)17 b Fc(41)75 1277 y(p)q(opping)e(up)f(men)o(us)9 +b Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)22 b Fc(11)75 +1323 y(p)q(ostpro)q(cessing)16 b(la)o(y)o(out)e(data)9 +b Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 +b Fc(28,)13 b(34)75 1369 y(prepro)q(cessing)i(elemen)o(t)f(data)d +Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b +Fc(27,)13 b(28,)g(30)75 1416 y(prepro)q(cessing)i(fon)o(t)e(data)c +Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)22 b Fc(27,)13 b(31)75 1462 y(prepro)q(cessing)i(la)o(y)o(out)g +(data)9 b Fd(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)21 b Fc(27,)13 b(31)75 1508 y(prev)o(en)o(ting)i(loss)f(of)f +(data)f Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)24 b Fc(19,)13 b(28,)g(34)75 1555 y(prin)o(t)h(command)8 +b Fd(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(20)75 1601 y(prin)o(t)14 b(media)8 b Fd(.)f(.)f(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)20 b Fc(20,)13 b(33)75 1647 y(prin)o(t)h +(o\013set)8 b Fd(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)21 b Fc(20)75 1693 y(prin)o(ting)6 b Fd(.)j(.)d(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 +b Fc(33)75 1740 y(prin)o(ting)c(a)e(la)o(y)o(out)5 b +Fd(.)i(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(41)75 +1786 y(prin)o(ting,)e(an)e(example)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +21 b Fc(19)75 1832 y(problems)6 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Fc(53)75 +1964 y Fl(Q)75 2026 y Fc(quit)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Fc(25,)13 +b(41)75 2158 y Fl(R)75 2220 y Fc(rat-line)5 b Fd(.)i(.)g(.)f(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 b Fc(22,)c(36,)g(38)75 +2267 y(rats)g(nest)c Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Fc(22,)13 b(25,)g(33,)f(34,)h(36,)g(38) +75 2313 y(reco)o(v)o(er)d Fd(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)22 b Fc(41,)13 b(43)75 2359 y(rectangle,)h(an)f +(example)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Fc(15)75 +2406 y(redo)9 b Fd(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Fc(41)75 2452 +y(redra)o(wing)14 b(la)o(y)o(out)t Fd(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)17 b Fc(38)75 2498 y(refreshing)d(la)o(y)o(out)5 +b Fd(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b +Fc(38)1012 149 y(release,)c(curren)o(t)9 b Fd(.)e(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)22 b Fc(29)1012 195 y(remo)o(ving)15 +b(connections)e Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(43)1012 +241 y(remo)o(ving)15 b(ob)r(jects)5 b Fd(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 +b Fc(13,)13 b(14,)g(43)1012 287 y(remo)o(ving)i(selected)f(ob)r(jects)t +Fd(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)17 b Fc(42)1012 333 y(rep)q(ort)c Fd(.)6 +b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)25 b Fc(42)1012 379 y(rep)q(ort,)13 b(p)q(opup)i(men)o(u)5 +b Fd(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Fc(13)1012 425 +y(reseting)d(found)e(connections)6 b Fd(.)j(.)d(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)19 b Fc(28,)13 b(34,)g(37)1012 471 +y(resources)6 b Fd(.)h(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)19 b Fc(30)1012 517 y(rotate)t Fd(.)7 +b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)18 b Fc(34)1012 563 y(rotating)d(a)e(bu\013er)7 +b Fd(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b +Fc(40)1012 609 y(rotating)15 b(prin)o(tout)e Fd(.)6 b(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)25 b Fc(19)1012 654 y(routing)15 +b(st)o(yle)5 b Fd(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 +b Fc(28,)13 b(34,)g(42)1012 700 y(rubb)q(erband)8 b Fd(.)h(.)d(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Fc(34,)13 b(38)1012 +830 y Fl(S)1012 891 y Fc(sa)o(ving)i(connections)8 b +Fd(.)g(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Fc(42)1012 +937 y(sa)o(ving)15 b(\014les)9 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fc(42)1012 983 y(sa)o(ving)15 +b(found)f(connections)8 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 b Fc(37)1012 +1029 y(sa)o(ving)15 b(last)f(en)o(tered)f(user)h(command)e +Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)25 b Fc(28,)13 +b(34)1012 1075 y(sa)o(ving)i(la)o(y)o(outs)s Fd(.)8 b(.)e(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 +b Fc(19,)d(25,)g(26,)g(28,)g(34)1012 1121 y(sa)o(ving,)i(an)e(example)t +Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Fc(19)1012 +1167 y(scaling)e(a)e(prin)o(tout)7 b Fd(.)h(.)e(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)20 b Fc(20)1012 1213 y(scanning)15 b(connections)5 +b Fd(.)k(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fc(37)1012 1259 +y(SCO)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)19 b Fc(54)1012 1305 y(scrolling)t +Fd(.)9 b(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)17 b Fc(44)1012 1350 y(searc)o(hing)e(connections)d +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Fc(37)1012 1396 y(searc)o(hpath)15 +b(for)d(elemen)o(t)i(\014les)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(31)1012 +1442 y(searc)o(hpath)15 b(for)d(fon)o(t)h(\014les)g Fd(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)25 b Fc(31)1012 1488 y(searc)o(hpath)15 +b(for)d(la)o(y)o(out)j(\014les)d Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Fc(31)1012 +1534 y(searc)o(hpath)15 b(for)d(libraries)7 b Fd(.)i(.)d(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 +b Fc(32)1012 1580 y(selected)15 b(ob)r(ject,)e(remo)o(ving)h(an)7 +b Fd(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)20 b Fc(42)1012 1626 y(selected)15 b(ob)r(jects,)e(c)o(hanging)i +(size)c Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)24 b Fc(12)1012 1672 y(selected)15 b(ob)r(jects,)e(remo)o(ving)8 +b Fd(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)21 b Fc(12)1012 1718 y(selecting)15 b(a)e(bu\013er)g +Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)25 b Fc(40)1012 +1764 y(selecting)15 b(a)e(new)g(mo)q(de)g Fd(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +25 b Fc(10)1012 1810 y(selecting)15 b(ob)r(jects)t Fd(.)8 +b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(12,)13 b(42)1012 +1856 y(selection)7 b Fd(.)h(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)20 b Fc(42,)13 b(43)1012 1901 y(selection,)i(an)e(example)h +Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)25 b Fc(21)1012 1947 y(selection,)15 +b(p)q(opup)f(men)o(u)f Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)25 b Fc(12)1012 +1993 y(SGI)t Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(54)1012 +2039 y(shrink)d Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)25 b Fc(34)1012 2085 y(signal)6 +b Fd(.)j(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)20 b Fc(36)1012 2131 y(Silicon)c(Graphics)9 +b Fd(.)f(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b +Fc(54)1012 2177 y(size)14 b(of)f(a)g(la)o(y)o(out)f Fd(.)6 +b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)24 b Fc(29)1012 +2223 y(size)14 b(of)f(lines)t Fd(.)8 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Fc(32)1012 2269 y(size)c(of)f(lines)i +(and)e(vias)e Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Fc(42)1012 +2315 y(size)14 b(of)f(vias)c Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)22 b Fc(35)1012 2361 y(sizes,)14 +b(c)o(hanging)h(of)e(ob)r(jects)s Fd(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(36,)c(37)1012 +2406 y(sizes,)h(p)q(opup)g(men)o(u)d Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)23 b Fc(12)1012 2452 y(Solaris)8 b Fd(.)h(.)d(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 +b Fc(54)1012 2498 y(spacing,)15 b(minim)o(um)d Fd(.)6 +b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fc(23)p eop +%%Page: 64 65 +64 64 bop 75 -58 a Fo(Index)16 b(of)f(Concepts)1395 b(64)75 +149 y Fc(sp)q(eak)o(er)14 b(v)o(olume)t Fd(.)7 b(.)g(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)17 b Fc(29,)c(35)75 195 y(square)h(\015ag,)f(c)o(hanging)i +(of)e(ob)r(jects)c Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)22 b Fc(37)75 241 y(start)13 b(user)g(input)5 +b Fd(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 +b Fc(37)75 286 y(starting)c(a)f(new)g(la)o(y)o(out)h +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Fc(40)75 332 y(starting)14 +b Fe(Pcb)8 b Fd(.)d(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)21 b Fc(26)75 378 y(status)13 b(information)f Fd(.)7 +b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Fc(9)75 423 +y(strings,)14 b(an)f(example)f Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 +b Fc(16)75 469 y(strings,)14 b(an)f(o)o(v)o(erview)6 +b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(7)75 +515 y(Sun)t Fd(.)8 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Fc(54)75 +560 y(sym)o(b)q(ols)c Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)24 b Fc(27,)13 b(31)75 606 y(sym)o(b)q(ols,)h(an)g(o)o +(v)o(erview)t Fd(.)7 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 +b Fc(4)75 734 y Fl(T)75 795 y Fc(temp)q(orary)d(\014les)f +Fd(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)24 b Fc(19,)13 b(28,)g(34)75 +841 y(T)m(eX,)f(problems)t Fd(.)c(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)17 b Fc(55)75 886 y(texinfo)d(\014le)f Fd(.)6 +b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 +b Fc(53)75 932 y(text,)13 b(an)g(example)5 b Fd(.)i(.)g(.)f(.)g(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)17 b Fc(16)75 978 y(text,)c(an)g(o)o(v)o(erview)f +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b +Fc(7)75 1023 y(text,)13 b(default)h(scaling)6 b Fd(.)i(.)e(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)19 b Fc(34)75 1069 y(text,)13 b(editing)6 +b Fd(.)i(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 +b Fc(12)75 1115 y(thic)o(kness)c(of)d(lines)t Fd(.)c(.)e(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)16 b Fc(32)75 1160 y(thic)o(kness)f(of)d(ob)r +(jects)d Fd(.)e(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Fc(14)75 +1206 y(thic)o(kness)15 b(of)d(vias)d Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)21 b Fc(35)75 1252 y(thic)o(kness,)14 b(c)o(hanging)h(of)e +(ob)r(jects)5 b Fd(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)18 b Fc(37)75 1297 y(translations)7 b +Fd(.)i(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 +b Fc(35,)13 b(43)75 1343 y(troublesho)q(oting)6 b Fd(.)j(.)d(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fc(53)75 1471 y Fl(U)75 +1532 y Fc(undo)t Fd(.)7 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Fc(43)75 +1578 y(undo,)d(m)o(ulti-action)h(resources)8 b Fd(.)f(.)f(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20 +b Fc(36)75 1623 y(undo,)14 b(p)q(opup)g(men)o(u)6 b Fd(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)18 b Fc(13)1012 149 y(unix)d(command)e +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)24 +b Fc(27,)13 b(28,)g(30,)g(31,)g(32,)g(34)1012 195 y(unselect)i(ob)r +(jects)s Fd(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 +b Fc(43)1012 241 y(user)d(commands)7 b Fd(.)g(.)f(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)20 b Fc(24)1012 286 y(user)14 b(input)5 +b Fd(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)19 b Fc(44)1012 415 y Fl(V)1012 475 y Fc(v)o(ersion,)14 +b(curren)o(t)5 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 +b Fc(29)1012 521 y(vias,)14 b(an)f(example)6 b Fd(.)i(.)e(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(16)1012 567 y(vias,)14 +b(an)f(o)o(v)o(erview)g Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)25 b Fc(4)1012 612 y(vias,)14 b(c)o(hanging)h(shap)q(e)f(of)6 +b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(37)1012 658 y(vias,)14 +b(color)6 b Fd(.)h(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)19 b Fc(35)1012 704 y(vias,)14 b(con)o(v)o(erting)h(to)e +(moun)o(ting)i(hole)10 b Fd(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)23 b Fc(36)1012 749 y(vias,)14 b(setting)g(of)f(initial)j(size)s +Fd(.)7 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)17 b Fc(42)1012 795 y(vias,)d(size)7 +b Fd(.)h(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)21 b Fc(35)1012 841 y(viewing)15 b(side,)f(c)o(hanging)h(of)8 +b Fd(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)22 b Fc(43)1012 886 y(v)o(olume)15 b(of)d(sp)q(eak)o +(er)f Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)23 b Fc(29,)13 b(35)1012 +1015 y Fl(X)1012 1076 y Fc(X11)f Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)25 +b Fc(29)1012 1121 y(X11)13 b(default)h(translations)6 +b Fd(.)j(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)h(.)19 b Fc(43)1012 1167 y(X11)13 b(resources)g +Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)25 +b Fc(30)1012 1213 y(X11)13 b(translations)7 b Fd(.)i(.)d(.)h(.)f(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)h(.)20 b Fc(35)1012 1258 y(X11,)13 +b(problems)6 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) +19 b Fc(55)1012 1304 y(xmkmf)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fc(52)1012 +1426 y Fl(Z)1012 1486 y Fc(zo)q(om)14 b(of)e(dra)o(wing)j(windo)o(w)9 +b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +g(.)g(.)h(.)f(.)22 b Fc(35)1012 1532 y(zo)q(om)14 b(of)e(pinout)j +(windo)o(w)8 b Fd(.)g(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)22 b Fc(28,)13 b(33)1012 1578 +y(zo)q(om,)g(setting)5 b Fd(.)j(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)19 b Fc(12)1012 1623 y(zo)q(om,)13 b(setting)h(of)d +Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b +Fc(42)p eop +%%Page: -1 66 +-1 65 bop 1862 -58 a Fo(i)75 149 y Fk(T)-7 b(able)27 +b(of)f(Con)n(ten)n(ts)75 320 y Fl(Cop)n(ying)12 b Fa(.)g(.)e(.)g(.)g(.) +g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)35 +b Fl(1)75 455 y(History)8 b Fa(.)j(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)30 b Fl(2)75 +590 y(1)67 b(In)n(tro)r(duction)8 b Fa(.)k(.)e(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)g(.)h(.)f(.)g(.)30 b Fl(4)224 659 y Fo(1.1)45 b(Sym)o(b)q(ols)9 +b Fh(.)g(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 +b Fo(4)224 714 y(1.2)45 b(Vias)6 b Fh(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)20 b Fo(4)224 768 +y(1.3)45 b(Elemen)o(ts)13 b Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)27 b Fo(4)224 823 y(1.4)45 b(La)o(y)o(ers)6 b +Fh(.)h(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 +b Fo(5)224 878 y(1.5)45 b(Lines)8 b Fh(.)h(.)e(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fo(6)224 933 y(1.6)45 +b(Arcs)t Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)19 b Fo(6)224 988 y(1.7)45 b(P)o(olygons)14 +b Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)29 +b Fo(7)224 1042 y(1.8)45 b(T)l(ext)14 b Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)29 b Fo(7)75 1164 +y Fl(2)67 b(Getting)23 b(Started)7 b Fa(.)k(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.) +f(.)g(.)29 b Fl(9)224 1232 y Fo(2.1)45 b(The)15 b(Application)j(Windo)o +(w)12 b Fh(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 +b Fo(9)374 1287 y(2.1.1)44 b(The)15 b(Status-line)i(and)e +(Input-\014eld)h Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)28 b Fo(9)374 1342 y(2.1.2)44 +b(The)15 b(Con)o(trol)g(P)o(anel)8 b Fh(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)23 b Fo(10)374 1396 y(2.1.3)44 b(The)15 b(Mo)q(de)g +(Selectors)6 b Fh(.)j(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 +b Fo(10)374 1451 y(2.1.4)44 b(Dra)o(wing)14 b(Area)d +Fh(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 +b Fo(11)374 1506 y(2.1.5)44 b(Men)o(u)8 b Fh(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)23 +b Fo(11)224 1561 y(2.2)45 b(Log)15 b(Windo)o(w)8 b Fh(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)23 b Fo(13)224 1616 y(2.3)45 b(Library)16 +b(Windo)o(w)e Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)29 b Fo(13)224 1670 y(2.4)45 +b(Dra)o(wing)15 b(and)g(Remo)o(ving)g(Basic)h(Ob)s(jects)e +Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)29 b Fo(13)374 1725 y(2.4.1)44 b(Lines)12 b Fh(.)c(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)27 b Fo(15)374 1780 y(2.4.2)44 b(Arcs)8 b Fh(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)23 b Fo(15)374 1835 y(2.4.3)44 b(P)o(olygons)15 +b(and)g(Rectangles)10 b Fh(.)e(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)25 b Fo(16)374 +1890 y(2.4.4)44 b(T)l(ext)8 b Fh(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 +b Fo(16)374 1944 y(2.4.5)44 b(Vias)9 b Fh(.)f(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)24 +b Fo(16)374 1999 y(2.4.6)44 b(Elemen)o(ts)5 b Fh(.)j(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)20 +b Fo(17)374 2054 y(2.4.7)44 b(P)o(astebu\013er)6 b Fh(.)g(.)i(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 +b Fo(18)224 2109 y(2.5)45 b(Mo)o(ving)15 b(and)g(Cop)o(ying)e +Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)28 b Fo(19)224 2164 y(2.6)45 b(Loading)16 b(and)f(Sa)o(ving)e +Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)28 b Fo(19)224 2218 y(2.7)45 b(Prin)o(ting)10 +b Fh(.)e(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)25 +b Fo(19)224 2273 y(2.8)45 b(Connection)16 b(Lists)10 +b Fh(.)e(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)26 b Fo(21)224 2328 y(2.9)45 b(Selection)16 +b Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b +Fo(21)224 2383 y(2.10)45 b(Rats)14 b(Nest)g Fh(.)7 b(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)29 b Fo(22)224 2438 y(2.11)45 b(Design)15 +b(Rule)h(Chec)o(king)d Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)27 b Fo(23)75 2559 y Fl(3)67 b(User)22 +b(Commands)10 b Fa(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)33 +b Fl(25)p eop +%%Page: -2 67 +-2 66 bop 1850 -58 a Fo(ii)75 42 y Fl(4)67 b(Command-Line)24 +b(Options)11 b Fa(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)g(.)h(.)f(.)34 b Fl(27)224 110 y Fo(4.1)45 +b(Options)14 b Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 +b Fo(27)224 165 y(4.2)45 b(Sp)q(ecial)17 b(Options)11 +b Fh(.)d(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)26 b Fo(29)75 286 y Fl(5)67 b(X11)21 +b(In)n(terface)8 b Fa(.)i(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)30 +b Fl(30)224 355 y Fo(5.1)45 b(Non-Standard)15 b(X11)g(Application)i +(Resources)10 b Fh(.)d(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)25 b Fo(30)224 409 y(5.2)45 b(Actions)6 b +Fh(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 +b Fo(35)224 464 y(5.3)45 b(Default)15 b(T)l(ranslations)7 +b Fh(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)22 b Fo(43)75 585 y Fl(6)67 b(File)24 b(F)-6 b(ormats)6 +b Fa(.)k(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)28 +b Fl(45)224 654 y Fo(6.1)45 b(Basic)16 b(T)o(yp)q(es)e +Fh(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b Fo(45)224 709 +y(6.2)45 b(La)o(y)o(out)14 b(File)j(F)l(ormat)5 b Fh(.)h(.)h(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)20 +b Fo(46)224 763 y(6.3)45 b(Elemen)o(t)16 b(File)g(F)l(ormat)c +Fh(.)c(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +29 b Fo(48)224 818 y(6.4)45 b(F)l(on)o(t)14 b(File)j(F)l(ormat)7 +b Fh(.)f(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)23 b Fo(50)224 873 y(6.5)45 b(Library)16 +b(Con)o(ten)o(ts)e(File)i(F)l(ormat)11 b Fh(.)c(.)g(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)26 b Fo(50)224 928 y(6.6)45 b(Library)16 b(File)g(F)l(ormat)11 +b Fh(.)6 b(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)26 b Fo(50)75 1049 y Fl(App)r(endix)e(A)67 b(Installation)24 +b(and)f(T)-6 b(roublesho)r(oting)228 1115 y Fa(.)10 b(.)h(.)f(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)41 +b Fl(52)224 1184 y Fo(A.1)k(Compiling)17 b(and)e(Installing)c +Fh(.)f(.)d(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 +b Fo(52)374 1239 y(A.1.1)44 b(Editing)16 b(con\014g.h)8 +b Fh(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 +b Fo(52)374 1293 y(A.1.2)44 b(Man)o(uals)7 b Fh(.)g(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 +b Fo(53)374 1348 y(A.1.3)44 b(Compiling)17 b(the)e(P)o(ac)o(k)m(age)d +Fh(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fo(53)224 1403 y(A.2)45 +b(T)l(roublesho)q(oting)11 b Fh(.)e(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fo(53)374 +1458 y(A.2.1)44 b(HP)15 b(Series)h(700)f(and)g(800)6 +b Fh(.)g(.)i(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fo(54)374 1513 y(A.2.2)44 +b(Sun)16 b(SP)l(AR)o(C)f(arc)o(hitecture)5 b Fh(.)i(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)20 +b Fo(54)374 1567 y(A.2.3)44 b(Silicon)18 b(Graphics)d +Fh(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 +b Fo(54)374 1622 y(A.2.4)44 b(DEC)15 b(Alpha)6 b Fh(.)i(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)21 b +Fo(54)374 1677 y(A.2.5)44 b(SCO)16 b(Unix)10 b Fh(.)e(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 +b Fo(55)374 1732 y(A.2.6)44 b(Lin)o(ux)13 b Fh(.)8 b(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 +b Fo(55)374 1787 y(A.2.7)44 b(F)l(reeBSD)16 b(and)f(NetBSD)8 +b Fh(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)23 b Fo(55)374 1841 y(A.2.8)44 +b(Problems)16 b(related)f(to)g(X11)8 b Fh(.)f(.)g(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)23 +b Fo(55)374 1896 y(A.2.9)44 b(Problems)16 b(related)f(to)g(T)l(eX)6 +b Fh(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)21 b Fo(55)75 2017 y Fl(Index)i(of)f(Resources) +10 b Fa(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)33 b Fl(56)75 +2152 y(Index)23 b(of)f(Actions,)g(Commands)g(and)g(Options)12 +b Fa(.)f(.)f(.)h(.)f(.)35 b Fl(58)75 2287 y(Index)23 +b(of)f(Concepts)6 b Fa(.)j(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)28 +b Fl(60)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/cad/pcb/files/refcard.ps b/cad/pcb/files/refcard.ps new file mode 100644 index 000000000000..92f716545c1a --- /dev/null +++ b/cad/pcb/files/refcard.ps @@ -0,0 +1,437 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software +%%Title: refcard.dvi +%%Pages: 1 +%%PageOrder: Ascend +%%Orientation: Landscape +%%BoundingBox: 0 0 596 842 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -D 300 -o refcard.ps refcard.dvi +%DVIPSParameters: dpi=300, compressed +%DVIPSSource: TeX output 2000.08.31:1014 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +TeXDict begin 55380996 39158280 1000 300 300 (refcard.dvi) +@start +%DVIPSBitmapFont: Fa cmr9 9 19 +/Fa 19 121 df<126012F0A212701210A31220A21240A2040B7D830B>44 +D<126012F0A212601200A8126012F0A2126004107D8F0B>58 D<130CA3131EA2132F1327 +A2EB4380A3EB81C0A200017F1300A248B47E38020070A2487FA3487FA2003C131EB4EBFF +C01A1A7F991D>65 D76 D80 D<007FB5FC38701C0700401301A200C0148000801300A3 +00001400B13803FFE0191A7F991C>84 D<39FF801FC0391C00070014066C1304A36C5BA2 +6C6C5AA36C6C5AA26C6C5AA3EB7080A213790139C7FCA2131EA3130CA21A1A7F991D>86 +D97 D99 D101 D<1218123CA212181200A612FC121CAE12 +FF081A80990A>105 D<12FC121CB3A6EAFF80091A80990A>108 D110 DII114 D<1208A41218A21238EAFFC0 +EA3800A81320A41218EA1C40EA07800B177F960F>116 D<38FF0F80383C0700EA1C0613 +04A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>118 D<38FE3F80383C1E00EA +1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC012107F +8F14>120 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmmi6 6 1 +/Fb 1 98 df97 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmmi7 7 1 +/Fc 1 98 df97 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmsy10 10 1 +/Fd 1 2 df<126012F0A2126004047C8B0C>1 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmti10 10 9 +/Fe 9 117 df<48B5FC39003C038090383801C0EC00E0A35B1401A2EC03C001E01380EC +0F00141EEBFFFC3801C00E801580A2EA0380A43907000F00140E141E5C000E13F0B512C0 +1B1C7E9B1D>66 D<903803F02090381E0C6090383002E09038E003C03801C001EA038048 +C7FC000E1480121E121C123C15005AA35AA41404A35C12705C6C5B00185B6C485AD80706 +C7FCEA01F81B1E7A9C1E>I<48B512F038003C00013813301520A35BA214081500495AA2 +1430EBFFF03801C020A448485A91C7FCA348C8FCA45AEAFFF01C1C7E9B1B>70 +D77 D83 D91 +D93 D110 D<12035AA3120EA4EAFFE0EA1C00 +A35AA45AA4EAE080A2EAE100A2126612380B1A7C990E>116 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmr10 10 59 +/Ff 59 123 df11 D<137E3801C180EA0301380703C0120EEB01 +8090C7FCA5B512C0EA0E01B0387F87F8151D809C17>II<9038030180A39038060300A4EB0C06A549 +5AB612FCA23900301800A4495AA4B612FCA23900C0600048485AA438030180A4D80603C7 +FCA31E257E9C23>35 D<13E0EA0310EA0608A2120EA45BA25B6C5AEC3FE09038800F80EC +06000003130412073809C00800115BEA30E03820F020EA607038E03840EB3C80131C9038 +0F00207F0070EB8040383009C0391830E180390FC03F001B1F7E9D20>38 +D<1380EA0100120212065AA25AA25AA35AA412E0AC1260A47EA37EA27EA27E12027EEA00 +80092A7C9E10>40 D<7E12407E12307EA27EA27EA37EA41380AC1300A41206A35AA25AA2 +5A12205A5A092A7E9E10>I<126012F0A212701210A41220A212401280040C7C830C>44 +DI<126012F0A2126004047C830C>I<130113031306A3130CA313 +18A31330A31360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA35AA35AA210297E9E +15>II<5A1207123F12C71207B3A5EAFFF80D1C7C9B +15>III<13 +0CA2131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012C0 +B512C038001C00A73801FFC0121C7F9B15>II<13F0EA030CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0 +EAE430EAE818EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA03 +E0101D7E9B15>I56 DI<126012F0A212601200AA126012F0A2126004127C910C>I<1306 +A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80F0A338010078A2EBFFF83802003C +A3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F>65 D<90381F8080EBE06138018019 +38070007000E13035A14015A00781300A2127000F01400A8007014801278A212386CEB01 +00A26C13026C5B380180083800E030EB1FC0191E7E9C1E>67 DI +76 DI79 DI82 +D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF +FC1B1C7F9B1E>84 D<39FFE00FF0391F0003C0EC01806C1400A238078002A213C000035B +A2EBE00C00011308A26C6C5AA213F8EB7820A26D5AA36D5AA2131F6DC7FCA21306A31C1D +7F9B1F>86 D<12FEA212C0B3B312FEA207297C9E0C>91 D<12FEA21206B3B312FEA20729 +809E0C>93 D97 D<12FC121CAA137CEA1D87381E018038 +1C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>IIII<13F8EA018C +EA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>II< +12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA212 +18C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E01200 +B3A21260EAF0C012F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB0600 +5B13105B5B13E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16> +I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE0 +1C001C13C0AD3AFF8FF8FF8021127F9124>IIII<3803E080EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03 +E3EA0003A7EB1FF0141A7F9116>III<1204A4120CA2121C123CEAFFE0 +EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E +1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2 +EA0388A213C8EA01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB +01801500130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030 +000013201B127F911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012 +007F12011338EA021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E038 +3C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A2 +5BA212F000F1C7FC12F312661238131A7F9116>I +I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmbx10 10 25 +/Fg 25 123 df<90383FE3F83901F03F1C3903C03E3E0007137CEA0F80151C1500A5B612 +C0A2390F807C00AE397FE1FF80A21F1D809C1C>11 D<13201340EA018012031300120612 +0E5AA2123C1238A21278A312F85AA97E1278A31238A2123C121CA27E12067E13801201EA +004013200B297C9E13>40 D<7E12401230123812187E120E7EA213801203A213C0A313E0 +1201A9120313C0A31380A212071300A2120E120C5A1238123012405A0B297D9E13>I47 D<127812FCA412781200A6127812FCA4127806127D910D +>58 D97 DI +III<3803F0F0380E1F38EA +3C0F3838073000781380A400381300EA3C0FEA1E1CEA33F00030C7FCA3EA3FFF14C06C13 +E014F0387801F838F00078A300701370007813F0381E03C03807FF00151B7F9118>103 +D<121E123FA4121EC7FCA6127FA2121FAEEAFFC0A20A1E7F9D0E>105 +D108 D<39FF0FC07E903831E18F3A1F40F207 +80D980FC13C0A2EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0381F40F0 +EB80F8A21300AB38FFE7FFA218127F911B>II< +38FF3F80EBE1E0381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0EB3F00 +90C7FCA6EAFFE0A2171A7F911B>I114 DI<1203A45AA25AA2EA3F +FC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E1A7F9913>I<38FF07F8A2EA1F00AC13 +01120F380786FFEA01F818127F911B>I<38FFC1FCA2381F00601380000F13C0A23807C1 +80A23803E300A213F7EA01F613FE6C5AA21378A2133016127F9119>I<38FFC7FCA2381F +81C0380F83803807C700EA03EEEA01FC5B1200137C13FEEA01DF38039F80EA070F380607 +C0380C03E038FF07FCA216127F9119>120 D<38FFC1FCA2381F00601380000F13C0A238 +07C180A23803E300A213F7EA01F613FE6C5AA21378A21330A25B1270EAF8E05BEAF98000 +73C7FC123E161A7F9119>I<387FFF8038781F00EA703FEA603E5B13FC5BEA01F0120348 +5AEBC180EA0F81121F1303003E1300EA7E07EA7C0FB5FC11127F9115>I +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmsy8 8 1 +/Fh 1 14 df13 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmr8 8 15 +/Fi 15 118 df<126012F0A212701210A21220A21240A2040A7D830A>44 +D<1206120E12FE120EB1EAFFE00B157D9412>49 D54 D<1240EA7FFE13FC13F8EAC008EA80101320EA00401380A2EA01005AA212 +021206A2120EA512040F167E9512>III<00FC13FE001E1338001F +13101217EA1380EA11C0A2EA10E013701338A2131C130E130F1307EB0390EB01D0A2EB00 +F014701430123800FE131017177F961A>78 D<387FFFF83860381800401308A200801304 +A300001300AF3803FF8016177F9619>84 D97 D99 D<12F81238A813F8EA3B +1CEA3C0E1238AA38FE3F8011177F9614>104 D<38F8F83E383B1CC7393C0F0380EA380E +AA39FE3F8FE01B0E7F8D1E>109 D111 D115 D117 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmbx12 24.88 17 +/Fj 17 115 df45 DI49 +D51 +D54 +D66 DI80 +D<90380FFFF090B6FC000315C03A07F8007FF0486CEB1FFCED07FE486C6D7E838183816C +48816C5A6C5AC9FCA5157F023FB5FC0103B6FC011F13F090387FFE003801FFE0481380D8 +0FFEC7FC485A5B123F485AA2485AA45DA26C6C5BED077F6C6C130F6C6C013E13F83C0FFF +80F83FFFE000039038FFF01FC6ECC00F90390FFE0003332E7CAD38>97 +D<91381FFFC049B512FC010714FF903A1FF8007F80D97FE0EBFFC0EBFF8048494813E048 +5A1207485AA248486D13C0003FED7F80EE3F00007F92C7FC5BA312FFAA127FA27FA2123F +A26C6C15F0120F6DEC01E012076C6CEC03C06C6DEB07806C6DEB0F00D97FF0133E90391F +FC01FC0107B512F0010114C09026001FFCC7FC2C2E7CAD34>99 DIII<9027FF8003FFEC03FFB5011F01E0011F13E0037F +01F8017F13F8913D81F80FFC01F80FFC913D83C007FE03C007FE0003903D878003FF0780 +03FF6CD98E00EC0E00029C039C8102B86D01B87F06F88102F05DA24A5DA34A5DB3A9B66C +B66CB61280A4592E7BAD62>109 D<9039FF8007FEB590383FFFC04B13F0913981F81FF8 +913983C00FFC00039039870007FE6C138E029C8002B87F188014F0A25CA35CB3A9B60081 +B6FCA4382E7BAD41>II<90397F803F80B5EBFFE0028113F8913883C3FC91388707FE0003138E6C90 +389C0FFF14B8A214F0A2ED07FE9138E003FCED01F892C7FCA25CB3A8B612E0A4282E7DAD +2F>114 D E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: A4 + @landscape +%%EndSetup +%%Page: 1 1 +1 0 bop 410 12 a Fj(PCB-1.6.3)39 b(command)d(reference)2007 +11 y Fi(c)1997 12 y Fh(\015)p Fi(1996,)10 b(1997,)h(1998)f(Thomas)g +(Nau)p -75 74 936 2 v -75 1905 2 1832 v 236 121 a Fg(misc)15 +b(op)q(erations)-22 171 y Ff(bac)o(kspace)106 b(remo)o(v)o(e)12 +b(ob)r(ject)-22 221 y Fe([S][C]Btn)p Ff(1)93 b(remo)o(v)o(e)12 +b(ob)r(ject)-22 271 y(escap)q(e)170 b(reset)15 b(mo)q(de)-22 +320 y Fe(Btn)p Ff(1)198 b(create)15 b(ob)r(ject)g(or)e(part)-22 +370 y(u)262 b(undo)13 b(op)q(eration)-22 420 y Fe([S])p +Ff(r)220 b(redo)14 b(op)q(eration)-22 470 y Fe([S][C])p +Ff(u)157 b(clear)14 b(undo-list)-22 520 y(tab)225 b(switc)o(h)14 +b(viewing)f(side)-22 569 y(cursor)i(k)o(ey)99 b(mo)o(v)o(e)12 +b(crosshair)i(1)g(grid)-22 619 y Fe([S])p Ff(cursor)h(k)o(ey)50 +b(mo)o(v)o(e)12 b(crosshair)i(10)g(grid)278 719 y Fg(connections)-22 +769 y Fe([S])p Ff(f)223 b(reset)15 b(found)e(connections)-22 +819 y(f)272 b(\014nd)14 b(connections)-22 868 y Fe([S])p +Ff(bac)o(kspace)57 b(remo)o(v)o(e)12 b(connections)202 +968 y Fg(user)j(\(:\))21 b(commands)-22 1018 y Ff(:DR)o(C\(\))149 +b(c)o(hec)o(k)14 b(la)o(y)o(out)f(for)h(rule)g(violations)-22 +1068 y(:l)f([\014le])171 b(load)12 b(data)i(\014le)-22 +1117 y(:le)f([\014le])153 b(load)12 b(elemen)o(t)i(to)g(bu\013er)-22 +1167 y(:m)e([\014le])148 b(load)12 b(la)o(y)o(out)h(to)h(bu\013er)-22 +1217 y(:q)251 b(quit)13 b(application)-22 1267 y(:rn)g([\014le])144 +b(load)12 b(netlist)-22 1317 y(:s)i([\014le])166 b(sa)o(v)o(e)14 +b(data)f(as)h(\014le)327 1416 y Fg(displa)o(y)-22 1466 +y Ff(c)267 b(cen)o(ter)15 b(displa)o(y)-22 1516 y(g)264 +b(increase)15 b(grid)e(spacing)-22 1566 y Fe([S])p Ff(g)215 +b(decrease)16 b(grid)d(spacing)-22 1616 y Fe([C])p Ff(m)193 +b(mark)12 b(lo)q(cation)-22 1665 y(r)269 b(clear)14 b(and)g(redra)o(w)g +(output)-22 1715 y(z)267 b(zo)q(om)12 b(in)-22 1765 y +Fe([S])p Ff(z)218 b(zo)q(om)12 b(out)p 858 1905 V -75 +1907 936 2 v 971 74 985 2 v 971 1942 2 1868 v 1380 121 +a Fg(selection)1024 171 y Fe(Btn)p Ff(3)256 b(toggle)13 +b(ob)r(ject)i(selection)1024 221 y(drag)e Fe(Btn)p Ff(3)162 +b(select)15 b(only)e(ob)r(jects)i(in)e(b)q(o)o(x)1024 +271 y(drag)g Fe([S]Btn)p Ff(3)113 b(unselect)15 b(ob)r(jects)g(in)e(b)q +(o)o(x)1024 320 y(drag)g Fe([M]Btn)p Ff(3)99 b(select)15 +b(ob)r(jexts)f(in)g(b)q(o)o(x)1024 370 y Fe([S])p Ff(m)258 +b(mo)o(v)o(e)12 b(selected)k(to)d(curren)o(t)j(la)o(y)o(er)1314 +470 y Fg(cop)o(y)f(and)h(mo)o(v)o(e)1024 520 y Ff(drag)d +Fe(Btn)p Ff(2)162 b(mo)o(v)o(e)12 b(ob)r(ject)1024 569 +y(drag)h Fe([S]Btn)p Ff(2)113 b(mo)o(v)o(e)12 b(selected)k(ob)r(jects) +1024 619 y(drag)d Fe([M]Btn)p Ff(2)99 b(cop)o(y)13 b(ob)r(ject)1024 +669 y(drag)g Fe([S][M]Btn)p Ff(2)50 b(o)o(v)o(erride)14 +b(rubb)q(erband)h(&)f(mo)o(v)o(e)1024 719 y(m)307 b(mo)o(v)o(e)12 +b(to)i(curren)o(t)h(la)o(y)o(er)1354 819 y Fg(pastebu\013er)1024 +868 y Fe(F)p Ff(3)295 b(en)o(ter)15 b(pastebu\013er-mo)q(de)1024 +918 y Fe([S]F)p Ff(3)246 b(rotate)14 b(90)f(degree)j(cc)1024 +968 y Fe(Btn)p Ff(1)256 b(cop)o(y)13 b(to)h(la)o(y)o(out)1024 +1018 y Fe([S])p Ff(1)p Fd(\001)7 b(\001)g(\001)n Ff(5)204 +b(select)15 b(bu\013er)g(#)e(1)p Fd(\001)7 b(\001)g(\001)n +Ff(5)1024 1068 y(x)321 b(cop)o(y)13 b(selected)j(ob)r(jects)f(to)f +(bu\013er)1024 1117 y Fe([S])p Ff(x)272 b(cut)14 b(selected)i(ob)r +(jects)f(to)f(bu\013er)1411 1217 y Fg(sizing)1024 1267 +y Ff(s)327 b(increase)15 b(size)f(of)g(TLAPV)1810 1252 +y Fc(a)1024 1317 y Fe([S])p Ff(s)278 b(decrease)16 b(size)e(of)g(TLAPV) +1024 1366 y Fe([M])p Ff(s)264 b(increase)15 b(drill)e(size)h(of)f(PV) +1024 1416 y Fe([S][M])p Ff(s)215 b(decrease)16 b(drill)c(size)j(of)e +(PV)1389 1516 y Fg(elemen)o(t)1024 1566 y Ff(d)320 b(displa)o(y)13 +b(pinout)1024 1616 y Fe([S])p Ff(d)271 b(op)q(en)14 b(pinout)f(windo)o +(w)1024 1665 y(h)320 b(hide/sho)o(w)13 b(elemen)o(t)h(name)1024 +1715 y(n)320 b(c)o(hange)14 b(elemen)o(t)f(name)1387 +1815 y Fg(pin/pad)1024 1865 y Ff(n)320 b(c)o(hange)14 +b(name)1024 1914 y(q)321 b(toggle)13 b(square)i(\015ag)p +1953 1942 V 971 1944 985 2 v 971 1974 412 2 v 1021 2001 +a Fb(a)1040 2017 y Fa(TLAPV:)d(text,)g(line,)j(arc,)d(pin)i(or)g(via)p +2016 74 823 2 v 2016 1905 2 1832 v 2404 121 a Fg(via)2069 +171 y Fe(F)p Ff(1)136 b(en)o(ter)15 b(via-mo)q(de)2069 +221 y(v)162 b(increase)15 b(initial)d(size)2069 271 y +Fe([S])p Ff(v)113 b(decrease)16 b(initial)c(size)2069 +320 y Fe([M])p Ff(v)99 b(inc.)18 b(initial)11 b(drilling)i(hole)2069 +370 y Fe([S][M])p Ff(v)50 b(dec.)18 b(initial)12 b(drilling)g(hole)2069 +420 y Fe([C])p Ff(h)105 b(con)o(v)o(ert)14 b(via)f(to)h(moun)o(ting)e +(hole)2334 520 y Fg(lines/arcs)2069 569 y Fe(F)p Ff(2)136 +b(en)o(ter)15 b(line)e(mo)q(de)2069 619 y Fe(F)p Ff(8)136 +b(en)o(ter)15 b(arc)f(mo)q(de)2069 669 y(l)172 b(increase)15 +b(initial)d(line)h(size)2069 719 y Fe([S])p Ff(l)123 +b(decrease)16 b(initial)c(line)h(size)2069 769 y(p)q(erio)q(d)69 +b(toggle)13 b(45)g(degree)i(enforcemen)o(t)2069 819 y(/)163 +b(cycle)14 b(m)o(ultiline)d(mo)q(de)2069 868 y Fe([S])135 +b Ff(o)o(v)o(erride)14 b(m)o(ultiline)d(mo)q(de)2353 +968 y Fg(p)q(olygon)2069 1018 y Fe(F)p Ff(4)136 b(en)o(ter)15 +b(rectangle-mo)q(de)2069 1068 y Fe(F)p Ff(6)136 b(en)o(ter)15 +b(p)q(olygon-mo)q(de)2069 1117 y Fe([S])p Ff(p)112 b(close)14 +b(path)2069 1167 y(insert)83 b(en)o(ter)15 b(insert)f(p)q(oin)o(t)g(mo) +q(de)2393 1267 y Fg(text)2069 1317 y Fe(F)p Ff(5)136 +b(en)o(ter)15 b(text-mo)q(de)2069 1366 y(n)161 b(edit)14 +b(string)2069 1416 y(t)168 b(increase)15 b(initial)d(text)i(size)2069 +1466 y Fe([S])p Ff(t)119 b(decrease)16 b(initial)c(text)i(size)2344 +1566 y Fg(rats)h(nest)2069 1616 y Ff(w)154 b(add)13 b(all)g(rats)2069 +1665 y Fe([S])p Ff(w)105 b(add)13 b(rats)i(to)e(selected)j(pins/pads) +2069 1715 y(e)166 b(delete)14 b(all)f(rats)2069 1765 +y Fe([S])p Ff(e)117 b(delete)14 b(selected)i(rats)2069 +1815 y(o)163 b(optimize)12 b(all)h(rats)2069 1865 y Fe([S])p +Ff(o)114 b(optimize)12 b(selected)k(rats)p 2837 1905 +V 2016 1907 823 2 v -79 2091 a(Ob)o(viously)d Fe([S])p +Ff(,)g Fe([C])p Ff(,)f Fe([M])p Ff(,)h Fe(F)h Ff(and)g +Fe(Btn)g Ff(mean)f(the)h(shift,)g(con)o(trol,)f(mo)q(di\014er1)f(\(Mo)q +(d1)i(for)g(buttons\),)g(function)f(k)o(ey)h(and)g(mouse)f(button.)p +eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/cad/pcb/patches/patch-ac b/cad/pcb/patches/patch-ac new file mode 100644 index 000000000000..ac15884c2d0c --- /dev/null +++ b/cad/pcb/patches/patch-ac @@ -0,0 +1,13 @@ +$NetBSD: patch-ac,v 1.1 2000/08/31 14:55:32 dmcmahill Exp $ + +don't force the user to have latex for building the docs + +--- doc/Imakefile.orig Wed May 13 06:29:09 1998 ++++ doc/Imakefile Thu Aug 31 10:18:06 2000 +@@ -32,5 +32,5 @@ + */ + +-all:: pcb.man pcb.ps pcb.html pcb.info refcard.ps ++all:: pcb.man + + InstallManPage(pcb,$(MANDIR)) diff --git a/cad/pcb/pkg/PLIST b/cad/pcb/pkg/PLIST index ee8ee0a54c0d..024bcfc3c080 100644 --- a/cad/pcb/pkg/PLIST +++ b/cad/pcb/pkg/PLIST @@ -1,5 +1,8 @@ -@comment $NetBSD: PLIST,v 1.1.1.1 1998/11/07 14:30:34 frueauf Exp $ +@comment $NetBSD: PLIST,v 1.2 2000/08/31 14:55:33 dmcmahill Exp $ bin/pcb +@unexec install-info --delete %D/info/pcb.info %D/info/dir +info/pcb.info +@exec install-info %D/info/pcb.info %D/info/dir lib/X11/app-defaults/Pcb lib/X11/pcb/default_font lib/X11/pcb/pcblib @@ -44,5 +47,10 @@ lib/X11/pcb/m4/qfp.inc lib/X11/pcb/m4/plcc.inc lib/X11/pcb/m4/to.inc man/cat1/pcb.0 +share/doc/pcb/index.html +share/doc/pcb/pcb.html +share/doc/pcb/pcb.ps +share/doc/pcb/refcard.ps @dirrm lib/X11/pcb/m4 @dirrm lib/X11/pcb +@dirrm share/doc/pcb