Translations of this page are also available in the following languages: Français, Русский.
More information on PCB you can find in the PCB Command reference
(refcard.pdf
) containing description of all PCB shortcuts
and in the PCB Manual (pcb.pdf
or pcb.html
)
residing in the doc/
directory of your PCB installation
(its path may vary on various systems).
Key | Mnemonic | Description |
---|---|---|
Esc | select | enter select mode (same as Space, or F11) |
Esc | end of action | terminate the current action, e.g. stop drawing tracks |
Insert | insert point | enter insert point mode. Click and drag on track to insert a point |
Return | click | same as a click on the left mouse button |
Space | select | enter select mode (same as Esc, or F11) |
Tab | flip up/down | view: vertical flip |
Shift+Tab | flip left/right | view: horizontal flip |
Ctrl+Shift+Tab | far side | view: exchange the roles of front side and far side |
Del | delete | delete object under the mouse cursor |
Ctrl+Shift L-Mouse | delete | delete object under the mouse cursor (fast) |
Shift+Del | del-sel | delete objects in selection |
Backspace | del-sel | delete objects in selection |
Shift+Backspace | del-copper | deletes connected copper under the cursor. Rats are considered a connection. |
| | thin-draw | toggles thin draw mode |
A | set same | read the parameters to use for new objects from the object below the cursor. |
Alt+A | select-all | select all objects on active layers. Deactivated layers are ignored. |
Shift+Alt+A | unselect | clear selection |
B | to other side | flip object to the other side of the board |
C | center | view: center display at cursor position |
Ctrl+C | copy to buffer | copy selection to buffer and unselect |
D | display name | display pin or pad name |
Shift+D | pinout dialog | open pinout window for element under mouse cursor |
E | eliminate rats | delete all rats |
Shift+E | eliminate some rats | delete selected rats |
F | find | highlight connections to object under mouse cursor. This includes rats and objects on invisible layers |
Ctrl+F | add to found | add connections to object under mouse cursor to the set of found objects |
Shift+F | un-find | un-highlight found connections |
G | incr grid mil | increment grid by configured imperial increment |
Shift+G | decr grid mil | decrement grid by configured imperial increment |
Ctrl+G | incr grid mm | increment grid by configured metric increment |
Ctrl+Shift+G | decr grid mm | decrement grid by configured metric increment |
H | hide | toggle the visibility of the refdes or value attached to the component under the cursor |
Shift+H | hide sel | toggle the visibility of the refdes or value attached to selected components |
Ctrl+H | holeplate | toggle plating of a via. Used to produce non metalized mounting holes |
J | lineclear | toggle the polygon clear flag of the line under the cursor |
Shift+J | lineclear sel | toggle the polygon clear flag of selected lines |
K | klear | increment clearance (soldermask to copper edge) |
Shift+K | klear (-) | decrement clearance (soldermask to copper edge (NOTE: can go negative!)) |
Ctrl+K | klear sel | increment clearance of selected objects (soldermask to copper edge) |
Shift+Ctrl+K | klear sel (-) | decrement clearance of selected objects (soldermask to copper edge) |
L | increase line | increment width of the line tool, adds to the settings of the current line style |
Shift+L | decrease line | reduce the current linewidth |
M | move to layer | move the object under the cursor to the current layer |
Shift+M | move selection to layer | move selected objects to the current working layer (see pcb tip) |
Ctrl+M | move origin | set the origin to the current position of the mouse pointer |
N | name | show object refdes / pin number at mouse pointer |
Shift+N | next | Select the shortest unselected rat on the board |
O | optimize rats | optimize and redraw all rats |
Shift+O | optimize some rats | optimize and redraw selected nets only |
Ctrl+O | octagon | toggle the octagon flag of the object under the cursor |
Shift+P | polygon close | connect the first point of a polygon with the last |
Q | square toggle | toggle square/round corners on pads |
Shift+R | redo | redo what was undone with undo |
Ctrl+R | report | show object report |
S | size | increment size of the object under the cursor |
Shift+S | size (-) | decrement size of the object under the cursor |
Alt+S | sizehole | increase the hole of the object under the cursor |
Alt+Shift+S | sizehole (-) | decrease the hole of the object under the cursor |
Ctrl+S | sizehole | increase the hole of the object under the cursor |
Ctrl+Shift+S | sizehole (-) | decrease the hole size |
T | text tool size | increase the size of new text by 10 mil |
Shift+T | text tool size (-) | decrease the size of new text by 10 mil |
V | view extents | global view of working area |
Shift+V | via tool dia | increase the diameter of new vias by 5 mil |
Ctrl+V | paste buffer | paste from buffer |
Ctrl+Shift+V | via tool dia (-) | decrease the diameter of new vias by 5 mil |
Alt+V | via tool drill | increase the drill diameter of new vias by 5 mil |
Shift+Alt+V | via tool drill (-) | decrease the drill diameter of new vias by 5 mil |
Ctrl+X | cut to buffer | cut selection to buffer |
Z | zoom | view: zoom in |
Shift+Z | un-zoom | view: zoom out |
F1 | via | enter via tool |
F2 | line | enter line tool |
F3 | arc | enter arc tool |
F4 | text | enter text tool |
F5 | rectangle | enter rectangle tool |
F6 | polygon | enter polygon tool |
F7 | buffer | enter buffer mode |
F8 | delete | enter remove mode |
F9 | rotate | enter rotate mode |
F10 | file menu | file menu |
F11 | select | enter select mode (same as Space, or Esc) |
F12 | lock | enter lock mode |
Key | Mnemonic | Description |
---|---|---|
V | view extents | global view of working area |
C | center | centers view on cursor |
Z | zoom | zoom in |
Shift+Z | un-zoom | zoom out |
| | thin-draw | toggles thin draw mode |
Tab | flip up/down | vertical flip |
Shift+Tab | flip left/right | horizontal flip |
Ctrl+Shift+Tab | far side | exchange the roles of front and far side |
Key | Mnemonic | Description |
---|---|---|
1 to 9 | - | select layers 1 to 9 |
0 | - | select layer 10* |
Alt+1 to Alt+9 | - | select layers 11 to 19* |
Alt+0 | - | select layer 20* |
Ctrl+1 to Ctrl+9 | - | toggle visibility of layers 1 to 9* |
Ctrl+0 | - | toggle visibility of layer 10* |
Ctrl+Alt+1 to Ctrl+Alt+9 | - | toggle visibility of 11 to 19* |
Ctrl+Alt+0 | - | toggle visibility of 20* |
* These accels are available in PCB, GTK GUI in versions after August 2011
The Master document for footprint creation is the PCB Manual. There is also Stuart Brorson’s Footprint Creation for the Open-Source Layout Program PCB.
A pcb footprint file may contain any of the following commands:
Element [element_flags, description, pcb_name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]
Pad [x1 y1 x2 y2 thickness clearance mask name pad_number flags]
Pin [x y thickness clearance mask drillholedia name number flags]
ElementArc [x y r1 r2 startangle sweepangle thickness]
ElementLine [x1 y1 x2 y2 thickness] –> thickness != 1000 = 10 mils almost for all footprints
#
’-signPCB handles metric and imperial units in the following way:
Element [element_flags, description, pcb_name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]
Allowed value (unit = 1e-5 inches) | Allowed Value (mm) | explanation | comment | |
---|---|---|---|---|
element_flags | unsigned hex value | |||
description | string | text description of footprint | user-defined | |
pcb_name | string | generic refdes (R?, U? etc.) | user-defined | |
value | string | component value (layout specific) | user-defined (blank) | |
mark_x | “1” to ~ “78740000” | “0.000001mm” to “2000mm” | (x,y) loc. of center mark | |
mark_y | “1” to ~ “78740000” | “0.000001mm” to “2000mm” | ||
text_x | “1” to ~ “78740000” | “0.000001mm” to “2000mm” | (x,y) loc. of REFDES | |
text_y | “1” to ~ “78740000” | “0.000001mm” to “2000mm” | ||
text_direction | decimal integer | 0=horiz; 1=ccw90; 2=180; 3=cw90 | ||
text_scale | decimal integer | usu. set to 100 | ||
text_flags | unsigned hex |
Pad[x1 y1 x2 y2 thickness clearance mask name pad_number flags]
Item | Allowed Value | Explanation | Comment |
---|---|---|---|
x1 | 1/100th mil | x (1st point) | |
y1 | 1/100th mil | y (1st point) | |
x2 | 1/100th mil | x (2nd point) | |
y2 | 1/100th mils | y (2nd point) | |
thickness | 1/100 mils | width of metal surrounding line segment | see Brorson .pdf |
clearance | 1/100 mils | distance to any other copper on any layer | actually 1/2 of this number is used! |
mask | 1/100th mils | width of mask relief | actual width of the mask centered on pad copper |
name | string | name of pad (arb. string) | e.g. "pad_1" or "positive" or any other string |
pad_number | string | pad # | used for nets. it MUST be consistent with the definitions on the netlist. |
flags | hex or string | examples: |
Pin[x y thickness clearance mask drillholedia name number flags]
Item | Allowed Value | Explanation | Comment |
---|---|---|---|
x | 1/100th mils | pin x coord. | |
y | 1/100th mils | pin y coord. | |
thickness | 1/100th mils | copper diameter | |
clearance | 1/100th mils | 2*(cu to cu clearance) | if you want a 10 mil clearance, put 2000 (20 mils) here |
mask | 1/100th mils | diameter of mask aperture | actual dia. of hole in mask |
drillholedia | 1/100th mils | dia. of hole | |
name | string | arb. pin name | |
number | decimal integer | pin number used by nets/rats | |
flags | hex | xxx |
Pad[-24606 14760 -19538 14760 1181 2000 3181 "" "16" "square"]
Pad[-14760 19538 -14760 24606 1181 2000 3181 "" "17" "square,edge2"]
Pad[-240.00mil 0.0000 -80.00mil 0.0000 40.00mil 20.00mil 46.00mil "2" "2" "onsolder,square"]
Pad[80.00mil 0.0000 240.00mil 0.0000 40.00mil 20.00mil 46.00mil "1" "1" "onsolder,square,edge2"]
Pin[0 0 12000 2000 12500 6400 "" "1" 0×00000001]
Pin[0 0 11500 11800 35000 12500 "" "1" 0x08]
←- unplated / nonplated holeElementArc [0 0 6800 6800 0 360 1000]
ElementLine [-26696 -26696 26696 -26696 1000]
# notes within PCB Footprints go after the pound sign
:FreeRotateBuffer(degrees) | Rotate buffer arbitrarily | |
:MoveObject(x,y,unit) | Move Absolute (x,y,mil) or Relative(+x,-y,mil) | |
:ChangeClearSize(Selected,<amount>,<unit>) | Clearance Size | |
:ChangeSize(SelectedPins, SIZE) | Pin Size | |
:ChangeSize(SelectedLines,+N,mils) | Line Size | |
:MinClearGap(Selected,<amount>,<unit>) | Clearance Gap |