diff options
author | dmcmahill <dmcmahill> | 2000-08-31 14:55:29 +0000 |
---|---|---|
committer | dmcmahill <dmcmahill> | 2000-08-31 14:55:29 +0000 |
commit | 4c9cdded7be698ff4682c55046e4417ea26e0e53 (patch) | |
tree | fa6b981ce1c4c8360183af77e6023ad3e1a9d57c /cad | |
parent | 3ee202fb879178486f31c885c25d5f5b59610358 (diff) | |
download | pkgsrc-4c9cdded7be698ff4682c55046e4417ea26e0e53.tar.gz |
remove depends on teTeX and add a patch to not run latex. Provide the docs
as files instead of requiring the user to install one of our largest packages
just to build them. Note, in the previous version of this pkg, the docs generated
with latex weren't even being installed (!).
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 |