---
name: "pcb"
section: "1x"
platform: "linux"
package: "pcb"
version: "1.7.1-4.2"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pcb/1x"
---

# pcb(1x)

X11 interactive printed circuit board layout system

## NAME

Pcb - X11 interactive printed circuit board layout system

## VERSION

The current release is: 1.7.1.ALPHA

## SYNOPSIS

**pcb** \[-option ...\] \[-toolkit\_option ...\] \[description file\]

or

**pcb** -specialoption

## DESCRIPTION

*Pcb* is a handy tool for the *X Window System* build to design printed circuit boards. All coordinate units are 1/1000 inch. It implements the most needed features like:

-

  \* A layout consists of lines, arcs, polygons, elements (lines, pins and arcs), vias and text information seperated into several layers. Each of them is identified by a unique name and color (if supported by your display). SMD circuits are also supported.

-

  \* 8 layers are supported in addition to a silkscreen layer. Visibility of pins and SMD pads and vias is controllable.

-

  \* All files are 7 bit ASCII and can be preprocessed with any UNIX command that writes it's results to *stdout* (*GNU m4* is required).

-

  \* The layout grid is anywhere in the range from 1/1000 inch up to 250/1000 inch. The maximum is defined at compilation time.

-

  \* Zooming is supported.

-

  \* A copy of the current data is saved temporarily in /tmp to ensure that nothing is lost during critical sections of the program.

-

  \* An unlimited (depending on memory) undo operations is supported. Also redo is available in case you change your made.

Pcb is intended to be a simple tool without memory and time consuming features like autorouter and autoplacement. It worked well for several people on an *Atari* platform till it was ported to *X11* in 1994. Most of the settings can be specified by resources, passed in the command-line or changed at runtime. Layout related settings are saved together with the data.

## OPTIONS

Beside the toolkit options, Pcb recognizes some command-line options with following syntax: -option switches it on, +option switches it off

- **-alldirections,+alldirections**

  Enables or disables lines in any direction. Overrides the resource *allDirectionLines*.

- **-backup** *\<value\>*

  Time in seconds between two backups. Overrides the resource *backupInterval*.

- **-c** *\<value\>*

  Number of characters per output-line. Overrides the resource *charactersPerLine*.

- **-fontfile** *\<filename\>*

  The default font is read from this file. The file is, together with a path, passed to an external program. The path is defined by the resource *fontPath* wheras the command uses *fontCommand*. Overwrittes the resource *fontFile*.

- **-lelement** *\<UNIX command\>*

  Sets the command to be executed when an element is loaded. The command may contain %f which is replaced by the filename and %p which is replaced by the element search-path. The command must write it's results to *stdout*. The resource *elementCommand* is overwritten.

- **-lfile** *\<UNIX command\>*

  Sets the command to be executed when an layout file is loaded. The command may contain %f which is replaced by the filename and %p which is replaced by the search-path. The command must write it's results to *stdout*. The resource *fileCommand* is overwritten.

- **-lfont** *\<UNIX command\>*

  Sets the command to be executed when an fontfile is loaded. The command may contain %f which is replaced by the filename and %p which is replaced by the font search-path. The command must write it's results to *stdout*. The resource *fontCommand* is overwritten.

- **-lg** *\<layergroups\>*

  This option overwrites the resource *layerGroups*. See its description for more information.

- **-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** *\<UNIX command\>*

  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** *\<UNIX command\>*

  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. The related resource is *libraryContentsCommand*.

- **-loggeometry** *\<geometry\>*

  Determines the geometry of the logging window.

- **-pnl** *\<positiv integer value\>*

  Defines the maximum length of a pin name to be displayed in a pinout window. Overwrittes the resource *pinoutNameLength.*

- **-pz** *\<positiv integer value\>*

  *Sets the zoom factor for pinout window according to the* *formula: scale = 1:(2^value). The resource pinoutZoom is* *overwritten.*

- **-reset/+reset**

  *If enabled, all found connections are reset after an element has been scanned.* *This setting is only used while scanning connections to all elements.* *Overrides the resource resetAfterElement.*

- **-ring/+ring**

  *Overrides the resource ringBellWhenFinished. If enabled, the bell* *on the keyboard is rang when connection searching has finished.*

- **-s/+s**

  *Enables/Disables the saving of the previous commandline. Overrides the* *saveLastCommand resource.*

- **-save/+save**

  *Overrides the resource saveInTMP. If enabled all data is saved* *in a temporary file in the directory /tmp instead of being lost.*

- **-sfile** *\<UNIX command\>*

  *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 it's data from stdin. The resource saveCommand is* *overwritten.*

- **-size** *\<width\>x\<height\>*

  *Overrides the resource size which determines the maximum size* *of a layout.*

- *Sets the volume of the X-speaker. Overrides the resource volume.*

  *In addition to these 'normal-work-options' you will find additional* *special options, -copyright, -help and -version,* *which print out the GNU COPYLEFT notice, a usage message and the current* *version.*

## X11 Interface

*There are several resources, actions and menus available.* *For a detailed description see the GNU info file or the printed manual.*

## SEE ALSO

*X(1), Xlib Resource Manager documentation, Xt resource documentation,* *Athena Widget Set*

*PCB manual.*

## COPYRIGHT

*PCB, interactive printed circuit board design,* *Copyright (C) 1994, 1995, 1996 Thomas Nau*

*This program is free software; you can 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* *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* *GNU General Public License for more details.*

## AUTHOR

*Thomas Nau, Thomas.Nau@rz.uni-ulm.de*

*Schlehenweg 15, 88471 Baustetten, Germany*

## ACKNOWLEDGEMENT

*harry eaton (haceaton@aplcomm.jhuapl.edu) for many new features* *and bug fixes.*

*Bernhard (Bernhard.Daeubler@physik.uni-ulm.de) and Harald Daeubler* *(Harald.Daeubler@physik.uni-ulm.de) for helpful hints, testing and* *a neverending stream of new options and ideas.*

*Roland Merk (merk@faw.uni-ulm.de) for his help during the hard days of* *learning X11 programming.*

*Erland Unruh (Erland.Unruh@malmo.trab.se) for alpha and beta testing of* *the early releases.*

*Many, many others who donated some of their time for developing new* *circuit-files, did testing and came up with several bug-fixes and* *improvements. Thanks to all of them.*
