diff options
Diffstat (limited to 'cad')
-rw-r--r-- | cad/pcb/Makefile | 16 | ||||
-rw-r--r-- | cad/pcb/files/index.html | 109 | ||||
-rw-r--r-- | cad/pcb/files/patch-sum | 3 | ||||
-rw-r--r-- | cad/pcb/files/pcb.html | 5715 | ||||
-rw-r--r-- | cad/pcb/files/pcb.info | 4125 | ||||
-rw-r--r-- | cad/pcb/files/pcb.ps | 6489 | ||||
-rw-r--r-- | cad/pcb/files/refcard.ps | 437 | ||||
-rw-r--r-- | cad/pcb/patches/patch-ac | 13 | ||||
-rw-r--r-- | cad/pcb/pkg/PLIST | 10 |
9 files changed, 16911 insertions, 6 deletions
diff --git a/cad/pcb/Makefile b/cad/pcb/Makefile index 651aec40456..31a10a308be 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 00000000000..c8d0d6e25c2 --- /dev/null +++ b/cad/pcb/files/index.html @@ -0,0 +1,109 @@ +<HTML> +<HEAD> +<!-- Created by texi2html 1.56k from pcb.texi on 31 August 2000 --> + +<TITLE>Pcb 1.6.3 - Table of Contents</TITLE> +</HEAD> +<BODY> +<H1>Pcb</H1> +<H2>an interactive</H2> +<H2>printed circuit board</H2> +<H2>layout system for <CODE>X11</CODE></H2> +<ADDRESS>Thomas Nau</ADDRESS> +<P> +<P><HR><P> +<UL> +<LI><A NAME="TOC1" HREF="pcb.html#SEC1">Copying</A> +<LI><A NAME="TOC2" HREF="pcb.html#SEC2">History</A> +<LI><A NAME="TOC3" HREF="pcb.html#SEC3">Introduction</A> +<UL> +<LI><A NAME="TOC4" HREF="pcb.html#SEC4">Symbols</A> +<LI><A NAME="TOC5" HREF="pcb.html#SEC5">Vias</A> +<LI><A NAME="TOC6" HREF="pcb.html#SEC6">Elements</A> +<LI><A NAME="TOC7" HREF="pcb.html#SEC7">Layers</A> +<LI><A NAME="TOC8" HREF="pcb.html#SEC8">Lines</A> +<LI><A NAME="TOC9" HREF="pcb.html#SEC9">Arcs</A> +<LI><A NAME="TOC10" HREF="pcb.html#SEC10">Polygons</A> +<LI><A NAME="TOC11" HREF="pcb.html#SEC11">Text</A> +</UL> +<LI><A NAME="TOC12" HREF="pcb.html#SEC12">Getting Started</A> +<UL> +<LI><A NAME="TOC13" HREF="pcb.html#SEC13">The Application Window</A> +<UL> +<LI><A NAME="TOC14" HREF="pcb.html#SEC14">The Status-line and Input-field</A> +<LI><A NAME="TOC15" HREF="pcb.html#SEC15">The Control Panel</A> +<LI><A NAME="TOC16" HREF="pcb.html#SEC16">The Mode Selectors</A> +<LI><A NAME="TOC17" HREF="pcb.html#SEC17">Drawing Area</A> +<LI><A NAME="TOC18" HREF="pcb.html#SEC18">Menu</A> +</UL> +<LI><A NAME="TOC19" HREF="pcb.html#SEC19">Log Window</A> +<LI><A NAME="TOC20" HREF="pcb.html#SEC20">Library Window</A> +<LI><A NAME="TOC21" HREF="pcb.html#SEC21">Drawing and Removing Basic Objects</A> +<UL> +<LI><A NAME="TOC22" HREF="pcb.html#SEC22">Lines</A> +<LI><A NAME="TOC23" HREF="pcb.html#SEC23">Arcs</A> +<LI><A NAME="TOC24" HREF="pcb.html#SEC24">Polygons and Rectangles</A> +<LI><A NAME="TOC25" HREF="pcb.html#SEC25">Text</A> +<LI><A NAME="TOC26" HREF="pcb.html#SEC26">Vias</A> +<LI><A NAME="TOC27" HREF="pcb.html#SEC27">Elements</A> +<LI><A NAME="TOC28" HREF="pcb.html#SEC28">Pastebuffer</A> +</UL> +<LI><A NAME="TOC29" HREF="pcb.html#SEC29">Moving and Copying</A> +<LI><A NAME="TOC30" HREF="pcb.html#SEC30">Loading and Saving</A> +<LI><A NAME="TOC31" HREF="pcb.html#SEC31">Printing</A> +<LI><A NAME="TOC32" HREF="pcb.html#SEC32">Connection Lists</A> +<LI><A NAME="TOC33" HREF="pcb.html#SEC33">Selection</A> +<LI><A NAME="TOC34" HREF="pcb.html#SEC34">Rats Nest</A> +<LI><A NAME="TOC35" HREF="pcb.html#SEC35">Design Rule Checking</A> +</UL> +<LI><A NAME="TOC36" HREF="pcb.html#SEC36">User Commands</A> +<LI><A NAME="TOC37" HREF="pcb.html#SEC37">Command-Line Options</A> +<UL> +<LI><A NAME="TOC38" HREF="pcb.html#SEC38">Options</A> +<LI><A NAME="TOC39" HREF="pcb.html#SEC39">Special Options</A> +</UL> +<LI><A NAME="TOC40" HREF="pcb.html#SEC40">X11 Interface</A> +<UL> +<LI><A NAME="TOC41" HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A> +<LI><A NAME="TOC42" HREF="pcb.html#SEC42">Actions</A> +<LI><A NAME="TOC43" HREF="pcb.html#SEC43">Default Translations</A> +</UL> +<LI><A NAME="TOC44" HREF="pcb.html#SEC44">File Formats</A> +<UL> +<LI><A NAME="TOC45" HREF="pcb.html#SEC45">Basic Types</A> +<LI><A NAME="TOC46" HREF="pcb.html#SEC46">Layout File Format</A> +<LI><A NAME="TOC47" HREF="pcb.html#SEC47">Element File Format</A> +<LI><A NAME="TOC48" HREF="pcb.html#SEC48">Font File Format</A> +<LI><A NAME="TOC49" HREF="pcb.html#SEC49">Library Contents File Format</A> +<LI><A NAME="TOC50" HREF="pcb.html#SEC50">Library File Format</A> +</UL> +<LI><A NAME="TOC51" HREF="pcb.html#SEC51">Installation and Troubleshooting</A> +<UL> +<LI><A NAME="TOC52" HREF="pcb.html#SEC52">Compiling and Installing</A> +<UL> +<LI><A NAME="TOC53" HREF="pcb.html#SEC53">Editing config.h</A> +<LI><A NAME="TOC54" HREF="pcb.html#SEC54">Manuals</A> +<LI><A NAME="TOC55" HREF="pcb.html#SEC55">Compiling the Package</A> +</UL> +<LI><A NAME="TOC56" HREF="pcb.html#SEC56">Troubleshooting</A> +<UL> +<LI><A NAME="TOC57" HREF="pcb.html#SEC57">HP Series 700 and 800</A> +<LI><A NAME="TOC58" HREF="pcb.html#SEC58">Sun SPARC architecture</A> +<LI><A NAME="TOC59" HREF="pcb.html#SEC59">Silicon Graphics</A> +<LI><A NAME="TOC60" HREF="pcb.html#SEC60">DEC Alpha</A> +<LI><A NAME="TOC61" HREF="pcb.html#SEC61">SCO Unix</A> +<LI><A NAME="TOC62" HREF="pcb.html#SEC62">Linux</A> +<LI><A NAME="TOC63" HREF="pcb.html#SEC63">FreeBSD and NetBSD</A> +<LI><A NAME="TOC64" HREF="pcb.html#SEC64">Problems related to X11</A> +<LI><A NAME="TOC65" HREF="pcb.html#SEC65">Problems related to TeX</A> +</UL> +</UL> +<LI><A NAME="TOC66" HREF="pcb.html#SEC66">Index of Resources</A> +<LI><A NAME="TOC67" HREF="pcb.html#SEC67">Index of Actions, Commands and Options</A> +<LI><A NAME="TOC68" HREF="pcb.html#SEC68">Index of Concepts</A> +</UL> +<P><HR><P> +This document was generated on 31 August 2000 using +<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> 1.56k. +</BODY> +</HTML> diff --git a/cad/pcb/files/patch-sum b/cad/pcb/files/patch-sum index aea42090163..ef6bcaec539 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 00000000000..2a0e02218f1 --- /dev/null +++ b/cad/pcb/files/pcb.html @@ -0,0 +1,5715 @@ +<HTML> +<HEAD> +<!-- Created by texi2html 1.56k from pcb.texi on 31 August 2000 --> + +<TITLE>Pcb 1.6.3</TITLE> +</HEAD> +<BODY> +<H1>Pcb</H1> +<H2>an interactive</H2> +<H2>printed circuit board</H2> +<H2>layout system for <CODE>X11</CODE></H2> +<ADDRESS>Thomas Nau</ADDRESS> +<P> +<P><HR><P> + + +<UL> +<LI><A HREF="pcb.html#SEC1">Copying</A>: <CODE>Pcb</CODE> is freely redistributable! +<LI><A HREF="pcb.html#SEC2">History</A>: How it all began. +<LI><A HREF="pcb.html#SEC3">Intro</A>: A short description of the basic objects. +<LI><A HREF="pcb.html#SEC12">Getting Started</A>: Introduction to <CODE>Pcb</CODE>. +<LI><A HREF="pcb.html#SEC36">User Commands</A>: User commands of <CODE>Pcb</CODE>. +<LI><A HREF="pcb.html#SEC37">Command-Line Options</A>: Calling <CODE>Pcb</CODE> from a shell. +<LI><A HREF="pcb.html#SEC40">X11 Interface</A>: Action routines, resources and default translation. +<LI><A HREF="pcb.html#SEC44">File Formats</A>: Description of <CODE>ASCII</CODE> files used by <CODE>Pcb</CODE>. +<LI><A HREF="pcb.html#SEC51">Installation</A>: Compiling, installing and troubleshooting. +</UL> + + + +<H1><A NAME="SEC1" HREF="pcb_toc.html#TOC1">Copying</A></H1> +<P> +Copyright (C) 1994,1995,1996,1997 Thomas Nau + + +<P> +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. + + +<P> +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 +<B>GNU General Public License</B> for more details. + + + + +<H1><A NAME="SEC2" HREF="pcb_toc.html#TOC2">History</A></H1> +<P> +<A NAME="IDX1"></A> +<CODE>Pcb</CODE> is a handy tool for laying out printed circuit +boards. +It was first written for an Atari ST in 1990 and ported to <CODE>UNIX</CODE> and +<CODE>X11</CODE> 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. + + +<P> +The second release 1.2 included menus for the first time. This made +<CODE>PCB</CODE> easier to use and thus a more important tool. + + +<P> +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. + + +<P> +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. + + +<P> +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. + + +<P> +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. + + +<P> +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. + + +<P> +Special thanks goes to: + +<PRE> +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) +</PRE> + +<P> +who did most of the alpha and beta testing, helped to port <CODE>PCB</CODE> 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. + + +<P> +<A NAME="IDX2"></A> + + +<H1><A NAME="SEC3" HREF="pcb_toc.html#TOC3">Introduction</A></H1> +<P> +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 <CODE>Pcb</CODE>, refer to +section <A HREF="pcb.html#SEC12">Getting Started</A>. +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 <CODE>Pcb</CODE> 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. + + + +<UL> +<LI><A HREF="pcb.html#SEC4">Symbol Objects</A>: Information about fonts and symbols. +<LI><A HREF="pcb.html#SEC5">Via Objects</A>: Vias and pins connect layers. +<LI><A HREF="pcb.html#SEC6">Element Objects</A>: Element, the basic type of circuits. +<LI><A HREF="pcb.html#SEC7">Layer Objects</A>: A <SAMP>`container'</SAMP> for lines, text... +<LI><A HREF="pcb.html#SEC8">Line Objects</A> +<LI><A HREF="pcb.html#SEC9">Arc Objects</A> +<LI><A HREF="pcb.html#SEC10">Polygon Objects</A> +<LI><A HREF="pcb.html#SEC11">Text Objects</A>: Objects to add symbols to your board. +</UL> + +<P> +<A NAME="IDX3"></A> +<A NAME="IDX4"></A> + + +<H2><A NAME="SEC4" HREF="pcb_toc.html#TOC4">Symbols</A></H2> +<P> +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 <CODE>ASCII</CODE> 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. + + +<P> +Every font file is preprocessed by a user-defined command when it is loaded. +For details see <SAMP>`fontCommand'</SAMP>, section <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>. + + +<P> +<A NAME="IDX5"></A> + + +<H2><A NAME="SEC5" HREF="pcb_toc.html#TOC5">Vias</A></H2> +<P> +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. (<EM>i.e.</EM> +blind vias are not supported) + + +<P> +<A NAME="IDX6"></A> +<A NAME="IDX7"></A> + + +<H2><A NAME="SEC6" HREF="pcb_toc.html#TOC6">Elements</A></H2> +<P> +Elements represent the components on a board. +Elements are loaded from <CODE>ASCII</CODE> 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. + + +<P> +Elements are supported by several special layers: <EM>silk</EM>, <EM>pins/pads</EM> and +<EM>far-side</EM>. The <EM>silk</EM> layer shows the package outline and +also holds legend text and element names. The <EM>pins/pads</EM> layer is used to toggle +whether the element's pins and pads are displayed. The <EM>far-side</EM> layer controls visibility +of objects (silkscreen and pads) that are on the far (<EM>i.e.</EM> not currently viewed) side +of the board. + + +<P> +Every element file is preprocessed by a user-defined command when the file is read. +For details see <SAMP>`elementCommand'</SAMP>, section <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>. <CODE>m4</CODE>, the default +value of <SAMP>`elementCommand'</SAMP>, allows you to create libraries for +package definitions that are shared by all elements. +The element libraries distributed with <CODE>Pcb</CODE> expect <CODE>m4</CODE> or an +equivalent to be the <EM>elementCommand</EM>. + + +<P> +<CODE>Pcb</CODE> 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 <SAMP>`layout-name'</SAMP> 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. +<B>Be aware that a few of the library parts may still be incorrectly +implemented regarding pin-numbering.</B> 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 <EM>Report Menu</EM> to see what <CODE>Pcb</CODE> 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. +<CODE>Pcb</CODE> can also check a layout to see that it meets minimum spacing +and overlap rules. + + +<P> +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. + + +<P> +<A NAME="IDX8"></A> + + +<H2><A NAME="SEC7" HREF="pcb_toc.html#TOC7">Layers</A></H2> +<P> +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 (<EM>e.g.</EM> 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 <SAMP>`layerGroups'</SAMP>, section <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>. +Each layer is drawn in a color defined in the resource file (for +details see <SAMP>`layerColor'</SAMP>, section <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>) 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 <SAMP>`Edit layer groups'</SAMP> option in the <SAMP>`Objects'</SAMP> menu. +The layer groups corresponding to the physical layers <EM>component-side</EM> +and <EM>solder-side</EM> 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 +<EM><Key>Tab</EM>. +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. + + +<P> +<A NAME="IDX9"></A> + + +<H2><A NAME="SEC8" HREF="pcb_toc.html#TOC8">Lines</A></H2> +<P> +Lines are used to draw tracks on the pc board. +When in the line mode, each <EM><Btn1></EM> +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 <EM>Ctrl<Btn1></EM>. +The undo function (<EM><Key>u</EM>) 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 <EM><Key>.</EM> (that is the +<EM>period</EM> key). If the 45 degree restriction is turned on, then the <EM><Key>/</EM> +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) (<EM><Btn2Down><drag><Btn2Up></EM>), +or changing the layer it resides on (<EM><Key>m</EM> 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 <CODE>Pcb</CODE> 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. + + +<P> +<A NAME="IDX10"></A> + + +<H2><A NAME="SEC9" HREF="pcb_toc.html#TOC9">Arcs</A></H2> +<P> +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 <EM><Btn1></EM> +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. <EM><Key>F2</EM> for Lines, <EM><Key>F8</EM> for Arcs. Of course connection +searches, undo and all the other features you'd expect work with arcs now. + + +<P> +<A NAME="IDX11"></A> + + +<H2><A NAME="SEC10" HREF="pcb_toc.html#TOC10">Polygons</A></H2> +<P> +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 (<EM><Btn1></EM>). 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 <EM>Shift<Key>p</EM> 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 (<EM><Key>u</EM>). +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. +<CODE>Pcb</CODE> is capable of handling complex polygons, but +using a number of simpler ones improves performance of the connection tracing code. + + +<P> +A new feature in version 1.5 of <CODE>Pcb</CODE> 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 +<EM><Btn1></EM> 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 <CODE>Pcb</CODE>, the old behavior +(shorts to all piercing pins and vias) is available. A <SAMP>`ChangeSize'</SAMP> +operation (<EM><Key>s</EM>) toggles a polygon between the new and old polygon/pin +behavior. + + +<P> +<A NAME="IDX12"></A> +<A NAME="IDX13"></A> + + +<H2><A NAME="SEC11" HREF="pcb_toc.html#TOC11">Text</A></H2> +<P> +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 <SAMP>`selection menu'</SAMP>. +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 <SAMP>`MoveToCurrentLayer'</SAMP> (<EM><Key>m</EM>) command. +Text on the far side of the board will automatically appear mirror-imaged. + + +<P> +<B>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</B>. + + +<P> +<A NAME="IDX14"></A> + + +<H1><A NAME="SEC12" HREF="pcb_toc.html#TOC12">Getting Started</A></H1> +<P> +The goal of this chapter is to give you enough information to learn how +<CODE>Pcb</CODE> works and how to develop your layouts to make the best use of <CODE>Pcb</CODE>'s +features. All event translations (<EM>i.e.</EM> the buttons and keys you +press) refer to the default application resource file shipped with <CODE>Pcb</CODE>. +There is probably no need to change them unless your window +manager uses some of the button events itself; however, if you <EM>want</EM> +to customize the behavior of <CODE>Pcb</CODE> then changing the resource file +is usually the best way to do it. + + +<P> +Get yourself a printout of this chapter and <EM>User Commands</EM>, if you +haven't already done so, and follow the examples. +An example layout may be found in <TT>`example/68HC11'</TT>. +An example illustrating some version 1.5 features is found in +<TT>`example/LED'</TT> along with its corresponding netlist file <TT>`example/LED.NET'</TT>. + + +<P> +Start <CODE>Pcb</CODE> (the actual command will use all lower-case letters) +without any additional options. +If you get the error message: + + + +<PRE> + can't find default font-symbol-file 'default_font' +</PRE> + +<P> +then the font searchpath or filename in the application resource +file is wrong. Be sure that your <CODE>m4</CODE> program supports searchpaths. +If not, get <CODE>GNU m4</CODE>. +For other messages, see section <A HREF="pcb.html#SEC56">Troubleshooting</A>. +Another quick-start is provided by <CODE>pcbtest.sh</CODE> in the <TT>`src'</TT> +directory. + + + +<UL> +<LI><A HREF="pcb.html#SEC13">Application Window</A>: The elements of the main window. +<LI><A HREF="pcb.html#SEC19">Log Window</A>: The optional logging window +<LI><A HREF="pcb.html#SEC20">Library Window</A>: The circuit selection window +<LI><A HREF="pcb.html#SEC21">Drawing and Removing</A> +<LI><A HREF="pcb.html#SEC29">Moving and Copying</A> +<LI><A HREF="pcb.html#SEC30">Loading and Saving</A> +<LI><A HREF="pcb.html#SEC31">Printing</A> +<LI><A HREF="pcb.html#SEC32">Connection Lists</A>: How to get a list of all or some connections. +<LI><A HREF="pcb.html#SEC33">Selection</A>: Commands which handle more than one object. +<LI><A HREF="pcb.html#SEC34">Rats Nest</A>: Helps you place and route tracks against a netlist. +<LI><A HREF="pcb.html#SEC35">Design Rule Checking</A> +</UL> + + + +<H2><A NAME="SEC13" HREF="pcb_toc.html#TOC13">The Application Window</A></H2> +<P> +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. + + + +<UL> +<LI><A HREF="pcb.html#SEC14">Status-line and Input-field</A>: What is the program configuration. +<LI><A HREF="pcb.html#SEC15">Control Panel</A>: Switch layers on/off; change current one. +<LI><A HREF="pcb.html#SEC16">Mode Selectors</A>: Select an operation mode. +<LI><A HREF="pcb.html#SEC17">Drawing Area</A>: Where the layout is drawn. +<LI><A HREF="pcb.html#SEC18">Menu</A> +</UL> + +<P> +<A NAME="IDX15"></A> +<A NAME="IDX16"></A> +<A NAME="IDX17"></A> + + +<H3><A NAME="SEC14" HREF="pcb_toc.html#TOC14">The Status-line and Input-field</A></H3> +<P> +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. + + +<P> +The status-line shows, from left to right, the side of the board that you +are viewing (<EM><Key>Tab</EM> 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. + + +<P> +The input-field pops up (temporarily replacing the status-line) whenever user input +is required. Two keys are bound to the input field: <EM><Key>Escape</EM> +aborts the input, <EM><Key>Return</EM> finishes it. + + +<P> +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 <CODE>Pcb</CODE> you can anchor a marker at +the current cursor location by pressing <EM>Ctrl<Key>m</EM> then the +display will read both the absolute cursor position as well as the difference +between it and the marker. Pressing <EM>Ctrl<Key>m</EM> again turns the marker off. + + +<P> +<A NAME="IDX18"></A> +<A NAME="IDX19"></A> +<A NAME="IDX20"></A> +<A NAME="IDX21"></A> + + +<H3><A NAME="SEC15" HREF="pcb_toc.html#TOC15">The Control Panel</A></H3> +<P> +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 "<EM>(unknown)</EM>" is used as the defualt. + + +<P> +The upper control box is used to switch layers on and off. Click +<EM><Btn1Down></EM> 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 <SAMP>`Edit layer groups'</SAMP> option in the <SAMP>`Objects'</SAMP> 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. + + +<P> +<EM>far side</EM> 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 <EM>tab</EM> 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 <EM>tab</EM> until the status +line says "solder" on the right, then turn off the visibility of all other layers +except pins/pads, vias, and silk. + + +<P> +The lower control menu, named <EM>active</EM>, is used to change the active +drawing layer. <EM><Btn1Down></EM> 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 <EM>ABC</EM> by selecting +<SAMP>`set name of layer'</SAMP> from the <SAMP>`File'</SAMP> menu. +Changing the active layer also is available with <EM><Key>1..8</EM>. + + +<P> +<A NAME="IDX22"></A> +<A NAME="IDX23"></A> + + +<H3><A NAME="SEC16" HREF="pcb_toc.html#TOC16">The Mode Selectors</A></H3> +<P> +The mode selector buttons reside below the control panel. +They are used to select the operation mode of <CODE>Pcb</CODE>. A mode can be +thought of as a tool that gets used when <EM><Btn1></EM> 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: + +<PRE> + <EM><Key>Escape</EM> reset mode + <EM><Key>F1</EM> via-mode + <EM><Key>F2</EM> line-mode + <EM><Key>F3</EM> pastebuffer-mode + <EM><Key>F4</EM> rectangle-mode + <EM><Key>F5</EM> text-mode + <EM><Key>F6</EM> polygon-mode + <EM><Key>Insert</EM> insert-point-mode + <EM><Key>F7</EM> thermal-mode + <EM><Key>F8</EM> arc-mode +</PRE> + +<P> +The <EM><Key>Space</EM> cycles through all of the modes in the +mode button palette. + + +<P> +Reset-mode is really no mode, and <EM><Btn1></EM> has no effect with +this setting. +Some of the modes are very simple, such as the via-mode. Clicking +<EM><Btn1></EM> while in this mode creates a via at the cross-hair position. +The pastebuffer-mode is similar. With this mode, <EM><Btn1></EM> 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 <A HREF="pcb.html#SEC8">Lines</A>. +The arc-mode is explained in detainl in section <A HREF="pcb.html#SEC9">Arcs</A>. +Rectangle-mode, polygon-mode and thermal-mode are explained in detail in +section <A HREF="pcb.html#SEC10">Polygons</A>. +Remember that the thermal-mode will only create and destroy thermals +to polygons on the active layer. + + +<P> +The insert-point-mode is an editing tool that allows you to add +points into lines or polygons. With version 1.5 of <CODE>Pcb</CODE>, 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 +<EM><Btn1></EM> 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. + + +<P> +<A NAME="IDX24"></A> + + +<H3><A NAME="SEC17" HREF="pcb_toc.html#TOC17">Drawing Area</A></H3> +<P> +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 <EM>Display</EM> menu. +The new value is updated in the statusline. +Now move again and watch the difference. A different way to change the grid is +<EM>Shift<Key>g</EM> to decrease or <EM><Key>g</EM> 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 <EM>shift</EM> modifier together with a cursor key. + + +<P> +<A NAME="IDX25"></A> +<A NAME="IDX26"></A> + + +<H3><A NAME="SEC18" HREF="pcb_toc.html#TOC18">Menu</A></H3> +<P> +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 <EM>center</EM> require a certain cursor position. +In this case a statusline will popup at the bottom with wording similar to +the following: + +<PRE> + move pointer to the appropriate screen position and press a button +</PRE> + +<P> +Any mouse button will do the job, whereas any key except the cursor keys +will cancel the operation. For details see section <A HREF="pcb.html#SEC42">Actions</A>. + + +<DL COMPACT> + +<DT><SAMP>`About'</SAMP> +<DD> +<A NAME="IDX27"></A> + +There is no menu hiding behind this button, but a small information box will +pop up. + +<A NAME="IDX28"></A> +<DT><SAMP>`File'</SAMP> +<DD> +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 +<EM>print layout</EM> pops up a printer control dialog which is, hopefully, +self explaining. This box contains a panner widget (only <CODE>X11R5</CODE> 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 <EM>PostScript</EM>, <EM>encapsulated PostScript</EM>, +and <EM>GerberX</EM> are supported. <EM>GerberD</EM> support may be forthcoming. +It requires a rastering engine that pcb presently lacks. + +<A NAME="IDX29"></A> +<A NAME="IDX30"></A> +<A NAME="IDX31"></A> +<A NAME="IDX32"></A> +<A NAME="IDX33"></A> +<A NAME="IDX34"></A> +<DT><SAMP>`Display'</SAMP> +<DD> +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 <EM>Mode</EM>). + +<A NAME="IDX35"></A> +<DT><SAMP>`Sizes'</SAMP> +<DD> +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. + +<A NAME="IDX36"></A> +<A NAME="IDX37"></A> +<A NAME="IDX38"></A> +<DT><SAMP>`Objects'</SAMP> +<DD> +Displaying the pinout of an element and changing its names, the one +that is currently selected by the <EM>Display</EM> 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. + +<A NAME="IDX39"></A> +<A NAME="IDX40"></A> +<A NAME="IDX41"></A> +<A NAME="IDX42"></A> +<A NAME="IDX43"></A> +<DT><SAMP>`Selection'</SAMP> +<DD> +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 +<EM><Btn3Down></EM> and releasing without moving the mouse. +Pressing <EM>Mod1<Btn3Down></EM>, moving and +releasing the button selects all visible objects inside the +rectangle. Pressing the modifier key <EM>Shift</EM> 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. + +<A NAME="IDX44"></A> +<A NAME="IDX45"></A> +<DT><SAMP>`Buffer'</SAMP> +<DD> +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. + +<A NAME="IDX46"></A> +<DT><SAMP>`Connections'</SAMP> +<DD> +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 +<EM>File</EM> 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. + +<A NAME="IDX47"></A> +<DT><SAMP>`Undo'</SAMP> +<DD> +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. + +<A NAME="IDX48"></A> +<DT><SAMP>`Report'</SAMP> +<DD> +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. + +</DL> + +<P> +<A NAME="IDX49"></A> +<A NAME="IDX50"></A> + + +<H2><A NAME="SEC19" HREF="pcb_toc.html#TOC19">Log Window</A></H2> +<P> +This optional window is used to display all kind of messages including +the ones written to <EM>stderr</EM> 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 +<EM>useLogWindow</EM> to <EM>false</EM> will generate popup windows to display +messages. The <EM>stderr</EM> of external commands will appear on <CODE>Pcb</CODE>s +<EM>stderr</EM> which normally is the parent shell. I suggest you iconify +the window after startup for example by setting <EM>*log.iconic</EM> to +<EM>true</EM>. If <EM>raiseLogWindow</EM> is set <EM>true</EM>, +the window will deiconify and raise itself whenever new messages are to be +displayed. + + +<P> +<A NAME="IDX51"></A> + + +<H2><A NAME="SEC20" HREF="pcb_toc.html#TOC20">Library Window</A></H2> +<P> +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 <A HREF="pcb.html#SEC50">Library File Format</A> and section <A HREF="pcb.html#SEC49">Library Contents File Format</A>. + + +<P> +<A NAME="IDX52"></A> +<A NAME="IDX53"></A> +<A NAME="IDX54"></A> +<A NAME="IDX55"></A> + + +<H2><A NAME="SEC21" HREF="pcb_toc.html#TOC21">Drawing and Removing Basic Objects</A></H2> +<P> +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. + + +<P> +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. +<EM><Btn1Down></EM> 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. + + +<P> +Removing objects is possible using <EM><Key>BackSpace</EM> (or <EM><Key>Delete</EM> +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 <EM>remove-mode</EM> and click <EM><Btn1Down></EM> +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. + + +<P> +Rotating works in a similar fashion. Change the mode and press +<EM><Btn1Down></EM> 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.) + + +<P> +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 <EM><Key>.</EM> +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. + + +<P> +Removing objects, changing their size or moving them only applies to objects +that are visible when the command is executed. + + + +<UL> +<LI><A HREF="pcb.html#SEC22">Lines</A> +<LI><A HREF="pcb.html#SEC23">Arcs</A> +<LI><A HREF="pcb.html#SEC24">Polygons</A>: Drawing polygons and rectangles. +<LI><A HREF="pcb.html#SEC25">Text</A> +<LI><A HREF="pcb.html#SEC26">Vias</A> +<LI><A HREF="pcb.html#SEC27">Elements</A> +<LI><A HREF="pcb.html#SEC28">Pastebuffer</A>: A multi-purpose buffer. +</UL> + +<P> +<A NAME="IDX56"></A> +<A NAME="IDX57"></A> +<A NAME="IDX58"></A> +<A NAME="IDX59"></A> +<A NAME="IDX60"></A> +<A NAME="IDX61"></A> +There are several keystrokes and button events refering to an <EM>object</EM> +without identifying its type. Here's a list of them: + + +<P> +<EM><Btn1Down></EM> creates (or deletes) an object depending on the +current mode. + + +<P> +<EM><Key>BackSpace</EM> or <EM><Key>Delete</EM> 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. + + +<P> +Use <EM><Key>s</EM> and <EM>Shift<Key>s</EM> 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). + + +<P> +<EM><Key>n</EM> changes the name of pins, pads, vias, the +string of a text object, or the currently displayed label of an element. + + +<P> +<EM><Key>m</EM> moves the line, arc, or polygon under the crosshair to the +active layer if it wasn't on that layer already. + + +<P> +<EM><Key>u</EM> (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. + + +<P> +<EM>Shift<Key>r</EM> restores the last undone operation provided no other +changes have been made since the undo was performed. + + +<P> +<EM><Key>tab</EM> changes the board side you are viewing. + + +<P> +For a complete list of keystrokes and button events see section <A HREF="pcb.html#SEC43">Default Translations</A>. + + +<P> +<A NAME="IDX62"></A> +<A NAME="IDX63"></A> + + +<H3><A NAME="SEC22" HREF="pcb_toc.html#TOC22">Lines</A></H3> +<P> +To draw new lines you have to be in <EM>line-mode</EM>. Get there either by +selecting it from the <EM>Tool palette</EM> or by pressing <EM><Key>F2</EM>. +Each successive <EM>notify</EM> event creates a new line. The +adjustment to 45 degree lines is done automatically if it is selected from the +<EM>Display</EM> menu. You can toggle the 45 degree mode setting by +pressing the <EM><Key>.</EM> (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 <EM><Key>/</EM> 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 <EM><Key>Escape</EM> to leave line-mode. + + +<P> +<EM><Key>l</EM>, <EM>Shift<Key>l</EM> and the entries in the +<EM>Sizes</EM> menu change the initial width of new lines. This width is also +displayed in the status line. + + +<P> +<A NAME="IDX64"></A> + + +<H3><A NAME="SEC23" HREF="pcb_toc.html#TOC23">Arcs</A></H3> +<P> +An Arc is drawn with the <EM>arc-tool</EM>. Get there either by selecting it +from the <EM>Tool palette</EM> or by pressing <EM><Key>F8</EM>. Press <EM>Btn1</EM> 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 <EM>Btn1</EM> 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 (<EM>!Shift<Key>G</EM>) and +try again. + + +<P> +<A NAME="IDX65"></A> +<A NAME="IDX66"></A> +<A NAME="IDX67"></A> +<A NAME="IDX68"></A> + + +<H3><A NAME="SEC24" HREF="pcb_toc.html#TOC24">Polygons and Rectangles</A></H3> +<P> +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 +<EM>Shift<Key>p</EM> to close the polygon. The <EM>Shift<Key>p</EM> 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 <EM>rectangle-mode</EM> is just an easy way to generate rectangular polygons. +<EM>Polygon-mode</EM> also is selected by <EM><Key>F6</EM> whereas +<EM>rectangle-mode</EM> uses <EM><Key>F4</EM>. +Pressing a <EM><Btn1Down></EM> at two locations creates a rectangle by +defining two of its corners. +<EM><Key>Insert</EM> brings you to <EM>insert-point-mode</EM> 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 <EM>(remove-mode, BackSpace, or Delete</EM>. This only works +if the remaining polygon will still have three or more corners. +Pressing <EM><Key>u</EM> or <EM><Key>p</EM> 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. + + + + +<H3><A NAME="SEC25" HREF="pcb_toc.html#TOC25">Text</A></H3> +<P> +<A NAME="IDX69"></A> +<A NAME="IDX70"></A> +<A NAME="IDX71"></A> +Pressing <EM><Key>F5</EM> or clicking one of the text selector buttons +changes to <EM>text-mode</EM>. +Each successive notify event (<EM><Btn1Down></EM>) +pops up the input line at the bottom and queries for a string. +Enter it and press <EM><Key>Return</EM> to confirm or +<EM><Key>Escape</EM> to abort. +The text object is created with its upper left corner at the current pointer +location. +The initial scaling is changed by <EM><Key>t</EM> and +<EM>Shift<Key>t</EM> or from the <EM>Sizes</EM> menu. + + +<P> +Now switch to <EM>rotate-mode</EM> and press +<EM><Btn1Down></EM> 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. + + +<P> +Use <EM><Key>n</EM> to edit the string. + + +<P> +<B>TEXT OBJECTS ON COPPER LAYERS CREATE COPPER LINES BUT THEY ARE NOT SCANNED FOR +CONNECTIONS</B>. If they are moved to the silkscreen layer, they +no longer create copper. + + +<P> +<A NAME="IDX72"></A> +<A NAME="IDX73"></A> + + +<H3><A NAME="SEC26" HREF="pcb_toc.html#TOC26">Vias</A></H3> +<P> +The initial size of new vias may be changed by <EM><Key>v</EM> and +<EM>Shift<Key>v</EM> or by selecting the appropriate entry from the +<EM>Sizes</EM> menu. <EM>Mod1<Key>v</EM> and <EM>Mod1 Shift<Key>v</EM> 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 <EM>via-mode</EM> +by using either the selector button or <EM><Key>F1</EM> then press +<EM><Key>]</EM> or <EM><Btn1Down></EM> to create one. +<EM><Key>n</EM> 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 +<EM>!Ctrl<Key>h</EM> 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. + + +<P> +<A NAME="IDX74"></A> +<A NAME="IDX75"></A> + + +<H3><A NAME="SEC27" HREF="pcb_toc.html#TOC27">Elements</A></H3> +<P> +Some of the functions related to elements only work if both the package +layer and the pin layer are switched on. + + +<P> +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: + +<PRE> + 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 +</PRE> + +<P> +We don't have any elements on the screen yet nor anything in the +buffer, so we use number one. + + +<P> +<A NAME="IDX76"></A> +<A NAME="IDX77"></A> +Select <EM>lsi</EM> from the menu in the library window press +<EM><Btn1Down></EM> twice at the appropriate text-line to get +the MC68030 CPU. +The data is loaded and the mode is switched to <EM>pastebuffer-mode</EM>. +Each notify event now creates one of these beasts. Leave the mode +by selecting a different one or by <EM><Key>Escape</EM> which resets +all modes.. +The crosshair is located at the <EM>mark</EM> position as defined by +the data file. Rotating the buffer contents is done by selecting +the <EM>rotate</EM> entry of the <EM>Buffer</EM> menu or by pressing +<EM>Shift<Key>F3</EM>. 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 <EM>Shift<Key>1..5</EM>. +Each of the two board sides has its own buffers. + + +<P> +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 +<EM>crosshairColor</EM> setting to a different one. + + +<P> +<A NAME="IDX78"></A> +<A NAME="IDX79"></A> +<A NAME="IDX80"></A> +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 <EM>description</EM> from the <EM>Display</EM> +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 <EM><Key>n</EM> 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 <EM><key>h</EM> with the cursor over the element. +Doing so again un-hides the element name. + + +<P> +Entering <KBD>:le</KBD> and selecting an element data file is +the second way to load circuits. + + +<P> +The third way to create a new element is to copy an existing one. +Please refer to section <A HREF="pcb.html#SEC29">Moving and Copying</A>. + + +<P> +<A NAME="IDX81"></A> +<A NAME="IDX82"></A> +<A NAME="IDX83"></A> +<A NAME="IDX84"></A> +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 +<EM>Tool pallette</EM>. 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 (<EM>!Ctrl<Key>m</EM>) 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 <EM>active-layer</EM> 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 (<EM><Btn3Down> drag, +<Btn3Up></EM>). Now select "cut selection to buffer" from the <EM>Buffer</EM> +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 <EM>Buffer</EM> 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. + + +<P> +To display the pinout of a circuit move to it and press <EM>Shift<Key>d</EM> +or select <EM>show pinout</EM> from the <EM>Objects</EM> 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. +<EM><Key>d</EM> 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. + + +<P> +You also may want to change a pin's or pad's current size by pressing +<EM><Key>s</EM> to increase or <EM>Shift<Key>s</EM> 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 <EM><Key>q</EM>. +SMD pads should usually have squared ends. Finally, you can change whether +the non-square pins are round or octagonal with the <EM>!Ctrl<Key>o</EM>. + + +<P> +SMD elements and silkscreen objects are drawn in the "invisible object" +color if they are located on the opposite side of the board. + + +<P> +For information on element connections refer to section <A HREF="pcb.html#SEC32">Connection Lists</A>. + + +<P> +<A NAME="IDX85"></A> +<A NAME="IDX86"></A> +<A NAME="IDX87"></A> +<A NAME="IDX88"></A> + + +<H3><A NAME="SEC28" HREF="pcb_toc.html#TOC28">Pastebuffer</A></H3> +<P> +The linestack and element-buffer of former releases have been replaced +by 5 multi-purpose buffers that are selected by +<EM>Shift<Key>1..5</EM>. 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 <EM><Btn3Down></EM> 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 <EM>Mod1<Btn3Down></EM> instead. +Dragging <EM>Shift Mod1<Btn3Down></EM> unselects objects in a box. +Now change to <EM>pastebuffer-mode</EM> and select some operations from the +<EM>Buffer</EM> menu. Copying objects to the buffer is available as +<EM>Mod1<Key>c</EM> while cutting them uses <EM>Mod1<Key>x</EM> 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 <EM>File</EM> menu or as user commands. + + + + +<H2><A NAME="SEC29" HREF="pcb_toc.html#TOC29">Moving and Copying</A></H2> +<P> +<A NAME="IDX89"></A> +<A NAME="IDX90"></A> +<A NAME="IDX91"></A> +<A NAME="IDX92"></A> +All objects can be moved including element-names, by +<EM><Btn2Down></EM>, draging the pointer while holding the button down +and releasing it at the new location of the object. If you use +<EM>Mod1<Btn2Down></EM> instead, the object is copied. Copying does not work for +element-names of course. You can move all selected objects with +<EM>Shift <Btn1Down></EM>. This uses the Pastebuffer, so +it will remove whatever was previously in the Pastebuffer. +Please refer to section <A HREF="pcb.html#SEC28">Pastebuffer</A>. +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 <EM><Key>[</EM>, +move it with the arrow keys, then press <EM><Key>]</EM> 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. + + + + +<H2><A NAME="SEC30" HREF="pcb_toc.html#TOC30">Loading and Saving</A></H2> +<P> +<A NAME="IDX93"></A> +<A NAME="IDX94"></A> +<A NAME="IDX95"></A> +<A NAME="IDX96"></A> +After your first experience with <CODE>Pcb</CODE> you will probably want to save +your work. <KBD>:s name</KBD> passes the data to an external program which +is responsible for saving it. For details see <EM>saveCommand</EM> in +section <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>. +Saving also is available from the <EM>File</EM> menu, either with or +without supplying a filename. <CODE>Pcb</CODE> reuses the last +filename if you do not pass a new one to the save routine. + + +<P> +To load an existing layout either select <EM>load layout data</EM> from the +<EM>File</EM> menu or use <KBD>:l filename</KBD>. 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 <EM>File</EM> menu or by <KBD>:m filename</KBD>. + + +<P> +<A NAME="IDX97"></A> +<A NAME="IDX98"></A> +<A NAME="IDX99"></A> +<A NAME="IDX100"></A> +<A NAME="IDX101"></A> +<A NAME="IDX102"></A> +<CODE>Pcb</CODE> saves a backup of the current layout depending on the resource +<EM>backup</EM>. The file is named <TT>`/tmp/PCB.%i.backup'</TT>. During critical +sections of the program or when data would be lost it is saved as +<TT>`/tmp/PCB.%i.save'</TT>. +<EM>%i</EM> is replaced by the process ID. + + +<P> +<A NAME="IDX103"></A> +<A NAME="IDX104"></A> + + +<H2><A NAME="SEC31" HREF="pcb_toc.html#TOC31">Printing</A></H2> +<P> +<CODE>Pcb</CODE> now has support for device drivers, +<CODE>PostScript</CODE>, <EM>encapsulated PostScript</EM>, +and <EM>Gerber X</EM> drivers are +available so far. The <EM>Gerber X</EM> +driver generates a NC drill file for automated drilling. + I recommend the use of <CODE>GhostScript</CODE> if you +don't have a <CODE>PostScript</CODE> printer for handling the PostScript +output. Printing always generates +a complete set of files for a specified driver. +See the page about +the <EM>Print()</EM> 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: + + +<DL COMPACT> + +<DT><SAMP>`device'</SAMP> +<DD> +<A NAME="IDX105"></A> + <A NAME="IDX106"></A> + +The top menu button selects from the available device drivers. + +<A NAME="IDX107"></A> +<DT><SAMP>`rotate'</SAMP> +<DD> +Rotate layout 90 degrees counter-clockwise before printing (default). + +<A NAME="IDX108"></A> +<DT><SAMP>`mirror'</SAMP> +<DD> +Mirror layout before printing. Use this option depending +on your production line. + +<A NAME="IDX109"></A> +<DT><SAMP>`color'</SAMP> +<DD> +Created colored output. All colors will be converted to black if this option +is inactive. + +<A NAME="IDX110"></A> +<DT><SAMP>`outline'</SAMP> +<DD> +Add a board outline to the output file. The size is determined by the +maximum boardsize changeable from the <EM>sizes</EM> 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. + +<A NAME="IDX111"></A> +<DT><SAMP>`alignment'</SAMP> +<DD> +Additional alignement targets are added to the output. The distances between +the board outline is set by the resource <EM>alignmentDistance</EM>. 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. + +<A NAME="IDX112"></A> +<DT><SAMP>`scaling'</SAMP> +<DD> +It's quite useful to enlarge your printout for checking the layout. +Use the scrollbar to adjust the scaling factor to your needs. + +<A NAME="IDX113"></A> +<A NAME="IDX114"></A> +<DT><SAMP>`media'</SAMP> +<DD> +Select the size of the output media from this menu. The user defined size +may be set by the resource <EM>media</EM> either from one of the well known +paper sizes or by a <CODE>X11</CODE> geometry specification. +This entry is only available if you use <CODE>X11R5</CODE> or later. +For earlier releases the user defined size or, if not available, <EM>A4</EM> +is used. +Well known size are: + +<PRE> + A3 + A4 + A5 + letter + tabloid + ledger + legal + executive +</PRE> + +<A NAME="IDX115"></A> +<A NAME="IDX116"></A> +<DT><SAMP>`offset'</SAMP> +<DD> +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 <CODE>X11R5</CODE> or later. A zero +offset is used for earlier releases. + +<A NAME="IDX117"></A> +<DT><SAMP>`8.3 filenames'</SAMP> +<DD> +Select this button to generate DOS compatible filenames for the output files. +The <EM>command</EM> input area will disappear if selected. + +<A NAME="IDX118"></A> +<DT><SAMP>`commandline'</SAMP> +<DD> +Use this line to enter a command (starts with <KBD>|</KBD>) or a filename. +A %f is replaced by the current filename. +The default is set by the resource <EM>printCommand</EM>. + +</DL> + +<P> +The created file includes some labels which are guaranteed to stay unchanged +<DL COMPACT> + +<DT><SAMP>`PCBMIN'</SAMP> +<DD> +identifies the lowest x and y coordinates in mil. + +<DT><SAMP>`PCBMAX'</SAMP> +<DD> +identifies the highest x and y coordinates in mil. + +<DT><SAMP>`PCBOFFSET'</SAMP> +<DD> +is set to the x and y offset in mil. + +<DT><SAMP>`PCBSCALE'</SAMP> +<DD> +is a floating point value which identifies the scaling factor. + +<DT><SAMP>`PCBSTARTDATA'</SAMP> +<DD> +<DT><SAMP>`PCBENDDATA'</SAMP> +<DD> +all layout data is included between these two marks. You may use them with an +<CODE>awk</CODE> script to produce several printouts on one piece of paper by +duplicating the code and putting some <CODE>translate</CODE> commands in front. +Note, the normal <CODE>PostScript</CODE> units are 1/72 inch. +</DL> + +<P> +<A NAME="IDX119"></A> +<A NAME="IDX120"></A> + + +<H2><A NAME="SEC32" HREF="pcb_toc.html#TOC32">Connection Lists</A></H2> +<P> +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 <A HREF="pcb.html#SEC34">Rats Nest</A>. +The following examples give more rudimentary ways to examine +the connections. + +<PRE> + 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 +</PRE> + +<P> +Now select <EM>lookup connection</EM> from the <EM>Connections</EM> menu, +move the cursor to a pin or via and press any mouse button. <CODE>Pcb</CODE> +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. + + +<P> +There also is a way to scan all connections of one element. Select +<EM>a single element</EM> 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 <EM>Display</EM> menu). + + +<P> +An automatic scan of all elements is initiated by choosing +<EM>all elements</EM>. It behaves in a similar fashion to scanning a single +element except the resource <EM>resetAfterElement</EM> +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 <EM>false</EM> +for this reason. + + +<P> +To scan for unconnected pins select <EM>unused pins</EM> from the same +menu. + + +<P> +<A NAME="IDX121"></A> + + +<H2><A NAME="SEC33" HREF="pcb_toc.html#TOC33">Selection</A></H2> +<P> +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 <EM><Btn3Down></EM>. Try <EM><Btn3Down></EM>, 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 <EM>Mod1<Btn3Down></EM> adds everything in the box to the +existing selection. Dragging <EM>Shift <Btn3Down></EM> unselects objects in the +box. + + +<P> +The entries of the <EM>Selection</EM> menu are hopefully self-explanatory. +Many of the <EM>Action Commands</EM> can take various key words that make +them function on all or some of the selected items. + + +<P> +<A NAME="IDX122"></A> +<A NAME="IDX123"></A> +<A NAME="IDX124"></A> + + +<H2><A NAME="SEC34" HREF="pcb_toc.html#TOC34">Rats Nest</A></H2> +<P> +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 <EM>:rn</EM>, +section <A HREF="pcb.html#SEC36">User Commands</A>). +<EM><Key>w</EM> 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. + + +<P> +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. + + +<P> +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 <EM><Key>o</EM> +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 (<EM>Shift<Key>w</EM>) +is often useful to layout a circuit a little bit at a time. +Sometimes you'll want to delete all the rat-lines (<EM><Key>e</EM>) or +selected rat-lines (<EM>Shift<Key>e</EM>) 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. + + +<P> +Rat-lines are not only used for assisting your element placement, they can also help +you to route traces on the board. +Use the <EM><Key>m</EM> 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 <EM><Key>f</EM> 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 (<EM>Shift<Key>f</EM>) 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 (<EM><Key>e</EM> erases them all) once you've +duplicated their connectivity by adding your own lines. +When in doubt, the <EM><Key>o</EM> will delete only those +rat-lines that are no longer needed. + + +<P> +If connections exist on the board that are not listed in the netlist when +<EM><Key>w</EM> is pressed, warning messages are issued and the affected pins and +pads are drawn in a special <EM>warnColor</EM> until the next <EM>Notify()</EM> 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. + + +<P> +The <EM>Shift<Key>w</EM> 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. + + +<P> +<A NAME="IDX125"></A> +<A NAME="IDX126"></A> +<A NAME="IDX127"></A> +<A NAME="IDX128"></A> + + +<H2><A NAME="SEC35" HREF="pcb_toc.html#TOC35">Design Rule Checking</A></H2> +<P> +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. + + +<P> +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 <EM>Settings.Bloat</EM> value. The default +is 7 mils. The minimum touching overlap (in mils) is given by the +<EM>Settings.Shrink</EM> value. This value defaults to 5 mils. Check with your +fabrication process people to determine the values that are right for you. + + +<P> +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. + + +<P> +<A NAME="IDX129"></A> +<A NAME="IDX130"></A> + + +<H1><A NAME="SEC36" HREF="pcb_toc.html#TOC36">User Commands</A></H1> +<P> +The entering of user-commands is initiated by the action routine +<EM>Command()</EM> (the <CODE>(":")</CODE> character) and finished by either +<EM><Key>Return</EM> +or <EM><Key>Escape</EM> 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 <EM>Command()</EM> is called. The arguments of the user-commands +are passed to the external commands without modification. +See also, the resource <EM>saveInTMP</EM>. + + +<P> +There are simple <EM>usage</EM> dialogs for each command and one for the +complete set of commands. + + +<DL COMPACT> + +<DT><SAMP>`l [filename]'</SAMP> +<DD> +<A NAME="IDX131"></A> + <A NAME="IDX132"></A> + <A NAME="IDX133"></A> + +Loads a new datafile (layout) and, if confirmed, overwrites any existing unsaved data. +The filename and the searchpath (<EM>filePath</EM>) are passed to the +command defined by <EM>fileCommand</EM>. +If no filename is specified a file select box will popup. + +<A NAME="IDX134"></A> +<A NAME="IDX135"></A> +<A NAME="IDX136"></A> +<DT><SAMP>`le [filename]'</SAMP> +<DD> +Loads an element description into the paste buffer. +The filename and the searchpath (<EM>elementPath</EM>) are passed to the +command defined by <EM>elementCommand</EM>. +If no filename is specified a file select box will popup. + +<A NAME="IDX137"></A> +<A NAME="IDX138"></A> +<A NAME="IDX139"></A> +<A NAME="IDX140"></A> +<A NAME="IDX141"></A> +<DT><SAMP>`m [filename]'</SAMP> +<DD> +Loads an layout file into the paste buffer. +The filename and the searchpath (<EM>filePath</EM>) are passed to the +command defined by <EM>fileCommand</EM>. +If no filename is specified a file select box will popup. + +<A NAME="IDX142"></A> +<A NAME="IDX143"></A> +<A NAME="IDX144"></A> +<DT><SAMP>`q[!]'</SAMP> +<DD> +Quits the program without saving any data (after confirmation). +q! doesn't ask for confirmation, it just quits. + +<A NAME="IDX145"></A> +<A NAME="IDX146"></A> +<A NAME="IDX147"></A> +<DT><SAMP>`s [filename]'</SAMP> +<DD> +Data and the filename are passed to the command defined by the resource +<EM>saveCommand</EM>. It must read the layout data from <EM>stdin</EM>. +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. + +<A NAME="IDX148"></A> +<A NAME="IDX149"></A> +<A NAME="IDX150"></A> +<A NAME="IDX151"></A> +<DT><SAMP>`rn [filename]'</SAMP> +<DD> +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 +<EM>RatCommand</EM> resource. The command must send its output to <EM>stdout</EM>. +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 <A HREF="pcb.html#SEC6">Elements</A> +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 <A HREF="pcb.html#SEC34">Rats Nest</A>) and for +verifying the board layout (which is also accomplished by the <EM>Ratsnest</EM> +command. + +<A NAME="IDX152"></A> +<A NAME="IDX153"></A> +<A NAME="IDX154"></A> +<DT><SAMP>`w[q] [filename]'</SAMP> +<DD> +These commands have been added for the convenience of <CODE>vi</CODE> users and +have the same functionality as <EM>s</EM> combined with <EM>q</EM>. + +<A NAME="IDX155"></A> +<A NAME="IDX156"></A> +<A NAME="IDX157"></A> +<DT><SAMP>`actionCommand'</SAMP> +<DD> +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 "<EM>:ChangeDrillSize(SelectedVias, 32)</EM>". (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 "<EM>:SetValue(Grid, 1)</EM>". +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 <A HREF="pcb.html#SEC42">Actions</A> section to +see what actions are available. + +</DL> + +<P> +<A NAME="IDX158"></A> +<A NAME="IDX159"></A> + + +<H1><A NAME="SEC37" HREF="pcb_toc.html#TOC37">Command-Line Options</A></H1> +<P> +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 <A HREF="pcb.html#SEC41">Non-Standard X11 Application Resources</A>. + + +<P> +The synopsis is: + + +<P> +<CODE>pcb [-option ...] [-toolkit_option ...] [layout-file]</CODE> + + +<P> +or + + +<P> +<CODE>pcb -specialoption</CODE> + + + +<UL> +<LI><A HREF="pcb.html#SEC38">Options</A>: <CODE>Pcb</CODE> command-line options. +<LI><A HREF="pcb.html#SEC39">Special Options</A>: Version and copyright information. +</UL> + + + +<H2><A NAME="SEC38" HREF="pcb_toc.html#TOC38">Options</A></H2> +<DL COMPACT> + +<DT><SAMP>`-alldirections/+alldirections'</SAMP> +<DD> +<A NAME="IDX160"></A> + <A NAME="IDX161"></A> + <A NAME="IDX162"></A> + <A NAME="IDX163"></A> + <A NAME="IDX164"></A> + +Disables or enables line clipping to 45 degree angles. Overwrites the +resource <EM>allDirectionLines</EM>. + +<A NAME="IDX165"></A> +<A NAME="IDX166"></A> +<A NAME="IDX167"></A> +<DT><SAMP>`-backup value'</SAMP> +<DD> +Time between two backups in seconds. Passing zero disables the backup feature. +Overwrites the resource <EM>backupInterval</EM>. + +<A NAME="IDX168"></A> +<A NAME="IDX169"></A> +<A NAME="IDX170"></A> +<A NAME="IDX171"></A> +<A NAME="IDX172"></A> +<DT><SAMP>`-c value'</SAMP> +<DD> +Number of characters per output line. The resource <EM>charactersPerLine</EM> is +overwritten. + +<A NAME="IDX173"></A> +<A NAME="IDX174"></A> +<A NAME="IDX175"></A> +<A NAME="IDX176"></A> +<A NAME="IDX177"></A> +<DT><SAMP>`-fontfile filename'</SAMP> +<DD> +The default set of symbols (font) for a new layout is read from this file. +All directories as defined by the resource <EM>fontPath</EM> are scanned +for the file. The scan is only performed if the filename doesn't contain +a directory component. The <EM>fontFile</EM> resource is changed. + +<A NAME="IDX178"></A> +<A NAME="IDX179"></A> +<A NAME="IDX180"></A> +<A NAME="IDX181"></A> +<A NAME="IDX182"></A> +<A NAME="IDX183"></A> +<A NAME="IDX184"></A> +<DT><SAMP>`-lelement command-line'</SAMP> +<DD> +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 <EM>elementCommand</EM>. + +<A NAME="IDX185"></A> +<A NAME="IDX186"></A> +<A NAME="IDX187"></A> +<A NAME="IDX188"></A> +<A NAME="IDX189"></A> +<A NAME="IDX190"></A> +<A NAME="IDX191"></A> +<DT><SAMP>`-lfile command-line'</SAMP> +<DD> +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 <EM>fileCommand</EM>. + +<A NAME="IDX192"></A> +<A NAME="IDX193"></A> +<A NAME="IDX194"></A> +<A NAME="IDX195"></A> +<A NAME="IDX196"></A> +<A NAME="IDX197"></A> +<A NAME="IDX198"></A> +<A NAME="IDX199"></A> +<DT><SAMP>`-lfont command-line'</SAMP> +<DD> +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 <EM>fontCommand</EM>. + +<A NAME="IDX200"></A> +<A NAME="IDX201"></A> +<A NAME="IDX202"></A> +<A NAME="IDX203"></A> +<DT><SAMP>`-lg layergroups'</SAMP> +<DD> +This option overwrites the resource <EM>layerGroups</EM>. See its description +for more information. The value is used for new layouts only. + +<A NAME="IDX204"></A> +<A NAME="IDX205"></A> +<A NAME="IDX206"></A> +<DT><SAMP>`-libname filename'</SAMP> +<DD> +The default filename for the library. Overwrites the resource +<EM>libraryFilename</EM>. + +<A NAME="IDX207"></A> +<A NAME="IDX208"></A> +<A NAME="IDX209"></A> +<DT><SAMP>`-libpath path'</SAMP> +<DD> +The default search path for the the library. Overwrites the resource +<EM>libraryPath</EM>. + +<A NAME="IDX210"></A> +<A NAME="IDX211"></A> +<A NAME="IDX212"></A> +<A NAME="IDX213"></A> +<A NAME="IDX214"></A> +<A NAME="IDX215"></A> +<DT><SAMP>`-llib command-line'</SAMP> +<DD> +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 +<EM>template</EM>, <EM>value</EM> and <EM>package</EM>. The command must write +the data to its standard output. The related resource is <EM>libraryCommand</EM>. + +<A NAME="IDX216"></A> +<A NAME="IDX217"></A> +<A NAME="IDX218"></A> +<A NAME="IDX219"></A> +<A NAME="IDX220"></A> +<DT><SAMP>`-llibcont command-line'</SAMP> +<DD> +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 <A HREF="pcb.html#SEC50">Library File Format</A> +and section <A HREF="pcb.html#SEC49">Library Contents File Format</A>. +The related resource is <EM>libraryContentsCommand</EM>. + +<A NAME="IDX221"></A> +<A NAME="IDX222"></A> +<A NAME="IDX223"></A> +<DT><SAMP>`-loggeometry geometry'</SAMP> +<DD> +Determines the geometry of the log window. + +<A NAME="IDX224"></A> +<A NAME="IDX225"></A> +<A NAME="IDX226"></A> +<A NAME="IDX227"></A> +<A NAME="IDX228"></A> +<DT><SAMP>`-pnl value'</SAMP> +<DD> +Restricts the displayed length of the name of a pin in the pinout window to +the passed value. See also, the resource <EM>pinoutNameLength</EM>. + +<A NAME="IDX229"></A> +<A NAME="IDX230"></A> +<A NAME="IDX231"></A> +<A NAME="IDX232"></A> +<DT><SAMP>`-pz value'</SAMP> +<DD> +Sets the zoom factor for the pinout window according to the formula: +scale = 1:(2 power value). The related resource is <EM>pinoutZoom</EM>. + +<A NAME="IDX233"></A> +<A NAME="IDX234"></A> +<A NAME="IDX235"></A> +<A NAME="IDX236"></A> +<A NAME="IDX237"></A> +<DT><SAMP>`-reset/+reset'</SAMP> +<DD> +If enabled, all connections are reset after each element is scanned. +This feature is only used while scanning connections to all elements. +See also, <EM>resetAfterElement</EM>. + +<A NAME="IDX238"></A> +<A NAME="IDX239"></A> +<A NAME="IDX240"></A> +<A NAME="IDX241"></A> +<DT><SAMP>`-ring/+ring'</SAMP> +<DD> +Overrides the resource <EM>ringBellWhenFinished</EM>. If enabled, the bell +sounds when connection searching has finished. + +<A NAME="IDX242"></A> +<A NAME="IDX243"></A> +<A NAME="IDX244"></A> +<DT><SAMP>`-rs string'</SAMP> +<DD> +Overrides the resource <EM>routeStyle</EM>. 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" + +<A NAME="IDX245"></A> +<A NAME="IDX246"></A> +<A NAME="IDX247"></A> +<A NAME="IDX248"></A> +<A NAME="IDX249"></A> +<DT><SAMP>`-s/+s'</SAMP> +<DD> +Enables/Disables the saving of the previous commandline. Overrides the +<EM>saveLastCommand</EM> resource. + +<A NAME="IDX250"></A> +<A NAME="IDX251"></A> +<A NAME="IDX252"></A> +<A NAME="IDX253"></A> +<A NAME="IDX254"></A> +<A NAME="IDX255"></A> +<A NAME="IDX256"></A> +<A NAME="IDX257"></A> +<A NAME="IDX258"></A> +<DT><SAMP>`-save/+save'</SAMP> +<DD> +See the resource description of <EM>saveInTMP</EM> for details. + +<A NAME="IDX259"></A> +<A NAME="IDX260"></A> +<A NAME="IDX261"></A> +<A NAME="IDX262"></A> +<A NAME="IDX263"></A> +<A NAME="IDX264"></A> +<A NAME="IDX265"></A> +<DT><SAMP>`-sfile command-line'</SAMP> +<DD> +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 <EM>saveCommand</EM> is overwritten. + +<A NAME="IDX266"></A> +<A NAME="IDX267"></A> +<A NAME="IDX268"></A> +<A NAME="IDX269"></A> +<DT><SAMP>`-size <width>x<height>'</SAMP> +<DD> +Overrides the resource <EM>size</EM> which determines the maximum size +of a layout. + +<A NAME="IDX270"></A> +<A NAME="IDX271"></A> +<A NAME="IDX272"></A> +<A NAME="IDX273"></A> +<DT><SAMP>`-v value'</SAMP> +<DD> +Sets the volume of the X speaker. The value is passed to <CODE>XBell()</CODE> and +must be in the range -100..100. + +</DL> + + + +<H2><A NAME="SEC39" HREF="pcb_toc.html#TOC39">Special Options</A></H2> +<P> +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: + + +<DL COMPACT> + +<DT><SAMP>`-copyright'</SAMP> +<DD> +<A NAME="IDX274"></A> + <A NAME="IDX275"></A> + +Prints out the copyright notice and terminates. + +<A NAME="IDX276"></A> +<A NAME="IDX277"></A> +<A NAME="IDX278"></A> +<DT><SAMP>`-version'</SAMP> +<DD> +Prints out the version ID and terminates. + +<A NAME="IDX279"></A> +<DT><SAMP>`-help'</SAMP> +<DD> +Prints out the usage message and terminates. + +</DL> + +<P> +<A NAME="IDX280"></A> + + +<H1><A NAME="SEC40" HREF="pcb_toc.html#TOC40">X11 Interface</A></H1> +<P> +This chapter gives an overview about the additional <CODE>X11</CODE> resources which +are defined by <CODE>Pcb</CODE> as well as the defined action routines. + + + +<UL> +<LI><A HREF="pcb.html#SEC41">Resources</A>: Non-standard <CODE>X11</CODE> application resources. +<LI><A HREF="pcb.html#SEC42">Actions</A>: A list of available action routines. +<LI><A HREF="pcb.html#SEC43">Translations</A>: A list of the default key translations (as shipped). +</UL> + +<P> +<A NAME="IDX281"></A> +<A NAME="IDX282"></A> + + +<H2><A NAME="SEC41" HREF="pcb_toc.html#TOC41">Non-Standard X11 Application Resources</A></H2> +<P> +In addition to the toolkit resources, <CODE>Pcb</CODE> defines the +following resources: + + +<DL COMPACT> + +<DT><SAMP>`absoluteGrid (boolean)'</SAMP> +<DD> +<A NAME="IDX283"></A> + <A NAME="IDX284"></A> + +Selects if either the grid is relative to the position where it has changed +last or absolute, the default, to the origin (0,0). + +<A NAME="IDX285"></A> +<A NAME="IDX286"></A> +<DT><SAMP>`alignmentDistance (dimension)'</SAMP> +<DD> +Specifies the distance between the boards outline to the alignment targets. + +<A NAME="IDX287"></A> +<A NAME="IDX288"></A> +<A NAME="IDX289"></A> +<DT><SAMP>`allDirectionLines (boolean)'</SAMP> +<DD> +Enables (default) or disables clipping of new lines to 45 degree angles. + +<A NAME="IDX290"></A> +<A NAME="IDX291"></A> +<DT><SAMP>`backupInterval (int)'</SAMP> +<DD> +<CODE>Pcb</CODE> has an automatic backup feature which saves the current data +every n seconds. The default is <EM>300</EM> seconds. A value of zero disables +the feature. The backup file is named <TT>`/tmp/PCB.%i.backup'</TT>. +<EM>%i</EM> is replaced by the process ID. +See also, the command-line option <EM>-backup</EM>. + +<A NAME="IDX292"></A> +<A NAME="IDX293"></A> +<A NAME="IDX294"></A> +<DT><SAMP>`Bloat (dimension)'</SAMP> +<DD> +Specifies the minimum spacing design rule in mils. + +<A NAME="IDX295"></A> +<A NAME="IDX296"></A> +<A NAME="IDX297"></A> +<A NAME="IDX298"></A> +<DT><SAMP>`charactersPerLine (int)'</SAMP> +<DD> +<CODE>Pcb</CODE> uses this value to determine the page width when creating lists. +N, the number of characters per line, defaults to <EM>80</EM>. +See also, the command-line option <EM>-c</EM>. + +<A NAME="IDX299"></A> +<A NAME="IDX300"></A> +<A NAME="IDX301"></A> +<DT><SAMP>`connectedColor (color)'</SAMP> +<DD> +All pins, vias, lines and rectangles which are selected during a connection +search are drawn with this color. The default value is determined by +<EM>XtDefaultForeground</EM>. + +<A NAME="IDX302"></A> +<A NAME="IDX303"></A> +<A NAME="IDX304"></A> +<DT><SAMP>`crosshairColor (color)'</SAMP> +<DD> +This color is used to draw the crosshair cursor. The color is a result of +a <EM>XOR</EM> operation with the contents of the drawing area. The result +also depends on the default colormap of the <CODE>X11</CODE> server because only +the colormap index is used in the boolean operation and <CODE>Pcb</CODE> doesn't +create its own colormap. The default setting is <EM>XtDefaultForeground</EM>. + +<A NAME="IDX305"></A> +<A NAME="IDX306"></A> +<A NAME="IDX307"></A> +<A NAME="IDX308"></A> +<DT><SAMP>`elementColor (color)'</SAMP> +<DD> +<DT><SAMP>`elementSelectedColor (color)'</SAMP> +<DD> +The elements package part is drawn in these colors, for normal and selected +mode, respectively, which both default to <EM>XtDefaultForeground</EM>. + +<A NAME="IDX309"></A> +<A NAME="IDX310"></A> +<A NAME="IDX311"></A> +<A NAME="IDX312"></A> +<A NAME="IDX313"></A> +<A NAME="IDX314"></A> +<A NAME="IDX315"></A> +<DT><SAMP>`elementCommand (string)'</SAMP> +<DD> +<CODE>Pcb</CODE> 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 + +<PRE> + M4PATH="%p";export M4PATH;echo 'include(%f)' | m4 +</PRE> + +Using the GNU version of <CODE>m4</CODE> is highly recommended. +See also, the command-line option <EM>-lelement</EM>. + +<A NAME="IDX316"></A> +<A NAME="IDX317"></A> +<A NAME="IDX318"></A> +<A NAME="IDX319"></A> +<A NAME="IDX320"></A> +<DT><SAMP>`elementPath (string)'</SAMP> +<DD> +A colon separated list of directories or commands (starts with '|'). +The path is passed to the program specified in <EM>elementCommand</EM> 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 +<EM>stdout</EM> one entry per line. +See also, the user-command <EM>le[!]</EM>. + +<A NAME="IDX321"></A> +<A NAME="IDX322"></A> +<A NAME="IDX323"></A> +<A NAME="IDX324"></A> +<A NAME="IDX325"></A> +<A NAME="IDX326"></A> +<A NAME="IDX327"></A> +<DT><SAMP>`fileCommand (string)'</SAMP> +<DD> +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: + +<PRE> + cat %f +</PRE> + +See also, the command-line option <EM>-lfile</EM>. + +<A NAME="IDX328"></A> +<A NAME="IDX329"></A> +<A NAME="IDX330"></A> +<A NAME="IDX331"></A> +<A NAME="IDX332"></A> +<DT><SAMP>`filePath (string)'</SAMP> +<DD> +A colon separated list of directories or commands (starts with '|'). +The path is passed to the program specified in <EM>fileCommand</EM> 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 +<EM>stdout</EM> one entry per line. +See also, the user-command <EM>l[!]</EM>. + +<A NAME="IDX333"></A> +<A NAME="IDX334"></A> +<A NAME="IDX335"></A> +<A NAME="IDX336"></A> +<A NAME="IDX337"></A> +<A NAME="IDX338"></A> +<A NAME="IDX339"></A> +<A NAME="IDX340"></A> +<DT><SAMP>`fontCommand (string)'</SAMP> +<DD> +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 + +<PRE> + cat %f +</PRE> + +See also, the command-line option <EM>-lfont</EM>. + +<A NAME="IDX341"></A> +<A NAME="IDX342"></A> +<A NAME="IDX343"></A> +<DT><SAMP>`fontFile (string)'</SAMP> +<DD> +The default font for new layouts is read from this file which is searched +in the directories as defined by the resource <EM>fontPath</EM>. +Searching is only performed if the filename does not contain a directory +component. +The default filename is <TT>`default_font'</TT>. +See also, the command-line option <EM>-fontfile</EM>. + +<A NAME="IDX344"></A> +<A NAME="IDX345"></A> +<A NAME="IDX346"></A> +<A NAME="IDX347"></A> +<A NAME="IDX348"></A> +<A NAME="IDX349"></A> +<DT><SAMP>`fontPath (string)'</SAMP> +<DD> +This resource, a colon separated list of directories, defines the searchpath +for font files. See also, the resource <EM>fontFile</EM>. + +<A NAME="IDX350"></A> +<A NAME="IDX351"></A> +<A NAME="IDX352"></A> +<DT><SAMP>`grid (int)'</SAMP> +<DD> +This resources defines the initial value of one cursor step. It defaults +to <EM>100 mil</EM> and any changes are saved together with the layout data. + +<A NAME="IDX353"></A> +<A NAME="IDX354"></A> +<A NAME="IDX355"></A> +<DT><SAMP>`gridColor (color)'</SAMP> +<DD> +This color is used to draw the grid. The color is a result of +a <EM>INVERT</EM> operation with the contents of the drawing area. The result +also depends on the default colormap of the <CODE>X11</CODE> server because only +the colormap index is used in the boolean operation and <CODE>Pcb</CODE> doesn't +create its own colormap. The default setting is <EM>XtDefaultForeground</EM>. + +<A NAME="IDX356"></A> +<A NAME="IDX357"></A> +<A NAME="IDX358"></A> +<DT><SAMP>`elementColor (color)'</SAMP> +<DD> +Elements localted on the opposite side of the board are drawn in this color. +The default is <EM>XtDefaultForeground</EM>. + +<A NAME="IDX359"></A> +<A NAME="IDX360"></A> +<A NAME="IDX361"></A> +<A NAME="IDX362"></A> +<DT><SAMP>`layerColor1..8 (color)'</SAMP> +<DD> +<DT><SAMP>`layerSelectedColor1..8 (color)'</SAMP> +<DD> +These resources define the drawing colors of the different layers in +normal and selected state. All values are preset to <EM>XtDefaultForeground</EM>. + +<A NAME="IDX363"></A> +<A NAME="IDX364"></A> +<A NAME="IDX365"></A> +<DT><SAMP>`layerGroups (string)'</SAMP> +<DD> +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 <EM>1:2:3:...:8</EM> which means +all layers are handled separatly. Grouping layers one to three looks like +<EM>1,2,3:4:...:8</EM> +See also, the command-line option <EM>-lg</EM>. + +<A NAME="IDX366"></A> +<A NAME="IDX367"></A> +<DT><SAMP>`layerName1..8 (string)'</SAMP> +<DD> +The default name of the layers in a new layout are determined by these +resources. The defaults are empty strings. + +<A NAME="IDX368"></A> +<A NAME="IDX369"></A> +<A NAME="IDX370"></A> +<A NAME="IDX371"></A> +<DT><SAMP>`libraryCommand (string)'</SAMP> +<DD> +<CODE>Pcb</CODE> 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 <EM>template</EM>, <EM>value</EM> and <EM>package</EM> to the command. +It must write the element data to its standard output. The default value is + +<PRE> + /usr/X11R6/lib/X11/pcb/QueryLibrary.sh %p %f %a +</PRE> + +<A NAME="IDX372"></A> +<A NAME="IDX373"></A> +<A NAME="IDX374"></A> +<A NAME="IDX375"></A> +<DT><SAMP>`libraryContentsCommand (string)'</SAMP> +<DD> +Similar to <EM>libraryCommand</EM>, <CODE>Pcb</CODE> uses the command specified +by this resource to list the contents of a library. + +<PRE> + /usr/X11R6/lib/X11/pcb/ListLibraryContents.sh %p %f +</PRE> + +is the default. + +<A NAME="IDX376"></A> +<A NAME="IDX377"></A> +<A NAME="IDX378"></A> +<DT><SAMP>`libraryFilename (string)'</SAMP> +<DD> +The resource specifies the name of the library. The default value is +<EM>pcblib</EM>. + +<A NAME="IDX379"></A> +<A NAME="IDX380"></A> +<A NAME="IDX381"></A> +<A NAME="IDX382"></A> +<DT><SAMP>`libraryPath (string)'</SAMP> +<DD> +A colon separated list of directories that will be passed to the commands +specified by <EM>elementCommand</EM> and <EM>elementContentsCommand</EM>. + +<A NAME="IDX383"></A> +<A NAME="IDX384"></A> +<A NAME="IDX385"></A> +<A NAME="IDX386"></A> +<DT><SAMP>`lineThickness (dimension)'</SAMP> +<DD> +The value, int the range [1..250], defines the +initial thickness of new lines. The value is preset to <EM>ten mil</EM>. + +<A NAME="IDX387"></A> +<A NAME="IDX388"></A> +<A NAME="IDX389"></A> +<A NAME="IDX390"></A> +<DT><SAMP>`media (<predefined> | <width>x<height>+-<left_margin>+-<top_margin>)'</SAMP> +<DD> +The default (user defined) media of the <CODE>PostScript</CODE> device. Predefined +values are <EM>a3</EM>, <EM>a4</EM>, <EM>a5</EM>, <EM>letter</EM>, <EM>tabloit</EM>, +<EM>ledger</EM>, <EM>legal</EM>, and <EM>executive</EM>. +The second way is to specify the medias width, height and margins in mil. +The resource defaults to <EM>a4</EM> size. + +<A NAME="IDX391"></A> +<A NAME="IDX392"></A> +<A NAME="IDX393"></A> +<DT><SAMP>`offLimitColor (color)'</SAMP> +<DD> +The area outside the current maximum settings for width and height is drawn +with this color. The default value is determined by <EM>XtDefaultBackground</EM>. + +<A NAME="IDX394"></A> +<A NAME="IDX395"></A> +<A NAME="IDX396"></A> +<A NAME="IDX397"></A> +<DT><SAMP>`pinColor (color)'</SAMP> +<DD> +<DT><SAMP>`pinSelectedColor(color)'</SAMP> +<DD> +This resource defines the drawing color of pins and pads in both states. +The values are preset to <EM>XtDefaultForeground</EM>. + +<A NAME="IDX398"></A> +<A NAME="IDX399"></A> +<A NAME="IDX400"></A> +<DT><SAMP>`pinoutFont (string)'</SAMP> +<DD> +This fonts are used to display pin names. There is one font for each zoom +value. The values are preset to <EM>XtdefaultFont</EM>. + +<A NAME="IDX401"></A> +<A NAME="IDX402"></A> +<A NAME="IDX403"></A> +<A NAME="IDX404"></A> +<DT><SAMP>`pinoutNameLength (int)'</SAMP> +<DD> +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 <EM>eight</EM> characters per name. +See also, the command-line option <EM>-pnl</EM>. + +<A NAME="IDX405"></A> +<A NAME="IDX406"></A> +<A NAME="IDX407"></A> +<DT><SAMP>`pinoutOffsetX (int)'</SAMP> +<DD> +<DT><SAMP>`pinoutOffsetY (int)'</SAMP> +<DD> +These resources determine the offset in <EM>mil</EM> of the circuit from the +upper left corner of the window when displaying pinout information. +Both default to <EM>100 mil</EM>. + +<A NAME="IDX408"></A> +<A NAME="IDX409"></A> +<A NAME="IDX410"></A> +<DT><SAMP>`pinoutTextOffsetX (int)'</SAMP> +<DD> +<DT><SAMP>`pinoutTextOffsetY (int)'</SAMP> +<DD> +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 <EM>X:50</EM> and <EM>Y:0</EM>. + +<A NAME="IDX411"></A> +<A NAME="IDX412"></A> +<A NAME="IDX413"></A> +<DT><SAMP>`pinoutZoom (int)'</SAMP> +<DD> +Sets the zoom factor for the pinout window according to the formula: +scale = 1:(2 power value). Its default value is <EM>two</EM> which results in +a <EM>1:4</EM> scale. +See also, the command-line option <EM>-pz</EM>. + +<A NAME="IDX414"></A> +<A NAME="IDX415"></A> +<DT><SAMP>`printCommand (string)'</SAMP> +<DD> +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. + +<A NAME="IDX416"></A> +<A NAME="IDX417"></A> +<A NAME="IDX418"></A> +<DT><SAMP>`raiseLogWindow (boolean)'</SAMP> +<DD> +The log window will be raised when new messages arrive if this resource +is set <EM>true</EM>, the default. + +<A NAME="IDX419"></A> +<A NAME="IDX420"></A> +<A NAME="IDX421"></A> +<DT><SAMP>`ratCommand (string)'</SAMP> +<DD> +Default command for reading a netlist. A %f is replaced by the netlist +filename. Its default value is "<EM>cat %f</EM>". + +<A NAME="IDX422"></A> +<A NAME="IDX423"></A> +<A NAME="IDX424"></A> +<DT><SAMP>`ratPath (string)'</SAMP> +<DD> +Default path to look for netlist files. It's default value is "." + +<A NAME="IDX425"></A> +<A NAME="IDX426"></A> +<A NAME="IDX427"></A> +<DT><SAMP>`resetAfterElement (boolean)'</SAMP> +<DD> +If set to <EM>true</EM>, 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 <EM>false</EM> by default. +The feature is only used while looking up connections of all elements. +See also, the command-line option <EM>-reset, +reset</EM>. + +<A NAME="IDX428"></A> +<A NAME="IDX429"></A> +<DT><SAMP>`ringBellWhenFinished (boolean)'</SAMP> +<DD> +Whether to ring the bell (the default) when a possibly lengthy operation +has finished or not. +See also, the command-line option <EM>-ring, +ring</EM>. + +<A NAME="IDX430"></A> +<A NAME="IDX431"></A> +<DT><SAMP>`routeStyle (string)'</SAMP> +<DD> +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 <EM>-rs</EM> and <EM>Sizes Menu</EM> + +<A NAME="IDX432"></A> +<A NAME="IDX433"></A> +<A NAME="IDX434"></A> +<A NAME="IDX435"></A> +<DT><SAMP>`rubberBandMode (boolean)'</SAMP> +<DD> +Whether rubberband move and rotate (attached lines stretch like +rubberbands) is enabled (the default). + +<A NAME="IDX436"></A> +<A NAME="IDX437"></A> +<A NAME="IDX438"></A> +<A NAME="IDX439"></A> +<A NAME="IDX440"></A> +<A NAME="IDX441"></A> +<A NAME="IDX442"></A> +<DT><SAMP>`saveCommand (string)'</SAMP> +<DD> +This command is used to save data to a layout file. The filename may be +indicated by placing <CODE>%f</CODE> in the string. It must read the data from +its standard input. The default command is: + +<PRE> + cat - > %f +</PRE> + +See also, the command-line option <EM>-sfile</EM>. + +<A NAME="IDX443"></A> +<A NAME="IDX444"></A> +<A NAME="IDX445"></A> +<A NAME="IDX446"></A> +<A NAME="IDX447"></A> +<A NAME="IDX448"></A> +<A NAME="IDX449"></A> +<DT><SAMP>`saveInTMP (boolean)'</SAMP> +<DD> +Enabling this resource will save all data which would otherwise be lost +in a temporary file <TT>`/tmp/PCB.%i.save'</TT>. +<EM>%i</EM> 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 <EM>-save, +save</EM>. + +<A NAME="IDX450"></A> +<A NAME="IDX451"></A> +<A NAME="IDX452"></A> +<DT><SAMP>`saveLastCommand (boolean)'</SAMP> +<DD> +Enables the saving of the last entered user command. The option is +<EM>disabled</EM> by default. +See also, the command-line option <EM>-s, +s</EM>. + +<A NAME="IDX453"></A> +<A NAME="IDX454"></A> +<A NAME="IDX455"></A> +<DT><SAMP>`Shrink (dimension)'</SAMP> +<DD> +Specifies the minimum overlap (touching) design rule in mils. + +<A NAME="IDX456"></A> +<A NAME="IDX457"></A> +<A NAME="IDX458"></A> +<DT><SAMP>`size (<width>x<height>)'</SAMP> +<DD> +Defines the width and height of a new layout. The default is +<EM>7000x5000</EM>. + +<A NAME="IDX459"></A> +<A NAME="IDX460"></A> +<A NAME="IDX461"></A> +<DT><SAMP>`stipllePolygons (boolean)'</SAMP> +<DD> +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. + +<A NAME="IDX462"></A> +<A NAME="IDX463"></A> +<A NAME="IDX464"></A> +<DT><SAMP>`textScale (dimension)'</SAMP> +<DD> +The font scaling in percent is defined by this resource. The default is +<EM>100</EM> percent. + +<A NAME="IDX465"></A> +<A NAME="IDX466"></A> +<A NAME="IDX467"></A> +<DT><SAMP>`useLogWindow (boolean)'</SAMP> +<DD> +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 <EM>raiseLogWindow</EM> and the command line +option <EM>-loggeometry</EM>. +The default value is <EM>true</EM>. + +<A NAME="IDX468"></A> +<A NAME="IDX469"></A> +<A NAME="IDX470"></A> +<A NAME="IDX471"></A> +<DT><SAMP>`viaColor (color)'</SAMP> +<DD> +<DT><SAMP>`viaSelectedColor (color)'</SAMP> +<DD> +This resource defines the drawing color of vias in both states. +The values are preset to <EM>XtDefaultForeground</EM>. + +<A NAME="IDX472"></A> +<A NAME="IDX473"></A> +<A NAME="IDX474"></A> +<A NAME="IDX475"></A> +<A NAME="IDX476"></A> +<DT><SAMP>`viaThickness (dimension)'</SAMP> +<DD> +<DT><SAMP>`viaDrillingHole (dimension)'</SAMP> +<DD> +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 <EM>40 mil</EM> and the default drilling hole is +<EM>20 mil</EM>. + +<A NAME="IDX477"></A> +<A NAME="IDX478"></A> +<A NAME="IDX479"></A> +<DT><SAMP>`volume (int)'</SAMP> +<DD> +The value is passed to <CODE>XBell()</CODE> which sets the volume of the <CODE>X</CODE> +speaker. +The value lies in the range -100..100 and it defaults to the maximum volume of +<EM>100</EM>. + +<A NAME="IDX480"></A> +<A NAME="IDX481"></A> +<A NAME="IDX482"></A> +<DT><SAMP>`warnColor (color)'</SAMP> +<DD> +This resources defines the color to be used for drawing pins and pads when +a warning has been issued about them. + +<A NAME="IDX483"></A> +<A NAME="IDX484"></A> +<DT><SAMP>`zoom (int)'</SAMP> +<DD> +The initial value for output scaling is set according to the following +formula: scale = 1:(2 power value). It defaults to <EM>three</EM> which results +in an output scale of <EM>1:8</EM>. + +</DL> + +<P> +Refer also to section <A HREF="pcb.html#SEC37">Command-Line Options</A>. + + +<P> +<A NAME="IDX485"></A> +<A NAME="IDX486"></A> +<A NAME="IDX487"></A> +<A NAME="IDX488"></A> +<A NAME="IDX489"></A> + + +<H2><A NAME="SEC42" HREF="pcb_toc.html#TOC42">Actions</A></H2> +<P> +All user accessible commands may be bound to almost any <CODE>X</CODE> 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 <TT>`X11/lib/app-defaults'</TT> directory and +is called <TT>`Pcb'</TT>. 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 <A HREF="pcb.html#SEC36">User Commands</A>). + + +<P> +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 <EM>baseTranslations</EM> to +<EM>translations</EM> if you use a <CODE>X11R4</CODE> server. + + +<P> +Passing <EM>Object</EM> 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. +<EM>SelectedObjects</EM> will handle all selected and visible objects. + + +<DL COMPACT> + +<DT><SAMP>`AddRats(AllRats|SelectedRats)'</SAMP> +<DD> +<A NAME="IDX490"></A> + <A NAME="IDX491"></A> + <A NAME="IDX492"></A> + <A NAME="IDX493"></A> + +Adds rat-lines to the layout using the loaded netlist file (see the <EM>:rn</EM>, +section <A HREF="pcb.html#SEC36">User Commands</A>.). 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 <EM>warnColor</EM> until the next <EM>Notify()</EM> 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 <EM>SelectedRats</EM> +is passed as the argument, only those missing connections that might connect among +the selected pins and pads are drawn. +Default: + +<PRE> +None<Key>w: AddRats(AllRats) +!Shift<Key>w: AddRats(SelectedRats) +None<Key>o: DeleteRats(AllRats) AddRats(AllRats) +!Shift<Key>o: DeleteRats(SelectedRats) AddRats(SelectedRats) +</PRE> + +<A NAME="IDX494"></A> +<A NAME="IDX495"></A> +<A NAME="IDX496"></A> +<DT><SAMP>`Atomic(Save|Restore|Block|Close)'</SAMP> +<DD> +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. + +<A NAME="IDX497"></A> +<A NAME="IDX498"></A> +<A NAME="IDX499"></A> +<DT><SAMP>`Bell([-100..100])'</SAMP> +<DD> +Rings the bell of your display. If no value is passed the setting +of the resource <EM>volume</EM> will be used. + +<A NAME="IDX500"></A> +<A NAME="IDX501"></A> +<A NAME="IDX502"></A> +<A NAME="IDX503"></A> +<DT><SAMP>`ChangeDrillSize(Object, value)'</SAMP> +<DD> +<DT><SAMP>`ChangeDrillSize(SelectedPins|SelectedVias, value)'</SAMP> +<DD> +This action routine changes the drilling hole of pins and vias. +If <EM>value</EM> starts with + or -, then it adds (or subtracts) +<EM>value</EM> from the current hole diameter, otherwise it sets the +diameter to the value. +Default: + +<PRE> +!Mod1<Key>s: Change2ndSize(Object, +5) +!Mod1 Shift<Key>s: Change2ndSize(Object, -5) +</PRE> + +<A NAME="IDX504"></A> +<A NAME="IDX505"></A> +<A NAME="IDX506"></A> +<DT><SAMP>`ChangeHole(Object|SelectedVias)'</SAMP> +<DD> +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. + +<PRE> +!Ctrl<Key>h: ChangeHole(Object) +</PRE> + +<A NAME="IDX507"></A> +<A NAME="IDX508"></A> +<A NAME="IDX509"></A> +<A NAME="IDX510"></A> +<DT><SAMP>`ChangeName(Object)'</SAMP> +<DD> +<DT><SAMP>`ChangeName(Layer|Layout)'</SAMP> +<DD> +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 <EM>Display(Description|NameOnPCB|Value)</EM> for details. +Passing <EM>Layer</EM> changes the current layers name. +Default: + +<PRE> +None<Key>n: ChangeName(Object) +</PRE> + +<A NAME="IDX511"></A> +<A NAME="IDX512"></A> +<A NAME="IDX513"></A> +<A NAME="IDX514"></A> +<DT><SAMP>`ChangeOctagon(Object|SelectElements|SelectedPins|SelectedVias|Selected)'</SAMP> +<DD> +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: + +<PRE> +!Ctrl<Key>o: ChangeOctagon(Object) +</PRE> + +<A NAME="IDX515"></A> +<A NAME="IDX516"></A> +<A NAME="IDX517"></A> +<A NAME="IDX518"></A> +<DT><SAMP>`ChangeSize(Object, value)'</SAMP> +<DD> +<DT><SAMP>`ChangeSize(SelectedLines|SelectedPins|SelectedVias, value)'</SAMP> +<DD> +<DT><SAMP>`ChangeSize(SelectedPads|SelectedTexts|SelectedNames, value)'</SAMP> +<DD> +<DT><SAMP>`ChangeSize(SelectedElements, value)'</SAMP> +<DD> +To change the size of an object you have to bind these action to some +<CODE>X</CODE> event (or use :ChangeSize(...)). If <EM>value</EM> begins with +a + or - then the value will be added (or subtracted) from the current +size, otherwise the size is set equal to <EM>value</EM>. Range checking is +done to insure that none of the maximum/minimums of any size are violated. +If <EM>Object</EM> is passed then a single object at the cursor location is +changed. If any of the <EM>Selected</EM> 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: + +<PRE> +None<Key>s: ChangeSize(Object, +5) +!Shift<Key>s: ChangeSize(Object, -5) +</PRE> + +<A NAME="IDX519"></A> +<A NAME="IDX520"></A> +<A NAME="IDX521"></A> +<A NAME="IDX522"></A> +<DT><SAMP>`ChangeSquare(Object|SelectedElements|SelectedPins)'</SAMP> +<DD> +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. + +<PRE> +None<Key>q: ChangeSquare(Object) +</PRE> + +<A NAME="IDX523"></A> +<A NAME="IDX524"></A> +<A NAME="IDX525"></A> +<DT><SAMP>`Command()'</SAMP> +<DD> +Calling <EM>Command()</EM> 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 <EM>None<Key>Return</EM> +to confirm or <EM>None<Key>Escape</EM> to abort is entered. +Default: + +<PRE> +<Key>colon: Command() +</PRE> + +<A NAME="IDX526"></A> +<A NAME="IDX527"></A> +<A NAME="IDX528"></A> +<A NAME="IDX529"></A> +<A NAME="IDX530"></A> +<A NAME="IDX531"></A> +<A NAME="IDX532"></A> +<DT><SAMP>`Connection(Find)'</SAMP> +<DD> +<DT><SAMP>`Connection(ResetFoundLinesAndRectangles|ResetPinsViasAndPads|Reset)'</SAMP> +<DD> +The <EM>Connection()</EM> action is used to mark all connections from one pin, +line or via to others. +The <EM>ResetFoundLinesAndRectangles, ResetFoundPinsAndVias</EM> and +<EM>Reset</EM> 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 <EM>connectedColor</EM>. +See also, <EM>Display(Description|NameOnPCB|Value)</EM>. +Default: + +<PRE> +!Shift<Key>c: Connection(Reset) +None<Key>f: Connection(Find) +!Shift<Key>f: Connection(Reset) +</PRE> + +<A NAME="IDX533"></A> +<A NAME="IDX534"></A> +<A NAME="IDX535"></A> +<A NAME="IDX536"></A> +<DT><SAMP>`DeleteRats(AllRats|SelectedRats)'</SAMP> +<DD> +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: + +<PRE> +None<Key>e: DeleteRats(AllRats) +!Shift<Key>e: DeleteRats(SelectedRats) +</PRE> + +<A NAME="IDX537"></A> +<A NAME="IDX538"></A> +<A NAME="IDX539"></A> +<A NAME="IDX540"></A> +<A NAME="IDX541"></A> +<A NAME="IDX542"></A> +<A NAME="IDX543"></A> +<A NAME="IDX544"></A> +<A NAME="IDX545"></A> +<A NAME="IDX546"></A> +<A NAME="IDX547"></A> +<A NAME="IDX548"></A> +<A NAME="IDX549"></A> +<A NAME="IDX550"></A> +<DT><SAMP>`Display(Description|NameOnPCB|Value)'</SAMP> +<DD> +<DT><SAMP>`Display(Toggle45Degree|CycleClip)'</SAMP> +<DD> +<DT><SAMP>`Display(Grid|ToggleGrid)'</SAMP> +<DD> +<DT><SAMP>`Display(ToggleRubberBandMode)'</SAMP> +<DD> +<DT><SAMP>`Display(Center|ClearAndRedraw|Redraw)'</SAMP> +<DD> +<DT><SAMP>`Display(Pinout|PinOrPadName)'</SAMP> +<DD> +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 <EM>grid</EM> setting. Displaying the +grid itself may be switched on and off by <EM>Grid</EM> but only if +the distance between two pixels exceeds 1_DISTANCE pixels. +<CODE>Pcb</CODE> 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 <EM>Display()</EM> action selects which of the names is displayed. +It also controls which name will be affected by the <EM>ChangeName</EM> command. +If <EM>ToggleGrid</EM> is passed, <CODE>Pcb</CODE> 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 <EM>Pinout</EM> displays the pinout of the element at the current +cursor location whereas <EM>PinOrPadName</EM> 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 <EM>Mode</EM>. +Default: + +<PRE> +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) +</PRE> + +<A NAME="IDX551"></A> +<A NAME="IDX552"></A> +<A NAME="IDX553"></A> +<DT><SAMP>`DRC()'</SAMP> +<DD> +Initiates design rule checking of the entire layout. Must be repeated +until no errors are found. + +<A NAME="IDX554"></A> +<A NAME="IDX555"></A> +<A NAME="IDX556"></A> +<DT><SAMP>`EditLayerGroups()'</SAMP> +<DD> +Pops up a dialog box to edit the layergroup setting. The function is also +available from the <EM>Objects</EM> menu. +There are no defaults. + +<A NAME="IDX557"></A> +<A NAME="IDX558"></A> +<DT><SAMP>`Load(ElementToBuffer|Layout|LayoutToBuffer|Nelist)'</SAMP> +<DD> +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. +<EM>ElementToBuffer</EM> and <EM>LayoutToBuffer</EM> load the data into the +current buffer. +There are no defaults. + +<A NAME="IDX559"></A> +<A NAME="IDX560"></A> +<A NAME="IDX561"></A> +<DT><SAMP>`MarkCrosshair()'</SAMP> +<DD> +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: + +<PRE> +!Ctrl<key>m: MarkCrosshair() +</PRE> + +<A NAME="IDX562"></A> +<A NAME="IDX563"></A> +<A NAME="IDX564"></A> +<DT><SAMP>`Mode(Copy|InsertPoint|Line|Move|None|PasteBuffer|Polygon|Thermal)'</SAMP> +<DD> +<DT><SAMP>`Mode(Remove|Rectangle|RubberbandMove|Text|Via)'</SAMP> +<DD> +<DT><SAMP>`Mode(Cycle)'</SAMP> +<DD> +<DT><SAMP>`Mode(Notify)'</SAMP> +<DD> +<DT><SAMP>`Mode(Save|Restore)'</SAMP> +<DD> +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 <CODE>Pcb</CODE> is implemented by selecting a mode +and calling <EM>Mode(Notify)</EM>. The arguments <EM>Line</EM>, <EM>Polygon</EM>, +<EM>Rectangle</EM>, <EM>Text</EM> and <EM>Via</EM> are used to create the +appropriate object whenever <EM>Mode(Notify)</EM> is called. Some of them, +such as <EM>Polygon</EM>, need more than one call for one object to be created. +<EM>InsertPoint</EM> adds points to existing polygons or lines. +<EM>Save</EM> and <EM>Restore</EM> are used to temporarily save the mode, switch +to another one, call <EM>Mode(Notify)</EM> and restore the saved one. Have +a look at the application resource file for examples. +<EM>Copy</EM> and <EM>Move</EM> modes are used to change an object's location and, +optionally, to create a new one. The first call of <EM>Mode(Notify)</EM> attaches +the object at the pointer location to the crosshair whereas the second +one drops it to the layout. The <EM>rubberband</EM> version of move performs the +move while overriding the current rubberband mode. +Passing <EM>PasteBuffer</EM> attaches the contents of the currently selected +buffer to the crosshair. Each call to <EM>Mode(Notify)</EM> pastes this contents +to the layout. <EM>Mode(Cycle)</EM> cycles through the modes available in the +mode-button pallete. +<EM>Mode(None)</EM> switches all modes off. +Default: + +<PRE> +<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) +</PRE> + +<A NAME="IDX565"></A> +<A NAME="IDX566"></A> +<A NAME="IDX567"></A> +<DT><SAMP>`MovePointer(delta_x, delta_y)'</SAMP> +<DD> +With this function it is possible to move the crosshair cursor by using the +cursor keys. The <CODE>X</CODE> server's pointer follows because the necessary +events are generated by <CODE>Pcb</CODE>. All movements are performed with respect +to the currently set grid value. +Default: + +<PRE> +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) +</PRE> + +<A NAME="IDX568"></A> +<A NAME="IDX569"></A> +<A NAME="IDX570"></A> +<DT><SAMP>`MoveToCurrentLayer(Object|SelectedObjects)'</SAMP> +<DD> +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. + +<PRE> +None<Key>m: MoveToCurrentLayer(Object) +!Shift<Key>m: MoveToCurrentLayer(SelectedObjects) +</PRE> + +<A NAME="IDX571"></A> +<A NAME="IDX572"></A> +<A NAME="IDX573"></A> +<DT><SAMP>`New()'</SAMP> +<DD> +Clear the current layout and starts a new one after entering its name. +Refer to the resource <EM>backup</EM> for more information. +No defaults. + +<A NAME="IDX574"></A> +<A NAME="IDX575"></A> +<A NAME="IDX576"></A> +<A NAME="IDX577"></A> +<A NAME="IDX578"></A> +<A NAME="IDX579"></A> +<A NAME="IDX580"></A> +<DT><SAMP>`PasteBuffer(AddSelected|Clear|1..5)'</SAMP> +<DD> +<DT><SAMP>`PasteBuffer(Rotate, 1..3)'</SAMP> +<DD> +<DT><SAMP>`PasteBuffer(Convert)'</SAMP> +<DD> +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. +<EM>Rotate</EM> performs a number of 90 degree counter clockwise rotations +of the buffer contents. <EM>AddSelected</EM> as first argument copies all +selected and visible objects into the buffer. Passing <EM>Clear</EM> removes +all objects from the currently selected buffer. <EM>Convert</EM> causes +the contents of the buffer (lines, arc, vias) to be converted into an +element definition. Refer to section <A HREF="pcb.html#SEC28">Pastebuffer</A> +for examples. +Default: + +<PRE> +!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) +</PRE> + +<A NAME="IDX581"></A> +<A NAME="IDX582"></A> +<A NAME="IDX583"></A> +<A NAME="IDX584"></A> +<DT><SAMP>`Polygon((Close|PreviousPoint)'</SAMP> +<DD> +Polygons need a special action routine to make life easier. Calling +<EM>Polygon(PreviousPoint)</EM> resets the newly entered corner to the +previous one. The Undo action will call Polygon(PreviousPoint) +when appropriate to do so. <EM>Close</EM> 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: + +<PRE> +None<Key>p: Polygon(Close) +!Shift<Key>p: Polygon(Close) +</PRE> + +<A NAME="IDX585"></A> +<A NAME="IDX586"></A> +<A NAME="IDX587"></A> +<DT><SAMP>`Print()'</SAMP> +<DD> +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: + +<PRE> + POSIX (extention) 8.3 filename + --------------------------------------------- + *_componentmask.* cmsk.* + *_componentsilk.* cslk.* + *_soldermask.* smsk.* + *_soldersilk.* sslk.* + *_drill.* dril.* + *_groundplane.* gpl.* + *_group[1..8].* [..8].* +</PRE> + +The output may be sent to a postprocessor by starting the filename with the +<EM>pipe</EM> <CODE>("|")</CODE> character. Any <CODE>"%f"</CODE> in a command is replaced +with the current filename. The function is available from the <EM>file</EM> menu. +There are no defaults. + +<A NAME="IDX588"></A> +<A NAME="IDX589"></A> +<A NAME="IDX590"></A> +<DT><SAMP>`Quit()'</SAMP> +<DD> +Quits the application after confirming the operation. +Default: + +<PRE> +<Message>WM_PROTOCOLS: Quit() +</PRE> + +<A NAME="IDX591"></A> +<A NAME="IDX592"></A> +<A NAME="IDX593"></A> +<DT><SAMP>`Redo()'</SAMP> +<DD> +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: + +<PRE> +!Shift<Key>r: Redo() +</PRE> + +<A NAME="IDX594"></A> +<A NAME="IDX595"></A> +<A NAME="IDX596"></A> +<DT><SAMP>`RemoveSelected()'</SAMP> +<DD> +This routine removes all visible and selected objects. +There are no defaults. + +<A NAME="IDX597"></A> +<A NAME="IDX598"></A> +<A NAME="IDX599"></A> +<A NAME="IDX600"></A> +<DT><SAMP>`Report(Object|DrillReport)'</SAMP> +<DD> +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. + +<A NAME="IDX601"></A> +<A NAME="IDX602"></A> +<A NAME="IDX603"></A> +<DT><SAMP>`RouteStyle(1|2|3|4)'</SAMP> +<DD> +This routine copies the sizes corresponding to the numbered route style +into the active line thicknes, via diameter, and via drill size. +Defaults: + +<PRE> +!Ctrl<Key>1: RouteStyle(1) +... +!Ctrl<Key>4: RouteStyle(4) +</PRE> + +<A NAME="IDX604"></A> +<A NAME="IDX605"></A> +<A NAME="IDX606"></A> +<DT><SAMP>`Save(Layout|LayoutAs)'</SAMP> +<DD> +<DT><SAMP>`Save(AllConnections|AllUnusedPins|ElementConnections)'</SAMP> +<DD> +Passing <EM>Layout</EM> saves the layout using the file from which it was +loaded or, if it is a new layout, calls <EM>Save(LayoutAs)</EM> which queries +the user for a filename. +The values: <EM>AllConnections</EM>, <EM>AllUnusedPins</EM> and +<EM>ElementConnections</EM> 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. + +<A NAME="IDX607"></A> +<A NAME="IDX608"></A> +<A NAME="IDX609"></A> +<DT><SAMP>`Select(All|Block|Connection|ToggleObject)'</SAMP> +<DD> +<DT><SAMP>`Select(ElementByName|ObjectByName|PadByName|PinByName)'</SAMP> +<DD> +<DT><SAMP>`Select(TextByName|ViaByName)'</SAMP> +<DD> +Toggles either the selection flag of the object at the crosshair position +(<EM>ToggleObject</EM>) or selects all visible objects, all inside a +rectangle or all objects which have been found during the last connection +scan. The <EM>ByName</EM> functions use a regular expression search, +always case insensitive, to select the objects. +Default: + +<PRE> +None<Btn3Down>: Select(ToggleObject) +None<Btn3Down>,None<Btn3Motion>: See resource file - this is complex +</PRE> + +<A NAME="IDX610"></A> +<A NAME="IDX611"></A> +<A NAME="IDX612"></A> +<A NAME="IDX613"></A> +<A NAME="IDX614"></A> +<A NAME="IDX615"></A> +<A NAME="IDX616"></A> +<DT><SAMP>`SetValue(Grid|LineSize|TextScale|ViaDrillingHole|ViaSize|Zoom, value)'</SAMP> +<DD> +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 <EM>value</EM> 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 <EM>ChangeSize()</EM> and <EM>ChangeDrillSize()</EM> +to change existing objects. +Default: + +<PRE> +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) +</PRE> + +<A NAME="IDX617"></A> +<A NAME="IDX618"></A> +<A NAME="IDX619"></A> +<DT><SAMP>`SwapSides()'</SAMP> +<DD> +This routine changes the board side you are viewing. +Default: + +<PRE> +None<Key>Tab: SwapSides() +</PRE> + +<A NAME="IDX620"></A> +<A NAME="IDX621"></A> +<A NAME="IDX622"></A> +<DT><SAMP>`SwitchDrawingLayer(value)'</SAMP> +<DD> +Makes layer numer 1..8 the current one. +Default: + +<PRE> +None<Key>1: SwitchDrawingLayer(1) +... +None<Key>8: SwitchDrawingLayer(8) +</PRE> + +<A NAME="IDX623"></A> +<A NAME="IDX624"></A> +<A NAME="IDX625"></A> +<A NAME="IDX626"></A> +<DT><SAMP>`ToggleHideName(Object|SelectedElements)'</SAMP> +<DD> +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. + +<PRE> +None<Key>h: ToggleHideName(Object) +!Shift<Key>h: ToggleHideName(SelectedElements) +</PRE> + +<A NAME="IDX627"></A> +<A NAME="IDX628"></A> +<A NAME="IDX629"></A> +<DT><SAMP>`Undo()'</SAMP> +<DD> +<DT><SAMP>`Undo(ClearList)'</SAMP> +<DD> +The unlimited undo feature of <CODE>Pcb</CODE> allows you to recover +from most operations that materially affect you work. +Calling <EM>Undo()</EM> without any parameter recovers +from the last (non-undo) operation. <EM>ClearList</EM> is used to release the +allocated memory. <EM>ClearList</EM> is called whenever a new layout is started +or loaded. See also <EM>Redo</EM>. +Default: + +<PRE> +None<Key>u: Undo() +!Shift Ctrl<Key>u: Undo(ClearList) +</PRE> + +<A NAME="IDX630"></A> +<A NAME="IDX631"></A> +<A NAME="IDX632"></A> +<DT><SAMP>`Unselect(All|Block|Connection)'</SAMP> +<DD> +Unselects all visible objects, all inside a rectangle or all objects which +have been found during the last connection scan. +Default: + +<PRE> +!Shift <Btn3Down>: Mode(Save) Mode(None) Unselect(Block) +!Shift <Btn3Up>: Unselect(Block) Mode(Restore) +</PRE> + +</DL> + +<P> +<A NAME="IDX633"></A> +<A NAME="IDX634"></A> +<A NAME="IDX635"></A> + + +<H2><A NAME="SEC43" HREF="pcb_toc.html#TOC43">Default Translations</A></H2> +<P> +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 <A HREF="pcb.html#SEC42">Actions</A>. <CODE>Pcb</CODE> makes use of a nice <CODE>X11</CODE> +feature; calling several action routines for one event. + + +<DL COMPACT> + +<DT><SAMP>`None<Key>BackSpace:'</SAMP> +<DD> +<A NAME="IDX636"></A> + <A NAME="IDX637"></A> + <A NAME="IDX638"></A> + <A NAME="IDX639"></A> + +<DT><SAMP>`None<key>Delete:'</SAMP> +<DD> +<DT><SAMP>`!Shift<Key>BackSpace:'</SAMP> +<DD> +<DT><SAMP>`!Shift Ctrl<Btn1Down>:'</SAMP> +<DD> +The object at the cursor location is removed by <EM>None<Key>BackSpace</EM> or +<EM>Shift Ctrl<Btn1Down></EM> whereas <EM>Shift<Key>BackSpace</EM> also removes +all other objects that are fully-connected to the one at the cursor location. + +<A NAME="IDX640"></A> +<DT><SAMP>`!Mod1 Ctrl<Key>Left:'</SAMP> +<DD> +<DT><SAMP>`!Mod1 Ctrl<Key>Right:'</SAMP> +<DD> +<DT><SAMP>`!Mod1 Ctrl<Key>Up:'</SAMP> +<DD> +<DT><SAMP>`!Mod1 Ctrl<Key>Down:'</SAMP> +<DD> +Scroll one page in one of the four directions. + +<A NAME="IDX641"></A> +<DT><SAMP>`None<Key>Left:, !Shift<Key>Left:'</SAMP> +<DD> +<DT><SAMP>`None<Key>Right:, !Shift<Key>Right:'</SAMP> +<DD> +<DT><SAMP>`None<Key>Up:, !Shift<Key>Up:'</SAMP> +<DD> +<DT><SAMP>`None<Key>Down:, !Shift<Key>Down:'</SAMP> +<DD> +Move crosshair either one or ten points in grid. + +<A NAME="IDX642"></A> +<DT><SAMP>`None<Key>Return:'</SAMP> +<DD> +Finished user input, selects the 'default' button of dialogs. + +<A NAME="IDX643"></A> +<DT><SAMP>`None<Key>Escape:'</SAMP> +<DD> +<EM>Mode(Reset)</EM>, aborts user input, selects the 'abort' button of +dialogs or resets all modes. + +<A NAME="IDX644"></A> +<A NAME="IDX645"></A> +<A NAME="IDX646"></A> +<A NAME="IDX647"></A> +<A NAME="IDX648"></A> +<DT><SAMP>`None<Btn2Down>, Btn2<Motion>, None<Btn2Up>:'</SAMP> +<DD> +<DT><SAMP>`!Mod1<Btn2Down>, Btn2<Motion>, !Mod1<Btn2Up>:'</SAMP> +<DD> +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. + +</DL> + +<P> +<A NAME="IDX649"></A> +<A NAME="IDX650"></A> + + +<H1><A NAME="SEC44" HREF="pcb_toc.html#TOC44">File Formats</A></H1> +<P> +All files used by <CODE>Pcb</CODE> are read from the standard output of a command +or written to the standard input of one as plain seven bit <CODE>ASCII</CODE>. 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 <TT>`example/*'</TT> and +<TT>`default_font'</TT> which are shipped with <CODE>Pcb</CODE>. +For an overview refer to section <A HREF="pcb.html#SEC3">Introduction</A>. + + +<P> +<A NAME="IDX651"></A> +<A NAME="IDX652"></A> +<A NAME="IDX653"></A> +<A NAME="IDX654"></A> +<A NAME="IDX655"></A> +<A NAME="IDX656"></A> +The following sections provide the necessary information about the syntax of +the files. +Netlist files are not created by <CODE>Pcb</CODE>, but it does use them. For information +on the format of a netlist file see the <EM>:rn</EM>, +section <A HREF="pcb.html#SEC36">User Commands</A>. 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 +<EM>elementCommand</EM>, <EM>fileCommand</EM>, <EM>fontCommand</EM>, +<EM>libraryCommand</EM>, <EM>libraryContentsCommand</EM> and <EM>saveCommand</EM>. +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. + + +<P> +One thing common to all files is they may include comments, newlines, +and carriage returns at any place except within quoted strings. + + + +<UL> +<LI><A HREF="pcb.html#SEC45">Basic Types</A>: Basic types used by all data files. +<LI><A HREF="pcb.html#SEC46">Layout File</A> +<LI><A HREF="pcb.html#SEC47">Element File</A> +<LI><A HREF="pcb.html#SEC48">Font File</A> +<LI><A HREF="pcb.html#SEC49">Library Contents File</A> +<LI><A HREF="pcb.html#SEC50">Library File</A> +</UL> + +<P> +<A NAME="IDX657"></A> +<A NAME="IDX658"></A> + + +<H2><A NAME="SEC45" HREF="pcb_toc.html#TOC45">Basic Types</A></H2> +<P> +Here are the basic type definitions used in the other sections of this +chapter. + + + +<PRE> +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] +</PRE> + +<P> +<A NAME="IDX659"></A> +<A NAME="IDX660"></A> +<A NAME="IDX661"></A> + + +<H2><A NAME="SEC46" HREF="pcb_toc.html#TOC46">Layout File Format</A></H2> +<P> +The layout file describes a complete layout including symbols, vias, +elements and layers with lines, rectangles and text. This is the most +complex file of all. + + + +<PRE> +File = Header Font PCBData +Header = PCBName [GridData] [CursorData] [PCBFlags] [Groups] +PCBName = "PCB(" Name Width Height ")" +GridData = "Grid(" Grid GridOffsetX GridOffsetY ")" +CursorData = "Cursor(" X Y zoom ")" +PCBFlags = "Flags(" Flags ")" +Groups = "Groups(" GroupString ")" +Styles = "Styles(" StyleString ")" +Font = {FontData}... +FontData = {Symbol}... +Symbol = "Symbol(" SymbolID Spacing ")" + "(" {SymbolData}... ")" +SymbolData = {SymbolLine}... +SymbolLine = "SymbolLine(" X1 Y1 X2 Y2 Thickness ")" +PCBData = {Via | Layer | Element}... + +Via = "Via(" X Y Thickness DrillingHole Name Flags ")" + +Element = "Element(" Flags Description LayoutName Value \ + TextX TextY direction scale TextFlags")" + "(" {ElementData}... [Mark] ")" +ElementData = {ElementLine | Pad | Pin | ElementArc }... +ElementArc = "ElementArc(" X Y Width Height + StartAngle DeltaAngle Thickness ")" +ElementLine = "ElementLine(" X1 Y1 X2 Y2 Thickness ")" +Mark = "Mark(" X Y ")" +Pad = "Pad(" X1 Y1 X2 Y2 Thickness Name PinNumber Flags")" +Pin = "Pin(" X Y Thickness DrillingHole Name PinNumber Flags ")" + +Layer = "Layer(" LayerNumber Name ")" + "(" {LayerData}... ")" +LayerData = {Line | Polygon | Text}... +Line = "Line(" X1 Y1 X2 Y2 Thickness Flags")" +Arc = "Arc(" X Y Width Height StartAngle DeltaAngle Thickness Flags")" +Polygon = "Polygon(" Flags ")" \ + "(" {Points}... ")" +Points = "(" X Y ")" +Text = "Text(" X Y direction scale TextData Flags")" +</PRE> + +<DL COMPACT> + +<DT><SAMP>`PCBName'</SAMP> +<DD> +is used to define the layout's name which is independent of its filename. +It is displayed in the lower left corner of the main window. + +<DT><SAMP>`GridData'</SAMP> +<DD> +is optional and is used to save the grid setting and offset which were set +at the time the layout was saved. + +<DT><SAMP>`CursorData'</SAMP> +<DD> +also is an optional parameter to save the last cursor location and zoom value. +The real zoom factor is calculated by scale = 1:(2 power value). + +<DT><SAMP>`PCBFlags'</SAMP> +<DD> +determine how to draw lines and which name of the elements should be +displayed. + +<PRE> + bit 4: do rubberband moves and rotates if set + bit 5: display description of elements if set + bit 6: display unique name of an element if set + bit 7: use absolute grid if set + bit 8: don't clip lines to 45 degrees +</PRE> + +<DT><SAMP>`Groups'</SAMP> +<DD> +Layergroups are saved by using this optional parameter. The only way of +changing them is to use an editor and alter the appropriate line. The +characters <EM>c,s</EM> idenify the component- and solder-side for SMD +objects. + +<DT><SAMP>`Symbol'</SAMP> +<DD> +See the description of font files in this chapter. + +<DT><SAMP>`Via'</SAMP> +<DD> +Vias are always connected to all layers which also means vias are one +logical level ahead of layers. Vias are defined by position, size, name and +by some flags. + +<PRE> + bit 0: always clear + bit 1: always set + bit 2: set if via was found during a connection search + bit 4: set if via is a hole (has no copper annulus) + bit 5: display the vias name + bit 6: via has been selected + bit 12: set if via has octagonal shape + Other bits have special meaning and should not be changed + by the user. See const.h for more information +</PRE> + +<DT><SAMP>`Element'</SAMP> +<DD> +See the description of element files in this chapter. + +<DT><SAMP>`Layer'</SAMP> +<DD> +A layer is the central object from the user's point of view. It holds all +connections and all text objects. Up to 8 may be used individually. +Its number, starting with one, and its name are read as arguments. + +<DL COMPACT> + +<DT><SAMP>`Line'</SAMP> +<DD> +All lines are identified by their start and endpoints together with their +thickness and some flags. They have to fit a 45 degree scheme. + +<PRE> + bit 2: set if line was found during a connection search + bit 4: line is a rat-line + bit 6: line has been selected +</PRE> + +<DT><SAMP>`Polygon'</SAMP> +<DD> +used to fill a larger area with <SAMP>`copper'</SAMP>. The coordinates specify the +corners. The flags are: + +<PRE> + bit 2: set if polygon was found during a connection search + bit 4: polygon is a 1.5 style polygon that automatically clears pins + bit 6: polygon has been selected +</PRE> + +<DT><SAMP>`Text'</SAMP> +<DD> +You may use text objects to add information to your board. An example would +be naming a connector or marking pin one of it. The position marks the +lower left corner of the string which is also a 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. + +<PRE> + bit 6: the text has been selected + bit 7: the text is on the solder (back) side of the board + bit 10: the text is on the silkscreen layer +</PRE> + +</DL> + +</DL> + +<P> +<A NAME="IDX662"></A> +<A NAME="IDX663"></A> +<A NAME="IDX664"></A> + + +<H2><A NAME="SEC47" HREF="pcb_toc.html#TOC47">Element File Format</A></H2> +<P> +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 <CODE>m4</CODE> allows you to define pin names as macros in one file and +include a package description file which evaluates the macros. See +the resource <EM>elementCommand</EM> 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. + + +<P> +Doing things this way makes it possible to use one package file for several +different circuits. See the sample files <TT>`dil*'</TT>. + + +<P> +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. + + + +<PRE> +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 ")" +</PRE> + +<DL COMPACT> + +<DT><SAMP>`Element'</SAMP> +<DD> +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. + +<DL COMPACT> + +<DT><SAMP>`Flags'</SAMP> +<DD> +The flag field determines the state of an element. +The bit values are: + +<PRE> + bit 4: the element name is hidden + bit 6: element has been selected + bit 7: element is located on the solder side +</PRE> + +<DT><SAMP>`TextFlags'</SAMP> +<DD> +<DT><SAMP>`scale'</SAMP> +<DD> +<DT><SAMP>`direction'</SAMP> +<DD> +See the description of text object earlier in this chapter. + +<DT><SAMP>`ElementLine'</SAMP> +<DD> +A line is defined by its start and end points and by its size, or width. + +<DT><SAMP>`ElementArc'</SAMP> +<DD> +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. + +<DT><SAMP>`Mark'</SAMP> +<DD> +is just a hint to make positioning easier. The crosshair will be positioned +here. Its center is passed as the two arguments. + +<DT><SAMP>`Pad'</SAMP> +<DD> +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. + +<PRE> + 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 +</PRE> + +<DT><SAMP>`Pin'</SAMP> +<DD> +A pin is very similar to a via except it may not be disconnected from +its element. + +<PRE> + 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 +</PRE> + +</DL> + +</DL> + +<P> +<A NAME="IDX665"></A> +<A NAME="IDX666"></A> +<A NAME="IDX667"></A> + + +<H2><A NAME="SEC48" HREF="pcb_toc.html#TOC48">Font File Format</A></H2> +<P> +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 <TT>`default_font'</TT> +as an example. + + +<P> +The lowest x and y coordinates of all lines of a font are transformed to (0,0). + + + +<PRE> +File = Font +Font = {FontData}... +FontData = {Symbol}... +Symbol = "Symbol(" SymbolID FontPosition ")" + "(" {SymbolData}... ")" +SymbolData = {SymbolLine}... +</PRE> + +<DL COMPACT> + +<DT><SAMP>`Symbol'</SAMP> +<DD> +The two arguments are the <CODE>ASCII</CODE> code of the symbol and its distance to +the next symbol. Undefined symbols are drawn as filled rectangles. +The <CODE>ASCII</CODE> code may be passed as a character constant or as a hexadecimal +value. + +<DL COMPACT> + +<DT><SAMP>`SymbolLine'</SAMP> +<DD> +The symbol data itself is made up of several entries +of type <EM>SymbolLine</EM>. +</DL> + +</DL> + +<P> +<A NAME="IDX668"></A> +<A NAME="IDX669"></A> +<A NAME="IDX670"></A> + + +<H2><A NAME="SEC49" HREF="pcb_toc.html#TOC49">Library Contents File Format</A></H2> +<P> +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 +<CODE>m4</CODE>. 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: + + + +<PRE> +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"> +</PRE> + +<P> +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 <EM>libraryContentsCommand</EM> resource. + + +<P> +The menu entry will appear in the selection menu at the top and of the +library window. + + +<P> +<A NAME="IDX671"></A> +<A NAME="IDX672"></A> +<A NAME="IDX673"></A> + + +<H2><A NAME="SEC50" HREF="pcb_toc.html#TOC50">Library File Format</A></H2> +<P> +This section provides an overview about the existing <CODE>m4</CODE> 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. + + +<P> +The macro file entry: + +<PRE> +define(`Description_43256_dil', `SRAM 32Kx8') +define(`Param1_43256_dil', 28) +define(`Param2_43256_dil', 600) +define(`PinList_43256_dil', ``pin1', `pin2', ...') +</PRE> + +<P> +And the list file: + +<PRE> +43256_dil:N:43256:62256 +</PRE> + +<P> +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. + + +<P> +It is very important to select a unique identifier for each macro. In +the example this would be <EM>43256_dil</EM> which is also the templates name. +It is required by some low-level macros that +<EM>Description_, Param1_, Param2_</EM> and <EM>PinList_</EM> are prepended. + + +<P> +The list file uses a syntax: + +<PRE> +template:package:value[:more values] +</PRE> + +<P> +This means that the shown example will create two element entries with the +sam package and pinout but with different names. + + +<P> +A number of packages are defined in <TT>`common.m4'</TT>. Included are: + + + +<PRE> +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 +</PRE> + +<P> +If you are going to start your own library please take care about <CODE>m4</CODE> +functions. Be aware of quoting and so on and, most important check your +additional entry by calling the macro: + + + +<PRE> +CreateObject(`template', `value', `package suffix') +</PRE> + +<P> +If quoting is incorrect an endless loop may occur (broken by a out-of-memory +message). + + +<P> +The scripts in the <TT>`lib'</TT> directory handle the creation of libraries +as well as of their contents files. Querying is also supported. + + +<P> +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. + + + + +<H1><A NAME="SEC51" HREF="pcb_toc.html#TOC51">Installation and Troubleshooting</A></H1> +<P> +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. + + + +<UL> +<LI><A HREF="pcb.html#SEC52">compiling</A>: Compiling and installing. +<LI><A HREF="pcb.html#SEC56">problems</A>: Troubleshooting. +</UL> + +<P> +<A NAME="IDX674"></A> +<A NAME="IDX675"></A> + + +<H2><A NAME="SEC52" HREF="pcb_toc.html#TOC52">Compiling and Installing</A></H2> +<P> +This section covers the steps which are necessary to compile the package. + + + +<UL> +<LI><A HREF="pcb.html#SEC53">config.h</A>: Editing <TT>`config.h'</TT> options. +<LI><A HREF="pcb.html#SEC54">manuals</A>: Creating the man page, info file and this manual. +<LI><A HREF="pcb.html#SEC55">make</A>: Creating the <TT>`Makefile'</TT>, compiling and installing. +</UL> + +<P> +<A NAME="IDX676"></A> +<A NAME="IDX677"></A> +<A NAME="IDX678"></A> + + +<H3><A NAME="SEC53" HREF="pcb_toc.html#TOC53">Editing config.h</A></H3> +<P> +Most <CODE>X11</CODE> related options are automatically covered by <CODE>imake</CODE> +which is called from <CODE>xmkmf</CODE>. The ones special to <CODE>Pcb</CODE> +have to be edited in <TT>`config.h'</TT>. +In order of appearance: + + +<DL COMPACT> + +<DT><SAMP>`INFOLIBDIR'</SAMP> +<DD> +<A NAME="IDX679"></A> + +must be set to the directory where your GNU info files are located. + +<A NAME="IDX680"></A> +<DT><SAMP>`/usr/X11R6/lib/X11/pcb'</SAMP> +<DD> +is the path of a directory where the font files will be installed. + +<A NAME="IDX681"></A> +<DT><SAMP>`DEFAULTFONT'</SAMP> +<DD> +the name of the default font file. + +<A NAME="IDX682"></A> +<DT><SAMP>`DEFAULTLIBRARY'</SAMP> +<DD> +the name of the default library. + +<A NAME="IDX683"></A> +<DT><SAMP>`gm4'</SAMP> +<DD> +the name of GNUs m4 version. + +<A NAME="IDX684"></A> +<DT><SAMP>`Mod1'</SAMP> +<DD> +If your window manager has already bound <EM>Mod1</EM> together with some +function keys you may want to change this setting. This is true for HP-VUE. + +<A NAME="IDX685"></A> +<DT><SAMP>`EXTRA_INCLUDES'</SAMP> +<DD> +Some systems do not have the Athena Widget include files in their normal +place as configured by <CODE>X11</CODE>s config files. Define this as follows: + +<PRE> + EXTRA_INCLUDES = -I/usr/openwin/share/include +</PRE> + +This is probably true for Suns which use <CODE>OpenWindows</CODE>. + +<A NAME="IDX686"></A> +<DT><SAMP>`PATCHES'</SAMP> +<DD> +This symbol is passed to the compiler. Use it to define additional compiler +flags. +Add the <EM>-DNEED_STRDUP</EM> flag, if your system does not have a strdup() +library function. + +<A NAME="IDX687"></A> +<DT><SAMP>`HAS_REGEX'</SAMP> +<DD> +Set to <EM>-DHAS_REGEX</EM> if your system supports regular expressions. +This enables the actions <EM>Select(*ByName)</EM>. + +<A NAME="IDX688"></A> +<A NAME="IDX689"></A> +<DT><SAMP>`EXITCALL'</SAMP> +<DD> +The symbol <EM>EXITCALL</EM> should be defined according to the +<EM>call on exit</EM> functions supported by your system. There are three +choices: + +<PRE> + 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 +</PRE> + +Please check your manpages for details. + +<A NAME="IDX690"></A> +<DT><SAMP>`SYS_LIBRARIES'</SAMP> +<DD> +This symbol is used to pass additional libraries to the linker. The only +additional libraries which are used are the math and lex library. + +</DL> + +<P> +If you have to make system dependent changes please include them into a +<EM>#ifdef Architecture</EM> ... <EM>#endif</EM> construct and mail a copy to +the author (Thomas.Nau@rz.uni-ulm.de). + + +<P> +Now run <CODE>xmkmf -a</CODE> which creates the <TT>`Makefiles'</TT> and runs +<CODE>make depend</CODE>. 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. + + +<P> +<A NAME="IDX691"></A> +<A NAME="IDX692"></A> +<A NAME="IDX693"></A> +<A NAME="IDX694"></A> + + +<H3><A NAME="SEC54" HREF="pcb_toc.html#TOC54">Manuals</A></H3> +<P> +After <CODE>xmkmf -a</CODE> has created the new <TT>`Makefile'</TT> you are able to +create the manpages, the application resource, the info file, the +<CODE>TeX</CODE> output and a reference card by executing + +<PRE> + (cd doc; make) + (cd src; make Pcb.ad) +</PRE> + +<P> +You'll need <CODE>TeX</CODE>, <CODE>texindex</CODE> and, if you want <CODE>PostScript</CODE>, +<CODE>dvips</CODE> to build the manuals. Preformatted documentation for the +default configuration may be found in the <TT>`./doc.ps'</TT> directory. +A simple <EM>make</EM> builds everything. +Generate a printed copy to make your life easier. +<CODE>TeX-3.0</CODE> failed, <CODE>TeX-3.14</CODE> worked just fine. + + +<P> +<A NAME="IDX695"></A> + + +<H3><A NAME="SEC55" HREF="pcb_toc.html#TOC55">Compiling the Package</A></H3> +<P> +After reaching this point, it is time for <CODE>make</CODE>. It should build +everything without any errors. +If it doesn't refer to section <A HREF="pcb.html#SEC56">Troubleshooting</A>. + + +<P> +You have to be root to install the package or at least a user with +the appropriate priveleges in some <CODE>X11</CODE> directories. Set the umask to +<EM>022</EM> or else some files will not be found because the directory isn't +world readable. + + +<P> +If you do not have the appropriate permissions you should run +<TT>`./pcbtest.sh'</TT> in the <TT>`src'</TT> directory to run <CODE>Pcb</CODE> from +the installation directory. + + +<P> +<CODE>make install</CODE> and <CODE>make install.man</CODE> install the program, +the fonts, the application default resource file, all element and package +data as well as the manpage into the <CODE>X11</CODE> directories. +<CODE>make install.info</CODE> does the same for the <CODE>GNU</CODE> info file. + + +<P> +<A NAME="IDX696"></A> +<A NAME="IDX697"></A> + + +<H2><A NAME="SEC56" HREF="pcb_toc.html#TOC56">Troubleshooting</A></H2> +<P> +There are some known problems. Most of them are related to +missing parts of a standard <CODE>X11</CODE> distribution. Some others are caused by +third party applications such as <CODE>X</CODE> 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 <A HREF="pcb.html#SEC64">Problems related to X11</A>. + + +<P> +By the way, you <CODE>MUST HAVE AN ANSI COMPILER</CODE> to make <CODE>Pcb</CODE> work. + + +<P> +If the shell script <CODE>create_sed_script.sh</CODE> fails with an error +of <CODE>awk</CODE> check your system for <CODE>nawk</CODE> or get the <CODE>GNU gawk</CODE>. +See the script for details. + + +<P> +Another source of problems are older versions of <CODE>flex</CODE> and <CODE>bison</CODE>. +<CODE>Pcb</CODE> definitely works with <CODE>flex-2.4.7</CODE> and <CODE>bison-1.22</CODE> or +later. The problems will result in a <EM>syntax error</EM> while parsing files. +You will have to add <EM>-lfl</EM> to the SYS_LIBRARIES identifier in +<TT>`Imakefile'</TT>. See also, section <A HREF="pcb.html#SEC63">FreeBSD and NetBSD</A>. + + +<P> +The following list gives you just an idea because I'm not able to test +all <CODE>Pcb</CODE> releases on all platforms. + + + +<UL> +<LI><A HREF="pcb.html#SEC57">HP</A>: Hewlett-Packard series 700 and 800 running HP-UX 10.* +<LI><A HREF="pcb.html#SEC58">Sun</A>: Sun, Solaris 2.5 +<LI><A HREF="pcb.html#SEC59">SGI</A>: SGI, IRIX 5.3 and 6.* +<LI><A HREF="pcb.html#SEC60">DEC Alpha</A>: DEC Alpha, DEC UNIX 3.2c and 4.0 +<LI><A HREF="pcb.html#SEC61">SCO</A>: SCO Unix ODT 3.0, PC hardware +<LI><A HREF="pcb.html#SEC62">Linux</A>: Linux 0.99pl14 and later +<LI><A HREF="pcb.html#SEC63">FreeBSD</A>: FreeBSD, NetBSD ... +<LI><A HREF="pcb.html#SEC64">X11</A>: Refers to <CODE>X11R4</CODE>, <CODE>X11R5</CODE>, and <CODE>OpenWindows</CODE> +<LI><A HREF="pcb.html#SEC65">TeX and Manuals</A>: Problems creating the <TT>`pcb.dvi'</TT> +</UL> + +<P> +<A NAME="IDX698"></A> +<A NAME="IDX699"></A> +<A NAME="IDX700"></A> + + +<H3><A NAME="SEC57" HREF="pcb_toc.html#TOC57">HP Series 700 and 800</A></H3> +<P> +You have to install several <CODE>X11</CODE> tools (<CODE>imake</CODE>) and include files +or, better, install a complete <CODE>X11R5</CODE> 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 <CODE>ANSI</CODE> compiler with the normal operating +system release so you have to buy one or use <CODE>GCC</CODE>. +Some of the tools are available as patches. + + +<P> +In addition, <CODE>Pcb</CODE> has been successfully tested on these platforms with +<CODE>HPUX 9.*, 10.*</CODE> running self-compiled <CODE>X11R5</CODE>. + + +<P> +<A NAME="IDX701"></A> +<A NAME="IDX702"></A> +<A NAME="IDX703"></A> +<A NAME="IDX704"></A> + + +<H3><A NAME="SEC58" HREF="pcb_toc.html#TOC58">Sun SPARC architecture</A></H3> +<P> +There are no known problems with Sun machines if they use <CODE>X11R5</CODE> instead +of <CODE>OpenWindows</CODE>. <CODE>Pcb</CODE> compiled successfully with all kinds of +SPARCstations <CODE>Solaris-2.[345]</CODE>. + + +<P> +For problems with <CODE>OpenWindows</CODE> refer to section <A HREF="pcb.html#SEC64">Problems related to X11</A>. + + +<P> +If <CODE>xmkmf</CODE> is missing, try + +<PRE> + /usr/openwin/bin/imake -DUseInstalled -I/usr/openwin/lib/config + make Makefile + make includes + make depend +</PRE> + +<P> +instead. I got it compiled but the linker complained about missing symbols. +The problem may be related to the mixed <CODE>OpenWindows</CODE> - <CODE>X11R5</CODE> +environment which is installed on the test machine. +Anyway the code was executable and I haven't got a core yet. + + +<P> +<A NAME="IDX705"></A> +<A NAME="IDX706"></A> +<A NAME="IDX707"></A> + + +<H3><A NAME="SEC59" HREF="pcb_toc.html#TOC59">Silicon Graphics</A></H3> +<P> +<CODE>Pcb</CODE> has been tested on some boxes running either <CODE>IRIX-4.0.5</CODE> or +<CODE>IRIX-5.3</CODE>. The former one uses a <CODE>X11R4</CODE> server. +There are no problems except some additionally needed +compiler flags. For known problems +with <CODE>X11R4</CODE>, see section <A HREF="pcb.html#SEC64">Problems related to X11</A>. Check <TT>`Imakefile'</TT>, too. + + +<P> +<A NAME="IDX708"></A> +<A NAME="IDX709"></A> +<A NAME="IDX710"></A> + + +<H3><A NAME="SEC60" HREF="pcb_toc.html#TOC60">DEC Alpha</A></H3> +<P> +<CODE>Pcb</CODE> compiled and runs without problems on <CODE>DEC UNIX V3.2c</CODE> if you +do the following instead of calling <CODE>xmkmf -a</CODE>: + +<PRE> + xmkmf + make Makefiles + make includes + make depend +</PRE> + +<P> +<A NAME="IDX711"></A> +<A NAME="IDX712"></A> +<A NAME="IDX713"></A> + + +<H3><A NAME="SEC61" HREF="pcb_toc.html#TOC61">SCO Unix</A></H3> +<P> +John DuBois <spcecdt@deeptht.armory.com> wrote: + +<PRE> +<CODE>SCO-ODT-3.0</CODE> 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... +</PRE> + +<P> +I'll see what I am able to do as soon as I have access to an <CODE>SCO</CODE> system. + + +<P> +<A NAME="IDX714"></A> +<A NAME="IDX715"></A> +<A NAME="IDX716"></A> + + +<H3><A NAME="SEC62" HREF="pcb_toc.html#TOC62">Linux</A></H3> +<P> +Since the <CODE>X11</CODE> version of <CODE>Pcb</CODE> has been developed on a Linux +system here are no known problems. + + +<P> +<A NAME="IDX717"></A> +<A NAME="IDX718"></A> +<A NAME="IDX719"></A> + + +<H3><A NAME="SEC63" HREF="pcb_toc.html#TOC63">FreeBSD and NetBSD</A></H3> +<P> +If <CODE>Pcb</CODE> complains about syntax errors even in the demo files get +rid of your <CODE>lex</CODE> and <CODE>yacc</CODE> implementation. Replace them by +<CODE>GNU flex</CODE> and <CODE>bison</CODE>. Don't forget to change the SYS_LIBRARIES +in <TT>`Imakefile'</TT> from <EM>-ll</EM> to <EM>-lfl</EM>. You also need to define: + +<PRE> + YACC = bison -y + LEX = flex +</PRE> + +<P> +<A NAME="IDX720"></A> + + +<H3><A NAME="SEC64" HREF="pcb_toc.html#TOC64">Problems related to X11</A></H3> +<P> +There are a some problems related to <CODE>X11R4</CODE> or systems derived from +<CODE>X11</CODE> such as <CODE>OpenWindows</CODE>. See section <A HREF="pcb.html#SEC58">Sun SPARC architecture</A>. You at least have to change +all occurances of <EM>baseTranslations</EM> in the resource files to +<EM>translations</EM> if you are using a <CODE>X11R4</CODE> server. Look at the +<CODE>X11R5</CODE> <EM>Intrinsics</EM> manual for details. + + +<P> +The panner widget (print dialog box) appears only in release <CODE>X11R5</CODE> and +later. It really simplifies adjusting the offsets. +With earlier releases the printout will always appear in the center of the +page. + + +<P> +You may have some problems in a mixed <CODE>X11-OpenWindows</CODE> +environment. +If you want to try it anyway you have to add an additional path for +include files and define another symbol in <TT>`Imakefile'</TT>, + +<PRE> + EXTRA_INCLUDES = -I/usr/openwin/include +</PRE> + +<P> +<CODE>Pcb</CODE> has been tested successfully with <CODE>X11R6</CODE> under Linux 1.1.59 +and later. + + +<P> +<A NAME="IDX721"></A> + + +<H3><A NAME="SEC65" HREF="pcb_toc.html#TOC65">Problems related to TeX</A></H3> +<P> +If your <CODE>TeX</CODE> installation complains about a missing <TT>`texinfo.tex'</TT> +file copy the one included in this release (directory <TT>`doc'</TT> +to your <CODE>TeX</CODE> macro directory. +Note, there are probably newer versions of this file available from some +FTP sites. +<CODE>TeX-3.0</CODE> failed, <CODE>TeX-3.14</CODE> worked just fine. Check our FTP server +<EM>ftp.uni-ulm.de</EM> for ready-to-print versions of the manuals. + + + + +<H1><A NAME="SEC66" HREF="pcb_toc.html#TOC66">Index of Resources</A></H1> +<P> +Jump to: +<A HREF="#vindex_/">/</A> +- +<A HREF="#vindex_a">a</A> +- +<A HREF="#vindex_b">b</A> +- +<A HREF="#vindex_c">c</A> +- +<A HREF="#vindex_d">d</A> +- +<A HREF="#vindex_e">e</A> +- +<A HREF="#vindex_f">f</A> +- +<A HREF="#vindex_g">g</A> +- +<A HREF="#vindex_h">h</A> +- +<A HREF="#vindex_i">i</A> +- +<A HREF="#vindex_l">l</A> +- +<A HREF="#vindex_m">m</A> +- +<A HREF="#vindex_o">o</A> +- +<A HREF="#vindex_p">p</A> +- +<A HREF="#vindex_r">r</A> +- +<A HREF="#vindex_s">s</A> +- +<A HREF="#vindex_t">t</A> +- +<A HREF="#vindex_u">u</A> +- +<A HREF="#vindex_v">v</A> +- +<A HREF="#vindex_w">w</A> +- +<A HREF="#vindex_z">z</A> +<P> +<H2><A NAME="vindex_/">/</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX680">/usr/X11R6/lib/X11/pcb</A> +</DIR> +<H2><A NAME="vindex_a">a</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX283">absoluteGrid</A> +<LI><A HREF="pcb.html#IDX285">alignmentDistance</A> +<LI><A HREF="pcb.html#IDX160">allDirectionLines</A>, <A HREF="pcb.html#IDX287">allDirectionLines</A> +</DIR> +<H2><A NAME="vindex_b">b</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX165">backupInterval</A>, <A HREF="pcb.html#IDX290">backupInterval</A> +<LI><A HREF="pcb.html#IDX292">bloat</A> +</DIR> +<H2><A NAME="vindex_c">c</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX168">charactersPerLine</A>, <A HREF="pcb.html#IDX295">charactersPerLine</A> +<LI><A HREF="pcb.html#IDX299">connectedColor</A> +<LI><A HREF="pcb.html#IDX302">crosshairColor</A> +</DIR> +<H2><A NAME="vindex_d">d</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX174">default font</A> +<LI><A HREF="pcb.html#IDX681">DEFAULTFONT</A> +<LI><A HREF="pcb.html#IDX682">DEFAULTLIBRARY</A> +</DIR> +<H2><A NAME="vindex_e">e</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX305">elementColor</A> +<LI><A HREF="pcb.html#IDX178">elementCommand</A>, <A HREF="pcb.html#IDX309">elementCommand</A>, <A HREF="pcb.html#IDX651">elementCommand</A> +<LI><A HREF="pcb.html#IDX372">elementContentsCommand</A> +<LI><A HREF="pcb.html#IDX316">elementPath</A> +<LI><A HREF="pcb.html#IDX306">elementSelectedColor</A> +<LI><A HREF="pcb.html#IDX688">EXITCALL</A>, <A HREF="pcb.html#IDX689">EXITCALL</A> +<LI><A HREF="pcb.html#IDX685">EXTRA_INCLUDES</A> +</DIR> +<H2><A NAME="vindex_f">f</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX185">fileCommand</A>, <A HREF="pcb.html#IDX321">fileCommand</A>, <A HREF="pcb.html#IDX652">fileCommand</A> +<LI><A HREF="pcb.html#IDX328">filePath</A> +<LI><A HREF="pcb.html#IDX192">fontCommand</A>, <A HREF="pcb.html#IDX333">fontCommand</A>, <A HREF="pcb.html#IDX653">fontCommand</A> +<LI><A HREF="pcb.html#IDX173">fontFile</A>, <A HREF="pcb.html#IDX341">fontFile</A> +<LI><A HREF="pcb.html#IDX344">fontPath</A> +</DIR> +<H2><A NAME="vindex_g">g</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX683">gm4</A> +<LI><A HREF="pcb.html#IDX350">grid</A> +<LI><A HREF="pcb.html#IDX353">gridColor</A> +</DIR> +<H2><A NAME="vindex_h">h</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX687">HAS_REGEX</A> +</DIR> +<H2><A NAME="vindex_i">i</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX679">INFOLIBDIR</A> +<LI><A HREF="pcb.html#IDX356">invisibleObjectsColor</A> +</DIR> +<H2><A NAME="vindex_l">l</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX359">layerColor</A> +<LI><A HREF="pcb.html#IDX200">layerGroups</A>, <A HREF="pcb.html#IDX363">layerGroups</A> +<LI><A HREF="pcb.html#IDX366">layerName</A> +<LI><A HREF="pcb.html#IDX360">layerSelectedColor</A> +<LI><A HREF="pcb.html#IDX210">libraryCommand</A>, <A HREF="pcb.html#IDX368">libraryCommand</A>, <A HREF="pcb.html#IDX654">libraryCommand</A> +<LI><A HREF="pcb.html#IDX216">libraryContentsCommand</A>, <A HREF="pcb.html#IDX655">libraryContentsCommand</A> +<LI><A HREF="pcb.html#IDX204">libraryFilename</A>, <A HREF="pcb.html#IDX376">libraryFilename</A> +<LI><A HREF="pcb.html#IDX207">libraryPath</A>, <A HREF="pcb.html#IDX379">libraryPath</A> +<LI><A HREF="pcb.html#IDX383">lineThickness</A> +</DIR> +<H2><A NAME="vindex_m">m</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX387">media</A> +<LI><A HREF="pcb.html#IDX684">Mod1</A> +</DIR> +<H2><A NAME="vindex_o">o</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX391">offLimitColor</A> +</DIR> +<H2><A NAME="vindex_p">p</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX686">PATCHES</A> +<LI><A HREF="pcb.html#IDX394">pinColor</A> +<LI><A HREF="pcb.html#IDX398">pinoutFont0..4</A> +<LI><A HREF="pcb.html#IDX224">pinoutNameLength</A>, <A HREF="pcb.html#IDX401">pinoutNameLength</A> +<LI><A HREF="pcb.html#IDX405">pinoutOffsetX</A> +<LI><A HREF="pcb.html#IDX406">pinoutOffsetY</A> +<LI><A HREF="pcb.html#IDX408">pinoutTextOffsetX</A> +<LI><A HREF="pcb.html#IDX409">pinoutTextOffsetY</A> +<LI><A HREF="pcb.html#IDX229">pinoutZoom</A>, <A HREF="pcb.html#IDX411">pinoutZoom</A> +<LI><A HREF="pcb.html#IDX395">pinSelectedColor</A> +<LI><A HREF="pcb.html#IDX414">printCommand</A> +</DIR> +<H2><A NAME="vindex_r">r</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX416">raiseLogWindow</A> +<LI><A HREF="pcb.html#IDX419">ratCommand</A> +<LI><A HREF="pcb.html#IDX422">ratPath</A> +<LI><A HREF="pcb.html#IDX233">resetAfterElement</A>, <A HREF="pcb.html#IDX425">resetAfterElement</A> +<LI><A HREF="pcb.html#IDX238">ringBellWhenFinished</A>, <A HREF="pcb.html#IDX428">ringBellWhenFinished</A> +<LI><A HREF="pcb.html#IDX242">routeStyle</A>, <A HREF="pcb.html#IDX430">routeStyle</A> +<LI><A HREF="pcb.html#IDX432">rubberBandMode</A> +</DIR> +<H2><A NAME="vindex_s">s</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX259">saveCommand</A>, <A HREF="pcb.html#IDX436">saveCommand</A>, <A HREF="pcb.html#IDX656">saveCommand</A> +<LI><A HREF="pcb.html#IDX250">saveInTMP</A>, <A HREF="pcb.html#IDX443">saveInTMP</A> +<LI><A HREF="pcb.html#IDX245">saveLastCommand</A>, <A HREF="pcb.html#IDX450">saveLastCommand</A> +<LI><A HREF="pcb.html#IDX453">shrink</A> +<LI><A HREF="pcb.html#IDX266">size</A>, <A HREF="pcb.html#IDX456">size</A> +<LI><A HREF="pcb.html#IDX459">stipplePolygons</A> +<LI><A HREF="pcb.html#IDX690">SYS_LIBRARIES</A> +</DIR> +<H2><A NAME="vindex_t">t</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX462">textScale</A> +</DIR> +<H2><A NAME="vindex_u">u</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX465">useLogWindow</A> +</DIR> +<H2><A NAME="vindex_v">v</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX468">viaColor</A> +<LI><A HREF="pcb.html#IDX473">viaDrillingHole</A> +<LI><A HREF="pcb.html#IDX469">viaSelectedColor</A> +<LI><A HREF="pcb.html#IDX472">viaThickness</A> +<LI><A HREF="pcb.html#IDX270">volume</A>, <A HREF="pcb.html#IDX477">volume</A> +</DIR> +<H2><A NAME="vindex_w">w</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX480">warnColor</A> +</DIR> +<H2><A NAME="vindex_z">z</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX483">zoom</A> +</DIR> + + + + +<H1><A NAME="SEC67" HREF="pcb_toc.html#TOC67">Index of Actions, Commands and Options</A></H1> +<P> +Jump to: +<A HREF="#findex_+">+</A> +- +<A HREF="#findex_-">-</A> +- +<A HREF="#findex_:">:</A> +- +<A HREF="#findex_a">a</A> +- +<A HREF="#findex_b">b</A> +- +<A HREF="#findex_c">c</A> +- +<A HREF="#findex_d">d</A> +- +<A HREF="#findex_e">e</A> +- +<A HREF="#findex_l">l</A> +- +<A HREF="#findex_m">m</A> +- +<A HREF="#findex_n">n</A> +- +<A HREF="#findex_p">p</A> +- +<A HREF="#findex_q">q</A> +- +<A HREF="#findex_r">r</A> +- +<A HREF="#findex_s">s</A> +- +<A HREF="#findex_t">t</A> +- +<A HREF="#findex_u">u</A> +<P> +<H2><A NAME="findex_+">+</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX164">+alldirections</A> +<LI><A HREF="pcb.html#IDX235">+reset</A> +<LI><A HREF="pcb.html#IDX240">+ring</A> +<LI><A HREF="pcb.html#IDX249">+s</A> +<LI><A HREF="pcb.html#IDX252">+save</A> +</DIR> +<H2><A NAME="findex_-">-</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX163">-alldirections</A> +<LI><A HREF="pcb.html#IDX167">-backup</A> +<LI><A HREF="pcb.html#IDX172">-c</A> +<LI><A HREF="pcb.html#IDX274">-copyright</A> +<LI><A HREF="pcb.html#IDX175">-fontfile</A> +<LI><A HREF="pcb.html#IDX279">-help</A> +<LI><A HREF="pcb.html#IDX179">-lelement</A> +<LI><A HREF="pcb.html#IDX186">-lfile</A> +<LI><A HREF="pcb.html#IDX199">-lfont</A> +<LI><A HREF="pcb.html#IDX203">-lg</A> +<LI><A HREF="pcb.html#IDX205">-libname</A> +<LI><A HREF="pcb.html#IDX208">-libpath</A> +<LI><A HREF="pcb.html#IDX215">-llib</A> +<LI><A HREF="pcb.html#IDX220">-llibcont</A> +<LI><A HREF="pcb.html#IDX223">-loggeometry</A> +<LI><A HREF="pcb.html#IDX225">-pnl</A> +<LI><A HREF="pcb.html#IDX232">-pz</A> +<LI><A HREF="pcb.html#IDX234">-reset</A> +<LI><A HREF="pcb.html#IDX239">-ring</A> +<LI><A HREF="pcb.html#IDX243">-rs</A> +<LI><A HREF="pcb.html#IDX248">-s</A> +<LI><A HREF="pcb.html#IDX251">-save</A> +<LI><A HREF="pcb.html#IDX265">-sfile</A> +<LI><A HREF="pcb.html#IDX269">-size</A> +<LI><A HREF="pcb.html#IDX273">-v</A> +<LI><A HREF="pcb.html#IDX276">-version</A> +</DIR> +<H2><A NAME="findex_:">:</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX155">:actionCommand()</A> +<LI><A HREF="pcb.html#IDX131">:l</A> +<LI><A HREF="pcb.html#IDX134">:le</A> +<LI><A HREF="pcb.html#IDX137">:m</A> +<LI><A HREF="pcb.html#IDX142">:q</A> +<LI><A HREF="pcb.html#IDX148">:rn</A> +<LI><A HREF="pcb.html#IDX145">:s</A> +<LI><A HREF="pcb.html#IDX152">:w[q]</A> +</DIR> +<H2><A NAME="findex_a">a</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX490">AddRats()</A> +<LI><A HREF="pcb.html#IDX494">Atomic()</A> +</DIR> +<H2><A NAME="findex_b">b</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX497">Bell()</A> +</DIR> +<H2><A NAME="findex_c">c</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX500">ChangeDrillSize()</A> +<LI><A HREF="pcb.html#IDX504">ChangeHole()</A> +<LI><A HREF="pcb.html#IDX507">ChangeName()</A> +<LI><A HREF="pcb.html#IDX511">ChangeOctagon()</A> +<LI><A HREF="pcb.html#IDX515">ChangeSize()</A> +<LI><A HREF="pcb.html#IDX519">ChangeSquare()</A> +<LI><A HREF="pcb.html#IDX523">Command()</A> +<LI><A HREF="pcb.html#IDX526">Connection()</A> +</DIR> +<H2><A NAME="findex_d">d</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX533">DeleteRats()</A> +<LI><A HREF="pcb.html#IDX537">Display()</A> +<LI><A HREF="pcb.html#IDX551">DRC()</A> +</DIR> +<H2><A NAME="findex_e">e</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX554">EditLayerGroups()</A> +</DIR> +<H2><A NAME="findex_l">l</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX557">Load()</A> +</DIR> +<H2><A NAME="findex_m">m</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX559">MarkCrosshair()</A> +<LI><A HREF="pcb.html#IDX562">Mode()</A> +<LI><A HREF="pcb.html#IDX565">MovePointer()</A> +<LI><A HREF="pcb.html#IDX568">MoveToCurrentLayer()</A> +</DIR> +<H2><A NAME="findex_n">n</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX571">New()</A> +</DIR> +<H2><A NAME="findex_p">p</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX574">PasteBuffer()</A> +<LI><A HREF="pcb.html#IDX581">Polygon()</A> +<LI><A HREF="pcb.html#IDX585">Print()</A> +</DIR> +<H2><A NAME="findex_q">q</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX588">Quit()</A> +</DIR> +<H2><A NAME="findex_r">r</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX591">Redo()</A> +<LI><A HREF="pcb.html#IDX594">RemoveSelected()</A> +<LI><A HREF="pcb.html#IDX597">Report()</A> +<LI><A HREF="pcb.html#IDX601">RouteStyle()</A> +</DIR> +<H2><A NAME="findex_s">s</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX604">Save()</A> +<LI><A HREF="pcb.html#IDX607">Select()</A> +<LI><A HREF="pcb.html#IDX610">SetValue()</A> +<LI><A HREF="pcb.html#IDX617">SwapSides()</A> +<LI><A HREF="pcb.html#IDX620">SwitchDrawingLayer()</A> +</DIR> +<H2><A NAME="findex_t">t</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX623">ToggleHideName()</A> +</DIR> +<H2><A NAME="findex_u">u</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX627">Undo()</A> +<LI><A HREF="pcb.html#IDX630">Unselect()</A> +</DIR> + + + + +<H1><A NAME="SEC68" HREF="pcb_toc.html#TOC68">Index of Concepts</A></H1> +<P> +Jump to: +<A HREF="#cindex_/">/</A> +- +<A HREF="#cindex_a">a</A> +- +<A HREF="#cindex_b">b</A> +- +<A HREF="#cindex_c">c</A> +- +<A HREF="#cindex_d">d</A> +- +<A HREF="#cindex_e">e</A> +- +<A HREF="#cindex_f">f</A> +- +<A HREF="#cindex_g">g</A> +- +<A HREF="#cindex_h">h</A> +- +<A HREF="#cindex_i">i</A> +- +<A HREF="#cindex_k">k</A> +- +<A HREF="#cindex_l">l</A> +- +<A HREF="#cindex_m">m</A> +- +<A HREF="#cindex_n">n</A> +- +<A HREF="#cindex_o">o</A> +- +<A HREF="#cindex_p">p</A> +- +<A HREF="#cindex_q">q</A> +- +<A HREF="#cindex_r">r</A> +- +<A HREF="#cindex_s">s</A> +- +<A HREF="#cindex_t">t</A> +- +<A HREF="#cindex_u">u</A> +- +<A HREF="#cindex_v">v</A> +- +<A HREF="#cindex_x">x</A> +- +<A HREF="#cindex_z">z</A> +<P> +<H2><A NAME="cindex_/">/</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX100">/tmp</A>, <A HREF="pcb.html#IDX257">/tmp</A>, <A HREF="pcb.html#IDX448">/tmp</A> +</DIR> +<H2><A NAME="cindex_a">a</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX27">about, command button</A> +<LI><A HREF="pcb.html#IDX156">action command</A> +<LI><A HREF="pcb.html#IDX485">actions</A> +<LI><A HREF="pcb.html#IDX157">Actions, initiating</A> +<LI><A HREF="pcb.html#IDX286">alignment</A> +<LI><A HREF="pcb.html#IDX111">alignment targets</A> +<LI><A HREF="pcb.html#IDX710">Alpha</A> +<LI><A HREF="pcb.html#IDX10">arc</A> +<LI><A HREF="pcb.html#IDX64">arc, an example</A> +<LI><A HREF="pcb.html#IDX698">architecture</A>, <A HREF="pcb.html#IDX701">architecture</A>, <A HREF="pcb.html#IDX705">architecture</A>, <A HREF="pcb.html#IDX708">architecture</A>, <A HREF="pcb.html#IDX711">architecture</A>, <A HREF="pcb.html#IDX714">architecture</A> +<LI><A HREF="pcb.html#IDX650">ASCII files, format of</A> +<LI><A HREF="pcb.html#IDX1">Atari version</A> +<LI><A HREF="pcb.html#IDX496">atomic</A> +</DIR> +<H2><A NAME="cindex_b">b</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX97">backup</A>, <A HREF="pcb.html#IDX166">backup</A>, <A HREF="pcb.html#IDX253">backup</A>, <A HREF="pcb.html#IDX291">backup</A>, <A HREF="pcb.html#IDX444">backup</A> +<LI><A HREF="pcb.html#IDX657">basic types</A> +<LI><A HREF="pcb.html#IDX499">bell</A> +<LI><A HREF="pcb.html#IDX293">bloat</A> +<LI><A HREF="pcb.html#IDX87">buffer, an example</A> +<LI><A HREF="pcb.html#IDX84">buffer, convert contents to element</A> +<LI><A HREF="pcb.html#IDX44">buffer, popup menu</A> +<LI><A HREF="pcb.html#IDX575">buffer, selecting a</A> +<LI><A HREF="pcb.html#IDX488">button translations</A> +</DIR> +<H2><A NAME="cindex_c">c</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX327">cat</A>, <A HREF="pcb.html#IDX340">cat</A>, <A HREF="pcb.html#IDX442">cat</A> +<LI><A HREF="pcb.html#IDX538">centering</A> +<LI><A HREF="pcb.html#IDX21">change active layer</A> +<LI><A HREF="pcb.html#IDX621">change drawing layer</A> +<LI><A HREF="pcb.html#IDX509">change object name</A> +<LI><A HREF="pcb.html#IDX611">change settings</A> +<LI><A HREF="pcb.html#IDX501">change sizes</A>, <A HREF="pcb.html#IDX516">change sizes</A> +<LI><A HREF="pcb.html#IDX520">change square flag</A> +<LI><A HREF="pcb.html#IDX618">change viewing side</A> +<LI><A HREF="pcb.html#IDX169">characters per line</A>, <A HREF="pcb.html#IDX296">characters per line</A> +<LI><A HREF="pcb.html#IDX289">clipping lines to 45 degree</A>, <A HREF="pcb.html#IDX550">clipping lines to 45 degree</A> +<LI><A HREF="pcb.html#IDX162">clipping of lines</A> +<LI><A HREF="pcb.html#IDX584">closing a polygon</A> +<LI><A HREF="pcb.html#IDX109">color printout</A> +<LI><A HREF="pcb.html#IDX482">color, warning</A> +<LI><A HREF="pcb.html#IDX300">colors</A>, <A HREF="pcb.html#IDX303">colors</A>, <A HREF="pcb.html#IDX307">colors</A>, <A HREF="pcb.html#IDX354">colors</A>, <A HREF="pcb.html#IDX357">colors</A>, <A HREF="pcb.html#IDX361">colors</A>, <A HREF="pcb.html#IDX392">colors</A>, <A HREF="pcb.html#IDX396">colors</A>, <A HREF="pcb.html#IDX470">colors</A>, <A HREF="pcb.html#IDX481">colors</A> +<LI><A HREF="pcb.html#IDX159">command-line options</A> +<LI><A HREF="pcb.html#IDX675">compile, how to</A> +<LI><A HREF="pcb.html#IDX676">config.h</A> +<LI><A HREF="pcb.html#IDX639">connection, removing an</A> +<LI><A HREF="pcb.html#IDX301">connections, colors</A> +<LI><A HREF="pcb.html#IDX120">connections, creating list of</A> +<LI><A HREF="pcb.html#IDX46">connections, popup menu</A> +<LI><A HREF="pcb.html#IDX529">connections, reseting</A> +<LI><A HREF="pcb.html#IDX236">connections, reseting after element</A>, <A HREF="pcb.html#IDX426">connections, reseting after element</A> +<LI><A HREF="pcb.html#IDX531">connections, searching for</A> +<LI><A HREF="pcb.html#IDX18">control panel</A> +<LI><A HREF="pcb.html#IDX648">copy an object</A> +<LI><A HREF="pcb.html#IDX580">copying objects</A> +<LI><A HREF="pcb.html#IDX90">copying, an example</A> +<LI><A HREF="pcb.html#IDX275">copyright</A> +<LI><A HREF="pcb.html#IDX56">creating objects</A> +<LI><A HREF="pcb.html#IDX304">cursor color</A> +<LI><A HREF="pcb.html#IDX567">cursor movements</A> +<LI><A HREF="pcb.html#IDX561">cursor position</A> +<LI><A HREF="pcb.html#IDX352">cursor steps</A> +<LI><A HREF="pcb.html#IDX579">cutting objects</A> +</DIR> +<H2><A NAME="cindex_d">d</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX709">DEC</A> +<LI><A HREF="pcb.html#IDX176">default font</A>, <A HREF="pcb.html#IDX342">default font</A> +<LI><A HREF="pcb.html#IDX457">default layout size</A> +<LI><A HREF="pcb.html#IDX377">default library</A> +<LI><A HREF="pcb.html#IDX464">default text scaling</A> +<LI><A HREF="pcb.html#IDX634">default translations</A> +<LI><A HREF="pcb.html#IDX125">design rule checking</A>, <A HREF="pcb.html#IDX552">design rule checking</A> +<LI><A HREF="pcb.html#IDX105">device, selecting an output</A> +<LI><A HREF="pcb.html#IDX101">directory /tmp</A>, <A HREF="pcb.html#IDX258">directory /tmp</A>, <A HREF="pcb.html#IDX449">directory /tmp</A> +<LI><A HREF="pcb.html#IDX461">display</A> +<LI><A HREF="pcb.html#IDX29">display, popup menu</A> +<LI><A HREF="pcb.html#IDX30">displaying element names</A>, <A HREF="pcb.html#IDX542">displaying element names</A> +<LI><A HREF="pcb.html#IDX548">displaying pinout</A> +<LI><A HREF="pcb.html#IDX16">displaying status information</A> +<LI><A HREF="pcb.html#IDX117">DOS filenames</A> +<LI><A HREF="pcb.html#IDX52">drawing objects</A> +<LI><A HREF="pcb.html#IDX126">drc</A>, <A HREF="pcb.html#IDX294">drc</A>, <A HREF="pcb.html#IDX455">drc</A>, <A HREF="pcb.html#IDX553">drc</A> +<LI><A HREF="pcb.html#IDX600">drill</A> +<LI><A HREF="pcb.html#IDX503">drilling hole, changing of objects</A> +<LI><A HREF="pcb.html#IDX614">drilling hole, setting of initial size</A> +<LI><A HREF="pcb.html#IDX694">DVI format of manual</A> +</DIR> +<H2><A NAME="cindex_e">e</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX625">element name, hiding</A> +<LI><A HREF="pcb.html#IDX626">element name, removing from silk-screen</A> +<LI><A HREF="pcb.html#IDX74">element, an example</A> +<LI><A HREF="pcb.html#IDX6">element, an overview</A> +<LI><A HREF="pcb.html#IDX308">element, color</A>, <A HREF="pcb.html#IDX358">element, color</A> +<LI><A HREF="pcb.html#IDX180">element, command</A>, <A HREF="pcb.html#IDX310">element, command</A> +<LI><A HREF="pcb.html#IDX82">element, creating a new package</A> +<LI><A HREF="pcb.html#IDX31">element, display names of</A>, <A HREF="pcb.html#IDX543">element, display names of</A> +<LI><A HREF="pcb.html#IDX662">element, fileformat</A> +<LI><A HREF="pcb.html#IDX181">element, files</A>, <A HREF="pcb.html#IDX311">element, files</A>, <A HREF="pcb.html#IDX319">element, files</A> +<LI><A HREF="pcb.html#IDX136">element, loading to buffer</A> +<LI><A HREF="pcb.html#IDX644">element, move name of</A> +<LI><A HREF="pcb.html#IDX130">entering user commands</A> +<LI><A HREF="pcb.html#IDX54">erasing objects</A> +<LI><A HREF="pcb.html#IDX76">example files</A> +<LI><A HREF="pcb.html#IDX88">example of buffer handling</A> +<LI><A HREF="pcb.html#IDX119">example of connection lists</A> +<LI><A HREF="pcb.html#IDX92">example of copying</A> +<LI><A HREF="pcb.html#IDX81">example of creating an element</A> +<LI><A HREF="pcb.html#IDX75">example of element handling</A> +<LI><A HREF="pcb.html#IDX63">example of line handling</A> +<LI><A HREF="pcb.html#IDX96">example of loading</A> +<LI><A HREF="pcb.html#IDX78">example of loading an element file</A> +<LI><A HREF="pcb.html#IDX91">example of moving</A> +<LI><A HREF="pcb.html#IDX86">example of pastebuffer handling</A> +<LI><A HREF="pcb.html#IDX80">example of pin handling</A> +<LI><A HREF="pcb.html#IDX66">example of polygon handling</A> +<LI><A HREF="pcb.html#IDX104">example of printing</A> +<LI><A HREF="pcb.html#IDX68">example of rectangle handling</A> +<LI><A HREF="pcb.html#IDX95">example of saving</A> +<LI><A HREF="pcb.html#IDX71">example of text handling</A> +<LI><A HREF="pcb.html#IDX73">example of via handling</A> +<LI><A HREF="pcb.html#IDX143">exit</A>, <A HREF="pcb.html#IDX590">exit</A> +</DIR> +<H2><A NAME="cindex_f">f</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX664">file format, element data</A> +<LI><A HREF="pcb.html#IDX667">file format, font data</A> +<LI><A HREF="pcb.html#IDX661">file format, layout data</A> +<LI><A HREF="pcb.html#IDX673">file format, libraries</A> +<LI><A HREF="pcb.html#IDX670">file format, library contents</A> +<LI><A HREF="pcb.html#IDX649">file formats</A> +<LI><A HREF="pcb.html#IDX658">file formats, basic types</A> +<LI><A HREF="pcb.html#IDX187">file load command</A>, <A HREF="pcb.html#IDX322">file load command</A> +<LI><A HREF="pcb.html#IDX260">file save command</A>, <A HREF="pcb.html#IDX437">file save command</A> +<LI><A HREF="pcb.html#IDX28">file, popup menu</A> +<LI><A HREF="pcb.html#IDX193">font command</A>, <A HREF="pcb.html#IDX334">font command</A> +<LI><A HREF="pcb.html#IDX665">font file, format of</A> +<LI><A HREF="pcb.html#IDX194">font files</A>, <A HREF="pcb.html#IDX335">font files</A>, <A HREF="pcb.html#IDX347">font files</A> +<LI><A HREF="pcb.html#IDX4">font, an overview</A> +<LI><A HREF="pcb.html#IDX399">font, used for pin names</A> +<LI><A HREF="pcb.html#IDX663">format of element files</A> +<LI><A HREF="pcb.html#IDX666">format of font files</A> +<LI><A HREF="pcb.html#IDX660">format of layout files</A> +<LI><A HREF="pcb.html#IDX672">format of libraries</A> +<LI><A HREF="pcb.html#IDX669">format of library contents</A> +<LI><A HREF="pcb.html#IDX717">FreeBSD</A> +</DIR> +<H2><A NAME="cindex_g">g</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX24">grid</A>, <A HREF="pcb.html#IDX284">grid</A>, <A HREF="pcb.html#IDX351">grid</A> +<LI><A HREF="pcb.html#IDX355">grid color</A> +<LI><A HREF="pcb.html#IDX33">grid, absolute and relative</A>, <A HREF="pcb.html#IDX544">grid, absolute and relative</A> +<LI><A HREF="pcb.html#IDX32">grid, display</A>, <A HREF="pcb.html#IDX545">grid, display</A> +<LI><A HREF="pcb.html#IDX613">grid, setting of</A> +<LI><A HREF="pcb.html#IDX202">groups</A>, <A HREF="pcb.html#IDX365">groups</A> +<LI><A HREF="pcb.html#IDX556">groups, editing of</A> +</DIR> +<H2><A NAME="cindex_h">h</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX700">Hewlett Packard</A> +<LI><A HREF="pcb.html#IDX624">hide element name</A> +<LI><A HREF="pcb.html#IDX14">how to start</A> +<LI><A HREF="pcb.html#IDX699">HP</A> +</DIR> +<H2><A NAME="cindex_i">i</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX692">info file</A> +<LI><A HREF="pcb.html#IDX599">information about objects</A> +<LI><A HREF="pcb.html#IDX17">input-field, position of</A> +<LI><A HREF="pcb.html#IDX247">inputfield, saving entered command-line</A>, <A HREF="pcb.html#IDX452">inputfield, saving entered command-line</A> +<LI><A HREF="pcb.html#IDX525">inputfield, start user input</A> +<LI><A HREF="pcb.html#IDX674">install, how to</A> +</DIR> +<H2><A NAME="cindex_k">k</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX487">key translations</A> +<LI><A HREF="pcb.html#IDX241">keyboard bell</A>, <A HREF="pcb.html#IDX429">keyboard bell</A> +</DIR> +<H2><A NAME="cindex_l">l</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX622">layer, change active</A> +<LI><A HREF="pcb.html#IDX367">layer, name of</A> +<LI><A HREF="pcb.html#IDX8">layers, an overview</A> +<LI><A HREF="pcb.html#IDX20">layers, changing active one</A> +<LI><A HREF="pcb.html#IDX362">layers, colors</A> +<LI><A HREF="pcb.html#IDX555">layers, editing of groups</A> +<LI><A HREF="pcb.html#IDX201">layers, groups</A>, <A HREF="pcb.html#IDX364">layers, groups</A> +<LI><A HREF="pcb.html#IDX19">layers, switching on/off</A> +<LI><A HREF="pcb.html#IDX188">layout files</A>, <A HREF="pcb.html#IDX261">layout files</A>, <A HREF="pcb.html#IDX323">layout files</A>, <A HREF="pcb.html#IDX331">layout files</A>, <A HREF="pcb.html#IDX438">layout files</A> +<LI><A HREF="pcb.html#IDX659">layout files, format of</A> +<LI><A HREF="pcb.html#IDX147">layout files, saving of</A>, <A HREF="pcb.html#IDX154">layout files, saving of</A> +<LI><A HREF="pcb.html#IDX2">layout objects, an overview</A> +<LI><A HREF="pcb.html#IDX268">layout size</A> +<LI><A HREF="pcb.html#IDX458">layout, default size of</A> +<LI><A HREF="pcb.html#IDX133">layout, loading a</A> +<LI><A HREF="pcb.html#IDX140">layout, loading to buffer</A> +<LI><A HREF="pcb.html#IDX141">layout, merging a</A> +<LI><A HREF="pcb.html#IDX586">layout, printing a</A> +<LI><A HREF="pcb.html#IDX572">layout, start a new</A> +<LI><A HREF="pcb.html#IDX7">layout-name</A>, <A HREF="pcb.html#IDX151">layout-name</A> +<LI><A HREF="pcb.html#IDX228">length of a pin name</A>, <A HREF="pcb.html#IDX404">length of a pin name</A> +<LI><A HREF="pcb.html#IDX170">length of outputline</A> +<LI><A HREF="pcb.html#IDX211">library command</A>, <A HREF="pcb.html#IDX369">library command</A> +<LI><A HREF="pcb.html#IDX217">library contents command</A>, <A HREF="pcb.html#IDX373">library contents command</A> +<LI><A HREF="pcb.html#IDX668">library contents file, format of</A> +<LI><A HREF="pcb.html#IDX671">library file, format of</A> +<LI><A HREF="pcb.html#IDX206">library name</A>, <A HREF="pcb.html#IDX378">library name</A> +<LI><A HREF="pcb.html#IDX209">library search path</A> +<LI><A HREF="pcb.html#IDX382">library searchpath</A> +<LI><A HREF="pcb.html#IDX51">library window</A> +<LI><A HREF="pcb.html#IDX161">line clipping</A> +<LI><A HREF="pcb.html#IDX297">linelength</A> +<LI><A HREF="pcb.html#IDX62">lines, an example</A> +<LI><A HREF="pcb.html#IDX9">lines, an overview</A> +<LI><A HREF="pcb.html#IDX288">lines, clipping to 45 degree</A>, <A HREF="pcb.html#IDX549">lines, clipping to 45 degree</A> +<LI><A HREF="pcb.html#IDX616">lines, setting of initial size</A> +<LI><A HREF="pcb.html#IDX384">lines, size</A> +<LI><A HREF="pcb.html#IDX715">Linux</A> +<LI><A HREF="pcb.html#IDX298">list of connections</A> +<LI><A HREF="pcb.html#IDX218">listing libraries</A> +<LI><A HREF="pcb.html#IDX374">listing library contents</A> +<LI><A HREF="pcb.html#IDX138">loading a layout to buffer</A> +<LI><A HREF="pcb.html#IDX182">loading elements</A>, <A HREF="pcb.html#IDX212">loading elements</A>, <A HREF="pcb.html#IDX312">loading elements</A>, <A HREF="pcb.html#IDX320">loading elements</A>, <A HREF="pcb.html#IDX370">loading elements</A> +<LI><A HREF="pcb.html#IDX135">loading elements to buffer</A> +<LI><A HREF="pcb.html#IDX558">loading files</A> +<LI><A HREF="pcb.html#IDX195">loading fonts</A>, <A HREF="pcb.html#IDX336">loading fonts</A>, <A HREF="pcb.html#IDX348">loading fonts</A> +<LI><A HREF="pcb.html#IDX132">loading layouts</A>, <A HREF="pcb.html#IDX189">loading layouts</A>, <A HREF="pcb.html#IDX324">loading layouts</A>, <A HREF="pcb.html#IDX332">loading layouts</A> +<LI><A HREF="pcb.html#IDX196">loading symbols</A>, <A HREF="pcb.html#IDX337">loading symbols</A>, <A HREF="pcb.html#IDX349">loading symbols</A> +<LI><A HREF="pcb.html#IDX93">loading, an example</A> +<LI><A HREF="pcb.html#IDX49">log window</A>, <A HREF="pcb.html#IDX221">log window</A>, <A HREF="pcb.html#IDX417">log window</A>, <A HREF="pcb.html#IDX466">log window</A> +</DIR> +<H2><A NAME="cindex_m">m</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX315">m4</A> +<LI><A HREF="pcb.html#IDX77">m4, preprocessing example files</A> +<LI><A HREF="pcb.html#IDX695">make</A> +<LI><A HREF="pcb.html#IDX678">Makefile</A> +<LI><A HREF="pcb.html#IDX691">manuals</A> +<LI><A HREF="pcb.html#IDX560">mark</A> +<LI><A HREF="pcb.html#IDX388">media</A> +<LI><A HREF="pcb.html#IDX389">media margin</A> +<LI><A HREF="pcb.html#IDX114">media, size of</A> +<LI><A HREF="pcb.html#IDX25">menus</A> +<LI><A HREF="pcb.html#IDX139">merging layouts</A> +<LI><A HREF="pcb.html#IDX50">messages</A>, <A HREF="pcb.html#IDX222">messages</A>, <A HREF="pcb.html#IDX418">messages</A>, <A HREF="pcb.html#IDX467">messages</A> +<LI><A HREF="pcb.html#IDX108">mirroring printout</A> +<LI><A HREF="pcb.html#IDX22">mode selection</A> +<LI><A HREF="pcb.html#IDX563">mode, selecting of</A> +<LI><A HREF="pcb.html#IDX506">mounting holes</A> +<LI><A HREF="pcb.html#IDX433">move</A> +<LI><A HREF="pcb.html#IDX647">move an object</A> +<LI><A HREF="pcb.html#IDX570">moving objects to current layer</A> +<LI><A HREF="pcb.html#IDX89">moving, an example</A> +</DIR> +<H2><A NAME="cindex_n">n</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX541">name of an element</A> +<LI><A HREF="pcb.html#IDX508">name, change an objects</A> +<LI><A HREF="pcb.html#IDX226">namelength of pins</A>, <A HREF="pcb.html#IDX402">namelength of pins</A> +<LI><A HREF="pcb.html#IDX718">NetBSD</A> +<LI><A HREF="pcb.html#IDX123">netlist</A>, <A HREF="pcb.html#IDX149">netlist</A>, <A HREF="pcb.html#IDX421">netlist</A>, <A HREF="pcb.html#IDX424">netlist</A>, <A HREF="pcb.html#IDX492">netlist</A>, <A HREF="pcb.html#IDX536">netlist</A> +</DIR> +<H2><A NAME="cindex_o">o</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX510">object, change name of</A> +<LI><A HREF="pcb.html#IDX61">object, changing the size of an</A> +<LI><A HREF="pcb.html#IDX646">object, copy an</A> +<LI><A HREF="pcb.html#IDX57">object, creating an</A> +<LI><A HREF="pcb.html#IDX55">object, drawing and removing</A> +<LI><A HREF="pcb.html#IDX645">object, move an</A> +<LI><A HREF="pcb.html#IDX59">object, removing an</A>, <A HREF="pcb.html#IDX638">object, removing an</A> +<LI><A HREF="pcb.html#IDX42">object, selecting an</A> +<LI><A HREF="pcb.html#IDX569">objects, moving to current layer</A> +<LI><A HREF="pcb.html#IDX36">objects, popup menu</A> +<LI><A HREF="pcb.html#IDX514">octagonal pins and vias</A> +<LI><A HREF="pcb.html#IDX393">off limit color</A> +<LI><A HREF="pcb.html#IDX410">offset of pinnames</A> +<LI><A HREF="pcb.html#IDX407">offset of pinout</A> +<LI><A HREF="pcb.html#IDX115">offset of printout</A> +<LI><A HREF="pcb.html#IDX704">OpenWindows</A> +<LI><A HREF="pcb.html#IDX564">operation modes, selecting of</A> +<LI><A HREF="pcb.html#IDX110">outline printout</A> +<LI><A HREF="pcb.html#IDX106">output device</A> +<LI><A HREF="pcb.html#IDX171">outputline, length of</A> +<LI><A HREF="pcb.html#IDX128">overlap, minimum</A> +</DIR> +<H2><A NAME="cindex_p">p</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX85">pastebuffer, an example</A> +<LI><A HREF="pcb.html#IDX83">pastebuffer, convert contents to element</A> +<LI><A HREF="pcb.html#IDX45">pastebuffer, popup menu</A> +<LI><A HREF="pcb.html#IDX576">pastebuffer, selecting a</A> +<LI><A HREF="pcb.html#IDX318">path for element files</A> +<LI><A HREF="pcb.html#IDX346">path for font files</A> +<LI><A HREF="pcb.html#IDX330">path for layout files</A> +<LI><A HREF="pcb.html#IDX381">path for libraries</A> +<LI><A HREF="pcb.html#IDX713">PC UNIX</A>, <A HREF="pcb.html#IDX716">PC UNIX</A>, <A HREF="pcb.html#IDX719">PC UNIX</A> +<LI><A HREF="pcb.html#IDX397">pin color</A> +<LI><A HREF="pcb.html#IDX227">pin, name of</A>, <A HREF="pcb.html#IDX403">pin, name of</A> +<LI><A HREF="pcb.html#IDX37">pinout of elements</A> +<LI><A HREF="pcb.html#IDX547">pinout, display of</A> +<LI><A HREF="pcb.html#IDX400">pinout, font to display pin names</A> +<LI><A HREF="pcb.html#IDX230">pinout, zoomfactor of display</A>, <A HREF="pcb.html#IDX412">pinout, zoomfactor of display</A> +<LI><A HREF="pcb.html#IDX79">pins, an example</A> +<LI><A HREF="pcb.html#IDX512">pins, changing shape of</A> +<LI><A HREF="pcb.html#IDX566">pointer, moving of</A> +<LI><A HREF="pcb.html#IDX460">polygon</A> +<LI><A HREF="pcb.html#IDX583">polygon point, go back to previous</A> +<LI><A HREF="pcb.html#IDX65">polygon, an example</A> +<LI><A HREF="pcb.html#IDX11">polygon, an overview</A> +<LI><A HREF="pcb.html#IDX582">polygon, closing a</A> +<LI><A HREF="pcb.html#IDX26">popping up menus</A> +<LI><A HREF="pcb.html#IDX263">postprocessing layout data</A>, <A HREF="pcb.html#IDX440">postprocessing layout data</A> +<LI><A HREF="pcb.html#IDX183">preprocessing element data</A>, <A HREF="pcb.html#IDX213">preprocessing element data</A>, <A HREF="pcb.html#IDX313">preprocessing element data</A> +<LI><A HREF="pcb.html#IDX197">preprocessing font data</A>, <A HREF="pcb.html#IDX338">preprocessing font data</A> +<LI><A HREF="pcb.html#IDX190">preprocessing layout data</A>, <A HREF="pcb.html#IDX325">preprocessing layout data</A> +<LI><A HREF="pcb.html#IDX99">preventing loss of data</A>, <A HREF="pcb.html#IDX255">preventing loss of data</A>, <A HREF="pcb.html#IDX446">preventing loss of data</A> +<LI><A HREF="pcb.html#IDX118">print command</A> +<LI><A HREF="pcb.html#IDX113">print media</A>, <A HREF="pcb.html#IDX390">print media</A> +<LI><A HREF="pcb.html#IDX116">print offset</A> +<LI><A HREF="pcb.html#IDX415">printing</A> +<LI><A HREF="pcb.html#IDX587">printing a layout</A> +<LI><A HREF="pcb.html#IDX103">printing, an example</A> +<LI><A HREF="pcb.html#IDX696">problems</A> +</DIR> +<H2><A NAME="cindex_q">q</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX144">quit</A>, <A HREF="pcb.html#IDX589">quit</A> +</DIR> +<H2><A NAME="cindex_r">r</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX124">rat-line</A>, <A HREF="pcb.html#IDX493">rat-line</A>, <A HREF="pcb.html#IDX535">rat-line</A> +<LI><A HREF="pcb.html#IDX122">rats nest</A>, <A HREF="pcb.html#IDX150">rats nest</A>, <A HREF="pcb.html#IDX420">rats nest</A>, <A HREF="pcb.html#IDX423">rats nest</A>, <A HREF="pcb.html#IDX491">rats nest</A>, <A HREF="pcb.html#IDX534">rats nest</A> +<LI><A HREF="pcb.html#IDX593">recover</A>, <A HREF="pcb.html#IDX629">recover</A> +<LI><A HREF="pcb.html#IDX67">rectangle, an example</A> +<LI><A HREF="pcb.html#IDX592">redo</A> +<LI><A HREF="pcb.html#IDX539">redrawing layout</A> +<LI><A HREF="pcb.html#IDX540">refreshing layout</A> +<LI><A HREF="pcb.html#IDX277">release, current</A> +<LI><A HREF="pcb.html#IDX637">removing connections</A> +<LI><A HREF="pcb.html#IDX53">removing objects</A>, <A HREF="pcb.html#IDX58">removing objects</A>, <A HREF="pcb.html#IDX636">removing objects</A> +<LI><A HREF="pcb.html#IDX595">removing selected objects</A> +<LI><A HREF="pcb.html#IDX598">report</A> +<LI><A HREF="pcb.html#IDX48">report, popup menu</A> +<LI><A HREF="pcb.html#IDX237">reseting found connections</A>, <A HREF="pcb.html#IDX427">reseting found connections</A>, <A HREF="pcb.html#IDX530">reseting found connections</A> +<LI><A HREF="pcb.html#IDX281">resources</A> +<LI><A HREF="pcb.html#IDX435">rotate</A> +<LI><A HREF="pcb.html#IDX578">rotating a buffer</A> +<LI><A HREF="pcb.html#IDX107">rotating printout</A> +<LI><A HREF="pcb.html#IDX244">routing style</A>, <A HREF="pcb.html#IDX431">routing style</A>, <A HREF="pcb.html#IDX602">routing style</A> +<LI><A HREF="pcb.html#IDX434">rubberband</A>, <A HREF="pcb.html#IDX546">rubberband</A> +</DIR> +<H2><A NAME="cindex_s">s</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX606">saving connections</A> +<LI><A HREF="pcb.html#IDX605">saving files</A> +<LI><A HREF="pcb.html#IDX532">saving found connections</A> +<LI><A HREF="pcb.html#IDX246">saving last entered user command</A>, <A HREF="pcb.html#IDX451">saving last entered user command</A> +<LI><A HREF="pcb.html#IDX98">saving layouts</A>, <A HREF="pcb.html#IDX146">saving layouts</A>, <A HREF="pcb.html#IDX153">saving layouts</A>, <A HREF="pcb.html#IDX254">saving layouts</A>, <A HREF="pcb.html#IDX262">saving layouts</A>, <A HREF="pcb.html#IDX439">saving layouts</A>, <A HREF="pcb.html#IDX445">saving layouts</A> +<LI><A HREF="pcb.html#IDX94">saving, an example</A> +<LI><A HREF="pcb.html#IDX112">scaling a printout</A> +<LI><A HREF="pcb.html#IDX527">scanning connections</A> +<LI><A HREF="pcb.html#IDX712">SCO</A> +<LI><A HREF="pcb.html#IDX640">scrolling</A>, <A HREF="pcb.html#IDX641">scrolling</A> +<LI><A HREF="pcb.html#IDX528">searching connections</A> +<LI><A HREF="pcb.html#IDX317">searchpath for element files</A> +<LI><A HREF="pcb.html#IDX345">searchpath for font files</A> +<LI><A HREF="pcb.html#IDX329">searchpath for layout files</A> +<LI><A HREF="pcb.html#IDX380">searchpath for libraries</A> +<LI><A HREF="pcb.html#IDX596">selected object, removing an</A> +<LI><A HREF="pcb.html#IDX41">selected objects, changing size</A> +<LI><A HREF="pcb.html#IDX40">selected objects, removing</A> +<LI><A HREF="pcb.html#IDX577">selecting a buffer</A> +<LI><A HREF="pcb.html#IDX23">selecting a new mode</A> +<LI><A HREF="pcb.html#IDX43">selecting objects</A>, <A HREF="pcb.html#IDX609">selecting objects</A> +<LI><A HREF="pcb.html#IDX608">selection</A>, <A HREF="pcb.html#IDX631">selection</A> +<LI><A HREF="pcb.html#IDX121">selection, an example</A> +<LI><A HREF="pcb.html#IDX39">selection, popup menu</A> +<LI><A HREF="pcb.html#IDX707">SGI</A> +<LI><A HREF="pcb.html#IDX454">shrink</A> +<LI><A HREF="pcb.html#IDX498">signal</A> +<LI><A HREF="pcb.html#IDX706">Silicon Graphics</A> +<LI><A HREF="pcb.html#IDX267">size of a layout</A> +<LI><A HREF="pcb.html#IDX385">size of lines</A> +<LI><A HREF="pcb.html#IDX603">size of lines and vias</A> +<LI><A HREF="pcb.html#IDX475">size of vias</A> +<LI><A HREF="pcb.html#IDX502">sizes, changing of objects</A>, <A HREF="pcb.html#IDX517">sizes, changing of objects</A> +<LI><A HREF="pcb.html#IDX35">sizes, popup menu</A> +<LI><A HREF="pcb.html#IDX703">Solaris</A> +<LI><A HREF="pcb.html#IDX127">spacing, minimum</A> +<LI><A HREF="pcb.html#IDX271">speaker volume</A>, <A HREF="pcb.html#IDX478">speaker volume</A> +<LI><A HREF="pcb.html#IDX521">square flag, changing of objects</A> +<LI><A HREF="pcb.html#IDX524">start user input</A> +<LI><A HREF="pcb.html#IDX573">starting a new layout</A> +<LI><A HREF="pcb.html#IDX158">starting <CODE>Pcb</CODE></A> +<LI><A HREF="pcb.html#IDX15">status information</A> +<LI><A HREF="pcb.html#IDX70">strings, an example</A> +<LI><A HREF="pcb.html#IDX13">strings, an overview</A> +<LI><A HREF="pcb.html#IDX702">Sun</A> +<LI><A HREF="pcb.html#IDX177">symbols</A>, <A HREF="pcb.html#IDX343">symbols</A> +<LI><A HREF="pcb.html#IDX3">symbols, an overview</A> +</DIR> +<H2><A NAME="cindex_t">t</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX102">temporary files</A>, <A HREF="pcb.html#IDX256">temporary files</A>, <A HREF="pcb.html#IDX447">temporary files</A> +<LI><A HREF="pcb.html#IDX721">TeX, problems</A> +<LI><A HREF="pcb.html#IDX693">texinfo file</A> +<LI><A HREF="pcb.html#IDX69">text, an example</A> +<LI><A HREF="pcb.html#IDX12">text, an overview</A> +<LI><A HREF="pcb.html#IDX463">text, default scaling</A> +<LI><A HREF="pcb.html#IDX38">text, editing</A> +<LI><A HREF="pcb.html#IDX386">thickness of lines</A> +<LI><A HREF="pcb.html#IDX60">thickness of objects</A> +<LI><A HREF="pcb.html#IDX476">thickness of vias</A> +<LI><A HREF="pcb.html#IDX518">thickness, changing of objects</A>, <A HREF="pcb.html#IDX522">thickness, changing of objects</A> +<LI><A HREF="pcb.html#IDX486">translations</A>, <A HREF="pcb.html#IDX633">translations</A> +<LI><A HREF="pcb.html#IDX697">troubleshooting</A> +</DIR> +<H2><A NAME="cindex_u">u</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX628">undo</A> +<LI><A HREF="pcb.html#IDX495">undo, multi-action resources</A> +<LI><A HREF="pcb.html#IDX47">undo, popup menu</A> +<LI><A HREF="pcb.html#IDX184">unix command</A>, <A HREF="pcb.html#IDX191">unix command</A>, <A HREF="pcb.html#IDX198">unix command</A>, <A HREF="pcb.html#IDX214">unix command</A>, <A HREF="pcb.html#IDX219">unix command</A>, <A HREF="pcb.html#IDX264">unix command</A>, <A HREF="pcb.html#IDX314">unix command</A>, <A HREF="pcb.html#IDX326">unix command</A>, <A HREF="pcb.html#IDX339">unix command</A>, <A HREF="pcb.html#IDX371">unix command</A>, <A HREF="pcb.html#IDX375">unix command</A>, <A HREF="pcb.html#IDX441">unix command</A> +<LI><A HREF="pcb.html#IDX632">unselect objects</A> +<LI><A HREF="pcb.html#IDX129">user commands</A> +<LI><A HREF="pcb.html#IDX642">user input</A>, <A HREF="pcb.html#IDX643">user input</A> +</DIR> +<H2><A NAME="cindex_v">v</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX278">version, current</A> +<LI><A HREF="pcb.html#IDX72">vias, an example</A> +<LI><A HREF="pcb.html#IDX5">vias, an overview</A> +<LI><A HREF="pcb.html#IDX513">vias, changing shape of</A> +<LI><A HREF="pcb.html#IDX471">vias, color</A> +<LI><A HREF="pcb.html#IDX505">vias, converting to mounting hole</A> +<LI><A HREF="pcb.html#IDX615">vias, setting of initial size</A> +<LI><A HREF="pcb.html#IDX474">vias, size</A> +<LI><A HREF="pcb.html#IDX619">viewing side, changing of</A> +<LI><A HREF="pcb.html#IDX272">volume of speaker</A>, <A HREF="pcb.html#IDX479">volume of speaker</A> +</DIR> +<H2><A NAME="cindex_x">x</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX280">X11</A> +<LI><A HREF="pcb.html#IDX635">X11 default translations</A> +<LI><A HREF="pcb.html#IDX282">X11 resources</A> +<LI><A HREF="pcb.html#IDX489">X11 translations</A> +<LI><A HREF="pcb.html#IDX720">X11, problems</A> +<LI><A HREF="pcb.html#IDX677">xmkmf</A> +</DIR> +<H2><A NAME="cindex_z">z</A></H2> +<DIR> +<LI><A HREF="pcb.html#IDX484">zoom of drawing window</A> +<LI><A HREF="pcb.html#IDX231">zoom of pinout window</A>, <A HREF="pcb.html#IDX413">zoom of pinout window</A> +<LI><A HREF="pcb.html#IDX34">zoom, setting</A> +<LI><A HREF="pcb.html#IDX612">zoom, setting of</A> +</DIR> + + +<P><HR><P> +This document was generated on 31 August 2000 using +<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A> 1.56k. +</BODY> +</HTML> diff --git a/cad/pcb/files/pcb.info b/cad/pcb/files/pcb.info new file mode 100644 index 00000000000..d206463fd1e --- /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 *<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. + + +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 *<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. + + +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 *<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. + + +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 (*<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. + + +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' +(*<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. + + +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 (*<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. + + +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 +*<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*. + + +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 *<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 *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 *<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. + + +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 *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. + + +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 *<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. + + +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. +*<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. + +* 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: + + *<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 *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 *<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. + + +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 *<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. + + +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 +*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. + + +File: pcb.info, Node: Text, Next: Vias, Prev: Polygons, Up: Drawing and Removing + +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. + + +File: pcb.info, Node: Vias, Next: Elements, Prev: Text, Up: Drawing and Removing + +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. + + +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 *<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 *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 (*!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 *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 +*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. + + +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 *<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 *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 *<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. + + +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 *<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. + + +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::). *<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. + + +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 *<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 + *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 <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. + + +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 (<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 *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: + 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 *Note + 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) + + +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. + +`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: 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 = "'" <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] + + +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 = <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. + + +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 <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. + + +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 00000000000..73a8238a45e --- /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 df<EBFE7C380381C6380603CE000E1384001C1380A6B512F0381C0380AE38 +FF8FF0171A809916>11 D<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C +03AE38FF8FF0141A809915>I<EBFF80EA0383EA0603120E121CA6B5FCEA1C03AE38FF9F +F0141A809915>I<126012F0A212701210A31220A21240A2040B7D830B>44 +D<EAFFC0A20A0280880D>I<126012F0A2126004047D830B>I<1304130C1318A31330A313 +60A313C0A3EA0180A3EA0300A31206A35AA35AA35AA35AA35AA20E257E9B13>I<EA07E0 +EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA700EEA300CEA381CEA1C38 +EA07E010187F9713>I<12035AB4FC1207B3A2EA7FF80D187D9713>I<EA0F80EA1060EA20 +30EA4038EA803CEAC01C12E01240EA003C1338A21370136013C0EA018013001202EA0404 +12081210EA3008EA3FF8127F12FF0E187E9713>I<EA07E0EA1838EA201CEA601EEA700E +EA201E1200131CA213381370EA07E0EA0038131C130E130FA212E0A212C0EA400EEA601C +EA1838EA07E010187F9713>I<1318A21338137813F813B8EA01381202A2120412081218 +12101220124012C0B5FCEA0038A6EA03FF10187F9713>I<EA3018EA3FF013E01380EA20 +00A5EA2FC0EA3060EA2030EA00381318131CA2124012E0A2EA8018EA40381330EA30E0EA +0F800E187E9713>I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE4 +18EAE80CEAF00EEAE0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713 +>I<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206 +A2120EA5120410197E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18 +EA1F30EA07C0EA03E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA +07E010187F9713>I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700F +EA3017EA1827EA07C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713 +>I<130CA3131EA2132F1327A2EB4380A3EB81C0A200017F1300A248B47E38020070A248 +7FA3487FA2003C131EB4EBFFC01A1A7F991D>65 D<B51280380E00E014701438143CA514 +781470EB01E0380FFFC0380E00F01478143C141C141EA4141C143C147814F0B512C0171A +7F991B>I<EB3F023801C0C63803002E000E131E48130E14065A007813021270A200F013 +00A600701302A21278003813047E14087E000313303801C0C038003F00171A7E991C>I< +B57E380E00E01470808080A280A21580A81500A25C140E5CA2147814E0B51280191A7F99 +1D>I<B512F8380E003814181408140C1404A3EB0100A35BEA0FFFEA0E037FA3EB0002A3 +14061404A2140C143CB512FC171A7F991A>I<B512F8380E003814181408140C1404A3EB +0100A35BEA0FFFEA0E037FA390C7FCA8EAFFE0161A7F9919>I<EB3F023801C0C6380300 +2E000E131E48130E14065A007813021270A200F090C7FCA5903801FFC03970000E00A212 +7812387EA27E000313163801C06638003F821A1A7E991E>I<39FFE1FFC0390E001C00AB +380FFFFC380E001CAC39FFE1FFC01A1A7F991D>I<EAFF80EA1C00B3A6EAFF80091A7E99 +0E>I<EAFFE0000EC7FCB01408A3141814101430147014F0B5FC151A7F9918>76 +D<B414FF000F14F0A2390B800170A23809C002A33808E004A2EB7008A3EB3810A3EB1C20 +A2EB0E40A3EB0780A2EB0300121C39FF8307FF201A7F9923>I<00FEEB7FC0000FEB0E00 +1404EA0B80EA09C0A2EA08E01370A21338131CA2130E1307EB0384A2EB01C4EB00E4A214 +74143CA2141C140C121C38FF80041A1A7F991D>I<137F3801C1C038070070000E7F487F +003C131E0038130E0078130F00707F00F01480A80078EB0F00A20038130E003C131E001C +131C6C5B6C5B3801C1C0D8007FC7FC191A7E991E>I<B51280380E01E0EB007014781438 +143CA4143814781470EB01E0380FFF80000EC7FCABEAFFE0161A7F991A>I<EA0FC2EA18 +36EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03FCEA007E130E130713 +031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83 D<007FB5FC38701C070040 +1301A200C0148000801300A300001400B13803FFE0191A7F991C>I<39FFE07FC0390E00 +0E001404B200065B12076C5B6C6C5A3800E0C0013FC7FC1A1A7F991D>I<39FF801FC039 +1C00070014066C1304A36C5BA26C6C5AA36C6C5AA26C6C5AA3EB7080A213790139C7FCA2 +131EA3130CA21A1A7F991D>I<3AFF81FF07F03A3C007801C0001CEC0080A36C90389C01 +00A33907010E02A33903830F04EB8207A2150C3901C40388A33900E801D0A390387000E0 +A301305B01201340241A7F9927>I<39FFC0FF80390F003C0014106C5BEA03806D5A0001 +5BEA00E101F1C7FC137A133E131C131EA21317EB27801343EB41C0EB81E0EA0100481370 +00021378481338000C7F001E133EB4EB7FC01A1A7F991D>I<EA1FC0EA38707FEA101C12 +00A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13>97 +D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906 +EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA +07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A +EA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000 +A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300 +A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA3030 +6C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011 +187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218 +123CA212181200A612FC121CAE12FF081A80990A>I<EA0180EA03C0A2EA0180C7FCA6EA +0FC01201B21241EAE180EAE300127E0A2182990C>I<12FC121CA9EB1FC0EB0F00130C5B +13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>I<12FC121C +B3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301AB39FF9FE7 +F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>I<EA07E0EA +1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13> +I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890 +C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A61270A26C5AEA +1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF +800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0EA00F0EA80 +70133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0EA3800A813 +20A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E0B3803F3F0 +1410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C +5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16081317A238 +072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C1E00EA1C08 +6C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC012107F8F14 +>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5AA248C7FC +A212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2EA0380EA07 +00A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmti9 9 1 +/Fd 1 47 df<1230127812F0126005047C830C>46 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmtt9 9 64 +/Fe 64 123 df<EA01801203EA06005A121C121812385AA35AA91270A37E1218121C120C +7EEA03801201091D799914>40 D<128012C01260123012381218121C120EA31207A9120E +A3121C121812381230126012C01280081D7C9914>I<EA01C0A7B51280A33801C000A711 +117F9314>43 D<EAFFFEA30F037E8C14>45 D<127012F8A312700505798414>I<130613 +0EA2131CA21338A21370A213E0A2EA01C0A2EA0380A3EA0700A2120EA25AA25AA25AA25A +A25A0F1D7E9914>I<EA07C0EA0FE0EA1C70EA3838EA3018EA701CA2EAE00EA9EA701CA2 +EA3838A2EA1C70EA0FE0EA07C00F177E9614>I<1203A25A5A123F12F712471207AEEA7F +F0A20C177C9614>I<137813F8EA01B8A2EA0338A21206120E120C121C12381230127012 +E0B51280A238003800A548B4FCA211177F9614>52 D<EA01F0EA07F8EA0E1C121C1238EA +30001270A25AEAE7C0EAEFF0EAF838EAF01C130CEAE00EA212601270130CEA381CEA1C38 +EA0FF0EA07C00F177E9614>54 D<127012F8A312701200A6127012F8A312700510798F14 +>58 D<EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA2 +38FE3F80A211177F9614>65 D<EAFFF013FCEA381E130E1307A4130E131EEA3FFCA2EA38 +1E130E1307A5130E131EEAFFFC13F810177F9614>I<3801F180EA07FFEA0E1FEA1C0712 +38EA7003A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F9614>I< +EAFFE013F8EA383C7F130E7FA3EB0380A8EB0700A2130E131E5BEAFFF813E011177F9614 +>I<B5FCA2EA3807A490C7FCA21338A2EA3FF8A2EA3838A290C7FCA3EB0380A4B5FCA211 +177F9614>I<B51280A2EA3803A490C7FCA21338A2EA3FF8A2EA3838A290C7FCA7B4FCA2 +11177F9614>I<EA03C6EA0FFEEA1C3EEA181E1238EA700EA21260EAE000A4137FA2130E +12601270A2EA381E1218EA1C3EEA0FFEEA03CE10177F9614>I<38FE3F80A238380E00A8 +EA3FFEA2EA380EA938FE3F80A211177F9614>I<EAFFF8A2EA0700B3EAFFF8A20D177D96 +14>I<B4FCA21238AF1307A4B5FCA210177E9614>76 D<38FC1F80A2007C1300EA7637A4 +EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>I<38FE3F80A238 +3E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA211177F9614>I<EA1F +F0EA7FFCEA783CEA701CEAE00EAFEA701CEA783CEA7FFCEA1FF00F177E9614>I<EAFFF0 +13FCEA381E130E1307A5130E131EEA3FFC13F0EA3800A812FEA210177F9614>I<EA1FF0 +EA7FFCEA783CEA701CEAE00EADEAE38EEAE1CEEA71DCEA78FC127FEA1FF0EA0078133813 +3C131C131E0F1C7E9614>I<EAFFE013F8EA383C131C7FA45B133CEA3FF85BEA38387FA5 +1480EB1DC0A238FE0F80EB070012177F9614>I<EA0FCCEA1FFCEA307CEA603CEAE01CA3 +13001270127EEA3FE0EA0FF0EA01F8EA001C131E130E126012E0A2EAF01CEAF838EAFFF0 +EAC7E00F177E9614>I<387FFF80B5FCEAE1C3A43801C000AFEA0FF8A211177F9614>I<38 +FE0FE0A238380380B0381C0700A2EA0E0EEA07FCEA01F01317809614>I<38FC1F80A238 +380E00A3EA3C1EEA1C1CA46C5AA4EA0630EA0770A3EA0360A213E0A26C5A11177F9614> +I<38FC1F80A238700700A7EA31C6EA33E6EA3BEE136EA5EA1B6CA2EA1A2CEA1E3CA31117 +7F9614>I<EA7E3EA2EA1C3CEA1E38EA0E78EA0F7012075B12035B120112037FA2EA0770 +A2EA0E781338EA1C3C131CEA3C1E38FE3F80A211177F9614>I<38FC1F80A238380E00EA +3C1EEA1C1CEA1E3CEA0E38A26C5AA2EA036013E0A26C5AA8EA07F0A211177F9614>I<EA +7FFE12FFEAE01CA21338A2EA007013E0A2EA01C0A2EA0380EA0700A2120EA25AEA380EA2 +1270A2EAFFFEA20F177E9614>I<EAFFE0A2EAE000B3A7EAFFE0A20B1D799914>I<EAFFE0 +A21200B3A712FFA20B1D7F9914>93 D<EAFFFEA30F037E7E14>95 +D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3EA707C383FFF +80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0 +A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C0EEA3804 +EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<137EA2130E +A5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF1217 +7F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA +380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12 +FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA383B38301800EA701CA3EA30 +18EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA700F38E00380A438700700EA3C +1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF +8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I< +136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0C0EA7F80EA3F000C207E9714> +I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38 +FF1F80A21117809614>I<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB8EEAFFDF383C +F380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78EAFDFEEA1F86EA1E07121CAA38 +FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C +78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB03 +80001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<EA03E7EA0FF7EA1C +1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0A213187F8F14 +>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EAFFF0A211107F8F14>I<EA0FD8EA +3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8 +EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F +157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03E71310808F14>I<38FE3F80A2383C +1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA +380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E3FA2EA1E3CEA0E +78EA07705B12036C5A12037FEA0770EA0E781338487E38FE3F80A211107F8F14>I<38FE +3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC +127E123C11187F8F14>I<EA3FFF5AEA700E131C1338EA007013E0EA01C0EA0380EA0700 +120EEA1C0712381270B5FCA210107F8F14>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmsltt10 10.95 9 +/Ff 9 116 df<120C121E123FA2123E121C1200A8127012F8A412700814769318>58 +D<EA03FC48B4FC4813801303380601C01200A2137FEA07FF121FEA3F813878038012F012 +E0A21307EA701F387FFFF0EA3FFBEA0FE114147D9318>97 D<13F8EA07FE487E381F0780 +EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3FFE6C +5AEA07F012147B9318>101 D<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A +7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<1318133C137C133C131890 +C7FCA4EA0FF8121F120FEA0038A25BA65BA6EA7FFFB512806C1300111D7C9C18>105 +D<EA0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>108 +D<381F3C3CEBFEFE13FF3807CFCEEB8F8E380F0F0EA2EA0E0EA4381C1C1CA638FE3E3E38 +FF7F7F38FE3E3E1814809318>I<381F8F80383FBFE0381FFFF03803F07013E0EA07C013 +801300A4000E13E0A638FF87F8EBCFFCEB87F816147F9318>I<EBFE603807FFE05AEA1F +01121C003813C0EA3C00001F1300EA0FF8EA07FE3800FF801307383001C01270A2387803 +80EA7C07B51200EAEFFEEA63F813147D9318>115 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmbx12 13.14 55 +/Fg 55 122 df<903907FC0FE090393FFF3FF89039FC03FC783A03F007F0FC3807E00F15 +E0D80FC0147802071300A7B71280A23A0FC007E000B3A239FFFC7FFFA226267FA524>11 +D<EB07FCEB3FFF9038FE0780D803F013C03807E00FA2EA0FC0A3EC030091C7FCA3EC7FE0 +B6FCA2380FC007B3A239FFFC7FFEA21F267FA522>I<EAFFFEA50F057F8E14>45 +D<123C127E12FFA4127E123C08087C8711>I<EB7F803803FFF03807E1F8380F807C4848 +7E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C133E6C6C5A3807E1 +F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA387FFFFCA21623 +7CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14FF147FA212 +7C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370EBE003EA01 +C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48B4FC000713 +E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8EB07F0EB0F +C03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214FEA2387C01 +FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F81301130313 +071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12705AB612C0 +A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF814F014E014 +C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC7127EA3147FA2 +127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018237DA21F> +I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E133C1400A338 +FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F6C137C380F +80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A21580481400 +5C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25BA213F8A412 +01A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48133C141E1278A2 +127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F8000F13FCEA1E1F38 +3C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80F03807FFE00001 +130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E137CA2147E12FEA3 +147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C007E13FCA214F8 +14F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141CA2143EA3147FA2 +4A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A249 +6C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FF +F090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0FE0A216F0 +A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0ED0FE0ED +07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C>I<9138 +FF8008010FEBF01890393FC03C789039FE0006F8D801F813034848130148481300484814 +78121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14 +606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C> +I<B612E015FC3903F800FFED1FC0ED07E06F7E6F7E82150082A2167FA31780AA1700A316 +FEA24B5A5E4B5A4B5AED1FC0EDFF80B648C7FC15E029257EA42F>I<B7FCA23903F8007F +ED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFEA2EBF81E140E1406A2 +1660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428>I<B612FEA23803F8 +00151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F8080A491C8FCAAB512 +F0A221257EA427>I<9138FF8010010FEBE03090393FC078F09038FE000DD801F81307D8 +07F0130348481301491300001F1570485AA2007F153090C8FCA2481500A70203B5FCA26C +90380007F0A27F123FA26C7E120F7F6C7EEA01F8D800FE130F90383FC03990390FFFF070 +0100EB803028257DA430>I<B500E0B512E0A23B03F80003F800AF90B6FCA29038F80003 +B0B500E0B512E0A22B257EA430>I<B512E0A23803F800B3AFB512E0A213257EA417>I<B5 +12F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220257EA425 +>76 D<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318A2 +6D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8CA2 +EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF8903807FF +E07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80EC3FC0 +141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F15071503A215 +0115001678486C1438D8FFFC1418A22B257EA430>I<903803FF80011F13F090387F01FC +3901FC007FD803F0EB1F804848EB0FC0000F15E04848EB07F0491303003F15F8A2007F15 +FC90C71201A24815FEA96C15FCA26D1303003F15F8A26C6CEB07F0A26C6CEB0FE06C6CEB +1FC06C6CEB3F806C6CEB7F0039007F01FC90381FFFF00103138027257DA42E>I<B612E0 +15FC3903F800FFED3F80ED1FC016E0150F16F0A616E0151F16C0ED3F80EDFF0090B512FC +15E001F8C8FCAFB512E0A224257EA42A>I<B67E15F83903F801FEEC007F6F7E6F7EA282 +A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2157FA482A31760 +ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82 D<01FF1380000713E338 +0F80F7381E001F48130F481307140312F81401A27E91C7FCB4FCEA7FE013FE383FFFE014 +F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200C01303A315C07E6C1307 +6C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<007FB612F8A2397E00FE +010078EC00780070153800601518A200E0151C160C5AA4C71400B3A390B512FEA226247E +A32B>I<B539E00FFFC0A2D803F8C7EA78001630B3A700015D7F00005D137C6D495A6D01 +07C7FC90380FE03E903803FFF89038007FC02A257EA42F>I<B5398001FFE0A2D807F8C7 +EA1C0000031518A26D1438000115306D1470000015607F6D5C80013F495AA2ECC003011F +91C7FC6E5A010F130614F001075BA26D6C5AA2ECFC3801011330ECFE700100136014FF6E +5AA26E5AA36EC8FCA2140EA22B257FA42E>I<3A7FFFC07FFEA23A03FC00078093C7FC6C +6C130E6C6C130C5D90387F80386D6C5A90381FE0605DEB0FF1903807FB8092C8FCEB03FE +13011300806E7E81A2ECDFE0903801CFF0EB038FEC07F890380603FC90380E01FE131C90 +381800FF496D7E1370496D7E496D7E4848130F486C80D8FFFC90B51280A229257EA42E> +88 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0 +EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97 +D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC +A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB +7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80 +EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38 +0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF +FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E +12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80 +17187E971C>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800007E7FA6003E5B +6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C13FC806C7F4814 +80383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807FFF8C613C01B24 +7E971F>103 D<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D007E013E0A2 +13C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00C7FCA7EA7F +C0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780EC0E005C14 +305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2EC1F80EC0F +C039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267EA511>I<26FF +80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001A013F0A201C0 +13E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E0FC013989038 +9007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF03807C0F8381F80 +7E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E6C6C5A3803FF +F038007F801A187E971F>I<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 +D<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B512E0EB0E0090 +381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E00640EC038091 +C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>I<EC3FCEECE0EE90380181FC +1303EC00DC49131C1538A3130E1570A290B512F090380E00704913E0A4EC01C01338A3EC +0380A213701588EC0710A313E0EC0320EC01C091C7FC5B1201A2EA3180127948C8FC1262 +123C1F29829F1B>I<13E0EA01F0A2EA03E0A313C0A3138012071300A31206A35AA31208 +A3C7FCA5127012F8A25A5A0C217BA00E>33 D<EC0804EC0C06EC180CA2EC3018A2EC6030 +A2ECC060A290380180C0A39038030180A2003FB6FCA23900180C00A3495AA3495AA2B612 +F8A2390180C00038030180A2D80603C7FCA2EA0C06A3485AA2485AA2485AA220297B9F25 +>35 D<01701304D80188130CD803041338D806071370390E02E3E0000CEB1C60001CEB00 +C0EC0180393804030014065C13085C495A5C381820C0EA08C03807018039000303C09038 +06062090380C0C10EB18181430EB3070EB6060EBC0E0EA0180EA0300903801C020120612 +0C0018144012300100138048EBC10048136248133C1E2579A125>37 +D<130113021304130813101320136013C0EA0180A2EA03005A1206120E120C121C121812 +38A212301270A21260A212E0A25AAD12401260A212207EA27E102E79A113>40 +D<13107F7F130613021303A37F1480A71303A31400A35BA21306A2130E130CA2131C1318 +133813301370136013E05B485A90C7FC5A12065A5A5A5A1280112E80A113>I<1330A313 +20A2381861C0381C678038064E00EA0378EA01E0A2EA07B0EA1C98EA798EEAE1860001C7 +FCA25AA3121478A117>I<121C123CA41204A21208A212101220A212401280060E7D840E> +44 D<EA7FF0EAFFE0127F0C037D8A10>I<127012F8A212F012E005057B840E>I<154015 +C0EC0180A2EC0300A21406A25C5CA25CA25C5CA2495AA249C7FCA213065BA25BA25BA25B +5BA2485AA248C8FCA212065AA25AA25AA25A5AA25A1A2D7FA117>I<EB0F80EB30E0EBE0 +70EA01C0380380301438EA0700481378A2120E121E14704813F0A4387801E0A314C0EA70 +0312F01480130714001270130E5BEA30386C5AEA0FC0151F7C9D17>I<1302A21306130E +133C13DCEA031C12001338A41370A413E0A4EA01C0A4EA0380A41207EAFFF80F1E7B9D17 +>I<131FEB61C0EB80E0EA010000021370134012041320380840F0A3EB80E0EA09010006 +13C038000380EB0700130C5B13605B0003C7FC12044813405A1480EA2001EA7E033847FF +00EA41FEEA80FC1378141F7C9D17>I<EB1F80EB60E0EB80703801003000021338EA0440 +A21320EB407013C038038060C712E0EB01C0EB030013FE131C130613071480A312301278 +A238F00F001280EA401E131C5BEA30E0EA0F80151F7C9D17>I<146014E0A3EB01C0A3EB +0380A214005BA21306130E130C5BA25BA213635B1387EA01071203EA060E12041208EA3F +8EEA607C38801FC038001C00A25BA45BA2136013277E9D17>I<EB80603801FFC01480EB +FE0090C7FC1202A45AA213F8EA050CEA0A06EA0C07120800001380A4EB0F00127012F013 +0EEAE01EEA801C5B1330EA4060EA61C0001FC7FC131F7B9D17>I<EB07C0EB18201330EB +E0E0EA01C11381380380C048C7FC5A120E121E1378EA1D84EA3E061307123C007C138012 +78A338700F00A212F0130E131EEA701C1260EA7038EA3070EA10C0EA0F80131F7B9D17> +I<3804E010EA0BF0000F1320001F1340381E19C038380E80EA3001386003001240EA8006 +EA000E130C131C131813385BA213F05B1201A2485AA3485AA3120F90C7FCA21206141F79 +9D17>I<EB0F80EB30C0EB4060EB80301201EA0300A3481360EB8040EBC0C03803E180EB +F600EA01FC1200487EEA033F38041F80EA180FEA10031230EA6001A338C00300A2EA6006 +1304EA2018EA1830EA0FC0141F7C9D17>I<1207120F121FA2120E1200AA127012F8A212 +F012E008147B930E>58 D<14021406A2140E141EA2143F142F144F14CF148FEB010FA213 +02A213041308A20110138014071320EB3FFFEB40071380A2EA0100A2120212061204001E +14C039FF807FF81D207E9F22>65 D<48B512C039001E00F015781538153C5BA4491378A2 +15F0EC01E09038F007809038FFFE009038F00F80EC03C03801E00115E0A3EA03C0A315C0 +38078003EC0780EC0F00141E380F007CB512E01E1F7D9E20>I<ECFE0290380781869038 +1C004C49133C136049131C00011418485A48C7FC5A001E1410A2481400A25AA45AA41580 +1270A2EC01007E140200185B6C13186C1320380381C0D800FEC7FC1F217A9F21>I<90B5 +128090381E00E015701538151C5B150EA35BA449131EA44848133CA3157848481370A215 +E0EC01C0380780031580EC0E005C380F0070B512C01F1F7D9E22>I<48B512FE39001E00 +1C150C1504A25BA490387804081500A2140C495AEBFFF8EBF018A23801E010A3EC001048 +481320A21540A248481380140115001407380F001FB512FE1F1F7D9E1F>I<48B512FC39 +001E003815181508A25BA4491310EC0800A3495A1430EBFFF0EBF0303801E020A44848C7 +FCA4485AA4120FEAFFF81E1F7D9E1E>I<ECFC04903807030C90381C00980130137813E0 +4848133848481330A248C7FC120E001E1420A2481400A25AA45AECFFF0EC0780A2EC0F00 +1270A3141E7E0018133E001C132E6C13CC38038304D800FCC7FC1E217A9F23>I<9039FF +F1FFE090391F003E00011E133CA3495BA4495BA449485A90B5FCEBF001A24848485AA448 +48485AA4484848C7FCA4000F5B39FFF1FFE0231F7D9E22>I<3801FFF038001F00131EA3 +5BA45BA45BA4485AA4485AA4485AA4120FEAFFF0141F7D9E12>I<9039FFF01FE090391F +000F80011EEB0E0015085D495B5D4AC7FC1402495A5C5C1430EBF0F0EBF1F8EBF27813F4 +48487E13F013E080EA03C0A280A2EA07806E7EA3000F8039FFF03FF8231F7D9E23>75 +D<3801FFF8D8001FC7FC131EA35BA45BA45BA4485AA315803903C00100A25C1402380780 +06A25C141C380F0078B512F8191F7D9E1D>I<D801FEEC7FC0D8001EECFC005E0117EB01 +78A20127EB02F01504A215080147EB09E015111521A20187495AEB83801583A23A010381 +07801482A2148400024AC7FC14881490A2390401E01EA214C0000C1380001C143E3AFF81 +03FFC02A1F7D9E29>I<01FFEB3FE0011FEB0F001504EB1780A201275BEB23C0A3903841 +E010A214F0134001805B1478A348486C5AA3141E00025CA2140FA24891C7FC80A2120C00 +1C1302EAFF80231F7D9E22>I<EB01FCEB070790381C01C090383000E001E01360484813 +70485A0007143890C7FC120E121E121C123CA2481478A44814F0A215E0140115C0140300 +701480EC070000785B0038131E5C6C13706C5B38078380D801FCC7FC1D217A9F23>I<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>I<EB1FE0A2EB1800A25BA45BA45BA4485AA448C7FCA41206A45AA45AA45AA4 +5AA3EA7F8048C7FC132D7FA10E>I<EB1FE0A2EB0060A214C0A4EB0180A4EB0300A41306 +A45BA45BA45BA45BA45BA4485AA3127F48C7FC132D82A10E>93 D<EBF180380389C03807 +0780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C8038 +0F070013147C9317>97 D<EA0780123FEA0700A4120EA45AA213F0EA1D0CEA3A0E123CEA +380FA21270A4EAE01EA3131C133C1338EA607013E0EA31C0EA1F0010207B9F15>I<137E +EA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA300CEA1830EA +07C011147C9315>I<1478EB03F8EB0070A414E0A4EB01C0A213F1EA038938070780EA0E +03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070015 +207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA78005AA4EA70 +01A21302EA380CEA1830EA07C010147C9315>I<1478EB019CEB033CA2EB07181400A213 +0EA5EBFFE0EB1C00A45BA55BA55BA5485AA35B1231007BC7FC12F31266123C1629829F0E +>I<EB3C60EBE2703801C1E0EA0380EA07005A380E01C0121EA3383C0380A4EB0700A2EA +1C0F1317EA0C2EEA03CEEA000EA25BA21230EA7838485AEA60E0EA3F80141D7E9315>I< +EA01E0120FEA01C0A4485AA448C7FCA2131E1363380E8180380F01C0120EA2381C0380A4 +38380700A3EB0E1000701320A2131CEB0C4000E013803860070014207D9F17>I<13C0EA +01E0A213C0C7FCA7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270 +EA31001232121C0B1F7C9E0E>I<EB0180EB03C0A2148090C7FCA7133C13461387A2EA01 +07A2EA020E1200A35BA45BA45BA45BA21230EA79C0EAF1800063C7FC123C1228829E0E> +I<EA01E0120FEA01C0A4485AA448C7FCA2EB03C0EB0420380E08E013111321EB40C0381C +8000001DC7FC121EEA1FC0EA38E01370A2EB384038707080A3EB310012E0EA601E13207D +9F15>I<EA03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4126412380A +207C9F0C>I<391C0F80F0392630C318394740640C903880680EEB0070A2008E495A120E +A34848485AA3ED70803A3803807100A215E115623970070064D83003133821147C9325> +I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038 +1388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C338030180000E13 +C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA3018EA1870EA07C0 +13147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E01200A33801C03CA3 +143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2B47E171D809317 +>I<EBF040380388C038070580EA0E03121C123C383807001278A3EAF00EA45BA2EA703C +135CEA30B8EA0F381200A25BA45BA2EA0FFE121D7C9315>I<EA1C1EEA266138278380EA +47871307EB0300008EC7FC120EA35AA45AA45A123011147C9313>I<13FCEA0302EA0601 +EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA40 +10EA2060EA1F8010147D9313>I<EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA4 +5AA45AA31320EA7040A21380A2EA3100121E0C1C7C9B0F>I<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 df<EAFFF0A40C04808B0F>45 D<1238127C12FEA3127C123807077D860D> +I<1307A3497EA2497EA3497E1337A2EB63F0A3EBC1F8A3380180FCA33803007EEBFFFE48 +7F3806003FA2000EEB1F80120CA2001CEB0FC039FF80FFF8A21D1F7E9E22>65 +D<B512F014FC380F807E80A21580A2141F143FA31500147E14FEEBFFF814FEEB803FEC1F +80EC0FC0A215E0A515C0141F1580143FB5EAFE0014F81B1F7E9E20>I<90380FF0109038 +7FFC703901FC0EF03803E003380FC001381F8000A248C71270A2007E1430A212FE1500A8 +007E1430A27E15706C6C136015E06C6C13C03903E003803901FC0F0038007FFCEB0FF01C +1F7E9E21>I<B512F014FE380FC07FEC1F80EC07C015E0EC03F0A2EC01F8A315FCA915F8 +A3EC03F0A215E01407EC0FC0EC3F00B512FE14F01E1F7E9E23>I<B6FCA2380FC01F8080 +8015801401A2EBC181A2EC8000A213C313FFA213C313C1A215C0A2EBC000EC0180A31403 +A21407EC3F00B6FCA21A1F7E9E1E>I<B512FEA2380FC03E140EA2140614071403A2EBC1 +83A21480A213C313FFA213C313C1A4EBC000A8EAFFFEA2181F7E9E1D>I<90381FE02090 +387FF8E03801F81D3807E007380FC003381F800190C7FC5A5A007E1460A212FE1500A590 +3801FFFCA290380007E0127EA2127F7E7E1380EA0FC03807E00F3801FC1F38007FF89038 +1FE0601E1F7D9E24>I<39FFFC7FFEA2390FC007E0AC90B5FCA2EBC007AD39FFFC7FFEA2 +1F1F7E9E24>I<EAFFFCA2EA0FC0B3A9EAFFFCA20E1F7E9E12>I<3803FFF0A238001F80B3 +A21210127C12FEA338FC3F00EA783EEA3FFCEA0FE0141F809E18>I<EAFFFEA2EA0FC0B1 +140CA4141CA2141814381478EBC1F8B5FCA2161F7E9E1B>76 D<39FFC007FEA2390FE000 +607FEA0DF8A2EA0CFC137EA27FEB1F80EB0FC0A2EB07E0EB03F014F81301EB00FC147EA2 +143FEC1FE0140FA214071403A214011400D8FFC01360A21F1F7E9E24>78 +D<EB3FE0EBFFF83803F07E3807C01F390F800F80001F14C0393F0007E0A24814F0007E13 +03A200FE14F8A9007E14F0A2007F13076C14E0A2391F800FC0390FC01F803907E03F0038 +03F07E3800FFF8EB3FE01D1F7E9E22>I<B512E014FC380FC07E80EC1F80A215C0A51580 +A2EC3F00147EEBFFFC14E001C0C7FCACEAFFFCA21A1F7E9E1F>I<B512E014FC380FC07E +80EC1F8015C0A61580EC3F00147EEBFFFC14E0EBC0F080147CA2147EA3147FA31503EC3F +83EC1F8639FFFC0FFCEC03F8201F7E9E23>82 D<3803F040380FFDC0EA1C0FEA3803EA70 +01A2EAF000A36C13007EB47EEA7FF8EA3FFEEBFF806C13C01207C613E0130FEB03F01301 +130012C0A36C13E0130100F813C038FE038038EFFF00EA81FC141F7E9E19>I<007FB512 +C0A2387C1F830070138100601380A200E014E000C01460A400001400B13807FFFEA21B1E +7E9D20>I<39FFFC0FFCA2390FC000C0B3A40007EB018013E00003EB03006C6C5A3800F8 +1EEB3FF8EB0FE01E1F7E9E23>I<39FFF803FEA2390FC000701560A26C6C13C0A2EBF001 +00031480A23901F80300A26D5A00001306A2EB7E0CA36D5AA214B8EB1FB0A2EB0FE0A36D +5AA36D5AA21F1F7F9E22>I<397FFC3FF8A23907E00700EBF0060003130E3801F80CEBFC +1C000013186D5AEB7E70EB3F605C131FA2130F6D7E80130F801319EB38FCEB30FEEB607E +EBE07F497E3901801F80000314C0EB000F4814E039FFE07FFEA21F1F7F9E22>88 +D<39FFF803FEA2390FC000706D1360000714C07F3903F801800001130301FC130000005B +EBFE06EB7F0E140CEB3F9CEB1F9814F0130F5C1307ABEB7FFEA21F1F7F9E22>I<EA0FF0 +EA3FFCEA7E1E131FEB0F80123E1218120013FF120FEA1F0F127CA212F8A31317EA7C3738 +3FE3F0EA0F8114147F9316>97 D<B4FCA2121FAA133FEBFFC0EBC3E0EB01F0EB00F8A214 +FCA714F8A3EB01F0EBC3E0381CFFC038183F0016207F9F19>I<EA03F8EA0FFEEA1F3F12 +3E127EEA7C3E130C00FCC7FCA6127CA2387E0180EA3E03381F8700EA0FFEEA03F811147F +9314>I<EB1FE0A21303AAEA03F3EA0FFFEA1F0FEA3E03127CA312FCA7127CA2EA3E07EA +1F0F380FFBFCEA03F316207F9F19>I<EA03F8EA0FFEEA1F0F383E0780123C007C13C0A2 +12FCB5FCA200FCC7FCA3127CA26C13C0A2381F03803807FF00EA01FC12147F9315>I<13 +7F3801FF803807C7C0EA0F8F130F121FEB078090C7FCA5EAFFF0A2001FC7FCB0EAFFF0A2 +12207F9F0E>I<3803F0E0380FFDF0EA1E1EEA3C0F007C1380A5003C1300EA1E1EEA1FFC +EA33F00030C7FCA21238EA3FFEEBFF806C13C04813E0387803F0EA700012F0A4387801E0 +383E07C0381FFF803803FC00141E7F9317>I<B4FCA2121FAA131FEB3FC01363EB83E0A2 +1303AD38FFE7FCA216207E9F19>I<121C123E127FA3123E121CC7FCA6B4FCA2121FB0EA +FFE0A20B217FA00C>I<B4FCA2121FB3AAEAFFE0A20B207F9F0C>108 +D<39FE0F80F890383FC3FC391E63E63E9038C1FC1FEB81F8381F01F0AD3AFFE7FE7FE0A2 +23147E9326>I<EAFE1FEB3FC0EA1E63EB83E0A2EA1F03AD38FFE7FCA216147E9319>I<EA +01F8EA0FFF381F0F80383E07C0387C03E0A300FC13F0A7007C13E0A2383E07C0381F0F80 +380FFF00EA03FC14147F9317>I<EAFF3FEBFFC0381FC3E0EB01F014F8A2EB00FCA714F8 +1301A214F0EBC7E0EBFFC0EB3F0090C7FCA7EAFFE0A2161D7F9319>I<EAFE3C137F381E +DF80139F121FEB1F00130690C7FCABEAFFF0A21114809313>114 +D<EA0FD8EA3FF8EA7038EAE018A3EAF800EAFF80EA7FF0EA3FF8EA1FFCEA03FEEA003EEA +C00EA212E0130CEAF81CEAFFF8EAC7E00F147F9312>I<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 D<B512F8A715077F921B>I<EB01C013 +03130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A31C2E7AAD28>49 +D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF0007CEB0FF8007EEB +07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215F0EC1FE015C0EC +3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49131C485A48C712 +3C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<EB1FF890B5FC000314C03907E01FF0 +390F0007F8D81F807FEA3FC06E7EA4EA1F80380F0007C75BA25D4A5A4A5AEC3F8002FFC7 +FCEB3FF8ECFF809038001FE06E7E6E7E6E7E816E7EA21680A3121C123E127FEAFF801600 +A24A5AEA7F00007E495A003C5C391FC01FF06CB512C0000391C7FC38003FF8212E7DAD28 +>I<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 +D<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D +5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 +D<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49 +487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B5 +12F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497E +D907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512 +C0A3C60180C7387FC000B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F> +I<B61280A3C6EB8000B3B3A7B61280A319317EB01E>I<B67EA3000190C9FCB3A9EE0380 +A416071700A25EA35E5E5E5E4B5A150FB7FCA329317DB030>76 D<EC0FFF91B512F09039 +07FC03FE903A1FE0007F80D93F80EB1FC049C76C7ED801FEEC07F848486E7E48486E7EA2 +48486E7E001F178049157F003F17C0A34848ED3FE0A300FF17F0AB007F17E06D157FA300 +3F17C0A26C6CEDFF80A26C6C4A130000075E6D140300035E6C6C4A5A6C6C4A5AD93FC0EB +3FC06D6C495A902707FC03FEC7FC0100B512F0020F90C8FC34317CB03D>79 +D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F5F4C5A +4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A583A4F0 +038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>82 +D<90391FF8018090B51203000314C73907F007EF390F8000FF48C7127F003E141F150F5A +150712FCA215037EA26C91C7FC13C0EA7FF0EBFF806C13F8ECFF806C14F06C806C806C14 +FFC6FC013F1480010114C0D9001F13E01401EC003FED1FF0150F1507126000E01403A316 +E07EA26CEC07C07EB4EC0F8001C0EB1F00D8FBFC13FE00F1B512F8D8E03F5BD8C0031380 +24317CB02D>I<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F0 +1780A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>I<B6D88003B51280A3C60180 +C73807C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00 +FF801FC0023FB55A020F49C8FC020013E039317EB03E>I<007FB590387FFFF8A3C601E0 +903801F000017F5D6D6C5C6D6C13036E495A010F4AC7FC6D6C130E6E131E6D5C6D6D5A6D +EBC070EDE0F091387FE1E091383FF3C0EDFB80EC1FFF6E90C8FC6E5A81806E7F82804A7F +4A7F913807BFF8151F4A6C7E021E7FEC3C0791383803FFDA78017F02F08049487E4A6D7E +0103814948133F91C76C7E010E6E7E011E8149140701386E7E01FC1680B500E0017F13FF +A338317EB03D>88 D<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC0 +7FEA0780C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407 +A2387F800D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 +D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0 +49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090 +39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803 +F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2 +001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED +0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48 +48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01 +FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0 +3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7 +FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807 +FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC +1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90 +391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0 +00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC +121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C +140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0 +D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013 +809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E +487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA +01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9 +3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602 +F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE +EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F +2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15 +8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C +3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF +FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216 +FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC +3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3 +0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 +D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0 +6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13 +1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201 +12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB +07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003 +147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<3A7FFF807FFCA3 +3A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF +806D90C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03FEEB +3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>120 +D<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C5CA2EC803C01 +7F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF6D90C7FCA2 +6D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC1EEA787CEA3F +F0EA0FC0262E7E9F2B>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmbx12 14.4 63 +/Fl 63 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612 +0E5A5A12100A157B8813>44 D<B51280A611067F9016>I<121C127FA2EAFF80A3EA7F00 +A2121C09097B8813>I<1403EC0780A2140F1500A25C141E143E143CA2147C1478A214F8 +5C13015CA213035CA213075C130F91C7FCA25B131E133E133CA2137C1378A213F85B1201 +5BA212035BA212075B120F90C8FCA25A121EA2123E123C127C1278A212F85AA21260193C +7CAC22>I<EB3F803801FFF03807E0FC380FC07E48487E497E481480003E130F007E14C0 +A400FE14E0AF007E14C0A46CEB1F80A26C14006D5A380FC07E6C6C5A3801FFF038003F80 +1B277DA622>I<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>I<EB +FF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2127E +003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013705B +3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803FFF0 +4813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07F0EB +FFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F481480007CEB +7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03BFEB +073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8A3C7 +EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091C7FC +001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218127C +12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA622> +I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F8091 +C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4127E +A4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622>I< +1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA2495A13 +0791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB3FC0 +3801FFF04813FC3807C07E48C67E001E7FEC0F80123EA2123F138001C01300EBF01F381F +FC1E6D5A380FFFF86C13E06C7F6C13FC8000077FD80F0F1380D81E0713C0EA3E01397C00 +7FE0141F48130F14071403A315C0127C007EEB07806CEB0F00381FC03F380FFFFC00035B +38007FC01B277DA622>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480 +A2140F00FE14C0A315E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA00 +08010013C0A3EC1F80123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801 +FEC7FC1B277DA622>I<121C127FA2EAFF80A3EA7F00A2121CC7FCA9121C127FA2EAFF80 +A3EA7F00A2121C091B7B9A13>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3 +A2903801C1FEA201037F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039 +700007F8A201F080491303000181491301A2000381D8FFFE013F13FCA32E297EA833>65 +D<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0 +150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA6 +16FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>I<91387FE003903907FF +FC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F48 +5A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C +6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831> +I<B612FCEDFF8016E03A03FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07 +F0A417F8AA17F0A3EE0FE0A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7 +FC2D297EA834>I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A3 +02031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F8 +15011503151FB712F0A327297EA82C>I<B712C0A33903FC003FED0FE015031501A21500 +A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FC +A324297EA82A>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FF +D801FC7F484880484880484880485A82485A82127FA290CAFC5AA892B512F87E7F030013 +00123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F903900 +7FF0032D297CA835>I<B5D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5 +D8F00FB5FCA330297EA835>I<B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0 +EBFFFEA3D803FCC7EA0F00161E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407 +140F4A7EEC7FF04A7EEBFDE79038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E +8215076F7E6F7E8281EE7F80B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FC +B3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00B7FCA322297EA828>I< +D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038F +A3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0 +A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280 +A2157039297DA840>I<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87 +FCEB83FEEB81FF01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E13 +81ED7FC1ED3FE1ED1FF1150F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE +14031601A230297EA835>I<ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E0 +48486D7E48486D7E000F8148486D7EA24848147FA2007F168090C8123FA34816C0AA6C16 +806D147FA2003F1600A26C6C14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90 +263FC0FFC7FC90380FFFFC010013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED +07F0ED03F816FC150116FEA716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0 +B512F0A327297EA82E>I<ECFFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0 +EB03F000078148486D7E48486D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16 +806D147FA2003F1600A26C6C14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D8 +01F9EB67E0D800FFEB3FC090263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F +8316FF6F1380A21700816F5A6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0 +ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED +3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832> +I<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2 +14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB +007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00 +00E15B38C01FF01C297CA825>I<007FB71280A39039807F807FD87C00140F00781507A2 +0070150300F016C0A2481501A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFF +FEA3D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91FC05B90390FF003F0 +6DB55A01001480DA1FFCC7FC2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED +0380A26D14076C16006E5B017F140E80013F5CA26E133C011F14386E1378010F14708001 +075CA26D6C485AA2ECFE0301015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5A +A26E5AA36E5AA26E5AA230297FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA70 +00A26D6D7E000160A26D6E13016C604B138002801503017F5F4B13C0D93FC0013F49C7FC +A2913AE00E1FE00F011F160E17F09126F01C0F131E010F161C033C13F8902707F838075B +A2037813FC902703FC70035BA2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5A +A36EC76CC8FCA2023E80021E141EA242297FA845>I<3B7FFFF01FFFE0A3000190C7EAF0 +006C6D485A02C05B017F13036D6C485AD91FF090C7FC5D90380FF81E6D6C5A1538903803 +FE786D6C5A5D6D5B147F6E7EA26E7E81143F81EC7BFEECF3FFEB01E102C07F01036D7EEB +078049486C7E010E6D7E131E496D7E01386D7E498001F0130348486D7EB5013F13FCA32E +297EA833>I<003FB6FCA39038F001FE90388003FCEB0007003E5C003C495A48131F5D14 +3F00705C4A5A14FF92C7FCC6485A13035C495A130F5C131F5C495A017FEB03801480EBFF +005A5B4848130712075B000FEC0F005B48485B003F5C4913FF387F8003B7FCA321297CA8 +29>90 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801 +FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B +7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F8 +9038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380F +FF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A2 +48133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C +3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC0 +0F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FF +E738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80 +127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007 +003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813 +F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F000 +03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E +6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C +14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512 +0038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EB +E80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0 +A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<1307EB0F +80EB1FC0EB3FE0A3EB1FC0EB0F80EB070090C7FCA7EBFFE0A3130FB3AA127C12FE14C0EB +1F801400EA7C3EEA3FFCEA0FF0133784AA15>I<EAFFE0A3120FACEC1FFCA3EC0780EC0F +00141E5C5C14E0EBE3C013E7EBEFE0EBFFF08013F3EBE1FCEBC0FE147FA2EC3F80EC1FC0 +EC0FE0A2EC07F039FFFC1FFFA3202A7FA923>I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA9 +12>I<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039C803 +F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC07E90 +38C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA3201B7D +9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007EEB03F0 +A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801FFFC38 +003FE01D1B7E9A22>I<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 +D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5 +12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18> +I<EA3803387C0780A2EAEE0F1400A25B131EA2133EEA7C3CA2EA387CEA0078A213F85B12 +015BA212035BA21207EB8380EB87C0120FEB0EE0A2121F121EA2123E383C07C0A2381803 +8013247E9F18>37 D<1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B +18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E +121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012787E7E7EEA078012 +03EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A12600C24 +7C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF +38FDDF80EAF1C73841C100EA01C0A411147D9718>I<136013F0A7387FFFC0B512E0A26C +13C03800F000A7136013147E9718>I<121C123E127E127F123F121F1207120E121E127C +12F81260080C788518>I<387FFFC0B512E0A26C13C013047E8F18>I<1230127812FCA212 +7812300606778518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F85B +12015B12035BA212075B120F90C7FCA25A121E123E123CA2127C127812F85AA212601124 +7D9F18>I<EA01F0EA07FC487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9 +EAF001007013C0A2EA780300381380381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18> +I<EA01801203A21207120F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18 +>I<EA03F0EA0FFEEA3FFF387C0F80387003C0EAE00138F000E0A21260C7FCA2EB01C0A2 +1303EB0780EB0F00131E5B5B5B485AEA07C0485A381E00E05AEA7FFFB5FC7E131C7E9B18 +>I<EA07F8EA1FFE487E38780780EB03C0130112301200EB0380A2EB0F00EA03FF5B7F38 +000780EB03C01301EB00E0A312F0A2EB01C01303387C0780383FFF006C5AEA03F8131C7E +9B18>I<131F5B1377A213E7120113C7EA038712071307120E121E123C1238127812F0B5 +12F8A338000700A6EB7FF0A3151C7F9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F +383C0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA +1FFCEA03F0131C7E9B18>I<137E48B4FC00071380380F83C0EA1E03121C3838018090C7 +FC5AA2EAE1F8EAE7FEB5FC38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C +03381E0780380FFF006C5AEA01F8131C7E9B18>I<12E0B512E0A214C038E00380EB0700 +C65A131E131C5BA25B13F05BA2485AA3485AA448C7FCA7131D7E9C18>I<EA03F8EA0FFE +487E383E0F80EA3803387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C07 +80387001C000F013E0EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E +9B18>I<EA03F0EA0FFC487EEA3C0F38780780EA700338E001C0A3EB00E0A2EA7001EA78 +03EA3C0FEA1FFFEA0FFEEA03F0C7FCEB01C0A338300380EA7807EB0F00133EEA3FFCEA1F +F0EA07C0131C7E9B18>I<1230127812FCA2127812301200A81230127812FCA212781230 +0614779318>I<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C +123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0 +485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303 +EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C013 +0C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB +1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<137CEA +01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1 +C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00 +131C7E9B18>64 D<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA +0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380381C +03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014 +E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03 +EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE00EA +00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A8 +14F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3381C +0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B5 +12F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18> +I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F +387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F0 +38FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F +9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FF +C0A338000E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8 +387F07F0381C03C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C +0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3001C +C7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA2 +13DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF838 +7F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F +07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE0 +00B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014 +C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA314 +1C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EAF079 +387039C0EA783FEA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B18> +I<EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7F +EB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>I<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>I<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C +123CA2123E121E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131E +A2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F +18>I<387FFFC0B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A3 +12F812FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213 +FF1207121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I< +127E12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2 +EB80E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E07 +3838030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318 +>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA +7007A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1F +FEEA3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381F +FF8000071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387F +FFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C +0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F0 +38700070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12 +FE127E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7 +FC171C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D +7C9C18>I<1338137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0 +EA3F800E277E9C18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0F +F87F139C130EEA0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201 +B3A4B51280A3111C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38 +FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E0130012 +0EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803 +387001C0A238E000E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F0 +13147E9318>I<EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370 +A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801 +F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA +0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA +07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780F +EAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC +13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801 +C1C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F03 +3807FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E +0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F813 +8F1307383800E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA2380707 +0015147F9318>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013 +F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I< +387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA2 +13CC120013DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<38 +3FFFF05AA2387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F007012 +1E5A5AB512F0A314147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C +7EEA01E01200AB1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18> +I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC +127C13247E9F18>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fn cmbx12 20.736 3 +/Fn 3 100 df<B8FC17F017FC17FF28007FF0000F13C0040113E09338007FF0EF3FF8EF +1FFCA218FE170FA218FFA718FEA2171F18FC18F8173FEF7FF0933801FFE0040F138091B7 +120017F817C002F0C9FCB3A5B612F8A4383B7CBA42>80 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>I<EB3FE013E0EA01C1EA0381EA07 +00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903 +80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<127012 +F8A71270AA1220A51200A5127012F8A3127005217CA00D>33 D<D807801318EA1840486C +5B011813E03960170360903808FCC000E0EB0180A24AC7FC1406A25C00605B131000305B +495AEA1840380780C03900018078EC8184903803030281EB0607EB0C0691380E00801318 +1330A2136013C0A23A01800601003803000714030006140248EB01840004EB007821257E +A126>37 D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 +D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 +30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 +0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A +5A0A2E7EA112>I<EA0180A5EAE187EA718EEA399CEA0FF0EA03C0A2EA0FF0EA399CEA71 +8EEAE187EA0180A510147DA117>I<127012F012F8A212781208A31210A31220A2124005 +0E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB +0180A3EB0300A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA3 +5AA35AA2122D7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00 +701380A3EA780700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12 +F31203B3A6EA07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000 +F013C0EAF803A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A +5A00101380EA3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307 +A2EA380F12001400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A3 +00F013801240EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2 +134E138EA2EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0 +141E7F9D17>I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480 +EA0003A214C0A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D +17>I<137CEA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EA +F21CEAF406EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01 +F0121F7E9D17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA2 +1360A213E05B1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001 +801260A3127038780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80 +EA6007EB01C012C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I< +EA03F0EA0E18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA +03E338000380A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I< +127012F8A312701200AA127012F8A3127005147C930D>I<127012F8A312701200AA1270 +12F012F8A212781208A31210A31220A21240051D7C930D>I<B612FCA2C9FCA8B612FCA2 +1E0C7E9023>61 D<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801E +A248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22> +65 D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC +07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE010903838 +1C309038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A9 +1278007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E +9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153C +A2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F00 +0F14031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540 +A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4 +EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE0 +2090387818609038E004E03803800238070001481300001E1460A25A1520127C127800F8 +1400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E004609038781820 +90380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D +1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<3807FFC038003E00131EB3A312 +2012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E17>I<EAFFF8EA0F8090C7FCB2 +1402A414061404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2D8 +05C0130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB03 +84A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003E0 +EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478 +A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB70383801 +C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147C +A900781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801 +E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580A2 +EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E4848 +7E39070003804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147CA9 +00781478007C14F8A2003C14F0383E0781391E0841E0390F1023C0000714803903901700 +3801D01E3900783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E9F +23>I<B512E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB +80601438143C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F +9E22>I<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 +D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313 +1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00 +C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F +19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C +0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112 +381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA +0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA +01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010 +20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33 +E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13 +C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212 +1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F +9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61 +80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0 +EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC +121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200 +1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF +8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070 +13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180 +14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC +A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270 +12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18 +EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000 +127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F +9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F +9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8 +383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3 +132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807 +04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F +9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013 +7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I< +38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8 +A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260 +EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006 +130EEAFFFE10147F9314>I 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(<width>x<height>)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(\(<predefined>)f(|)i +(<width>x<height>+-<left_margin)o(>+-<top)o(_margin)o(>\))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(\(<width>x<height>\))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(None<Key>w:)46 b(AddRats\(AllRats\))435 +1340 y(!Shift<Key>w:)g(AddRats\(SelectedRats\))435 1392 +y(None<Key>o:)g(DeleteRats\(AllRats\))21 b(AddRats\(AllRats\))435 +1443 y(!Shift<Key>o:)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(!Mod1<Key>s:)165 +b(Change2ndSize\(Object,)21 b(+5\))435 2487 y(!Mod1)i(Shift<Key>s:)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(!Ctrl<Key>h:)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(None<Key>n:)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(!Ctrl<Key>o:)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(None<Key>s:)70 b(ChangeSize\(Object,)21 b(+5\))435 +1653 y(!Shift<Key>s:)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(None<Key>q:)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(<Key>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(!Shift<Key>c:)22 +b(Connection\(Reset\))435 326 y(None<Key>f:)70 b(Connection\(Find\))435 +378 y(!Shift<Key>f:)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(None<Key>e:)70 b(DeleteRats\(AllRats\))435 699 y(!Shift<Key>e:)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(None<Key>c:)46 b(Display\(Center\))435 2117 +y(None<Key>d:)g(Display\(PinOrPadName\))435 2169 y(!Shift<Key>d:)22 +b(Display\(Pinout\))435 2221 y(None<Key>r:)46 b +(Display\(ClearAndRedraw\))435 2273 y(None<Key>.:)g +(Display\(Toggle45Degree\))435 2325 y(None<Key>/:)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(!Ctrl<key>m:)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(<Key>Escape:)309 b(Mode\(None\))435 +2047 y(<Key>space:)333 b(Mode\(Cycle\))435 2099 y(None<Key>BackSpace:) +141 b(Mode\(Save\))22 b(Mode\(Remove\))g(Mode\(Notify\))h +(Mode\(Restore\))435 2151 y(None<Key>Delete:)213 b(Mode\(Save\))22 +b(Mode\(Remove\))g(Mode\(Notify\))h(Mode\(Restore\))435 +2203 y(None<Key>F1:)309 b(Mode\(Via\))435 2255 y(None<Key>F2:)g +(Mode\(Line\))435 2307 y(None<Key>F3:)g(Mode\(PasteBuffer\))435 +2359 y(None<Key>F4:)g(Mode\(Rectangle\))435 2411 y(None<Key>F5:)g +(Mode\(Text\))435 2462 y(None<Key>F6:)g(Mode\(Polygon\))435 +2514 y(None<Key>F7:)g(Mode\(Thermal\))435 2566 y(None<Key>F8:)70 +b(Mode\(Arc\))435 2618 y(None<Key>Insert:)213 b(Mode\(InsertPoint\))435 +2670 y(None<Key>[:)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<Key>]:)333 b(Mode\(Notify\))22 +b(Mode\(Restore\))435 201 y(None<Btn1Down>:)237 b(Mode\(Notify\))435 +253 y(!Shift)23 b(Ctrl<Btn1Down>:)70 b(Mode\(Save\))22 +b(Mode\(Remove\))g(Mode\(Notify\))h(Mode\(Restore\))435 +305 y(None<Btn2Down>:)237 b(Mode\(Save\))22 b(Mode\(Move\))h +(Mode\(Notify\))435 357 y(None<Btn2Up>:)285 b(Mode\(Notify\))22 +b(Mode\(Restore\))435 409 y(!Mod1<Btn2Down>:)165 b(Mode\(Save\))22 +b(Mode\(Copy\))h(Mode\(Notify\))435 461 y(!Mod1<Btn2Up>:)213 +b(Mode\(Notify\))22 b(Mode\(Restore\))435 513 y(Shift)h +(Mod1<Btn2Down>:)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(None<Key>Up:)142 b(MovePointer\(0,)21 b(-1\))435 +922 y(!Shift<Key>Up:)94 b(MovePointer\(0,)21 b(-10\))435 +974 y(None<Key>Down:)94 b(MovePointer\(0,)21 b(1\))435 +1026 y(!Shift<Key>Down:)46 b(MovePointer\(0,)21 b(10\))435 +1078 y(None<Key>Right:)70 b(MovePointer\(1,)21 b(0\))435 +1130 y(!Shift<Key>Right:)h(MovePointer\(10,)f(0\))435 +1181 y(None<Key>Left:)94 b(MovePointer\(-1,)21 b(0\))435 +1233 y(!Shift<Key>Left:)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(None<Key>m:)166 b(MoveToCurrentLayer\(Obje)o(ct\))435 +1697 y(!Shift<Key>m:)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(!Ctrl<Key>x:)165 b(PasteBuffer\(Clear\))22 +b(PasteBuffer\(AddSelected\))888 2566 y(Mode\(PasteBuffer\))435 +2618 y(!Shift)h(Ctrl<Key>x:)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(!Mod1<Key>c:)165 b(PasteBuffer\(Clear\))22 +b(PasteBuffer\(AddSelected\))435 201 y(!Mod1<key>x:)165 +b(PasteBuffer\(Clear\))22 b(PasteBuffer\(AddSelected\))507 +253 y(RemoveSelected\(\))435 305 y(!Shift<Key>1:)141 +b(PasteBuffer\(1\))435 357 y(!Shift<Key>2:)g(PasteBuffer\(2\))435 +409 y(!Shift<Key>3:)g(PasteBuffer\(3\))435 461 y(!Shift<Key>4:)g +(PasteBuffer\(4\))435 513 y(!Shift<Key>5:)g(PasteBuffer\(5\))435 +565 y(None<Key>F3:)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(None<Key>p:)309 b(Polygon\(Close\))435 1036 +y(!Shift<Key>p:)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(<Message>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(!Shift<Key>r:)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(!Ctrl<Key>1:)i +(RouteStyle\(1\))435 804 y(...)435 856 y(!Ctrl<Key>4:)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<Btn3Down>:)46 b(Select\(ToggleObject\)) +435 1785 y(None<Btn3Down>,None<Btn3Mo)o(tion>:)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(None<Key>g:)189 b(SetValue\(Grid,)22 +b(+5\))435 2307 y(!Shift<Key>g:)141 b(SetValue\(Grid,)22 +b(-5\))435 2359 y(None<Key>l:)189 b(SetValue\(LineSize,)22 +b(+5\))435 2411 y(!Shift<Key>l:)141 b(SetValue\(LineSize,)22 +b(-5\))435 2462 y(None<Key>t:)189 b(SetValue\(TextScale,)22 +b(+10\))435 2514 y(!Shift<Key>t:)141 b(SetValue\(TextScale,)22 +b(-10\))435 2566 y(None<Key>v:)189 b(SetValue\(ViaSize,)22 +b(+5\))435 2618 y(!Shift<Key>v:)141 b(SetValue\(ViaSize,)22 +b(-5\))435 2670 y(!Mod1<Key>v:)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(Shift<Key>v:)f(SetValue\(ViaDrillingHole,) +f(-5\))435 201 y(None<Key>z:)189 b(SetValue\(Zoom,)22 +b(-1\))435 253 y(!Shift<Key>z:)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(None<Key>Tab:)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(None<Key>1:)189 +b(SwitchDrawingLayer\(1\))435 746 y(...)435 798 y(None<Key>8:)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(None<Key>h:)46 +b(ToggleHideName\(Object\))435 1180 y(!Shift<Key>h:)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(None<Key>u:)189 b(Undo\(\))435 +1726 y(!Shift)23 b(Ctrl<Key>u:)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(<Btn3Down>:)f(Mode\(Save\))h +(Mode\(None\))f(Unselect\(Block\))435 2053 y(!Shift)h(<Btn3Up>:)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(None<Key>BackSpace:)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(None<key>Delete:)p Fo(')75 204 y(`)p +Fm(!Shift<Key>BackSpace:)p Fo(')75 259 y(`)p Fm(!Shift)14 +b(Ctrl<Btn1Down>:)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(Ctrl<Key>Left:)p +Fo(')75 558 y(`)p Fm(!Mod1)g(Ctrl<Key>Right:)p Fo(')75 +613 y(`)p Fm(!Mod1)g(Ctrl<Key>Up:)p Fo(')75 667 y(`)p +Fm(!Mod1)g(Ctrl<Key>Down:)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(None<Key>Left:,)e +(!Shift<Key>Left:)p Fo(')75 857 y(`)p Fm(None<Key>Right:,)g +(!Shift<Key>Right:)p Fo(')75 912 y(`)p Fm(None<Key>Up:,)g +(!Shift<Key>Up:)p Fo(')75 966 y(`)p Fm(None<Key>Down:,)g +(!Shift<Key>Down:)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(None<Key>Return:)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(None<Key>Escape:)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<Btn2Down>,)d(Btn2<Motion>,)g +(None<Btn2Up>:)p Fo(')75 1479 y(`)p Fm(!Mod1<Btn2Down>,)g +(Btn2<Motion>,)g(!Mod1<Btn2Up>:)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(<any)g(character>)g("'")195 772 y(comment)214 +b(=)24 b("#")f({<any)g(character)g(up)g(to)h(a)g(newline>}...)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-<positive)e(integer>])195 +1032 y(quoted_string)70 b(=)24 b(""")f(<anything)g(except)g(\\n)g(and)h +(\\r>)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(<anything)e(except)h(":",)h("\\n")f(and)g("\\r">)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 00000000000..92f716545c1 --- /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 D<EAFFE0000EC7FCB01408A3141814101430147014F0B5FC151A7F99 +18>76 D<B51280380E01E0EB007014781438143CA4143814781470EB01E0380FFF80000E +C7FCABEAFFE0161A7F991A>80 D<007FB5FC38701C0700401301A200C0148000801300A3 +00001400B13803FFE0191A7F991C>84 D<39FF801FC0391C00070014066C1304A36C5BA2 +6C6C5AA36C6C5AA26C6C5AA3EB7080A213790139C7FCA2131EA3130CA21A1A7F991D>86 +D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F +8F0011107F8F13>97 D<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA +07E00E107F8F11>99 D<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000A41260EA +7004EA3808EA1C18EA07E00E107F8F11>101 D<1218123CA212181200A612FC121CAE12 +FF081A80990A>105 D<12FC121CB3A6EAFF80091A80990A>108 D<EAFC7CEA1D87381E03 +80A2121CAB38FF9FF01410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EAE007 +A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E0380381C01 +C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<EAFC +78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 D<1208A41218A21238EAFFC0 +EA3800A81320A41218EA1C40EA07800B177F960F>116 D<38FF0F80383C0700EA1C0613 +04A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>118 D<38FE3F80383C1E00EA +1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC012107F +8F14>120 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmmi6 6 1 +/Fb 1 98 df<EA0720EA18E0EA30601260A2EAC0C0A213C81241EA62D0EA3C600D0B7E8A +11>97 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmmi7 7 1 +/Fc 1 98 df<EA07B0EA0C701210EA30601260A3EAC0C013C8A21241EA62D0EA3C700D0D +7E8C12>97 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 +D<D801FEEB01FED8003E14E0012EEB03C01505A21509014EEB0B801513152313470187EB +4700A21587EC0107D80107130E14021404A20002495AEB0388149014A000045C14C0A200 +0C1380001CEB007839FF8307FF271C7E9B25>77 D<EB0F84EB304CEB403CEB8018EA0100 +5AA200061310A214001207A2EA03E013FC6CB4FC38007F80EB07C01301A21300A21220A2 +38600180A2EB03001302EAF004EACC18EA83E0161E7D9C17>83 D<EB3F80EB7F001360A3 +5BA4485AA448C7FCA41206A45AA45AA45AA45AA45AA212FEA211297E9E0D>91 +D<EB3F80EB7F001303A31306A45BA45BA45BA45BA45BA4485AA448C7FCA41206A212FEA2 +1129819E0D>93 D<EA383EEA4CC3384D0380124E129E129C121CA238380700A3130E0070 +1340A2131C1480EAE00C3860070012127C9117>110 D<12035AA3120EA4EAFFE0EA1C00 +A35AA45AA4EAE080A2EAE100A2126612380B1A7C990E>116 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmr10 10 59 +/Ff 59 123 df<EB7E1F3901C1B180390303E3C0000713C3000EEBC180903801C000A6B5 +12FC380E01C0B0387F87FC1A1D809C18>11 D<137E3801C180EA0301380703C0120EEB01 +8090C7FCA5B512C0EA0E01B0387F87F8151D809C17>I<EB7FC0EA01C1EA03031207EA0E +01A7B5FCEA0E01B0387FCFF8151D809C17>I<9038030180A39038060300A4EB0C06A549 +5AB612FCA23900301800A4495AA4B612FCA23900C0600048485AA438030180A4D80603C7 +FCA31E257E9C23>35 D<13E0EA0310EA0608A2120EA45BA25B6C5AEC3FE09038800F80EC +06000003130412073809C00800115BEA30E03820F020EA607038E03840EB3C80131C9038 +0F00207F0070EB8040383009C0391830E180390FC03F001B1F7E9D20>38 +D<1380EA0100120212065AA25AA25AA35AA412E0AC1260A47EA37EA27EA27E12027EEA00 +80092A7C9E10>40 D<7E12407E12307EA27EA27EA37EA41380AC1300A41206A35AA25AA2 +5A12205A5A092A7E9E10>I<126012F0A212701210A41220A212401280040C7C830C>44 +D<EAFFE0A20B0280890E>I<126012F0A2126004047C830C>I<130113031306A3130CA313 +18A31330A31360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA35AA35AA210297E9E +15>I<EA03C0EA0C30EA1818EA300CA2EA700EEA6006A2EAE007ADEA6006A2EA700EEA30 +0CA2EA1818EA0C30EA07E0101D7E9B15>I<5A1207123F12C71207B3A5EAFFF80D1C7C9B +15>I<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A21270EA000F130EA2131CA2 +13381370136013C0EA0180EA0300EA0601120C1218EA1002EA3FFE127F12FF101C7E9B15 +>I<EA07E0EA1830EA201CA2EA781E130E131E1238EA001CA2131813301360EA07C0EA00 +30131CA2130E130FA2127012F8A3EAF00EEA401C1220EA1830EA07C0101D7E9B15>I<13 +0CA2131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012C0 +B512C038001C00A73801FFC0121C7F9B15>I<EA300CEA3FF813F013C0EA2000A6EA23E0 +EA2C30EA3018131CEA200E1200130FA3126012F0A3EA800EEA401E131CEA2038EA1870EA +07C0101D7E9B15>I<13F0EA030CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0 +EAE430EAE818EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA03 +E0101D7E9B15>I<EA03E0EA0C30EA1008EA200C13061260A21270A2EA7C0CEA3E18EA3F +B0EA1FE0EA07F013F8EA18FCEA307EEA601E130FEAC0071303A4EA60021304EA300CEA1C +10EA07E0101D7E9B15>56 D<EA03C0EA0C30EA1818EA300C1270EA600EEAE006A21307A5 +1260EA700F1230EA1817EA0C27EA07C7EA0006A2130EEA300C127813181270EA2030EA10 +C0EA0F80101D7E9B15>I<126012F0A212601200AA126012F0A2126004127C910C>I<1306 +A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80F0A338010078A2EBFFF83802003C +A3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F>65 D<90381F8080EBE06138018019 +38070007000E13035A14015A00781300A2127000F01400A8007014801278A212386CEB01 +00A26C13026C5B380180083800E030EB1FC0191E7E9C1E>67 D<B512C0380F00F0143C14 +0E80A2EC038015C01401A215E0A815C0A21403158014071500140E5C1470B512C01B1C7E +9B20>I<EAFFF8EA0F8090C7FCB01408A31418A2141014301470EB01F0B5FC151C7E9B1A> +76 D<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB7808A3EB3C +10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>I<EB3F80EB +E0E03803803848487E000E7F487F003C148000381303007814C0A20070130100F014E0A8 +007014C000781303A200381480003C1307001C14006C130E6C5B6C6C5A3800E0E0EB3F80 +1B1E7E9C20>79 D<B51280380F00E01478143C141C141EA5141C143C147814E0EBFF8090 +C7FCACEAFFF0171C7E9B1C>I<B5FC380F01E0EB007880141C141EA4141C143C5CEB01E0 +01FFC7FCEB01E0EB0070147880A61510A2141CA239FFF00E20C7EA03C01C1D7E9B1F>82 +D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF +FC1B1C7F9B1E>84 D<39FFE00FF0391F0003C0EC01806C1400A238078002A213C000035B +A2EBE00C00011308A26C6C5AA213F8EB7820A26D5AA36D5AA2131F6DC7FCA21306A31C1D +7F9B1F>86 D<12FEA212C0B3B312FEA207297C9E0C>91 D<12FEA21206B3B312FEA20729 +809E0C>93 D<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E013 +40A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E018038 +1C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<EA03 +F8EA0C0CEA181E1230EA700CEA600012E0A61260EA70021230EA1804EA0C18EA03E00F12 +7F9112>I<EB1F801303AAEA03F3EA0E0BEA1807EA30031270126012E0A6126012701230 +EA1807EA0E1B3803E3F0141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612 +E0EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>I<13F8EA018C +EA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>I<EB03803807C4C0EA +1C783838388038301800EA701CA4EA3018EA38386C5AEA27C00020C7FCA21230EA3FF86C +B4FC1480EA2003386001C0EAC000A33860018038300300EA1C0EEA07F8121C7F9215>I< +12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA212 +18C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E01200 +B3A21260EAF0C012F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB0600 +5B13105B5B13E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16> +I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE0 +1C001C13C0AD3AFF8FF8FF8021127F9124>I<EAFC7CEA1C87EA1D03001E1380121CAD38 +FF9FF014127F9117>I<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A6006013 +80EA700300301300EA1806EA0E1CEA03F012127F9115>I<EAFC7CEA1D87381E0180001C +13C0EB00E0A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F91 +17>I<3803E080EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03 +E3EA0003A7EB1FF0141A7F9116>I<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D12 +7F9110>I<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA +8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<1204A4120CA2121C123CEAFFE0 +EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E +1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2 +EA0388A213C8EA01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB +01801500130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030 +000013201B127F911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012 +007F12011338EA021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E038 +3C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A2 +5BA212F000F1C7FC12F312661238131A7F9116>I<EA7FFCEA70381260EA407013F013E0 +EA41C012031380EA0700EA0F04120E121CEA3C0CEA380812701338EAFFF80E127F9112> +I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmbx10 10 25 +/Fg 25 123 df<90383FE3F83901F03F1C3903C03E3E0007137CEA0F80151C1500A5B612 +C0A2390F807C00AE397FE1FF80A21F1D809C1C>11 D<13201340EA018012031300120612 +0E5AA2123C1238A21278A312F85AA97E1278A31238A2123C121CA27E12067E13801201EA +004013200B297C9E13>40 D<7E12401230123812187E120E7EA213801203A213C0A313E0 +1201A9120313C0A31380A212071300A2120E120C5A1238123012405A0B297D9E13>I<EB +01801303A2EB0700A3130EA25BA35BA35BA25BA3485AA3485AA348C7FCA2120EA35AA35A +A25AA35AA25A11297D9E18>47 D<127812FCA412781200A6127812FCA4127806127D910D +>58 D<EA0FF8EA1C1E383E0F80130714C0121C1200137FEA07E7EA1F07123C127C12F8A3 +EA780B383E13F8EA0FE115127F9117>97 D<B4FCA2121FA9EB3F80EBE1E0EB8070EB0078 +143CA2143EA6143CA21478EB8070381EC1E0381C3F00171D7F9C1B>I<EA03FCEA0E0EEA +1C1F123C1278130E00F8C7FCA61278EB0180123C381C0300EA0E0EEA03F811127E9115> +I<EB0FF0A21301A9EA01F9EA0F07EA1C03EA3C011278A212F8A61278A2123CEA1C03380F +0FFEEA03F9171D7E9C1B>I<EA03FCEA0F07381C0380383C01C0127814E012F8A2B5FC00 +F8C7FCA3127814607E6C13C0380F03803801FC0013127F9116>I<3803F0F0380E1F38EA +3C0F3838073000781380A400381300EA3C0FEA1E1CEA33F00030C7FCA3EA3FFF14C06C13 +E014F0387801F838F00078A300701370007813F0381E03C03807FF00151B7F9118>103 +D<121E123FA4121EC7FCA6127FA2121FAEEAFFC0A20A1E7F9D0E>105 +D<B4FCA2121FB3A7EAFFE0A20B1D7F9C0E>108 D<39FF0FC07E903831E18F3A1F40F207 +80D980FC13C0A2EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0381F40F0 +EB80F8A21300AB38FFE7FFA218127F911B>I<EA01FC380F0780381C01C0003C13E03878 +00F0A200F813F8A6007813F0A2383C01E0381E03C0380F07803801FC0015127F9118>I< +38FF3F80EBE1E0381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0EB3F00 +90C7FCA6EAFFE0A2171A7F911B>I<EAFE3E1347381E8F80A3381F070090C7FCAAEAFFE0 +A211127F9114>114 D<EA1FD8EA3078EA601812E0A2EAF000EAFF80EA7FE013F0EA1FF8 +EA07FCEA007CEAC01CA212E01318EAF830EACFC00E127E9113>I<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 df<EB0FC0EB7FF83801F03E38038007390600018048EB00C0481460481430A2 +481418A248140CA700601418A26C1430A26C14606C14C06CEB018039038007003801F03E +38007FF8EB0FC01E1D7E9623>13 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmr8 8 15 +/Fi 15 118 df<126012F0A212701210A21220A21240A2040A7D830A>44 +D<1206120E12FE120EB1EAFFE00B157D9412>49 D<EA01F0EA0608EA080CEA181C1230EA +7000126012E0EAE3E0EAEC30EAF018130CEAE00EA31260A2EA300C1318EA1830EA07C00F +157F9412>54 D<1240EA7FFE13FC13F8EAC008EA80101320EA00401380A2EA01005AA212 +021206A2120EA512040F167E9512>I<EA07E0EA1830EA2018EA600CA21270EA7818EA3E +10EA1F60EA07C0EA0FF0EA18F8EA607C131EEAC00E1306A21304EA600CEA3830EA0FE00F +157F9412>I<EA07C0EA1830EA30181260EAE00CA2130EA3EA601E1230EA186EEA0F8EEA +000E130C131CEA7018A2EA6030EA20E0EA1F800F157F9412>I<00FC13FE001E1338001F +13101217EA1380EA11C0A2EA10E013701338A2131C130E130F1307EB0390EB01D0A2EB00 +F014701430123800FE131017177F961A>78 D<387FFFF83860381800401308A200801304 +A300001300AF3803FF8016177F9619>84 D<EA3FC0EA70601330EA20381200EA03F8EA1E +3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97 D<EA07F0EA18381230EA7010 +EA600012E0A41260EA70081230EA1830EA07C00D0E7F8D10>99 D<12F81238A813F8EA3B +1CEA3C0E1238AA38FE3F8011177F9614>104 D<38F8F83E383B1CC7393C0F0380EA380E +AA39FE3F8FE01B0E7F8D1E>109 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA +3018EA1830EA07C00F0E7F8D12>111 D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA +1FC0EA01E0EA8060A212C0EAE0C0EA9F000B0E7F8D0E>115 D<EAF83EEA380EAA131EEA +1C2E3807CF80110E7F8D14>117 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmbx12 24.88 17 +/Fj 17 115 df<B612FEA91F097F9B27>45 D<EA07C0EA1FF0EA3FF8EA7FFCA2EAFFFEA5 +EA7FFCA2EA3FF8EA1FF0EA07C00F0F788E20>I<EC01E01403140F143F14FF130F0003B5 +FCB6FCA213F1EAFC011200B3B3B1003FB71280A4294478C33A>49 +D<EC7FF80103B57E011F14F090393F807FF89039FC000FFED801F06D7E4848158048486D +13C013F8486C15E06D7F486C15F0A314801400A26C4A13E06C5A6C5A6C4815C0C85A1780 +17004B5A5E4B5A4B5AEDFFC0020790C7FC903803FFFC5DEDFF8090C7EA7FF0ED1FFCED07 +FE923803FF8017C06F13E017F0A217F88117FCA217FEEA0380EA0FE0EA3FF8487EA2487E +A217FCA317F86C485B4915F06C5A494913E0D81F8015C0D80FE0491380D807F8011F1300 +3A03FF807FFEC690B512F8013F14E0010F91C7FC010013F02F457BC33A>51 +D<EDFFC0020F13F8023F13FE9138FFC03F903A03FE000F80D907F8EB07C0D91FF0130349 +48EB0FE04948133F4948EB7FF04890C7FC16FF485A1207A24848EC7FE0A2001FED3FC0EE +0F00003F92C7FCA25B127FA391380FFF80023F13E000FF4913F89138F007FC9039F9C001 +FE9039FB8000FF178001FFC7EA7FC04915E017F0EE3FF85B17FCA35B17FEA3127FA6123F +A217FC6C7EA3000F16F8167F000716F06C6C15E017C06C6C14FF6C6D481380903A7FC003 +FE0090393FF00FFC010FB55A6D14E0010114809026001FFCC7FC2F457BC33A>54 +D<B912C018FCF0FF8019E0D8001F90C7000313F805007FF03FFE727E1A807213C0841AE0 +A2841AF0A84E13E0A21AC0601A804E13004E5A4E5A4E5A050313E0057F138092B600FCC7 +FCF0FF8019F092C8EA7FFCF01FFF060713807213C01AE07213F07213F81AFCA2F17FFEA3 +1AFFA81AFEA219FF1AFC601AF84E13F04E13E04E13C0063F13804DB51200BA12FC19F019 +8006F8C7FC48477CC653>66 D<DC7FFE1406030FB500C0131E037F02F8133E0203B600FE +137E020F903AF800FF80FE023F0180EB1FC1DAFFFCC7EA07F34901F0EC01FF010701C0EC +007F4990C9123F4948161F4948160F49481607495A4818034A16015A48491600A2485B1A +7E5A91CBFC48193EA35A491800A312FFAD127FA37F6C191EA37E806C193E1A3C6C7FA26C +6D17787E6E17F06C18016D6C17E06D6CEE03C06D6CEE07806D6C6CED0F006D6D153E0101 +01F05D6D01FC4A5A91263FFF80EB0FF0020F01F8EB7FC0020390B6C7FCDA007F14FC030F +14E09226007FFEC8FC47497AC754>I<B9FC18F818FEF0FFC0D8001F902680001F7F0501 +13F8717FF03FFE727E1A80841AC0841AE0A21AF0A81AE0A31AC0601A80601A004E5AF0FF +FC050313F0051F5B92B7128006FCC7FC18E00380CAFCB3ABB712F0A444477CC64F>80 +D<90380FFFF090B6FC000315C03A07F8007FF0486CEB1FFCED07FE486C6D7E838183816C +48816C5A6C5AC9FCA5157F023FB5FC0103B6FC011F13F090387FFE003801FFE0481380D8 +0FFEC7FC485A5B123F485AA2485AA45DA26C6C5BED077F6C6C130F6C6C013E13F83C0FFF +80F83FFFE000039038FFF01FC6ECC00F90390FFE0003332E7CAD38>97 +D<91381FFFC049B512FC010714FF903A1FF8007F80D97FE0EBFFC0EBFF8048494813E048 +5A1207485AA248486D13C0003FED7F80EE3F00007F92C7FC5BA312FFAA127FA27FA2123F +A26C6C15F0120F6DEC01E012076C6CEC03C06C6DEB07806C6DEB0F00D97FF0133E90391F +FC01FC0107B512F0010114C09026001FFCC7FC2C2E7CAD34>99 D<EFFF804BB5FCA4ED00 +0782B3A2EC1FFC49B51283010714E390391FFC03F390397FE0007FD9FF807F4890C7120F +484880000781485AA2485A123FA25B127FA312FFAA127FA46C7EA2121FA26C7E00075D6C +6C5C6C6C5C6C6D137F6D6C01FB13C090273FF807E313FF010FB512C3010114039038003F +F038487CC741>I<EC1FFC49B512C0010714F090391FF80FFC90397FC001FE49486C7E48 +90C7EA7F804848EC3FC04848EC1FE0120F484815F0160F003F16F8A25B007F150717FCA2 +12FFA290B7FCA301F0C9FCA5127FA36C7EA2001F163CA26C7E17786C6C15F86C6CEC01F0 +6C6DEB03E06C6DEB07C0D93FE0EB1F80903A1FFC01FF000107B512FC010014E0020F90C7 +FC2E2E7DAD35>I<EDFFC0021F13F0027F13FC903901FFC0FE49EB01FF903807FC034948 +481380131FEB3FF0137F14E001FF6D13006F5A6F5A163093C7FCABB612FEA4C601E0C8FC +B3B3A2007FEBFFF0A429487DC724>I<9027FF8003FFEC03FFB5011F01E0011F13E0037F +01F8017F13F8913D81F80FFC01F80FFC913D83C007FE03C007FE0003903D878003FF0780 +03FF6CD98E00EC0E00029C039C8102B86D01B87F06F88102F05DA24A5DA34A5DB3A9B66C +B66CB61280A4592E7BAD62>109 D<9039FF8007FEB590383FFFC04B13F0913981F81FF8 +913983C00FFC00039039870007FE6C138E029C8002B87F188014F0A25CA35CB3A9B60081 +B6FCA4382E7BAD41>I<EC0FFE49B512F0010714FC90391FF803FF90267FE00013C0D9FF +80EB3FE04890C76C7E48486E7E48486E7E000F82491403001F82003F17804980A2007F17 +C0A300FF17E0AA007F17C0A46C6C4A1380A2001F17006D5C000F5E6C6C4A5A00035E6C6C +4A5A6C6D495AD97FE0EBFFC090261FFC0790C7FC0107B512FC010114F0D9001F90C8FC33 +2E7DAD3A>I<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 00000000000..ac15884c2d0 --- /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 ee8ee0a54c0..024bcfc3c08 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 |