Podręcznik użytkownika
Note
|
This manual is in the process of being revised to cover the latest stable release version of KiCad. It contains some sections that have not yet been completed. We ask for your patience while our volunteer technical writers work on this task, and we welcome new contributors who would like to help make KiCad’s documentation better than ever. |
Prawa autorskie
This document is Copyright © 2010-2022 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, Graham Keeth
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:
-
About KiCad documentation: https://gitlab.com/kicad/services/kicad-doc/issues
-
W sprawie oprogramowania: https://gitlab.com/kicad/code/kicad/issues
1. Introduction to the KiCad Schematic Editor
1.1. Opis
The KiCad Schematic Editor is a schematic capture software distributed as a part of KiCad and available under the following operating systems:
-
Linux
-
Apple macOS
-
Windows
Regardless of the OS, all KiCad files are 100% compatible from one OS to another.
The Schematic Editor is an integrated application where all functions of drawing, control, layout, library management and access to the PCB design software are carried out within the editor itself.
The KiCad Schematic Editor is intended to cooperate with the KiCad PCB Editor, which is KiCad’s printed circuit design software. It can also export netlist files, which lists all the electrical connections, for other packages.
The Schematic Editor includes a symbol library editor, which can create and edit symbols and manage libraries. It also integrates the following additional but essential functions needed for modern schematic capture software:
-
Sprawdzanie poprawności projektu (DRC) dla zautomatyzowanego procesu kontroli poprawności połączeń, czy testowania niepołączonych wejść elementów.
-
Generowanie wydruków w różnych formatach (Postscript, PDF, HPGL oraz SVG).
-
Tworzenie list materiałowych (za pomocą skryptów Python lub XSLT, które pozwalają na różnorodną jej konfigurację).
1.2. Opis techniczny
The Schematic Editor is limited only by the available memory. There is thus no real limitation to the number of components, component pins, connections or sheets. In the case of multi-sheet schematics, the representation is hierarchical.
The Schematic Editor can use multi-sheet schematics in a few ways:
-
Hierarchii prostych (każdy schemat jest użyty tylko jeden raz),
-
Hierarchii złożonych (niektóre ze schematów są użyte wielokrotnie),
-
Hierarchii płaskich (niektóre schematy nie są wyraźnie połączone na głównym schemacie).
1.3. Konfiguracja początkowa
When the Schematic Editor is run for the first time, if the the global symbol library table file sym-lib-table
is not found in the KiCad configuration folder then KiCad will ask how to create this file:

The first option is recommended (Copy default global symbol library table (recommended)). The default symbol library table includes all of the standard symbol libraries that are installed as part of KiCad.
If this option is disabled, KiCad was unable to find the default global symbol library table. This probably means you did not install the standard symbol libraries with KiCad, or they are not installed where KiCad expects to find them. On some systems the KiCad libraries are installed as a separate package.
-
If you have installed the standard KiCad symbol libraries and want to use them, but the first option is disabled, select the second option and browse to the
sym-lib-table
file in the directory where the KiCad libraries were installed. -
If you already have a custom symbol library table that you would like to use, select the second option and browse to your
sym-lib-table
file. -
If you want to construct a new symbol library table from scratch, select the third option.
Symbol library management is described in more detail later.
2. Generic Schematic Editor commands
Polecenia można wywoływać za pomocą:
-
Kliknięcia w pasek menu (na górze ekranu).
-
Kliknięcia w pasek ikon na górze ekranu (podstawowe polecenia).
-
Kliknięcie w pasek ikon po prawej stronie ekranu (podstawowe polecenia lub "narzędzia").
-
Kliknięcia w pasek ikon z lewej strony ekranu (opcje wyświetlania).
-
Kliknięcia za pomocą klawisza myszy (najważniejsze polecenia). W praktyce kliknięcie prawym klawiszem otwiera menu kontekstowe, zależne od tego jaki element znajduje się na pozycji kursora (powiększenie, siatka oraz edycja elementów).
-
Function keys (F1, F2, F3, F4, Insert and Space). Specifically: Escape cancels the command in progress. Insert allows the duplication of the last element created.
-
Pressing hotkeys. For a list of hotkeys, see the Help→List Hotkeys menu entry or press Ctrl+F1. Many hotkeys select a tool but do not perform the tool’s action until the canvas is clicked. This behavior can be changed by unchecking First hotkey selects tool in the Common Preferences pane. With this option unchecked, pressing a hotkey will select the tool and immediately perform the tool’s action at the current cursor location.

