Podręcznik użytkownika
Prawa autorskie
This document is Copyright © 2010-2021 by its contributors as listed below. You may distribute it and/or modify it under the terms of either the GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 or later, or the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), version 3.0 or later.
Wszystkie znaki towarowe użyte w tym dokumencie należą do ich właścicieli.
Współtwórcy
Jean-Pierre Charras, Fabrizio Tappero, Wayne Stambaugh, Jon Evans
Tłumaczenie
Kerusey Karyu <keruseykaryu@o2.pl>, 2014-2015.
Kontakt
Wszelkie zauważone błędy, sugestie lub nowe wersje dotyczące tego dokumentu prosimy kierować do:
-
W sprawie dokumentacji: https://gitlab.com/kicad/services/kicad-doc/issues
-
W sprawie oprogramowania: https://gitlab.com/kicad/code/kicad/issues
-
About KiCad translation: https://gitlab.com/kicad/code/kicad-i18n/issues
1. Wprowadzenie do Pcbnew
1.1. Initial configuration
When Pcbnew is run for the first time, if the global footprint table file fp-lib-table
is not found in the KiCad configuration folder, Pcbnew will ask how to create this file:
Note
|
TODO: add screenshot |
Note
|
TODO: add instructions on what these options mean |
Domyślna tabela bibliotek zawiera wszystkie standardowe biblioteki jakie zostały zainstalowane razem z programem KiCad EDA Suite.
1.2. The Pcbnew user interface