2.1. Polecenia związane z myszą
2.1.1. Podstawowe polecenia
Lewy klawisz
-
Single click: Selects the item under the cursor and displays the item’s characteristics in the status bar.
-
Double click: edits the item if it is editable.
-
Long click (click and hold): opens a pop-up menu to clarify the selection.
Prawy klawisz
-
Opens a pop-up menu. If an item is selected, the items in the menu are related to the selected item. If an item is under the cursor when the right mouse button is clicked, the item is selected.
2.1.2. Selection operations
Schematic editor items can be selected by clicking on them. Multiple items
can be selected at once. Add items to the selection with Shift
click, and remove items from the selection with Ctrl+Shift + click.
Note
|
On Apple keyboards, use the Cmd key instead of Ctrl. |
left mouse button |
Select item. |
Shift + left mouse button |
Add item to selection. |
Ctrl+Shift + left mouse button |
Remove item from selection. |
long click |
Clarify selection from a pop-up menu. |
Ctrl + left mouse button |
Highlight net. |
Items can also be selected by drawing a box around them using the left mouse button.
Dragging from left to right includes all items fully enclosed by the box. Dragging from right to left includes all items touched by the box, even if they are not fully enclosed.
The Shift and Ctrl+Shift modifiers also work with drag selections to add and remove items from the selection, respectively.
2.2. Klawisze skrótów
-
The Ctrl+F1 displays the current hotkey list.
-
All hotkeys can be redefined using the hotkey editor (Preferences → Preferences… → Hotkeys).
The default hotkey list is below. Many additional actions do not have hotkeys by default, but hotkeys can be assigned to them with the hotkey editor.
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.
Action | Default Hotkey | Description |
---|---|---|
Click |
Return |
Performs left mouse button click |
Double-click |
End |
Performs left mouse button double-click |
Cursor Down |
Down |
|
Cursor Down Fast |
Ctrl+Down |
|
Cursor Left |
Left |
|
Cursor Left Fast |
Ctrl+Left |
|
Cursor Right |
Right |
|
Cursor Right Fast |
Ctrl+Right |
|
Cursor Up |
Up |
|
Cursor Up Fast |
Ctrl+Up |
|
Switch to Fast Grid 1 |
Alt+1 |
|
Switch to Fast Grid 2 |
Alt+2 |
|
Switch to Next Grid |
N |
|
Switch to Previous Grid |
Shift+N |
|
Reset Grid Origin |
Z |
|
Grid Origin |
S |
Set the grid origin point |
New… |
Ctrl+N |
Create a new document in the editor |
Open… |
Ctrl+O |
Open existing document |
Pan Down |
Shift+Down |
|
Pan Left |
Shift+Left |
|
Pan Right |
Shift+Right |
|
Pan Up |
Shift+Up |
|
Print… |
Ctrl+P |
|
Reset Local Coordinates |
Space |
|
Save |
Ctrl+S |
Save changes |
Save As… |
Ctrl+Shift+S |
Save current document to another location |
Always Show Cursor |
Ctrl+Shift+X |
Display crosshairs even in selection tool |
Switch units |
Ctrl+U |
Switch between imperial and metric units |
Update PCB from Schematic… |
F8 |
Update PCB with changes made to schematic |
Center |
F4 |
Center |
Zoom to Objects |
Ctrl+Home |
Zoom to Objects |
Zoom to Fit |
Home |
Zoom to Fit |
Zoom In at Cursor |
F1 |
Zoom In at Cursor |
Zoom Out at Cursor |
F2 |
Zoom Out at Cursor |
Refresh |
F5 |
Refresh |
Zoom to Selection |
Ctrl+F5 |
Zoom to Selection |
Change Edit Method |
Ctrl+Space |
Change edit method constraints |
Copy |
Ctrl+C |
Copy selected item(s) to clipboard |
Cut |
Ctrl+X |
Cut selected item(s) to clipboard |
Delete |
Del |
Deletes selected item(s) |
Duplicate |
Ctrl+D |
Duplicates the selected item(s) |
Find |
Ctrl+F |
Find text |
Find and Replace |
Ctrl+Alt+F |
Find and replace text |
Find Next |
F3 |
Find next match |
Find Next Marker |
Shift+F3 |
|
Paste |
Ctrl+V |
Paste item(s) from clipboard |
Redo |
Ctrl+Y |
Redo last edit |
Select All |
Ctrl+A |
Select all items on screen |
Undo |
Ctrl+Z |
Undo last edit |
List Hotkeys… |
Ctrl+F1 |
Displays current hotkeys table and corresponding commands |
Preferences… |
Ctrl+, |
Show preferences for all open tools |
Clear Net Highlighting |
~ |
Clear any existing net highlighting |
Edit Library Symbol… |
Ctrl+Shift+E |
Open the library symbol in the Symbol Editor |
Edit with Symbol Editor |
Ctrl+E |
Open the selected symbol in the Symbol Editor |
Highlight Net |
` |
Highlight net under cursor |
Show Datasheet |
D |
Opens the datasheet in a browser |
Add Sheet |
S |
Add a hierarchical sheet |
Add Wire to Bus Entry |
Z |
Add a wire entry to a bus |
Add Global Label |
Ctrl+L |
Add a global label |
Add Hierarchical Label |
H |
Add a hierarchical label |
Add Junction |
J |
Add a junction |
Add Label |
L |
Add a net label |
Add No Connect Flag |
Q |
Add a no-connection flag |
Add Power |
P |
Add a power port |
Add Text |
T |
Add text |
Add Symbol |
A |
Add a symbol |
Add Bus |
B |
Add a bus |
Add Lines |
I |
Add connected graphic lines |
Add Wire |
W |
Add a wire |
Finish Wire or Bus |
K |
Complete drawing at current segment |
Unfold from Bus |
C |
Break a wire out of a bus |
Autoplace Fields |
O |
Runs the automatic placement algorithm on the symbol or sheet’s fields |
Edit Footprint… |
F |
Displays footprint field dialog |
Edit Reference Designator… |
U |
Displays reference designator dialog |
Edit Value… |
V |
Displays value field dialog |
Mirror Horizontally |
X |
Flips selected item(s) from left to right |
Mirror Vertically |
Y |
Flips selected item(s) from top to bottom |
Properties… |
E |
Displays item properties dialog |
Repeat Last Item |
Ins |
Duplicates the last drawn item |
Rotate Counterclockwise |
R |
Rotates selected item(s) counter-clockwise |
Drag |
G |
Drags the selected item(s) |
Move |
M |
Moves the selected item(s) |
Select Connection |
Alt+4 |
Select a complete connection |
Select Node |
Alt+3 |
Select a connection item under the cursor |
Leave Sheet |
Alt+Back |
Display the parent sheet in the schematic editor |
Hotkeys are stored in the file user.hotkeys
in KiCad’s configuration directory. The location is platform-specific:
-
Windows:
%APPDATA%\kicad\6.0\user.hotkeys
-
Linux:
~/.config/kicad/6.0/user.hotkeys
-
macOS:
~/Library/Preferences/kicad/6.0/user.hotkeys
It is possible to import hotkey settings from a user.hotkeys
file using menu Preferences→Preferences…→Hotkeys→Import Hotkeys….
2.3. Siatka
In the Schematic Editor the cursor always moves over a grid. The grid can be customized:
-
Size can be changed using the right click menu or using View → Grid Properties….
-
Color can be changed in the Colors page of the Preferences dialog (menu Preferences → General Options).
-
Visibility can be switched using the left-hand toolbar button.
The default grid size is 50 mil (0.050") or 1.27 millimeters.
Taki skok siatki jest zalecany przy rozmieszczaniu symboli na schemacie i prowadzenia połączeń, jak również przy rozkładaniu pinów w trakcie projektowania symboli za pomocą "Edytora bibliotek symboli".
Note
|
Wires connect with other wires or pins only if their ends coincide exactly. Therefore it is important to keep symbol pins and wires aligned to the grid. It is recommended to always use a 50 mil grid when placing symbols and drawing wires because the KiCad standard symbol library and all libraries that follow its style also use a 50 mil grid. |
Można pracować z siatką 25mil lub 10mil. Jednak siatka o takich rozmiarach jest przeznaczona do rysowania symboli i rozmieszczania tekstów, i nie jest zalecana przy wstawianiu pinów lub prowadzenia połączeń.
Note
|
Symbols, wires, and other elements that are not aligned to the grid can be snapped back to the grid by selecting them, right clicking, and clicking Align Elements to Grid. |
2.4. Snapping
Schematic elements such as symbols, wires, text, and graphic lines are snapped to the grid when moving, dragging, and drawing them. Additionally, the wire tool snaps to pins even when grid snapping is disabled. Both grid and pin snapping can be disabled while moving the mouse by using the modifier keys in the table below.
Note
|
On Apple keyboards, use the Cmd key instead of Ctrl. |
Modifier Key | Effect |
---|---|
Ctrl |
Disable grid snapping. |
Shift |
Disable snapping wires to pins. |
2.5. Wybór powiększenia - Zoom
By zmienić powiększenie (Zoom):
-
Należy kliknąć prawym klawiszem by otworzyć menu kontekstowe i wybrać potrzebne powiększenie.
-
Or use hotkeys:
-
F1: Zoom in
-
F2: Zoom out
-
F4: Center the view around the cursor pointer position
-
Home: Zoom and center the view to fit the entire schematic sheet
-
Ctrl+Home: Zoom and center the view to fit all of the objects in the schematic
-
Ctrl+F5: Activate the Zoom to Selection tool
-
-
Powiększanie widoku:
-
Mouse wheel: Zoom in/out
-
Shift+Mouse wheel: Pan up/down
-
Ctrl+Mouse wheel: Pan left/right
-
Mouse scroll gestures are configurable in the Mouse and Touchpad page of the Preferences dialog.
2.6. Wyświetlanie pozycji kursora
The display units are in inches, mils, or millimeters.
Informacje wyświetlane na dole okna od prawej strony są następujące:
-
Poziom powiększenia
-
Pozycja absolutna kursora
-
Względna pozycja kursora
-
The grid size
-
The active unit system
-
The active tool
Punkt początkowy dla pozycji względnej może być ustalony klawiszem spacji. Jest to przydatne przy pomiarach odległości pomiędzy dwoma punktami.

2.7. Pasek menu
Menu główne pozwala na otwieranie i zapisywanie schematów, ustawianie konfiguracji programu, a także zawiera dostęp do pomocy.

2.8. Górny pasek narzędzi
This toolbar gives access to the main functions of the Schematic Editor.
If the Schematic Editor is run in standalone mode, this is the available tool set:

Należy pamiętać, że przy pracy programu KiCad w trybie aktywnego projektu, dwa pierwsze polecenia nie są dostępne, gdyż odnoszą się do pracy nad pojedynczymi plikami.
Create a new schematic (only in standalone mode). |
|
Open a schematic (only in standalone mode). |
|
Save complete schematic project. |
|
Set the schematic-specific options. |
|
Select the sheet size and edit the title block. |
|
Open print dialog. |
|
Open plot dialog. |
|
Paste a copied/cut item or block to the current sheet. |
|
Undo: Revert the last change. |
|
Redo: Revert the last undo operation. |
|
Show the dialog to search symbols and texts in the schematic. |
|
Show the dialog to search and replace texts in the schematic. |
|
Refresh screen. |
|
Zoom in. |
|
Zoom out. |
|
Zoom to fit the entire schematic sheet. |
|
Zoom to fit all objects in the schematic. |
|
Zoom to fit selected items. |
|
View and navigate the hierarchy tree. |
|
Leave the current sheet and go up in the hierarchy. |
|
Rotate selected items counter-clockwise. |
|
Rotate selected items clockwise. |
|
Mirror selected items vertically. |
|
Mirror selected items horizontally. |
|
Call the symbol library editor to view and modify libraries and symbols. |
|
Browse symbol libraries. |
|
Open the footprint library editor to view and modify libraries and footprints. |
|
Annotate symbols. |
|
Electrical Rules Checker (ERC), automatically validate electrical connections. |
|
Open the footprint assignment tool to assign footprints to symbols. |
|
Bulk edit symbol fields in a spreadsheet interface. |
|
Generate the Bill of Materials (BOM). |
|
Open the PCB editor. |
|
Open the Python scripting console. |
2.9. Prawy pasek narzędzi
Ten pasek zawiera narzędzia do:
-
Wstawiania symboli, połączeń, magistral, etykiet, tekstu, itp.
-
Tworzenie podrzędnych arkuszy hierarchicznych oraz łączenie symboli.
Cancel the active command or tool and go into selection mode. |
|
Highlight a net by marking its wires and net labels with a different color. If the PCB Editor is also open then copper corresponding to the selected net will be highlighted as well. |
|
Display the symbol selector dialog to select a new symbol to be placed. |
|
Display the power symbol selector dialog to select a power symbol to be placed. |
|
Draw a wire. |
|
Draw a bus. |
|
Draw wire-to-bus entry points. These elements are only graphical and do not create a connection, thus they should not be used to connect wires together. |
|
Place a "No Connect" flag. These flags should be placed on symbol pins which are meant to be left unconnected. It is done to notify the Electrical Rules Checker that lack of connection for a particular pin is intentional and should not be reported. |
|
Place a junction. This connects two crossing wires or a wire and a pin, when it can be ambiguous (i.e. if a wire end or a pin is not directly connected to another wire end). |
|
Place a local label. Local label connects items located in the same sheet. For connections between two different sheets, you have to use global or hierarchical labels. |
|
Place a global label. All global labels with the same name are connected, even when located on different sheets. |
|
Place a hierarchical label. Hierarchical labels are used to create a connection between a subsheet and the parent sheet that contains it. |
|
Place a hierarchical subsheet. You must specify the file name for this subsheet. |
|
Import a hierarchical pin from a subsheet. This command can be executed only on hierarchical subsheets. It will create hierarchical pins corresponding to hierarchical labels placed in the target subsheet. |
|
Draw a line. These are only graphical and do not connect anything. |
|
Place a text comment. |
|
Place a bitmap image. |
|
Delete clicked items. |
2.10. Lewy pasek narzędzi
Ten pasek narzędzi zarządza opcjami wyświetlania:
Toggle grid visibility. |
|
Switch units to inches. |
|
Switch units to mils (0.001 inches). |
|
Switch units to millimeters. |
|
Choose the cursor shape (full screen/small). |
|
Toggle visibility of "invisible" pins. |
|
Toggle free angle/90 degrees wires and buses placement. |
2.11. Menu kontekstowe i szybka edycja komponentów
Kliknięcie prawym klawiszem otwiera menu kontekstowe dla wybranego elementu. Zawiera ono:
-
Rozmiar powiększenia.
-
Ustawienie siatki.
-
Copy/Paste/Delete commands.
-
Add Wire/Bus.
-
Główne opcje edycyjne dla wybranego elementu.
3. Menu główne
3.1. Menu Plik

New | Close current schematic and start a new one (only in standalone mode). |
---|---|
Open |
Load a schematic project (only in standalone mode). |
Open Recent |
Open a schematic project from the list of recently opened files (only in standalone mode). |
Save |
Save current sheet and all its subsheets. |
Save As… |
Save the current sheet under a new name (only in standalone mode). |
Save Current Sheet Copy As… |
Save a copy of the current sheet under a new name (only in project mode). |
Insert Schematic Sheet Content… |
Insert the contents of another schematic sheet into the current sheet (only in standalone mode). |
Import |
Import a non-KiCad schematic or a footprint assignment file. |
Export |
Export a netlist or a drawing of the schematic to the clipboard. |
Schematic Setup… |
Set up schematic formatting, electrical rules, net classes, and text variables. |
Page Settings… |
Configure page dimensions and title block. |
Print schematic project (See also chapter Plot and Print). |
|
Plot |
Export to PDF, PostScript, HPGL or SVG format (See chapter Plot and Print). |
Quit |
Terminate the application. |
3.1.1. Schematic Setup
The Schematic Setup window is used to set schematic options that are specific to the currently active schematic. For example, the Schematic Setup window contains formatting options, electrical rule configuration, netclass setup, and schematic text variable setup.
3.2. Menu Ustawienia

Configure Paths… |
Set the default search paths. |
Manage Symbol Library Tables… |
Add/remove symbol libraries. |
Preferences… |
Preferences (units, grid size, field names, etc.). |
Set Language |
Select interface language. |
3.2.1. Zarządzaj bibliotekami symboli

This dialog is used to manage the tables of symbol libraries. Symbol library management is described later.
3.2.2. Preferences
Common Preferences
Note
|
TODO: write this section |

Mouse and Touchpad
Center and warp cursor on zoom |
If checked, the pointed location is warped to the screen center when zooming in/out. |
Use touchpad to pan |
When enabled, view is panned using scroll wheels (or touchpad gestures) and to zoom one needs to hold Ctrl. Otherwise scroll wheels zoom in/out and Ctrl/Shift are the panning modifiers. |
Pan while moving object |
If checked, automatically pans the window if the cursor leaves the window during drawing or moving. |
Klawisze skrótów
Redefine hotkeys.

Wybierz nowy skrót klawiszowy przez podwójne kliknięcie na pole akcji lub kliknij prawym na polu akcji by wywołać menu podręczne:
Edit |
Define a new hotkey for the action (same as double click). |
Undo Changes |
Reverts the recent hotkey changes for the action. |
Clear Assigned Hotkey |
|
Restore Default |
Sets the action hotkey to its default value. |
Display Options

Rozmiar siatki |
Wybór skoku siatki. Zalecana jest praca z normalną siatką (0.050 cali lub 1,27 mm). Mniejszy skok siatki jest używany przy tworzeniu symboli. |
Grubość magistrali |
Pozwala wybrać grubość linii z jaką rysowane są magistrale. |
Grubość linii |
Pozwala wybrać grubość linii z jaką rysowane są normalne połączenia. |
Notacja elementów wieloczęściowych |
Wybiera styl notacji przyrostków w symbolach wieloczęściowych (U1A, U1.A, U1-1, itp.) |
Skala ikon |
Pozwala na przeskalowanie ikon na paskach narzędziowych dla wyświetlaczy HDR. |
Pokaż siatkę |
Pozwala włączyć lub wyłączyć rysowanie siatki. |
Magistrale i połączenia tylko poziomo/pionowo |
Jeśli zaznaczona, magistrale oraz normalne połączenia będzie można rysować tylko poziomo lub pionowo. Bez zaznaczonej tej opcji można rysować pod dowolnym kątem. |
Pokazuj ukryte piny: |
Wyświetla niewidoczne (lub ukryte) piny, w szczególności piny dostarczające zasilanie. |
Pokazuj granice strony |
Jeśli zaznaczone, na obszarze roboczym pokazywana jest ramka wskazująca maksymalne dostępne miejsce na stronie. |
Podgląd footprintu przy wyborze symbolu |
Włącza opcję pokazywania footprintu w oknie dialogowym wyboru symbolu. Uwaga: Opcja ta może generować znaczne opóźnienia w przeglądaniu lub generować problemy. |
Editing Options

Measurement units |
Select the display and the cursor coordinate units (inches or millimeters). |
Horizontal pitch of repeated items |
Increment on X axis during element duplication (default: 0) (after placing an item like a symbol, label or wire, a duplication is made by the Insert key) |
Vertical pitch of repeated items |
Increment on Y axis during element duplication (default: 0.100 inches or 2,54 mm). |
Increment of repeated labels |
Increment of label value during duplication of texts ending in a number, such as bus members (usual value 1 or -1). |
Default text size |
Text size used when creating new text items or labels. |
Auto-save time interval |
Time in minutes between saving backups. |
Automatically place symbol fields |
If checked, symbol fields (e.g. value and reference) in newly placed symbols might be moved to avoid collisions with other items. |
Allow field autoplace to change justification |
Extension of 'Automatically place symbol fields' option. Enable text justification adjustment for symbol fields when placing a new part. |
Always align autoplaced fields to the 50 mil grid |
Extension of 'Automatically place symbol fields' option. If checked, fields are autoplaced using 50 mils grid, otherwise they are placed freely. |
Kolory
Za pomocą tej zakładki można wybrać kolorystykę wyświetlania poszczególnych elementów oraz koloru tła z dwóch dostępnych: biały (domyślny) i czarny.

Pola domyślne
Definiuje dodatkowe pola niestandardowe i odpowiadające im wartości, które pojawią się w nowo wstawionych symbolach.

3.3. Menu Pomoc
Udostępnia pomoc on-line (ten dokument). Można również z poziomu tego menu otworzyć krótki samouczek, który w kilkunastu krokach wyjaśnia proces tworzenia kompletnego projektu.
Use the Report a Bug item to report a bug online. Full KiCad version and user system information is available via the Copy Version Info button in the About KiCad window.
4. Główny pasek narzędziowy
4.1. Zarządzanie ustawieniami arkuszy/stron
The Sheet Settings icon () allows you to define the sheet size and the contents of the title block.

Numeracja arkuszy jest odświeżana automatycznie. Można ustawić datę na datę bieżącą klikając na przycisk ze strzałką, lecz data ta nie będzie się zmieniała automatycznie.
4.2. Znajdź oraz Znajdź i zamień
The Find icon () can be used to access the search tool.

Za jego pomocą można wyszukać na schemacie nazwy umieszczonych tam komponentów, jego wartość lub dowolny tekst jaki znajduje się na bieżącym schemacie czy w całej jego hierarchii. Po odnalezieniu jednego z w/w elementów kursor przeskakuje do miejsca jego umieszczenia.
4.3. Narzędzie Lista sieci
The Netlist icon () opens the netlist generation tool.
Narzędzie to tworzy listę sieci opisującą wszystkie połączenia w całej hierarchii schematów.
W hierarchii, dowolna zwykła etykieta jest widoczna tylko dla arkusza do którego należy. Dlatego etykieta "LABEL1" z arkusza 3 różni się od etykiety "LABEL1" z arkusza 5 (jeśli ich połączenie nie było celowo wprowadzone). Wynika to z faktu, że numer arkusza jest powiązany z lokalną etykietą.
Note
|
Even though there is no text length limit for labels in KiCad, please take into account that other programs reading the generated netlist may have such constraints. |
Note
|
Avoid spaces in labels, because they will appear as separated words in the generated file. It is not a limitation of KiCad, but of many netlist formats, which often assume that a label has no spaces. |

Opcje:
Format domyślny |
Zaznacz tą opcję jeśli ten format listy sieci ma być domyślny dla nowo tworzonych list sieci. |
Można też wygenerować netlistę w innych formatach:
-
Orcad PCB2
-
CadStar
-
Spice (dla symulatorów)
Za pomocą zewnętrznych wtyczek można uruchamiać konwersje do innych formatów (Tu dodano wtyczkę PADSPCB).
Więcej informacji na temat tworzenia list sieci można znaleźć w rozdziale Tworzenie list sieci.
4.4. Numeracja komponentów
The icon launches the annotation tool. This tool assigns references to components.
Dla komponentów, które składają się z kilku części (jak na przykład 7400 TTL który posiada 4 takie same 4 bramki), przyrostek oznaczający poszczególne części także będzie zachowany (w przypadku 7400 TTL przypisana nazwa U3 będzie podzielona na U3A, U3B, U3C oraz U3D).
Można bezwarunkowo ponumerować wszystkie elementy, bądź tylko te, które są nowe na schemacie, tzn. takie, które dotychczas nie zostały jeszcze ponumerowane.

Zakres
Użyj całego schematu | Wszystkie arkusze zostana ponumerowane ponownie (domyślnie). |
---|---|
Użyj tylko bieżącej strony |
Tylko bieżący arkusz zostanie ponownie ponumerowany (Opcja ta może być użyta tylko w szczególnych przypadkach, np. podczas testowania ilości rezystorów na bieżącym arkuszu). |
Zachowaj bieżąca numerację |
Numeracja warunkowa, tylko nowe komponenty zostaną ponumerowane ponownie (domyślnie). |
Resetuj bieżącą numerację |
Numeracja bezwarunkowa, wszystkie komponenty będą ponumerowane ponownie (Ta opcja powinna być użyta jeśli występują zduplikowane odniesienia). |
Resetuj, ale nie zmieniaj części elementów wieloczęściowych |
Zachowuje wybrany podział elementów wieloczęściowych (np. U2A, U2B) podczas ponownej numeracji. |
Porządek numeracji
Wybiera kierunek w jakim poruszać się będzie numeracja komponentów (poziomo lub pionowo).
Wybór numeracji
Wybiera format w jakim są przypisywane oznaczenia.
4.5. Kontrola reguł projektowych - ERC
The icon launches the electrical rules check (ERC) tool.
Funkcja ta generalnie służy do wykrywania złych lub nieistniejących połączeń lub innych niespójności schematu.
Once you have run the ERC, KiCad places markers to highlight problems. The error description is displayed after left clicking on the marker. An error report file can also be generated.
4.5.1. Główne okno narzędzia ERC

Podsumowanie ilości błędów lub ostrzeżeń jest wyświetlane w oknie dialogowym:
-
Ogółem błędów - to całkowita liczba znalezionych nieprawidłowości.
-
Liczba błędów - to liczba wykrytych błędów.
-
Ogółem ostrzeżeń - to liczba wykrytych ostrzeżeń.
Opcje:
Utwórz plik raportu |
Jeśli chcemy dodatkowo wygenerować plik z listą błędów należy zaznaczyć tą opcję. |
Polecenia:
Usuń znaczniki |
Usuwa bieżące znaczniki błędów/ostrzeżeń. |
Uruchom |
Rozpoczyna proces sprawdzenia. |
Zamknij |
Zamyka okno. |
-
Gdy kliknie się w komunikat o błędzie na liście, kursor przeskakuje do miejsca gdzie znajduje się znacznik tego błędu.
4.5.2. Opcje sprawdzania ERC

Ta zakładka pozwala na określenie, jaki błąd powinien zostać wygenerowany po zestawieniu ze sobą dwóch typów wyprowadzeń. Można wybrać jedną z 3 opcji zgłoszenia dla danego przypadku:
-
Brak błędu
-
Ostrzeżenie
-
Błąd
Każde pole na matrycy błędów i ostrzeżeń może być zmienione klikając w nie. Zmiany są wykonywane cykliczne. W każdej chwili można przywrócić ustawienia domyślne za pomocą przycisku "Resetuj do domyślnych".
Opcje:
Testuj na podobność etykiet |
Raportuje etykiety różniące się tylko wielkością liter (np. label/Label/LaBeL). W nazwach sieci rozróżniana jest wielkość liter, dlatego takie etykiety są traktowane jako oddzielne sieci. |
Testuj na unikalność etykiet globalnych |
Raportuj o etykietach globalnych, które występują tylko raz dla danej sieci. Normalnie, wymagane jest aby co najmniej dwie takie etykiety tworzyły połączenie. |
Polecenia:
Resetuj do domyślnych |
Przywraca domyślne ustawienia. |
4.6. Footprint Assignment Tool
The button launches the Footprint Assignment Tool, which can be used to associate PCB footprints with symbols in the schematic. The footprint assignment process is described later in the manual.
4.7. Narzędzia list materiałowych - BOM
The icon launches the bill of materials (BOM) generator. This tool generates a file listing the components and/or hierarchical connections (global labels).

The Schematic Editor’s BOM generator makes use of external plugins, either as XSLT or Python scripts. There are a few examples installed inside the KiCad program files directory.
Przydatny zestaw właściwości elementów używany zwykle do tworzenia list materiałowych to:
-
Wartość - unikalna nazwa dla każdego z użytych elementów,
-
Obudowa - zarówno wpisana ręcznie lub za pomocą numeracji wstecznej (zobacz następny punkt),
-
Pole1 - nazwa producenta,
-
Pole2 - nazwa elementu według producenta,
-
Pole3 - nazwa elementu według jego dystrybutora.
Przykładowo:

On MS Windows, BOM generator dialog has a special option (pointed by red arrow) that controls visibility of external plugin window.
By default, BOM generator command is executed console window hidden and output is redirected to Plugin info field. Set this option to show the window of the running command. It may be necessary if plugin has provides a graphical user interface.

4.8. Narzędzie do edycji pól
The icon opens a spreadsheet to view and modify field values for all symbols.
Po zmodyfikowaniu wartości pól musisz zaakceptować zmiany, klikając przycisk 'Zastosuj' lub cofnąć je, klikając przycisk 'Przywróć'.
4.8.1. Sposoby uproszczenia edycji pól
W tabelach okien dialogowych możliwe jest użycie kilka specjalnych metod ich kopiowania/wklejania. Mogą być one przydatne przy wprowadzaniu wartości pól powtarzanych dla kilku komponentów.
These methods are illustrated below.
Copy (Ctrl+C) | Selection | Paste (Ctrl+V) |
---|---|---|
Note
|
Te techniki są również dostępne w innych oknach dialogowych zawierających tabele. |
4.9. Narzędzie importu dla numeracji wstecznej
4.9.1. Dostęp:
The icon launches the back-annotate tool.
This tool allows footprint changes made in the PCB Editor to be imported back into the footprint fields in the Schematic Editor.
5. Managing Symbol Libraries
Biblioteki symboli przechowują zbiory symboli używanych podczas tworzenia schematów. Każdy symbol na schemacie jest jednoznacznie identyfikowany za pomocą pełnej nazwy, która składa się z nazwy skrótowej biblioteki i nazwy symbolu. Przykładowo Audio:AD1853
.
5.1. Tabele Bibliotek Symboli
KiCad uses a table of symbol libraries to map symbol libraries to a library nickname. Kicad uses a global symbol library table as well as a table specific to each project. To edit either symbol library table, use Preferences → Manage Symbol Libraries….

The global symbol library table contains the list of libraries that are always available regardless of the currently loaded project. The table is saved in the file sym-lib-table
in the KiCad configuration folder. The location of this folder depends on the operating system being used.
The project specific symbol library table contains the list of libraries that are available specifically for the currently loaded project. If there are any project-specific symbol libraries, the table is saved in the file sym-lib-table
in the project folder.
5.1.1. Konfiguracja początkowa
The first time the KiCad Schematic Editor is run and the global symbol table file sym-lib-table
is not found in the KiCad configuration folder, KiCad will guide the user through setting up a new symbol library table. This process is described above.
5.1.2. Managing Table Entries
Symbol libraries can only be used if they have been added to either the global or project-specific symbol library table.
Add a library either by clicking the button and selecting a library or clicking the
button and typing the path to a library file. The selected library will be added to the currently opened library table (Global or Project Specific). Libraries can be removed by selecting desired library entries and clicking the
button.
Libraries can be made inactive by unchecking the Active checkbox in the first column. Inactive libraries are still in the library table but do not appear in any library browsers.
A range of libraries can be selected by clicking the first library in the range and then Shift-clicking the last library in the range.
Each library must have a unique nickname: duplicate library nicknames are not allowed in the same table. However, nicknames can be duplicated between the global and project library tables. Libraries in the project table take precedence over libraries with the same name in the global table.
Library nicknames do not have to be related to the library filename or path. The colon character (:
) cannot be used in library nicknames or symbol names because it is used as a separator between nicknames and symbols.
Each library entry must have a valid path. Paths can be defined as absolute, relative, or by environment variable substitution.
The appropriate library format must be selected in order for the library to be properly read. "KiCad" format is used for KiCad version 6 libraries (.kicad_sym
files), while "Legacy" format is used for libraries from older versions of KiCad (.lib
files). Legacy libraries are read-only, but can be migrated to KiCad format libraries using the Migrate Libraries button (see section Migrating Legacy Libraries).
There is an optional description field to add a description of the library entry. The option field is not used at this time so adding options will have no effect when loading libraries.
5.1.3. Substytucja zmiennych środowiskowych
The symbol library tables support environment variable substitution, which allows you to define environment variables containing custom paths to where your libraries are stored. Environment variable substitution is supported by using the syntax ${ENV_VAR_NAME}
in the symbol library path.
By default, KiCad defines several environment variables:
-
${KIPROJMOD}
points to the current project directory and cannot be modified. -
${KICAD6_FOOTPRINT_DIR}
points to the default location of KiCad’s standard footprint libraries. -
${KICAD6_SYMBOL_DIR}
points to the default location of KiCad’s standard symbol libraries. -
${KICAD6_3DMODEL_DIR}
points to the default location of KiCad’s standard 3D model libraries. -
${KICAD6_TEMPLATE_DIR}
points to the default location of KiCad’s standard template library.
${KIPROJMOD}
cannot be redefined, but the other environment variables can be redefined and new environment variables added in the Preferences → Configure Paths… dialog.
Using environment variables in the symbol library tables allows libraries to be relocated without breaking the symbol library tables, so long as the environment variables are updated when the library location changes.
${KIPROJMOD}
allows libraries to be stored in the project folder without having to use an absolute path in the project library table. This makes it possible to relocate projects without breaking their project library tables. One of the most powerful features of the symbol library table is environment variable substitution. This allows for definition of custom paths to where symbol libraries are stored in environment variables. Environment variable substitution is supported by using the syntax ${ENV_VAR_NAME}
in the library path.
5.1.4. Zakres stosowania
Symbol libraries can be defined either globally or specifically to the currently loaded project. Symbol libraries defined in the user’s global table are always available and are stored in the sym-lib-table
file in the user’s KiCad configuration folder. The project-specific symbol library table is active only for the currently open project file.
Każda z tych metod ma swoje wady i zalety. Zdefiniowanie wszystkich bibliotek w tabeli globalnej oznacza, że będą one zawsze dostępne w razie potrzeby. Wadą tego rozwiązania jest to, że czas ich ładowania znacznie wzrośnie.
Definiowanie wszystkich bibliotek symboli w ustawieniach konkretnego projektu oznacza, że ładowane są tylko biblioteki wymagane dla projektu co zmniejsza ich czas ładowania. Wadą jest to, że zawsze należy pamiętać o skonfigurowaniu wymaganych bibliotek dla każdego projektu.
Jednym ze sposobów użycia mogłoby być zdefiniowanie powszechnie używanych bibliotek globalnie, a bibliotek wymaganych tylko dla projektu w tabelach bibliotek specyficznych dla projektu. Nie pod tym względem żadnych ograniczeń.
5.1.5. Migrating Legacy Libraries
Legacy libraries (.lib
files) are read-only, but they can be migrated to KiCad version 6 libraries (.kicad_sym
). KiCad version 6 libraries cannot be viewed or edited by KiCad versions older than 6.0.0.
Legacy libraries can be converted to KiCad 6 libraries by selecting them in the symbol library table and clicking the Migrate Libraries button. Multiple libraries can be selected and migrated at once by Ctrl-clicking or shift-clicking.
Libraries can also be converted one at a time by opening them in the Symbol Editor and saving them as a new library.
5.1.6. Remapowanie projektów z poprzednich wersji
When loading a schematic created prior to the symbol library table implementation, KiCad will attempt to remap the symbol library links in the schematic to the appropriate library table symbols. The success of this process is dependent on several factors:
-
oryginalne biblioteki użyte w schemacie są nadal dostępne i niezmienione od momentu dodania symbolu do schematu.
-
wszystkie operacje ratunkowe zostały wykonane po wykryciu potrzeby utworzenia biblioteki ratunkowej lub aktualizacji istniejącej biblioteki ratunkowej.
-
integralność symboli bibliotecznych w pamięci podręcznej projektu nie została naruszona.
Warning
|
Remapowanie spowoduje utworzenie kopii zapasowej wszystkich plików, które zostały zmienione podczas ponownego mapowania w folderze |
Warning
|
Operacja odzyskiwania jest wykonywana nawet jeśli została wyłączona, aby zabezpieczyć poprawność symboli do procesu ponownego mapowania. Nie powinno się anulować tej operacji, inaczej ponowne mapowanie się nie powiedzie. Wszelkie uszkodzone łącza symboliczne muszą wtedy zostać naprawione ręcznie. |
Note
|
If the original libraries have been removed and the rescue was not performed, the cache library can be used as a recovery library as a last resort. Copy the cache library to a new file name and add the new library file to the top of the library list using a version of KiCad prior to the symbol library table implementation. |
6. Tworzenie i edycja schematu
6.1. Wprowadzenie
Schemat może zostać przedstawiony na jednym arkuszu, ale głównie będzie to jednak wymagać kilku arkuszy.
A schematic represented by several sheets is hierarchical, and all its sheets (each one represented by its own file) constitute a complete KiCad schematic. The manipulation of hierarchical schematics will be described in the Hierarchical Schematics chapter.
6.2. Uwagi ogólne
A schematic designed with KiCad is more than a simple graphic representation of an electronic device. It is normally the entry point of a development chain that allows for:
-
Walidację za pomocą zbioru reguł (ERC) by wykryć proste błędy oraz braki na schemacie.
-
Automatyczne wygenerowanie listy materiałowej (BOM).
-
Generowanie listy sieci dla oprogramowania do symulacji, takiego jak Spice.
-
Defining a circuit for transferring to PCB layout.
Schemat składa się głównie z elementów, połączeń między nimi, etykiet, węzłów, magistral i portów zasilania. Dla zwiększenia czytelności schematu, można umieścić elementy graficzne takie jak: wejścia do magistral, komentarze i linie przerywane do budowy ramek.
Symbols are added to the schematic from symbol libraries. After the schematic is made, the set of connections and footprints is imported into the PCB editor for designing a board.
6.3. Wstawianie i edycja komponentów
6.3.1. Wyszukiwanie i wstawianie komponentów
To load a symbol into your schematic you can use the icon . A dialog box allows you to type the name of the symbol to load.

Okno dialogowe wyboru symbolu filtruje symbole po nazwie, słowach kluczowych lub opisu w zależności od tego co zostanie wpisane w pole wyszukiwania. Można też użyć zaawansowanych filtrów wpisując je:
-
Symbole wieloznaczne: użycie znaków
?
oraz*
oznacza odpowiednio "dowolny znak" oraz "dowolny ciąg znaków". -
Operatory relacji: jeśli opisy elementów lub słowa kluczowe zawierają tagi w formacie "Klucz:123", można wyszukiwać względnie wpisując "Klucz>123" (większe niż), "Klucz<123" (mniejsze niż), itd. Liczby mogą zawierać także jeden z następujących sufiksów:
p
n
u
m
k
meg
g
t
10-12
10-9
10-6
10-3
103
106
109
1012
ki
mi
gi
ti
210
220
230
240
-
Wyrażenie regularne: Jeśli znasz wyrażenia regularne, można je również wykorzystać. Użyty styl wyrażeń regularnych to Zaawansowany styl wyrażeń regularnych wxWidgets, który jest podobny do wyrażeń regularnych Perl-a.
If the symbol specifies a default footprint, this footprint will be previewed in the lower right. If the symbol includes footprint filters, alternate footprints that satisfy the footprint filters can be selected in the footprint dropdown menu at right.
After selecting a symbol to place, the symbol will be attached to the cursor. Left clicking the desired location in the schematic places the symbol into the schematic. Before placing the symbol in the schematic, you can rotate it, mirror it, and edit its fields, by either using the hotkeys or the right-click context menu. These actions can also be performed after placement.
Poniższy obrazek pokazuje symbol podczas operacji wstawiania go do schematu:

If the "Place repeated copies" option is checked, after placing a symbol KiCad will start placing another copy of the symbol. This process continues until the user presses Esc.
For symbols with multiple units, if the "Place all units" option is checked, after placing the symbol KiCad will start placing the next unit in the symbol. This continues until the last unit has been placed or the user presses Esc.
6.3.2. Placing power ports
A power port symbol is a symbol representing a connection to a power net. The symbols are grouped in the power
library, so they can be placed using the symbol chooser. However, as power placements are frequent, the tool is available. This tool is similar, except that the search is done directly in the
power
library.
6.3.3. Edycja / modyfikacja elementów (umieszczonych na schemacie)
Są dwie możliwości edycji symbolu:
-
Modyfikacja samego elementu: położenie, orientacja, wybór części dla elementu wieloczęściowego.
-
Modyfikacja jednego z pól elementu: Oznaczenie, Wartość, Footprint, lub inne.
Gdy element został właśnie umieszczony na schemacie, może zaistnieć potrzeba zmiany jego wartości (szczególnie dla rezystorów, kondensatorów, itp.), ale nie ma sensu natychmiastowego przypisania temu elementowi jego oznaczenia, lub wyboru części składowej dla elementów wieloczęściowych (poza symbolami z zablokowanymi częściami składowymi, które trzeba określić ręcznie). Wybór elementów składowych może być wykonany automatycznie podczas procesu numeracji schematu.
Modyfikacja symboli
W tym celu należy umieścić kursor myszy na elemencie, a następnie:
-
Kliknąć dwukrotnie na elemencie aby otworzyć okno dialogowe z właściwościami elementu z opcjami jego pełnej edycji.
-
Kliknąć prawym przyciskiem myszy, aby otworzyć menu podręczne, i użyć jednego z wyświetlonych poleceń: "Przesuń", "Zorientuj", "Edytuj", "Usuń", itp.
-
Use a hotkey to perform an action on the symbol (E to open the properties dialog, R to rotate, etc.). Note that hotkeys act on the selected symbol; if no symbol is selected hotkeys act on the symbol under the cursor.
Symbols can also be selected by clicking on them or drag-selecting them. Selected symbols can be modified by clicking relevant buttons in the top toolbar or using a hotkey.
Modyfikacja pól tekstowych elementów
Można dokonać modyfikacji oznaczeń, wartości, pozycji, orientacji, rozmiaru i widoczności pól:
-
Kliknąć dwukrotnie na pole tekstowe aby go zmienić.
-
Kliknąć prawym przyciskiem myszy, aby otworzyć menu podręczne, i użyć jednego z wyświetlonych poleceń: "Przesuń", "Zorientuj", "Edytuj", "Usuń", itp.
-
Position the cursor over the field (if nothing is selected) or select the field and press E to edit the field.
-
Position the cursor over the symbol (if nothing is selected) or select the symbol and press V, U, or F hotkeys to directly edit the symbol’s value, reference designator, or footprint fields, respectively.
W celu edycji bardziej zaawansowanej, lub w celu stworzenia pola; należy kliknąć dwukrotnie na element, by otworzyć okno dialogowe "Właściwości elementu".

Każde pole może być widoczne lub nie oraz wyświetlane poziomo lub pionowo. Wyświetlana pozycja jest zawsze pokazywana dla normalnie wyświetlanego elementu (bez obrotu lub lustra) i odnosi się do punktu aktywnego elementu.
The position and orientation properties of each field may be hidden in this dialog. They can be shown by right-clicking on the column header of the fields table and enabling the "Orientation", "X Position", and/or "Y Position" columns. Other columns can be shown or hidden as desired.
The "Update Symbol from Library…" button is used to update the schematic’s copy of the symbol to match the copy in the library. The "Change Symbol…" button is used to swap the current symbol to a different symbol in the library.
"Edit Symbol…" opens the Symbol Editor to edit the copy of the symbol in the schematic. Note that the original symbol in the library will not be modified. The "Edit Library Symbol…" button opens the Symbol Editor to edit the original symbol in the library. In this case, the symbol in the schematic will not be modified until the user clicks the "Update Symbol from Library…" button.
6.3.4. Symbol Fields Table
Note
|
TODO: Write this section. |
6.4. Electrical Connections
6.4.1. Wprowadzenie
There are a number of elements that can be added to a schematic to electrically connect components. All of these elements can be placed with the buttons on the vertical right toolbar or using hotkeys.
Te elementy to:
-
Wires: direct connection between pins.
-
Buses: connections for a group of signals.
-
Bus entries: connections between wires and buses.
-
No-connection flags: terminations for pins or wires that are intentionally unconnected. These flags prevent ERC violations for unconnected pins.
-
Junctions: connections between crossing wires or buses.
-
Net labels: local name for a signal. Signals within a sheet that have the same net label are connected.
-
Global labels: global name for a signal. Signals with the same global label are connected even if they are not in the same sheet.
-
Hierarchical labels: a label for a signal in a subsheet that enables the signal to be accessed in a parent sheet. See the Hierarchical Schematics section for more information about hierarchical labels, sheets, and pins.
-
Hierarchical sheets: an instantiation of a subsheet within a parent sheet. The parent sheet can connect to the subsheet through the subsheet’s hierarchical pins.
-
Hierarchical pins: connection points between a parent sheet and a subsheet. Hierarchical pins appear at the parent sheet’s level and correspond to hierarchical labels in the subsheet.
Several other types of items can be placed on the schematic but do not affect connectivity:
-
Graphical lines: graphical lines for presentation.
-
Text: textual comments and annotations.
-
Bitmap images: raster graphics from an external file.
This section will also discuss two special types of symbols that can be added with the "Power port" button on the right toolbar:
-
Power ports: symbols for connecting wires to a power or ground net.
-
PWR_FLAG: a specific symbol for indicating that a net is powered when it is not connected to a power output pin (for example, a power net that is supplied by an off-board connector).
6.4.2. Połączenia (Łącza i etykiety)
Są dwie możliwości tworzenia połączeń:
-
Połączenia bezpośrednie pomiędzy wyprowadzeniami.
-
Połączenia z pomocą etykiet.
Poniższy obrazek pokazuje obie te metody:

Label Connections
The point of "contact" of a label is the small square in the corner of the label. The square disappears when the label is connected. The position of the connection point relative to the label text can be changed by choosing a different label orientation in the label properties, or by mirroring/rotating the label.
The label’s connection point must be in contact with a wire or the end of a pin for the label to be connected.
Wire Connections
By nawiązać połączenie, jeden z segmentów połączenia musi być dołączony swoim końcem do innego zakończenia segmentu lub do punktu aktywnego u wyprowadzenia elementu.
Jeśli połączenie się nakłada na wyprowadzenie (gdy połączenie przechodzi przez wyprowadzenie ale nie trafia w jego punkt aktywny), wtedy takie połączenie nie jest prawidłowym połączeniem.
Note
|
Wires connect with other wires or pins only if their ends coincide exactly. Therefore it is important to keep symbol pins and wires aligned to the grid. It is recommended to always use a 50 mil grid when placing symbols and drawing wires because the KiCad standard symbol library and all libraries that follow its style also use a 50 mil grid. |
Note
|
Symbols, wires, and other elements that are not aligned to the grid can be snapped back to the grid by selecting them, right clicking, and selecting Align Elements to Grid. |
Wire Junctions
Wires that cross are not implicitly connected. It is necessary to join them with a junction dot if a connection is desired. Junction dots will be automatically added to wires that start or end on top of an existing wire.
Junction dots are used in the previous figure on the wires connected to P1
pins 18, 19, 20, 21, 22, and 23.
Nets with Multiple Names
A signal can only have one name. If two different labels are placed on the same net, an ERC violation will be generated. Only one of the net names will be used in the netlist.
Hidden Power Pins
When the power pins of a symbol are visible, they must be connected, as with any other signal.
However, symbols such as gates and flip-flops are sometimes drawn with hidden power input pins which are connected implicitly.
KiCad automatically connects invisible pins with type "power input" to a global net with the same name as the pin. For example, if a symbol has a hidden power input pin named VCC
, this pin will automatically be connected to the global VCC
net.
Note
|
Care must be taken with hidden power input pins because they can create unintentional connections. By nature, hidden pins are invisible and do not display their pin name. This makes it easy to accidentally connect two power pins to the same net. For this reason, the use of invisible power pins in symbols is not recommended outside of power port symbols, and is only supported for compatibility with legacy designs and symbols. |
Note
|
Hidden pins can be shown in the schematic by checking the Show hidden pins option in the Schematic Editor → Display Options section of the preferences, or by selecting View → Show hidden pins. There is also a toggle icon ![]() |
It may be necessary to join power nets of different names (for example, GND
in TTL components and VSS
in MOS components). To accomplish this, add a power port symbol for each net and connect them with a wire.
It is not recommended to use labels for power connection. These only have a "local" connection scope, and will not connect to invisible power pins.
6.4.3. Wiring
To begin connecting elements, you may either use the 'Wire' or 'Bus' tools from the right-hand toolbar, or you can auto-start a new wire from any existing pin or unconnected wire.
The wire drag action will drag the entire wire if you start dragging from the middle of the wire. Alternatively, it will drag just one corner if you start the drag action over a corner where two wires connect
6.4.4. Połączenia - Magistrale
Na poniższym schemacie, wiele pinów jest połączonych z magistralami.

Składniki magistral
Magistrale to sposób na grupowanie podobnych sygnałów na schemacie by ten schemat uprościć. Magistrale można rysować tak samo jak połączenia używając do tego narzędzia do rysowania magistral, i nazywane z użyciem etykiet podobnie jak zwykłe połączenia. W przypadku programu KiCad 6.0 i późniejszych istnieją dwa typy magistra: wektorowa oraz grupowa.
Magistrala wektorowa to kolekcja sygnałów, których nazwa składa się z takiego samego przedrostka i kończy przyrostkiem z unikalną liczbą. Magistrale wektorowe są nazywane wg schematu <PREFIX>[M..N]
gdzie PREFIX
to dowolna nazwa sygnału, M
to pierwsza liczba przyrostka, a N
to ostatnia liczba. Na przykład, magistrala DATA[0..7]
zawiera grupę sygnałów DATA0
, DATA1
, itd. aż do DATA7
. Nie ma znaczenia jak wartości M
oraz N
zostały zdefiniowane, byle by nie były one wartościami ujemnymi.
Magistrala grupowa to kolekcja różnych sygnałów bądź magistral wektorowych. Magistrale grupowe można użyć do zgrupowania razem sygnałów posiadających różne nazwy. Magistrale grupowe używają specjalnego zapisu etykiet:
<OPTIONAL_NAME>{SIGNAL1 SIGNAL2 SIGNAL3}
Sygnały w grupie są wymienione wewnątrz nawiasów klamrowych ({}
) oddzielonych spacjami. Opcjonalna nazwa grupy występuje przed otwierającym nawiasem klamrowym. Jeśli magistrala grupowa nie ma nazwy, wynikowe sieci w obwodzie drukowanym będą po prostu nazwami sygnałów wewnątrz grupy. Jeśli magistrala grupowa ma nazwę, wynikowe sieci będą miały nazwę jako prefiks z kropką (.
) oddzielającą prefiks od nazwy sygnału.
Na przykład magistrala {SCL SDA}
posiada dwa sygnały, stąd na liście sieci będą to sygnały SCL
i ` SDA`. Magistrala USB1{DP DM}
wygeneruje zaś sieci o nazwie USB1.DP
i ` USB1.DM`. W przypadku projektów z większymi magistralami, które występują powtórnie w kilku podobnych obwodach, zastosowanie tej techniki może zaoszczędzić czas.
Magistrale grupowe mogą również zawierać magistrale wektorowe. Na przykład magistrala MEMORY{A[7..0] D[7..0] OE WE}
zawiera zarówno magistrale wektorowe, jak i zwykłe sygnały co spowoduje utworzenie sieci takich jak: MEMORY.A7
i ` MEMORY.OE` na PCB.
Bus wires can be drawn and connected in the same manner as signal wires, including using junctions to create connections between crossing wires. Like signals, buses cannot have more than one name — if two conflicting labels are attached to the same bus, an ERC violation will be generated.
Połączenia pomiędzy składnikami magistral
Pins connected between the same members of a bus must be connected by labels. It is not possible to connect a pin directly to a bus; this type of connection will be ignored by KiCad.
W powyższym przykładzie, połączenia wykonane są za pomocą etykiet umieszczonych na połączeniach podłączonych do wyprowadzeń. Połączenia poprzez wejścia do magistral (odcinki połączeń pod kątem 45 stopni) mają wyłącznie wartość estetyczną, i nie są konieczne na poziomie czystego schematu.
In fact, using the repetition command (Insert), connections can be very quickly made in the following way, if component pins are aligned in increasing order (a common case in practice on components such as memories, microprocessors…):
-
Place the first label (for example
PCA0
) -
Use the repetition command as much as needed to place members. KiCad will automatically create the next labels (
PCA1
,PCA2
…) vertically aligned, theoretically on the position of the other pins. -
Narysować połączenie pod pierwszą z etykiet. Następnie użyć polecenia powtarzania umieszczając dalsze połączenia pod etykietami.
-
W razie potrzeby umieścić wejścia do magistrali w ten sam sposób (Umieścić pierwsze wejście, a następnie użyć polecenia powtarzania).
Note
|
In the Schematic Editor → Editing Options section of the Preferences menu, you can set the repetition parameters:
|
Wyprowadzanie sygnałów z magistral
The unfold tool allows you to quickly break out signals from a bus. To unfold a signal, right-click on a bus object (a bus wire, etc) and choose Unfold from Bus. Alternatively, use the Unfold Bus hotkey (default: C) when the cursor is over a bus object. The menu allows you to select which bus member to unfold.
Po wybraniu sygnału z magistrali, następne kliknięcie umieści etykietę sygnału magistrali w żądanym miejscu. Narzędzie automatycznie wygeneruje wejście do magistrali i połączenie prowadzące do miejsca gdzie znajdować się będzie etykieta. Po umieszczeniu etykiety możesz kontynuować umieszczanie dodatkowych segmentów połączenia (Na przykład, aby połączyć się z pinem komponentu) i dokończyć połączenie w dowolny sposób.
Aliasy magistral
Aliasy magistrali to skróty, które umożliwiają wydajniejszą pracę z magistralami o dużych grupach. Pozwalają one zdefiniować magistralę grupową i nadać jej krótką nazwę, która może być następnie używana zamiast pełnej nazwy grupy na schemacie.
To create bus aliases, open the Bus Definitions dialog in the Tools menu.

Alias może mieć dowolną dozwoloną nazwę sygnału. Korzystając z okna dialogowego, można dodawać sygnały lub magistrale wektorowe do aliasu. Jako skrót można wpisać lub wkleić listę sygnałów i/lub magistral oddzieloną spacjami, a wszystkie one zostaną dodane do definicji aliasu. W tym przykładzie zdefiniujemy alias o nazwie USB
z elementami DP
, DM
i ` VBUS`.
Po zdefiniowaniu aliasu można go użyć jako etykiety magistrali grupowej, umieszczając nazwę aliasu w nawiasach klamrowych na magistrali grupowej: {USB}
. Ma to taki sam efekt, jak etykietowanie magistrali {DP DM VBUS}
. Można także dodać nazwę prefiksu do grupy, na przykład USB1 {USB}
, co skutkuje nazwami sieci takimi jak USB1.DP
, tak jak opisano to wcześniej. W przypadku skomplikowanych magistral używanie aliasów może znacznie skrócić etykiety na schemacie. Pamiętaj, że aliasy są tylko skrótem, a nazwa aliasu nie jest dołączana do listy sieci.
Aliasy magistral są zapisywane w pliku schematu. Wszelkie aliasy utworzone na danym arkuszu schematu są dostępne do użytku w dowolnym innym arkuszu schematu, który znajduje się w tej samej strukturze hierarchicznej.
Magistrale posiadające więcej niż jedną etykietę
Program KiCad w wersji 5.0 i wcześniejszych pozwalał na łączenie sygnałów magistral z różnymi etykietami i łączył je podczas tworzenia listy sieci. To zachowanie zostało usunięte w programie KiCad 6.0, ponieważ jest niekompatybilne z magistralami grupowymi, a także prowadzi do mylących list sieci, ponieważ nazwa którą dany sygnał odbierze, nie była do przewidzenia.
Jeśli otwarto projekt, który wykorzystywał tę funkcję w nowszej wersji programu, pojawi się okno dialogowe Migracja magistral, które przeprowadzi użytkownika przez aktualizację schematu, tak aby na danym zestawie sygnałów magistrali istniała tylko jedna etykieta.

Dla każdego zestawu sygnałów magistrali, który ma więcej niż jedną etykietę, należy wybrać etykietę, która zostanie zachowana. Lista rozwijana z nazwami pozwala wybrać jedną z etykiet, istniejącą w projekcie lub wybrać inną nazwę, wprowadzając ją ręcznie w polu nowej nazwy.
6.4.5. Power Ports
Power port symbols are conventionally used to connect pins to power nets. Power port symbols have a single pin which is invisible and marked as a power input. As described in the hidden power pins section, any wire connected to the pin of a power port is therefore automatically connected to the power net with the same name as the port’s pin.
In the KiCad standard library, power ports are found in the power
library, but power port symbols can be created in any library. To create a custom power port, make a new symbol with a hidden pin marked as a power input. Name the pin according to the desired power net.
Poniższy rysunek przedstawia przykład połączenia portów zasilania.

In this example, power ports symbols are used to connect the positive and negative terminals of the capacitors to the VCC
and GND
nets, respectively.
Power port symbols are found in the power
symbol library. They can also be created by drawing a symbol with a hidden "power input" pin that has the name of the desired power net.
6.4.6. PWR_FLAG
Two PWR_FLAG
symbols are visible in the screenshot above. They indicate to ERC that the two power nets VCC
and GND
are actually connected to a power source, as there is no explicit power source such as a voltage regulator output attached to either net.
Without these two flags, the ERC tool would diagnose: Error: Input Power pin not driven by any Output Power pins.
The PWR_FLAG
symbol is found in the power
symbol library. The same effect can be achieved by connecting any "Power Output" pin to the net.
6.4.7. No-connection flag
No-connection flags () are used to indicate that a pin is intentionally unconnected. These flags do not have any effect on the schematic’s connectivity, but they prevent "unconnected pin" ERC warnings for pins that are intentionally unconnected.
6.5. Elementy uzupełniające
6.5.1. Text comments and graphic lines
It can be useful to place annotations such as text fields and frames to aid in understanding the schematic. Text fields () and graphic lines (
) are intended for this use, as opposed to labels and wires, which are connection elements.
The image below shows graphic lines and text in addition to wires, local labels, and hierarchical labels.

6.5.2. Tabelka
The title block is edited with the Page Settings tool ().

Each field in the title block can be edited, as well as the paper size and orientation. If the "Export to other sheets" option is checked for a field, that field will be updated in the title block of all sheets, rather than only the current sheet.
A drawing sheet template file can also be selected.

The sheet number (Sheet X/Y) is automatically updated, but sheet page numbers can also be manually set using Edit → Edit Sheet Page Number….
6.6. Odzyskiwanie symboli z pamięci cache
By default, KiCad loads symbols from the project libraries according to the set paths and library order. This can cause a problem when loading a very old project: if the symbols in the library have changed or have been removed or the library no longer exists since they were used in the project, the ones in the project would be automatically replaced with the new versions. The new versions might not line up correctly or might be oriented differently leading to a broken schematic.
When a project is saved, a cache library with the contents of the current library symbols is saved along with the schematic. This allows the project to be distributed without the full libraries. If you load a project where symbols are present both in its cache and in the system libraries, KiCad will scan the libraries for conflicts. Any conflicts found will be listed in the following dialog:

Na podstawie tego przykładu można zobaczyć, że projekt w oryginale używał diod z katodą skierowaną w prawo, ale biblioteka zawiera już diody z katodą skierowaną w lewo. Ta zmiana mogłaby zrujnować cały projekt! Kliknięcie OK spowoduje, że starsze symbole zostaną zapisane do "biblioteki ratunkowej", i wszystkie komponenty używające tego symbolu zostaną podmienione na te umieszczone w bibliotece ratunkowej.
If you press Cancel, no rescues will be made, so KiCad will load all the new components by default. If you save the schematic at this point, your cache will be overwritten and the old symbols will not be recoverable. If you have saved the schematic, you can still go back and run the rescue function again by selecting "Rescue Cached Components" in the "Tools" menu to call up the rescue dialog again.
Jeśli użytkownik nie chce by to okno dialogowe się pokazywało, może zaznaczyć opcję "Nie pokazuj ponownie". Będzie to oznaczało, że operacje porównania nie będą przeprowadzane i nowe symbole będą ładowane domyślnie. Opcję tą można wyłączyć w oknie ustawień bibliotek.
7. Schematy o strukturze hierarchicznej
7.1. Wprowadzenie
Hierarchiczna reprezentacja jest szczególnie dobrym rozwiązaniem dla projektów większych niż kilka arkuszy. Jeśli chcielibyśmy zarządzać tego rodzaju projektem, niezbędne będzie:
-
Użycie dużych arkuszy, co spowoduje problem z drukowaniem i obsługą.
-
Wykorzystanie kilku arkuszy, która tym samym doprowadzi do stworzenia hierarchii.
Cały schemat następnie składa się w głównym arkuszu schematu zwanym arkuszem nadrzędnym (głównym) i arkuszy podrzędnych stanowiących hierarchię. Co więcej, umiejętny podział projektu na oddzielne arkusze często poprawia jego czytelność.
From the root sheet, you must be able to find all sub-sheets. Hierarchical schematics management is very easy with KiCad, thanks to an integrated "hierarchy navigator" accessible via the icon of the top toolbar.
Istnieją dwa typy hierarchii, które mogą występować jednocześnie: Pierwszy z nich został właśnie opisany i jest ogólnie używany. Drugi polega na stworzeniu elementów w bibliotece, które pojawiają się jak tradycyjne elementy na schemacie, ale które faktycznie odpowiadają schematom, które opisują ich wewnętrzną strukturę.
Ten drugi typ jest raczej wykorzystany do opracowania układów scalonych, ponieważ w tym przypadku należy skorzystać z bibliotek funkcji w schemacie który rysujemy.
KiCad currently doesn’t treat this second case.
Hierarchia może być:
-
prosta: dany arkusz jest używany tylko raz,
-
złożona: dany arkusz jest używany więcej niż raz (przypadek zwielokrotnienia),
-
płaska, która jest prostą hierarchią, ale połączenia między arkuszami nie są rysowane.
KiCad can deal with all these hierarchies.
Stworzenie struktury hierarchicznej schematu jest łatwe, gdyż całość hierarchii jest obsługiwana z poziomu schematu głównego, tak jak gdyby był to tylko jeden schemat.
By opanować tworzenie hierarchii należy poznać dwie rzeczy:
-
Jak stworzyć arkusz podrzędny.
-
Jak zbudować połączenia elektryczne między arkuszami podrzędnymi.
7.2. Nawigacja wewnątrz hierarchii
Navigation among sub-sheets is achieved by using the navigator tool accessible via the button on the top toolbar.

Każdy z arkuszy jest dostępny poprzez kliknięcie w jego nazwę. W celu szybszej nawigacji należy nacisnąć prawym klawiszem na symbolu arkusza i wybrać z menu podręcznego polecenie "Wejdź w arkusz".
By opuścić bieżący arkusz i przejść do arkusza nadrzędnego, należy kliknąć prawym klawiszem myszy w miejscu gdzie nie ma żadnego elementu schematu oraz wybrać polecenie "Opuść arkusz" z menu podręcznego lub wykorzystać kombinację klawiszy ALT+Backspace.
7.3. Etykiety lokalne, hierarchiczne i globalne
7.3.1. Właściwości
Local labels, tool , are connecting signals only within a sheet. Hierarchical labels (tool
) are connecting signals only within a sheet and to a hierarchical pin placed in the parent sheet.
Global labels (tool ) are connecting signals across all the hierarchy. Power pins (type power in and power out) invisible are like global labels because they are seen as connected between them across all the hierarchy.
Note
|
Wewnątrz hierarchii (prostej lub złożonej) można wykorzystać obie: hierarchiczne jak i globalne etykiety. |
7.4. Podsumowanie
Aby stworzyć hierarchię należy:
-
Umieścić w arkuszu głównym symbol zwany "symbolem arkusza hierarchicznego".
-
Wejść do nowego schematu (arkusza podrzędnego) za pomocą narzędzi nawigacji i narysować schemat tak jak zwykle.
-
Narysować połączenia elektryczne pomiędzy tymi dwoma schematami poprzez umieszczenie Etykiet hierarchicznych w nowym schemacie (arkuszu podrzędnym), oraz etykiet zwanych Pinami hierarchicznymi o tej samej nazwie na arkuszu hierarchicznym z arkusza głównego. Te etykiety zostaną dołączone do symbolu w arkuszu głównym jak standardowe wyprowadzenia elementów, tak by móc połączyć je z innymi elementami schematu.
7.5. Symbole arkuszy podrzędnych
Aby narysować arkusz podrzędny, należy narysować prostokąt symbolizujący arkusz podrzędny.
Rozmiar tego prostokąta musi pozwolić na umieszczenie później etykiet czy pinów hierarchicznych odpowiadających etykietom hierarchicznym wewnątrz arkusza podrzędnego.
These labels are similar to usual symbol pins. Select the tool .
Kliknąć w miejscu górnego lewego narożnika prostokąta. Kliknąć ponownie w miejscu dolnego prawego narożnika, pozostawiając prostokąt o dostatecznym rozmiarze.
Następnie program poprosi o wpisanie nazwy pliku oraz nazwy arkusza dla tego arkusza podrzędnego (w celu dotarcia do odpowiedniego schematu, z pomocą nawigatora).

Ostatecznie można podać tylko samą nazwę pliku. Jeśli nie ma nazwy arkusza, nazwa pliku będzie pełniła rolę nazwy arkusza (zwykle tak się robi).
7.6. Połączenia - Piny hierarchiczne
W tym punkcie stworzone zostaną punkty połączeń (piny hierarchiczne) dla symbolu, który został właśnie utworzony.
Te punkty połączeń są podobne do zwykłych wyprowadzeń elementów, jednak z możliwością połączenia kompletnej magistrali za pomocą tylko jednego punktu łączącego.
7.6.1. Importing Hierarchical Sheet Pins
-
Select the tool
.
-
Click on the hierarchical sheet from where you want to import the pins corresponding to hierarchical labels placed in the corresponding schematic. A hierarchical pin appears, if a new hierarchical label exists, i.e. not corresponding to an already placed pin.
-
Kliknąć w miejscy gdzie taki pin ma się pojawić.
All necessary pins can thus be placed quickly and without error. Their aspect is in accordance with corresponding hierarchical labels.
7.7. Etykiety hierarchiczne
Each pin of the sheet symbol just created, must correspond to a label called hierarchical Label in the sub-sheet. Hierarchical labels are similar to labels, but they provide connections between sub-sheet and root sheet. The graphical representation of the two complementary labels (pin and hierarchical labels) is similar. Hierarchical labels are made with the tool .
Poniżej znajduje się przykład arkusza głównego:

Należy zwrócić uwagę na pin VCC_PIC, połączony ze złączem JP1.
Na następnym rysunku znajdują się odpowiednie połączenia w arkuszu podrzędnym:

Należy zwrócić też uwagę na dwie odpowiadające pinom hierarchicznym etykiety hierarchiczne, pozwalające na zbudowanie połączenia pomiędzy arkuszami hierarchicznymi.
Note
|
Za pomocą etykiet hierarchicznych oraz pinów hierarchicznych, istnieje możliwość łączenia dwóch magistral, zgodnie z tym co opisano wcześniej przy opisie ich składników (Magistrala [N. .m]). |
7.7.1. Etykiety, etykiety hierarchiczne, etykiety globalne oraz piny ukryte
Oto kilka uwag na temat różnych sposobów zapewnienia połączeń innych niż połączenia bezpośrednie.
Zwykłe etykiety
Etykiety (zwykłe) mają lokalne możliwości łączeniowe, czyli ograniczone do arkusza schematu w którym się znajdują. Wynika to z faktu, że:
-
Każdy arkusz posiada numer arkusza.
-
Numer arkusza jest związany z nazwą etykiety.
Dlatego, jeśli umieścimy etykietę "TOTO" na arkuszu nr 3, w rzeczywistości prawdziwa jej nazwa będzie brzmieć "TOTO_3". Jeśli w arkuszu numer 1 (arkusz główny) również umieścimy etykietę "TOTO" to w rzeczywistości zostanie tam umieszczona etykieta "TOTO_1", różna od "TOTO_3". Dzieje się tak zawsze, nawet jeśli istnieje tylko jeden arkusz.
Etykiety hierarchiczne
To, co zostało napisane w związku z etykietami prostymi również jest prawdą w stosunku do etykiet hierarchicznych.
Zatem w tym samym arkuszu, etykieta hierarchiczna "TOTO" jest uważana za podłączoną do lokalnej etykiety "TOTO", ale nie jest podłączona do etykiety hierarchicznej lub etykiety hierarchicznej o nazwie "TOTO" w innym arkuszu.
Jednak etykieta hierarchiczna jest uważana za podłączoną do odpowiedniego pinu hierarchicznego w symbolu hierarchicznym umieszczonym w arkuszu głównym.
Ukryte piny zasilania
Jak zostało wcześniej napisane, są one połączone ze sobą gdy posiadają tą samą nazwę. Tak więc wszystkie piny zadeklarowane jako "Ukryte piny zasilania" o nazwie VCC są połączone i tworzą szynę VCC, bez względu na to na którym arkuszu są one umieszczone.
Gdyby etykieta o nazwie VCC została umieszczona na arkuszu podrzędnym, to nie byłaby ona połączona z wyprowadzeniem VCC, ponieważ etykietą byłaby faktycznie VCC_n, gdzie "n" to numer arkusza.
Jeśli chcemy, by etykieta VCC była naprawdę podłączona do szyny VCC, będzie trzeba ją jednoznacznie połączyć do ukrytych wyprowadzeń zasilania, dzięki portowi zasilania VCC.
7.7.2. Etykiety globalne
Globalne etykiety, które mają identyczne nazwy połączone są w całej hierarchii.
(Porty zasilania jak np. VCC… są właśnie globalnymi etykietami).
7.8. Hierarchia złożona
Przykład takiej hierarchii został zaprezentowany poniżej. Ten sam schemat jest użyty dwukrotnie (dwie instancje). Dwa arkusze współdzielą taki sam schemat, ponieważ nazwa pliku jest taka sama dla dwóch arkuszy (supply.sch
). Ich nazwy arkuszy jednak muszą pozostać różne.

7.9. Hierarchia płaska
Można utworzyć projekt z wykorzystaniem wielu arkuszy bez tworzenia połączeń między tymi arkuszami (płaski model hierarchii), jeśli zastosowano następujące reguły:
-
Należy stworzyć arkusz główny zawierający inne arkusze, który działa jako łącznik między innymi arkuszami.
-
Nie są potrzebne wyraźne połączenia między nimi.
-
Wszystkie połączenia między arkuszami zostają wykonane z użyciem etykiet globalnych zamiast etykiet hierarchicznych.
Poniżej znajduje się przykład głównego schematu:

Poniżej znajdują się dwa arkusze, połączone za pomocą etykiet globalnych.
Tutaj znajduje się pic_programmer.sch
.

Tutaj znajduje się pic_sockets.sch
.

Widok na etykiety globalne.

8. Narzędzie do numeracja komponentów
8.1. Wprowadzenie
The annotation tool allows you to automatically assign a designator to symbols in your schematic. Annotation of symbols with multiple units will assign a unique suffix to minimize the number of these symbols. The annotation tool is accessible via the icon . Here you find its main window.

Dostępne warianty numeracji:
-
Opisywanie wszystkich składników (opcja "Resetuj bieżącą numerację").
-
Opisywanie wszystkich składników, ale bez zmiany uprzednio ponumerowanych części elementów wieloczęściowych.
-
Opisywanie wszystkich składników które nie są obecnie ponumerowane. Symbole, które nie posiadają jeszcze numeracji posiadają symbol '?' w oznaczeniach.
-
Opisywanie całej hierarchii (opcja Użyj całego schematu).
-
Opisywanie tylko bieżącego arkusza (opcja Użyj tylko bieżącej strony).
The Reset, but do not swap any annotated multi-unit parts option keeps all existing associations between symbols with multiple units. For example, U2A and U2B may be reannotated to U1A and U1B respectively but they will never be reannotated to U1A and U2A, nor to U2B and U2A. This is useful if you want to ensure that pin groupings are maintained.
Opcje zawarte w grupie Wybór numeracji pozwalają wybrać metodę jaka zostanie wykorzystana podczas przypisywania numerów referencyjnych wewnątrz każdego arkusza w hierarchii.
Za wyjątkiem szczególnych przypadków, automatyczna numeracja ma zastosowanie do całego projektu (wszystkie arkusze) oraz tylko do nowych elementów, jeśli nie chcemy modyfikować poprzedniej numeracji.
Wybór numeracji daje możliwość wybrania metody użytej podczas obliczania numerów referencyjnych:
-
Użyj pierwszego wolnego numeru na schemacie: elementy są notowane od 1 (dla każdego prefiksu odniesienia). Jeżeli istnieje poprzednia numeracja, wybrane zostaną liczby jeszcze nie wykorzystywane.
-
Rozpocznij od numer arkusza*100 i użyj pierwszego wolnego numeru: Numeracja zostanie rozpoczęta od liczby 101 dla arkusza 1, 201 dla arkusza 2, itd… Jeśli istnieje więcej niż 99 pozycji z tym samym prefiksem w nazwie odniesienia (np. U czy R) wewnątrz arkusza 1, numeracja będzie kontynuowana od liczby 200 i dalej, a numeracja w arkuszu 2 rozpocznie się od następnego wolnej liczby.
-
Rozpocznij od numer arkusza*1000 i użyj pierwszego wolnego numeru: Numeracja rozpocznie się od liczby 1001 dla arkusza 1, 2001 dla arkusza 2, itd…
8.2. Przykłady
8.2.1. Zmiany porządku numeracji
Poniższy obrazek ukazuje 5 umieszczonych elementów, lecz jeszcze nie ponumerowanych.

Po przeprowadzeniu automatycznej numeracji:
Z sortowaniem elementów według pozycji w osi X:

Z sortowaniem elementów według pozycji w osi Y:

Można zauważyć, że cztery bramki układu 74LS00 zostały zawarte w układzie U1, a piąta bramka została przypisana do następnego układu U2.
8.2.2. Wybór numeracji
Poniżej znajdują się wyniki procesu numeracji dla arkusza numer 2, w zależności od wybranej opcji:

Opcja "Rozpocznij od numer arkusza*100 i użyj pierwszego wolnego numeru" daje następujący efekt.

Opcja "Rozpocznij od numer arkusza*1000 i użyj pierwszego wolnego numeru" daje następujący efekt.

9. Assigning Footprints
Before routing a PCB, footprints need to be selected for every component that will be assembled on the board. Footprints define the copper connections between physical components and the routed traces on a circuit board.
Some symbols come with footprints pre-assigned, but for many symbols there are multiple possible footprints, so the user needs to select the appropriate one.
KiCad offers several ways to assign footprints:
-
Właściwości symbolu
-
Symbol Properties Dialog
-
Symbol Fields Table
-
-
While placing symbols
-
Footprint Assignment Tool
Each method will be explained below. Which to use is a matter of preference; one method may be more convenient depending on the situation. All of these methods are equivalent in that they store the name of the selected footprint in the symbol’s Footprint
field.
Note
|
The Footprint Library Table needs to be configured before footprints can be assigned. For information on configuring the Footprint Library Table, please see the PCB Editor manual. |
9.1. Assigning Footprints in Symbol Properties
A symbol’s Footprint
field can be edited directly in the symbol’s Properties window.
Clicking the button in the
Footprint
field opens the Footprint Library Browser, which shows the available footprints and footprint libraries. Single clicking a footprint name selects the footprint and displays it in the preview pane on the right, while double clicking on a footprint closes the browser and sets the symbol’s Footprint
field to the selected footprint.
9.1.1. Assigning Footprints with the Symbol Fields Table
Rather than editing the properties of each symbol individually, the Symbol Fields Table can be used to view and edit the properties of all symbols in the design in one place. This includes assigning footprints by editing the Footprint
field of each symbol.
The Symbol Fields Table is accessed with Tools → Edit Symbol Fields…, or with the button on the top toolbar.
The Footprint
field behaves the same here as in the Symbol Properties window: it can be edited directly, or footprints can be selected visually with the Footprint Library Browser.
For more information on the Symbol Fields Table, see the section on editing symbol properties.
9.2. Assigning Footprints While Placing Symbols
Footprints can be assigned to symbols when the symbol is first added to the schematic.
Some symbols are defined with a default footprint. These symbols will have this footprint preassigned when they are added to the schematic. The default footprint is shown in the Add Symbol dialog. For symbols without a default symbol defined, the footprint dropdown will say "No default footprint", and the footprint preview canvas will say "No footprint specified".
Symbols can have footprint filters that specify which footprints are appropriate to use with that symbol. If footprint filters are defined for the selected symbol, all footprints that match the footprint filters will appear as options in the footprint dropdown. The selected footprint will be displayed in the preview canvas and will be assigned to the symbol when the symbol is added to the schematic.
Note
|
Footprint options will not appear in the footprint dropdown unless the footprint libraries are loaded. Footprint libraries are loaded the first time the Footprint Editor or Footprint Library Browser are opened in a session. |
For more information on footprint filters, see the Symbol Editor Documentation.
9.3. Assigning Footprints with the Footprint Assignment Tool
The Footprint Assignment Tool allows you to associate symbols in your schematic to footprints used when laying out the printed circuit board. It provides footprint list filtering, footprint viewing, and 3D component model viewing to help ensure the correct footprint is associated with each component.
Components can be assigned to their corresponding footprints manually or automatically by creating equivalence files (.equ files). Equivalence files are lookup tables associating each component with its footprint.
Run the tool with Tools → Assign Footprints…, or by clicking the icon in the top toolbar.
9.3.1. Footprint Assignment Tool Overview
The image below shows the main window of the Footprint Assignment Tool.

-
The left pane contains the list of available footprint libraries associated with the project.
-
The center pane contains the list of symbols in the schematic.
-
The right pane contains the list of available footprints loaded from the project footprint libraries.
-
The bottom pane describes the filters that have been applied to the footprint list and prints information about the footprint selected in the rightmost pane.
The top toolbar contains the following commands:
Transfer the current footprint associations to the schematic. |
|
Edit the global and project footprint library tables. |
|
View the selected footprint in the footprint viewer. |
|
Select the previous symbol without a footprint association. |
|
Select the next symbol without a footprint association. |
|
Undo last edit. |
|
Redo last edit. |
|
Perform automatic footprint association using an equivalence file. |
|
Delete all footprint assignments. |
|
Filter footprint list by footprint filters defined in the selected symbol. |
|
Filter footprint list by pin count of the selected symbol. |
|
Filter footprint list by selected library. |
The following table lists the keyboard commands for the Footprint Assignment Tool:
Right Arrow / Tab |
Activate the pane to the right of the currently activated pane. Wrap around to the first pane if the last pane is currently activated. |
Left Arrow |
Activate the pane to the left of the currently activated pane. Wrap around to the last pane if the first pane is currently activated. |
Up Arrow |
Select the previous item of the currently selected list. |
Down Arrow |
Select the next item of the currently selected list. |
Page Up |
Select the item one full page upwards of the currently selected item. |
Page Down |
Select the item one full page downwards of the currently selected item. |
Home |
Select the first item of the currently selected list. |
End |
Select the last item of the currently selected list. |
9.3.2. Manually Assigning Footprints with the Footprint Assignment Tool
To manually associate a footprint with a component, first select a component in the component (middle) pane. Then select a footprint in the footprint (right) pane by double-clicking on the name of the desired footprint. The footprint will be assigned to the selected component, and the next component without an assigned footprint is automatically selected.
Note
|
If no footprints appear in the footprint pane, check that the footprint filter options are correctly applied. |
When all components have footprints assigned to them, click the OK button to save the assignments and exit the tool. Alternatively, click Cancel to discard the updated assignments, or Apply, Save Schematic & Continue to save the new assignments without exiting the tool.
Filtrowanie listy footprintów
There are four filtering options which restrict which footprints are displayed in the footprint pane. The filtering options are enabled and disabled with three buttons and a textbox in the top toolbar.
-
: Activate filters that can be defined in each symbol. For example, an opamp symbol might define filters that show only SOIC and DIP footprints.
-
: Only show footprints that match the selected symbol’s pin count.
-
: Only show footprints from the library selected in the left pane.
-
Entering text in the textbox hides footprints that do not match the text. This filter is disabled when the box is empty.
When all filters are disabled, the full footprint list is shown.
The applied filters are described in the bottom pane of the window, along with the number of footprints that meet the selected filters. For example, when the symbol’s footprint filters and pin count filters are enabled, the bottom pane prints the footprint filters and pin count:

Multiple filters can be used at once to help narrow down the list of possibly appropriate footprints in the footprint pane. The symbols in KiCad’s standard library define footprint filters that are designed to be used in combination with the pin count filter.
9.3.3. Automatically Assigning Footprints with the Footprint Assignment Tool
The Footprint Assignment Tool allows you to store footprint assignments in an external file and load the assignments later, even in a different project. This allows you to automatically associate symbols with the appropriate footprints.
The external file is referred to as an equivalence file, and it stores a mapping of a symbol value to a corresponding footprint. Equivalence files typically use the .equ
file extension. Equivalence files are plain text files with a simple syntax, and must be created by the user using a text editor. The syntax is described below.
You can select which equivalence files to use by clicking Preferences → Manage Footprint Association Files in the Footprint Assignment Tool.

-
Add new equivalence files by clicking the Add button.
-
Remove the selected equivalence file by clicking the Remove button.
-
Change the priority of equivalence files by clicking the Move Up and Move Down buttons. If a symbol’s value is found in multiple equivalence files, the footprint from the last matching equivalence file will override earlier equivalence files.
-
Open the selected equivalence file by clicking the Edit File button.
Relevant environment variables are shown at the bottom of the window. When the Relative path option is checked, these environment variables will automatically be used to make paths to selected equivalence files relative to the project or footprint libraries.
Once the desired equivalence files have been loaded in the correct order, automatic footprint association can be performed by clicking the button in the top toolbar of the Footprint Assignment Tool.
All symbols with a value found in a loaded equivalence file will have their footprints automatically assigned. However, symbols that already have footprints assigned will not be updated.
Format plików
Equivalence files consist of one line for each symbol value. Each line has the following structure:
'<symbol value>' '<footprint library>:<footprint name>'
Each name/value must be surrounded by single quotes ('
) and separated by one or more spaces. Lines starting with #
are comments.
For example, if you want all symbols with the value LM4562
to be assigned the footprint Package_SO:SOIC-8_3.9x4.9_P1.27mm
, the line in the equivalence file should be:
'LM4562' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm'
Poniżej znajduje się przykład pliku przypisań:
#regulators 'LP2985LV' 'Package_TO_SOT_SMD:SOT-23-5_HandSoldering' ```
==== Podgląd bieżącego footprintu
The Footprint Assignment Tool contains a footprint viewer. Clicking the image:images/icons/icon_footprint_browser_24.png[footprint viewer icon] button in the top toolbar launches the footprint viewer and shows the selected footprint.
image::images/pl/footprint_view.png[scaledwidth="90%", alt="Podgląd footprintu"]
The top toolbar contains the following commands:
[width="90%", cols="10%,90%"]
|=======================================================================
|image:images/icons/refresh_24.png[]
|Refresh view
|image:images/icons/zoom_in_24.png[]
|Zoom in
|image:images/icons/zoom_out_24.png[]
|Zoom out
|image:images/icons/zoom_fit_in_page_24.png[]
|Zoom to fit drawing in display area
|image:images/icons/shape_3d_24.png[]
|Show 3D viewer
|=======================================================================
The left toolbar contains the following commands:
[width="90%", cols="10%,90%"]
|=======================================================================
|image:images/icons/cursor_24.png[]
|Use the select tool
|image:images/icons/measurement_24.png[]
|Interactively measure between two points
|image:images/icons/grid_24.png[]
|Display grid dots or lines
|image:images/icons/polar_coord_24.png[]
|Switch between polar and cartesian coordinate systems
|image:images/icons/unit_inch_24.png[]
|Use inches
|image:images/icons/unit_mil_24.png[]
|Display coordinates in mils (1/1000 of an inch)
|image:images/icons/unit_mm_24.png[]
|Display coordinates in millimeters
|image:images/icons/cursor_shape_24.png[]
|Toggle display of full-window crosshairs
|image:images/icons/pad_number_24.png[]
|Toggle between drawing pads in sketch or normal mode
|image:images/icons/pad_sketch_24.png[]
|Toggle between drawing pads in normal mode or outline mode
|image:images/icons/text_sketch_24.png[]
|Toggle between drawing text in normal mode or outline mode
|image:images/icons/show_mod_edge_24.png[]
|Toggle between drawing graphic lines in normal mode or outline mode
|=======================================================================
===== Podgląd bieżącego modelu 3D
Clicking the image:images/icons/shape_3d_24.png[3D Viewer icon] button opens the footprint in the 3D model viewer.
NOTE: If a 3D model does not exist for the current footprint, only the footprint itself will be shown in the 3D Viewer.
image::images/pl/3d_window.png[scaledwidth="90%", alt="Podgląd 3D"]
The 3D Viewer is described in the xref:../pcbnew/pcbnew_inspecting.adoc#threed-viewer[PCB Editor manual].
:experimental:
[[erc]]
== Kontrola reguł projektowych - Electrical Rules Check
=== Wprowadzenie
The Electrical Rules Check (ERC) tool performs an automatic check of your schematic. The ERC checks for any errors in your sheet, such as unconnected pins, unconnected hierarchical symbols, shorted outputs, etc. ERC output is reported as errors or warnings depending on the severity of the issue detected.
Naturally, an automatic check is not infallible, and it is not possible to detect all design errors. Such a check is still very useful, because it allows you to detect many oversights and small errors. All detected issues should be checked and addressed before proceeding.
The quality of the ERC is directly related to the care taken in declaring electrical pin properties during symbol library creation.
image::images/pl/dialog_erc.png[alt="Główne okno narzędzia ERC", scaledwidth="70%"]
[[how-to-use-erc]]
=== Używanie narzędzia testu ERC
ERC can be started by clicking on the icon image:images/icons/erc_24.png[ERC icon].
Ostrzeżenia są umieszczane na elementach schematu, które spowodowały błąd ERC (piny lub etykiety).
[NOTE]
====
* Kliknięcie w informację o błędzie w tym oknie dialogowym spowoduje, że kursor zostanie przeniesiony do miejsca w którym znajduje się znacznik tego błędu na schemacie.
* Na schemacie, kliknięcie prawym klawiszem na znacznik błędu umożliwia dostęp do informacji o powodzie błędu.
====
You can also delete error markers from the dialog and set specific ERC messages to be suppressed by using the right-click context menu.
image::images/erc_ignore_warning.png[alt="Ignore ERC warning", scaledwidth="70%"]
[[example-of-erc]]
=== Przykład testu ERC
image::images/erc_pointers.png[alt="Znaczniki ERC", scaledwidth="70%"]
Na powyższym obrazku można zobaczyć cztery błędy:
* Dwa wyjścia zostały błędnie połączone razem (czerwona strzałka).
* Dwa wejścia zostały niepodłączone (zielone strzałki).
* Jest też błąd na niewidocznym pinie zasilania, wskazujący na brak flagi zasilania (zielona strzałka na górze).
[[displaying-diagnostics]]
=== Wyświetlanie informacji o znaczniku błędu
Klikając prawym klawiszem na znaczniku błędu można z menu podręcznego wywołać okienko z informacją o tym błędzie ERC.
image::images/pl/erc_pointers_info.png[alt="Informacje o znacznikach ERC", scaledwidth="70%"]
wybierając polecenie "Informacja o znaczniku błędu" można zobaczyć dokładniejszy jego opis.
image::images/pl/erc_pointers_message.png[alt="ERC pointers message", scaledwidth="80%"]
[[power-pins-and-power-flags]]
=== Piny zasilania i flagi zasilania
It is common to have an error or a warning on power pins, as shown in the example above, even though all seems normal. This happens in designs where the power is provided through connectors or other components that are not marked as power sources (unlike a regulator output, which is represented by a Power Out pin). Therefore ERC won't detect any Power Out pin connected to the net and will determine it is not driven by a power source.
To avoid this warning, connect the net to `PWR_FLAG` symbol on such a power net as shown in the following example. The `PWR_FLAG` symbol is found in the `power` symbol library. Alternatively, connect any power output pin to the net; `PWR_FLAG` is simply a symbol with a single power output pin.
image::images/eeschema_power_pins_and_flags.png[alt="Power pins and flags", scaledwidth="70%"]
Po umieszczeniu na szynach zasilania tej flagi, błędy związane z brakiem sterowania powinny zniknąć podczas ponownej kontroli ERC.
Ground nets often need a `PWR_FLAG` as well, because voltage regulators have outputs declared as power outputs, but their ground pins are typically marked as power inputs. Therefore grounds can appear unconnected to a source unless a `PWR_FLAG` symbol is used.
[[configuration]]
=== Konfiguracja
The _Pin Conflicts Map_ panel in Schematic Setup allows you to configure connectivity rules to define electrical conditions for errors and warnings based on what types of pins are connected to each other
image::images/pl/dialog_erc_opts.png[alt="Schematic ERC Pin Conflicts Map", scaledwidth="70%"]
Poszczególne reguły mogą zostać zmienione poprzez kliknięcie na wybranym polu na powyższej matrycy. Kolejne kliknięcia pozwalają na wybranie: brak błędu (zielony), ostrzeżenie (żółty, W) i błąd (czerwony, E). Zmiany odbywają się w zamkniętym cyklu, zatem aby wrócić do poprzedniego stanu należy ponownie kliknąć (jedno- lub dwukrotnie).
image::images/eeschema_erc_severity.png[alt="Schematic ERC severity settings", scaledwidth="70%"]
The _Violation Severity_ panel in Schematic Setup lets you configure what types of ERC messages should be reported as Errors, Warnings or ignored.
[[erc-report-file]]
=== Plik raportu ERC
Plik raportu ERC może zostać wygenerowany i zapisany poprzez zaznaczenie opcji "Utwórz plik raportu". Pliki takie są zapisywane z rozszerzeniem `.erc`. Poniżej znajduje się przykład zawartości takiego pliku:
----------------------------------------------------------------------
Raport ERC (2011-09-24 08:46:02)
***** Arkusz / (Root)
ErrType(2): Pin nie jest podłączony (i nie ma przypisanego symbolu "Niepołączone")
@ (3,2500 ",3,0500 "): Element U10, Pin 5 (input) nie jest połączony
ErrType(3): Pin podłączony do innych pinów ale nie ma pinu sterującego
@ (3,6500 ",2,4000 "): Element U10, pin 7 (power_in) nie jest sterowany (sieć 6)
ErrType(3): Pin podłączony do innych pinów ale nie ma pinu sterującego
@ (3,6500 ",2,7500 "): Element U10, pin 14 (power_in) nie jest sterowany (sieć 5)
ErrType(5): BŁĄD: Konflikt pomiędzy pinami.
@ (4,4500 ",2,2000 "): Element U10: Pin 3 (output) połączony z
@ (4,4500 ",2,9500 "): Element U10: Pin 6 (output) (sieć 2)
ErrType(2): Pin nie jest podłączony (i nie ma przypisanego symbolu "Niepołączone")
@ (3,2500 ",2,8500 "): Element U10, Pin 4 (input) nie jest połączony
>> Błędy ERC: 5
----------------------------------------------------------------------
:experimental:
[[schematic-to-pcb]]
== Transfer Schematic to PCB
=== Przegląd zagadnień
Use the Update PCB from Schematic tool to sync design information from the Schematic Editor to the Board Editor. The tool can be accessed with **Tools** -> **Update PCB from Schematic** (kbd:[F8]) in both the schematic and board editors. You can also use the image:images/icons/update_pcb_from_sch_24.png[Update PCB from Schematic icon] icon in the top toolbar of the Board Editor.
NOTE: Update PCB from Schematic is the preferred way to transfer design information from the schematic to the PCB. In older versions of KiCad, the equivalent process was to export a netlist from the Schematic Editor and import it into the Board Editor. It is no longer necessary to use a netlist file.
image::images/update_pcb_from_schematic.png[alt="Update PCB from schematic", scaledwidth="70%"]
The tool adds the footprint for each symbol to the board and transfers updated schematic information to the board. In particular, the board's net connections are updated to match the schematic.
The changes that will be made to the PCB are listed in the _Changes To Be Applied_ pane. The PCB is not modified until you click the **Update PCB** button.
You can show or hide different types of messages using the checkboxes at the bottom of the window. A report of the changes can be saved to a file using the **Save...** button.
=== Options
The tool has several options to control its behavior.
[cols="1,2"]
|===
| Option | Description
| Re-link footprints to schematic symbols based on their reference designators
| Footprints are normally linked to schematic symbols via a unique identifier
created when the symbol is added to the schematic. A symbol's unique identifier
cannot be changed.
If checked, each footprint in the PCB will be re-linked to the symbol that has
the same reference designator as the footprint.
If unchecked, footprints and symbols will be linked by unique identifier as
usual, rather than by reference designator. Each footprint's reference
designator will be updated to match the reference designator of its linked
symbol.
This option should generally be left unchecked. It is useful for specific
workflows that rely on changing the links between schematic symbols and
footprints, such as refactoring a schematic for easier layout or replicating
layout between identical channels of a design.
| Delete footprints with no symbols
| If checked, any footprint in the PCB without a corresponding symbol in the
schematic will be deleted from the PCB. Footprints with the "Not in schematic"
attribute will be unaffected.
If unchecked, footprints without a corresponding symbol will not be deleted.
| Replace footprints with those specified in the schematic
| If checked, footprints in the PCB will be replaced with the footprint that is
specified in the corresponding schematic symbol.
If unchecked, footprints that are already in the PCB will not be changed, even
if the schematic symbol is updated to specify a different footprint.
|===
:experimental:
[[plot-and-print]]
== Drukowanie i rysowanie schematów na drukarkach lub ploterach
=== Wprowadzenie
Obie możliwości przenoszenia schematów na papier (bądź inny materiał drukarski) są dostępne z menu *Plik*.
image::images/pl/eeschema_file_menu_plot.png[alt="eeschema_file_menu_plot_png", scaledwidth="60%"]
The supported output formats are Postscript, PDF, SVG, DXF and HPGL. You can also directly print to your printer.
[[common-printing-commands]]
=== Polecenia wspólne
Rysuj bieżącą stronę:: generuje plik wyjściowy wyłącznie dla bieżącego arkusza.
Rysuj wszystkie strony:: pozwala na narysowanie całej hierarchii (pliki są generowane dla każdego z arkusza).
[[plot-in-postscript]]
=== Rysuj w formacie PostScript
To polecenie pozwala na stworzenie rysunku schematu w formacie PostScript.
image::images/pl/eeschema_plot_postscript.png[alt="eeschema_plot_postscript_png", scaledwidth="70%"]
Nazwa pliku wyjściowego składała się będzie z nazwy arkusza i rozszerzenia `.ps`. Można dodatkowo odznaczyć opcję: "Rysuj opis arkusza i tabliczkę tytułową". Jest to użyteczne w przypadku tworzenia pliku postscriptowego do późniejszej obróbki (format `.eps`), aby umożliwić wstawianie rysunków do procesora tekstu.
[[plot-in-pdf]]
=== Rysuj w formacie PDF
image::images/pl/eeschema_plot_pdf.png[alt="eeschema_plot_pdf.png", scaledwidth="70%"]
Pozwala na utworzenie rysunku schematu w formacie PDF. Nazwa pliku wyjściowego składała się będzie z nazwy arkusza i rozszerzenia `.pdf`.
[[plot-in-svg]]
=== Rysuj w formacie SVG
image::images/pl/eeschema_plot_svg.png[alt="eeschema_plot_svg_png", scaledwidth="70%"]
To polecenie pozwala na utworzenie plików, które zawierać będą skalowane rysunki wektorowe - SVG. Nazwa pliku wyjściowego składała się będzie z nazwy arkusza i rozszerzenia `.svg`.
[[plot-in-dxf]]
=== Rysuj w formacie DXF
image::images/pl/eeschema_plot_dxf.png[alt="eeschema_plot_dxf_png", scaledwidth="70%"]
Pozwala na utworzenie plików z rysunkami CAD używając popularnego formatu DXF. Nazwa pliku wyjściowego składała się będzie z nazwy arkusza i rozszerzenia `.dxf`.
[[plot-in-hpgl]]
=== Rysowanie w formacie HPGL
Polecenie pozwala na stworzenie pliku dla plotera obsługującego format HPGL. W tym formacie można zdefiniować kilka parametrów dla plotera:
* Rozmiar arkusza.
* Punkt bazowy.
* Rozmiar pisaka (w mm).
Po wybraniu tego polecenia otworzy się następujące okno:
image::images/pl/eeschema_plot_hpgl.png[alt="eeschema_plot_hpgl_png", scaledwidth="70%"]
Nazwa pliku wyjściowego składała się będzie z nazwy arkusza i rozszerzenia `.plt`.
[[sheet-size-selection]]
==== Wybór rozmiaru arkusza
Normalnie jest zaznaczona opcja _Rozmiar schematu_. W takim przypadku, rozmiar arkusza plotera będzie taki sam jak rozmiar arkusza określony w Eeschema, a skala będzie wynosić 1. Jeśli wybrano inny rozmiar arkusza docelowego (od A4 do A0, lub A do E), to skala zostanie automatycznie dobrana, tak aby rysunek wypełnił w pełni stronę plotera.
[[offset-adjustments]]
==== Ustawienie przesunięcia strony
Dla wszystkich standardowych rozmiarów, można przenieść punkt zerowy by wyrównać rysunek na środku strony. Niektóre plotery mogą posiadać punkt początkowy w centrum pola roboczego lub w dolnym lewym rogu, dlatego wymagane jest poprawne ustawienie tej opcji, zgodnie z możliwościami plotera.
Mówiąc ogólnie:
* Dla ploterów posiadających punkt początkowy na środku arkusza, przesunięcie musi być ujemne i ustawione w połowie rozmiaru arkusza.
* Dla ploterów posiadających punkt początkowy w lewym dolnym narożniku, przesunięcie musi być ustawione na 0.
By ustawić przesunięcie należy:
* Wybrać rozmiar arkusza.
* Ustawić przesunięcie X oraz Y.
* Zaakceptować dane o przesunięciu.
[[print-on-paper]]
=== Drukowanie
This command, available via the icon image:images/icons/print_button_24.png[Print icon], allows you to visualize and generate design files for the standard printer.
image::images/pl/print_dialog.png[alt="Drukowanie na drukarkach", scaledwidth="50%"]
Pierwsza opcja "Drukuj opis arkusza i tabliczkę" pozwala na wydrukowanie także odnośników arkuszy oraz tabliczki która znajduje się w prawym dolnym rogu.
Opcja "Drukuj jako czarno-biały" wymusza zaś wydruk monochromatyczny. Opcja ta zwykle jest stosowana, gdy do wydruków jest używana laserowa drukarka monochromatyczna, ponieważ większość drukarek dla jasnych kolorów korzysta z dość nieczytelnej symulacji pół-tonalnej. Stąd też połączenia, rysowane kolorem zielonym, mogłyby stać się mało widoczne.
:experimental:
[[symbol-editor]]
== Symbol Editor
[[general-information-about-symbol-libraries]]
=== Podstawowe informacje na temat bibliotek
A symbol is a schematic element which contains a graphical representation, electrical connections, and text fields describing the symbol. Symbols used in a schematic are stored in symbol libraries. KiCad provides a symbol editing tool that allows you to create libraries, add, delete or transfer symbols between libraries, export symbols to files, and import symbols from files. The symbol editing tool provides a simple way to manage symbols and symbol libraries.
[[symbol-library-overview]]
=== Biblioteki symboli - Przegląd
Biblioteka symboli składa się z jednego bądź wielu komponentów. Generalnie, komponenty są logicznie pogrupowane biorąc pod uwagę np. ich funkcję, typ, bądź producenta.
Symbol znajdujący się w bibliotece jest złożony z:
* Graphical items (lines, circles, arcs, text, etc.) that determine how symbol looks in a schematic.
* Pins which have both graphic properties (line, clock, inverted, low level active, etc.) and electrical properties (input, output, bidirectional, etc.) used by the Electrical Rules Check (ERC) tool.
* Pól (tekstowych) takich jak oznaczenie, wartość, nazwa footprintu potrzebna do wstawienia go na płytkę.
Symbols can be derived from another symbol in the same library. Derived symbols share the base symbol's graphical shape and pin definitions, but can override the base symbol's property fields (value, footprint, footprint filters, datasheet, description, etc.). Derived symbols can be used to define symbols that are similar to a base part. For example, 74LS00, 74HC00, and 7437 symbols could all be derived from a 7400 symbol. In previous versions of KiCad, derived symbols were referred to as aliases.
Do poprawnego tworzenia symboli wymagane jest:
* Zdefiniowanie ogólnych właściwości: czy posiada wiele części składowych.
* Defining if the symbol has an alternate body style (also known as a De Morgan representation).
* Projektowanie wyglądu (z wyjątkiem pinów) z użyciem linii, prostokątów, okręgów, wielokątów i tekstów.
* Dodanie wyprowadzeń, dokładnie określając ich projekt graficzny, nazwę oraz numer pinu, a także ich właściwości elektryczne (wejście, wyjście, trzy-stanowe, port zasilania, itp.).
* Determining if the symbol should be derived from another symbol with the same graphical design and pin definition.
* Dodanie pól w razie potrzeby (jest to opcjonalne, nazwa modułu jest wykorzystywany przez oprogramowanie PCB) i/lub określenie ich widoczności.
* Dokumentowanie składnika np. poprzez dodanie słów kluczowych i adresu dokumentacji w sieci lub na lokalnym nośniku.
* Zapisanie go do wybranej biblioteki.
[[symbol-library-editor-overview]]
=== Edytor bibliotek symboli - Przegląd
Widok głównego okna edytora bibliotek symboli znajduje się poniżej. Edytor składa się z trzech pasków narzędzi z szybkim dostępem do podstawowych narzędzi i obszaru podglądu/edycji komponentów. Nie wszystkie polecenia są dostępne na paskach narzędzi, ale można uzyskać do nich dostęp za pomocą menu.
image::images/pl/libedit_main_window.png[alt="Symbol Editor main window", scaledwidth="95%"]
[[main-toolbar]]
==== Główny pasek menu
The main tool bar is located at the top of the main window. It consists of the undo/redo commands, zoom commands, symbol properties dialogs, and unit/representation management controls.
image::images/toolbar_libedit.png[alt="Symbol Editor toolbar", scaledwidth="95%"]
[width="100%", cols="20%,80%"]
|=======================================================================
|image:images/icons/new_component_24.png[New symbol icon]
|Create a new symbol in the selected library.
|image:images/icons/save_24.png[Save icon]
|Save the currently selected library. All modified symbols in the library will
be saved.
|image:images/icons/undo_24.png[Undo icon]
|Undo last edit.
|image:images/icons/redo_24.png[Redo icon]
|Redo last undo.
|image:images/icons/refresh_24.png[Refresh icon]|Refresh display.
|image:images/icons/zoom_in_24.png[Zoom in icon]|Zoom in.
|image:images/icons/zoom_out_24.png[Zoom out icon]|Zoom out.
|image:images/icons/zoom_fit_in_page_24.png[Zoom to fit page icon]|Zoom to fit symbol in display.
|image:images/icons/zoom_selection_24.png[Zoom to selection icon]|Zoom to fit selection.
|image:images/icons/rotate_ccw_24.png[Rotate counterclockwise icon]|Rotate counter-clockwise.
|image:images/icons/rotate_cw_24.png[Rotate clockwise icon]|Rotate clockwise.
|image:images/icons/mirror_h_24.png[Mirror horizontally icon]|Mirror horizontally.
|image:images/icons/mirror_v_24.png[Mirror vertically icon]|Mirror vertically.
|image:images/icons/part_properties_24.png[Symbol properties icon]
|Edit the current symbol properties.
|image:images/icons/pin_table_24.png[Pin table icon]
|Edit the symbol's pins in a tablular interface.
|image:images/icons/datasheet_24.png[Datasheet icon]
|Open the symbol's datasheet. The button will be disabled if no datasheet is
defined for the current symbol.
|image:images/icons/erc_24.png[ERC icon]
|Test the current symbol for design errors.
|image:images/icons/morgan1_24.png[Normal body style icon]
|Select the normal body style. The button is disabled if the current
symbol does not have an alternate body style.
|image:images/icons/morgan2_24.png[Alternate body style icon]
|Select the alternate body style. The button is disabled if the current
symbol does not have an alternate body style.
|image:images/toolbar_libedit_part.png[alt="Unit dropdown",width="80%"]
|Select the unit to display. The drop down control will be disabled if
the current symbol is not derived from a symbol with multiple units.
|image:images/icons/pin2pin_24.png[Synchronized pin edit mode icon]
|Enable synchronized pins edit mode. When this mode is enabled, any pin
modifications are propagated to all other symbol units. Pin number changes are
not propagated. This mode is automatically enabled for symbols with multiple
interchangeable units and cannot be enabled for symbols with only one unit.
|image:images/icons/add_symbol_to_schematic_24.png[Add symbol to schematic icon]
Insert current symbol into schematic.
|=======================================================================
[[element-toolbar]]
==== Pasek narzędzi edycji symbolu
The vertical toolbar located on the right hand side of the main window allows you to place all of the elements required to design a symbol.
[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/cursor_24.png[Cursor icon]
|Select tool. Right-clicking with the select tool opens the context menu
for the object under the cursor. Left-clicking with the select tool
displays the attributes of the object under the cursor in the message
panel at the bottom of the main window. Double-left-clicking with the
select tool will open the properties dialog for the object under the
cursor.
|image:images/icons/pin_24.png[Pin icon]
|Pin tool. Left-click to add a new pin.
|image:images/icons/text_24.png[Text icon]
|Graphical text tool. Left-click to add a new graphical text item.
|image:images/icons/add_rectangle_24.png[Add rectangle icon]
|Rectangle tool. Left-click to begin drawing the first corner of a
graphical rectangle. Left-click again to place the opposite corner of
the rectangle.
|image:images/icons/add_circle_24.png[Add circle icon]
|Circle tool. Left-click to begin drawing a new graphical circle from
the center. Left-click again to define the radius of the circle.
|image:images/icons/add_arc_24.png[Add arc icon]
|Arc tool. Left-click to begin drawing a new graphical arc item from the
first arc end point. Left-click again to define the second arc end point.
Adjust the radius by dragging the arc center point.
|image:images/icons/add_line_24.png[Add line icon]
|Connected line tool. Left-click to begin drawing a new graphical line item
in the current symbol. Left-click for each additional connected line.
Double-left-click to complete the line.
|image:images/icons/anchor_24.png[Anchor icon]
|Anchor tool. Left-click to set the anchor position of the symbol.
|image:images/icons/delete_cursor_24.png[Delete icon]
|Delete tool. Left-click to delete an object from the current symbol.
|=======================================================================
[[options-toolbar]]
==== Pasek opcji
The vertical tool bar located on the left hand side of the main window allows you to set some of the editor drawing options.
[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/grid_24.png[Grid icon]
|Toggle grid visibility on and off.
|image:images/icons/unit_inch_24.png[Inch unit icon]
|Set units to inches.
|image:images/icons/unit_mil_24.png[Millimeter unit icon]
|Set units to mils (0.001 inch).
|image:images/icons/unit_mm_24.png[Millimeter unit icon]
|Set units to millimeters.
|image:images/icons/cursor_shape_24.png[Cursor shape icon]
|Toggle full screen cursor on and off.
|image:images/icons/pin_show_etype_24.png[Show pintype icon]
|Toggle display of pin electrical types.
|image:images/icons/search_tree_24.png[Symbol tree icon]
|Toggle display of libraries and symbols.
|=======================================================================
[[library-selection-and-maintenance]]
=== Wybór bibliotek i zarządzanie nimi
The selection of the current library is possible via the image:images/icons/search_tree_24.png[Symbol tree icon] icon which shows you all available libraries and allows you to select one. When a symbol is loaded or saved, it will be put in this library. The library name of a symbol is the contents of its `Value` field.
[[select-and-save-a-symbol]]
==== Wybór i zapis symbolu
[[symbol-selection]]
===== Wybór symbolu
Clicking the image:images/icons/search_tree_24.png[Symbol tree icon] icon on the left tool bar toggles the treeview of libraries and symbols. Clicking on a symbol opens that symbol.
[NOTE]
Some symbols are derived from other symbols. Derived symbol names are displayed in __italics__ in the treeview. If a derived symbol is opened, its symbol graphics will not be editable. Its symbol fields will be editable as normal. To edit the graphics of a base symbol and all of its derived symbols, open the base symbol.
[[save-a-symbol]]
===== Zapisywanie symbolu
After modification, a symbol can be saved in the current library or a different library.
To save the modified symbol in the current library, click the image:images/icons/save_24.png[Save icon] icon. The modifications will be written to the existing symbol.
NOTE: Saving a modified symbol also saves all other modified symbols in the same library.
To save the symbol changes to a new symbol, click **File** -> **Save As...**. The symbol can be saved in the current library or a different library. A new name can be set for the symbol.
To create a new file containing only the current symbol, click **File** -> **Export** -> **Symbol...**. This file will be a standard library file which will contain only one symbol.
[[creating-library-symbols]]
=== Tworzenie symboli biblliotecznych
[[create-a-new-symbol]]
==== Tworzenie nowego symbolu
A new symbol can be created by clicking the image:images/icons/new_component_24.png[New symbol icon] icon. You will be asked for a number of symbol properties.
* A symbol name (this name is used as the default value for the `Value` field in the schematic editor)
* An optional base symbol to derive the new symbol from. The new symbol will use the base symbol's graphical shape and pin configuration, but other symbol information can be modified in the derived symbol. The base symbol must be in the same library as the new derived symbol.
* The reference designator prefix (`U`, `C`, `R`...).
* The number of units per package, and whether those units are interchangeable (for example a 7400 is made of 4 units per package).
* If an alternate body style (sometimes referred to as a "De Morgan equivalent") is desired.
* Whether the symbol is a power symbol. Power symbols appear in the "Add Power Port" dialog in the Schematic editor, their `Value` fields are not editable in the schematic, they cannot be assigned a footprint and they are not added to the PCB, and they are not included in the bill of materials.
* Whether the symbol should be excluded from the bill of materials.
* Whether the symbol should be excluded from the PCB.
There are also several graphical options.
* The offset between the end of each pin and its pin name.
* Whether the pin number and pin name should be displayed.
* Whether the pin names should be displayed alongside the pins or at the ends of the pins inside the symbol body.
These properties can also be changed later in the <<symbol-properties, Symbol Properties window>>.
image::images/eeschema_new_symbol_properties.png[alt="New symbol properties", scaledwidth="50%"]
Nowy symbol będzie utworzony z użyciem powyższych właściwości i pojawi się w oknie edycyjnym jak pokazano poniżej.
image::images/pl/eeschema_libedit_new.png[alt="Newly created symbol", scaledwidth="95%"]
The blue cross in the center is the symbol anchor, which specifies the symbol origin i.e. the coordinates (0, 0). The anchor can be repositioned by selecting the image:images/icons/anchor_24.png[Anchor icon] icon and clicking on the new desired anchor position.
[[create-a-symbol-from-another-symbol]]
==== Tworzenie nowego symbolu na podstawie innego
Często symbol który chcemy utworzyć bardzo przypomina inny symbol, który znajduje się już w bibliotece. W tym przypadku łatwiej jest zmodyfikować istniejący symbol.
* Załadować symbol który będzie użyty jako wzorcowy.
* Save a new copy of the symbol using **File** -> **Save As...**. The Save As dialog will prompt for a name for the new symbol and the library to save it in.
* Wykonać niezbędne edycje.
* Save the modified symbol.
[[symbol-properties]]
==== Właściwości symbolu
Symbol properties are set when the symbol is created but they can be modified at any point. To change the symbol properties, click on the image:images/icons/part_properties_24.png[Symbol properties icon] icon to show the dialog below.
image::images/pl/eeschema_properties_for_symbol.png[alt="Właściwości symbolu", scaledwidth="60%"]
It is important to correctly set the number of units per package and the alternate symbolic representation, if enabled, because when pins are edited or created the corresponding pins for each unit will be affected. If you change the number of units per package after pin creation and editing, there will be additional work to specify the pins and graphics for the new unit. Nevertheless, it is possible to modify these properties at any time.
The graphic options "Show pin number" and "Show pin name" define the visibility of the pin number and pin name text. The option "Place pin names inside" defines the pin name position relative to the pin body. The pin names will be displayed inside the symbol outline if the option is checked. In this case the "Pin Name Position Offset" property defines the shift of the text away from the body end of the pin. A value from 0.02 to 0.05 inches is usually reasonable.
Poniższy przykład pokazuje symbol, w którym opcja "Umieść nazwę pinu wewnątrz" została odznaczona. Należy zwrócić uwagę na położenie nazw i numerów pinów.
image::images/pl/eeschema_uncheck_pin_name_inside.png[alt="Place pin name inside unchecked", scaledwidth="95%"]
[[symbol-name-description-and-keywords]]
===== Symbol Name, Description, and Keywords
The symbol's name is the same as the `Value` field. When the symbol name is changed the value also changes, and vice versa. The symbol's name in the library also changes accordingly.
The symbol description should contain a brief description of the component, such as the component function, distinguishing features, and package options. The keywords should contain additional terms related to the component. Keywords are used primarily to assist in searching for the symbol.
image::images/eeschema_add_symbol_search_description.png[alt="Searching for a symbol in the add a symbol dialog", scaledwidth="65%"]
A symbol's name, description, and keywords are all used when searching for symbols in the Symbol Editor and Add a Symbol dialog. The description and keywords are displayed in the Symbol Library Browser and Add a Symbol dialog.
[[footprint-filters]]
===== Footprint Filters
The footprint filters tab is used to define which footprints are appropriate to use with the symbol. The filters can be applied in the Footprint Assignment tool so that only appropriate footprints are displayed for each symbol.
Multiple footprint filters can be defined. Footprints that match any of the filters will be displayed; if no filters are defined, then all footprints will be displayed.
Filters can use wildcards: `\*` matches any number of characters, including zero, and `?` matches zero or one characters. For example, `SOIC-*` would match the `SOIC-8_3.9x4.9mm_P1.27mm` footprint as well as any other footprint beginning with `SOIC-`. The filter `SOT?23` matches `SOT23` as well as `SOT-23`.
image::images/pl/eeschema_libedit_footprint.png[alt="Footprint filters", scaledwidth="70%"]
[[symbols-with-alternate-symbolic-representation]]
==== Symbole wieloczęściowe i podwójna reprezentacja
If the symbol has an alternate body style defined, one body style must be selected for editing at a time. To edit the normal representation, click the image:images/icons/morgan1_24.png[Normal representation icon] icon.
To edit the alternate representation, click on the image:images/icons/morgan2_24.png[Alternate representation icon] icon. Use the image:images/toolbar_libedit_alias.png[images/toolbar_libedit_part.png] dropdown shown below to select the unit you wish to edit.
image::images/pl/eeschema_libedit_select_unit.png[alt="Selecting a symbol unit", scaledwidth="80%"]
[[graphical-elements]]
=== Elementy graficzne symbolu
Graphical elements create the visual representation of a symbol and contain no electrical connection information. Graphical elements are created with the following tools:
* Linie i linie łamane są definiowane poprzez punkty startowe i końcowe.
* Prostokąty są definiowane przez punkty dwóch przeciwległych narożników.
* Okręgi są definiowane przez punkt centralny i promień.
* Łuki są definiowane przez punkt początkowy i końcowy łuku oraz ich punkt centralny. Kąt rozwarcia łuku może zawierać się w przedziale 0° to 180°.
Pasek narzędzi po prawej stronie głównego okna pozwala na umieszczanie w polu roboczym wszystkich podstawowych elementów graficznych potrzebnych do zaprojektowania symbolu w obu jego postaciach.
[[graphical-element-membership]]
==== Przynależność elementów graficznych
Każdy z elementów graficznych (linia, łuk, okrąg, itd.) może być określona jako część wspólna dla wszystkich części składowych lub stylów, albo specyficzna dla nich. Opcje dotyczące przynależności elementu graficznego można łatwo wyświetlić klikając prawym klawiszem myszy nad wybranym elementem wywołując menu podręczne. Poniżej przykład menu dla elementu typu linia.
image::images/pl/eeschema_libedit_context_menu.png[alt="Graphic line context menu", scaledwidth="80%"]
Można także kliknąć dwukrotnie na taki element by zmodyfikować jego właściwości. Poniżej przykład dla elementu typu linia łamana.
image::images/pl/eeschema_libedit_polyline_properties.png[alt="Graphic line properties", scaledwidth="50%"]
Głównymi właściwościami dla elementów graficznych są:
* "Line width" defines the width of the element's line in the current drawing units.
* "Fill Style" determines if the shape defined by the graphical element is to be drawn unfilled, background filled, or foreground filled.
* "Common to all units in symbol" determines if the graphical element is drawn for each unit in symbol with more than one unit per package or if the graphical element is only drawn for the current unit.
* "Common to all body styles (De Morgan)" determines if the graphical element is drawn for each symbolic representation in symbols with an alternate body style or if the graphical element is only drawn for the current body style.
[[graphical-text-elements]]
==== Tekst jako grafika w symbolu
The image:images/icons/text_24.png[Text icon] icon allows for the creation of graphical text. Graphical text is automatically oriented to be readable, even when the symbol is mirrored. Please note that graphical text items are not the same as symbol fields.
[[multiple-units-per-symbol-and-alternate-body-styles]]
=== Symbole wieloczęściowe, podwójna reprezentacja symboli
Symbols can have up to two body styles (a standard symbol and an alternate symbol often referred to as a "De Morgan equivalent") and/or have more than one unit per package (logic gates for example). Some symbols can have more than one unit per package each with different symbols and pin configurations.
Consider for instance a relay with two switches, which can be designed as a symbol with three different units: a coil, switch 1, and switch 2. Designing a symbol with multiple units per package and/or alternate body styles is very flexible. A pin or a body symbol item can be common to all units or specific to a given unit or they can be common to both symbolic representation so are specific to a given symbol representation.
By default, pins are specific to a unit and body style. When a pin is common to all units or all body styles, it only needs to be created once. This is also the case for the body style graphic shapes and text, which may be common to each unit, but typically are specific to each body style).
[[example-of-a-symbol-with-multiple-noninterchangeable-units]]
==== Example of a Symbol With Multiple Noninterchangeable Units
For an example of a symbol with multiple units that are not interchangeable, consider a relay with 3 units per package: a coil, switch 1, and switch 2.
The three units are not all the same, so "All units are interchangeable" should be deselected in the Symbol Properties dialog. Alternatively, this option could have been specified when the symbol was initially created.
image::images/pl/eeschema_libedit_not_interchangeable.png[alt="Uncheck all units are interchangeable", scaledwidth="60%"]
===== Unit A
image::images/pl/eeschema_libedit_unit1.png[alt="Relay unit A", scaledwidth="45%"]
===== Unit B
image::images/pl/eeschema_libedit_unit2.png[alt="Relay unit B", scaledwidth="45%"]
===== Unit C
image::images/pl/eeschema_libedit_unit3.png[alt="Relay unit C", scaledwidth="45%"]
Unit A does not have the same symbol and pin layout as Units B and C, so the units are not interchangeable.
NOTE: "Synchronized Pins Edit Mode" can be enabled by clicking the image:images/icons/pin2pin_24.png[Synchronized pins edit mode icon] icon. In this mode, pin modifications are propagated between symbol units; changes made in one unit will be reflected in the other units as well. When this mode is disabled, pin changes made in one unit do not affect other units. This mode is enabled automatically when "All units are interchangeable" is checked, but it can be disabled. The mode cannot be enabled when "All units are interchangeable" is unchecked or when the symbol only has one unit.
[[graphical-symbolic-elements]]
===== Elementy geometryczne w symbolach
Shown below are properties for a graphic body element. In the relay example above, the three units have different symbolic representations. Therefore, each unit was created separately and the graphical body elements have the "Common to all units in symbol" setting disabled.
image::images/pl/eeschema_libedit_disable_common.png[alt="Disable common to all units in symbol", scaledwidth="70%"]
[[pin-creation-and-editing]]
=== Tworzenie i edycja wyprowadzeń (pinów)
You can click on the image:images/icons/pin_24.png[Pin icon] icon to create and insert a pin. The editing of all pin properties is done by double-clicking on the pin or right-clicking on the pin to open the pin context menu. Pins must be created carefully, because any error will have consequences on the PCB design. Any pin already placed can be edited, deleted, and/or moved.
[[pin-overview]]
==== Wyprowadzenia - Informacje podstawowe
A pin is defined by its graphical representation, its name and its number. The pin's name and number can contain letters, numbers, and symbols, but not spaces. For the Electrical Rules Check (ERC) tool to be useful, the pin's electrical type (input, output, tri-state...) must also be defined correctly. If this type is not defined properly, the schematic ERC check results may be invalid.
Ważne uwagi:
* Symbol pins are matched to footprint pads by number. The pin number in the symbol must match the corresponding pad number in the footprint.
* Do not use spaces in pin names and numbers. Spaces will be automatically replaced with underscores (`_`).
* To define a pin name with an inverted signal (overline) use the `~` (tilde) character followed by the text to invert in braces. For example `~{FO}O` would display [overline]#FO# O.
* If the pin name is empty, the pin is considered unnamed.
* Pin names can be repeated in a symbol.
* Pin numbers must be unique in a symbol.
[[pin-properties]]
==== Właściwości wyprowadzeń
image::images/pl/eeschema_libedit_pin_properties.png[alt="Pin properties", scaledwidth="95%"]
Okno z właściwościami pinu pozwala na zmiany charakterystycznych cech wyprowadzeń. Okno to ukazuje się zawsze podczas tworzenia nowego pinu, albo gdy w pin zostanie kliknięty dwukrotnie myszą. Jego zawartość pozwala na zdefiniowanie lub modyfikację parametrów takich jak:
* The pin name and text size.
* The pin number and text size.
* The pin length.
* The pin electrical type and graphical style.
* Przynależność do części i alternatywnej reprezentacji.
* Pin visibility.
* <<alternate-pin-definitions,Alternate pin definitions>>.
[[pin-graphic-styles]]
==== Pin Graphic Styles
Shown in the figure below are the different pin graphic styles. The choice of graphic style does not have any influence on the pin's electrical type.
image::images/pl/eeschema_libedit_pin_properties_style.png[alt="Pin graphic styles", scaledwidth="95%"]
[[pin-electrical-types]]
==== Typy elektryczne
Choosing the correct electrical type is important for the schematic ERC tool. ERC will check that pins are connected appropriately, for example ensuring that input pins are driven and power inputs receive power from an appropriate source.
[width="100%", cols="25%,75%"]
|=======================================================================
| Pin Type | Description
| Input | A pin which is exclusively an input.
| Output | A pin which is exclusively an output.
| Bidirectional | A pin that can be either an input or an output, such as a
microcontroller data bus pin.
| Tri-state | A three state output pin (high, low, or high impedance)
| Passive | A passive symbol pin: resistors, connectors, etc.
| Free | A pin that can be freely connected to any other pin without electrical
concerns.
| Unspecified | A pin for which the ERC check does not matter.
| Power input | A symbol's power pin. As a special case, power input pins that
are marked invisible are automatically connected to the net with the same name.
See the <<creating-power-ports, Power Ports section>> for more information.
| Power output | A pin that provides power to other pins, such as a regulator
output.
| Open collector | An open collector logic output.
| Open emitter | An open emitter logic output.
| Unconnected | A pin that should not be connected to anything.
|=======================================================================
[[pushing-pin-properties-to-other-pins]]
==== Pushing Pin Properties to Other Pins
You can apply the length, name size, or number size of a pin to the other pins in the symbol by right clicking the pin and selecting **Push Pin Length**, **Push Pin Name Size**, or **Push Pin Number Size**, respectively.
image::images/pl/eeschema_libedit_pin_context_menu.png[alt="Pin context menu", scaledwidth="60%"]
[[defining-pins-for-multiple-units-and-alternate-symbolic-representations]]
==== Określanie pinów w symbolach wieloczęściowych i podwójna reprezentacja
Symbols with multiple units and/or graphical representations are particularly problematic when creating and editing pins. The majority of pins are specific to each symbol unit (because each unit has a different set of pins) and to each body style (because the form and position is different between the normal body style and the alternate form).
The symbol library editor allows the simultaneous creation of pins. By default, changes made to a pin are made for all units of a multiple unit symbol and to both representations for symbols with an alternate symbolic representation. The only exception to this is the pin's graphical type and name, which remain unlinked between symbol units and body styles. This dependency was established to allow for easier pin creation and editing in most cases. This dependency can be disabled by toggling the image:images/icons/pin2pin_24.png[Synchronized pin edit mode icon] icon on the main tool bar. This will allow you to create pins for each unit and representation completely independently.
Pins can be common or specific to different units. Pins can also be common to both symbolic representations or specific to each symbolic representation. When a pin is common to all units, it only has to drawn once. Pins are set as common or specific in the pin properties dialog.
An example is the output pin in the 7400 quad dual input NAND gate. Since there are four units and two symbolic representations, there are eight separate output pins defined in the symbol definition. When creating a new 7400 symbol, unit A of the normal symbolic representation will be shown in the library editor. To edit the pin style in the alternate symbolic representation, it must first be enabled by clicking the image:images/icons/morgan2_24.png[Alternate representation icon] button on the tool bar. To edit the pin number for each unit, select the appropriate unit using the image:images/toolbar_libedit_alias.png[images/toolbar_libedit_alias.png] drop down control.
[[pin-table]]
==== Pin Table
Another way to edit pins is to use the Pin Table, which is accessible via the image:images/icons/pin_table_24.png[Pin table icon] icon. The Pin Table displays all of the pins in the symbol and their properties in a table view, so it is useful for making bulk pin changes.
Any pin property can be edited by clicking on the appropriate cell. Pins can be added and removed with the image:images/icons/small_plus_16.png[Plus icon] and image:images/icons/small_trash_16.png[Trash icon] icons, respectively.
NOTE: Columns of the pin table can be shown or hidden by right-clicking on the header row and checking or unchecking additional columns. Some columns are hidden by default.
The screenshot below shows the pin table for a quad opamp.
image::images/eeschema_libedit_pin_table.png[alt="Pin table", scaledwidth="95%"]
[[alternate-pin-definitions]]
==== Alternate Pin Definitions
Pins can have alternate pin definitions added to them. Alternate pin definitions allow a user to select a different name, electrical type, and graphical style for a pin when the symbol has been placed in the schematic. This can be used for pins that have multiple functions, such as microcontroller pins.
Alternate pin definitions are added in the Pin Properties dialog as shown below. Each alternate definition contains a pin name, electrical type, and graphic style. This microcontroller pin has all of its peripheral functions defined in the symbol as alternate pin names.
image::images/eeschema_libedit_alternate_pin_definitions.png[alt="Alternate pin definitions", scaledwidth="60%"]
Alternate pin definitions are selected in the Schematic Editor once the symbol has been placed in the schematic. The alternate pin is assigned in the Alternate Pin Assignments tab of the Symbol Properties dialog. Alternate definitions are selectable in the dropdown in the Alternate Assignment column.
image::images/eeschema_alternate_pin_assignment_selection.png[alt="Selecting an alternate pin definition", scaledwidth="60%"]
[[symbol-fields]]
=== Pola symboli
All library symbols are defined with four default fields. The reference designator, value, footprint assignment, and datasheet link fields are created whenever a symbol is created or copied. Only the reference designator and value fields are required.
Symbols defined in libraries are typically defined with only these four default fields. Additional fields such as vendor, part number, unit cost, etc. can be added to library symbols but generally this is done in the schematic editor so the additional fields can be applied to all of the symbols in the schematic.
NOTE: A convenient way to create additional empty symbol fields is to use define field name templates. Field name templates define empty fields that are added to each symbol when it is inserted into the schematic. Field name templates can be defined globally (for all schematics) in the Schematic Editor Preferences, or they can be defined locally (specific to each project) in the Schematic Setup dialog.
[[editing-symbol-fields]]
==== Edycja pól symboli
By dokonać edycji istniejącego pola symbolu, należy kliknąć prawym klawiszem na polu tekstowym by wywołać menu kontekstowe pokazane poniżej.
image::images/pl/eeschema_libedit_field_context_menu.png[alt="Symbol field context menu", scaledwidth="35%"]
To add new fields, delete optional fields, or edit existing fields, use the image:images/icons/part_properties_24.png[Component properties icon] icon on the main tool bar to open the <<symbol-properties,Symbol Properties dialog>>.
Fields are text information associated a the symbol. Do not confuse them with text in the graphic representation of a symbol.
Ważne uwagi:
* Modifying the `Value` field changes the name of the symbol. The symbol's name in the library will change when the symbol is saved.
* The Symbol Properties dialog must be used to edit a field that is empty or has the invisible attribute enabled because such fields cannot be clicked on.
* The footprint is defined as an absolute footprint using the `LIBNAME:FOOTPRINTNAME` format where `LIBNAME` is the name of the footprint library defined in the footprint library table (see the "Footprint Library Table" section in the PCB Editor manual) and `FOOTPRINTNAME` is the name of the footprint in the library `LIBNAME`.
[[creating-power-ports]]
=== Power Ports
Power ports, or power symbols, are conventionally used to label a wire as part of a power net, like `VCC`, `+5V`, or `GND`. In the schematic below, the `+3.3V` and `GND` symbols are power ports. In addition to acting as a visual indicator that a net is a power rail, a power port will determine the name of the net it is attached to. This is true even if there is another net label attached to the net; the net name determined by the power symbol overrides any other net names.
image::images/eeschema_power_port_example.png[alt="Power port example", scaledwidth="60%"]
It may be useful to place power symbols in a dedicated library. KiCad's symbol library places power symbols in the `power` library, and users may create libraries to store their own power symbols. If the "Define as power symbol" box is checked in a symbol's properties, that symbol will appear in the Schematic Editor's "Add Power Port" dialog for convenient access.
Power symbols are handled and created the same way as normal symbols, but there are several additional considerations described below. They consist of a graphical symbol and a pin of the type "Power input" that is marked hidden.
Below is an example of a `GND` power symbol.
image::images/pl/eeschema_libedit_power_symbol.png[alt="Editing a power symbol", scaledwidth="95%"]
==== Creating a Power Port Symbol
Power Port symbols consist of a pin of type "Power input" that is marked invisible. Invisible power input pins have a special property of automatically connecting to a net with the same name as the pin name. A net that is wired to an invisible power input pin will therefore be named after the pin, even if there are other net labels on the net. This connection is global.
NOTE: If the power symbol has the "Define as power symbol" property checked, the power input pin does not need to be marked invisible. However, the convention is to make these pins invisible anyway.
image::images/eeschema_libedit_power_symbol_pin.png[alt="Power symbol pin", scaledwidth="60%"]
By utworzyć port zasilania, należy wykonać następujące kroki:
* Add a pin of type "Power input", with "Visible" unchecked, and the pin named according to the desired net. Make the pin number `1`, the length `0`, and set the graphic style to "Line". The pin name establishes the connection to the net; in this case the pin will automatically connect to the net `GND`. The pin number, length, and line style do not matter electrically.
* Place the pin on the symbol anchor.
* Use the shape tools to draw the symbol graphics.
* Set the symbol value. The symbol value does not matter electrically, but it is displayed in the schematic. To eliminate confusion, it should match the pin name (which determines the connected net name).
* Check the "Define as power symbol" box in Symbol Properties window. This makes the symbol appear in the "Add Power Port" dialog, makes the `Value` field read-only in the schematic, prevents the symbol from being assigned a footprint, and excludes the symbol from the board, BOM, and netlists.
* Set the symbol reference and uncheck the "Show" box. The reference text is not important except for the first character, which should be `\#`. For the power port shown above, the reference could be `#GND`. Symbols with references that begin with `#` are not added to the PCB, are not included in Bill of Materials exports or netlists, and they cannot be assigned a footprint in the footprint assignment tool. If a power port's reference does not begin with `#`, the character will be inserted automatically when the annotation or footprint assignment tools are run.
An easier method to create a new power port symbol is to use another symbol as a starting point, <<creating-a-symbol-from-another-symbol,as described earlier>>.
NOTE: When modifying an existing power port symbol, make sure to rename the pin name so that the new symbol connects to the appropriate power net.
:experimental:
[[viewlib]]
== Przeglądanie bibliotek symboli
=== Wprowadzenie
The Symbol Library Browser allows you to quickly examine the content of symbol libraries. The Symbol Library Viewer can be accessed by clicking image:images/icons/library_browser_24.png[Library viewer icon] icon on the main toolbar, **View** -> **Symbol Library Browser...**, or clicking **Select With Browser** in the "Choose Symbol" window.
image::images/pl/eeschema_viewlib_choose.png[alt="Okno przeglądarki", scaledwidth="60%"]
[[viewlib---main-screen]]
=== Ekran główny
image::images/pl/eeschema_viewlib_select_library.png[alt="Wybór biblioteki", scaledwidth="95%"]
By sprawdzić zawartość biblioteki należy wybrać ją z listy znajdującej się po lewej stronie okna. Wszystkie symbole zostaną pokazane na drugiej liście. Należy wybrać nazwę symbolu by móc go podejrzeć w panelu po prawej stronie.
image::images/pl/eeschema_viewlib_select_component.png[alt="Wybór symbolu", scaledwidth="95%"]
[[viewlib-top-toolbar]]
=== Pasek narzędzi Przeglądarki Bibliotek Symboli
Podstawowy pasek narzędzi wygląda następująco.
image::images/pl/toolbar_viewlib.png[alt="images/pl/toolbar_viewlib.png", scaledwidth="95%"]
Dostępne polecenia to:
[width="100%", cols="20%,80%"]
|=======================================================================
|image:images/icons/library_browser_24.png[Symbol selection icon]
|Selection of the symbol which can be also selected in the displayed
list.
|image:images/icons/lib_previous_24.png[Previous symbol icon]
|Display previous symbol.
|image:images/icons/lib_next_24.png[Next symbol icon]
|Display next symbol.
|image:images/icons/refresh_24.png[] image:images/icons/zoom_in_24.png[]
image:images/icons/zoom_out_24.png[] image:images/icons/zoom_fit_in_page_24.png[]
|Zoom tools.
|image:images/icons/morgan1_24.png[] image:images/icons/morgan2_24.png[]
|Selection of the representation (normal or alternate) if an alternate
representation exists.
|image:images/toolbar_viewlib_part.png[alt="images/toolbar_viewlib_part.png",width="70%"]
|Selection of the unit for symbols that contain multiple units.
|image:images/icons/datasheet_24.png[icons/datasheet_png]
|If they exist, display the associated documents.
|image:images/icons/add_symbol_to_schematic_24.png[Add symbol to schematic icon]
|Close the browser and place the selected symbol in the schematic.
|=======================================================================
:experimental:
[[create-a-netlist]]
== Generowanie list sieci
=== Przegląd zagadnień
A netlist is a file which describes electrical connections between symbol pins. These connections are referred to as nets. Netlist files contain:
* A list of symbols and their pins.
* A list of connections (nets) between symbol pins.
Many different netlist formats exist. Sometimes the symbols list and the list of nets are two separate files. This netlist is fundamental in the use of schematic capture software, because the netlist is the link with other electronic CAD software, such as:
* Oprogramowanie do trasowania obwodów drukowanych (PCB).
* Symulatory układów.
* Programmable logic (FPGA, CPLD, etc.) compilers.
KiCad supports several netlist formats:
* KiCad format, which can be imported by the KiCad PCB Editor. However, the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"Update PCB from Schematic">> tool should be used instead of importing a KiCad netlist into the PCB editor.
* OrCAD PCB2 format, for designing PCBs with OrCAD.
* CADSTAR format, for designing PCBs with CADSTAR.
* Spice format, for use with various external circuit simulators.
NOTE: In KiCad version 5.0 and later, it is not necessary to create a netlist for transferring a design from the schematic editor to the PCB editor. Instead, use the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"Update PCB from Schematic">> tool.
[[netlist-formats]]
=== Format listy sieci
Netlists are exported with the Export Netlist dialog (**File**->**Export**->**Netlist...**).
Several netlist formats are available, and are selectable with the tabs at the top of the window. Some netlist formats have options.
Clicking the **Export Netlist** button prompts for a netlist filename and saves the netlist.
[NOTE]
Netlist generation can take up to several minutes for large schematics.
Custom generators can be added by clicking the **Add Generator...** button. Custom generators are external tools that are called by KiCad, for example Python scripts or XSLT stylesheets. For more information on custom netlist generators, see <<adding-new-netlist-generators,the section on adding custom netlist generators>>.
==== KiCad Netlist Format
image::images/eeschema_netlist_dialog_kicad.png[alt="KiCad netlist export", scaledwidth="70%"]
The KiCad netlist exporter does not have any options.
NOTE: In KiCad version 5.0 and later, it is not necessary to create a netlist for transferring a design from the schematic editor to the PCB editor. Instead, use the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"Update PCB from Schematic">> tool.
==== OrCAD PCB2 Netlist Format
image::images/eeschema_netlist_dialog_orcad.png[alt="OrCAD netlist export", scaledwidth="70%"]
The OrCAD netlist exporter does not have any options.
==== CADSTAR Netlist Format
image::images/eeschema_netlist_dialog_cadstar.png[alt="CADSTAR netlist export", scaledwidth="70%"]
The CADSTAR netlist exporter does not have any options.
==== Spice Netlist Format
image::images/pl/eeschema_netlist_dialog_spice.png[alt="Spice netlist export", scaledwidth="70%"]
The Spice netlist format offers several options.
When the *Reformat passive symbol values* box is checked, passive symbol values will be adjusted to be compatible with Spice. Specifically:
* `μ` and `M` as unit prefixes are replaced with `u` and `Meg`, respectively
* Units are removed (e.g. `4.7kΩ` is changed to `4.7k`)
* Values in RKM format are rewritten to be Spice-compatible (e.g. `4u7` is changed to `4.7u`)
The Spice netlist exporter also provides an easy way to simulate the generated netlist with an external simulator. This can be useful for running a simulation without using <<eeschema_simulator.adoc#simulator,KiCad's internal ngspice simulator>>, or for running an ngspice simulation with options that are not supported by KiCad's simulator tool.
Enter the path to the external simulator in the text box, with `%I` representing the generated netlist. Click the **Create Netlist and Run Simulator Command** button to generate the netlist and automatically run the simulator.
NOTE: The default simulator command (`spice "%I"`) must be adjusted to point to a simulator installed on your system.
For more information on the contents of Spice netlists, see the <<spice-netlists,Spice netlist section>>.
[[netlist-examples]]
=== Przykłady list sieci
Below is the schematic from the `sallen_key` project included in KiCad's simulation demos.
image::images/eeschema_netlist_schematic.png[alt="sallen_key demo schematic", scaledwidth="95%"]
The KiCad format netlist for this schematic is as follows:
----
(export (version "E")
(design
(source "/usr/share/kicad/demos/simulation/sallen_key/sallen_key.kicad_sch")
(date "Sun 01 May 2022 03:14:05 PM EDT")
(tool "Eeschema (6.0.4)")
(sheet (number "1") (name "/") (tstamps "/")
(title_block
(title)
(company)
(rev)
(date)
(source "sallen_key.kicad_sch")
(comment (number "1") (value ""))
(comment (number "2") (value ""))
(comment (number "3") (value ""))
(comment (number "4") (value ""))
(comment (number "5") (value ""))
(comment (number "6") (value ""))
(comment (number "7") (value ""))
(comment (number "8") (value ""))
(comment (number "9") (value "")))))
(components
(comp (ref "C1")
(value "100n")
(libsource (lib "sallen_key_schlib") (part "C") (description ""))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-00005789077d"))
(comp (ref "C2")
(value "100n")
(fields
(field (name "Fieldname") "Value")
(field (name "SpiceMapping") "1 2")
(field (name "Spice_Primitive") "C"))
(libsource (lib "sallen_key_schlib") (part "C") (description ""))
(property (name "Fieldname") (value "Value"))
(property (name "Spice_Primitive") (value "C"))
(property (name "SpiceMapping") (value "1 2"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-00005789085b"))
(comp (ref "R1")
(value "1k")
(fields
(field (name "Fieldname") "Value")
(field (name "SpiceMapping") "1 2")
(field (name "Spice_Primitive") "R"))
(libsource (lib "sallen_key_schlib") (part "R") (description ""))
(property (name "Fieldname") (value "Value"))
(property (name "SpiceMapping") (value "1 2"))
(property (name "Spice_Primitive") (value "R"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-0000578906ff"))
(comp (ref "R2")
(value "1k")
(fields
(field (name "Fieldname") "Value")
(field (name "SpiceMapping") "1 2")
(field (name "Spice_Primitive") "R"))
(libsource (lib "sallen_key_schlib") (part "R") (description ""))
(property (name "Fieldname") (value "Value"))
(property (name "SpiceMapping") (value "1 2"))
(property (name "Spice_Primitive") (value "R"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-000057890691"))
(comp (ref "U1")
(value "AD8051")
(fields
(field (name "Spice_Lib_File") "ad8051.lib")
(field (name "Spice_Model") "AD8051")
(field (name "Spice_Netlist_Enabled") "Y")
(field (name "Spice_Primitive") "X"))
(libsource (lib "sallen_key_schlib") (part "Generic_Opamp") (description ""))
(property (name "Spice_Primitive") (value "X"))
(property (name "Spice_Model") (value "AD8051"))
(property (name "Spice_Lib_File") (value "ad8051.lib"))
(property (name "Spice_Netlist_Enabled") (value "Y"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-00005788ff9f"))
(comp (ref "V1")
(value "AC 1")
(libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-000057336052"))
(comp (ref "V2")
(value "DC 10")
(fields
(field (name "Fieldname") "Value")
(field (name "Spice_Node_Sequence") "1 2")
(field (name "Spice_Primitive") "V"))
(libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
(property (name "Fieldname") (value "Value"))
(property (name "Spice_Primitive") (value "V"))
(property (name "Spice_Node_Sequence") (value "1 2"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-0000578900ba"))
(comp (ref "V3")
(value "DC 10")
(fields
(field (name "Fieldname") "Value")
(field (name "Spice_Node_Sequence") "1 2")
(field (name "Spice_Primitive") "V"))
(libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
(property (name "Fieldname") (value "Value"))
(property (name "Spice_Primitive") (value "V"))
(property (name "Spice_Node_Sequence") (value "1 2"))
(property (name "Sheetname") (value ""))
(property (name "Sheetfile") (value "sallen_key.kicad_sch"))
(sheetpath (names "/") (tstamps "/"))
(tstamps "00000000-0000-0000-0000-000057890232")))
(libparts
(libpart (lib "sallen_key_schlib") (part "C")
(footprints
(fp "C?")
(fp "C_????_*")
(fp "C_????")
(fp "SMD*_c")
(fp "Capacitor*"))
(fields
(field (name "Reference") "C")
(field (name "Value") "C"))
(pins
(pin (num "1") (name "") (type "passive"))
(pin (num "2") (name "") (type "passive"))))
(libpart (lib "sallen_key_schlib") (part "Generic_Opamp")
(fields
(field (name "Reference") "U")
(field (name "Value") "Generic_Opamp"))
(pins
(pin (num "1") (name "+") (type "input"))
(pin (num "2") (name "-") (type "input"))
(pin (num "3") (name "V+") (type "power_in"))
(pin (num "4") (name "V-") (type "power_in"))
(pin (num "5") (name "") (type "output"))))
(libpart (lib "sallen_key_schlib") (part "R")
(footprints
(fp "R_*")
(fp "Resistor_*"))
(fields
(field (name "Reference") "R")
(field (name "Value") "R"))
(pins
(pin (num "1") (name "") (type "passive"))
(pin (num "2") (name "") (type "passive"))))
(libpart (lib "sallen_key_schlib") (part "VSOURCE")
(fields
(field (name "Reference") "V")
(field (name "Value") "VSOURCE")
(field (name "Fieldname") "Value")
(field (name "Spice_Primitive") "V")
(field (name "Spice_Node_Sequence") "1 2"))
(pins
(pin (num "1") (name "") (type "input"))
(pin (num "2") (name "") (type "input")))))
(libraries
(library (logical "sallen_key_schlib")
(uri "/usr/share/kicad/demos/simulation/sallen_key/sallen_key_schlib.kicad_sym")))
(nets
(net (code "1") (name "/lowpass")
(node (ref "C1") (pin "1") (pintype "passive"))
(node (ref "U1") (pin "2") (pinfunction "-") (pintype "input"))
(node (ref "U1") (pin "5") (pintype "output")))
(net (code "2") (name "GND")
(node (ref "C2") (pin "2") (pintype "passive"))
(node (ref "V1") (pin "2") (pintype "input"))
(node (ref "V2") (pin "2") (pintype "input"))
(node (ref "V3") (pin "1") (pintype "input")))
(net (code "3") (name "Net-(C1-Pad2)")
(node (ref "C1") (pin "2") (pintype "passive"))
(node (ref "R1") (pin "1") (pintype "passive"))
(node (ref "R2") (pin "2") (pintype "passive")))
(net (code "4") (name "Net-(C2-Pad1)")
(node (ref "C2") (pin "1") (pintype "passive"))
(node (ref "R2") (pin "1") (pintype "passive"))
(node (ref "U1") (pin "1") (pinfunction "+") (pintype "input")))
(net (code "5") (name "Net-(R1-Pad2)")
(node (ref "R1") (pin "2") (pintype "passive"))
(node (ref "V1") (pin "1") (pintype "input")))
(net (code "6") (name "VDD")
(node (ref "U1") (pin "3") (pinfunction "V+") (pintype "power_in"))
(node (ref "V2") (pin "1") (pintype "input")))
(net (code "7") (name "VSS")
(node (ref "U1") (pin "4") (pinfunction "V-") (pintype "power_in"))
(node (ref "V3") (pin "2") (pintype "input")))))
----
In Spice format, the netlist is as follows:
----
.title KiCad schematic
.include "ad8051.lib"
XU1 Net-_C2-Pad1_ /lowpass VDD VSS /lowpass AD8051
C2 Net-_C2-Pad1_ GND 100n
C1 /lowpass Net-_C1-Pad2_ 100n
R2 Net-_C2-Pad1_ Net-_C1-Pad2_ 1k
R1 Net-_C1-Pad2_ Net-_R1-Pad2_ 1k
V1 Net-_R1-Pad2_ GND AC 1
V2 VDD GND DC 10
V3 GND VSS DC 10
.ac dec 10 1 1Meg
.end
----
[[notes-on-netlists]]
=== Uwagi odnośnie list sieci
[[netlist-name-precautions]]
==== Zalecane środki ostrożności
Many software tools that use netlists do not accept spaces in component names, pins, nets, or other fields. Avoid using spaces in pins, labels, names, and value fields of components to ensure maximum compatibility.
In the same way, special characters other than letters and numbers can cause problems. Note that this limitation is not related to KiCad, but to the netlist formats that can then become untranslatable by other software that reads those netlist files.
[[spice-netlists]]
==== Spice netlists
Spice simulators expect simulation commands (`.PROBE`, `.AC`, `.TRAN`, etc.) to be included in the netlist.
Any text line included in the schematic diagram starting with a period (`.`) will be included in the netlist. If a text object contains multiple lines, only the lines beginning with a period will be included.
`.include` directives for including model library files are automatically added to the netlist based on the Spice model settings for the symbols in the schematic.
[[other-formats]]
=== Inne formaty
KiCad supports custom netlist generators for exporting netlists in other formats. Some examples of netlist generators are given in the <<eeschema_creating_customized_netlists_and_bom_files.adoc#creating-customized-netlists-and-bom-files,custom netlist generators section>>.
A netlist generator is a script or program that converts the intermediate netlist file created by KiCad into the desired netlist format. The intermediate netlist file contains all of the netlist information required to create an arbitrary netlist for the schematic. Python and XSLT are commonly used tools to create custom netlist generators.
[[adding-new-netlist-generators]]
==== Adding new netlist generators
New netlist generators are added by clicking the **Add Generator...** button.
image::images/pl/eeschema_netlist_dialog_add_plugin.png[alt="Custom Netlist Generator", scaledwidth="40%"]
New generators require a name and a command. The name is shown in the tab label, and the command is run whenever the **Export Netlist** button is clicked.
When the netlist is generated, KiCad creates an intermediate XML file which contains all of the netlist information from the schematic. The generator command is then run in order to transform the intermediate netlist into the desired netlist format.
The netlist command must be set up properly so that the netlist generator script takes the intermediate netlist file as input and outputs the desired netlist file. The `%I` argument represents the input intermediate netlist filename and the `%O` argument represents the output netlist filename. The exact netlist command will depend on the generator script used.
[[command-line-format]]
==== Format linii poleceń
Consider the following example which uses `xsltproc` to generate a netlist in PADS ASC format. `xsltproc` converts the intermediate netlist using the `netlist_form_pads-pcb.asc.xsl` stylesheet to define the output format:
`xsltproc -o %O.net /usr/share/kicad/plugins/netlist_form_pads-pcb.asc.xsl %I`
The purpose of each part of the command is as follows:
[width="100%", cols="58%,42%"]
|=======================================================================
|`xsltproc` |A tool to convert an XML file (the intermediate netlist) according
to an XSLT stylesheet.
|`-o %O.net` |Output filename. `%O` is replaced with the name of the
intermediate netlist file, which is `<schematic name>.xml`. Therefore in this
example the complete output filename is `<schematic name>.xml.net`. An arbitrary
output filename can be specified if desired with `-o <filename>`.
|`/usr/share/kicad/plugins/netlist_form_pads-pcb.asc.xsl` |XSLT stylesheet which
determines how the output is formatted. This particular stylesheet is included
with KiCad, but custom stylesheets can also be created.
|`%I` |Input (intermediate netlist) filename. `%I` is replaced with the name of
the intermediate netlist file, which is `<schematic name>.xml`.
|=======================================================================
For netlist generators that do not use `xsltproc`, the generator command will differ.
[[intermediate-netlist-file-format]]
==== Format pośredniej listy sieci
See the <<eeschema_creating_customized_netlists_and_bom_files.adoc#creating-customized-netlists-and-bom-files,custom netlist generators section>> for more information about netlist generators, a description of the intermediate netlist format, and some examples of netlist generators.
:experimental:
[[creating-customized-netlists-and-bom-files]]
== Tworzenie własnych list sieci i plików BOM
[[intermediate-netlist-file]]
=== Plik pośredniej listy sieci
BOM files and netlist files can be converted from an Intermediate netlist file created by KiCad.
Plik ten jest zbudowany z tagów XML i nosi nazwę pliku pośredniego listy sieci. Ponieważ zawiera on jednak wiele danych na temat komponentów schematu, może być też wykorzystywany do tworzenia list materiałowych BOM lub innych raportów - nie tylko list sieci.
W zależności od formatu wyjściowego (BOM, nowe listy sieci), tylko niektóre sekcje tego pliku będą wykorzystywane w trakcie przetwarzania.
[[schematic-sample]]
==== Przykładowy schemat
image::images/schematic-sample.png[alt="Przykładowy schemat", scaledwidth="95%"]
[[the-intermediate-netlist-file-sample]]
==== Przykład pośredniej listy sieci
Odpowiednia dla przedstawionego schematu pośrednia lista sieci (używając składni XML) jest pokazana poniżej.
-----------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<export version="D">
<design>
<source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
<date>29/08/2010 20:35:21</date>
<tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
</design>
<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
<comp ref="U2">
<value>74LS74</value>
<libsource lib="74xx" part="74LS74"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E20BA</tstamp>
</comp>
<comp ref="U1">
<value>74LS04</value>
<libsource lib="74xx" part="74LS04"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E20A6</tstamp>
</comp>
<comp ref="C1">
<value>CP</value>
<libsource lib="device" part="CP"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2094</tstamp>
</comp>
<comp ref="R1">
<value>R</value>
<libsource lib="device" part="R"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E208A</tstamp>
</comp>
</components>
<libparts>
<libpart lib="device" part="C">
<description>Condensateur non polarise</description>
<footprints>
<fp>SM*</fp>
<fp>C?</fp>
<fp>C1-1</fp>
</footprints>
<fields>
<field name="Reference">C</field>
<field name="Value">C</field>
</fields>
<pins>
<pin num="1" name="~" type="passive"/>
<pin num="2" name="~" type="passive"/>
</pins>
</libpart>
<libpart lib="device" part="R">
<description>Resistance</description>
<footprints>
<fp>R?</fp>
<fp>SM0603</fp>
<fp>SM0805</fp>
<fp>R?-*</fp>
<fp>SM1206</fp>
</footprints>
<fields>
<field name="Reference">R</field>
<field name="Value">R</field>
</fields>
<pins>
<pin num="1" name="~" type="passive"/>
<pin num="2" name="~" type="passive"/>
</pins>
</libpart>
<libpart lib="conn" part="CONN_4">
<description>Symbole general de connecteur</description>
<fields>
<field name="Reference">P</field>
<field name="Value">CONN_4</field>
</fields>
<pins>
<pin num="1" name="P1" type="passive"/>
<pin num="2" name="P2" type="passive"/>
<pin num="3" name="P3" type="passive"/>
<pin num="4" name="P4" type="passive"/>
</pins>
</libpart>
<libpart lib="74xx" part="74LS04">
<description>Hex Inverseur</description>
<fields>
<field name="Reference">U</field>
<field name="Value">74LS04</field>
</fields>
<pins>
<pin num="1" name="~" type="input"/>
<pin num="2" name="~" type="output"/>
<pin num="3" name="~" type="input"/>
<pin num="4" name="~" type="output"/>
<pin num="5" name="~" type="input"/>
<pin num="6" name="~" type="output"/>
<pin num="7" name="GND" type="power_in"/>
<pin num="8" name="~" type="output"/>
<pin num="9" name="~" type="input"/>
<pin num="10" name="~" type="output"/>
<pin num="11" name="~" type="input"/>
<pin num="12" name="~" type="output"/>
<pin num="13" name="~" type="input"/>
<pin num="14" name="VCC" type="power_in"/>
</pins>
</libpart>
<libpart lib="74xx" part="74LS74">
<description>Dual D FlipFlop, Set & Reset</description>
<docs>74xx/74hc_hct74.pdf</docs>
<fields>
<field name="Reference">U</field>
<field name="Value">74LS74</field>
</fields>
<pins>
<pin num="1" name="Cd" type="input"/>
<pin num="2" name="D" type="input"/>
<pin num="3" name="Cp" type="input"/>
<pin num="4" name="Sd" type="input"/>
<pin num="5" name="Q" type="output"/>
<pin num="6" name="~Q" type="output"/>
<pin num="7" name="GND" type="power_in"/>
<pin num="8" name="~Q" type="output"/>
<pin num="9" name="Q" type="output"/>
<pin num="10" name="Sd" type="input"/>
<pin num="11" name="Cp" type="input"/>
<pin num="12" name="D" type="input"/>
<pin num="13" name="Cd" type="input"/>
<pin num="14" name="VCC" type="power_in"/>
</pins>
</libpart>
</libparts>
<libraries>
<library logical="device">
<uri>F:\kicad\share\library\device.lib</uri>
</library>
<library logical="conn">
<uri>F:\kicad\share\library\conn.lib</uri>
</library>
<library logical="74xx">
<uri>F:\kicad\share\library\74xx.lib</uri>
</library>
</libraries>
<nets>
<net code="1" name="GND">
<node ref="U1" pin="7"/>
<node ref="C1" pin="2"/>
<node ref="U2" pin="7"/>
<node ref="P1" pin="4"/>
</net>
<net code="2" name="VCC">
<node ref="R1" pin="1"/>
<node ref="U1" pin="14"/>
<node ref="U2" pin="4"/>
<node ref="U2" pin="1"/>
<node ref="U2" pin="14"/>
<node ref="P1" pin="1"/>
</net>
<net code="3" name="">
<node ref="U2" pin="6"/>
</net>
<net code="4" name="">
<node ref="U1" pin="2"/>
<node ref="U2" pin="3"/>
</net>
<net code="5" name="/SIG_OUT">
<node ref="P1" pin="2"/>
<node ref="U2" pin="5"/>
<node ref="U2" pin="2"/>
</net>
<net code="6" name="/CLOCK_IN">
<node ref="R1" pin="2"/>
<node ref="C1" pin="1"/>
<node ref="U1" pin="1"/>
<node ref="P1" pin="3"/>
</net>
</nets>
</export>
-----------------------------------------------------------------
[[conversion-to-a-new-netlist-format]]
=== Konwersja na nowy format listy sieci
Poprzez zastosowanie filtra dla tego pliku pośredniego z listą sieci, można wygenerować listę sieci w wielu innych formatach oraz listę materiałową BOM. Ponieważ jest to tylko transformacja jednej postaci tekstu na drugą postać, filtr ten można łatwo napisać w języku PYTHON lub XSLT.
XSLT itself is an XML language very suitable for XML transformations. There is a free program called _xsltproc_ that you can download and install. The xsltproc program can be used to read the Intermediate XML netlist input file, apply a style-sheet to transform the input, and save the results in an output file. Use of xsltproc requires a style-sheet file using XSLT conventions. The full conversion process is handled by KiCad, after it is configured once to run xsltproc in a specific way.
[[xslt-approach]]
=== Konwerter XSLT
Dokumentacja XSL Transformations (XSLT) znajduje się pod adresem:
*http://www.w3.org/TR/xslt*
[[create-a-pads-pcb-netlist-file]]
==== Przykład tworzenia pliku z listą sieci PADS-PCB
Format PADS-PCB posiada dwie sekcje pliku listy sieci.
* Listę footprint-ów.
* Listę sieci (zgrupowane wyprowadzenia według sieci).
Poniżej znajduje się przykład arkusza stylów, na podstawie którego można skonwertować plik pośredni listy do jej odpowiednika w formacie akceptowanym przez PADS-PCB:
-------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to PADS netlist format
Copyright (C) 2010, SoftPLC Corporation.
GPL v2.
How to use:
https://lists.launchpad.net/kicad-developers/msg05157.html
-->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "
"> <!--new line CR, LF -->
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/export">
<xsl:text>*PADS-PCB*&nl;*PART*&nl;</xsl:text>
<xsl:apply-templates select="components/comp"/>
<xsl:text>&nl;*NET*&nl;</xsl:text>
<xsl:apply-templates select="nets/net"/>
<xsl:text>*END*&nl;</xsl:text>
</xsl:template>
<!-- for each component -->
<xsl:template match="comp">
<xsl:text> </xsl:text>
<xsl:value-of select="@ref"/>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test = "footprint != '' ">
<xsl:apply-templates select="footprint"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>unknown</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>&nl;</xsl:text>
</xsl:template>
<!-- for each net -->
<xsl:template match="net">
<!-- nets are output only if there is more than one pin in net -->
<xsl:if test="count(node)>1">
<xsl:text>*SIGNAL* </xsl:text>
<xsl:choose>
<xsl:when test = "@name != '' ">
<xsl:value-of select="@name"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>N-</xsl:text>
<xsl:value-of select="@code"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>&nl;</xsl:text>
<xsl:apply-templates select="node"/>
</xsl:if>
</xsl:template>
<!-- for each node -->
<xsl:template match="node">
<xsl:text> </xsl:text>
<xsl:value-of select="@ref"/>
<xsl:text>.</xsl:text>
<xsl:value-of select="@pin"/>
<xsl:text>&nl;</xsl:text>
</xsl:template>
</xsl:stylesheet>
-------------------------------------------------------------------------------
Finalny plik wyjściowy po zastosowaniu tego arkusza jako filtra dla xsltproc:
------------------
*PADS-PCB*
*PART*
P1 unknown
U2 unknown
U1 unknown
C1 unknown
R1 unknown
*NET*
*SIGNAL* GND
U1.7
C1.2
U2.7
P1.4
*SIGNAL* VCC
R1.1
U1.14
U2.4
U2.1
U2.14
P1.1
*SIGNAL* N-4
U1.2
U2.3
*SIGNAL* /SIG_OUT
P1.2
U2.5
U2.2
*SIGNAL* /CLOCK_IN
R1.2
C1.1
U1.1
P1.3
*END*
------------------
Polecenie które dokonało takiej konwersji wygląda następująco:
-------------------------------------------
kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp
-------------------------------------------
[[create-a-cadstar-netlist-file]]
==== Przykład tworzenia listy sieci programu Cadstar
Format Cadstar składa się z dwóch sekcji.
* Listę footprint-ów.
* Listę sieci (zgrupowane wyprowadzenia według sieci).
Tutaj znajduje się przykład pliku z arkuszem stylu do przeprowadzenie tej konwersji:
-----
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
Copyright (C) 2010, Jean-Pierre Charras.
Copyright (C) 2010, SoftPLC Corporation.
GPL v2.
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "
"> <!--new line CR, LF -->
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<!-- Netlist header -->
<xsl:template match="/export">
<xsl:text>.HEA&nl;</xsl:text>
<xsl:apply-templates select="design/date"/> <!-- Generate line .TIM <time> -->
<xsl:apply-templates select="design/tool"/> <!-- Generate line .APP <eeschema version> -->
<xsl:apply-templates select="components/comp"/> <!-- Generate list of components -->
<xsl:text>&nl;&nl;</xsl:text>
<xsl:apply-templates select="nets/net"/> <!-- Generate list of nets and connections -->
<xsl:text>&nl;.END&nl;</xsl:text>
</xsl:template>
<!-- Generate line .TIM 20/08/2010 10:45:33 -->
<xsl:template match="tool">
<xsl:text>.APP "</xsl:text>
<xsl:apply-templates/>
<xsl:text>"&nl;</xsl:text>
</xsl:template>
<!-- Generate line .APP "eeschema (2010-08-17 BZR 2450)-unstable" -->
<xsl:template match="date">
<xsl:text>.TIM </xsl:text>
<xsl:apply-templates/>
<xsl:text>&nl;</xsl:text>
</xsl:template>
<!-- for each component -->
<xsl:template match="comp">
<xsl:text>.ADD_COM </xsl:text>
<xsl:value-of select="@ref"/>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test = "value != '' ">
<xsl:text>"</xsl:text> <xsl:apply-templates select="value"/> <xsl:text>"</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>""</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>&nl;</xsl:text>
</xsl:template>
<!-- for each net -->
<xsl:template match="net">
<!-- nets are output only if there is more than one pin in net -->
<xsl:if test="count(node)>1">
<xsl:variable name="netname">
<xsl:text>"</xsl:text>
<xsl:choose>
<xsl:when test = "@name != '' ">
<xsl:value-of select="@name"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>N-</xsl:text>
<xsl:value-of select="@code"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>"&nl;</xsl:text>
</xsl:variable>
<xsl:apply-templates select="node" mode="first"/>
<xsl:value-of select="$netname"/>
<xsl:apply-templates select="node" mode="others"/>
</xsl:if>
</xsl:template>
<!-- for each node -->
<xsl:template match="node" mode="first">
<xsl:if test="position()=1">
<xsl:text>.ADD_TER </xsl:text>
<xsl:value-of select="@ref"/>
<xsl:text>.</xsl:text>
<xsl:value-of select="@pin"/>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="node" mode="others">
<xsl:choose>
<xsl:when test='position()=1'>
</xsl:when>
<xsl:when test='position()=2'>
<xsl:text>.TER </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position()>1">
<xsl:value-of select="@ref"/>
<xsl:text>.</xsl:text>
<xsl:value-of select="@pin"/>
<xsl:text>&nl;</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
-----
Poniżej znajduje się plik wyjściowy dla programu Cadstar.
-----
.HEA
.TIM 21/08/2010 08:12:08
.APP "eeschema (2010-08-09 BZR 2439)-unstable"
.ADD_COM P1 "CONN_4"
.ADD_COM U2 "74LS74"
.ADD_COM U1 "74LS04"
.ADD_COM C1 "CP"
.ADD_COM R1 "R"
.ADD_TER U1.7 "GND"
.TER C1.2
U2.7
P1.4
.ADD_TER R1.1 "VCC"
.TER U1.14
U2.4
U2.1
U2.14
P1.1
.ADD_TER U1.2 "N-4"
.TER U2.3
.ADD_TER P1.2 "/SIG_OUT"
.TER U2.5
U2.2
.ADD_TER R1.2 "/CLOCK_IN"
.TER C1.1
U1.1
P1.3
.END
-----
[[create-a-orcadpcb2-netlist-file]]
==== Tworzenie listy sieci programu OrcadPCB2
Ten format posiada tylko jedną sekcję - listę footprintów. Każdy z footprintów zawiera swoją listę wyprowadzeń z odnośnikami do właściwych sieci.
Arkusz stylów wymagany do przeprowadzenia tej konwersji:
-----
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
Copyright (C) 2010, SoftPLC Corporation.
GPL v2.
How to use:
https://lists.launchpad.net/kicad-developers/msg05157.html
-->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "
"> <!--new line CR, LF -->
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<!--
Netlist header
Creates the entire netlist
(can be seen as equivalent to main function in C
-->
<xsl:template match="/export">
<xsl:text>( { Eeschema Netlist Version 1.1 </xsl:text>
<!-- Generate line .TIM <time> -->
<xsl:apply-templates select="design/date"/>
<!-- Generate line eeschema version ... -->
<xsl:apply-templates select="design/tool"/>
<xsl:text>}&nl;</xsl:text>
<!-- Generate the list of components -->
<xsl:apply-templates select="components/comp"/> <!-- Generate list of components -->
<!-- end of file -->
<xsl:text>)&nl;*&nl;</xsl:text>
</xsl:template>
<!--
Generate id in header like "eeschema (2010-08-17 BZR 2450)-unstable"
-->
<xsl:template match="tool">
<xsl:apply-templates/>
</xsl:template>
<!--
Generate date in header like "20/08/2010 10:45:33"
-->
<xsl:template match="date">
<xsl:apply-templates/>
<xsl:text>&nl;</xsl:text>
</xsl:template>
<!--
This template read each component
(path = /export/components/comp)
creates lines:
( 3EBF7DBD $noname U1 74LS125
... pin list ...
)
and calls "create_pin_list" template to build the pin list
-->
<xsl:template match="comp">
<xsl:text> ( </xsl:text>
<xsl:choose>
<xsl:when test = "tstamp != '' ">
<xsl:apply-templates select="tstamp"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>00000000</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test = "footprint != '' ">
<xsl:apply-templates select="footprint"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>$noname</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:value-of select="@ref"/>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test = "value != '' ">
<xsl:apply-templates select="value"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>"~"</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>&nl;</xsl:text>
<xsl:call-template name="Search_pin_list" >
<xsl:with-param name="cmplib_id" select="libsource/@part"/>
<xsl:with-param name="cmp_ref" select="@ref"/>
</xsl:call-template>
<xsl:text> )&nl;</xsl:text>
</xsl:template>
<!--
This template search for a given lib component description in list
lib component descriptions are in /export/libparts,
and each description start at ./libpart
We search here for the list of pins of the given component
This template has 2 parameters:
"cmplib_id" (reference in libparts)
"cmp_ref" (schematic reference of the given component)
-->
<xsl:template name="Search_pin_list" >
<xsl:param name="cmplib_id" select="0" />
<xsl:param name="cmp_ref" select="0" />
<xsl:for-each select="/export/libparts/libpart">
<xsl:if test = "@part = $cmplib_id ">
<xsl:apply-templates name="build_pin_list" select="pins/pin">
<xsl:with-param name="cmp_ref" select="$cmp_ref"/>
</xsl:apply-templates>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!--
This template writes the pin list of a component
from the pin list of the library description
The pin list from library description is something like
<pins>
<pin num="1" type="passive"/>
<pin num="2" type="passive"/>
</pins>
Output pin list is ( <pin num> <net name> )
something like
( 1 VCC )
( 2 GND )
-->
<xsl:template name="build_pin_list" match="pin">
<xsl:param name="cmp_ref" select="0" />
<!-- write pin numner and separator -->
<xsl:text> ( </xsl:text>
<xsl:value-of select="@num"/>
<xsl:text> </xsl:text>
<!-- search net name in nets section and write it: -->
<xsl:variable name="pinNum" select="@num" />
<xsl:for-each select="/export/nets/net">
<!-- net name is output only if there is more than one pin in net
else use "?" as net name, so count items in this net
-->
<xsl:variable name="pinCnt" select="count(node)" />
<xsl:apply-templates name="Search_pin_netname" select="node">
<xsl:with-param name="cmp_ref" select="$cmp_ref"/>
<xsl:with-param name="pin_cnt_in_net" select="$pinCnt"/>
<xsl:with-param name="pin_num"> <xsl:value-of select="$pinNum"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:for-each>
<!-- close line -->
<xsl:text> )&nl;</xsl:text>
</xsl:template>
<!--
This template writes the pin netname of a given pin of a given component
from the nets list
The nets list description is something like
<nets>
<net code="1" name="GND">
<node ref="J1" pin="20"/>
<node ref="C2" pin="2"/>
</net>
<net code="2" name="">
<node ref="U2" pin="11"/>
</net>
</nets>
This template has 2 parameters:
"cmp_ref" (schematic reference of the given component)
"pin_num" (pin number)
-->
<xsl:template name="Search_pin_netname" match="node">
<xsl:param name="cmp_ref" select="0" />
<xsl:param name="pin_num" select="0" />
<xsl:param name="pin_cnt_in_net" select="0" />
<xsl:if test = "@ref = $cmp_ref ">
<xsl:if test = "@pin = $pin_num">
<!-- net name is output only if there is more than one pin in net
else use "?" as net name
-->
<xsl:if test = "$pin_cnt_in_net>1">
<xsl:choose>
<!-- if a net has a name, use it,
else build a name from its net code
-->
<xsl:when test = "../@name != '' ">
<xsl:value-of select="../@name"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>$N-0</xsl:text><xsl:value-of select="../@code"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test = "$pin_cnt_in_net <2">
<xsl:text>?</xsl:text>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
-----
Poniżej znajduje się plik wyjściowy programu OrcadPCB2.
-----------------------------------------------------
( { Eeschema Netlist Version 1.1 29/08/2010 21:07:51
eeschema (2010-08-28 BZR 2458)-unstable}
( 4C6E2141 $noname P1 CONN_4
( 1 VCC )
( 2 /SIG_OUT )
( 3 /CLOCK_IN )
( 4 GND )
)
( 4C6E20BA $noname U2 74LS74
( 1 VCC )
( 2 /SIG_OUT )
( 3 N-04 )
( 4 VCC )
( 5 /SIG_OUT )
( 6 ? )
( 7 GND )
( 14 VCC )
)
( 4C6E20A6 $noname U1 74LS04
( 1 /CLOCK_IN )
( 2 N-04 )
( 7 GND )
( 14 VCC )
)
( 4C6E2094 $noname C1 CP
( 1 /CLOCK_IN )
( 2 GND )
)
( 4C6E208A $noname R1 R
( 1 VCC )
( 2 /CLOCK_IN )
)
)
*
-----------------------------------------------------
[[eeschema-plugins-interface]]
==== Netlist plugins interface
Intermediate Netlist converters can be automatically launched within the Schematic Editor.
[[init-the-dialog-window-1]]
===== Inicjowanie okna dialogowego
Jeśli uruchomimy narzędzie do tworzenia list sieci, to z prawej strony znajdziemy przycisk "Dodaj wtyczkę", służący do konfigurowania i inicjowania nowych zakładek w tym oknie dialogowym.
image::images/pl/eeschema_plugin_add_plugin.png[alt="Dodawanie wtyczki", scaledwidth="50%"]
Poniższy obrazek ukazuje skonfigurowaną wtyczkę PADS-PCB:
image::images/pl/eeschema_plugin_padspcb.png[alt="Wtyczka PADSPCB", scaledwidth="80%"]
[[plugin-configuration-parameters]]
===== Ustawienia nowych wtyczek
The netlist plug-in configuration dialog requires the following information:
* Tytułu zakładki (określająca również nazwę formatu wyjściowego listy sieci).
* Lini poleceń, której przekazanie do systemu operacyjnego uruchomi konwersję.
Przy aktywacji klawisza Lista sieci na takiej zakładce:
1. KiCad creates an intermediate netlist file *.xml, for instance test.xml.
2. KiCad runs the plug-in by reading test.xml and creates test.net.
[[generate-netlist-files-with-the-command-line]]
===== Generowanie list sieci za pomocą linii poleceń
Zakładając, że zostanie użyty program `xsltproc.exe` by zastosować filtr z arkusza stylów na pliku pośrednim listy sieci, `xsltproc.exe` będzie potrzebował odpowiednio skonstruowaną listę parametrów, zgodnie ze wzorcem:
_xsltproc.exe -o <plik wyjściowy> <plik arkusza stylów> <plik wejściowy XML do konwersji>_
Tak więc, używając systemu Windows linia poleceń przekazana do systemu będzie miała postać:
_f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"_
Używając systemu Linux polecenie będzie miało postać:
_xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"_
Where _netlist_form_pads-pcb.xsl_ is the style-sheet that you are applying. Do not forget the double quotes around the file names, this allows them to have spaces after the substitution by KiCad.
Linia poleceń akceptuje parametry dla nazw plików:
Jako parametry obsługiwane są sekwencje:
* %B => nazwa bazowa pliku oraz ścieżka do wybranego pliku wyjściowego, pozbawiona ścieżki oraz rozszerzenia.
* %I => kompletna nazwa pliku oraz ścieżka do tymczasowego pliku wejściowego.
* %O =>kompletna nazwa pliku oraz ścieżka do wybranego przez użytkownika pliku wyjściowego.
_%I_ zostanie zastąpione przez nazwę aktywnego w danej chwili pliku pośredniego.
_%O_ zostanie zastąpiony przez nazwę aktywnego w danej chwili pliku wyjściowego (końcowy plik z listą sieci).
[[command-line-format-example-for-xsltproc]]
===== Format linii poleceń: przykład z xsltproc
Format linii poleceń dla xsltproc jest następujący:
<ścieżka do xsltproc> xsltproc <parametry>
w systemie Windows:
*f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"*
w systemie Linux:
*xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"*
Zakładając, że xsltproc został zainstalowany na komputerze (w systemie Windows, wszystkie pliki są w `kicad/bin`).
[[bill-of-materials-generation]]
==== Generowanie list materiałowych (BOM)
Ponieważ lista pośrednia sieci zawiera wszystkie informacje o zastosowanych komponenetach, można na jej podstawie utworzyć listę materiałową (BOM). Poniżej znajduje się okno z ustawieniami (w systemie Linux) pozwalające utworzyć własny plik BOM:
image::images/pl/bom-netlist-tab.png[alt="Zakładka BOM", scaledwidth="80%"]
Ścieżka do arkusza stylu bom2csv.xsl jest zależna od systemu operacyjnego. Obecnie najlepszym arkuszem stylu XSLT do generowania plików BOM jest `bom2csv.xsl`. Można go zmodyfikować do własnych potrzeb, a jeśli będzie on użyteczny można zaproponować by stał się częścią projektu KiCad.
[[command-line-format-example-for-python-scripts]]
=== Format polecenia: Przykład skryptu Python
Linia poleceń dla Python-a wygląda następująco:
python <plik_skryptu> <nazwa_pliku_wejściowego> <nazwa_pliku_wyjściowego>
w systemie Windows:
*python *.exe f:/kicad/python/my_python_script.py "%I" "%O"*
w systemie Linux:
*python /usr/local/kicad/python/my_python_script.py "%I" "%O"*
Zakładając, że Python jest zainstalowany w systemie.
[[intermediate-netlist-structure]]
=== Plik pośredni listy sieci
Poniższy przykład ukazuje ideę samego pliku pośredniego.
---------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<export version="D">
<design>
<source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
<date>29/08/2010 21:07:51</date>
<tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
</design>
<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
<comp ref="U2">
<value>74LS74</value>
<libsource lib="74xx" part="74LS74"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E20BA</tstamp>
</comp>
<comp ref="U1">
<value>74LS04</value>
<libsource lib="74xx" part="74LS04"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E20A6</tstamp>
</comp>
<comp ref="C1">
<value>CP</value>
<libsource lib="device" part="CP"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2094</tstamp>
<comp ref="R1">
<value>R</value>
<libsource lib="device" part="R"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E208A</tstamp>
</comp>
</components>
<libparts/>
<libraries/>
<nets>
<net code="1" name="GND">
<node ref="U1" pin="7"/>
<node ref="C1" pin="2"/>
<node ref="U2" pin="7"/>
<node ref="P1" pin="4"/>
</net>
<net code="2" name="VCC">
<node ref="R1" pin="1"/>
<node ref="U1" pin="14"/>
<node ref="U2" pin="4"/>
<node ref="U2" pin="1"/>
<node ref="U2" pin="14"/>
<node ref="P1" pin="1"/>
</net>
<net code="3" name="">
<node ref="U2" pin="6"/>
</net>
<net code="4" name="">
<node ref="U1" pin="2"/>
<node ref="U2" pin="3"/>
</net>
<net code="5" name="/SIG_OUT">
<node ref="P1" pin="2"/>
<node ref="U2" pin="5"/>
<node ref="U2" pin="2"/>
</net>
<net code="6" name="/CLOCK_IN">
<node ref="R1" pin="2"/>
<node ref="C1" pin="1"/>
<node ref="U1" pin="1"/>
<node ref="P1" pin="3"/>
</net>
</nets>
</export>
---------------------------------------------------------------
[[general-netlist-file-structure]]
==== Struktura ogólna
Plik pośredni listy sieci posiada 5 sekcji:
* Sekcja nagłówka.
* Sekcja komponentów.
* Sekcja elementów bibliotecznych.
* Sekcja bibliotek.
* Sekcja sieci połączeń.
Cały plik został objęty w tag <export>
--------------------
<export version="D">
...
</export>
--------------------
[[the-header-section]]
==== Sekcja nagłówka
Nagłówek znajduje się w tagu <design>
-----------------------------------------------------------
<design>
<source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
<date>21/08/2010 08:12:08</date>
<tool>eeschema (2010-08-09 BZR 2439)-unstable</tool>
</design>
-----------------------------------------------------------
Sekcja ta może być widoczna jako komentarze.
[[the-components-section]]
==== Sekcja komponentów
Sekcja komponentów zawiera się w tagu <components>
-------------------------------------
<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
</components>
-------------------------------------
Jest to lista na której znajdują się poszczególne komponenty schematu. Każdy komponent jest opisany w następujący sposób:
-------------------------------------
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
-------------------------------------
[width="100%", cols="37%,63%"]
|=======================================================================
|*libsource* |nazwa biblioteki gdzie znaleziono ten komponent.
|*part* |nazwa komponentu wewnątrz tej biblioteki.
|*sheetpath* |ścieżka do arkusza wewnątrz hierarchii: identyfikuje
arkusz w całej hierarchii.
|*tstamps (time stamps)* |odcisk czasowy pliku schematu.
|*tstamp (time stamp)* |odcisk czasowy komponentu.
|=======================================================================
[[note-about-time-stamps-for-components]]
===== Uwagi na temat odcisków czasowych dla komponentów
Aby zidentyfikować składnik listy sieci (a także na płytce), jest używane jego oznaczenie i jest ono unikalne dla każdego z komponentów. Jednak KiCad udostępnia pomocniczą informację by jednoznacznie zidentyfikować komponent i odpowiadający mu moduł na płytce. Pozwala to na ponowną numerację symboli na schemacie w taki sposób by nie utracić powiązań pomiędzy komponentem i jego modułem.
Znacznik czasowy jest unikalnym identyfikatorem dla każdego składnika lub arkusza schematu w projekcie. Jednak w złożonych hierarchiach, w tym samym arkuszu składnik może być używany więcej niż raz, a zatem arkusz ten zawiera elementy o tym samym znaczniku czasowym.
Dany arkusz (wewnątrz złożonej hierarchii) ma jednak unikalny identyfikator: jego ścieżka wewnętrzna. Dany składnik zaś (wewnątrz złożonej hierarchii) ma unikalny identyfikator: ścieżka wewnętrzna + jego odcisk czasowy.
[[the-libparts-section]]
==== Sekcja elementów bibliotecznych
Sekcja elementów bibliotecznych znajduje się w tagu <libparts>, a dane w tej sekcji są zdefiniowane w bibliotekach schematu. Dla każdego komponentu sekcja ta zawiera dane:
* The allowed footprints names (names use wildcards) delimiter <fp>.
* Pola zdefiniowane w bibliotece, zawarte w tagu <fields>.
* Lista pinów, zawarte w tagu <pins>.
--------------------------------------------------
<libparts>
<libpart lib="device" part="CP">
<description>Condensateur polarise</description>
<footprints>
<fp>CP*</fp>
<fp>SM*</fp>
</footprints>
<fields>
<field name="Reference">C</field>
<field name="Valeur">CP</field>
</fields>
<pins>
<pin num="1" name="1" type="passive"/>
<pin num="2" name="2" type="passive"/>
</pins>
</libpart>
</libparts>
--------------------------------------------------
Linie jak <pin num="1" type="passive"/> określają również typ elektryczny pinów. Dostępne są typy:
[width="94%", cols="25%,75%"]
|================================================================
|Input | Zwykły pin wejściowy
|Output | Zwykły pin wyjściowy
|Bidirectional | Wejście lub wyjście
|Tri-state | Wejście lub wyjście trójstanowe
|Passive | Pasywny, zwykle w komponentach biernych
|Unspecified | Nieznany
|Power input | Wejście zasilania dla komponentu
|Power output | Wyjście zasilania z komponentu
|Open collector | Otwarty kolektor
|Open emitter | Otwarty emiter
|Not connected | Musi być pozostawiony niepodłączony
|================================================================
[[the-libraries-section]]
==== Sekcja bibliotek
Sekcja bibliotek znajduje się w tagu <libraries>. Dostarcza ona listę bibliotek używanych w danym projekcie schematu.
------------------------------------------------
<libraries>
<library logical="device">
<uri>F:\kicad\share\library\device.lib</uri>
</library>
<library logical="conn">
<uri>F:\kicad\share\library\conn.lib</uri>
</library>
</libraries>
------------------------------------------------
[[the-nets-section]]
==== Sekcja sieci
Sekcja sieci znajduje się w tagu <nets>. Zawiera ona listę wszystkich połączeń na schemacie.
-----------------------------
<nets>
<net code="1" name="GND">
<node ref="U1" pin="7"/>
<node ref="C1" pin="2"/>
<node ref="U2" pin="7"/>
<node ref="P1" pin="4"/>
</net>
<net code="2" name="VCC">
<node ref="R1" pin="1"/>
<node ref="U1" pin="14"/>
<node ref="U2" pin="4"/>
<node ref="U2" pin="1"/>
<node ref="U2" pin="14"/>
<node ref="P1" pin="1"/>
</net>
</nets>
-----------------------------
Sekcja ta zawiera wszystkie sieci na schemacie.
Poszczególne sieci są pogrupowane wewnątrz tagu <net>:
--------------------------
<net code="1" name="GND">
<node ref="U1" pin="7"/>
<node ref="C1" pin="2"/>
<node ref="U2" pin="7"/>
<node ref="P1" pin="4"/>
</net>
--------------------------
[width="77%", cols="20%,80%"]
|================================================
|net code |Jest to wewnętrzny identyfikator danej sieci
|name |Jest to nazwa danej sieci
|node |Zawiera odnośniki do poszczególnych pinów w danej sieci
|================================================
[[more-about-xsltproc]]
=== Więcej informacji na temat xsltproc
Aby uzyskać więcej informacji na temat programu, polecamy zajrzeć na stronę www: _http://xmlsoft.org/XSLT/xsltproc.html_
[[introduction-7]]
==== Wprowadzenie
xsltproc jest narzędziem uruchamianym z linii poleceń do filtrowania za pomocą arkuszy stylów XSLT dokumentów XML. Jest on częścią __libxslt__, biblioteki XSLT C Library przeznaczonej dla GNOME. Chociaż powstała ona jako część projektu GNOME, może również działać niezależnie od GNOME.
xsltproc jest wywoływany z linii poleceń z podaną nazwą arkusza stylów do wykorzystania, a następnie z nazwą pliku lub plików, do którego arkusz stylów ma być zastosowany. Jeśli nazwa pliku wejściowego nie będzie podana, czyli parametr _-i_ nie zostanie użyty, będzie wykorzystane standardowe wejście.
Jeśli arkusz stylów jest wbudowany w dokument XML z instrukcjami Style-sheet Processing Instruction, nie będzie trzeba dodatkowo podawać nazwy arkusza stylów w linii poleceń. xsltproc automatycznie wykryje i użyje zawartych stylów. Domyślnie dane wyjściowe zostaną skierowane na __stdout__. Można jednak określić plik wyjściowy przy użyciu opcji -o.
[[synopsis]]
==== Synopsis
---------------------------------------------------------------------------
xsltproc [[-V] | [-v] | [-o *file* ] | [--timing] | [--repeat] |
[--debug] | [--novalid] | [--noout] | [--maxdepth *val* ] | [--html] |
[--param *name* *value* ] | [--stringparam *name* *value* ] | [--nonet] |
[--path *paths* ] | [--load-trace] | [--catalogs] | [--xinclude] |
[--profile] | [--dumpextensions] | [--nowrite] | [--nomkdir] |
[--writesubtree] | [--nodtdattr]] [ *stylesheet* ] [ *file1* ] [ *file2* ]
[ *....* ]
---------------------------------------------------------------------------
[[command-line-options]]
==== Opcje linii poleceń
_-V_ lub _--version_
Pokazuje używaną wersję libxml i libxslt.
_-v_ lub _--verbose_
Pokazuje każdy krok wykonany przez xsltproc podczas przetwarzania arkusza stylów i dokumentów.
_-o_ lub _--output file_
Przekierowuje wyjście do pliku o nazwie __plik__. Dla wyjść wielokrotnych, zwanych także jako "chunking", -o folder/ przekierowuje pliki wyjściowe do określonego katalogu. Katalog ten musi być wcześniej utworzony.
_--timing_
Pokazuje czas zużyty na przetworzenie arkusza stylów, przetworzenia dokumentu oraz zastosowania arkusza stylów, a także czas zapisu danych wynikowych. Wartości pokazywane są milisekundach.
_--repeat_
Uruchamia transformację 20 razy. Używane przy testach czasowych.
_--debug_
Pokazuje drzewo XML transformowanego dokumentu w celu usuwania usterek w oprogramowaniu.
_--novalid_
Opuszcza ładowanie dokumentów DTD.
_--noout_
Nie generuje danych wyjściowych.
_--maxdepth value_
Określa maksymalną głębokość stosu wzorców, przed stwierdzeniem o wejściu libxslt do nieskończonej pętli. Domyślnie jest to 500.
_--html_
Dokument wejściowy jest plikiem HTML.
_--param name value_
Przekazuje parametr _nazwa_ i wartość _wartość_ do arkusza stylów. Można przekazać wiele par nazwa/wartość, jednak nie więcej niż 32. Jeśli wartość przekazywana jest łańcuchem a nie identyfikatorem węzła, należy użyć `--stringparam` zamiast tej opcji.
_--stringparam name value_
Przekazuje parametr _nazwa_ i wartość _wartość_ gdze _wartość_ jest łańcuchem znaków a nie identyfikatorem węzła. (Uwaga : Ciąg musi posiadać znaki kodowane w UTF-8.)
_--nonet_
Zabrania użycia sieci Internet w celu pobrania DTD, podmiotów lub dokumentów.
_--path paths_
Używa listy (separowanej za pomocą spacji lub przecinków) ścieżek systemu plików określonych przez `paths` w celu załadowania DTD, podmiotów lub dokumentów.
_--load-trace_
Wysyła na __stderr__ wszystkie dokumenty ładowane podczas przetwarzania.
_--catalogs_
Używa katalogu SGML określonego w SGML_CATALOG_FILES by określić lokację zewnętrznych podmiotów. Domyślnie, xsltproc zagląda do katalogu określonego w XML_CATALOG_FILES. Jeśli nie jest to określone, używa `etc/xml/catalog`.
_--xinclude_
Przetwarza dokumenty wejściowe używając specyfikacji Xinclude. Więcej szczegółów na ten temat można znaleźć na stronie Web specyfikacji Xinclude: http://www.w3.org/TR/xinclude/[http://www.w3.org/TR/xinclude/]
_--profile --norman_
Zwraca sprofilowane informacje na temat czasu spędzonego w każdej części arkusza stylów. Jest to przydatne w optymalizacji wydajności arkuszy stylów.
_--dumpextensions_
Zwraca listę wszystkich zarejestrowanych rozszerzeń na __stdout__.
_--nowrite_
Odrzuca polecenia tworzenia plików lub zasobów.
_--nomkdir_
Odrzuca polecenia utworzenia katalogów.
_--writesubtree path_
Pozwala na zapis tylko do wybranej podgałęzi _path_.
_--nodtdattr_
Nie stosuje domyślnych atrybutów pochodzących z dokumentów DTD.
[[xsltproc-return-values]]
==== Zwracane wartości
xsltproc zwraca także kody błędów, których można użyć w przypadku wywołań programu wewnątrz skryptów:
0 : normalne zakończenie
1 : brak argumentu
2 : za dużo parametrów
3 : opcja nieznana
4 : niepowodzenie przy parsowaniu arkusza stylów
5 : błąd arkuszu stylu
6 : błąd w jednym z dokumentów
7 : nieobsługiwana metoda xsl:output
8 : parametry w postaci ciągów zawierają zarówno znaki apostrofów jak i cudzysłowów
9 : błąd wewnętrzny
10 : przetwarzanie zostało zatrzymane przez komunikat o przerwaniu
11 : nie można zapisać danych wyjściowych do pliku wyjściowego
[[more-information-about-xsltproc]]
==== Więcej informacji na temat xsltproc
Strona WEB libxml: http://www.xmlsoft.org/[http://www.xmlsoft.org/]
Strona WEB W3C XSLT: http://www.w3.org/TR/xslt[http://www.w3.org/TR/xslt]
:experimental:
[[simulator]]
== Symulator ==
KiCad provides an embedded electrical circuit simulator using http://ngspice.sourceforge.net[ngspice] as the simulation engine.
Podczas pracy z symulatorem przydatna może być oficjalna biblioteka _pspice_. Zawiera ona popularne symbole używane do symulacji, takie jak źródła napięcia/prądu lub tranzystory z pinami ponumerowanymi tak, aby pasowały do specyfikacji węzłów ngspice.
Istnieje również kilka projektów demonstracyjnych ilustrujących możliwości symulatora. Znajdziesz je w katalogu _demos/simulation_.
=== Przypisywanie modeli
Przed uruchomieniem symulacji komponenty muszą mieć przypisany modele Spice.
Każdy komponent może mieć przypisany tylko jeden model, nawet jeśli komponent składa się z wielu jednostek. W takim przypadku pierwsza jednostka powinna mieć określony model.
[[sim-passive-models]] Komponenty pasywne z referencją pasującą do typu urządzenia w zapisie Spice (_R*_ dla rezystorów, _C*_ dla kondensatorów, _L*_ dla cewek indukcyjnych) będą miały przypisane modele niejawnie i będą używać pola _Wartość_ do określania ich właściwości.
[NOTE]
Należy pamiętać, że w Spice zapis 'M' oznacza mili, a 'Meg' odpowiada Mega. Jeśli wolisz użyć 'M' do wskazania prefiksu Mega, możesz o tym zdecydować w <<sim-settings,ustawieniach symulatora>>.
Informacje o modelu Spice są zapisywane jako tekst w polach symboli, dlatego możesz je zdefiniować w edytorze symboli lub edytorze schematów. Otwórz okno dialogowe właściwości symbolu i kliknij przycisk "Edytuj model Spice", aby otworzyć okno dialogowe "Edytora Modeli Spice".
Okno dialogowe "Edytor Modelu Spice" ma trzy zakładki odpowiadające różnym typom modeli. Istnieją dwie opcje wspólne dla wszystkich typów modeli:
[width="90%", cols="30%a,70%a"]
|====
|Disable symbol for simulation
|When checked the component is excluded from simulation.
|Alternate node sequence
|Allows one to override symbol pin to model node mapping.
To define a different mapping, specify pin numbers in order expected by the model.
'Example:' +
____
`* connections:` +
`* 1: non-inverting input` +
`* 2: inverting input` +
`* 3: positive power supply` +
`* 4: negative power supply` +
`* 5: output` +
`.subckt tl071 1 2 3 4 5`
____
image::images/opamp_symbol.png[alt="Generic operational amplifier symbol"]
To match the symbol pins to the Spice model nodes shown above, one needs to use an alternate node sequence option with value: "1{nbsp}3{nbsp}5{nbsp}2{nbsp}4". It is a list of pin numbers corresponding to the Spice model nodes order.
|====
==== Pasywne
Zakładka _Pasywne_ pozwala użytkownikowi przypisać pasywny model (rezystor, kondensator lub cewka) do komponentu. Jest to rzadko używana opcja, ponieważ zwykle elementy pasywne mają <<sim-passive-models,niejawnie przypisane modele>>, chyba że odniesienie do komponentu nie jest zgodne z rzeczywistym typem urządzenia.
[NOTE]
Jawnie zdefiniowane model pasywne mają pierwszeństwo przed tymi, które są domyślnie przypisane. Oznacza to, że po przypisaniu pasywnego modelu, pola _Odnośnik_ i _Wartość_ nie są brane pod uwagę podczas symulacji. Może to prowadzić do niejasnej sytuacji, gdy przypisana wartość modelu nie jest zgodna z tą wyświetlaną na schemacie.
image::images/pl/sim_model_passive.png[alt="Zakładka edytora modelu pasywnego"]
[width="90%", cols="30%a,70%a"]
|====
|Typ
|Wybór typu elementu (rezystor, kondensator lub cewka).
|Wartość
|Definiuje właściwości komponentu (rezystancja, pojemność lub indukcyjność). Wartość
może używać popularnych przedrostków jednostek Spice (wymienionych poniżej pola
wprowadzania tekstu) i powinien używać kropki jako separatora dziesiętnego. Zauważ,
że interpreter Spice nie działa poprawnie gdy przedrostki przeplatają się w wartości (np. 1k5).
|====
==== Model
Zakładka _Model_ służy do przypisania półprzewodnika lub złożonego modelu zdefiniowanego w zewnętrznym pliku biblioteki. Biblioteki modeli Spice są często oferowane przez producentów urządzeń.
Główny widżet tekstowy wyświetla wybraną zawartość z pliku bibliotecznego. Powszechną praktyką jest umieszczanie opisu modeli w plikach biblioteki, w tym kolejności węzłów.
image::images/pl/sim_model_subckt.png[alt="Zakładka edytora modelu półprzewodnikowego lub złożonego"]
[width="90%", cols="30%a,70%a"]
|====================
|Plik
|Ścieżka do pliku bibliotecznego Spice. Ten plik będzie używany przez symulator,
tak jak jest dodawany za pomocą dyrektywy _.include_.
|Model
|Wybrany model komponentu. Po wybraniu pliku lista jest wypełniana modelami
do wyboru.
|Typ
|Wybór typu modelu (inny układ, BJT, MOSFET lub dioda). Zwykle jest ustawiony
automatycznie po wybraniu modelu.
|====================
==== Źródła
Zakładka _Źródło_ służy do przypisania modelu źródła zasilania lub sygnału. Dostępne są dwie sekcje: _Analiza DC/AC_ oraz _Analiza czasowa_. Każdy definiuje parametry źródłowe dla odpowiedniego typu symulacji.
Opcja _Typ źródła_ jest aktywna dla wszystkich typów symulacji.
image::images/pl/sim_model_source.png[alt="Zakładka edytora modeli źródeł"]
Więcej na temat źródeł w http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[dokumentacji ngspice], rodział 4 (Voltage and Current Sources).
[[sim-directives]]
=== Dyrektywy Spice
It is possible to add Spice directives by placing them in text fields on a schematic sheet. This approach is convenient for defining the default simulation type. This functionality is limited to Spice directives starting with a dot (e.g. `.tran 10n 1m`), it is not possible to place additional components using text fields.
=== Symulacja
Aby uruchomić symulację, otwórz okno dialogowe _Symulator Spice_ wybierając menu *Narzędzia* -> **Symulator** w oknie edytora schematów.
image::images/pl/sim_main_dialog.png[alt="Główne okno symulacji"]
Okno dialogowe posiada kilka sekcji:
* <<sim-toolbar,Pasek narzędzi>>
* <<sim-plot-panel,Panel wykresu>>
* <<sim-output-console,Konsola>>
* <<sim-signals-list,Lista sygnałów>>
* <<sim-cursors-list,Lista znaczników kursora>>
* <<sim-tune-panel,Panel strojenia>>
==== Menu
[[sim-menu-file]]
===== Menu Plik
[width="90%", cols="30%,70%"]
|====
|Nowy wykres |Tworzy nową kartę w panelu wykresów.
|Otwórz skoroszyt |Otwiera listę kreślonych sygnałów.
|Zapisz skoroszyt |Zapisuje listę kreślonych sygnałów.
|Zapisz jako obraz |Eksportuje aktywny wykres do pliku `.png`.
|Zapisz jako plik `.csv` |Eksportuje aktywne punkty danych surowych wykresu do pliku `.csv`.
|Wyjdź z symulacji |Zamyka okno dialogowe.
|====
[[sim-menu-simulation]]
===== Symulacja
[width="90%", cols="30%,70%"]
|====
|Uruchom symulację | Wykonuje symulację przy użyciu bieżących ustawień.
|Dodaj sygnały... | Otwiera okno dialogowe wyboru sygnałów do kreślenia.
|Sondy ze schematu | Uruchamia <<sim-probe-tool, narzędzie typu Sonda>>.
|Dostrój wartość komponentu | Uruchom narzędzie <<sim-tuner-tool,Tuner>>.
|Pokaż listę sieci SPICE... | Otwiera okno dialogowe pokazujące wygenerowaną
listę sieci symulowanego obwodu.
|Ustawienia... | Otwiera <<sim-settings, okno dialogowe ustawień symulacji>>.
|====
[[sim-menu-view]]
===== Menu Widok
[width="90%", cols="30%,70%"]
|====
|Powiększ | Powiększa aktywny wykres.
|Pomniejsz | Zmniejsza aktywny wykres.
|Dopasuj do ekranu | Dostosuj ustawienie powiększenia, aby wyświetlić wszystkie wykresy.
|Pokaż siatkę | Włącza widoczność siatki.
|Pokaż legendę | Przełącz widoczność legendy wykresu.
|====
[[sim-toolbar]]
==== Pasek narzędziowy
image::images/pl/sim_main_toolbar.png[alt="Pasek narzędziowy symulatora"]
Ten pasek umożliwia dostęp do głównych funkcji symulatora.
[width="90%", cols="30%,70%"]
|====
|Uruchom/Zatrzymaj symulację | Uruchamia lub zatrzymuje symulację.
|Dodaj sygnały | Otwiera okno dialogowe wyboru sygnałów do wykreślenia.
|Sonda | Uruchamia <<sim-probe-tool,narzędzie Sonda>>.
|Dostrajanie | Uruchamia narzędzie <<sim-tuner-tool,do dostrajania>>.
|Ustawienia | Otwiera <<sim-settings,okno dialogowe ustawień symulacji>>.
|====
[[sim-plot-panel]]
==== Panel wykresu
Pokazuje wyniki symulacji w formie wykresów. W oddzielnych zakładkach można otworzyć wiele wykresów, ale tylko aktywny jest aktualizowany podczas przeprowadzania symulacji. W ten sposób można porównać wyniki symulacji dla różnych przebiegów.
Wykresy można dostosowywać, zmieniając widoczność siatki i legendy za pomocą menu <<sim-menu-view,menu Widok>>. Kiedy legenda jest widoczna, można ją przeciągnąć, aby zmienić jej położenie.
Interakcje w panelu wykresu:
* kółko myszy służy do przybliżania/oddalania
* kliknięcie prawym przyciskiem myszy otwiera menu kontekstowe w celu dostosowania widoku
* zaznaczenie prostokątnego wyboru pozwala powiększyć wybrany obszar
* przeciągnięcie kursora zmienia jego położenie
[[sim-output-console]]
==== Konsola wyjściowa
Konsola wyjścia wyświetla komunikaty z symulatora. Zaleca się sprawdzanie konsoli, aby mieć pewność że nie ma błędów ani ostrzeżeń.
[[sim-signals-list]]
==== Lista sygnałów
Pokazuje listę sygnałów pokazywanych w aktywnym wykresie.
Interakcje na liście sygnałów:
* kliknięcie prawym przyciskiem myszy otwiera menu kontekstowe w celu ukrycia sygnału lub przełączenia krusora
* podwójne kliknięcie ukrywa sygnał
[[sim-cursors-list]]
==== Lista kursorów
Wyświetla listę kursorów i ich współrzędne. Każdy sygnał może mieć wyświetlany jeden kursor. Widoczność kursorów ustawiana jest za pomocą listy <<sim-signals-list,sygnałów>>.
[[sim-tune-panel]]
==== Panel dostrajania
Wyświetla komponenty pobrane za pomocą narzędzia <<sim-tuner-tool,Dostrajanie>>. Panel dostrajania pozwala użytkownikowi szybko modyfikować wartości komponentów i obserwować ich wpływ na wyniki symulacji - za każdym razem, gdy wartość składnika jest zmieniana, symulacja jest ponownie uruchamiana, a wykresy są aktualizowane.
Z każdym komponentem jest powiązane kilka kontrolek:
* Górne pole tekstowe określa maksymalną wartość komponentu.
* Środkowe pole tekstowe określa aktualną wartość komponentu.
* Dolne pole tekstowe określa minimalną wartość komponentu.
* Suwak pozwala użytkownikowi modyfikować wartość komponentu w sposób płynny.
* Przycisk _Zapisz_ modyfikuje wartość komponentu na schemacie do tej wybranej za pomocą suwaka.
* Przycisk _X_ usuwa komponent z panelu Dostrajanie i przywraca jego oryginalną wartość.
Trzy pola tekstowe rozpoznają przedrostki jednostek używanych przez Spice.
[[sim-tuner-tool]]
==== Narzędzie Dostrajanie
Narzędzie dostrajania pozwala użytkownikowi na wybór komponentu, którego wartość chce dostroić.
Aby wybrać komponent by go dostroić, należy kliknąć go w edytorze schematów gdy narzędzie Dostrajanie jest aktywne. Wybrane komponenty pojawią się w panelu <<sim-tune-panel,Dostrajanie>>. Tylko pasywne komponenty mogą być dostrajane.
[[sim-probe-tool]]
==== Narzędzie Sonda
Narzędzie Sonda zapewnia przyjazny dla użytkownika sposób wyboru sygnałów w celu umieszczenia ich na wykresie.
Aby dodać sygnał do wykresu, kliknij odpowiednie połączenie w edytorze schematów gdy narzędzie jest aktywne.
[[sim-settings]]
==== Ustawienia symulacji
image::images/pl/sim_settings.png[alt="Okno dialogowe ustawień symulatora"]
Okno ustawień symulacji pozwala użytkownikowi ustawić typ symulacji i jej parametry. Dostępne są cztery zakładki:
* AC
* Przenoszenie DC
* Analiza czasowa
* Własne
Pierwsze trzy zakładki zawierają formularze w których można określić parametry symulacji. Ostatnia zakładka umożliwia użytkownikowi wpisanie również niestandardowych dyrektyw Spice. Więcej informacji o typach i parametrach symulacji można znaleźć w http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[dokumentacji ngspice], rozdział 1.2.
Alternatywnym sposobem konfigurowania symulacji jest wpisanie <<sim-directives,dyrektyw Spice>> w pola tekstowe na schemacie. Wszystkie dyrektywy pochodzące z pól tekstowych związane z typem symulacji są zastępowane przez ustawienia wybrane w oknie dialogowym. Oznacza to, że gdy rozpoczniemy korzystać z okna dialogowego symulacji, wartości te zastąpią dyrektywy na schemacie do czasu, aż symulator nie zostanie ponownie otwarty.
Istnieją dwie opcje wspólne dla wszystkich typów symulacji:
[width="90%", cols="30%,70%"]
|====
|Dostosuj wartości symboli pasywnych | Zastąp wartości symboli pasywnych by dokonać
często wykonywanej konwersji wartości do ich notacji w Spice.
|Dodaj pełną ścieżkę do dyrektyw _.include_ wprowadzające nowe biblioteki | Łączy nazwy
plików bibliotek modeli Spice z pełną ścieżką dostępu. Normalnie, pełna ścieżka jest wymagana
przez ngspice by mógł uzyskać dostęp do pliku biblioteki.
|====