The main Pcbnew user interface is shown above, with some key elements indicated:
-
Top toolbars (file management, zoom tools, editing tools)
-
Left toolbar (display options)
-
Message panel and status bar
-
Right toolbar (drawing and design tools)
-
Appearance panel
-
Selection filter panel
1.3. Navigating the editing canvas
The editing canvas is a view onto the board being designed. You can pan and zoom to different areas of the board, and also flip the view to show the board from the bottom.
By default, dragging with the middle or right mouse button will pan the canvas view, and scrolling the mouse wheel will zoom the view in or out. You can change this behavior in the Mouse and Touchpad section of the preferences (see Configuration and Customization for details).
1.4. Hotkeys
Note
|
TODO: Write this section |
The hotkeys described in this manual use the key labels that appear on a standard PC keyboard. On an Apple keyboard layout, use the Cmd key in place of Ctrl, and the Option key in place of Alt.
Note
|
Many of the actions available through hotkeys are also available in context menus. To access the context menu, right-click in the editing canvas. Different actions will be available depending on what is selected or what tool is active. |
2. Display and selection controls
2.1. Board layers
Layers in Pcbnew represent physical copper layers on a board, as well as graphical layers used for defining things such as silkscreen, solder mask, and the board edge. There is always one layer that is active in the editor. The active layer is drawn on top of other layers, and will be the layer assigned to newly-created objects. The active layer is indicated in the layer selector drop-down box in the top toolbar, and is also highlighted in the appearance panel. To change the active layer, you can click a layer name in the appearance panel, use the drop-down layer selector in the top toolbar, or use a hotkey. Layers can be hidden to simplify the board view. You can hide a layer even if it is the active layer.
2.2. The appearance panel
The appearance panel provides controls to manage the visibility, color, and opacity of objects in the Pcbnew drawing canvas. It has three tabs: the Layers tab contains controls for the board layers, the Objects tab contains controls for different types of graphical objects, and the Nets tab contains controls for the appearance of the ratsnest and copper items.
2.2.1. Layer controls
In the Layers tab of the appearance panel, each board layer is shown with its color and visibility state. The active layer is shown highlighted with an arrow indicator to the left of the color swatch. Left-click on a layer to choose it as the active layer. Left-click on the corresponding visibility icon to toggle the layer between visible and hidden. Double-click or middle-click on the color swatch to change the layer’s color.
Note
|
You must first create a custom color theme in Preferences before you can change layer colors in the appearance panel. |
Below the list of layers is an expandable panel that contains layer display options. The first setting controls how non-active layers are displayed: normal, dimmed, or hidden. The layer display mode can be used to simplify the view and focus on a single layer. Items on inactive layers cannot be selected when the non-active layer display mode is "Dim" or "Hide". You can use the hotkey Ctrl+H to cycle through these display modes quickly.
Flip board view will show the board as if you are looking from the bottom (that is, mirrored around the Y-axis). This option is also available in the View menu.
2.2.2. Object controls
The Objects tab of the appearance panel is similar to the Layers tab. The main differences are that some objects have no color setting, and that four types of objects (tracks, vias, pads, and zones) have opacity control sliders. The opacity setting here will be multiplied with any opacity set in the layer colors. By default, all objects are fully opaque except for zones, which are set to translucent in order to make it easier to see objects through filled zone areas.
2.2.3. Layer presets
Layer presets store which layers and objects are visible and hidden for easy recall. There are several built-in layer presets, and you can save your own custom presets. Custom presets are stored in the project settings for a board, as presets may be specific to a certain board stackup.
To load a preset, choose it from the Presets drop-down menu at the bottom of the appearance panel, or use the quick switcher by holding down Ctrl and pressing Tab. Once the quick switcher window appears, you can press Tab and Shift+Tab to cycle through the available presets. When you let go of the Ctrl key, the highlighted preset will be loaded.
To save a custom preset, first use the visibility controls to choose which layers you want visible, then choose Save Preset… from the Presets drop-down menu. Give your preset a name, and it will now be available via the drop-down menu and the quick switcher. To modify a custom preset, follow the same process and save the modified version with the same name to overwrite the existing version. To delete a custom preset, choose the Delete Preset… option from the drop-down menu and select the preset to be deleted from the list.
2.2.4. Net and net class controls
The Nets tab of the appearance panel shows a list of all nets and net classes in the board. Each net has a visibility control that controls the visibility of that net in the ratsnest. Hiding nets in the ratsnest does not change the connectivity of the board and will not impact the design rule checker; it only is intended to make the ratsnest easier to understand.
Each net and net class can also have a color assigned. By default, this color applies to the ratsnest lines for the net (or for all the nets in the net class). Nets have no color by default; this is indicated by a checkerboard pattern in the color swatch. Double-click or right-click a net or net class color swatch to set the color.
Note
|
The Default net class cannot have a color assigned, as nets in this class will just use the default ratsnest color defined by the color theme. |
You can also select and highlight nets and net classes via the appearance panel: right-click on a net or net class to show these options in a menu.
Below the list of net classes is an expandable panel that contains net display options. The first option controls how net colors are applied. When "All" is selected, all copper items (pads, tracks, vias, and zones) belonging to a net or net class will take on the chosen color. When "Ratsnest" is selected (the default value), only the ratsnest is affected by net and net class colors. When "None" is selected, net and net class colors are ignored.
The second option controls how ratsnest lines are drawn. "All layers" means that ratsnest lines will be drawn between all unconnected items. "Visible layers" means that no ratsnest lines will be drawn to items that are on hidden layers, even when those items are unconnected.
2.3. Selection and the selection filter
Selecting items in the editing canvas is done with the left mouse button. Single-clicking on an object will select it, and dragging will perform a box selection. A box selection from left to right will only select items that are fully inside the box. A box selection from right to left will select any items that touch the box. A left-to-right selection box is drawn in yellow, and a right-to-left selection box is drawn in blue.
The selection action can be modified by holding modifier keys while clicking or dragging. The following modifier keys apply when clicking to select single items:
Modifier Keys (Windows/Linux) | Modifier Keys (macOS) | Selection Effect |
---|---|---|
Shift |
Shift |
Add the item to the existing selection. |
Alt+Shift |
Cmd+Shift |
Remove the item from the existing selection. |
Alt |
Cmd |
Toggle the selected state of the item. |
Ctrl |
Alt |
Clarify selection from a pop-up menu. |
Ctrl+Shift |
Cmd+Option |
Highlight the net of the selected copper item. |
The following modifier keys apply when dragging to perform a box selection:
Modifier Keys (Windows/Linux) | Modifier Keys (macOS) | Selection Effect |
---|---|---|
Shift |
Shift |
Add item(s) to the existing selection. |
Alt+Shift |
Cmd+Shift |
Remove item(s) to the existing selection. |
Alt |
Cmd |
Toggle the selected state of item(s). |
The selection filter panel in the lower right corner of the Pcbnew window controls which types of objects can be selected with the mouse. Turning off selection of unwanted object types makes it easier to select items in a dense board. The "All items" checkbox is a shortcut to turn the other items on and off. The "Locked items" checkbox is independent of the rest, and controls whether or not items that have been locked can be selected. You can right-click any object type in the selection filter to quickly change the filter to only allow selecting that type of object.
When a connected copper item is selected, you can expand the selection to other copper items of the same net using the Expand Selection command in the right-click context menu, or with the hotkey U. The first time you run this command, the selection will be expanded to the nearest pad. The second time, the selection will be expanded to all connected items on all layers.
Pressing Esc will always cancel the current tool or operation and return to the selection tool. Pressing Esc while the selection tool is active will clear the current selection.
2.4. Net highlighting
An electrical net (or set of nets) can be highlighted in the PCB editor to visualize how the net is routed across the PCB. Net highlighting can be activated by selecting the net to highlight in the PCB editor, or by selecting the corresponding net in the schematic editor when cross-probe highlighting is enabled (see below). When net highlighting is active, the highlighted net or nets will be shown in a brighter color, and all other items will be shown in a dimmer color than normal.
There are three ways to select a net or nets to highlight in the PCB editor: by using the hotkey ` after selecting a copper object, by using the context menu of any copper object, and the context menu of the Nets tab of the Appearance panel. When you press the Highlight Net hotkey, the nets of any selected copper items will be highlighted. If no copper items are selected, the net of the copper item under the editor cursor will be highlighted. If there is no copper item under the cursor, any existing highlighting will be cleared. The highlighting can also be cleared by using the Clear Highlight action (hotkey ~).
When a net or nets have been selected for highlighting, the Toggle Net Highlighting action becomes enabled on the left toolbar (also accessible by hotkey, Ctrl+`). This action will turn the highlighting display on or off without choosing a new net to highlight.
2.5. Cross-probing from the schematic
KiCad allows bi-directional cross-probing between the schematic and the PCB. There are several different types of cross-probing.
Selection cross-probing allows you to select a symbol or pin in the schematic to select the corresponding footprint or pad in the PCB (if one exists) and vice-versa. By default, cross-probing will result in the display centering on the cross-probed item and zooming to fit. This behavior can be disabled in the Display Options section of the Preferences dialog.
Highlight cross-probing allows you to highlight a net in the schematic and PCB at the same time. If the option "Highlight cross-probed nets" is enabled in the Display Options section of the Preferences dialog, highlighting a net or bus in the schematic editor will cause the corresponding net or nets to be highlighted in the PCB editor.
2.6. Left toolbar display controls
The left toolbar provides options to change the display of items in Pcbnew.
Turns grid display on/off. Note: by default, hiding the grid will disable grid snapping. This behavior can be changed in the Display Options section of Preferences. |
|
Switch between polar and Cartesian coordinate display in the status bar. |
|
|
Display/entry of coordinates and dimensions in inches, mils, or millimeters. |
Switches between full-screen and small editing cursor (crosshairs). |
|
Turns the ratsnest display on/off. |
|
Switches between straight and curved ratsnest lines. |
|
Switches the non-active layer display mode between Normal and Dim. Note: this button will be highlighted when the non-active layer display mode is either Dim or Hide. In both cases, pressing the button will change the layer display mode to Normal. The Hide mode can only be accessed via the controls in the Appearance Panel or via the hotkey Ctrl+H. |
|
When a net has been selected for highlighting, switches the highlighting on or off. Note: this button will be disabled when no net has been highlighted. To highlight a net, use the hotkey `, right-click any copper object in the net and choose Highlight Net from the Net Tools menu, or right-click the net in the list in the Nets tab of the Appearance panel. |
|
Show zone filled areas. |
|
Show zone outlines only. |
|
Show zone filled areas as outlines. |
|
Switches display of pads between filled and outline mode. |
|
Switches display of vias between filled and outline mode. |
|
Switches display of tracks between filled and outline mode. |
|
Shows or hides the Appearance and Selection Filter panels on the right side of the editor. |
3. Creating a PCB
3.1. Basic PCB concepts
A printed circuit board in KiCad is generally made up of footprints representing electronic components and their pads, nets defining how those pads connect to each other, tracks, vias, and filled zones that form the copper connections between pads in each net, and various graphic shapes defining the board edge, silkscreen markings, and any other desired information.
KiCad normally keeps the information about nets on a PCB synchronized with an associated schematic, but nets can also be created and edited directly within the PCB editor.
3.2. Capabilities
KiCad is capable of creating printed circuit boards with up to 32 copper layers, 14 technical layers (silkscreen, solder mask, component adhesive, solder paste, etc) and 13 general-purpose drawing layers.
The internal measurement resolution of all objects in KiCad is 1 nanometer, and measurements are stored as 32-bit integers. This means it is possible to create boards up to appproximately 4 meters by 4 meters.
KiCad currently supports one board file per project / schematic.
3.3. Starting from a schematic
Creating a board from a schematic is the recommended workflow for KiCad. When you create a new project, KiCad will generate an empty board file with the same name as the project. To start designing the board after you have created a schematic, simply open the board file. You can do this either from the KiCad project manager, or by clicking the "Open PCB in board editor" button in the schematic editor.
3.4. Starting from scratch
It is also possible to create a board with no matching schematic, although this workflow has some limitations and is not recommended for most users. To do this, you must start the PCB editor standalone (not from the KiCad project manager). Before beginning your design, it is a good idea to save the board file, which will also create a project file to store board settings. Use "Save As…" from the File menu to choose where to save your board file. A project file with the same name will be created in the same location you choose to save the board file in.
3.5. Board setup
Before beginning your board design, use the Board Setup dialog to configure the basic parameters of the board. To open Board Setup, click the icon in the top toolbar or choose "Board Setup…" from the File menu.
3.5.1. Configuring board stackup and physical parameters
There are two sections of Board Setup used to configure the stackup and layers of the board. The Board Editor Layers section is used to enable or disable technical (non-copper) layers, and give custom names to layers if desired. The Physical Stackup section is used to configure the number of copper layers, as well as the physical parameters of the copper and dielectric layers such as thickness and material type.
To configure the board stackup, start on the Physical Stackup section:

Set the number of copper layers in the upper left corner, and then enter the physical parameters of the stackup if desired. These parameters may be left at their default values, but note that the board thickness value will be used when exporting a 3D model of the board, so if you plan to use this feature, it is a good idea to ensure that the stackup thickness is correct.
Note
|
KiCad currently only supports stackups with an even number of copper layers. To create designs with an odd number of layers (for example, flexible printed circuits or metal-core printed circuits), simply choose the next highest even number and ignore the extra layer. |
Next, if desired, use the Board Editor Layers section to rename layers or hide non-copper layers that you will not be using in the design. For example, if you will not use a back silkscreen on the design, uncheck the box next to the B.Silkscreen
layer.

Note
|
Copper layers can be designated as signal, power plane, mixed, or jumper in the Board Editor Layers section. This designation is intended as a guide for the user only. Tracks and zones can be routed on any copper layer, no matter what the type is configured to in this dialog. |
Some additional board stackup settings are found on the Board Finish and Solder Mask/Paste sections of the Board Setup dialog. The Board Finish section has settings for defining the copper finish and special features such as castellations or edge plating. Note that these settings only impact the board attributes output as part of Gerber job files at this time.
The Solder Mask/Paste section allow global adjustment of the clearance (positive or negative) between the copper shapes and solder mask / solder paste shapes of pads on the board. These values will be added to any clearance overrides set on individual footprints or pads. Positive clearance values will result in the shape of the solder mask or paste opening being larger than the copper shape. Negative clearance values will result in the opening being smaller than the copper shape.
Warning
|
Most commercial PCB fabricators expect these values to be zero, and make their own adjustments to solder mask and paste openings as part of their CAM process. It is usually best to leave these values at their default of zero unless you are making the PCB yourself or have specific advice from your fabricator to use different values. |
3.5.2. Configuring default text and graphic settings
The Text & Graphics Defaults section of the Board Setup dialog can be used to configure the properties that will be used for new text and graphic shapes that are placed on the board.

Line thickness, text size, and text appearance can be configured for the six different categories of layers shown in the dialog. Additionally, the properties for dimension objects can be configured for all layers. For more details about dimension properties, see the Dimensions section below.
Text replacement variables can be created in the Text Variables section. These variables allow you to substitute the variable name for any text string. This substitution happens anywhere the variable name is used inside the variable replacement syntax of ${VARIABLENAME}
.
For example, you could create a variable named VERSION
and set the text substitution to 1.0
. Now, in any text object on the PCB, you can enter ${VERSION}
and KiCad will substitute 1.0
. If you change the substitution to 2.0
, every text object that includes ${VERSION}
will be updated automatically. You can also mix regular text and variables. For example, you can create a text object with the text Version: ${VERSION}
which will be substituted as Version: 1.0
.
3.5.3. Configuring design rules
Design rules control the behavior of the interactive router, the filling of copper zones, and the design rule checker. Design rules can be modified at any time, but we recommend that you establish all known design rules at the beginning of the board design process.
Constraints
Basic design rules are configured in the Constraints section of the Board Setup dialog. Constraints in this section apply to the entire board, and should be set to the values recommended by your board manufacturer. Any minimum value set here is an absolute minimum and cannot be overridden with a more specific design rule. For example, if you need the copper clearance on part of a board to be 0.2mm, and in the rest 0.3mm, you must enter 0.2mm for the minimum copper clearance in the Constraints section and use a netclass or custom rule to set the larger 0.3mm clearance.

In addition to setting minimum clearances, a number of features can be configured here:
Setting | Description |
---|---|
Allow blind/buried vias |
This setting must be enabled before you can place blind or buried vias using the router. Blind vias are mechanically-drilled vias that start at one of the outer copper layers but end at one of the inner layers. Buried vias are mechanically-drilled vias that start and end at inner copper layers. |
Allow micro vias |
This setting must be enabled before you can place microvias using the router. Microvias are typically laser-drilled vias that connect an outer copper layer to the adjacent inner layer. KiCad supports a separate size constraint for microvias as they typically can be smaller than mechanically-drilled vias. |
Arc/circle approximated by segments |
In some situations, KiCad must use a series of straight line segments to approximate round shapes such as those of arcs and circles. This setting controls the maximum error allowed by this approximation: in other words, the maximum distance between a point on one of these line segments and the true shape of the arc or circle. Setting this to a lower number than the default value of 0.005mm will result in smoother shapes, but can be very slow on larger boards. The default value typically results in arc approximation error that is not detectable in the manufactured board due to manufacturing tolerances. |
Zone fill strategy |
KiCad’s zone filling algorithm has been improved to give better results and faster performance. The new algorithm produces slightly different results from the old algorithm, so this setting allows the old behavior to be preserved to prevent producing different Gerber outputs when opening an old design in the latest version of KiCad. We recommend using the Smoothed Polygons mode for all new designs. |
Allow fillets outside zone outline |
Zones can have fillets (rounded corners) added in the Zone Properties dialog. By default, no zone copper, including fillets, is allowed outside the zone outline. This effectively means that inside corners of the zone outline will not be filleted even when a fillet is configured. By enabling this setting, inside corners of the zone outline will be filleted even though this results in copper from the zone extending outside the zone outline. |
Include stackup height in track length calculations |
By default, the height of the stackup is used to calculate the additional length of a track that travels through vias from one layer to another. This calculation relies on the board stackup height being correctly configured. In some situations, it is preferable to ignore the height of vias and just calculate the track length assuming that vias add no length. Disabling this setting will exclude via length from track length calculations. |
Pre-defined Sizes
The pre-defined sizes section allows you to define the track and via dimensions you want to have available while routing tracks. Net classes can be used to define the default dimensions for tracks and vias in different nets (see below) but defining a list of sizes in this section will allow you to step through these sizes while routing. For example, you may want the default track width on a board to be 0.2 mm, but use 0.3 mm for some sections that carry more current, and 0.15 mm for some sections where space is limited. You can define each of these track widths in the Board Setup dialog, and then switch between them when routing traces.

Net Classes
Note
|
TODO: Write this section |
Custom Rules
Note
|
TODO: Write this section |
See Custom Design Rules in the Advanced Topics chapter for more information
Violation Severity
Note
|
TODO: Write this section |
Importing settings
You can import part or all of the board setup from an existing board. This technique can be used to create a "template" board that has the settings you want to use on multiple designs, and then importing these settings from the template board into each new board rather than entering them manually.

To import settings, click the Import Settings from Another Board… button at the bottom of the Board Setup dialog, then choose the kicad_pcb
file you want to import from. Select which settings you want to import, and the current settings will be overwritten with the values from the chosen board.
4. Editing a board
4.1. Placement and drawing operations
Placement and drawing tools are located in the right toolbar. When a tool is activated, it stays active until a different tool is selected, or the tool is canceled with the Esc key. The selection tool is always activated when any other tool is canceled.
Some toolbar buttons have more than one tool available in a palette. These tools are indicated with a small arrow in the lower-right corner of the button:
To show the palette, you can click and hold the mouse button on the tool, or click and drag the mouse. The palette will show the most recently used tool when it is closed.
Selection tool (the default tool). |
|
Local ratsnest tool: when the board ratsnest is hidden, selecting footprints with this tool will show the ratsnest for the selected footprint only. Selecting the same footprint again will hide its ratsnest. The local ratsnest setting for each footprint will remain in effect even after the local ratsnest tool is no longer active. |
|
Footprint placement tool: click on the board to open the footprint chooser, then click again after choosing a footprint to confirm its location. |
|
|
Route tracks / route differential pairs: These tools activate the interactive router and allow placing tracks and vias. The interactive router is described in more detail in the Routing Tracks section below. |
|
Tune length: These tools allow you to tune the length of single tracks, or the length or skew of differential pairs, after they have been routed. See the Routing Tracks section for details. |
Add vias: allows placing vias without routing tracks. Vias placed on top of tracks using this tool will take on the net of the closest track segment, and will become part of that track (the via net will be updated if the pads connected to the tracks are updated). Vias placed anywhere else will take on the net of a copper zone at that location, if one exists. These vias will not automatically take on a new net if the net of the copper zone is changed. |
|
Add filled zone: Click to set the start point of a zone, then configure its properties before drawing the rest of the zone outline. Zone properties are described in more detail below. |
|
Add rule area: Rule areas, formerly known as keepouts, can restrict the placement of items and the filling of zones, and can also define named areas to apply specific custom design rules to. |
|
Draw lines. Note: Lines are graphical objects and are not the same as tracks placed with the Route Tracks tool. Graphical objects cannot be assigned to a net. |
|
Draw arcs: pick the center point of the arc, then the start and end points. |
|
Draw rectangles. Rectangles can be filled or outlines. |
|
Draw circles. Circles can be filled or outlines. |
|
Draw graphical polygons. Polygons can be filled our outlines. Note: Filled graphical polygons are not the same as filled zones: graphical polygons cannot be assigned to a net and will not keep clearance from other items. |
|
Add text. |
|
|
Add dimensions. Dimension types are described in more detail below. |
Add layer alignment mark. |
|
Deletion tool: click objects to delete them. |
|
Set drill/place origin. Used for fabrication outputs. |
|
Set grid origin. |
4.2. Snapping
When moving, dragging, and drawing board elements, the grid, pads, and other elements can have snapping points depending upon the settings in the user preferences. In complex designs, snap points can be so close together that it makes the current tool action difficult. Both grid and object snapping can be disabled while moving the mouse by using the modifier keys in the table below.
Modifier Key | Effect |
---|---|
Shift |
Disable grid snapping. |
Alt |
Disable object snapping. |
4.3. Editing object properties
All objects have properties that are editable in a dialog. Use the hotkey E or select Properties from the right-click context menu to edit the properties of selected item(s). You can only open the properties dialog if all the items you have selected are of the same type. To edit the properties of different types of items at one time, see the section below on bulk editing tools.
4.4. Working with footprints
Note
|
TODO: Write this section - covers footprint properties, updating from library, etc |
4.5. Working with pads
Note
|
TODO: Write this section - covers pad properties |
4.6. Working with zones
Note
|
TODO: Write this section |
4.7. Graphical objects
Graphical objects (lines, arcs, rectangles, circles, polygons, and text) can exist on any layer but cannot be assigned to a net. Rectangles, circles, and polygons can be set to be filled or outlines in their properties dialogs. The line width property will control the width of the outline even for filled shapes. Line width can be set to 0
for filled shapes to disable the outline.
4.7.1. Board outlines (Edge Cuts)
KiCad uses graphical objects on the Edge.Cuts
layer to define the board outline. The outline must be a continuous (closed) shape, but can be made up of different types of graphical object such as lines and arcs, or be a single object such as a rectangle or polygon. If no board outline is defined, or the board outline is invalid, some functions such as the 3D viewer and some design rule checks will not be functional.
4.8. Dimensions
Note
|
TODO: Write this section |
4.9. Routing tracks
KiCad features an interactive router that allows manual or guided (semi-automatic) routing of single tracks and differential pairs. The router also enables modification of designs by re-routing existing tracks when they are dragged, and re-routing tracks attached to footprint pads when the footprint is dragged. For designs with tight timing requirements, the router also allows tuning of track lengths and differential pair skew (phase) by inserting serpentine tuning shapes.
By default, the router respects the configured design rules when placing tracks: the size (width) of new tracks will be taken from the design rules, and the router will respect the copper clearance set in the design rules when determining where new tracks and vias can be placed. It is possible to disable this behavior if desired by using the Highlight Collisions router mode and turning on the Allow DRC Violations option in the router settings (see below).
The router has three modes that can be selected at any time. The router mode is used for routing new tracks, but also when dragging existing tracks using the Drag (hotkey D) command. These modes are:
-
Highlight Collisions: in this mode, most of the router features are disabled, and routing is fully manual. When routing, collisions (clearance violations) will be highlighted in green, and the newly-routed tracks cannot be fixed in place if there is a collision unless the Allow DRC Violations option is turned on. In this mode, up to two track segments may be placed at a time (for example, one horizontal and one diagonal segment).
-
Shove: in this mode, the track being routed will walk around obstacles that cannot be moved (for example, pads and locked tracks/vias) and shove obstacles that can be moved out of the way. The router prevents DRC violations in this mode: if there is no way to route to the cursor position that does not violate DRC, no new tracks will be created.
-
Walk Around: in this mode, the router behaves the same as in Shove mode, except no obstacles will be moved out of the way.
Which mode to use is a matter of preference. For most users, we recommend using Shove mode for the most efficient routing experience, or Walk Around mode if you do not want the router to modify tracks that are not being routed. Note that Shove and Walk Around modes always create horizontal, vertical, and 45-degree (H/V/45) track segments. If you need to route tracks with angles other than H/V/45, you must use Highlight Collisions mode and enable the Free Angle Mode option in the Interactive Router Settings dialog.
To route tracks, select the Route Tracks tool from the drawing toolbar, or use the hotkey X. Click on a starting location to select which net to route and begin routing. The net being routed will automatically be highlighted, and the allowable clearance for the net will be indicated with a gray outline around the tracks being routed. The clearance outline can be disabled by changing the Clearance Outlines setting in the Display Options section of the Preferences dialog.
Note
|
The clearance outline shows the maximum clearance from the routed net to any other copper on the PCB. It is possible to use custom design rules to specify different clearances for a net to different objects. These clearances will be respected by the router, but only the largest clearance value will be shown visually. |
When the router is active, new track segments will be drawn from the routing start point to the editor cursor. These tracks are unfixed temporary objects that show what tracks will be created when you use a left-click or the Enter key to fix the route. The unfixed track segments are shown in a brighter color than the fixed track segments. When you exit the router using the Esc key or by selecting another tool, only the fixed track segments will be saved. The Finish Route action (hotkey End) will fix all tracks and exit the router.
While you are routing, you can use the Undo Last Segment command (hotkey Backspace) to unfix the tracks you most recently fixed. You can use this command repeatedly to step back through the route that you have already fixed.
In previous versions of KiCad, using the left mouse button or Enter to fix the routed segments would fix all segments up to but not including the segment ending at the mouse cursor location. In KiCad 6, this behavior is now optional, and by default, all segments including the one ending at the mouse cursor location will be fixed. The old behavior can be restored by disabling the "Fix all segments on click" option in the Interactive Router Settings dialog.
While routing, you can hold the Ctrl key to disable grid snapping, and hold the Shift key to disable snapping to objects such as pads and vias.
Note
|
Snapping to objects can also be disabled by changing the Magnetic Points preferences in the Editing Options section of the Preferences dialog. We recommend that you leave object snapping enabled in general, so that you do not accidentally end tracks slightly off-center on a pad or via. |
4.9.1. Track posture
When routing in H/V/45 mode, the posture refers to how a set of two track segments connect two points that cannot be reached by a single H/V/45-degree segment. In such a case, the points will be connected by one horizontal or vertical segment and one diagonal (45-degree) segment. The posture refers to the order of these segments: whether the horizontal/vertical segment or the diagonal segment comes first.
KiCad’s router attempts to pick the best posture automatically based on a number of factors. In general, the router will attempt to minimize the number of corners in a route, and will avoid "bad" corners such as acute angles whenever possible. When routing from or to a pad, KiCad will choose the posture that lines up the route with the longest edge of the pad.
In some cases, KiCad cannot guess the posture you intend correctly. To switch the posture of the track while routing, use the Switch Track Posture command (hotkey /).
In situations where there is no obvious "best" posture (for example, when starting a route from a via), KiCad will use the movement of your mouse cursor to select the posture. If you would like the route to begin with a straight (horizontal or vertical) segment, move the mouse away from the starting location in a mostly horizontal or vertical direction. If you would like the route to begin diagonally, move in a diagonal direction. Once the cursor is a sufficient distance away from the routing start location, the posture is "locked" and will no longer change unless the cursor is brought back to the starting location. Detection of posture from the movement of the mouse cursor can be disabled in the Interactive Router Settings dialog as described below.
Note
|
If you use the Switch Track Posture command to override the posture chosen by KiCad, the automatic detection of posture from mouse movement will be disabled for the remainder of the current routing operation. |
4.9.2. Track corner mode
KiCad’s router can place tracks with either sharp or rounded (arc) corners when routing in H/V/45 mode. To switch between sharp and rounded corners, use the Track Corner Mode command (hotkey Ctrl+/). When routing with rounded corners, each routing step will place either a straight segment, a single arc, or both a straight segment and an arc. The track posture determines whether the arc or the straight segment will be placed first.
Track corners can also be rounded after routing by using the Fillet Tracks command after selecting the desired tracks.
Note
|
Dragging of tracks with arcs is not yet supported. Arcs will be converted back to sharp corners when dragging tracks or when tracks are moved by the router in Shove mode. |
4.9.3. Szerokość ścieżki
The width of the track being routed is determined in one of three ways: if the routing start point is the end of an existing track and the button on the top toolbar is enabled, the width will be set to the width of the existing track. Otherwise, if the track width dropdown in the top toolbar is set to "use netclass width", the width will be taken from the netclass of the net being routed (or from any custom design rules that specify a different width for the net, such as inside a neckdown area). Finally, if the track width dropdown is set to one of the pre-defined track sizes configured in the Board Setup dialog, this width will be used.
Note
|
The track width can never be lower than the minimum track width configured in the Constraints section of the Board Setup dialog. If a pre-defined width is added that is lower than this minimum constraint, the minimum constraint value will be used instead. |
KiCad’s router supports a single track width for the active route. In other words, to change widths in the middle of a track, you must end the route and then restart a new route from the end of the previous route. To change the width of the active route, use the hotkeys W and Shift+W to step through the track widths configured in the Board Setup dialog.
4.9.4. Placing vias
While routing tracks, switching layers will insert a through via at the end of the current (unfixed) track. Once you place the via, routing will continue on the new layer. There are several ways to select a new layer and insert a via:
-
By using the hotkey to select a specific layer, such as PgUp to select
F.Cu
or PgDn to selectB.Cu
. -
By using the "next layer" or "previous layer" hotkeys (+ and -).
-
By using the "Place Via" hotkey (V), which will switch to the next layer in the active layer pair.
-
By using the Select Layer and Place Through Via action (hotkey <), which will open a dialog to select the target layer.
The size of the via will be taken from the active Via Size setting, accessible from the drop-down in the top toolbar or the Increase Via Size (') and Decrease Via Size (\) hotkeys. Much like track width, when the via size is set to "use netclass sizes", the via sizes configured in the Net Classes section of the Board Setup will be used (unless overridden by a custom design rule).
If microvias or blind/buried vias are enabled in the Constraints section of the Board Setup dialog, these vias can be placed while routing. Use the hotkey Ctrl+V to place a microvia and Alt+Shift+V to place a blind/buried via. Microvias may only be placed such that they connect one of the outer copper layers to an adjacent layer. Blind/buried vias may be placed on any layer.
Vias placed by the router are considered to be part of a routed track. This means that the via net can be updated automatically (just like track nets can), for example when updating the PCB from the schematic changes the net name of the track. In some cases this may not be desired, such as when creating stitching vias. The automatic update of via nets can be disabled for specific vias by turning off the "automatically update via nets" checkbox in the via properties dialog. Vias placed with the Add Free-standing Vias tool are created with this setting disabled.
4.9.5. Routing differential pairs
Differential pairs in KiCad are defined as nets with a common base name and a positive and negative suffix. KiCad supports using +
and -
, or P
and N
as the suffix. For example, the nets USB+
and USB-
form a differential pair, as do the nets USB_P
and USB_N
. In the first example, the base name is USB
, and USB_
in the second. The suffix styles cannot be mixed: the nets USB+
and USB_N
do not form a differential pair. Make sure you name your differential pair nets accordingly in the schematic in order to allow use of the differential pair router in the PCB editor.
To route a differential pair, select the Route Differential Pairs tool from the drawing toolbar, or use the hotkey 6. Click on a pad, via, or the end of an existing differential pair track to start routing. You can start routing from either the positive or negative net of a differential pair.
Note
|
It is not currently possible to start routing a differential pair in the middle of an existing differential pair track. |
The differential pair router will attempt to route the pair of tracks with a gap taken from the design rules (differential pair gap can be configured in the Net Classes section of the Board Setup dialog, or by using custom design rules). If the starting or ending location of the route is a different distance apart from the configured gap, the router will create a short "fan out" section to minimize the length of track where the differential pair is not coupled.
When switching layers or using the Place Via (V) action, the differential pair router will create two vias next to each other. These vias will be placed as close as possible to each other while respecting the design rules for copper and hole-to-hole clearance.
4.9.6. Modifying tracks
After tracks have been routed, they can be modified by moving or dragging, or deleted and re-routed. When a single track segment is selected, the hotkey U can be used to expand the selection to all connected track segments. The first press of U will select track segments between the nearest junctions with pads or vias. The second press of U will expand the selection again to include all track segments connected to the selected track on all layers. Selecting tracks with this technique can be used to quickly delete an entire routed net.
There are two different drag commands that can be used to modify a track segment. The Drag (45-degree mode) command, hotkey D, is used to drag tracks using the router. If the router mode is set to Shove, dragging with this command will shove nearby tracks. If the router mode is set to Walk Around, dragging with this command will walk around or stop at obstacles. The Drag Free Angle command, hotkey G, is used to split a track segment into two and drag the new corner to any location. Drag Free Angle behaves like the Highlight Collisions router mode: obstacles will not be avoided or shoved, only highlighted.
Note
|
Dragging of tracks containing arcs is not yet possible. Attempting to drag these tracks will result in the arcs being removed in some cases. It is possible to resize a particular arc by selecting it and using the drag command (D). When resizing an arc using this command, no DRC checking is performed. |
The Move command (hotkey M) can also be used on track segments. This command will pick up the selected track segments, ignoring any attached track segments or vias that are not selected. No DRC checking is done when moving tracks using the Move command.
It is possible to re-route tracks attached to footprints while moving the footprints. To do so, use the drag command (D) with a footprint selected. Any tracks that end at one of the footprint’s pads will be dragged along with the footprint. This feature has some limitations: it only operates in Highlight Collisions mode, so the tracks attached to footprints will not walk around obstacles or shove nearby tracks out of the way. Additionally, only tracks that end at the origin of the footprint’s pads will be dragged. Tracks that simply pass through the pad or that end on the pad at a location other than the origin will not be dragged.
It is possible to modify the width of tracks and the size of vias without re-routing them using the Edit Tracks and Vias dialog. See the section below on bulk editing tools for details.
4.9.7. Length tuning
The length tuning tools can be used to add serpentine tuning shapes to tracks after routing. To tune the length of a track, first pick the appropriate length tuning tool: the single track tuning tool (hotkey 7) will add serpentine shapes to bring the length of a single track up to the target value. The differential pair tuning tool (hotkey 8) will do the same for a differential pair. The differential pair skew tuning tool (hotkey 9) will add length to the shorter member of a differential pair in order to eliminate skew (phase difference) between the positive and negative sides of the pair.
To select the target length for the length tuning tools, open the Length Tuning Settings dialog from the context menu or with the hotkey Ctrl+L after activating the length tuning tool:

This dialog can also be used to configure the size, shape, and spacing of the meander shapes.
After configuring the target length, click a track in the area that you wish to start placing meander shapes. Move the mouse cursor along the track, and meander shapes will be added. A status window will appear next to the cursor showing the current length of the track and the target length. Click again to finish placing the current meander. Multiple meanders can be placed on the same track if desired.
Note
|
The length tuning tools only support tuning the length of point-to-point nets between two pads. Tuning the length of nets with different topologies is not yet supported. |
4.9.8. Interactive router settings
The interactive router settings can be accessed through the Route menu, or by right-clicking on the Route Tracks button in the toolbar. These settings control the router behavior when routing tracks as well as when dragging existing tracks.

Setting | Description |
---|---|
Mode |
Sets the operating mode of the router for creating new tracks and dragging existing tracks. See above for more information. |
Free angle mode |
Allows routing tracks at any angle, instead of just at 45-degree increments. This option is only available if the router mode is set to Highlight collisions. |
Jump over obstacles |
In Shove mode, allows the router to attempt to move colliding tracks behind solid obstacles (such as pads). |
Remove redundant tracks |
Automatically removes loops created in the currently-routed track, keeping only the most recently routed section of the loop. |
Optimize pad connections |
When this setting is enabled, the router attempts to avoid acute angles and other undesirable routing when exiting pads and vias. |
Smooth dragged segments |
When dragging tracks, attempts to combine track segments together to minimize direction changes. |
Allow DRC violations |
In Highlight collisions mode, allows placing tracks and vias that violate DRC rules. Has no effect in other modes. |
Optimize entire track being dragged |
When enabled, dragging a track segment will result in KiCad optimizing the rest of the track that is visible on the screen. The optimization process removes unnecessary corners, avoids acute angles, and generally tries to find the shortest path for the track. When disabled, no optimizations are performed to the track outside of the immediate section being dragged. |
Use mouse path to set track posture |
Attempts to pick the track posture based on the mouse path from the routing start location. |
Fix all segments on click |
When enabled, clicking while routing will fix the position of all the track segments that have been routed, including the segment that ends at the mouse cursor. A new segment will be started from the mouse cursor location. When disabled, the last segment (the one that ends at the mouse cursor) will not be fixed in place and can be adjusted by further mouse movement. |
4.10. Forward and back annotation
Note
|
TODO: Write this section |
4.10.1. Geographical re-annotation
Note
|
TODO: Write this section |
4.11. Locking
Most objects can be locked through their properties dialogs, by using the right-click context menu, or by using the Toggle Lock hotkey (L). Locked objects cannot be selected unless the "Locked items" checkbox is enabled in the selection filter. Attempting to move locked items will result in a warning dialog:

Selecting "Override Locks" in this dialog will allow moving the locked items. Selecting "OK" will allow you to move any unlocked items in the selection; leaving the locked items behind. Selecting "Do not show again" will remember your choice for the rest of your session.
4.12. Bulk editing tools
Note
|
TODO: Write this section |
4.13. Cleanup tools
Note
|
TODO: Write this section |
5. Inspecting a board
5.1. Measurement tool
Note
|
TODO: Write this section |
5.2. Design rule checking
Note
|
TODO: Write this section |
5.2.1. Clearance and constraint resolution
Note
|
TODO: Write this section |
5.3. 3D viewer
Note
|
TODO: Write this section |
5.4. Net inspector
Note
|
TODO: Write this section |
6. Generating outputs
6.1. Fabrication outputs
Note
|
TODO: Write this section |
6.2. Printing
Note
|
TODO: Write this section |
6.3. Exporting files
Note
|
TODO: Write this section NOTE: Bring IDF exporter docs in to here |
7. Footprints and footprint libraries
7.1. Managing footprint libraries
Note
|
TODO: Write this section |
7.2. Creating and editing footprints
Note
|
TODO: Write this section |
7.2.1. Custom pad shapes
7.2.2. Footprint attributes
Note
|
Mention net ties here |
7.2.3. Footprint wizards
For more information about creating new footprint wizards, see the Scripting section of the Advanced Topics chapter.
8. Advanced topics
8.1. Configuration and Customization
Pcbnew has a variety of preferences that can be configured through the Preferences dialog. Like all parts of KiCad, the preferences for Pcbnew are stored in the user configuration directory and are independent between KiCad minor versions to allow multiple versions to run side-by-side with independent preferences.
The first sections of the Preferences dialog (Common, Mouse and Touchpad, and Hotkeys) are shared between all KiCad programs. These sections are described in detail in the KiCad manual under the "Common preferences" section. Note that even though the Hotkeys section is shared between all programs, there are many Pcbnew-specific hotkeys that only appear in the list when Pcbnew is running.
8.1.1. Display options

Rendering Engine: Controls if Accelerated graphics or Fallback graphics are used.
Grid style: Controls how the alignment grid is drawn.
Grid thickness: Controls how thick grid lines or dots are drawn.
Min grid spacing: Controls the minimum distance, in pixels, between two grid lines. Grid lines that violate this minimum spacing will not be drawn, regardless of the current grid setting.
Snap to grid: Controls when drawing and editing operations will be snapped to coordinates on the active grid. "Always" will enable snapping even when the grid is hidden; "When grid shown" will enable snapping only when the grid is visible.
Note
|
Grid snapping can be temporarily disabled by holding down Shift. |
Cursor shape: Controls whether the editing cursor is drawn as a small crosshair or a full-screen crosshair (a set of lines covering the entire drawing canvas). The editing cursor shows where the next drawing or editing action will occur and will be snapped to a grid location if snapping is enabled.
Always show crosshairs: Controls whether the editing cursor is shown all the time or only when an editing or drawing tool is active.
Net names: Controls whether or not net name labels are drawn on copper objects. These labels are guides for editing only and do not appear in fabrication outputs.
Show pad numbers: Controls whether or not pad number labels are drawn on footprint pads.
Show pad <no net> indicator: Controls whether or not pads with no net are indicated with a special marker.
Track clearance: Controls whether or not clearance outlines around tracks and vias are shown. Clearance outlines are shown as thin shapes around objects that indicate the minimum clearance to other objects, as defined by constraints and design rules.
Show pad clearance: Controls whether or not clearance outlines around pads are shown.
Center view on cross-probed items: When both Eeschema and Pcbnew are running, controls whether clicking a component or pin in Eeschema will center the Pcbnew view on the corresponding footprint or pad.
Zoom to fit cross-probed items: Controls whether the view will be zoomed to show a cross-probed footprint or pad.
Highlight cross-probed nets: Controls whether or not nets highlighted in Eeschema will be highlighted in Pcbnew when the highlight tool is activated in both tools.
8.1.2. Editing options

Lock pads of newly added footprints: Controls whether or not the pads of footprints will default to locked or unlocked (editable).
Flip board items L/R: Controls the direction board items will be flipped when moving them between the top and bottom layers. When checked, items are flipped Left-to-Right (about the Vertical axis); when unchecked, items are flipped Top-to-Bottom (about the Horizontal axis).
Limit graphic lines to H, V, and 45 degrees: Controls whether lines drawn with the graphic drawing tools can take on any angle. Note that this only affects drawing new lines: lines can be edited to take on any angle.
Rotation angle: Controls how far the selected object(s) will be rotated each time the Rotate command is used.
Magnetic points: This section controls object snapping, also called magnetic points. Object snapping takes precedence over grid snapping when it is enabled. Object snapping only works to objects on the active layer. Hold Alt to temporary disable object snapping.
Snap to pads: Controls when the editing cursor will snap to pad origins.
Snap to tracks: Controls when the editing cursor will snap to track segment endpoints.
Snap to graphics: Controls when the editing cursor will snap to graphic shape points.
Always show selected ratsnest: When enabled, the ratsnest for a selected footprint will always be shown even if the global ratsnest is hidden.
Show ratsnest with curved lines: Controls whether ratsnest lines are drawn straight or curved.
Show page limits: Controls whether or not the page boundary is drawn as a rectangle.
Mouse drag track behavior: Controls the action that will occur when you drag a track segment with the mouse: "Move" will move the track segment independent of any others. "Drag (45 degree mode)" will invoke the push-and-shove router to drag the track, respecting design rules and keeping other track segments attached. "Drag (free angle)" will move the nearest corner of the track segment, highlighting collisions with other objects but not moving them out of the way.
8.1.3. Colors

Pcbnew supports switching between different color themes to match your preferences. Kicad 6.0 comes with two built-in color themes: "KiCad Default" is a new theme designed to have good contrast and balance for most cases and is the default for new installations. "KiCad Classic" is the default theme from KiCad 5.1 and earlier versions. Neither of these built-in themes can be modified, but you can create new themes to customize the look of Pcbnew as well as install themes made by other users.
Color themes are stored in JSON files located in the colors
subdirectory of the KiCad configuration directory. The "Open Theme Folder" button will open this location in your system file manager, making it easy to manage your installed themes. To install a new theme, place it in this folder and restart KiCad. The new theme will be available from the drop-down list of color themes if the file is a valid color theme file.
To create a new color theme, choose New Theme… from the drop-down list of color themes. Enter a name for your theme and then begin editing colors. The colors in the new theme will be copied from whatever theme was selected before you created the new theme.
To change a color, double-click or middle-click the color swatch in the list. The "Reset to Default" button will reset that color to its corresponding entry in the "KiCad Default" color theme.
Color themes are saved automatically; all changes are reflected immediately when you close the Preferences dialog. The window on the right side of the dialog shows a preview of how the selected theme will look.
8.1.4. Action plugins
Note
|
TODO: Write this section |
8.1.5. Origin & axes

Display origin: Determines which coordinate origin is used for coordinate display in the editing canvas. The page origin is fixed at the corner of the page. The drill/place file origin and the grid origin can be moved by the user.
X axis: Controls whether X-coordinates increase to the right or to the left.
Y axis: Controls whether Y-coordinates increase upwards or downwards.
8.2. Custom design rules
KiCad’s custom design rule system allows creating design rules that are more specific than the generic rules available in the Constrants page of the Board Setup dialog. Custom design rules have many applications, but in general they are used to apply certain rules to a portion of the board, such as a specific net or netclass, a specific area, or a specific footprint.
Custom design rules are stored in a separate file with the extension kicad_dru
. This file is created automatically when you start adding custom rules to a project. If you are using custom rules in your project, make sure to save the kicad_dru
file along with the kicad_pcb
and kicad_pro
files when making backups or committing to a version control system.
Note
|
The kicad_dru file is managed automatically by KiCad and should not be edited with an
external text editor. Always use the Custom Rules page of the Board Setup dialog to edit
custom design rules.
|
8.2.1. The Custom Rules editor
The custom rules editor is located in the Board Setup dialog and provides a text editor for entering custom rules, a syntax checker that will test your custom rules and note any errors, and a syntax help dialog that contains a quick reference to the custom rules language and some example rules.
It is a good idea to use the Check rule syntax button after editing custom rules to make sure there are no syntax errors. Any errors in the custom rules will prevent the design rule checker from running.
8.2.2. Custom rule syntax
The custom design rule language is based on s-expressions and allows you to create design constraints that are not possible with the built-in constraints. Each design rule generally contains a condition defining what objects to match, and a constraint defining the rule to be applied to the matched objects.
The language uses parentheses ((
and )
) to define clauses of related tokens and values. Parentheses must always be matched: for every (
there must be a matching )
. Inside a clause, tokens and values are separated by whitespace. By convention, a single space is used, but any number of whitespace characters between tokens is acceptable. In places where text strings are valid, strings without any whitespace may be quoted with "
or '
, or unquoted. Strings that contain whitespace must always be quoted. Where nested quotes are required, a single level of nesting is possible by using "
for the outer quote character and '
for the inner (or vice versa). Newlines are not required, but are typically used in examples for clarity.
In the syntax descriptions below, items in <angle brackets>
represent tokens that must be present and items in [square brackets]
represent tokens that are optional or only sometimes required.
The Custom Rules file must start with a version header defining the version of the rules language. As of KiCad 6.0, the version is 1
. The syntax of the version header is (version <number>)
. So in KiCad 6.0 the header should read:
(version 1)
After the version header, you can enter any number of rules. Rules are evaluated in reverse order, meaning the last rule in the file is checked first. Once a matching rule is found for a given set objects being tested, no further rules will be checked. In practice, this means that more specific rules should be later in the file, so that they are evaluated before more general rules.
For example, if you create one rule that limits the minimum clearance between tracks in the net HV
and tracks in any other net and a second rule that limits the minimum clearance for all objects inside a certain rule area, make sure the first rule appears later in the custom rules file than the second rule. Otherwise tracks in the HV
net could have the wrong clearance if they fall inside the rule area.
Each rule must have a name and one or more constraint
clause. The name can be any string and is used to refer to the rule in DRC reports. The constraint
defines the behavior of the rule. Rules may also have a condition
clause that determines which objects should have the rule applied and an optional layer
clause, which specifies which board layers the rule applies to.
(rule <name> [(layer <layer_name>)] [(condition <expression>)] (constraint <constraint_type> [constraint_arguments]))
The custom rules file may also include comments to describe rules. Comments are denoted by any line that begins with the #
character (not including whitespace).
# Clearance for 400V nets to anything else (rule HV (condition "A.NetClass == 'HV'") (constraint clearance (min 1.5mm)))
Layer Clause
The layer
clause determines which layers the rule will work on. While the layer of objects can be tested in the condition
clause as described below, using the layer
clause is more efficient.
The value of the layer
clause can be any board layer name, or the shortcuts outer
to match the front and back copper layers (F.Cu
and B.Cu
) and inner
to match any internal copper layers.
If the layer
clause is omitted, the rule will apply to all layers.
Some examples:
# Do not allow footprints on back layer (no condition clause means this rule always applies) (rule "Top side footprints only" (layer B.Cu) (constraint disallow footprint)) # This rule does the same thing, but is less efficient (rule "Top side footprints only" (condition "A.Layer == 'B.Cu'") (constraint disallow footprint)) # Larger clearance on outer layers (inner layer clearance set by board minimum clearance) (rule "clearance_outer" (layer outer) (constraint clearance (min 0.25mm)))
Condition Clause
The rule condition is an expression contained inside a text string (and therefore usually surrounded by quotes in order to allow whitespace for clarity). The expression is evaluated against each pair of objects that is being tested by the design rule checker. For example, when checking for clearance between copper objects, each copper object (track segment, pad, via, etc.) on each net is checked against other copper objects on other nets. If a custom rule exists where the expression matches the two given copper objects and the constraint defines a copper clearance, this custom rule could be used to determine the required clearance between the two objects.
The objects being tested are referred to as A
and B
in the expression language. The order of the two objects is not important because the design rule checker will test both possible orderings. For example, you can write a rule that assumes that A
is a track and B
is a via. There are some expression functions that test both objects together; these use AB
as the object name.
The expression in a condition must resolve to a boolean value (true
or false
). If the expression resolves to true
, the rule is applied to the given objects.
Each object being tested has properties that can be compared, as well as functions that can be used to perform certain tests. The syntax for using properties and functions is <object>.<property>
and <object>.<function>([arguments])
respectively.
Note
|
When you type <object>. in the text editor (A. , B. , or AB. ), an autocomplete list
will open that contains all the object properties that can be used.
|
The object properties and functions are compared using boolean operators to result in a boolean expression. The boolean operators are based on C/C++ syntax, and the following operators are supported:
|
Equal to |
|
Not equal to |
|
Greater than, greater than or equal to |
|
Less than, less than or equal to |
|
And |
|
Or |
For example, A.NetClass == 'HV'
will apply to any objects that are part of the "HV" netclass and A.NetClass != B.NetClass
will apply to any objects that are in different netclasses. Parentheses can be used to clarify the order of operations in complex expressions but they are not required.
Some properties represent a physical measurement, such as a size, angle, length, position, etc. On these properties, unit suffixes can be used in the custom rules language to specify what units are being used. If no unit suffix is used, the internal representation of the property will be used instead (nanometers for distances and degrees for most angles). The following suffixes are supported:
|
Millimeters |
|
Thousandths of an inch (mils) |
|
Inches |
|
Degrees |
|
Radians |
Note
|
The units used in custom design rules are independent of the display units in the PCB editor. |
Constraints
The constraint clause of the rule defines the behavior of the rule on the objects that are matched by the condition. Each constraint clause has a constraint type and one or more arguments that set the behavior of the constraint. A single rule may have multiple constraint clauses, in order to set multiple constraints (for example, clearance
and track_width
) for objects that match the same rule conditions.
Many constraints take arguments that specify a physical measurement or quantity. These constraints support minimum, optimal, and maximum value specification (abbreviated "min/opt/max"). The minimum and maximum values are used for design rule checking: if the actual value is less than the minimum or is greater than the maximum value in the constraint, a DRC error is created. The optimal value is only used for some constraints, and informs KiCad of a "best" value to use by default. For example, the optimal diff_pair_gap
is used by the router when placing new differential pairs. No errors will be created if the differential pair is later modified such that the gap between the pair is different from the optimal value, as long as the gap is between the minimum and maximum values (if these are specified). In all cases where a min/opt/max value is accepted, any or all of the minimum, optimal, and maximum value can be specified.
Min/opt/max values are specified as (min <value>)
, (opt <value>)
, and (max <value>)
. For example, a track width constraint may be written as (constraint track_width (min 0.5mm) (opt 0.5mm) (max 1.0mm))
or simply (constraint track_width (min 0.5mm))
if only the minimum width is to be constrained.
Constraint type | Argument type | Description |
---|---|---|
|
min/opt/max |
Checks the width of annular rings on vias. |
|
min |
Checks the clearance between copper objects of different nets. KiCad’s design rule system does not permit constraining clearance between objects on the same net at this time. To allow copper objects to overlap (collide), create a |
|
min |
Checks the clearance between footprint courtyards and generates an error if any two courtyards
are closer than the |
|
min/opt/max |
Checks the gap between coupled tracks in a differential pair. Coupled tracks are segments that are parallel to each other. Differential pair gap is not tested on uncoupled portions of a differential pair (for example, the fanout from a component). |
|
max |
Checks the distance that a differential pair track is routed uncoupled from the other polarity track in the pair (for example, where the pair fans out from a component, or becomes uncoupled to pass around another object such as a via). |
|
|
Specify one or more object types to disallow, separated by spaces. For example,
|
|
min/opt/max |
Checks the clearance between objects and graphical items on the |
|
min/max |
Checks the total routed length for the nets that match the rule condition and generates an
error for each net that is below the |
|
min/max |
Checks the size (diameter) of a drilled hole in a pad or via. For oval holes, the smaller
(minor) diameter will be tested against the |
|
min |
Checks the clearance between a drilled hole in a pad or via and copper objects on a different net. The clearance is measured from the diameter of the hole, not its center. |
|
min |
Checks the clearance between mechanically-drilled holes in pads and vias. The clearance is measured between the diameters of the holes, not between their centers. HDI vias (microvias, blind vias, and buried vias) are not tested by this constraint. |
|
min/opt/max |
Checks the clearance between objects on silkscreen layers and other objects. |
|
max |
Checks the total skew for the nets that match the rule condition, that is, the difference
between the length of each net and the average of all the lengths of each net that is matched
by the rule. If the absolute value of the difference between that average and the length of
any one net is above the constraint |
|
min/opt/max |
Checks the width of track and arc segments. An error will be generated for each segment that
has a width below the |
|
max |
Counts the number of vias on every net matched by the rule condition. If that number exceeds
the constraint |
8.2.3. Object property and function reference
The following properties can be tested in custom rule expressions:
Common Properties
These properties apply to all PCB objects.
Property | Data type | Description |
---|---|---|
|
string |
The board layer on which the object exists. For objects that exist on more than one layer,
this property will return the first layer (for example, |
|
boolean |
True if the object is locked. |
|
string |
Returns the unique identifier of the parent object of this object. |
|
dimension |
The position of the object’s origin in the X-axis. Note that the origin of an object is not always the same as the center of the object’s bounding box. For example, the origin of a footprint is the location of the (0, 0) coordinate of that footprint in the footprint editor, but the footprint may have been designed such that this location is not in the center of the courtyard shape. |
|
dimension |
The position of the object’s origin in the Y-axis. Note that KiCad always uses Y-coordinates that increase from the top to bottom of the screen internally, even if you have configured your settings to show the Y-coordinates increasing from bottom to top. |
|
string |
One of "Footprint", "Pad", "Graphic Shape", "Board Text", "Footprint Text", "Zone", "Track", "Via", "Zone", or "Group". |
Connected Object Properties
These properties apply to copper objects that can have a net assigned (pads, vias, zones, tracks).
Property | Data type | Description |
---|---|---|
|
integer |
The net code of the copper object. Note that net codes should not be relied upon to remain
constant: if you need to refer to a specific net in a rule, use |
|
string |
The name of the netclass for the copper object. |
|
string |
The name of the net for the copper object. |
Footprint Properties
Property | Data type | Description |
---|---|---|
|
dimension |
The copper clearance override set for the footprint. |
|
double |
The orientation (rotation) of the footprint in degrees. |
|
string |
The reference designator of the footprint. |
|
dimension |
The solder paste margin override set for the footprint. |
|
dimension |
The solder paste margin ratio override set for the footprint. |
|
dimension |
The thermal relief gap set for the footprint. |
|
dimension |
The thermal relief connection width set for the footprint. |
|
string |
The contents of the "Value" field of the footprint. |
Pad Properties
Property | Data type | Description |
---|---|---|
|
dimension |
The copper clearance override set for the pad. |
|
string |
One of "None", "BGA pad", "Fiducial, global to board", "Fiducial, local to footprint", "Test point pad", "Heatsink pad", "Castellated pad". |
|
dimension |
The size of the pad’s drilled hole/slot in the X axis. |
|
dimension |
The size of the pad’s drilled hole/slot in the Y axis. |
|
double |
The orientation (rotation) of the pad in degrees. |
|
string |
The "number" of a pad, which can be a string (for example "A1" in a BGA). |
|
dimension |
The value of the "pad to die length" property of a pad, which is additional length added to the pad’s net when calculating net length. |
|
string |
One of "Through-hole", "SMD", "Edge connector", or "NPTH, mechanical". |
|
string |
The name of the pad (usually the name of the corresponding pin in the schematic). |
|
string |
The electrical type of the pad (usually taken from the corresponding pin in the schematic). One of "Input", "Output", "Bidirectional", "Tri-state", "Passive", "Free", "Unspecified", "Power input", "Power output", "Open collector", "Open emitter", or "Unconnected". |
|
double |
For rounded rectangle pads, the ratio of radius to rectangle size. |
|
string |
One of "Circle", "Rectangle", "Oval", "Trapezoid", "Rounded rectangle", "Chamfered rectangle", or "Custom". |
|
dimension |
The size of the pad in the X-axis. |
|
dimension |
The size of the pad in the Y-axis. |
|
dimension |
The solder mask margin override set for the pad. |
|
dimension |
The solder paste margin override set for the pad. |
|
dimension |
The solder paste margin ratio override set for the pad. |
|
dimension |
The thermal relief gap set for the pad. |
|
dimension |
The thermal relief connection width set for the pad. |
Track and Arc Properties
Property | Data type | Description |
---|---|---|
|
dimension |
The x-coordinate of the start point. |
|
dimension |
The y-coordinate of the start point. |
|
dimension |
The x-coordinate of the end point. |
|
dimension |
The y-coordinate of the end point. |
|
dimension |
The width of the track or arc. |
Via Properties
Property | Data type | Description |
---|---|---|
|
dimension |
The diameter of the via’s pad. |
|
dimension |
The diameter of the via’s finished hole. |
|
string |
The last layer in the via stackup. |
|
string |
The first layer in the via stackup. |
|
string |
One of "Through", "Blind/buried", or "Micro". |
Zone and Rule Area Properties
These properties apply to copper and non-copper zones, and rule areas (formerly called keepouts).
Property | Data type | Description |
---|---|---|
|
dimension |
The copper clearance override set for the zone. |
|
dimension |
The minimum allowed width of filled areas in the zone. |
|
string |
The user-specified name (blank by default). |
|
string |
One of "Inherited", "None", "Thermal reliefs", "Solid", or "Reliefs for PTH". |
|
int |
The priority level of the zone. |
|
dimension |
The thermal relief gap set for the zone. |
|
dimension |
The thermal relief connection width set for the zone. |
Graphic Shape Properties
These properties apply to graphic lines, arcs, circles, rectangles, and polygons.
Property | Data type | Description |
---|---|---|
|
dimension |
The x-coordinate of the end point. |
|
dimension |
The y-coordinate of the end point. |
|
dimension |
Thickness of the strokes of the shape. |
Text Properties
These properties apply to text objects (footprint fields, free text labels, etc).
Property | Data type | Description |
---|---|---|
|
boolean |
|
|
dimension |
Height of a character in the font. |
|
string |
Horizontal text justification (alignment): one of "Left", "Center", or "Right". |
|
boolean |
|
|
boolean |
|
|
string |
The contents of the text object. |
|
dimension |
Thickness of the stroke of the font. |
|
dimension |
Width of a character in the font. |
|
string |
Vertical text alignment: one of "Top", "Center", or "Bottom". |
|
boolean |
|
Expression functions
The following functions can be called on objects in custom rule expressions:
Function | Objects | Description |
---|---|---|
|
|
Returns true if the object exists on the given board layer. |
|
|
Returns true if the object exists on the copper path between the given pads. |
|
|
Returns true if the object is part of a differential pair and the base name of the pair
matches the given argument |
|
|
Returns true if the object is fully inside the named rule area or zone. Rule area and zone
names can be set in their respective properties dialogs. Note that if a track segment
crosses from the inside of a rule area to the outside, this function will return |
|
|
Returns true if the object is fully inside the courtyard of the given footprint reference. The
first variant checks both the front or back courtyard and returns true if the object is inside
either one; the second and third variants check a specific courtyard. The |
|
|
Returns true if the object is a blind/buried via. |
|
|
Returns true if the two objects being tested are part of the same differential pair but are
opposite polarities. For example, returns true if |
|
|
Returns true if the object is a microvia. |
|
|
Returns true if the object is a plated hole (in a pad or via). |
|
|
Returns true if the object is a member of the named group |
8.2.4. Custom design rule examples
(rule RF_width (layer outer) (condition "A.NetClass == 'RF'") (constraint track_width (min 0.35mm) (max 0.35mm))) (rule "BGA neckdown" (constraint track_width (min 0.2mm) (opt 0.25mm)) (constraint clearance (min 0.05mm) (opt 0.08mm)) (condition "A.insideCourtyard('U3')")) (rule "Distance between Vias of Different Nets" (constraint hole_to_hole (min 0.25mm)) (condition "A.Type =='Via' && B.Type =='Via' && A.Net != B.Net")) (rule "Distance between test points" (constraint courtyard_clearance (min 1.5mm)) (condition "A.Reference =='TP*' && B.Reference == 'TP*")) # This assumes that there is a cutout with 1mm thick lines (rule "Clearance to cutout" (constraint clearance (min 0.8mm)) (condition "A.Layer=='Edge.Cuts' && A.Thickness == 1.0mm")) (rule "Max Drill Hole Size Mechanical" (constraint hole (max 6.3mm)) (condition "A.Pad_Type == 'NPTH, mechanical'")) (rule "Max Drill Hole Size PTH" (constraint hole (max 6.35mm)) (condition "A.Pad_Type == 'Through-hole'")) # Specify an optimal gap for a particular differential pair (rule "Clock gap" (condition "A.inDiffPair('CLK') && AB.isCoupledDiffPair()") (constraint diff_pair_gap (opt 0.8mm))) # Specify a larger clearance between differential pairs and anything else (rule "Differential pair clearance" (condition "A.inDiffPair('*') && !AB.isCoupledDiffPair()") (constraint clearance (min 1.5mm)))
8.3. Scripting
Scripting allows you to automate tasks within KiCad using the Python language. It is possible to add functionality to KiCad through Python "action plugins" that can be added to the top toolbar. It is also possible to write standalone scripts that interact with KiCad files, for example, to generate fabrication outputs from a board file automatically.
This manual covers general scripting concepts. Users wishing to write or modify scripts should also use the Doxygen documentation located at https://docs.kicad.org/doxygen-python/namespaces.html.
KiCad 6 or newer requires Python 3 for scripting support. Python 2 is no longer supported.
8.3.1. Python script locations
Note
|
TODO: fill this out with final 6.0 scripting locations for each platform |
8.3.2. Action plugins
Note
|
TODO: Write this section (how to install new action plugins) |
8.3.3. Footprint wizards
Kreatory footprintów to zestaw skryptów Python, które można uruchomić z Edytora Footprintów. Jeśli wywołamy okno dialogowe z kreatorami, można będzie wybrać jeden z nich i za pomocą dostępnych pól z parametrami określić kształt footprintu przedstawiany po prawej stronie.
Jeśli wtyczki nie są zawarte w używanym pakiecie programu KiCad, można znaleźć ich najnowsze wersje w źródłach programu KiCad na platformie lgitlab.
8.3.4. Using the scripting console
Pcbnew comes with a built-in Python console that can be used to inspect and interact with the board. To launch the console, use the icon in the top toolbar. The Pcbnew Python API is not automatically loaded, so to load it, type
import pcbnew
into the console. The command pcbnew.GetBoard()
will then return a reference to the board currently loaded in Pcbnew, which can be inspected and modified through the console.
Note
|
TODO: Document the other useful PyAlaMode functions |
8.3.5. Writing external scripts
Note
|
TODO: Write this section |
8.3.6. Writing action plugins
Note
|
TODO: Write this section |
9. Actions reference
Below is a list of every available action in Pcbnew: a command that can be assigned to a hotkey. Hotkeys that are shared between all KiCad applications are listed in the KiCad manual and are not included here.
9.1. PCB Editor
Action | Default Hotkey | Description |
---|---|---|
Align to Bottom |
Aligns selected items to the bottom edge |
|
Align to Vertical Center |
Aligns selected items to the vertical center |
|
Align to Horizontal Center |
Aligns selected items to the horizontal center |
|
Align to Left |
Aligns selected items to the left edge |
|
Align to Right |
Aligns selected items to the right edge |
|
Align to Top |
Aligns selected items to the top edge |
|
Distribute Horizontally |
Distributes selected items along the horizontal axis |
|
Distribute Vertically |
Distributes selected items along the vertical axis |
|
Place Off-Board Footprints |
Performs automatic placement of components outside board area |
|
Place Selected Footprints |
Performs automatic placement of selected components |
|
Flip Board View |
View board from the opposite side |
|
Sketch Graphic Items |
Show graphic items in outline mode |
|
Decrease Layer Opacity |
{ |
Make the current layer more transparent |
Increase Layer Opacity |
} |
Make the current layer more transparent |
Switch to Copper (B.Cu) layer |
PgDn |
|
Switch to Inner layer 1 |
||
Switch to Inner layer 10 |
||
Switch to Inner layer 11 |
||
Switch to Inner layer 12 |
||
Switch to Inner layer 13 |
||
Switch to Inner layer 14 |
||
Switch to Inner layer 15 |
||
Switch to Inner layer 16 |
||
Switch to Inner layer 17 |
||
Switch to Inner layer 18 |
||
Switch to Inner layer 19 |
||
Switch to Inner layer 2 |
||
Switch to Inner layer 20 |
||
Switch to Inner layer 21 |
||
Switch to Inner layer 22 |
||
Switch to Inner layer 23 |
||
Switch to Inner layer 24 |
||
Switch to Inner layer 25 |
||
Switch to Inner layer 26 |
||
Switch to Inner layer 27 |
||
Switch to Inner layer 28 |
||
Switch to Inner layer 29 |
||
Switch to Inner layer 3 |
||
Switch to Inner layer 30 |
||
Switch to Inner layer 4 |
||
Switch to Inner layer 5 |
||
Switch to Inner layer 6 |
||
Switch to Inner layer 7 |
||
Switch to Inner layer 8 |
||
Switch to Inner layer 9 |
||
Switch to Next Layer |
+ |
|
Switch to Previous Layer |
- |
|
Toggle Layer |
V |
Switch between layers in active layer pair |
Switch to Component (F.Cu) layer |
PgUp |
|
Net Inspector |
Show the net inspector |
|
Highlight Ratsnest |
Show ratsnest of selected item(s) |
|
Sketch Pads |
Show pads in outline mode |
|
Curved Ratsnest Lines |
Show ratsnest with curved lines |
|
Repair Board |
Run various diagnostics and attempt to repair board |
|
Show Appearance Manager |
Show/hide the appearance manager |
|
Show pad numbers |
Show pad numbers |
|
Scripting Console |
Show the Python scripting console |
|
Show Ratsnest |
Show board ratsnest |
|
Sketch Text Items |
Show footprint texts in line mode |
|
Sketch Tracks |
K |
Show tracks in outline mode |
Sketch Vias |
Show vias in outline mode |
|
Wireframe Zones |
Show only zone boundaries |
|
Fill Zones |
Show filled areas of zones |
|
Sketch Zones |
Show solid areas of zones in outline mode |
|
Toggle Zone Display |
A |
Cycle between showing filled zones, wireframed zones and sketched zones |
Automatically zoom to fit |
Zoom to fit when changing footprint |
|
Convert to Arc |
Converts selected line segment to an arc |
|
Convert to Rule Area |
Creates a rule area from the selection |
|
Convert to Lines |
Creates graphic lines from the selection |
|
Convert to Polygon |
Creates a graphic polygon from the selection |
|
Convert to Tracks |
Converts selected graphic lines to tracks |
|
Convert to Zone |
Creates a copper zone from the selection |
|
Design Rules Checker |
Show the design rules checker window |
|
Open in Footprint Editor |
Ctrl+E |
Opens the selected footprint in the Footprint Editor |
Append Board… |
Open another board and append its contents to this board |
|
Board Setup… |
Edit board setup including layers, design rules and various defaults |
|
Clear Net Highlighting |
~ |
Clear any existing net highlighting |
Drill/Place File Origin |
Place origin point for drill files and component placement files |
|
Export Specctra DSN… |
Export Specctra DSN routing info |
|
BOM… |
Create bill of materials from board |
|
IPC-D-356 Netlist File… |
Generate IPC-D-356 netlist file |
|
Drill Files (.drl)… |
Generate Excellon drill file(s) |
|
Gerbers (.gbr)… |
Generate Gerbers for fabrication |
|
Component Placement (.pos)… |
Generate component placement file(s) for pick and place |
|
Footprint Report (.rpt)… |
Create report of all footprints from current board |
|
Group |
Group the selected items so that they are treated as a single item |
|
Enter Group |
Enter the group to edit items |
|
Leave Group |
Leave the current group |
|
Hide Net |
Hide the ratsnest for the selected net |
|
Highlight Net |
Highlight the selected net |
|
Highlight Net |
` |
Highlight all copper items on the selected net(s) |
Import Netlist… |
Read netlist and update board connectivity |
|
Import Specctra Session… |
Import routed Specctra session (*.ses) file |
|
Lock |
Prevent items from being moved and/or resized on the canvas |
|
Add Footprint |
O |
Add a footprint |
Add Layer Alignment Target |
Add a layer alignment target |
|
Remove Items |
Remove items from group |
|
Switch to Schematic Editor |
Open schematic in Eeschema |
|
Show Net |
Show the ratsnest for the selected net |
|
Toggle Last Net Highlight |
Toggle between last two highlighted nets |
|
Toggle Lock |
L |
Lock or unlock selected items |
Toggle Net Highlight |
Ctrl+` |
Toggle net highlighting |
Switch Track Width to Previous |
Shift+W |
Change track width to previous pre-defined size |
Switch Track Width to Next |
W |
Change track width to next pre-defined size |
Ungroup |
Ungroup any selected groups |
|
Unlock |
Allow items to be moved and/or resized on the canvas |
|
Decrease Via Size |
\ |
Change via size to previous pre-defined size |
Increase Via Size |
' |
Change via size to next pre-defined size |
Duplicate Zone onto Layer… |
Duplicate zone outline onto a different layer |
|
Merge Zones |
Merge zones |
|
Change Footprint… |
Assign a different footprint from the library |
|
Change Footprints… |
Assign different footprints from the library |
|
Cleanup Graphics… |
Cleanup redundant items, etc. |
|
Cleanup Tracks & Vias… |
Cleanup redundant items, shorting items, etc. |
|
Edit Text & Graphics Properties… |
Edit Text and graphics properties globally across board |
|
Edit Track & Via Properties… |
Edit track and via properties globally across board |
|
Global Deletions… |
Delete tracks, footprints and graphic items from board |
|
Remove Unused Pads… |
Remove or restore the unconnected inner layers on through hole pads and vias |
|
Swap Layers… |
Move tracks or drawings from one layer to another |
|
Update Footprint… |
Update footprint to include any changes from the library |
|
Update Footprints from Library… |
Update footprints to include any changes from the library |
|
Clearance Resolution… |
Show clearance resolution for the active layer between two selected objects |
|
Constraints Resolution… |
Show constraints resolution for the selected object |
|
Show Board Statistics |
Shows board statistics |
|
Add Aligned Dimension |
Ctrl+Shift+H |
Add an aligned linear dimension |
Draw Arc |
Ctrl+Shift+A |
Draw an arc |
Switch Arc Posture |
/ |
Switch the arc posture |
Add Center Dimension |
Add a center dimension |
|
Draw Circle |
Ctrl+Shift+C |
Draw a circle |
Close Outline |
Close the in progress outline |
|
Decrease Line Width |
Ctrl+- |
Decrease the line width |
Delete Last Point |
Back |
Delete the last point added to the current item |
Draw Graphic Polygon |
Ctrl+Shift+P |
Draw a graphic polygon |
Increase Line Width |
Ctrl++ |
Increase the line width |
Add Leader |
Add a leader dimension |
|
Draw Line |
Ctrl+Shift+L |
Draw a line |
Limit Lines to 45 deg |
Limit graphic lines to H, V and 45 degrees |
|
Add Orthogonal Dimension |
Add an orthogonal dimension |
|
Add Board Characteristics |
Add a board characteristics table on a graphic layer |
|
Import Graphics… |
Ctrl+Shift+F |
Import 2D drawing file |
Add Stackup Table |
Add a board stackup table on a graphic layer |
|
Draw Rectangle |
Draw a rectangle |
|
Add Rule Area |
Ctrl+Shift+K |
Add a rule area (keepout) |
Place the Footprint Anchor |
Ctrl+Shift+N |
Set the coordinate origin point (anchor) of the footprint |
Add a Similar Zone |
Ctrl+Shift+. |
Add a zone with the same settings as an existing zone |
Add Text |
Ctrl+Shift+T |
Add a text item |
Add Vias |
Ctrl+Shift+V |
Add free-standing vias |
Add Filled Zone |
Ctrl+Shift+Z |
Add a filled zone |
Add a Zone Cutout |
Shift+C |
Add a cutout area of an existing zone |
Get and Move Footprint |
T |
Selects a footprint by reference designator and places it under the cursor for moving |
Change Track Width |
Updates selected track & via sizes |
|
Create Array… |
Ctrl+T |
Create array |
Delete Full Track |
Shift+Del |
Deletes selected item(s) and copper connections |
Duplicate and Increment |
Ctrl+Shift+D |
Duplicates the selected item(s), incrementing pad numbers |
Fillet Tracks |
Adds arcs tangent to the selected straight track segments |
|
Change Side / Flip |
F |
Flips selected item(s) to opposite side of board |
Mirror |
Mirrors selected item |
|
Move Exactly… |
Ctrl+M |
Moves the selected item(s) by an exact amount |
Properties… |
E |
Displays item properties dialog |
Rotate Counterclockwise |
R |
Rotates selected item(s) counterclockwise |
Rotate Clockwise |
Shift+R |
Rotates selected item(s) clockwise |
Copy with Reference |
Copy selected item(s) to clipboard with a specified starting point |
|
Move |
M |
Moves the selected item(s) |
Move with Reference |
Moves the selected item(s) with a specified starting point |
|
Auto-finish Track |
F |
Automagically finishes laying the current track. |
Break Track |
Splits the track segment into two segments connected at the cursor position. |
|
Custom Track/Via Size… |
Q |
Shows a dialog for changing the track width and via size. |
Route Differential Pair |
6 |
Route differential pairs |
Differential Pair Dimensions… |
Open Differential Pair Dimension settings |
|
Drag (45 degree mode) |
D |
Drags the track segment while keeping connected tracks at 45 degrees. |
Drag (free angle) |
G |
Drags the nearest joint in the track without restricting the track angle. |
Finish Track |
End |
Stops laying the current track. |
Router Highlight Mode |
Switch router to highlight mode |
|
Break Track |
Splits the track segment into two segments connected at the cursor position. |
|
Place Blind/Buried Via |
Alt+Shift+V |
Adds a blind or buried via at the end of currently routed track. |
Place Microvia |
Ctrl+V |
Adds a microvia at the end of currently routed track. |
Place Through Via |
V |
Adds a through-hole via at the end of currently routed track. |
Select Layer and Place Blind/Buried Via… |
Alt+< |
Select a layer, then add a blind or buried via at the end of currently routed track. |
Select Layer and Place Through Via… |
< |
Select a layer, then add a through-hole via at the end of currently routed track. |
Set Layer Pair… |
Change active layer pair for routing |
|
Interactive Router Settings… |
Ctrl+Shift+, |
Open Interactive Router settings |
Router Shove Mode |
Switch router to shove mode |
|
Route Single Track |
X |
Route tracks |
Switch Track Posture |
/ |
Switches posture of the currently routed track. |
Track Corner Mode |
Ctrl+/ |
Switches between sharp and rounded corners when routing tracks. |
Undo last segment |
Back |
Stops laying the current track. |
Router Walkaround Mode |
Switch router to walkaround mode |
|
Deselect All Tracks in Net |
Deselects all tracks & vias belonging to the same net. |
|
Filter Selected Items… |
Remove items from the selection by type |
|
Select/Expand Connection |
U |
Selects a connection or expands an existing selection to junctions, pads, or entire connections |
Select All Tracks in Net |
Selects all tracks & vias belonging to the same net. |
|
Sheet |
Selects all footprints and tracks in the schematic sheet |
|
Items in Same Hierarchical Sheet |
Selects all footprints and tracks in the same schematic sheet |
|
Decrease Amplitude |
4 |
Decrease meander amplitude by one step. |
Increase Amplitude |
3 |
Increase meander amplitude by one step. |
End Track |
End |
Stops laying the current meander. |
Length Tuning Settings… |
Ctrl+L |
Sets the length tuning parameters for currently routed item. |
Decrease Spacing |
2 |
Decrease meander spacing by one step. |
Increase Spacing |
1 |
Increase meander spacing by one step. |
New Track |
X |
Starts laying a new track. |
Tune length of a differential pair |
8 |
Tune length of a differential pair |
Tune skew of a differential pair |
9 |
Tune skew of a differential pair |
Tune length of a single track |
7 |
Tune length of a single track |
Add Microwave Polygonal Shape |
Create a microwave polygonal shape from a list of vertices |
|
Add Microwave Gap |
Create gap of specified length for microwave applications |
|
Add Microwave Line |
Create line of specified length for microwave applications |
|
Add Microwave Stub |
Create stub of specified length for microwave applications |
|
Add Microwave Arc Stub |
Create stub (arc) of specified size for microwave applications |
|
Footprint Checker |
Show the footprint checker window |
|
Copy Footprint |
||
Create Footprint… |
Create a new footprint using the Footprint Wizard |
|
Cut Footprint |
||
Delete Footprint from Library |
||
Edit Footprint |
Show selected footprint on editor canvas |
|
Export Footprint… |
Export footprint to file |
|
Footprint Properties… |
Edit footprint properties |
|
Hide Footprint Tree |
||
Import Footprint… |
Import footprint from file |
|
New Footprint… |
Ctrl+N |
Create a new, empty footprint |
Paste Footprint |
||
Repair Footprint |
Run various diagnostics and attempt to repair footprint |
|
Show Footprint Tree |
||
Paste Default Pad Properties to Selected |
Replace the current pad’s properties with those copied earlier |
|
Copy Pad Properties to Default |
Copy current pad’s properties |
|
Push Pad Properties to Other Pads… |
Copy the current pad’s properties to other pads |
|
Default Pad Properties… |
Edit the pad properties used when creating new pads |
|
Renumber Pads… |
Renumber pads by clicking on them in the desired order |
|
Edit Pad as Graphic Shapes |
Ctrl+E |
Ungroups a custom-shaped pad for editing as individual graphic shapes |
Add Pad |
Add a pad |
|
Finish Pad Edit |
Ctrl+E |
Regroups all touching graphic shapes into the edited pad |
Create Corner |
Ins |
Create a corner |
Remove Corner |
Remove corner |
|
Position Relative To… |
Shift+P |
Positions the selected item(s) by an exact amount relative to another |
Geographical Reannotate… |
Reannotate PCB in geographical order |
|
Refresh Plugins |
Reload all python plugins and refresh plugin menus |
|
Open Plugin Directory |
Opens the directory in the default system file manager |
|
Fill |
Fill zone(s) |
|
Fill All |
B |
Fill all zones |
Unfill |
Unfill zone(s) |
|
Unfill All |
Ctrl+B |
Unfill all zones |
9.2. Przeglądarka 3D
Action | Default Hotkey | Description |
---|---|---|
Add Floor |
Adds a floor plane below the board (slow) |
|
Anti-aliasing |
Render with improved quality on final render (slow) |
|
Toggle SMD 3D models |
S |
Toggle 3D models with 'Surface mount' attribute |
Toggle Through Hole 3D models |
T |
Toggle 3D models with 'Through hole' attribute |
Toggle Virtual 3D models |
V |
Toggle 3D models with 'Virtual' attribute |
Flip Board |
Flip the board view |
|
Home view |
Home |
Home view |
CAD Color Style |
Use a CAD color style based on the diffuse color of the material |
|
Use Diffuse Only |
Use only the diffuse color property from model 3D model file |
|
Use All Properties |
Use all material properties from each 3D model file |
|
Move board Down |
Down |
Move board Down |
Move board Left |
Left |
Move board Left |
Move board Right |
Right |
Move board Right |
Move board Up |
Up |
Move board Up |
No 3D Grid |
No 3D Grid |
|
Center pivot rotation |
Space |
Center pivot rotation (middle mouse click) |
Post-processing |
Apply Screen Space Ambient Occlusion and Global Illumination reflections on final render (slow) |
|
Procedural Textures |
Apply procedural textures to materials (slow) |
|
Render Shadows |
Render Shadows |
|
Reset view |
R |
Reset view |
Rotate 45 degrees over Z axis |
Tab |
|
Rotate X Clockwise |
Rotate X Clockwise |
|
Rotate X Counterclockwise |
Rotate X Counterclockwise |
|
Rotate Y Clockwise |
Rotate Y Clockwise |
|
Rotate Y Counterclockwise |
Rotate Y Counterclockwise |
|
Rotate Z Clockwise |
Rotate Z Clockwise |
|
Rotate Z Counterclockwise |
Rotate Z Counterclockwise |
|
3D Grid 10mm |
3D Grid 10mm |
|
3D Grid 1mm |
3D Grid 1mm |
|
3D Grid 2.5mm |
3D Grid 2.5mm |
|
3D Grid 5mm |
3D Grid 5mm |
|
Show 3D Axis |
Show 3D Axis |
|
Show Model Bounding Boxes |
Show Model Bounding Boxes |
|
Reflections |
Render materials with reflective properties on final render (slow) |
|
Refractions |
Render materials with refractive properties on final render (slow) |
|
Toggle adhesive display |
Toggle display of adhesive layers |
|
Toggle board body display |
Toggle board body display |
|
Toggle comments display |
Toggle display of comments and drawings layers |
|
Toggle ECO display |
Toggle display of ECO layers |
|
Toggle orthographic projection |
Enable/disable orthographic projection |
|
Toggle realistic mode |
Toggle realistic mode |
|
Toggle silkscreen display |
Toggle display of silkscreen layers |
|
Toggle solder mask display |
Toggle display of solder mask layers |
|
Toggle solder paste display |
Toggle display of solder paste layers |
|
Toggle zone display |
Toggle zone display |
|
View Back |
Shift+Y |
View Back |
View Bottom |
Shift+Z |
View Bottom |
View Front |
Y |
View Front |
View Left |
Shift+X |
View Left |
View Right |
X |
View Right |
View Top |
Z |
View Top |