
参考手册
本手册正在修订中,以涵盖KiCad的最新稳定发布版本。 它包含一些内容尚未编写完成。 我们希望您能耐心等待我们的志愿技术作者完成这项工作。 同时我们也欢迎新的贡献者加入我们的行列,帮助我们使 KiCad 的文档比以前更好。 |
版权
本文件的版权 © 2010-2023 由下列贡献者拥有。您可以根据 GNU 通用公共许可证(http://www.gnu.org/licenses/gpl.html)第 3 版或更高版本,或知识共享署名许可证(http://creativecommons.org/licenses/by/3.0/)第 3.0 版或更高版本的条款发布或修改它。
本指南中的所有商标均属于其合法所有者。
贡献人员
Jean-Pierre Charras, Fabrizio Tappero, Wayne Stambaugh, Graham Keeth
翻译人员
Liu HanCheng <[email protected]>, 2018.
Qinghan Hu <[email protected]>, 2023.
taotieren <[email protected]>, 2019-2023.
Telegram 简体中文交流群: https://t.me/KiCad_zh_CN
反馈
KiCad 项目欢迎与软件或其文档相关的反馈、错误报告和建议。有关如何汇总反馈或报告问题的详细信息,请参阅 https://www.kicad.org/help/report-an-issue/
KiCad 原理图编辑器简介
描述
KiCad 原理图编辑器用于原理图设计,属于 KiCad 的发行的一部分,可在以下操作系统下使用:
-
Linux
-
Apple OS X
-
Windows
无论是什么操作系统,所有的 KiCad 文件都能 100% 兼容所有操作系统。
原理图编辑器是一个集成的应用程序,所有绘图、控制、布局、库管理和访问 PCB 编辑器功能都在原理图编辑器中进行。
KiCad 原理图编辑器旨在与 KiCad PCB 编辑器协同,后者是 KiCad 的印刷电路设计软件。它还可以为其他软件包输出网表文件,网表列出了所有的电气连接。
原理图编辑器包括一个符号库编辑器,它可以创建和编辑符号并管理库。 它还集成了现代原理图设计软件所需的额外但基本的功能:
-
电气规则检查(ERC),用于自动查找错误和缺失的连接
-
以多种格式导出绘图文件(Postscript,PDF,HPGL 和 SVG)
-
物料清单生成(通过 Python 或 XSLT 脚本,允许许多灵活的格式)。
原理图编辑器以几种方式支持多原理图设计:
-
扁平的层次结构(原理图页面在主图中没有明确的连接)。
-
简单的层次结构(每张原理图只使用一次)。
-
复杂的层次结构(有些原理图页面被多次使用)。
层次结构原理图会在后续章节详细描述。
初始配置
当原理图编辑器首次运行时,如果在 KiCad 配置文件夹中没有找到全局符号库表文件 sym-lib-table
,那么 KiCad 将询问如何创建该文件:

推荐使用第一个选项(复制默认全局符号库表(推荐))。默认的符号库表包括所有标准符号库,作为 KiCad 的一部分安装。
如果该选项被禁用,则 KiCad 无法找到默认的全局符号库表。这可能意味着你没有和 KiCad 一起安装标准符号库,或者它们没有被安装在 KiCad 期望找到的地方。在某些系统中,KiCad 库是作为一个单独的软件包安装的)。
-
如果你已经安装了标准的 KiCad 符号库并想使用它们,但第一个选项被禁用,请选择第二个选项并浏览到安装 KiCad 库的目录中的
sym-lib-table
文件。 -
如果你已经有一个你想使用的自定义符号库表,选择第二个选项并浏览你的
sym-lib-table
文件。 -
如果你想从头开始构建一个新的符号库表,选择第三个选项。
符号库管理将在待续中详细描述。
原理图编辑器的用户界面

原理图编辑器的主要用户界面如上图所示。中间包含主编辑画布,其周围有:
-
顶部工具栏(文件管理、缩放工具、编辑工具)。
-
左侧工具栏(显示选项)
-
信息面板和底部的状态栏
-
右侧面板(绘图和设计工具)
浏览编辑画布
编辑画布显示正在设计的原理图。你可以平移和缩放到原理图的不同部分,并打开设计中的任何原理图页。
默认情况下,用鼠标中键或右键拖动会平移画布视图,滚动鼠标滚轮会放大或缩小视图。你可以在偏好设置中的鼠标和触摸板部分改变这一行为(详见配置和定制 )。
在顶部的工具栏中还有其他几个缩放工具:
-
放大视口中心。
-
缩小视口中心。
-
放大到适合原理图页大小。
-
缩放到适合原理图中的每个对象(不包括图框)。例如,如果有对象放置在图框之外,在放大到对象之后,它们就会显现出来。
-
允许你画一个方框来确定缩放的区域。
光标的当前位置显示在窗口的底部(X 和 Y),还有当前的缩放系数(Z)、光标的相对位置(dx、dy 和 dist)、网格设置和显示单位。
按 Space 可以将相对坐标重置为零(dx, dy, and dist)。这对于测量两点之间的距离或对齐物体很有用。
快捷键
按 Ctrl+F1 快捷键显示当前快捷键列表。默认的快捷键列表包括在本手册的 操作参考 部分。
本手册中描述的快捷键使用了标准 PC 键盘上的按键布局。在苹果键盘布局中,使用 Cmd 键来代替 Ctrl,使用 Option 键来代替 Alt。
许多操作默认没有分配快捷键,但可以使用快捷键编辑器(偏好设置 → 偏好设置… → 快捷键)分配或重新定义快捷键。
许多通过快捷键进行的操作也可以在上下文菜单中使用。要访问上下文菜单,在编辑画布上点击右键。 根据所选择的内容或所使用的工具,将有不同的操作。 |
快捷键存储在 KiCad 的配置目录下的 user.hotkeys
文件中。这个位置是平台相关的:
-
Windows:
%APPDATA%\kicad\7.0\user.hotkeys
-
Linux:
~/.config/kicad/7.0/user.hotkeys
-
macOS:
~/Library/Preferences/kicad/7.0/user.hotkeys
KiCad 可以使用快捷键编辑器中的 导入快捷键 按钮从 user.hotkeys
文件中导入快捷键设置。
鼠标操作和选择
使用鼠标左键选择编辑画布中的对象。 单击一个对象将选择它。点击并拖动将执行一个框选。从左到右的框选将只选择完全在框内的对象。从右到左的方框选择将选择任何接触到方框的对象。从左到右的选择框是用黄色画的,光标表示排他性选择,从右到左的选择框是用蓝色画的,光标表示包容性选择。
在点击或拖动时按住辅助按键,可以修改选择动作。在点击选择单个对象时,以下辅助键适用:
辅助键 (Windows) | 辅助键 (Linux) | 辅助键 (macOS) | 选择效果 |
---|---|---|---|
Ctrl |
Ctrl |
Cmd |
切换选择。 |
Shift |
Shift |
Shift |
将对象添加到现有的选择中。 |
Ctrl+Shift |
Ctrl+Shift |
Cmd+Shift |
从现有的选择中删除对象。 |
长按 |
长按或 Alt |
长按或 Option |
从弹出菜单中澄清选择。 |
以下辅助键适用于使用拖拽执行框选操作时:
辅助键 (Windows) | 辅助键 (Linux) | 辅助键 (macOS) | 选择效果 |
---|---|---|---|
Ctrl |
Ctrl |
Cmd |
切换选择。 |
Shift |
Shift |
Shift |
在现有的选择中添加对象。 |
Ctrl+Shift |
Ctrl+Shift |
Cmd+Shift |
从现有的选择中删除对象。 |
选择一个对象会在窗口底部的信息面板上显示该对象的信息。双击一个对象可以打开一个窗口来编辑该对象的属性。
按 Esc 将取消当前的工具或操作并返回到选择工具。在选择工具处于活动状态时按下 Esc 将清除当前的选择。
左侧工具栏显示控制
左侧工具栏提供了改变原理图编辑器中对象显示的选项。
打开/关闭网格显示。 注意: 默认情况下,隐藏网格将禁用网格捕捉功能。这个行为可以在偏好设置中的显示选项部分改变。 |
|
|
以英寸、mil或毫米为单位显示/输入坐标和尺寸。 |
在全屏十字光标和小的编辑光标之间切换。 |
|
打开/关闭隐藏引脚的显示。 |
|
在自由角度和水平/垂直之间进行切换。 |
|
放置导线、总线及图形线时,在自由角度、90 度模式和 45 度模式之间切换。 |
|
打开和关闭停靠的层次结构导航面板。 |
原理图创建和编辑
简介
用 KiCad 设计的原理图不仅仅是一个电子设计的简单图形表示。它通常是开发链的切入点,可用于:
原理图主要由符号、导线、标签、结点、总线和电源符号组成。为了使原理图更清晰,你可以放置纯图形元素,如总线入口、注释和折线。
符号是从符号库中添加到原理图中的。原理图制作完成后,网络连接和封装的集合被导入 PCB 编辑器,用于设计电路板。
原理图可以使用单一的原理图页面,也可以分割成多个原理图页面。在 KiCad 中,多张原理图是按层次组织的,有一个根原理图和子原理图。每个原理图都是它自己的 .kicad_sch
文件,它本身就是一个完整的 KiCad 原理图。层次原理图的工作在层次原理图章节中描述。
原理图编辑操作
原理图编辑工具位于右侧工具栏中。 当一个工具被激活时,它将一直处于活动状态,直到选择了另一个工具或用 Esc 键取消该工具。当其他工具被取消时,选择工具总是被激活。
选择工具(默认工具) |
|
如果 PCB 编辑器也处于打开状态,那么与所选网络相对应的对象也会被高亮显示。可以用高亮工具在空白处点击来清除网络高亮,或者使用清除网络高亮的快捷键(~)来清除。 |
|
打开符号选择器对话框来放置一个新的符号。 |
|
打开电源符号选择器对话框,放置一个新的电源符号。 |
|
画一条导线。 |
|
画总线。 |
|
绘制导线到总线的入口。这些元素只是图形化的,并不产生连接,因此它们不应该被用来连接不同导线。 |
|
放置一个 "不连接" 标志。这些标志应该放置在那些无需连接的符号引脚上。"不连接" 标志向电气规则检查器表明,该引脚是故意不连接的,而不是一个错误。 |
|
放置一个结点。连接了两根交叉的导线或一根电线和一个引脚,如果没有结点,有时会产生歧义(即如果一个导线端点或一个引脚没有直接连接到另一个电线的端点)。 |
|
放置一个局部标签。局部标签可以连接位于 同一原理图页的 对象。对于两个不同原理图之间的连接,请使用全局或分层标签。 |
|
放置一个全局标签。所有具有相同名称的全局标签都会被连接起来,即使位于不同的原理图上。 |
|
放置一个层次标签。层次标签用于在子原理图和该子原理图的父原理图之间建立联系。关于分层标签、原理图和页码的更多信息,请参见层次原理图部分。 |
|
放置一个层次的子原理图。必须指定这个子原理图的文件名。 |
|
从子原理图中导入层次原理图引脚。这个命令只能在层次结构设计中执行。它会根据对应的子原理图层次标签创建原理图层次引脚并进行放置。 |
|
放置一个文字注释。 |
|
放置一个文本框。 |
|
绘制一个矩形 |
|
绘制一个圆形。 |
|
绘制一个圆弧。 |
|
绘制一条线条。 注意: 线条是图形对象,与用导线工具放置的导线不同。它们并不连接任何东西。 |
|
放置一个位图图像。 |
|
删除点击的对象。 |
网格
在原理图编辑器中,光标总是在一个网格上移动。网格可以自定义:
-
网格大小可以通过右键菜单或使用 视图 → 网格属性… 来改变。
-
颜色可以在 偏好设置 对话框的 颜色 页中改变(菜单 偏好设置 → 常规选项)。
-
可见性可以通过左侧工具栏按钮进行切换。
默认的网格尺寸是 50 mil(0.050 英寸)或 1.27 mm。
这是推荐的网格,用于在原理图中放置符号和导线,以及在符号编辑器中设计符号时放置引脚。
导线只有在两端完全重合的情况下才能与其他导线或引脚连接。因此,保持符号引脚和导线与网格对齐是非常重要的。建议在放置符号和绘制导线时始终使用 50 mil 的网格,因为 KiCad 标准符号库和所有遵循其风格的库也使用 50 mil 的网格。使用 50 mil 以外的网格尺寸将导致原理图没有正确的连接!。 |
也可以使用较小的网格,但这只适用于文本和符号图形,不建议用于放置引脚和导线。
符号、导线和其他没有对准网格的元素,可以通过选择它们,点击右键,并点击 将元素对准网格,将它们重新对准网格。 |
捕捉
符号、导线、文本和图形线等原理图元素在移动、拖动和绘制时都会被固定在网格上。此外,即使在禁用网格捕捉的情况下,导线工具也会捕捉到引脚。在移动鼠标时,可以通过使用下表中的辅助键来禁用网格和引脚的捕捉。
在苹果键盘上,使用 Cmd 键而不是 Ctrl。 |
辅助键 | 效果 |
---|---|
Ctrl |
禁用网格捕捉。 |
Shift |
禁用将导线捕捉在引脚上。 |
编辑对象属性
所有对象都可在对话框中编辑属性。使用快捷键 E 或从右键菜单中选择属性来编辑所选对象的属性。只有当你选择的所有对象都是同一类型时,你才能打开属性对话框。要想一次编辑不同类型的项目的属性,请参阅下面关于批量编辑工具的章节。
在属性对话框中,任何包含数字值的字段也可以接受一个基本的数学表达式,从而得到一个数字值。例如,一个尺寸可以被输入为 2 * 2 mm
,结果是 4 mm
的值。支持基本算术运算符以及用于定义运算顺序的圆括号。
使用符号
放置符号
要将符号摆放到原理图中,可以使用图标 或者快捷键 A 。 出现选择符号对话框,让您选择要添加的符号。 符号按符号库分组。

默认情况下,仅显示符号/库名称和描述列。 可以通过右键单击列标题并选择“选择列”来添加其他列。
“选择符号”对话框根据您在搜索字段中键入的内容,按名称、关键字、描述和所有其他符号字段过滤符号。
有一些高级筛选器可用:
-
通配符:
*
匹配任意数量的任意字符,包括无字符,而?
匹配任意单个字符。 -
键值对: 如果一个库部分的描述或关键词包含一个格式为 "Key:123" 的标签,你可以通过输入 "Key>123"(大于)、"Key<123"(小于)等进行相对匹配。数字可以包括以下不区分大小写的后缀之一。
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
-
正则表达式: 如果您熟悉正则表达式,也可以使用。 使用的正则表达式风格是 wxWidgets 高级正则表达式风格,类似于 Perl 正则表达式。
如果符号指定了一个默认的封装,这个封装将在右下方预览。如果符号包括封装过滤器,可以在右边的封装下拉菜单中选择满足封装过滤器的备用封装。
选择一个要放置的符号后,该符号将被吸附在光标上。 左键点击原理图中所需要摆放的位置,将符号放入原理图中。在将符号放入原理图之前,可以通过快捷键或右键菜单来旋转、镜像或编辑它的字段。这些操作也可以在放置后进行。
如果 放置重复副本 选项被选中,在放置一个符号后 KiCad 将开始放置该符号的另一个副本。这个过程一直持续到用户按下 Esc。
对于有多个单元的符号,如果 放置所有单元 选项被选中,在放置符号后 KiCad 将开始放置该符号中的下一个单元。 这将持续到最后一个单元被放置或用户按下 Esc。
放置电源符号
电源符号是代表与电源网络连接的符号。 这些符号被分组在 power
库中,所以可以使用符号选择器来放置。 然而,由于电源的放置很频繁, 工具是可用的。这个工具使用方法类似,只是搜索是直接在
power
库和其他包含电源符号的库中进行。
移动符号
符号可以用移动(M)或拖动(G)工具移动。这些工具将作用于选定的符号,如果没有选定符号,则作用于光标下的符号。
移动 工具移动符号本身,而不保持与符号引脚的导线连接。
拖动 工具在移动符号时不会破坏其引脚的导线连接,因此也会移动连接的导线。
你也可以用鼠标点击并拖动符号,这取决于偏好设置中 鼠标和触摸板 部分的 左键拖动手势 设置。
符号也可以旋转(R)或在X(X)或Y(Y)方向上进行镜像。
编辑符号属性
符号的字段可以在符号的属性窗口中进行编辑。用快捷键 E 或通过双击符号来打开符号属性窗口。

符号属性窗口在一个表格中显示一个符号的所有字段。新的字段可以被添加,现有的字段可以被删除、编辑、重新排序、移动或调整大小。
每个字段的名称和值可以是可见的或隐藏的,并且有几个格式化选项:水平和垂直对齐、方向、位置、字体、文本颜色、文本大小和黑体/斜体。字段的自动放置也可以在每个字段的基础上启用。显示位置始终针对正常显示的符号(无旋转或镜像)指示,并且与符号的锚点相关。
符号字段的格式化选项可以通过右击符号字段表的标题行来显示或隐藏,并启用或禁用所需的列。默认情况下,不是所有的列都显示。 |
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. These functions are described later.
编辑符号… 打开符号编辑器,编辑原理图中的符号副本。注意,库中的原始符号将不会被修改。编辑库中的符号… 按钮可以打开符号编辑器来编辑库中的原始符号。在这种情况下,原理图中的符号将不会被修改,直到用户点击 更新库中的符号… 按钮。
符号有几个属性,它们会影响 KiCad 其他部分对符号的处理方式。
从仿真中排除 防止该符号被包括在 SPICE 模拟中。
从 BOM 中排除 防止该元件被包括在BOM 导出中。
从电路板中排除 意味着该符号仅用于原理图,相应的封装不会被添加到 PCB 上。
不安装 意味着该元件不应该被安装到 PCB 上,虽然相应的封装仍然应该被添加到电路板上。如下图所示,DNP 符号在原理图中显示为不饱和状态,上面有一个红色的 "X"。

单独编辑符号字段
可以用 E 快捷键直接编辑单个符号文本字段(选择字段而不是符号),或者双击字段。
一些符号字段有自己的快捷键,可以直接编辑它们。选定符号后,可分别用 U、V 或 F 快捷键编辑位号、值和封装字段。

该对话框中的选项与完整的 "符号属性" 对话框中的选项相同,但都是针对单个字段的。
符号字段可以通过自动放置字段操作(选择一个符号并按 O)自动移动到一个适当的位置。字段自动放置可在原理图编辑器的编辑选项中进行配置,包括设置为总是自动放置字段。
Updating and exchanging symbols
When a symbol is added to the schematic, KiCad embeds a copy of the library symbol in the schematic so that the schematic is independent of the system libraries. Symbols that have been added to the schematic are not automatically updated when the library changes. Library symbol changes are manually synced to the schematic so that the schematic does not change unexpectedly.
To update symbols in the schematic to match the corresponding symbol, use Tools → Update Symbols from Library, or right click a symbol and select Update Symbol from Library. You can also access the tool from the symbol properties dialog.

The top of the dialog has options to choose which symbols will be updated. You can update all symbols in the dialog, update only the selected symbols, or update only the symbols that match a specific reference designator, value, or library identifier. The reference designator and value fields support wildcards: *
matches any number of any characters, including none, and ?
matches any single character.
The middle of the dialog has options to control what parts of the symbol will be updated. You can select specific fields to update or not update, which properties of the fields to update (text, visibility, size and style, and position), and how to handle fields that are missing or empty in the library symbol. You can also choose whether to update symbol attributes, such as do not populate and exclude from simulation / bill of materials / board.
The bottom of the dialog displays messages describing the update actions that have been performed.
To change an existing symbol to a different symbol, use Edit → Change Symbols…, or right click an existing symbol and select Change Symbol…. This dialog is also accessible from the symbol properties dialog.

The options for the Change Symbols dialog are very similar to the Update Symbols from Library dialog.
Another way to swap existing symbols for new ones is to use Tools → Edit Symbol Library Links…. This dialog contains a table of every symbol in the design, grouped by current library symbol. By choosing a new symbol in the New Library Reference column, you can make all instances of the existing symbol instead point to the new symbol. If the Update symbol fields from new library option is used, the contents of the existing symbols' fields will be updated to match the new symbols' fields.
The Map Orphans button attempts to automatically remap orphaned symbols to symbols with the same name in an active library. For example, if there is a symbol with the current library reference mylib:symbol123
, but the mylib
library cannot be found, the Map Orphans button will attempt to find a symbol named symbol123
in any of the libraries that are present. This button is only enabled if orphaned symbols are present in the schematic (see the legacy schematics section).

This dialog is primarily useful for managing symbols that appear in multiple libraries, when you want to switch from one library to another. For example, if a schematic uses symbols that are in both a global library and a project-specific library, the Symbol Library References dialog could be used to switch between using the global symbols or the equivalent project-specific symbols. It does not have features for fine-grained control of how fields are updated; for that, use the Change Symbols dialog.
符号字段表
符号字段表允许你在电子表格界面中查看和修改所有符号的字段值。你可以用 按钮打开符号字段表。

单元格可以用方向键导航,或者用 Tab / Shift+Tab 向右/向左移动,Enter / Shift+Enter 向下/向上移动。
通过点击和拖动可以选择一个单元格范围。选定的整个单元格范围可以通过(Ctrl+C)或(Ctrl+V)进行复制或粘贴。从表中复制单元格的对于创建 BOM 非常有用。下面将介绍复制和粘贴单元格的更多细节。
任何符号字段都可以通过左边的 显示 复选框或者通过右键点击表格的标题来显示或隐藏。新的符号字段可以用 添加字段… 按钮添加。
可以选择使用 分组 复选框按任何符号字段对相似符号进行分组。 分组符号显示在表中的一行中。 通过单击行左侧的箭头,可以展开分组行以显示各个符号。 分组符号 复选框启用或禁用符号分组, 按钮重新计算分组。
可以使用顶部的 过滤器 文本框过滤符号。 过滤器支持通配符:*
匹配任意数量的任意字符,包括无字符,?
匹配任意单个字符。
你可以使用 导出为 CSV… 按钮,将符号字段保存到外部文件。这可以作为一个简单的 BOM 生成工具,尽管 BOM 工具提供了对生成的输出的更好控制。
简化填写字段的技巧
电子表格中有几种特殊的复制/粘贴方法,用于将数值粘贴到更大的区域,包括自动增加粘贴的单元格。这些功能在粘贴几个符号中共享的数值时可能很有用。
这些方法如下所示。
1. 复制(Ctrl+C) | 2. 选择目标单元格 | 3. 粘贴 (Ctrl+V) |
---|---|---|
这些技巧在其他带有网格控制元素的对话框中也可以使用。 |
位号和符号批注
位号是设计中元件的唯一标识符。它们通常被印在 PCB 和装配图上,使你能够将原理图中的符号与电路板上的相应元件相匹配。
在 KiCad 中,位号由一个表示元件类型的字母(R
表示电阻,C
表示电容,U
表示集成电路,等等)及后面的数字组成。如果符号有多个单元,那么位号也会有一个表示单位的尾部字母。没有设置位号的符号有一个 ?
字符,而不是数字。位号必须是唯一的。
位号可以在符号添加到原理图时自动设置,也可以通过手动编辑单个符号的位号字段或使用批注工具批量设置或重置位号。
设置一个符号的位号的过程被称为 批注。 |
自动批注
启用自动批注后,符号被添加到原理图中时将被自动批注。你可以在 偏好设置 中 原理图编辑器 → 批注选项 窗格中选中 自动批注符号 复选框来启用自动批注。自动批注也可以通过左侧工具栏的 按钮进行切换。

当同时添加多个符号时,它们会根据 顺序 设置进行批注,按 X 或 Y 位置排序。
编号 选项为新的位号设置起始编号。 可以是最小的可用数字,也可以是基于原理图页码的数字。
关于批注选项的更多信息,请参见批注工具的文档。
批注工具
批注工具会自动为原理图中的符号指定位号。要启动批注工具,请点击顶部工具栏上的 按钮。

该工具提供了几个选项来控制符号的批注方式。
范围: 选择批注是否适用于整个原理图、仅适用于当前原理图或仅适用于选定的符号。如果选择了 递归到子原理图 的选项,所选范围内子原理图中的符号将被重新批注;否则子原理图中的符号将不会被重新批注。例如,如果同时选择递归到子原理图 和 仅选择,所有选定范围内子原理图中的符号将被重新批注。
选项: 选择批注是否应适用于所有符号,或重置 现有的位号,或仅应用于未批注的符号。
顺序: 选择编号的方向。如果符号按 X 位置排序,原理图页面左侧的所有符号将比页面右侧的符号编号小。如果符号按 Y 位置排序,则原理图顶部的所有符号的编号将小于原理图底部的符号的编号。
编号: 选择位号的起始编号。每一个位号都会选择在起始编号之上的最小的未使用的数字。起始编号可以是一个任意的数字(通常是 0),也可以是原理图页码乘以 100 或 1000,这样每个元件的位号就与它所在的原理图页相对应。
清除批注 按钮可以清除所选范围内的所有位号。
批注信息可以用底部的复选框进行过滤,或用 保存… 按钮保存到报告中。
电气连接
有两种主要的方式来建立连接:导线和标签。导线进行直接连接,而标签则与具有相同名称的其他标签连接。下面的原理图中显示了导线和标签的情况。

可以用总线进行连接,也可以通过隐藏的电源引脚进行隐性连接。
本节还将讨论两种特殊类型的符号,可以用右侧工具栏上的 "电源符号" 按钮添加:
-
电源符号:用于将导线连接到电源或地网络的符号。
-
PWR_FLAG:一个特定的符号,用于表示一个电源网络在没有连接到电源输出引脚时(例如,一个由板外连接器提供的电源网络)。
导线
导线用于在两点之间直接建立电气连接。 要建立连接,必须将一段导线的末端与另一段导线或一个引脚相连。只有导线的末端才能建立连接;如果一根导线穿过另一根导线的中间,不会建立连接。
未连接的导线端有一个小方块,表示连接点。 当连接到导线端时,这个方块就会消失。未连接的引脚有一个圆圈,连接完成时时也会消失。
导线只有在两端完全重合的情况下才能与其他导线或引脚连接。因此,保持符号引脚和导线与网格对齐很重要。建议在放置符号和绘制导线时始终使用 50 mil 的网格,因为 KiCad 标准符号库和所有遵循其风格的库也使用 50 mil 的网格。 |
符号、导线和其他没有对准网格的元素,可以通过选择它们,右键点击,并选择 将元素对准网格,来将它们重新对准网格。 |
绘制和编辑导线
用导线连接对象,请使用右侧工具栏中的导线工具 (w)。也可以通过点击未连接的符号引脚或导线末端进行导线连接。
可以用左侧工具栏的 按钮将导线限制在 90 度角,或者用
按钮将导线限制在 45 度角。
按钮允许你以任何角度放置导线。可以使用 Shift+Space 在这些模式中循环,或者在 偏好设置 → 原理图编辑器 → 编辑选项 中选择所需的模式。这些模式除了影响导线外,还影响 图形线。
与 PCB编辑器中一样, 快捷键 / 切换导线的模式。
可以使用移动(M)或拖动(G)工具来移动和编辑导线。 与符号一样,移动 工具只移动选定的线段,而不保持与其他导线的现有连接。而 拖动 工具则保持现有的连接。
可以使用 选择连接 工具(Alt+4)选择连接的导线。这个工具可以从所选导线或光标下的导线开始,选择所有与之相连的导线,直到到达一个结点。 再次使用该工具可以将现有的选择范围扩大到下一个结点。
你可以通过右击导线并选择 分割 将一个导线分成两段。该导线将在当前的鼠标位置被分开。你也可以通过右击一个导线并选择 断开 将其与相邻的导线分开。
通常情况下,导线的样式遵照网络的网络类设置(如果没有指定其他网络类,网络就属于 默认
网络类)。然而,所选导线的样式可以在导线的属性对话框中被覆盖(当导线被选中时点击 E)。可以设置导线的宽度、颜色和导线的样式(实线、虚线、点线等)。将宽度设置为 0
,清除颜色,并使用 默认
导线样式,将分别使用网络类设置中的默认宽度、颜色和样式。如果在选择中包含了一个导线结点,结点的大小也可以在这里进行编辑。

导线结点
交叉的导线不是隐式连接的。如果需要连接,必须明确地添加结点来连接它们(按钮在右侧工具栏)。结点将被自动添加到开始或结束于现有导线之上的导线。
在上面的原理图中,连接到 P1
引脚 18、19、20、21、22 和 23 的导线上使用了结点。
结点大小自动遵循原理图的 结点大小 设置,在 原理图设置 → 通用 → 格式化。颜色遵循 网络类设置。自动尺寸和颜色可以在每个连接点的属性中被覆盖;尺寸为 0
相当于原理图的默认尺寸,而清除颜色则使用网络类颜色。

标签
标签是用来给导线和引脚分配网络名称的。具有相同网络名称的导线被认为是连接在一起的,所以标签可以用来进行连接,而不需要直接画线连接。
一个网络只能有一个名称。如果有两个不同的标签放在同一个网络上,将产生一个 ERC 违规。 在网表中只使用其中一个网络名称。最终的网络名称是根据下面描述的网络名称分配规则决定的。
有三种类型的标签,每种都有不同的连接范围。
-
局部标签,也被简单地称为标签,只在一个原理图页面内有效。使用右侧工具栏的
按钮添加一个局部标签。
-
全局标签 可以在原理图的任何地方进行连接,无论在哪个原理图页面。用右侧工具栏的
按钮添加一个全局标签。
-
层次标签 连接到层次原理图引脚,在层次原理图中使用,用于连接子原理图和其父原理图。用右侧工具栏的
按钮添加层次标签。
如果在同一个原理图页面,无论标签类型如何,具有相同名称的标签将被连接。 |
添加和编辑标签
使用相应按钮或快捷键创建标签后,会出现标签属性对话框。

有几个选项可以控制标签的外观。你可以改变文本的 字体、大小和颜色,并设置粗体和斜体以便强调。 你还可以设置文本相对于标签连接点的方向。层次和全局标签有几个额外的选项:自动 选项根据连接的原理图元素自动设置标签方向,形状 选项控制标签轮廓的形状(输入、输出、双向、三态 或 被动)。轮廓形状纯粹是视觉上的,没有电气上的影响。
在原理图设置对话框 中,全局标签有额外的设置来控制标签文本周围的边距。 |
标签也可以添加字段。有两个字段有特殊的意义("网络类" 和 "页面位号",下面会介绍),但也可以添加任意字段。标签字段的行为类似于符号字段:你可以显示或隐藏它们的名称和值,调整对齐方式、方向、位置、大小、字体、颜色或进行强调。
通过右击标签字段表的标题行,可以显示或隐藏标签字段的格式化选项,并启用或禁用所需的列。默认情况下,并非所有的列都显示。 |
与符号字段一样,标签字段可以通过从原理图中打开特定标签字段的属性进行单独编辑(双击标签字段,或使用 E)。
确认标签属性后,标签将被粘附到光标上进行放置。标签的连接点是标签角落里的小方块。当标签被连接到导线或引脚的末端时,这个方块就会消失。

连接点相对于标签文本的位置可以通过在标签的属性中选择不同的标签方向,或通过镜像/旋转标签来改变。
通过选择一个标签并使用 E 快捷键、双击该标签或在右键菜单中使用 属性…,可以随时访问标签属性对话框。
用标签分配网络类
除了分配网络名外,标签还可以用来分配网络类。一个名为 "网络类" 的标签字段将指定的网络类分配给与该标签相关的网络。为了便于以这种方式分配网络类,"网络类" 是新标签字段的默认名称,"网络类" 字段显示设计中所有网络类的下拉列表。网络类必须在原理图设置或电路板设置 窗口中创建,然后才能为其分配标签字段。
关于分配网络类的更多信息,请参见网络类文档。
页面间引用
全局标签可以显示页面间引用,它展示了原理图中出现同一全局标签的其他地方的页码列表。 点击页面间引用就可以进入所列出的页面。如果列出了多个引用,点击引用列表会弹出一个菜单来选择所需的页面。
页面间引用在 原理图设置 窗口的格式页面中进行全局控制。 可以启用或禁用引用,并且可以调整列表的显示格式,包括可选的前缀或后缀字符。
下图显示了一个全局标签,其中有对其他两个原理图页面的引用。在原理图设置中,分别添加了前缀和后缀 [
和 ]
。

全局标签会自动添加一个 "页面参考" 字段,其值为 "${INTERSHEET_REFS}",用于控制该标签的页面间引用。${INTERSHEET_REFS}
文本变量会被扩展为全局标签页面间引用的完整列表,和在原理图设置中的一致。页面间引用的可见性在 "原理图设置" 中全局控制,而不是通过 "页面间引用" 字段的可见性控制。对于其他类型的标签,"页面间引用" 字段没有意义。
总线
总线是一种在原理图中分组相关信号的方法,以简化复杂的设计。 总线可以像导线一样用总线工具画出来 ,并像信号线一样用标签命名。
在下面的原理图中,许多引脚都连接到总线上,也就是中间的蓝色粗线。

总线成员
在 KiCad 6.0 及以后版本中,有两种类型的总线:矢量总线和分组总线。
一个 矢量总线 是一个信号的集合,以一个共同的前缀开始,以一个数字结束。 矢量总线被命名为 <前缀>[M..N]
,其中`前缀`是任何有效的信号名称,M
是第一个后缀数字,N
是最后的后缀数字。 例如,总线 DATA[0…7]
包含信号 DATA0
、DATA1
,以此类推,直到 DATA7
。 指定 M
和 N
的顺序并不重要,但两者必须是非负数。
一个 分组总线 是一个或多个信号和/或矢量总线的集合。 分组总线可以用来把相关的信号捆绑在一起,即使它们有不同的名字。 分组总线使用一种特殊的标签语法:
<OPTIONAL_NAME>{SIGNAL1 SIGNAL2 SIGNAL3}
该分组的成员被列在大括号({}
)内,用空格字符隔开。 在大括号的前面有一个可选的分组名。 如果分组总线没有命名,PCB 中产生的网络将作为该分组内的信号名称。 如果分组总线有名字,产生的网络将以名字为前缀,用句号(.
)分隔前缀和信号名称。
例如,总线 {SCL SDA}
有两个信号成员,在网表中这些信号将是 SCL
和 SDA
。 总线 USB1{DP DM}
将产生名为 USB1.DP
和 USB1.DM
的网表。 对于在几个类似电路中重复出现的较大的总线的设计,使用这种技术可以节省时间。
分组总线也可以包含矢量总线。 例如,总线 MEMORY{A[7..0] D[7..0] OE WE}
同时包含了矢量总线和普通信号,并将在 PCB 上形成 MEMORY.A7
和 MEMORY.OE
这样的网络。
总线的绘制和连接方式与信号线相同,包括使用结点来创建交叉线之间的连接。 与信号线一样,总线不能有一个以上的名称—如果在同一总线上有两个冲突的标签,将产生一个 ERC 违规。
总线成员之间的连接
总线相同成员之间连接的引脚必须通过标签连接。不可能将一个引脚直接连接到总线上;这种连接方式将被 KiCad 忽略。
在上面的例子中,连接是通过放置在连接到引脚的导线上的标签来实现的。连接总线的总线入口(45 度的线段)只是图形化的,并不是形成逻辑连接的必要条件。
事实上,使用重复命令(Insert),如果元件引脚以递增的顺序排列,可以非常快速地进行连接(在实践中,这种情况常见于存储器、微处理器等元件):
-
放置第一个标签(例如:
PCA0
)。 -
尽量使用重复命令来放置成员。 KiCad 将自动创建下一个标签(
PCA1
,PCA2
…)垂直对齐,理论上是在其他引脚的位置上。 -
在第一个标签下画线。然后使用重复命令将其他导线放在标签下。
-
如果需要,以同样的方式放置总线入口(放置第一个入口,然后使用重复命令)。
在偏好设置菜单的 原理图编辑器 → 编辑选项 部分,你可以设置重复的参数:
|
总线展开
展开工具允许你快速地从总线上分离出信号。 要展开一个信号,请右击一个总线对象(一个总线导线等),并选择 从总线上展开。 或者,当光标在一个总线对象上时,使用 展开总线 快捷键(默认:C)。 该菜单允许你选择要展开的总线成员。
在选择总线成员后,下一次点击将把总线成员的标签放在所需的位置。 该工具会自动生成一个总线入口和通向标签位置的导线。 放置完标签后,你可以继续放置额外的导线(例如,连接到一个元件引脚),并以任何正常方式完成布线。
总线别名
总线别名是一种快捷方式,可以让你更有效地处理大型分组总线。 它允许你定义一个分组总线,并给它一个简短的名称,然后可以在整个原理图中代替完整的分组名称。
要创建总线别名,请在原理图设置中打开 总线别名定义 窗格。

一个别名可以被命名为任何有效的信号名称。 使用该对话框,你可以向别名添加信号或矢量总线。 作为一种快捷方式,你可以输入或粘贴信号和/或总线的列表,用空格隔开,它们将全部被添加到别名定义中。 在这个例子中,我们定义了一个名为 USB
的别名,成员为 DP
、DM
和 VBUS
。
定义别名后,可以在分组总线标签中使用,方法是将别名放在分组总线的大括号内:{USB}
。 这与给总线贴上`{DP DM VBUS}` 标签的效果相同。 你也可以给分组添加一个前缀名,比如 USB1{USB}
,这样就会产生如上面所说的 USB1.DP
这样的网路。 对于复杂的总线,使用别名可以使原理图上的标签短得多。 请记住,别名只是一个快捷方式,别名的名称不包括在网表中。
总线别名被保存在创建别名时打开的原理图文件中。在 总线别名定义 窗口中,与所选别名相关的原理图文件显示在别名列表的底部。在一个给定的原理图页面中创建的任何别名都可以在同一层次设计中的任何其他原理图页面中使用。如果一个层次设计中的多个原理图包含相同名称的总线别名,这些别名必须都有相同的成员。如果多个同名的总线别名没有一致的成员,ERC 将报告违规情况。
有多个标签的总线
KiCad 5.0 或更早的版本允许将具有不同标签的总线连接在一起,并在网表编制时将这些总线的成员连接起来。这种行为在 KiCad 6.0 中被移除了,因为它与分组总线不兼容,而且还会导致网表的混乱,因为一个给定的信号将得到的名称不容易预测。
如果您在现代版本的 KiCad 中打开使用此功能的设计,您将看到“迁移总线”对话框,该对话框将指导您更新原理图,以便在任何给定的总线线路上只存在一个标签。

对于具有多个标签的每组总线,您必须选择要保留的标签。 下拉名称框允许您在设计中存在的标签之间进行选择,或者您可以选择一个不同的名称并手动将新名称输入名称字段。
隐藏电源引脚
当一个符号的电源引脚是可见的,它们必须被连接,就像其他信号一样。然而,诸如门和触发器等符号有时会存在隐藏的电源输入引脚,这些引脚是隐性连接的。
KiCad 会自动将类型为 "电源输入" 的隐形引脚连接到与该引脚同名的全局网络。例如,如果一个符号有一个名为 VCC
的隐藏电源输入引脚,这个引脚将被全局连接到所有原理图上的 VCC
网络。
隐藏的引脚可以在原理图中显示,方法是在 原理图编辑器 → 偏好设置的 显示选项 部分勾选 显示隐藏的引脚,或者选择 视图 → 显示隐藏的引脚。在左侧工具栏上还有一个切换是否显示隐藏引脚的图标 ![]() |
有时将不同名称的电源网络连接起来可能是必要的(例如,TTL 元件中的 GND
和 MOS 元件中的 VSS
)。为了达到这个目的,为每个网络添加一个 电源符号,并用一根导线连接它们。
如果使用隐藏的电源引脚,不建议使用本地标签进行电源连接,因为它们不会连接到其他原理图页面的隐藏电源引脚。
对隐藏的电源输入引脚必须小心,因为它们可能会产生意外的连接。从本质上讲,隐藏的引脚是不可见的,不显示其引脚名称。这使得很容易意外地将两个电源引脚连接到同一个网络。由于这个原因,除电源符号外,不推荐使用隐形电源引脚,且只支持与遗留设计和符号兼容。 |
电源符号
电源符号通常用来表示与电源网络的连接,如`VCC` 或 GND
。作为视觉标志,电源符号表示了与其相连的网络为电源。除此之外,电源符号还可以进行全局连接:两个具有相同引脚名称的电源符号在原理图中的任何地方都可以相互连接,无论是哪个原理图页面。
在下图中,电源符号用于将电容器的正负极分别连接到 VCC
和 GND
网络上。

在 KiCad 标准库中,电源符号可以在 power
库中找到,但电源符号可以在任何库中创建。要创建一个自定义的电源符号,先创建一个新的符号,将其电源输入引脚设置为不可见。根据所需的电源网络来命名该引脚。此外,设置 "定义为电源符号" 的符号属性。正如隐藏的电源引脚部分所述,不可见的电源输入引脚会根据隐藏的电源引脚名称进行全局连接。创建电源符号的过程将在符号编辑器部分中详细描述。
连接的网络名称是由电源符号的 引脚名称 决定的,而不是符号的名称或值。这意味着电源符号的网络名称只能在符号编辑器中改变,不能在原理图中改变。 |
网络名分配规则
原理图中的每个网络都被分配了一个名称,无论这个名称是由用户指定还是由 KiCad 自动生成。
当多个标签附加到同一个网时,最终的网络名将按以下顺序确定,从最高优先级到最低:
-
全局标签
-
局部标签
-
层次标签
-
层次原理图引脚
如果一个网络有多个同一类型的标签,则按字母顺序排序,使用第一个。
如果一个网络经过层次的多张原理图,它的名字将取决于层次结构中优先级最高的标签。通常,局部标签优先级高于层次标签。
如果以上标签类型都没有添加到网络中,那么网络的名称将根据连接的符号引脚自动生成。
PWR_FLAG
上面的截图中可以看到两个 PWR_FLAG
符号。它们向 ERC 表明,两个电源网络 VCC
和 GND
实际上连接到一个电源上,虽然没有明确的电源输出(如电压调节器输出)连接到以上两个网络。
如果没有这两个标志,ERC 工具会诊断出:错误:输入电源引脚没有被任何输出电源引脚驱动。
PWR_FLAG
符号可以在 power
符号库中找到。将任何电源输出引脚连接到网络上,可以达到同样的效果。
无连接标志
无连接标志()用来表示某个引脚是故意不连接的。 这些标志对原理图的连接性没有任何影响,但它们可以防止对故意不连接的引脚发出 "未连接引脚" 的 ERC 警告。
网络类
网络类是可以被分配设计规则(用于 PCB)和图形属性(用于原理图)的网络分组。在 KiCad 中,每个网络都是某个网络类的一部分。如果你没有将网络添加到一个特定的网络类中,它将是“默认类”的一部分,“默认类”总是存在。
网络类可以在原理图或电路板设置对话框中创建和编辑。可以使用下面描述的基于模式的分配将网络添加到原理图或电路板的网络类中。在原理图中,也可以通过图形标识的方式,如网络类标识符或网络标签将网络分配到网络类中。
选择一个导线或标签会在窗口底部的信息面板中显示该网络的网络类。

在原理图设置中管理网络类
网络类在 原理图设置 对话框的 网络类 面板中管理。

顶部的窗格列出了设计中存在的网络类。默认
网络类总是存在的,你可以通过 按钮添加额外的网络类,或者通过
按钮删除选定的网络类。
每个网络类可以有独特的图形属性,它决定该网络类的导线如何在原理图中显示。导线和总线的厚度、颜色和线条风格(实线、虚线、点线等)都可以调整。将颜色设置为透明将使用主题的默认导线/总线颜色,该颜色可在偏好设置中配置。
您还可以为每个网类设置电路板设计规则,但默认情况下 DRC 字段是隐藏的。 右键单击标题行以显示或隐藏其他列。 有关设置网络类设计规则的更多信息,请参阅 PCB editor documentation。
底部窗格列出了基于模式的网络类分配。 每行都有一个网络名称模式和一个网络类; 名称与模式匹配的网络被分配给指定的网络类。 如果网络匹配多个模式,则使用第一个匹配项。 基于模式的网络类分配是动态的:当添加与现有模式匹配的新网络时,它将自动分配给关联的网络类。 网络模式可以使用通配符( *
匹配任意数量的任意字符,包括无字符,以及 ?
匹配任意字符)和 正则表达式 。匹配所选模式的网络显示在模式列表的右侧。
例如, net*
模式匹配名为 net
, net1
, network
, 和任何其他以 net
开头的网络名称的网络。 因为 *
在正则表达式中的含义略有不同(*
匹配零个或多个前面的字符), net*
模式也匹配名为 ne
的网络。
记住,网络名必须包括完整的原理图页面路径。例如,一个在根原理图中本地标记的网络有一个以 / 为前缀的名称。
|
使用 按钮来添加网络类分配模式,或
按钮来删除模式。
仅包含 * 通配符的网络类模式将匹配所有明确命名的网络,但不会匹配未标记的网络。 要匹配未标记的网络,您可以在通配符之前包含更多网络名称特点。 所有未标记的网络的名称都以 Net- 开头,因此模式 Net-* 将匹配所有未标记的网络。 您还可以使用 网络类标识符 为未标记的网络分配一个网络类。
|
您可以从原理图画布上直接创建网络类模式,而不是在原理图设置对话框中添加网络类模式。右击一个网络,选择分配网络类…,就会出现添加网络类分配对话框。网络类模式会预先填上所选网络的名称,但如果需要,也可以改变模式。所有符合该模式的网络都显示在对话框中。

在原理图中以图形方式分配网络类
作为基于模式的网络类分配的替代方法,网络类可以用 网络类标识符 或 标签 以图形方式分配给原理图中的网络。网络类必须在原理图设置中创建,然后才能以图形方式分配。
在下面的图片中,一个网络类标识符被用来给 50R
网络类分配信号。

网络类标识符通过右侧工具栏的 按钮添加的。网络类标识符除了不能被用来命名网络之外,行为类似于标签。根据标识符的
网络类
字段的值,与标识符关联的网络被分配了一个网络类。`网络类`字段提供了设计中所有网络类的下拉列表。
如果一个标识符被附加到一个总线上,总线上的所有成员都被分配到指定的网络类。

除了相关的网络类,你还可以在标识符的属性中编辑标识符的形状(点、圆、菱形或矩形)、方向、引脚长度 和 颜色。
也可以用网络标签给网络分配网络类,方法是在标签中添加一个 网络类
字段。
如果一个网络被图形化分配了两个不同的网络类,ERC 将报告一个问题。图形化的网络类分配优先于基于模式的分配:如果一个网络与网络类模式分配相匹配,并且也有一个图形化的网络类分配,那么将使用图形化的网络类分配。
图形对象
文字、图形和图像可以被添加到原理图中,用于文档的目的。这些对象对原理图没有任何电气影响。
下面的图片除了符号和几种类型的标签外,还显示了图形线和文字("COMMUNICATION DSP")。

文本和文本框
有两种文本可以被添加到原理图中,分别为文本()和文本框(
)。两者都可以通过右侧工具栏中各自的按钮添加。

这两种文本项目都支持多行文本和基本的格式设置功能,文本框还可以将文本换行以适应文本框外框,并有额外的格式选项。所有的文本都有可调整的字体、颜色、大小、黑体和斜体,左右对齐,以及垂直和水平方向。文本框还支持水平居中,垂直对齐选项,以及彩色边框和填充。

链接
文本和文本框可以通过在文本属性的 链接 框中输入一个目标而成为一个链接。链接目标可以是一个本地文件(使用 file://
协议前缀,后跟文件路径),或者是一个网站(使用 http://
或 https://
,后跟其余的 URL),或导航到同一原理图设计中的另一个页面(使用 #
后跟页码)。这些也可以使用链接目标框中的下拉菜单自动填写。
字体
文本和文本框支持自定义字体,可通过文本的属性对话框中的 字体 下拉选择。除了 KiCad 字体外,你还可以使用安装在你电脑上的任何 TTF 字体。
用户字体不会被嵌入工程中。如果该工程在另一台没有安装所选字体的计算机上打开,将会被替换为不同的字体。为了获得最大的兼容性,请使用 KiCad 字体。 |
文本标记
文本标记支持上标, 下标, 评估工程变量和访问符号字段值。
功能 | 标记语法 | 结果 |
---|---|---|
上标 |
|
textsuperscript |
下标 |
|
textsubscript |
上划线 |
|
text |
|
variable_value |
|
|
field_value of symbol refdes |
图形形状
图形矩形()、圆形(
)、弧形(
)和直线(
)都可以使用右侧工具栏中各自的按钮添加。

线宽、颜色和样式(实线、虚线或点线)可以在每个图形(E)的属性对话框中进行配置。矩形、圆形和弧形也可以设置填充颜色并去除其轮廓线。

将形状的线宽设置为 0,则使用原理图的默认线宽,该线宽可在 <schematic-setup,原理图设置>> 中配置。虚线的间距也可以在那里配置。移除线条或填充物的颜色将会使用颜色主题的图形颜色,这可以在 偏好设置 中配置。
与导线一样,图形的线条服从线条的绘制模式设置(90 度,45 度,或自由角度),可以用左侧工具栏的切换按钮来设置 (,
, and
)。 Shift+Space 循环切换这些模式。
与 PCB 布线一样 ,/ 快捷键切换线条模式。
位图图像
位图图像可以通过 按钮添加到原理图中。原理图中的图像可以被移动和缩放。属性对话框允许设置位置和比例,以及将图像转换为灰度。
批量编辑文本和图形
文本和图形的属性可以通过 编辑文本和图形属性 对话框(工具 → 编辑文本和图形属性…)进行批量编辑。该工具还可以修改导线和总线的视觉属性。

范围和筛选器
范围 设置限制了该工具只能编辑某些类型的对象。如果没有选择范围,就不会有任何东西被编辑。
过滤器 将工具限制为编辑选定范围内的特定对象。
仅当对象匹配所有已启用和相关过滤器时才会修改对象
(某些过滤器不适用于某些类型的对象。例如,符号
字段过滤器不适用于电线,并且出于更改导线属性的目的而被忽略)。
如果未启用过滤器,则将修改所选范围内的所有对象。
对于带有文本框的过滤器,支持通配符: *
匹配任意数量的任意字符,包括无字符,?
匹配任意单个
字符。
按名称筛选 筛选指定的符号、标签或图纸页面字段。
按父级位号筛选 筛选具有指定位号的符号中的字段。通过父级符号库 ID 筛选具有指定库位号的符号中的字段。*通过父级符号类型*筛选到选定类型(电源或非电源)的符号中的字段。
通过网络筛选 筛选指定网络上的导线和标签。
仅包括选定的项目 筛选当前选择。
可编辑的属性
可以在对话框的底部为被筛选对象的属性设置新值。
下拉列表和文本框可以被设置为 --保持不变--
以保留现有值。复选框可以被选中或不被选中来启用或禁用一个变化,但也可以切换到第三个 "保持不变" 的状态。颜色属性必须被选中以改变值;棋盘式的色块表示颜色将从原理图设置或网络类属性的默认值中继承下来。
可以修改的文本属性有 字体、文本大小、文本方向(右/上/左/下)、水平 和 垂直对齐、文本颜色、强调(粗体*和*斜体)以及字段和字段名的 可见性。
可以修改的图形和导线属性有:线宽、线样式(实线、虚线和点线)、线颜色、图形的 填充颜色,以及导线结点的 结点尺寸 和 结点颜色。
原理图标题栏
标题栏是用页面设置工具()编辑的。

可以编辑标题栏中的每个字段,以及纸张大小和方向。 如果为某个字段选中了 导出到其他原理图页 选项,则该字段将在所有原理图页的标题栏中更新,而不仅仅是当前原理图页。
你可以用 发布日期 旁的左箭头按钮将日期设置为今天或其他任何日期,但原理图中的日期不会自动更新。
也可以选择一个原理图模板文件。

原理图页码(页面X/Y)会自动更新,也可以用 编辑 → 编辑原理图页码… 手动设置。
原理图设置
原理图设置窗口用于设置当前活动原理图的原理图选项。例如,原理图设置窗口包含格式化选项、电气规则配置、网络类设置和原理图文本变量设置。
您可以使用 从另一个项目导入设置… 按钮从已有项目导入原理图设置。 这允许您选择一个项目用作模板并选择要导入的设置 (格式首选项, 字段名称模板, 管脚冲突映射, 违规严重性设置和网络类)。
原理图格式

格式化面板包含符号、文本、标签、图形和导线的外观设置。
符号单元表示法 设置多单元符号的每个单元在其位号中的引用方式。 默认情况下,每个单元的不同字母会添加到到没有分隔符的位号后,例如符号 U1
的第二个单元为 U1B
,但这可以更改。 可以使用数字代替字母,并且可以在符号的位号和单元标识符之间使用各种分隔符(.
、-
、_
或无)。
默认文本大小 设置文本、文本框和标签工具使用的默认文本高度。 相对于标签的文本大小,标签偏移率 控制本地标签文本和连接线之间的垂直间距。 这也会影响符号引脚之间的间距及其引脚编号。
相对于全局标签的文本大小,全局标签边距 定义了全局标签周围框的大小。
增加边距可能有助于避免带上划线的文本 (~{}
) 或下沉字母的重叠,但这可能会导致紧密排列的全局标签之间相互重叠。
如果符号不覆盖默认线宽,默认线宽 设置定义了符号图形的默认线宽。 引脚符号大小 缩放符号引脚图形样式标注,例如倒置引脚上的气泡。
结点大小 设置原理图的默认导线结点大小。 可以通过编辑单个结点的属性来覆盖默认大小。
显示页面间引用 启用或禁用 页面间引用 的显示,它是全局标签旁边的页码列表,链接到原理图中相同名称全局标签出现的位置。 显示当前页面引用 控制当前页面是否包含在页码列表中。 标准 和 缩略 确定是显示完整的页码列表还是仅显示第一页和最后一页的页码。 前缀 和 后缀 字段在页码列表前后添加可选字符。 在下面的页面间引用图例中,分别添加了 [
及 ]
的前缀和后缀。

虚线外观在格式部分中控制。 虚线长度 控制破折号的长度,而 间隙长度 控制破折号和点之间的间距。 破折号和间隙长度是相对于线宽的:间隙长度为 2
则表示线宽的两倍。
字段名称模板

字段名称模板是空的符号字段,会自动添加到原理图中的所有符号。 当原理图中的每个符号都需要在符号中定义的默认字段之外的其他字段时,这可能很有用,例如制造商部件号的字段。
模板字段可以设置为可见或不可见,也可以设置为URL 字段。
在原理图设置中定义的字段名称模板仅适用于当前项目。 字段名称模板也可以在偏好设置中定义,它适用于在您的计算机上编辑的所有项目。
ERC 违规严重性和管脚冲突映射
违规严重性 面板可让您配置应将哪些类型的 ERC 消息报告为错误、警告或忽略。

引脚冲突映射 允许您配置连接规则,以根据相互连接的引脚类型定义错误和警告的电气条件。 例如,默认情况下,当输出引脚连接到另一个输出引脚时会产生错误。

这些面板在 [ERC - 配置,ERC 章节] 中有更详细的解释。
网络类

网络类 面板允许您管理项目的网络类,并使用模式将网络分配给网络类。 在此面板中管理网络类等同于在 电路板设置对话框 管理它们。 也可以使用带有 [网络类 - 标识符,网络类标识符]或 [标签 - 网络类,网络标签] 的图形分配方法将网络分配给原理图中的网络类。
基于模式的网络类分配在 网络类章节 中有更详细的解释。
文本变量

文本替换变量可以在文本变量部分创建。 这些变量允许您用变量名替换任何文本字符串。 这种替换发生在变量名称在 ${VARIABLENAME}
的变量替换语法中使用的任何地方。
例如,您可以创建一个名为 VERSION
的变量并将文本替换设置为“1.0”。 现在,在 PCB 上的任何文本对象中,您可以输入 ${VERSION}
,KiCad 将其替换为 1.0
。 如果将文本替换更改为 2.0
,则包含 ${VERSION}
的每个文本对象都将自动更新。 您还可以混合使用常规文本和变量。 例如,您可以使用文本 Version: ${VERSION}
创建一个文本对象,它将被替换为 Version: 1.0
。
文本变量也可以在 电路板设置中创建。 文本变量是项目范围的; 在原理图编辑器中创建的变量在电路板编辑器中也可用,反之亦然。
还有一些内置系统文本变量。
Opening legacy schematics
Modern versions of KiCad can always open projects created in older versions of KiCad. However, schematics created in some older versions of KiCad have special considerations that must be observed when opening them in order to prevent any data loss.
Opening KiCad 5.0 and 5.1 schematics
Modern versions of KiCad can open schematics created in versions prior to KiCad 6.0, but the cache library file (<projectname>-cache.lib
) must be present to load the schematic correctly.
Since version 6.0, KiCad stores all symbols used in a project in the schematic. This means that you can open a schematic made in KiCad 6.0 or later on any computer, even if the libraries used in the project are not installed or have changed. Modern KiCad schematic files use the .kicad_sch
extension.
Prior to version 6.0, KiCad did not store symbols in the schematic. Instead, KiCad stored references to the symbols and their libraries. It also stored a copy of every symbol used by the project in a separate cache library file (<projectname>-cache.lib
). As long as the cache library was included with the project, the project could be distributed without the system library files, because KiCad could load any needed symbols from the cache library as a fallback if the libraries referenced in the schematic were missing. Legacy KiCad schematic files use the .sch
extension.
When you open a legacy schematic, KiCad will look in the cache library to find all of the symbols used in the schematic in the cache library. When you save the legacy schematic, KiCad will save it as a new file in the modern schematic format (.kicad_sch
), with the necessary symbols embedded in the schematic itself. The original legacy schematic and the cache library will remain, unmodified, but they are no longer necessary once the schematic has been saved in the modern format.
Projects created in KiCad prior to version 6.0 must have a cache library. If the cache library is missing, the schematic will lose symbol information if the system symbol libraries are modified, reorganized, moved, or deleted. The libraries included with legacy versions of KiCad are substantially different than the modern KiCad libraries, so in practice KiCad will almost always fail to open legacy projects unless the cache library is present. |
When you open a legacy schematic, KiCad may display the Project Rescue Helper dialog. This means that one or more symbols in the cache library do not match the corresponding symbol in the external library. The dialog helps you "rescue" symbols from the cache library into your schematic, if desired. You can also open the rescue dialog at any time using Tools → Rescue Symbols…. The cache library file must be present in order to use the rescue tool.

The rescue dialog lists all symbols that don’t match between the cache library and the external symbol library. The discrepancy can be because:
-
the cached symbol or the library symbol has been modified, so the two symbols no longer match, or
-
the cached symbol does not have a corresponding symbol in the symbol library, because the symbol or library was moved, renamed, deleted, or is not present on the current computer.
For each symbol in the list, selecting the symbol displays the reference designator and value for each instance of the symbol, and shows a visual preview of the symbol. If a corresponding symbol exists in the system symbol library, the dialog shows both copies of the symbol for comparison. If the symbol only exists in the cache library, the dialog only shows the cached symbol.
In this example, the project originally used a diode with the cathode facing left, but the library now contains one with the cathode facing right. This change would break the design, so it would be important to use the cached symbol as the original designer intended.
Pressing Rescue Symbols here will cause the selected symbols from the cache library to be saved into a special rescue
library (<projectname>-rescue.kicad_sym
). The corresponding symbols in the schematic will be updated to use the newly rescued symbols. Any unselected symbols will not be rescued, but their symbol linkage can be updated in the schematic later.
Alternatively, pressing Skip Symbol Rescue will exit the dialog without rescuing any symbols. KiCad will use the versions of the symbols found in the external libraries. You can run the rescue function again with Tools → Rescue Symbols…, or manually edit symbol linkage in the symbol’s properties.
If you would prefer not to see this dialog, you can press Never Show Again. This has the same effect as pressing Skip Symbol Rescue for the current schematic and all future schematics.
If a symbol in a legacy schematic cannot be found in either the cache library or the external library, KiCad cannot rescue that symbol. A placeholder symbol is inserted into the schematic in its place, as shown below.
You can attempt to remap these orphaned symbols using the Change Symbols or Edit Symbol Library Links dialogs, but either option may require manual corrections to the schematic. These tools are explained in more detail in the Updating and exchanging symbols section.

Opening pre-5.0 schematics
Modern versions of KiCad can open schematics created in versions prior to KiCad 5.0, but you will need to go through a symbol remapping process to open the schematic without losing symbol information.
Since version 5.0, KiCad schematics refer to specific symbols using both the symbol and library name. Even if multiple libraries each contain a symbol with the same name, the designer’s intended symbol is unambiguously specified.
Prior to version 5.0, KiCad schematics stored only the symbol name, not the library name. Symbols in the schematic were indirectly mapped back to the original library by searching through the project’s library list for a matching symbol. When you open a pre-5.0 schematic, KiCad will attempt to automatically "remap" the symbols so that each bare symbol name is replaced with a fully-specified symbol library and symbol name pair. The original schematics will be backed up in a rescue-backup
folder.
You can skip the automatic remapping, but you will need to remap the symbols yourself using the Change Symbols dialog. You can also re-run the Remap Symbols tool using Tools → Remap Legacy Library Symbols….

层次原理图
简介
在 KiCad 中,多张原理图可以形成层次结构:有一个根原理图,其他图作为根原理图或另一个子原理图的子原理图被创建。如果需要的话,原理图可以被多次包含在一个层次结构中。
仔细地将原理图绘制成层次设计,可以提高原理图的可读性,减少重复绘制。
创建层次原理图是从根原理图开始的。其过程是创建一个子原理图,然后在子原理图中绘制电路,并在原理图之间进行必要的电气连接。可以使用层次引脚和标签为子原理图和父原理图的网络建立连接,也可以使用全局标签为层次中的任意网络建立连接。
在设计中添加原理图
你可以用 "添加层次原理图" 工具(S 快捷键,或右边工具栏上的 按钮)在设计中添加一个子原理图。启动该工具,然后在画布上点击两次,绘制子原理图符号的左上角和右下角。使子原理图符号的轮廓足够大,以放下后续添加的层次引脚。

原理图属性对话框将出现,并提示输入原理图名称和文件名。

Sheetname 原理图名称必须是唯一的,因为它被用于子原理图中任何网络的全局网络名称中。例如,在原理图 sheet1
中具有局部标签 net1
的网络将具有 /sheet1/net1
的全局网络名称。原理图名称也被用来在图形用户界面的不同地方指代原理图,包括原理图标题块和层次导航。
Sheetfile 原理图文件指定将被保存或加载的原理图文件。原理图文件的路径可以是相对的或绝对的。通常最好是将子原理图文件保存在工程目录中,并使用相对路径,这样便于工程的移植。
通过为每个重复的原理图指定相同的文件名,一个原理图文件可以在一个工程中使用多次;原理图中绘制的电路将在每次使用时被实例化一次,任意实例中的任何编辑都将反映在其他实例中。
原理图文件可以在多个工程之间共享,以允许在工程之间的设计复用。然而,对路径可移植性的考量,以及在编辑共享图纸时无意中改变其他工程的风险,不建议这样做。 |
还有几个图形选项可用。边界宽度 设置图纸形状周围的边界宽度。边界颜色 和 背景填充 分别设置图纸形状的边界和填充的颜色。如果没有设置颜色,就会显示一个棋盘式的色块,并使用颜色主题的默认值。
原理图页支持任意自定义字段,可以分别使用 和
按钮添加和删除。 通过选中它们的 显示 框,可以选择在原理图上显示页面字段,并且可以使用 文本变量 从图纸内部或其他图纸字段中访问它们。
通过选择一个页面符并使用 E 快捷键,或者通过右键单击页面符并选择 属性…,可以随时访问页面符属性对话框。
原理图之间导航器
你可以通过双击父原理图的图框,或右击图框并选择 进入原理图,从父原理图进入一个层次化的子原理图。
通过使用顶部工具栏中的 按钮,或者在原理图的空白部分点击右键,然后点击 离开原理图,返回到父原理图。
你可以用 按钮跳到下一个原理图,或者用
按钮跳到上一个原理图。
另外,你也可以通过层次结构导航器跳转到任何原理图。要打开层次结构导航器,请点击左边工具栏上的 按钮。层次结构导航器会停靠在屏幕的左边。设计中的每个原理图都显示为工作区中的一个项目。点击原理图的名字就可以在编辑画布上打开该原理图。

原理图之间的电气连接
标签概述
原理图之间的电气连接是通过 标签进行的。在 KiCad 中,有几种标签,每种都有不同的连接范围。
-
局部标签 只在某个原理图内部有效。因此,局部标签不能用于不同原理图之间的连接。局部标签的添加方法是
按钮添加。
-
全局标签 在所有的原理图中有效,无论是哪个子原理图。 全局标签可以使用
按钮添加。
-
层次化标签 连接到父原理图中*层次原理图引脚*。层次化设计依靠层次化标签和层次原理图引脚来实现父原理图和子原理图之间的连接;你可以把层次原理图引脚看成是父原理图与子原理图的接口。层次化标签可以使用
按钮添加。
如果在同一个原理图页面,无论标签类型如何,具有相同名称的标签将被连接。 |
隐藏电源引脚也可以被认为是全局标签,因为它们可以连接到原理图层次结构中的任何地方。 |
层次原理图引脚
在子原理图内放置层次标签后,可以在父原理图内的子原理图符号上添加匹配的 层次原理图引脚。然后,你可以用导线、标签及总线与层次原理图引脚进行连接。子原理图符号中的层次原理图引脚与子原理图中匹配的层次化标签相连。
在原理图页面符中导入相应的层次原理图引脚之前,必须先在子原理图中定义层次化标签。 |

对于子原理图中的每一个层次化标签,可以通过点击右侧工具栏中的 按钮,然后点击原理图页面符,将相应的层次化标签导入原理图页面符中。第一个与层次化标签匹配的层次化引脚将附在光标上,可以将它放在原理图页面符边界的任何地方。再次点击该工具将继续导入更多的层次原理图引脚,直到没有更多的层次化标签需要从子原理图中导入。层次原理图引脚也可以通过在原理图页面符的右键菜单中选择 导入层次原理图引脚 来导入。
你可以在原理图页面引脚属性对话框中编辑页面引脚的属性。 通过双击原理图页面引脚,或选择页面引脚并使用快捷键 E ,或者右击原理图页面引脚并选择 属性… 来打开这个对话框。

原理图页面引脚的 名称 可以在文本框中编辑,也可以从子原理图的层次化标签的下拉列表中选择。原理图页面引脚的名称必须与子原理图中相应的层次化标签相匹配,所以如果页面引脚的名称被改变,标签也必须改变。
形状 区域可以改变页面引脚的形状,但没有电气效果。它可以被设置为输入、输出、双向、三态或无源。 引脚的*字体*、文本大小、*颜色*和强调(粗体或斜体)也可以 被改变。
层次化设计实例
层次化设计可以被归入几个类别中的一个:
-
简单: 每张原理图只使用一次。
-
复杂: 一些原理图被多次使用。
-
扁平化: 简单的 层次结构的一个子案例,在子原理图和其父原理图之间没有连接。扁平的层次结构可以用来表示一种非层次结构设计。
每种层次结构模型都可能是有用的;最合适的模型取决于设计需求。
简单的层次结构
一个简单的层次结构的例子是 KiCad 包含的 video
演示工程。根原理图包含七个独特的子原理图,每个子原理图都有层次化标签和原理图页面引脚,将子原理图与根原理图相互连接。下面是其中两个子原理图的页面符。

复杂的层次结构
复杂的层次结构
演示工程是一个复杂层次结构的例子。 根原理图包含两个子原理图页面符,它们都指向同一个原理图文件(ampli_ht.kicad_sch
)。这使得设计中包含了同一个放大器电路的两个副本。尽管这两个原理图页面符指向同一个文件名,但原理图的名称是唯一的(ampli_ht_vertical
和 ampli_ht_horizontal
)。在每个子原理图内,除了位号外,其他的电路都是相同的,而位号也是唯一的。
这个工程不包含原理图层次引脚连接。根原理图和子原理图之间的唯一连接是用电源符号进行的全局连接。如果设计需要,复杂层次结构中的原理图可以包括原理图层次引脚的连接。

扁平化层次结构
flat_hierarchy
演示工程是一个扁平化层次结构的例子。根原理图包含两个不同的子原理图页面符,没有层次化原理图引脚。在这个工程中,根原理图除了容纳子原理图外没有任何作用,子原理图只是作为原理图中的附加页使用。
这是在 KiCad 中创建多页原理图的最简单方法。 |

检查原理图
查找工具
查找工具在原理图中搜索文本,包括位号、引脚名称、符号字段和图形文本。当该工具找到一个匹配的文本时,画布会被放大并居中显示该匹配的文本。使用顶部工具栏上的 按钮启动该工具。

查找工具有几个选项:
区分大小写: 选择搜索是否对大小写敏感。
关键词: 选择后,搜索将只与原理图中完整的搜索词相匹配。当未选择时,如果搜索词是原理图中一个较大的关键词的一部分,搜索将匹配。
通配符: 当选择时,通配符可以在搜索词中使用。?
匹配任何单个字符,而 *
则匹配任何数量的字符。请注意,当选择这个选项时,不会返回部分匹配:搜索 abc*
将匹配字符串 abcd
,但搜索 abc
不会。
搜索引脚名称和编号: 选择搜索是否应用于引脚名称和编号。
搜索隐藏字段: 选择搜索是否只应用于可见字段,或是否应包含隐藏的符号字段。
仅搜索当前原理图: 选择搜索是否应限于当前原理图或整个原理图。
还有一个查找和替换工具,可以通过顶部工具栏上的 按钮激活。这个工具的作用与查找工具相同,但还可以用不同的文本替换部分或全部匹配的文本。

当选中 替换位号中的匹配内容 选项时,如果包含匹配的文本,位号将被修改。否则,位号将不会受到影响。
网络高亮显示
在原理图编辑器中,电气网络可以在原理图中所有出现的位置高亮显示。网络高亮显示可以在原理图编辑器中激活,也可以在启用交叉探测高亮时在 PCB 编辑器中高亮相应的网络是激活(见下文)。当网络高亮显示激活时,高亮的网络将以不同的颜色显示。默认情况下,这种颜色是粉红色,但可以在 "偏好设置" 对话框的颜色部分进行配置。
可以通过点击右边工具栏中的高亮显示网络工具()高亮显示网络。另外,高亮网络的快捷键(`)也可以高亮显示光标下的网络。
可以使用清除网络高亮操作(快捷键 ~)或在原理图中的空白区域使用网络高亮显示工具来清除网络高亮网络。 默认情况下,Esc 也可以清除网络高亮显示,但如果需要,可以在 首选项 → 原理图编辑器 → 编辑选项 中将其禁用。
从 PCB 上交叉探测
KiCad 允许在原理图和 PCB 之间进行双向交叉探测。 有几种不同类型的交叉探测。
选择交叉探测 允许你在原理图中选择一个符号或引脚的同时选中 PCB 中相应的封装或焊盘(如果存在的话),反之亦然。默认情况下,交叉探测会将交叉探测的对象缩放到合适的大小并中心显示。可以在偏好设置对话框的显示选项部分禁用这一行为。
高亮显示交叉探测 允许你在原理图和 PCB 中同时高亮显示一个网络。 如果在 "偏好设置" 对话框的 "显示选项" 部分启用了 "高亮显示交叉探测的网络" 选项,那么在原理图编辑器中高亮显示一个网络或总线将导致 PCB 编辑器中相应的网络或网络被高亮显示,反之亦然。
电气规则检查
电气规则检查(ERC)工具检查你的原理图中特定的错误,如未连接的引脚、未连接的层次符号、短路的输出或其他非法连接,等等。ERC 的违规会根据检测到的问题的严重程度,以错误或警告的形式报告。
ERC 不是完美的,无法检测所有的错误,但它可以检测到许多常见的问题和疏忽。在继续设计之前,所有检测到的问题都应该进行检查和处理。ERC 的质量与符号创建过程中声明电气引脚属性的谨慎程度直接相关。如果符号设计不正确,ERC 将不会报告准确的信息。
ERC 可以通过点击顶部工具栏的 按钮并点击 运行 ERC 按钮来启动。

任何警告或错误都会在 违规行为 标签中报告,每个违规行为的标记都会放在原理图中,指向原理图的相关部分。警告用黄色箭头表示,错误用红色箭头表示。被排除的违规行为显示为绿色箭头。
在 ERC 窗口中选择一个违规,就会跳转到原理图中相应的违规行为。 |
窗口底部的数字显示错误、警告和排除的违规数量。每种类型的违规行为都可以用各自的复选框从列表中过滤出来。点击 删除标记 将清除所有违规行为,直到 ERC 再次运行。
可以在对话框中右键点击违规行为,以忽略它们或改变其严重程度:

-
排除此违规行为: 忽略此特定违规行为,但不影响其他违规行为。
-
改变严重程度: 将一个违规类型从警告改为错误,或将错误改为警告。这会影响到给定类型的所有违规行为。
-
忽略所有: 忽略所有给定类型的违规行为。这个测试现在将出现在 忽略的测试 标签,而不是 违规 标签。
你也可以用 检查 → 排除标记 排除所选标记,用 查看 菜单显示或隐藏每一类标记(错误、警告和排除)。
在设计规则检查器运行期间,排除的和忽略的违规行为会被记住。
ERC 例子

在上面的截图中,有三个错误。
-
两个输出被连接在一起(右边的红色箭头)。
-
有两个输入没有连接(左边的红色箭头)。实际上每个引脚都有两个错误:引脚未连接,而且每个引脚都是没有被输出引脚驱动的输入引脚。
选择一个 ERC 标记会在窗口底部的信息窗格中显示违规描述。

电源引脚和电源标志
如下面的例子所示,在电源引脚上出现 "输入电源引脚未被任何输出电源引脚驱动" 的错误是很常见的,即使电源引脚似乎正确地连接到电源导线。这种情况发生在通过连接器或其他没有被标记为电源输出的元件提供电源的设计中。在这些情况下,ERC 不会检测到任何连接到网络的输出电源引脚,而会判断输入电源引脚没有被电源驱动。

为了避免这个警告,可以将类似的电源网络连接到 PWR_FLAG
符号上,如下例所示。PWR_FLAG
符号可以在 power
符号库中找到。当然,也可以将任意电源输出引脚连接到该网络;PWR_FLAG
只是一个具有单一电源输出引脚的符号。

接地网络通常也需要一个 PWR_FLAG
,因为电压调节器的输出被声明为电源输出,但其接地引脚通常被标记为电源输入。因此,除非使用 PWR_FLAG
符号,否则地线可能看起来没有与电源相连。
关于电源引脚和电源标志的更多信息,请参见PWR_FLAG
文档。
ERC 配置
原理图设置中的 违规严重性 面板让你配置哪些类型的 ERC 应被报告为错误、警告或忽略。

原理图设置中的 引脚冲突映射 面板允许你配置连接规则,根据哪些类型的引脚相互连接来定义错误和警告的电气条件。例如,默认情况下,当一个输出引脚与另一个输出引脚连接时,会产生错误。

可以通过点击矩阵中的方块来改变规则,使其在各种选择中循环:允许、警告、错误。
ERC 检查清单
下表列出了 KiCad 检查的电气规则和每个检查的默认违规严重程度。所有严重程度都是可配置的。
违规行为 | 描述 | 默认严重程度 |
---|---|---|
引脚未连接 |
所有符号的引脚都必须连接到网络上,除非该引脚有 无连接标志 或其电气类型为无连接 |
错误 |
输入引脚没有被任何输出引脚驱动。 |
所有的输入引脚都必须连接到一个输出引脚。 |
错误 |
输入电源引脚没有被任何输出电源引脚所驱动。 |
所有的输入电源引脚都必须连接到一个输出电源引脚。 造成这种违规的常见原因 如上所述。 |
错误 |
一个带有 "无连接" 标志的引脚被连接了 |
带有 无连接标志的引脚不能被连接 到其它对象. |
警告 |
未连接的 "无连接" 标志 |
无连接标志 不能不连接。 它们必须连接到一个引脚或标签上. |
警告 |
标签没有连接到任何东西 |
全局标签、层次标签和局部标签必须连接到一个引脚或另一个标签上。 |
错误 |
全局标签没有连接到原理图中的任意地方 |
全局标签必须在原理图中多次出现,否则它们就 没有任何连接。 |
警告 |
导线没有连接到任何东西 |
导线必须连接到一个引脚或标签。 |
错误 |
需要总线入口 |
这种违规行为只适用于从 EAGLE 工程导入的工程。 它表示在某些地方,导入器无法自动将总线入口添加到导入的原理图中。 因此你必须手工添加它们。 |
错误 |
符号引脚或导线端点不在网格上 |
符号引脚和导线末端需要对准网格,以便 相互连接。 |
警告 |
重复的位号 |
两个符号不能有相同的位号。 |
错误 |
同一符号的单元有不同的值 |
同一符号的所有单元必须具有相同的值。 |
错误 |
符号的另一个单元中分配了不同的封装。 |
同一符号的所有单元必须有相同的封装分配。 |
错误 |
符号的另一个单元中的共享引脚分配的网络不同 |
同一符号的多个单元之间共享的任何引脚必须在所有单元中连接相同的网络。 |
错误 |
同一个子原理图有重复的图纸名称 |
所有层次结构的子原理图必须有唯一的图纸名称。 |
错误 |
层次标签和原理图页面符引脚不匹配。 |
所有层次化标签必须对应父原理图中的层次化页面符引脚。 所有的层次化页面符引脚必须在子原理图中存在对应的层次化标签 |
错误 |
该总线或网络的名称超过一个 |
网络只能有一个名称,所以如果一个网络上有多个标签, 将选择一个名称作为标准名称。 |
警告 |
不同原理图页面的总线别名定义冲突 |
如果在多个原理图中使用相同的总线别名, 每个原理图中的别名成员必须相同。 |
错误 |
总线在图形上有连接,但没有共享的总线成员 |
图形化连接的总线必须有共同的总线成员。 |
错误 |
总线和网络对象之间的连接无效 |
总线不能与导线、代表单个网络的标签或页面符引脚等网络对象连接。 标签和原理图页面符引脚只有在指代总线而不是单个信号时 才能与总线连接。 |
错误 |
网络在图形上连接到总线,但不是总线成员 |
网络只有在是总线的成员时,才能用总线入口连接到总线上。 |
警告 |
冲突的网络类分配 |
一个网络只能分配一个网络类。 |
错误 |
符号没有被批注 |
符号必须 用唯一的位号批注. |
错误 |
无法解析的文本变量 |
文本变量( |
错误 |
SPICE 模型问题 |
SPICE 模型不能有语法错误或其他问题。 |
错误 |
标签相似(仅小写/大写差异) |
如果两个标签相似,仅有几个字母大小写不同, 打字错误就可能造成两个原本应当相连的网络 没有连接。 |
警告 |
符号库问题 |
检查几个符号库问题:
|
警告 |
符号的单元多于定义的单元 |
符号在原理图中放置的单元不能多于符号中的定义。原理图中的单元必须与符号定义完全对应。 |
错误 |
符号中有未被放置的单元 |
多单元符号中的所有单元都应放置在原理图中。 |
警告 |
符号有未放置的输入引脚 |
多单元符号中有单元的输入引脚没有被放置,所以这些输入引脚不会被连接到任何东西。所有带有输入引脚的单元都应该被放置在原理图中。 |
警告 |
符号中有未被放置的双向引脚 |
多单元符号有未被放置的双向引脚的单元,因此这些双向引脚不会连接到任何东西。所有具有双向引脚的单元都应该被放置在原理图中。 |
警告 |
符号中有未被放置的电源输入引脚 |
一个多单元符号有未被放置的电源输入引脚的单元,因此这些电源输入引脚将不会被连接到任何东西。所有带有电源输入引脚的单元都应放在原理图中。 |
错误 |
引脚之间的冲突问题 |
引脚之间的连接必须符合引脚冲突图映射表中的允许连接。 |
ERC 报告文件
可以通过点击 ERC 对话框中的 保存… 按钮来生成和保存 ERC 报告文件。ERC 报告文件的扩展名为 .rpt
。下面给出一个 ERC 报告文件的例子。
ERC report (Fri 21 Oct 2022 02:07:05 PM EDT, Encoding UTF8) ***** Sheet / [pin_not_driven]: Input pin not driven by any Output pins ; Severity: error @(149.86 mm, 60.96 mm): Symbol U1B [74LS00] Pin 4 [, Input, Line] [pin_not_connected]: Pin not connected ; Severity: error @(149.86 mm, 60.96 mm): Symbol U1B [74LS00] Pin 4 [, Input, Line] [pin_not_connected]: Pin not connected ; Severity: error @(149.86 mm, 66.04 mm): Symbol U1B [74LS00] Pin 5 [, Input, Line] [pin_to_pin]: Pins of type Output and Output are connected ; Severity: error @(165.10 mm, 63.50 mm): Symbol U1B [74LS00] Pin 6 [, Output, Inverted] @(165.10 mm, 46.99 mm): Symbol U1A [74LS00] Pin 3 [, Output, Inverted] [pin_not_driven]: Input pin not driven by any Output pins ; Severity: error @(149.86 mm, 66.04 mm): Symbol U1B [74LS00] Pin 5 [, Input, Line] ** ERC messages: 5 Errors 5 Warnings 0
分配封装
在对 PCB 进行布线之前,需要为每一个将要装配在电路板上的元件选择封装。封装定义了物理元件和电路板上的布线之间的铜连接。
有些符号预分配了封装,但对许多符号来说,有多种可能的封装,所以用户需要选择合适的封装。
KiCad 提供了几种分配封装的方法:
-
符号属性
-
符号属性对话框
-
符号字段表
-
-
在放置符号的同时
-
封装分配工具
下面将对每种方法进行解释。使用哪种方法是一个偏好的问题;根据情况,某种方法可能更方便。所有这些方法都是等效的,它们在符号的 封装
字段中存储所选封装的名称。
封装库表需要在分配封装之前进行配置。关于配置封装库表的信息, 请参见 PCB Editor manual。 |
在符号属性中分配封装
符号的 封装
字段可以直接在符号的属性窗口中编辑。

点击 按钮在
封装
字段打开封装库浏览器,显示可用的封装和封装库。单击一个封装名称可以选择该封装,并在右边的预览窗格中显示,而双击一个封装则可以关闭浏览器,并将符号的 封装
字段设置为所选的封装。

用符号字段表分配封装
和单独编辑每个符号的属性相比,符号字段表可以用来在一个地方查看和编辑设计中所有符号的属性。这包括通过编辑每个符号的 封装
字段来分配封装。
符号字段表可以通过 工具 → 编辑符号字段…,或者通过顶部工具栏上的 按钮进入。
`封装`字段在这里的作用与符号属性窗口的作用相同:可以直接编辑,也可以用封装库浏览器直观地选择封装。

关于符号字段表的更多信息,请参见关于编辑符号属性章节。
放置符号时分配封装
当符号第一次被添加到原理图中时,可以为符号分配封装。
有些符号被定义为关联一个默认的封装。当这些符号被添加到原理图中时,它们将预先被分配这个封装。默认的封装会显示在添加符号对话框中。对于没有定义默认封装的符号,封装下拉菜单会显示 "没有默认封装",而封装预览画布会显示 "没有指定封装"。

符号可以有封装过滤器,指定哪些封装适合与该符号一起使用。如果为选定的符号定义了封装过滤器,那么所有符合封装过滤器的封装都会作为选项出现在封装下拉菜单中。选定的封装将显示在预览画布中,当符号被添加到原理图中时,将被分配给该符号。
除非加载封装库,否则封装选项不会出现在封装下拉菜单中。在一个会话中第一次打开 "封装编辑器" 或 "封装库浏览器" 时,将加载封装库。 |
关于封装过滤器的更多信息,请参阅符号编辑器文档。
用封装分配工具分配封装
封装分配工具允许你将原理图中的符号与印制电路板布线时用到的封装关联起来。它提供了封装列表过滤、封装查看和3D元件模型查看,以确保将正确的封装与每个元件联系起来。
元件可以手动或通过创建等效文件(.equ 文件)自动分配到其相应的封装。等效文件是将每个元件与它的封装联系起来的查找表。
点击 工具 → 分配封装… 来运行该工具,或者点击顶部工具栏上的 图标。
封装分配工具概述
下面的图片显示了封装分配工具的主窗口。

-
左边的窗格包含了与该工程相关的可用封装库的列表。
-
中间窗格包含原理图中的符号列表。
-
右边的窗格包含了从工程封装库加载的可用封装列表。
-
底部的窗格描述了应用于封装列表的过滤器,并打印了在最右边窗格中选择的封装的信息。
顶部的工具条包含以下命令:
将当前的封装关联到原理图中。 |
|
编辑全局和工程封装库表。 |
|
在封装查看器中查看选定的封装。 |
|
选择没有封装关联的前一个符号。 |
|
选择下一个没有封装关联的符号。 |
|
撤消上次的编辑。 |
|
重做最后一次编辑。 |
|
使用等效文件执行自动封装关联 |
|
删除所有的封装分配。 |
|
通过所选符号中定义的封装过滤器来过滤封装列表。 |
|
按所选符号的引脚数过滤封装列表。 |
|
按选定的库过滤封装列表。 |
下表列出了封装分配工具的键盘命令:
向右箭头/Tab |
激活当前窗格右侧的窗格。 如果当前激活的是最后一个窗格,则绕到第一个窗格。 |
向左箭头 |
激活当前窗格左侧的窗格。 如果当前激活的是第一个窗格,则绕到最后一个窗格。 |
向上箭头 |
选择当前所选列表中的前一个项目。 |
向下箭头 |
选择当前选择的列表中的下一个项目。 |
Page Up |
选择当前所选项目向上翻一整页的项目。 |
Page Down |
选择当前所选项目向下一整页的项目。 |
Home |
选择当前选择的列表中的第一个项目。 |
End |
选择当前所选列表的最后一个项目。 |
使用 "封装分配工具" 手动分配 "封装"
要手动将一个封装与一个元件关联起来,首先在元件(中间)窗格中选择一个元件。然后在封装(右)窗格中选择一个封装,双击所需封装的名称。封装将被分配给选定的元件,而下一个没有分配封装的元件将被自动选择。
如果没有封装出现在封装窗格中,检查封装过滤选项是否正确应用。 |
当所有的元件都有封装时,点击 OK 按钮来保存分配并退出工具。或者,点击 取消,放弃更新的赋值,或者点击 应用,保存原理图并继续,保存新的赋值,而不退出工具。
筛选 "封装" 列表
有四个过滤选项可以限制哪些封装显示在封装窗格中。过滤选项是通过顶部工具栏的三个按钮和一个文本框来启用和禁用的。
-
:激活 过滤器可以在每个符号中定义。 例如,一个运算放大器符号可以定义过滤器,只显示 SOIC 和 DIP 封装。
-
:只显示符合所选符号引脚数的封装。
-
:只显示左侧窗格中选择的库的封装。
-
在文本框中输入文本,会隐藏与文本不匹配的封装。当文本框为空时,该过滤器被禁用。
当所有的过滤器被禁用时,会显示完整的封装列表。
窗口的底部窗格中描述了应用的过滤器,以及符合所选过滤器的封装数量。例如,当符号的封装过滤器和引脚数过滤器被启用时,底部窗格会打印封装过滤器和引脚数:

可以同时使用多个过滤器来帮助缩小封装窗格中可能合适的封装列表。KiCad 标准库中的符号定义了封装过滤器,旨在与引脚数过滤器结合使用。
使用封装分配工具自动分配封装
封装分配工具允许你在一个外部文件中存储封装分配,并在以后加载这些分配,甚至在不同的工程中。这使你能够自动将符号与适当的封装联系起来。
外部文件被称为等效文件,它存储了一个符号到相应的封装的映射。等效文件通常使用 .equ
文件扩展名。等效文件是具有简单语法的纯文本文件,必须由用户用文本编辑器来创建。语法描述如下。
你可以在 "封装分配工具" 中点击 偏好设置 → 管理 "封装关联文件" 来选择使用哪些等效文件。

-
通过点击 添加 按钮添加新的等效文件。
-
点击 删除 按钮,删除所选的等效文件。
-
通过点击 上移 和 下移 按钮改变等效文件的优先级。如果一个符号的值在多个等效文件中被发现,最后一个匹配的等效文件的封装将覆盖早期的等效文件。
-
点击 编辑文件 按钮,打开所选的等效文件。
相关的环境变量显示在窗口的底部。当 相对 路径选项被选中时,这些环境变量将被自动用于使所选等效文件的路径与项目或封装库相对。
一旦所需的等效文件以正确的顺序载入,就可以通过点击封装分配工具顶部工具栏上的 按钮来进行自动封装分配。
所有在加载的等效文件中找到的符号都将自动分配其封装。然而,已经分配了封装的符号将不会被更新。
等效文件格式
等效文件中每一行代表一个符号。每行都有以下结构:
'<symbol value>' '<footprint library>:<footprint name>'
每个名称/值必须用单引号('
)包围,并由一个或多个空格隔开。以 #
开头的行是注释。
例如,如果你想让所有值为 LM4562
的符号被分配到 Package_SO:SOIC-8_3.9x4.9_P1.27mm
的封装,等效文件中的一行应该是:
'LM4562' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm'
下面是一个等效文件的例子:
#integrated circuits (smd): '74LV14' 'Package_SO:SOIC-14_3.9x8.7mm_P1.27mm' 'EL7242C' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'DS1302N' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LM324N' 'Package_SO:SOIC-14_3.9x8.7mm_P1.27mm' 'LM358' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LTC1878' 'Package_SO:MSOP-8_3x3mm_P0.65mm' '24LC512I/SM' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LM2903M' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LT1129_SO8' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LT1129CS8-3.3' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LT1129CS8' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'LM358M' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'TL7702BID' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'TL7702BCD' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm' 'U2270B' 'Package_SO:SOIC-16_3.9x9.9_P1.27mm' #regulators 'LP2985LV' 'Package_TO_SOT_SMD:SOT-23-5_HandSoldering'
查看当前封装
封装分配工具包含一个封装查看器。点击顶部工具栏上的 按钮可以启动封装查看器,并显示选定的封装。

顶部的工具条包含以下命令:
刷新视图 |
|
放大 |
|
缩小 |
|
放大到适合显示区域 |
|
显示 3D 查看器 |
左边的工具条包含以下命令:
使用选择工具 |
|
在两点之间交互测量 |
|
显示网格点或线 |
|
在极坐标系和卡迪尔坐标系之间切换 |
|
使用英寸 |
|
以mil(1/1000英寸)为单位显示坐标 |
|
以毫米为单位显示坐标 |
|
切换全窗口十字准线的显示 |
|
在草图或正常模式下的焊盘显示切换 |
|
在正常模式或轮廓模式下的焊盘显示切换 |
|
在正常模式或大纲模式下的文本显示切换 |
|
在正常模式或大纲模式下的图形线显示切换 |
正向和反向批注
从原理图更新 PCB(正向批注)
使用 "从原理图更新 PCB" 工具将设计信息从原理图编辑器同步到电路板编辑器。在原理图编辑器和电路板编辑器中都可以用 工具 → 从原理图更新 PCB(F8)来访问该工具。你也可以使用电路板编辑器顶部工具栏上的 图标。这个过程通常被称为正向批注。
从原理图更新 PCB 是将设计信息从原理图转移到 PCB 的首选方法。在旧版本的 KiCad 中,相应的过程是将网表从原理图编辑器中导出并导入到电路板编辑器中。现在已经没有必要使用网表文件了。 |

该工具将每个符号的封装添加到电路板上,并将更新的原理图信息传输到电路板上。同时,电路板的网络连接会被更新以匹配原理图。带有排除在电路板属性之外 的符号不会被更新到 PCB 上。
将对 PCB 进行的修改列在 待应用修改 窗格中。点击 更新 PCB 按钮之前,PCB 不会被修改。
你可以使用窗口底部的复选框来显示或隐藏不同类型的信息。可以使用 保存… 按钮将更改的报告保存到文件中。
选项
该工具有几个选项可以控制其行为。
选项 | 描述 |
---|---|
根据位号将封装重新链接到原理图符号上 |
封装通常是通过符号添加到原理图中时创建的唯一标识符与原理图符号相连。符号的唯一标识符不能被改变。 如果选中,PCB 中的每个封装将被重新链接到与该封装具有相同位号的符号上。 如果不勾选,封装和符号将像往常一样通过唯一的标识符连接,而不是通过位号。每个封装的位号将被更新以匹配其链接符号的位号。 这个选项一般不应该被选中。它对于依赖改变原理图符号和封装之间的联系的特定工作流程是很有用的,例如重构原理图以方便布局,或者在设计的相同通道之间复制布局。 |
删除没有符号的封装 |
如果选中,PCB 中任何在原理图中没有相应符号的封装都将从 PCB 中删除。带有 "不在原理图中" 属性的封装将不受影响。 如果不勾选,没有相应符号的封装将不会被删除。 |
用原理图中指定的封装替换封装 |
如果选中,PCB 中的封装将被替换成相应原理图符号中指定的封装。 如果不勾选,即使原理图符号被更新以指定不同的封装,PCB 中已经存在的封装也不会被改变。 |
从 PCB 上更新原理图(反向批注)
KiCad 的典型工作流程是在原理图中进行修改,然后使用 "从原理图更新 PCB" 工具将修改内容同步到电路板上。然而,相反的过程也是可行的:可以在电路板上进行设计修改,然后在原理图或电路板编辑器中使用 工具 → 从 PCB 更新原理图 同步回原理图。这个过程也被称为 "反向批注"。

该工具将位号、数值、封装分配和网络名称的变化从电路板同步到原理图。每种类型的变化都可以单独启用或禁用。
将对原理图进行的修改列在 待应用的修改 窗格中。在您点击 更新原理图 按钮之前,原理图不会被修改。
你可以使用窗口底部的复选框来显示或隐藏不同类型的信息。可以使用 保存… 按钮将更改的报告保存到文件中。
选项
该工具有几个选项可以控制其行为。
选项 |
描述 |
根据位号将封装重新链接到原理图符号上 |
如果选中,PCB 中的每个封装将被重新链接到与该封装具有相同位号的符号上。这个选项与更新符号位号不兼容。 如果不勾选,封装和符号将像往常一样通过唯一的标识符连接,而不是通过位号。 |
位号 |
如果选中,符号位号将被更新,以匹配链接封装的位号。 如果不勾选,符号位号将不会被更新。 |
值 |
如果选中,符号值将被更新以匹配链接封装的值。 如果不勾选,符号值不会被更新。 |
封装分配 |
如果选中,符号的封装分配将被更新,这些符号的封装在电路板上被改变或替换。 如果不勾选,符号的封装分配将不会被更新。 |
网络名 |
如果选中,原理图将根据电路板上的任何网络名变化进行更新。如有必要,网络标签将被更新或添加到原理图中,以符合电路板的要求。 如果不勾选,网络名将不会在原理图中更新。 |
The 按位置重新批注 该功能可以与反向批注位号结合使用 根据设计中的元件的位置重新批注所有元件。 |
用 CMP 文件进行反向批注
通过从 PCB 编辑器中导出 CMP 文件(文件 → 导出 → 封装关联(.cmp)文件…)并在原理图编辑器中导入(文件 → 导入 → 封装分配…),也可以将变化从 PCB 同步到原理图。
这种方法只能同步对封装分配和封装字段的修改。建议使用 "从 PCB 更新原理图" 工具来代替。 |
生成输出
打印
KiCad 可以使用 文件 → 打印… 将原理图发送到标准打印机。

打印选项
打印图框: 在打印的原理图中包括图纸的边框和标题块。
输出模式: 以彩色或黑白方式打印原理图。
打印背景色: 包括打印的原理图中的背景色。该选项只在 仅以黑白打印 被禁用时才会启用。
使用不同的颜色主题进行打印: 选择不同的颜色方案进行打印,与在原理图编辑器中选择的显示方案不同。
页面设置…: 打开一个页面设置对话框,用于设置纸张大小和方向。
预览: 打开一个打印预览对话框。
关闭: 关闭对话框,不打印。
打印: 打开系统打印对话框。
打印时使用平台及打印机特有的驱动程序,可能会产生意想不到的结果。当打印到一个文件时,建议使用 绘图 而不是 打印。 |
绘图
KiCad 可以使用 文件 → 绘图… 将原理图绘制到文件中。
支持的输出格式是 Postscript、PDF、SVG、DXF 和 HPGL。

输出信息 窗格显示有关生成文件的信息。 可以用复选框显示或隐藏不同种类的信息,还可以用 保存… 按钮将信息保存到文件中。
点击绘制当前页 按钮绘制原理图的当前页。绘制全部页面 按钮可以绘制原理图的所有页面。每一页都会生成一个文件,但 PDF 输出除外,它将原理图的每一页作为单独的一页绘制在一个 PDF 文件中。
绘制选项
输出目录: 指定保存绘图文件的位置。如果是一个相对路径,它是相对于项目目录创建的。
输出格式: 选择要绘制的格式。有些格式有不同的选项。
页面大小: 设置用于绘制输出的页面大小。这可以被设置为匹配原理图的尺寸或其他页面尺寸。
绘制图框: 在打印的原理图中包括图纸边框和标题块。
输出模式: 设置输出为彩色或黑白。不是所有的输出格式都支持彩色。
绘图背景色: 绘图输出包含原理图背景色。如果输出格式不支持彩色,或者输出模式是黑白,则不会绘制背景色。
颜色主题: 选择用于绘制输出的颜色主题。
默认线宽: 选择没有指定宽度的默认线宽(厚度设置为 0 的线)。有设定宽度的线条将以指定宽度绘制。
位置和单位: 设置绘图仪原点和单位。这个选项只 适用于 HPGL 输出。
笔宽: 设置绘图仪的笔宽。这个选项只适用于 HPGL 输出。
绘制后打开文件: 在绘制完成后自动打开绘制的输出文件。
PDF 交互功能
绘图的 PDF 有交互功能。

-
可以点击超链接。
-
目录中填充了原理图页以及每张页面中的符号和层次标签。
-
点击原理图对象会弹出一个包含相关信息的菜单。
-
符号显示其符号字段。
-
层次的子页显示它们的原理图页名称和文件名,以及一个可以进入子页的选项。
-
标签显示已解决的网络和网络类。
-
总线显示其成员。
-
其中一些功能并非所有 PDF 阅读器都支持。 |
生成物料清单
KiCad 可以使用 工具 → 生成 BOM… 或顶部工具栏上的 按钮生成物料清单。生成的 BOM 列出了设计中的所有元件,除了勾选了不包含在物料清单中属性 的元件。

BOM 工具使用一个外部脚本将设计信息转换成所需的输出格式。KiCad 中包含几个 BOM 生成器脚本,用户也可以创建自己的脚本。BOM 生成器脚本一般使用 Python 或 XSLT,但也可以使用其他工具,只要你能指定一个 命令行 让 KiCad 在运行生成器时执行。
您可以在 BOM 发生器脚本 列表中选择要使用的 BOM 生成器。 对话框的其余部分显示所选生成器的信息。您可以用 生成器昵称 文本框来改变生成器的显示名称。
右边的窗格显示所选脚本的信息。当生成器被执行时,右边的窗格会显示脚本的输出。
底部的文本框包含了 KiCad 用来执行生成器的命令。当选择脚本时,该文本框会自动填充,但对于某些生成器来说,该命令可能需要手工编辑。当关闭 BOM 工具时,KiCad 会保存每个生成器的命令行,因此定制的命令行会被保留下来。关于命令行的更多细节,请参阅 高级文档。
在 Windows 下,BOM 生成器对话框有一个额外的 *显示控制台窗口*选项。当这个选项未被选中时,BOM 生成器在一个隐藏的控制台窗口中运行,任何输出都会被重定向并打印在对话框中。当该选项被选中时,BOM 生成器在一个可见的控制台窗口中运行,如果生成器插件提供了一个图形用户界面,这可能是必要的。
BOM 生成器脚本
默认情况下,BOM 工具提供三个输出脚本选项。
-
bom_csv_grouped_extra
输出一个 CSV 文件,其中包含设计中的每个元件。元件按值、封装、DNP(不使用)和命令行中指定的任何额外字段分组。要指定额外的字段,在命令行的末尾用引号字符串添加所需的字段名。例如,要包括MPN
字段,命令行的结尾应该是<脚本路径>/bom_csv_grouped_extra.py "%I" "O.csv" "MPN"
。BOM 中的列是:-
行编号
-
位号
-
数量
-
值
-
封装
-
不安装
-
指定的额外字段
-
-
bom_csv_grouped_by_value
输出的CSV有两个部分。第一部分包含了设计中的每个元件,每行都有一个元件。 第二部分也包含每个元件,但元件是按符号名称、值、封装和 DNP(不安装)分组的。BOM 中的列是:-
行编号
-
数量
-
位号
-
值
-
符号库和符号名称
-
封装
-
数据手册
-
不安装
-
任何其他符号字段
-
-
bom_csv_grouped_by_value_with_fp
输出一个 CSV,其中有一个单独的部分,包含设计中的每个元件。元件按值、封装和 DNP(不安装)进行分组。BOM 中的列是:-
位号
-
数量
-
值
-
符号名称
-
封装
-
符号描述
-
供应商
-
不安装
-
额外的生成器脚本与 KiCad 一起安装,但默认情况下不会在生成器脚本列表中填入。这些脚本的位置取决于操作系统,并可能根据安装位置而有所不同。
运行系统 | 位置 |
---|---|
Windows |
|
Linux |
|
macOS |
|
通过点击 按钮,可以在 BOM 生成器脚本列表中添加其他脚本。点击
按钮,可以删除脚本。
按钮在文本编辑器中打开所选的脚本。
关于创建和使用自定义 BOM 生成器的更多信息,请参见 高级文档。
生成 BOM 的其他方法
KiCad 提供了几种额外的方法来生成 BOM,尽管推荐使用 BOM 工具。
-
[symbol-fields-table符号字段表] 可以导出一个 CSV,可以作为 BOM 使用。这个选项包括所有的符号信息,但对输出的控制有限。
-
PCB 编辑器可以通过 文件 → 制造输出 → BOM… 输出 BOM。这种方法不提供对输出格式的控制,也不包括所有符号信息。
生成网表
网表是一个描述符号引脚之间电气连接的文件。 这些连接被称为网络。网表文件包含:
-
符号及其引脚的列表。
-
符号引脚之间的连接(网络)列表。
存在许多不同的网表格式。有时符号表和网表是两个独立的文件。网表是使用原理图设计软件的基础,因为网表建立了与其他电子 CAD 软件,如 PCB 布局软件、仿真器和可编程逻辑编译器的联系。
KiCad 支持几种网表格式:
-
KiCad 格式,可由 KiCad PCB 编辑器导入。然而,应该使用 "从原理图更新 PCB" 工具而不是将 KiCad 网表导入 PCB 编辑器。
-
OrCAD PCB2 格式,用于 OrCAD 设计 PCB。
-
CADSTAR 格式,用于 CADSTAR 设计 PCB。
-
Spice 格式,用于各种外部电路仿真器。
在 KiCad 5.0 及以后的版本中,将设计从原理图编辑器转移到 PCB 编辑器时,没有必要创建网表。推荐使用 "从原理图更新PCB" 工具。 |
其他使用网表的软件工具可能对元件名称、引脚、网络和其他字段中的空格和特殊字符有限制。为了兼容性,请注意其他工具中的这种限制,并相应地命名元件、网络等。 |
网表格式
网表是通过导出网表对话框(文件 → 导出 → 网表…)导出的。

KiCad 支持导出多种格式的网表。KiCad、OrcadPCB2、CADSTAR、Spice 和 Spice Model。每种格式都可以通过选择窗口顶部的相应标签来选择。一些网表格式有额外的选项。
点击 导出网表 按钮,会提示输入网表文件名并保存网表。
对于大型原理图,网表的生成可能需要几分钟。 |
其他网表格式的自定义生成器可以通过点击 添加生成器… 按钮添加。自定义生成器是由 KiCad 调用的外部工具,例如 Python 脚本或 XSLT 样式表。关于自定义网表生成器的更多信息,请参见添加自定义网表生成器章节。
Spice 网表格式

Spice 网表格式提供了几个选项。
当选择 使用当前图纸作为根图纸 时,只有当前页图纸导出到子电路模型中。否则,所有原理图图纸将被导出。
保存所有电压 选项为网表添加了一个 .save all
命令,这会让仿真器保存所有节点的电压。保存所有电流 选项在网表中增加了一个 .probe all
命令,会让仿真器保存所有节点的电流。
不同仿真工具之间的行为可能有所不同。 |
无源符号值会自动调整,以便与各种 Spice 仿真器兼容。具体而言:
-
μ
和M
作为单位前缀,分别被替换成u
和Meg
-
单位被删除(例如,
4.7kΩ
被改为4.7k
) -
RKM 格式的数值被改写为与 Spice 兼容(例如,
4u7
被改成4.7u
)
Spice 网表导出器还提供了一种简单的方法,可以用外部仿真器对生成的网表进行仿真。这对于在不使用KiCad 的内部 ngspice 仿真器的情况下运行仿真,或者使用 KiCad 的仿真器工具不支持的选项运行 ngspice 仿真是很有用的。
在文本框中输入外部模拟器的路径,其中 %I
代表生成的网表。点击 创建网表和运行仿真器命令 按钮,生成网表并自动运行仿真器。
默认的仿真器命令(spice "%I" )必须调整为指向系统上安装的仿真器。
|
Spice 仿真器预期仿真命令(.PROBE
, .AC
, .TRAN
等)包含在网表中。原理图中包含的任何以句号(.
)开始的文本行都将被包含在网表中。如果一个文本对象包含多行,只有以句号开头的行将被包含在内。
根据原理图中符号的 Spice 模型设置,用于包括模型库文件的 .include
指令被自动添加到网表。
Spice 模型网表格式

KiCad 还可以将原理图的网表导出为 Spice 子电路模型,这可以包含在一个单独的 Spice 仿真中。原理图中的任何层次标签都被用作子电路模型的引脚。模型中的每个引脚都有批注,描述该引脚的电气方向:
-
输入
的层次标签被映射到一个输入
的批注上 -
输出
的层次化标签被映射到输出
批注上 -
双向
层次标签被映射到输入输出
批注上 -
三态
的层次标签被映射到三态
批注上 -
被动
层次标签被映射到被动
批注上
当选择 使用当前图纸作为根图纸 时,只有当前页图纸导出到子电路模型中。否则,所有原理图图纸将被导出。
网表示例
下面是 KiCad 仿真示例的 sallen_key
工程的原理图。

该原理图的 KiCad 格式网表如下:
(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")))))
在 Spice 格式中,网表如下:
.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
符号和符号库
KiCad 将符号组织到符号库中,符号库是符号的集合。原理图中的每个符号都由一个完整的名称作为唯一标识,完整的名称由库的名称和符号名称组成。例如,标识符 Audio:AD1853
是指 Audio
库中的 AD1853
符号。
管理符号库
KiCad 使用一个符号库表将符号库名称映射到磁盘上的符号库。 KiCad 使用一个全局的符号库表,以及一个针对每个工程的表。要编辑符号库表,请使用 偏好设置 → 管理符号库…。

全局符号库表包含了无论当前加载的工程是什么,都可以使用的库列表。该表保存在 KiCad 配置文件夹下的 sym-lib-table
文件中。该文件夹的位置 取决于使用的操作系统。
工程专用的符号库表包含了专门为当前加载工程提供的库的列表。如果有任何工程专用的符号库,该表将保存在工程文件夹下的 sym-lib-table
文件中。
初始配置
第一次运行 KiCad 原理图编辑器时,如果在 KiCad 配置文件夹中没有找到全局符号表文件 sym-lib-table
,KiCad 将引导用户设置一个新的符号库表。这个过程将在 初始配置中描述。
管理表格条目
符号库只有在它们被添加到全局或工程专用的符号库表中时才能使用。
通过点击 按钮然后选择一个库或点击
按钮然后输入库文件的路径来添加一个库。选定的库将被添加到当前打开的库表中(全局或特定工程)。可以通过选择所需的库条目并点击
按钮来删除库。
点击 和
按钮在库表中上下移动所选库。这并不影响符号库浏览器、符号编辑器或添加符号工具中库的显示顺序。
通过取消选中第一列中的 Active 复选框,可以使库处于非活动状态。非活动状态的库仍然在库表中,但不会出现在任何库的浏览器中,也不会从磁盘加载,这可以减少加载时间。
通过点击范围内的第一个库,然后 Shift - 点击范围内的最后一个库,可以选择一系列的库。
每个库必须有一个独特的名称:在同一个表中不允许有重复的库名称。然而,名称可以在全局和工程库表中重复。工程表中的库比全局表中的同名库优先级更高。
库的名称不一定要与库的文件名或路径有关。冒号字符(:
)不能在库的名称或符号名称中使用,因为它被用作名称和符号之间的分隔符。
每个库条目必须有一个有效的路径。路径可以定义为绝对的、相对的,或者通过环境变量替换来定义。
必须选择适当的库格式,以便正确读取库。"KiCad" 格式用于 KiCad 6+ 版本的库(.kicad_sym
文件),而 "Legacy" 格式用于 KiCad 旧版本的库(.lib
文件)。遗留库是只读的,但可以通过 迁移库 按钮迁移到 KiCad 格式的库(见迁移遗留库一节)。
有一个可选的描述字段,用于添加库条目的描述。选项字段目前不使用,所以添加选项在加载库时不会有任何影响。
环境变量的替代
符号库表支持环境变量的替换,这允许你定义包含自定义路径的环境变量来存储你的库。通过在符号库路径中使用 ${ENV_VAR_NAME}
的语法,支持环境变量的替换。
默认情况下,KiCad 定义了几个环境变量,这些变量在 工程管理文档 中描述。环境变量可以在 偏好设置 → 配置路径… 对话框中进行配置。
在符号库表中使用环境变量,可以在不破坏符号库表的情况下重新定位库,只要在库的位置改变时更新环境变量即可。
${KIPRJMOD}
是一个特殊的环境变量,总是展开为当前工程目录的绝对路径。${KIPRJMOD}
允许将库存储在工程文件夹中,而不必在工程库表中使用绝对路径。这使得重新定位工程而不破坏其工程库表成为可能。
使用模式
符号库可以全局定义,也可以专门为当前加载的工程定义。在用户的全局表中定义的符号库总是可用的,并存储在用户的 KiCad 配置文件夹中的 sym-lib-table
文件中。工程专用的符号库表只对当前打开的工程文件有效。
每种方法都有其优点和缺点。在全局表中定义所有的库意味着它们在需要时总是可用的。这样做的缺点是,加载时间会增加。
在工程的基础上定义所有的符号库,意味着你只有工程所需的库,这减少了符号库的加载时间。缺点是你总是要记住添加每个工程所需的每个符号库。
一种使用模式是在全局范围内定义常用的库,并在工程专用的库表中定义工程所需的库。对于如何定义库没有任何限制。
迁移遗留库
遗留库(.lib
文件)是只读的,但它们可以被迁移到 KiCad 6 版本的库(.kicad_sym
)。6.0.0 以下的 KiCad 版本不能查看或编辑 KiCad 6 版本的库。
通过在符号库表中选择遗留库并点击 迁移库 按钮,可以将其转换为 KiCad 6 库。通过 Ctrl - 点击或 shift -点击,可以一次选择和迁移多个库。
也可以一次转换一个库,方法是在符号编辑器中打开它们并将它们另存为新库。
遗留工程重新映射
当加载在符号库表实现之前创建的原理图时,KiCad 将尝试将原理图中的符号库链接重新映射到适当的库表符号。 这个过程的成功与否取决于几个因素:
-
原理图中使用的原始库仍然可用,并且与符号被添加到原理图中时相比没有变化。
-
所有恢复操作都是在检测到创建恢复库或保持现有恢复库最新时进行的。
-
工程符号缓存库的完整性没有被破坏。
重新映射将在工程文件夹中的 |
即使恢复操作已被禁用,也会被执行,以确保正确的符号可用于重新映射。 不要取消这个操作,否则重新映射将不能正确地重新映射原理图符号。 任何错误的符号链接将不得不手动修复。 |
如果原来的库已经被删除,并且没有进行恢复,作为最后的手段,缓存库可以作为恢复库使用。将缓存库复制到一个新的文件名,并使用符号库表实现之前的 KiCad 版本将新的库文件添加到库列表的顶部。 |
创建和编辑符号
符号和符号库的概述
符号是一个元件的在原理图上的表述。一个符号由以下部分组成:
-
图形对象(直线、圆形、圆弧、文字等),决定了符号在原理图中的外观。
-
引脚,具有图形属性(直线、时钟、反相、低电平有效等)和电气属性(输入、输出、双向等),由电气规则检查(ERC)工具使用。
-
字段,如位号、值、PCB 设计的对应封装名称等。
符号库是由一个或多个符号组成的。一般来说,这些符号按功能、类型和/或制造商进行逻辑分组。
符号可以从同一库中的另一个符号衍生出来。派生符号共享基础符号的图形形状和引脚定义,但可以覆盖基础符号的属性字段(值、封装、封装筛选器、数据手册、描述等)。派生符号可用于定义与基本部件相似的符号。例如,74LS00、74HC00 和 7437 符号都可以从 7400 符号衍生出来。在以前的 KiCad 版本中,派生符号被称为别名。
符号编辑器概述
KiCad 提供了一个符号编辑工具,允许你创建库,在库之间添加、删除或转移符号,将符号导出到文件,并从文件中导入符号。
一般来说,设计一个符号的流程包括:
-
定义符号是否由一个或多个单元组成。
-
定义符号是否有替代的主体风格(也称为德摩根代号)。
-
使用直线、矩形、圆形、多边形和文字设计其符号外观。
-
添加引脚,并仔细定义每个引脚的图形元素、名称、编号和电气属性(输入、输出、三态、电源输出等)。
-
确定该符号是否应从另一个具有相同图形设计和引脚定义的符号中衍生出来。
-
添加可选的字段,如 PCB 设计软件使用的封装名称和/或定义其可见性。
-
通过添加描述字符串和数据手册链接来记录该符号,等等。
-
将其保存在所需的库中。
符号编辑器的主窗口如下所示。它包括三个用于快速访问常用功能的工具栏和一个符号查看/编辑区。 不是所有的命令都可以在工具栏上使用,但所有的命令都可以在菜单中使用。

主工具栏
主工具栏位于主窗口的顶部。工具栏的按钮包括撤销/重做命令、缩放命令、符号属性对话框和单元外观管理控制等。
在选定的库中创建一个新的符号。 |
|
保存当前选定的库。库中所有修改过的符号都将被保存。 |
|
撤销上次的编辑。 |
|
重做最后一次撤消。 |
|
刷新显示。 |
|
放大。 |
|
缩小。 |
|
放大到适合显示的符号。 |
|
放大到适合选择。 |
|
逆时针旋转。 |
|
顺时针旋转。 |
|
水平镜像。 |
|
垂直镜像。 |
|
编辑当前的符号属性。 |
|
在一个表格界面中编辑符号的引脚。 |
|
打开符号的数据手册,如果它被定义的话。 |
|
测试当前符号是否有设计错误。 |
|
选择正常的主体风格。如果当前符号没有备选的主体样式,该按钮将被禁用。 |
|
选择备用的主体风格。如果当前的符号没有备用的主体风格,该按钮将被禁用。 |
|
选择要显示的多单元符号的某个单元。如果当前的符号不是来自于多单元的符号,则下拉控件将被禁用。 |
|
启用同步引脚编辑模式。启用该模式后,任何引脚的修改都会传播到所有其他符号单元。引脚编号的变化不会被传播。这种模式对有多个可互换单元的符号自动启用,对只有一个单元的符号不能启用。 |
元素工具栏
位于主窗口右侧的垂直工具栏允许你放置设计一个符号所需的所有元素。
选择工具。用选择工具右键单击可以打开光标下的对象的上下文菜单。用选择工具左键单击,在主窗口底部的信息面板中显示光标下的对象的属性。用选择工具左键双击将打开光标下对象的属性对话框。 |
|
引脚工具。左键点击可以添加一个新的引脚。 |
|
图形文字工具。左键单击以添加一个新的图形文本项目。 |
|
矩形工具。左键单击开始绘制图形矩形的第一个角。再次左键单击以放置矩形的另一个角。 |
|
圆形工具。左键单击,开始从中心绘制一个新的圆形。再次左键单击来定义圆的半径。 |
|
弧形工具。左键单击,从第一个弧形端点开始绘制一个新的图形弧项目。再次左键单击以定义第二个弧形端点。通过拖动弧形中心点来调整半径。 |
|
连接线工具。左键单击开始在当前符号中绘制一个新的图形线项。每增加一条连接线都要左击。双击左键来完成该线。 |
|
锚点工具。左键单击以设置符号的锚定位置。 |
|
删除工具。左键单击,从当前符号中删除一个对象。 |
选项工具栏
位于主窗口左侧的垂直工具栏允许你设置编辑器的绘图选项。
切换网格是否可见。 |
|
设置单位为英寸。 |
|
设置单位为mil(0.001英寸)。 |
|
设置单位为毫米。 |
|
切换全屏十字光标的开启和关闭。 |
|
切换是否显示引脚的电气类型。 |
|
切换显示库和符号工作区。 |
将符号保存到库中
这个 按钮显示或隐藏可用库的列表,可以选择一个活动库。当一个符号被保存时,它将被放在这个库中。
点击左侧工具栏的 图标,可以切换库和符号的树状视图。点击一个符号就可以打开该符号。
有些符号是由其他符号衍生出来的。派生的符号名称在树状图中以 大写字母 显示。如果一个派生符号被打开,它的符号图形将不能被编辑。它的符号字段将可以正常编辑。要编辑一个基本符号及其所有衍生符号的图形,请打开基本符号。 |
修改后的符号可以保存在当前库或不同的库中。
要在当前库中保存修改后的符号,请点击 图标。修改的内容将被写入现有的符号中。
保存一个修改过的符号也会保存同一库中所有其他修改过的符号。 |
要把符号保存为一个新的符号,请点击 文件 → 另存为…。 符号可以保存在当前库或不同的库中。可以为该符号设置一个新的名称。
要创建一个只包含当前符号的新文件,请点击 文件 → 导出 → 符号…。这个文件将是一个标准库文件,只包含一个符号。
创建符号
创建一个新符号
点击 图标就可以创建一个新的符号。 你会被要求提供一些符号的属性。
-
符号名称
-
一个可选的基础符号,用于派生新的符号。新符号将使用基础符号的图形形状和引脚配置,但其他符号信息可以在派生符号中修改。基础符号必须与新派生符号在同一个库中。
-
位号前缀(
U
,C
,R
)。 -
每个符号的单元数,以及这些单元是否可以互换(例如,一个 7400 四路 NAND 符号可以有 4 个单元,每个门一个)。
-
是否需要另一种主体样式(有时被称为 "德-摩根等价")。
-
该符号是否为电源符号。电源符号出现在原理图编辑器的 添加电源符号 对话框中,它们的 "值" 字段在原理图中不可编辑,不能为它们分配一个封装,它们不会被添加到 PCB 上,也不包括在物料清单中。
-
该符号是否应从物料清单中排除。
-
该符号是否应从 PCB 中排除。
还有几种图形选项。
-
每个引脚的末端和它的引脚名称之间的偏移。
-
是否应显示引脚编号和引脚名称。
-
引脚名称是否应显示在引脚旁边,或显示在符号主体内的引脚末端。
这些属性以后也可以在符号属性窗口中修改。

一个新的符号将使用上述属性被创建,并将出现在编辑器中,如下图所示。

中间的蓝色十字是符号的锚,它指定了符号的原点,即坐标(0,0)。锚点可以通过选择 图标并点击新的所需锚点位置来重新定位。
从一个符号创建一个符号
通常,你想制作的符号与符号库中已有的符号相似。在这种情况下,加载和修改一个现有的符号是很容易的。
-
加载将被作为起点的符号。
-
使用 文件 → 另存为… 保存一个新的符号副本。"另存为" 对话框将提示新符号的名称和要保存在哪个库中。
-
根据需要编辑新的符号。
-
保存修改后的符号。
符号属性
符号属性是在创建符号时设置的,但它们可以在任何时候被修改。要改变符号属性,请点击 图标,显示符号属性对话框。你也在编辑画布中空白位置双击打开属性对话框。

设置 单元数量,并检查 所有单元都可互换 和 具有交替的主体风格(如适用)是很重要的,因为这些设置会影响引脚和图形被添加到每个符号单元的方式。
如果你在向符号添加引脚后再改变符号的单元数,你将需要做额外的工作来为额外的单元添加引脚和图形。如果最初正确设置了这些属性,引脚和图形就会自动添加到每个单元。尽管如此,还是可以在任何时候修改这些属性。
图形选项 显示引脚编号 和 显示引脚名称 用来定义引脚编号和引脚名称文本的可见性。选项 将引脚名称置于内部 定义了引脚名称相对于引脚主体的位置。如果该选项被选中,引脚名称将被显示在符号的轮廓内。在这种情况下,引脚名称位置偏移 属性定义了文字远离引脚末端的位置。通常,0.02 到 0.05 英寸是合理的。
下面的例子显示了一个没有勾选 将引脚名称置于内部 选项的符号。注意名称和引脚编号的位置。

符号名称、描述和关键词
符号名称 是符号在库中的名称。符号是由库和符号名称的组合来识别的。
在以前的 KiCad 版本中,符号名称与 值
字段相连。 在 KiCad 7.0 及以后的版本中,这种联系被删除。
符号描述应包含对元件的简要描述,如元件的功能、显著特征和封装选项。关键字应包含与该元件相关的其他术语。关键词主要是用来帮助搜索符号的。

符号的名称、描述和关键词都是在符号编辑器和添加符号对话框中搜索符号时使用的。描述和关键词会显示在符号库浏览器和添加符号对话框中。
封装筛选器
封装筛选器标签用于定义哪些封装适合与符号一起使用。筛选器可以在封装分配工具中使用,以便只显示每个符号合适的封装。
可以定义多个封装筛选器。符合任何一个筛选器的封装将被显示;如果没有定义筛选器,那么所有的封装都将被显示。
筛选器可以使用通配符。*
匹配任何数量的字符,包括零,而 ?
匹配零或一个字符。例如,SOIC-*
将匹配 SOIC-8_3.9x4.9mm_P1.27mm
封装以及任何其他以 SOIC-
开头的封装。筛选器 SOT?23
匹配 SOT23
以及 SOT-23
。

具有替代性外观的符号
如果该符号定义了一个备用的主体样式,每次必须选择一个主体样式进行编辑。要编辑正常外观,请点击 图标。
要编辑备用外观,请点击 图标。 使用下面显示的
下拉菜单,选择你想编辑的单元。
图形元素
图形元素创建了一个符号的视觉外观,不包含电气连接信息。图形元素是用以下工具创建的:
-
由起点和终点定义的直线和多边形。
-
由两个对角定义的矩形。
-
由中心和半径定义的圆形。
-
弧线由弧线的起点和终点以及它的中心定义。弧线可以从 0° 到 180°。
主窗口右侧的垂直工具栏允许你放置设计一个符号的外观所需的所有图形元素。
图形元素成员
每个图形元素(直线、圆弧、圆形等)都可以被定义为所有单元和/或主体样式所共有的,或特定单元和/或主体样式所特有的。元素选项可以通过右键点击元素来快速访问,显示所选元素的上下文菜单。下面是一个线条元素的上下文菜单。

你也可以在一个元素上双击左键来修改其属性。 下面是一个多边形元素的属性对话框。

图形元素的属性是:
-
边界 决定是否应该绘制形状的边框。
-
宽度 和 颜色 定义了边框的线宽和颜色。边界宽度为
0
时,使用原理图的默认符号线宽。风格 决定了边框的线条样式(实线、虚线、点线等)。 -
填充样式 决定了图形元素所定义的形状是否需要填充。填充颜色可以是颜色主题的主体边框颜色、主体背景颜色或自定义颜色。
-
符号中所有单的共有 决定了对于具有一个单元以上的符号,图形元素是否为符号中的每个单元绘制,或者只为当前单元绘制。
-
对所有主体风格通用(德摩根) 决定图形元素是否为具有替代主体风格的符号中的每个符号表示绘制,或者图形元素是否只为当前的主体风格绘制。
-
专用于符号编辑器 决定了形状仅在符号编辑器中编辑符号时可见。当符号被添加到原理图中时,该形状将被隐藏。
图形化文本元素
单击 图标允许创建图形文本。图形文本会自动调整方向,以便可读,即使符号被镜像。请注意,图形文本对象与符号字段不一样。
每个符号的多个单元和替代的主体样式
符号最多可以有两种主体样式(一个标准符号和一个备用符号,通常被称为 "德摩根等同")。符号可以有一个以上的单元(例如逻辑门)。有些符号可以有一个以上的单元,每个单元有不同的形状和引脚配置。
例如,思考一下有两个开关的继电器,它可以被设计成三个不同单元的符号:线圈、开关 1 和开关 2。 设计有多个单元的符号或备用的主体样式是非常灵活的。一个引脚或一个主体符号对象可以是所有单元所共有的,也可以是特定单元所特有的,或者它们可以是两个主题样式所共有的,也可以是特定的符号表示。
默认情况下,引脚是特定于一个单元和主体样式的。当一个引脚是所有单位或所有主体样式所共有的,它只需要被创建一次。主体样式的图形和文字也是如此,它们可能是每个单元所共有的,但通常是每个主体样式所特有的。
要向一个符号添加额外的单元,在符号属性对话框中将 单元数量 属性设置为适当的数字。默认情况下,符号单元被命名为 单元 A
、单元 B
等,但你可以使用 编辑 → 设置单元显示名称… 为当前单元设置一个任意的名称。
要添加一个备用的主体样式,请在符号属性对话框中设置 存在备用的主体样式(德摩根) 属性。
具有多个不可互换单元的符号示例
对于具有多个不能互换单元的符号的例子,思考一下继电器,它的符号 3 个单元:一个线圈、开关 1 和开关 2。
这三个单元并不都是一样的,所以在符号属性对话框中应取消选择 所有单元都可以互换。另外,这个选项可以在最初创建符号时指定。

单元 A

单元 B

单元 C

单元 A 与单元 B、单元 C 的符号和引脚布局不一样,所以这些单元不能互换。
同步引脚编辑模式 可以通过点击 ![]() |
引脚创建和编辑
可以点击 按钮来创建和插入一个引脚。可以通过双击引脚来编辑引脚的属性。也可以删除或移动你已经添加的引脚。必须小心地创建引脚,因为任何错误都会对 PCB 设计产生影响。
引脚概述
一个引脚是由它的图形表示、名称和编号定义的。引脚的名称和编号可以包含字母、数字和符号,但不能包含空格。 为了使电气规则检查(ERC)工具发挥作用,引脚的电气类型(输入、输出、三态…)也必须被正确定义。如果这个类型定义不正确,原理图上的 ERC 检查结果可能是无效的。
要点:
-
符号的引脚按编号与封装的焊盘相匹配。符号中的引脚编号必须与封装中相应的焊盘编号相对应。
-
不要在引脚名称和数字中使用空格。空格将被自动替换成下划线(
_
)。 -
要定义带有反转信号(上划线)的引脚名称,请使用
~
(波浪号)字符后跟文本以在大括号中反转。 例如~{FO}O
会显示 FO O。 -
如果引脚名称为空,则认为该引脚未被命名。
-
引脚名称可以在一个符号中重复。
-
引脚编号在一个符号中必须是唯一的。
引脚属性

引脚属性对话框允许你编辑引脚的所有属性。当你创建一个引脚或双击一个现有的引脚时,这个对话框会自动弹出。对话框允许你修改:
-
引脚名称和文字大小。
-
引脚编号和文字大小。
-
引脚的长度。
-
引脚的电气类型和图形风格。
-
单元和备用主体。
-
引脚可见性。
引脚图形样式
不同的引脚图形风格如下图所示。这些样式是纯粹的图形,不影响引脚的电气类型。

引脚电气类型
选择正确的电气类型对原理图 ERC 工具很重要。 ERC 将检查引脚的连接是否恰当,例如,确保输入引脚被驱动,电源输入从适当的来源接收电源。
引脚类型 |
描述 |
输入 |
一个专门用于输入的引脚。 |
输出 |
一个专门用于输出的引脚。 |
双向 |
可以作为输入或输出的引脚,如微控制器的数据总线引脚。 |
三态 |
三态输出引脚(高、低或高阻抗)。 |
无源 |
一个无源符号引脚:电阻、连接器等。 |
自由 |
一个可以自由连接到任何其他引脚的引脚,没有电气方面的问题。 |
未指定的 |
一个引脚,ERC 检查对其不重要。 |
电源输入 |
一个符号的电源引脚。作为一种特殊情况,被标记为不可见的电源输入引脚会自动连接到同名的网络中。更多信息请参见电源符号部分。 |
电源输出 |
为其他引脚提供电源的引脚,如稳压器的输出。 |
集电极开路 |
一个集电极开路的逻辑输出。 |
发射极开路 |
发射极开路逻辑输出。 |
未连接的引脚 |
不应连接任何东西的引脚。 |
将引脚属性推送到其他引脚
你可以通过右击一个引脚,并分别选择 推送引脚长度、推送引脚名称大小 或 推送引脚编号大小,将该引脚的长度、名称大小或数字大小应用于符号中的其他引脚。符号中的所有其他引脚将被更新。

为多个单元和备用主体样式定义引脚
具有多个单元和图形表示的符号在创建和编辑引脚时,问题特别多。大多数引脚都是针对每个符号单元(因为每个单元都有一组不同的引脚)和每个主体样式(因为常用主体样式和备用样式之间的形式和位置不同)。
符号库编辑器允许同时创建引脚。默认情况下,对引脚所做的修改是针对一个多单元符号的所有单元,以及对具有替代符号主题样式的两种表示法。 唯一的例外是引脚的图形类型和名称,它们在符号单元和主体样式之间保持无关联。建立这种依赖关系是为了在大多数情况下更容易创建和编辑引脚。这个依赖关系可以通过切换主工具栏上的 图标来禁用。这将允许你完全独立地为每个单元和代表创建引脚。
引脚可以是共用的,也可以是不同单元所特有的。引脚可以是两个符号主体样式共有的,也可以是每个符号主体特有的。当一个引脚对所有单元都通用时,它只需要绘制一次。引脚可以在引脚属性对话框中设置为通用或特定。
一个例子是 7400 四路双输入 NAND 门的输出引脚。由于有四个单元和两个符号表示,在符号定义中有八个独立的输出引脚。当创建一个新的 7400 符号时,常用主体样式的单元 A 将显示在库编辑器中。要编辑备用主体样式中的引脚,必须首先通过点击工具栏上的 按钮切换到备用样式。要编辑各个单元的引脚编号,请使用
下拉控件选择合适的单元。
引脚表
另一种编辑引脚的方法是使用引脚表,可以通过 图标访问。引脚表以表格的形式显示符号中的所有引脚及其属性,所以它对批量修改引脚很有用。
任何引脚属性都可以通过点击相应的单元格进行编辑。可以用 和
图标分别添加和删除引脚。
可以通过分组来同时编辑多个引脚的同一属性。 引脚可以按名称自动分组,也可以通过选择几个引脚并点击 选择的分组 来手动分组。点击 按钮来清除手动分组。 你也可以过滤表格,只显示某些单元的引脚。
通过右键单击标题行并勾选或取消附加列,可以显示或隐藏引脚表的各列。有些列是默认隐藏的。 |
下面的截图显示了一个四路运算放大器的引脚表。

备用引脚定义
引脚可以添加备用引脚定义。备用引脚定义允许用户在原理图中放置符号时为引脚选择不同的名称、电气类型和图形风格。这可用于具有多种功能的引脚,如微控制器引脚。
备用引脚定义是在引脚属性对话框中添加的,如下图所示。 每个备用引脚的定义包含一个引脚名称、电气类型和图形风格。 该微控制器引脚的所有外围功能都在符号中定义为备用引脚名称。

一旦符号被放置在原理图中,就可以在原理图编辑器中选择备用引脚的定义。备用引脚是在符号属性对话框的备用引脚分配选项卡中分配的。备用引脚定义可在备用分配栏的下拉菜单中选择。

符号字段
所有库中的符号都定义有四个默认字段。每当创建或复制一个符号时,就会创建位号、值、封装分配和数据手册链接字段。 只有位号是必需的。
如果使用 封装
字段,则包含符号与封装关联。格式是 LIBNAME:FOOTPRINTNAME
,其中 LIBNAME
是封装库表中的封装库名称(见 PCB 编辑器手册中的 封装库表部分),FOOTPRINTNAME
是 LIBNAME
库中的封装名称。
在库中定义的符号通常只有这四个默认字段。额外的字段,如供应商、元件编号、单位成本等,可以添加到库中的符号中,这样额外的字段就可以应用到原理图中的所有符号。但额外字段一般是在原理图编辑器中添加的。
创建额外的空符号字段的一种便捷方法是使用定义字段名称模板。字段名称模板定义空字段,当每个符号插入原理图时,这些字段会被添加到每个符号中。字段名称模板可以在原理图编辑器首选项中全局定义(针对所有原理图),也可以在原理图设置对话框中局部定义(针对每个工程)。 |
如果你想在符号字段中管理大量的元件数据,可以考虑使用数据库关联库。 |
编辑符号字段
要编辑一个现有的符号字段,请双击该字段,选择它或悬停并按 E,或右击字段文本并选择 属性…。
要添加新字段、删除可选字段或编辑现有字段,请使用主工具栏上的 图标,打开符号属性对话框。
字段是与符号相关的文本信息。不要将它们与符号的图形表示中的文字混淆。
创建电源符号
电源符号是用于将导线标记为电源网络一部分的符号,例如“VCC”或“GND”。电源符号的行为在 电气连接部分中描述。电源符号的处理和创建方式与普通符号相同,但有几个额外的考虑因素,如下所述。
将电源符号放在一个专门的库中可能是有用的。KiCad 的符号库将电源符号放在 power
库中,用户可以创建库来存储自己的电源符号。如果在符号的属性中勾选了 定义为电源符号 框,该符号就会出现在原理图编辑器的 添加电源符号 对话框中,以便于访问。
下面是一个 GND
电源符号的例子。

电源符号包括一个标记为不可见的 "电源输入" 类型的引脚。 还必须选中 定义为电源符号 的属性。 隐藏的电源输入引脚有一个特殊的属性,即根据引脚名称进行隐性的全局连接。
如果电源符号勾选了 定义为电源符号 属性,那么电源输入引脚就不需要被标记为不可见。然而,惯例是无论如何都要使这些引脚不可见。 |

要创建一个电源符号,请使用以下步骤:
-
添加一个 电源输入 类型的引脚,可见 属性不被选中,并根据所需的网络命名引脚。使引脚的编号为
1
长度为0
,并将图形样式设置为 直线。引脚名称建立了与网络的连接;在这种情况下,引脚将自动连接到网络GND
。引脚编号、长度和线条样式在电气上并不重要。 -
将引脚放在符号锚点上。
-
使用形状工具来绘制符号图形。
-
设置符号值。符号值在电气上并不重要,但它会显示在原理图中。为了避免混淆,它应该与引脚名称相匹配(引脚名称决定了连接的网络名称)。
-
勾选符号属性窗口中的 定义为电源符号 框。这会让该符号出现在 添加电源符号 对话框中,将原理图中的 "值" 字段成为只读,防止该符号被分配一个封装,并将该符号从电路板、BOM 和网表中排除。
-
设置符号的位号并取消勾选 显示 框。位号第一个字符应为
#
,后续文本并不重要。对于上面所示的电源符号,位号可以是#GND
。位号以#
开头的符号不会被添加到 PCB 上,不包括在物料清单的输出或网表中,也不会在封装分配工具中分配一个封装。如果一个电源符号的位号不是以\#
开头,当运行批注或封装分配工具时,该符号会被自动插入到符号表中。
创建一个新的电源符号的一个更简单的方法是使用已有的电源符号作为起点,如前所述。
连接的网络名称是由电源符号的 引脚名称 决定的,而不是符号的名称或值。在修改现有的电源符号时,请确保重新命名引脚,以便新符号连接到适当的电源网络。这意味着电源符号网络名称只能在符号编辑器中改变,而不能在原理图中改变。 |
浏览符号库
符号库浏览器允许你快速查看符号库的内容。符号库浏览器可以通过点击主工具栏上的 图标,点击查看 → 符号库浏览器,或点击 选择符号 窗口中的 在符号库浏览器中选择 来访问。
要检查一个库的内容,从左侧窗格的列表中选择一个库。所选库中的所有符号将出现在第二个窗格中。 选择一个符号名称来查看该符号。

双击符号名称或使用 按钮将符号添加到原理图中。
顶部的工具条包含以下命令:
在 选择符号 窗口中打开选定的符号。 |
|
选择库中的前一个符号。 |
|
选择库中的下一个符号。 |
|
|
缩放工具。 |
|
选择标准或备用的德摩根符号表示, 如果适用的话。 |
选择多单元符号的单元。 |
|
打开符号的数据手册, 如果它被定义。 |
|
将当前符号插入原理图中。 |
仿真器
KiCad 提供了一个嵌入式电路仿真器,使用 ngspice 作为模拟引擎。 除了最简单的模拟之外,所有仿真都需要您在仿真原理图之前将仿真模型添加到您的符号中。
使用仿真器时,官方的 Simulation_SPICE
符号库可能会有用。 它包含用于仿真的常用符号,如电压/电流源和晶体管,其引脚编号与 ngspice 节点顺序规范相匹配。
也有一些演示项目来说明仿真器的功能。 你可以在 demos/simulation 目录下找到它们。
值的表示
仿真器支持多种书面的数值表示法:
-
简单表示法 :
10100
,0.003
, -
科学表示法:
1.01e4
,3e-3
, -
前缀表示法:
10.1k
,3m
. -
RKM 表示法:
4k7
,10R
.
您可以混合使用前缀和科学记数法。 因此, 3e-4k
是一个有效输入,相当于 0.3
。 有效前缀列表如下所示。 前缀区分大小写。
前缀 | 含义 | 值 |
---|---|---|
a |
atto |
10-18 |
f |
femto |
10-15 |
p |
pico |
10-12 |
n |
nano |
10-9 |
u |
micro |
10-6 |
m |
milli |
10-3 |
k |
kilo |
103 |
M |
mega |
106 |
G |
giga |
109 |
T |
tera |
1012 |
P |
peta |
1015 |
E |
exa |
1015 |
原始 SPICE 元素 模型和 标识符 直接传递给 ngspice,无需 KiCad 重新格式化值以供 ngspice 使用。 Ngspice 使用不同的、不区分大小写的表示法:1 兆 (106) 表示为`1Meg`,而 1M 是 1 毫 (10-3)。 根据所选的兼容模式,ngspice 可能不支持与 KiCad 相同的值表示法,因此在使用原始 SPICE 元素和仿真标识符时应小心。
|
分配模型
您需要先将仿真模型分配给符号,然后才能仿真您的电路。
每个符号只能分配一个模型, 即使该符号包含多个单元也是如此。 对于具有多个单元的符号, 您应该将模型分配给第一个单元。
SPICE 模型信息以文本形式存储在符号字段中。 因此,您可以在符号编辑器或原理图编辑器中定义它。 要将仿真模型分配给符号,请打开符号属性对话框并单击 仿真模型… 按钮,这将打开仿真模型编辑器对话框。
您可以通过选中“符号属性”对话框中的从仿真中排除复选框从仿真中排除一个符号。
推断模型
电阻、电感和电容的模型是可以推断,这意味着 KiCad 将检测到它们是无源的并自动分配适当的仿真模型。 因此它们不需要任何特殊设置; 用户只需要设置符号的 值
字段即可。
KiCad 根据以下标准推断符号的仿真模型:
-
该符号恰好有两个引脚,
-
位号以
R
,L
或C
开头。
推断模型是理想模型。 如果仿真需要非理想模型,则必须明确分配模型。
内置模型
KiCad 提供多种标准仿真模型。 它们不需要外部模型文件。 以下元件可用:
-
电阻(包括电位器)、电容、电感
-
传输线
-
开关
-
电压源和电流源
-
二极管
-
晶体管 (BJT, MOSFET, MESFET 及 JFET)
-
原始SPICE元素
要将内置模型添加到符号,请打开仿真模型编辑器对话框(符号属性 → 仿真模型…)并选择内置 SPICE 模型。
有关这些模型的更多详细信息,请参阅 ngspice 文档。

元件 设置要仿真的元件类型:电阻、BJT、电压源等。此值存储在符号的 Sim.Device
字段中。
类型 选择用于元件的模型类型。 大多数元件都有多种类型的模型可供选择,它们的准确度、优化的特性以及可用参数可能会有所不同。 有关详细信息,请参阅 ngspice 文档。 该值存储在符号的 Sim.Type
字段中。
参数 选项卡显示元件的参数并允许您编辑它们。 例如,电阻器的电阻、电压源的波形、MOSFET 的宽度和长度等。任何与模型默认值不同的参数都存储在符号的 Sim.Params
字段中。
编码 选项卡显示生成的 SPICE 模型,因为它将被写入 SPICE 网表以进行仿真。
在值字段中的保存参数 '<parameter name>' 复选框使用符号的 值
字段而不是 Sim.Params
字段来存储参数。 这可以更轻松地从原理图编辑简单模型,而无需打开仿真模型编辑器。 此选项仅适用于理想的无源模型(R、L、C)和直流电源。 如果符号中存在 Sim.Params
字段,它将优先于 值
字段。
库模型
KiCad 可以从外部文件加载 SPICE 模型。 模型必须采用标准 SPICE 格式且未加密。
要从外部文件加载模型,请打开仿真模型编辑器对话框(符号属性 → 仿真模型…)并从文件中选择 SPICE 模型。

File 是要使用的模型文件的路径。 路径可以是绝对路径,也可以是相对于项目文件夹的路径。 路径也可以是相对于 SPICE_LIB_DIR
的值,如果你已经
定义该路径变量。 库文件名保存在符号的 Sim.Library
字段中。
Model 是模型文件中所需模型的名称。 如果文件包含多个模型,它们将全部列在下拉列表中。 所选模型列在符号的 Sim.Name
字段中。
可以使用 parameters 选项卡覆盖参数(或指定其他参数)。 在所选模型或 参数 选项卡中指定的所有参数都存储在符号的 Sim.Params
字段中。
编码 选项卡显示生成的 SPICE 模型,因为它将被写入 SPICE 网表以进行仿真。
KiCad 不附带符号的 SPICE 模型。 SPICE 模型通常可从设备制造商处获得。 |
库模型 (IBIS)
IBIS(I/O 缓冲区信息规范)文件是 SPICE 模型的替代品,用于对数字部件上的输入/输出缓冲区的行为进行建模。 为了加载 IBIS 文件,用户应遵循 SPICE 库模型的相关流程,并提供一个 .ibs
文件。

文件 是要使用的模型文件的路径。 路径可以是绝对路径,也可以是相对于项目文件夹的路径。 路径也可以是相对于 SPICE_LIB_DIR
的值,如果你已经
定义该路径变量。
库文件名保存在符号的`Sim.Library`字段中。 如果加载了 IBIS 模型文件,对话框中的其余字段将与 IBIS 模型相关。
元件 从 IBIS 文件中选择要使用的元件,因为 IBIS 文件可以包含多个元件。 元件名称保存在符号的
Sim.Name
字段。
Pin 选择 IBIS 模型中的哪个引脚进行仿真。 所选引脚必须映射到 引脚分配 选项卡中的符号引脚。 所选引脚的编号保存在符号的 Sim.Ibis.Pin
字段中。
模型 是所选引脚可用的模型列表,例如输入或输出。 所选模型名称保存在符号的 Sim.Ibis.Model
字段中。
类型 选择引脚在仿真中应该做什么。 引脚可以是不驱动任何值的无源元件; 它可以是驱动高阻抗、低阻抗或高阻抗的 DC 驱动器; 或者它可以是 矩形波 或 PRBS 驱动器。 该值存储在符号的 Sim.Type
字段中。
参数 选项卡可让您查看和编辑模型的参数。 对于每个参数,您可以在 IBIS 文件中定义的最小值、典型值或最大值之间切换。 您还可以根据引脚选择的类型来选择驱动波形的参数。 任何不同于默认值的参数都存储在符号的 Sim.Params
字段中。
KiCad 不附带符号的 IBIS 模型。 IBIS 模型通常可从设备制造商处获得。 |
KiCad 的 Simulation_SPICE 符号库提供了几个可能对 IBIS 仿真有用的符号。 IBIS_DEVICE 可用于元件(输入)引脚,而 IBIS_DRIVER 可用于仿真驱动器引脚。 每个差分引脚也有类似符号。
|
引脚分配
仿真模型的引脚编号可能与相应符号不同。 例如,二极管的 SPICE 模型通常将引脚 1 视为阳极,而原理图符号通常将引脚 1 视为阴极。
您可以使用仿真模型编辑器的 引脚分配 选项卡将符号的引脚映射到仿真模型引脚。
始终确保符号引脚正确映射到仿真模型引脚。 |

左列显示每个符号引脚的名称和编号。 对于每个符号引脚,您可以从右列下拉列表中的仿真模型中选择相应的引脚。
当您使用子电路模型时,该对话框会在引脚分配下显示模型代码,以在分配引脚时用作参考。
SPICE 标识符
可以在原理图图纸的文本字段中放置 SPICE 标识符。 这种方法便于定义默认模拟类型。 文本字段中支持的标识符列表是:
-
以点开头的标识符(例如
.tran 10n 1m
) -
电感耦合系数(例如
K1 L1 L2 0.89
)
无法使用文本字段放置其他元件。
如果原理图文本中包含仿真命令,则当您打开仿真器时,仿真器将使用它作为仿真命令。 但是,您可以在“仿真命令”对话框中覆盖它。
有关 SPICE 标识符的更多详细信息,请参阅 ngspice 文档。
运行仿真
用户界面
要运行仿真,请在原理图编辑器窗口中单击 检查 → 仿真 或使用顶部工具栏中的 按钮打开 SPICE 仿真器对话框。

该对话框分为几个部分:
-
窗口顶部有一个工具栏,其中包含常用操作的按钮。
-
窗口的主要部分以图形方式显示仿真结果。 在图中显示信号之前需要对其进行探测。
-
在绘图面板下方,输出控制台显示来自 ngspice 仿真引擎的日志。
-
窗口的右侧显示绘制信号列表、活动光标列表和用于根据仿真结果调整元件值的调整工具。
工作簿
工作簿是存储有关仿真环境信息的文件,包括仿真设置参数和显示信号列表。 它们可用于存储一组分析的设置,然后可以重新加载并在以后重新运行。
您可以使用 文件 → 保存工作簿 和 文件 → 打开工作簿 保存和加载工作簿。
工作簿存储仿真设置信息,但不存储仿真结果。 您可以使用 文件 → 将当前图形导出为PNG… 和 文件 → 将当前图形导出为CSV…, 将仿真结果导出为 PNG(图形)或 CSV(数据点) 。 |
运行仿真
在运行仿真之前,您需要选择仿真类型并选择仿真参数。 这可以使用 仿真 → 设置… 或 仿真命令 按钮 () 然后选择一种可用的分析类型:
-
交流
-
直流传输
-
工作点
-
瞬态
-
自定义
分析类型在 ngspice 文档 中有进一步解释。
配置仿真的另一种方法是在原理图的文本字段中输入Spice 指令。任何与仿真类型有关的文本字段指令都会被对话框中选择的设置所覆盖。这意味着,一旦你开始使用仿真对话框,对话框就会覆盖原理图的指令,直到重新打开仿真器。
设置仿真命令后,用户可以使用 仿真 → 开始仿真 (Ctrl+R) 或 运行/停止仿真 按钮 ()开始仿真。
交流分析

计算电路响应激励的小信号交流行为。执行激励频率频程为10的扫描。
要运行 AC 分析,您必须选择每十倍频程测量的点数以及十倍频程扫描的开始和结束频率。
输出显示为波特图(输出幅度和相位 vs. 激励频率频程为10的扫描)。
直流传输分析

在扫描一个或两个电压或电流源、电阻或模拟温度时计算电路的直流行为。
要运行 DC 分析,您必须选择要执行的扫描类型、扫描时用什么源、电阻或温度值,以及扫描范围和步进值应该是什么。
输出显示为绘图。
工作点分析
计算电路的直流工作点。 该分析没有选项,结果打印到 SPICE 日志中。
瞬态分析

计算电路的时变行为。
要运行瞬态分析,您需要指定建议的时间步长和最终仿真时间。 您可以选择指定一个开始时间来覆盖默认值 0。
输出显示为绘图。
自定义分析

自定义分析让您可以编写 SPICE 命令来设置分析。 按从原理图中加载标识符按钮,将原理图文本中的任何 SPICE 标识符复制到自定义分析文本框中。
有关分析命令的更多信息,请参阅 ngspice 文档。
额外的仿真设置
有几个仿真选项适用于所有类型的模拟。
为 .include 库标识符添加完整路径 控制是否将原理图文本中的 .include
标识符的相对路径转换为绝对路径。
保存所有电压 和 保存所有电流 控制仿真器是否分别为元件的内部节点保存电压和电流。 未选中时,仿真器仅保存外部节点的电压和电流。
兼容模式下拉列表选择仿真器用于加载模型的兼容模式。 用户配置 选项是指用户的 .spiceinit
ngspice 配置文件。 兼容模式在 ngspice 文档 中进行了描述。
探测信号
使用信号列表
您可以使用 仿真 → 添加信号(Ctrl+A 快捷键或 按钮)显示可用信号列表。 双击列表中的元素会将其添加到探测信号列表中。 使用 Ctrl / Shift 键可以一次选择多个信号。
使用探测工具
仿真器窗口的工具栏中提供了一个探测工具 (),它提供了一种友好的方式来选择信号进行绘图。 激活后,用户可以单击原理图编辑器中的元素。 要探测电压,请使用探测工具单击导线。 当使用该工具将鼠标悬停在导线上时,相应的网络会突出显示。 要探测电流,请单击符号引脚。 将鼠标悬停在引脚上时,光标将从电压探头符号变为电流钳符号。 无法使用此工具探测电源信号。
使用SPICE标识符
虽然 ngspice 支持 .plot
标识符,但它不能在当前版本的 KiCad 中使用。
差分电压
探测差分电压通常需要仿真符号。 在官方库的 Simulation_SPICE:VOLTMETER_DIFF
中可用。 该符号有两个用于差分电压感测的端子,用户可以探测。
名为 kicad_builtin_vdiff 的 SPICE 模型已预先分配给内置 VOLTMETER_DIFF 符号。 用户不应定义同名的 SPICE 模型。
|
也可以通过放置 .probe vd(X)
标识符来探测电阻器等两端元件,其中 X
是设备的名称(例如 R1
)。 为了探测它,在使用信号列表添加信号时输入 vd_X
。 请注意,该信号不会出现在信号列表中,它应该由用户输入。 这种方法的优点是不向原理图图纸添加额外的符号。
删除信号探针
要删除信号探针,请在信号列表中双击它,或右键单击它并选择 Remove Signal。
调整元件
可以使用滑块更改被动(R、L、C)值,以图形方式调整它们。 每当将滑块设置到新位置时,都会使用新参数运行仿真并更新绘图。 要为元件添加滑块,请使用 仿真 → 调整元件值 或工具栏中的 按钮,然后单击要调整的元件。
-
顶部的文本字段设置了最大的元件值。
-
中间的文本字段设置实际的元件值。
-
底部的文本字段设置了最小元件值。
-
滑块允许用户修改元件值。
-
保存 按钮将原理图上的元件值修改为使用滑块选择的值。
-
单击
按钮将元件从调整面板中删除并恢复其原始值。
可视化结果
绘制数量
本节适用于输出诸如 .ac
和 .tran
等向量的仿真命令。
仿真结果为可视化的图形。 可以在单独的选项卡中打开多个图,但在执行仿真时只会更新活动图。 这样就可以比较运行多次的仿真结果。
可以使用 视图 菜单切换网格和图例可见性来自定义绘图。 当图例可见时,可以拖动它来更改其位置。 您可以使用 视图 → 白色背景 将绘图背景从暗切换到亮,并使用 视图 → 虚线电流/相位 将电流和相位图切换为使用虚线而不是实线。
为了精确测量,可以将光标添加到信号中。 为此,请右键单击 信号 窗格中的信号名称并选择 显示光标。 然后可以将光标移动到感兴趣的点。 然后,这些值将显示在窗口的 光标 部分。 要隐藏光标,请右键单击信号并选择 隐藏光标。 每个信号可能显示一个光标。
绘图面板可以进行以下交互:
-
滚动鼠标滚轮来放大/缩小
-
右击打开上下文菜单,以调整视图
-
绘制一个选择矩形,以放大所选区域
-
拖动光标以改变其坐标
数值
一些分析类型,例如 DC 工作点分析 (.op
),没有任何要绘制的图形输出。 相反,它们的输出打印在 SPICE 控制台中。
导出结果
KiCad 的仿真器提供了两种导出结果的方式:
-
作为图像使用 文件 → 将当前图导出为 PNG…
-
作为包含数据点的
.csv
文件,使用 文件 → 将当前图导出为 CSV…。
查错
网表不正确
可以使用 仿真 → 显示 SPICE 网表… 检查 SPICE 网表。 这种查错方法需要一些 SPICE 知识,但发现网表中的错误有助于确定仿真问题的原因。
仿真错误
输出控制台显示来自仿真器的消息。 建议检查控制台输出以验证没有错误或警告。
收敛问题
如果仿真在合理的时间内没有收敛(或根本没有收敛),可以添加以下 SPICE 标识符。
更改收敛选项可能会导致错误的结果。 应谨慎使用这些选项。 |
.options gmin=1e-10 .options abstol=1e-10 .options reltol=0.003 .options cshunt=1e-15
-
gmin
是程序允许的最小电导率。 默认值为1e-12
。 -
abstol
是程序的绝对电流误差容忍度。 默认值为 1 pA。 -
reltol
是程序的相对容错度。 默认值为0.001
(0.1%)。 -
cshunt
在电路中的每个电压节点和地之间添加一个电容器。
高级主题
配置和定制
KiCad 文档的这一部分尚未编写。 感谢您的耐心等待,我们的志愿文档编写者正在努力更新和扩展文档。 |
文本变量
KiCad 支持文本变量,它允许您用定义的文本字符串替换变量名称。 这种替换发生在变量名称在 ${VARIABLENAME} 的变量替换语法中使用的任何地方。
以下变量可用于原理图文本、标签名称、标签字段、层次表字段、符号文本和符号字段。 还有一些 在PCB 编辑器中可以使用的变量。
除非另有说明,否则层次化原理图字段中使用的变量指的是子原理图页的属性,而不是父图的属性。 例如,${#}
在层次化原理图字段中使用时返回子原理图的页码,在父原理图中的图形文本中使用时才返回父原理图的页码。
Variable name | Description |
---|---|
|
Sheet number. |
|
Total number of schematic sheets. |
|
Sheet path of the current sheet. |
|
Filename of the root schematic sheet, with a file extension. |
|
Project name, without a file extension. |
|
Contents of drawing sheet’s |
|
Today’s date, in ISO format. |
|
Contents of drawing sheet’s |
|
Contents of drawing sheet’s |
|
Contents of drawing sheet’s |
|
Contents of drawing sheet’s |
|
Contents of project text variable
|
|
Contents of symbol field, hierarchical sheet field, or label field
Both built-in and user-defined fields are available. Built-in fields use all
uppercase letters: for example, to access a symbol’s value, use Built-in symbol fields are Built-in sheet fields are Built-in label fields are |
|
Contents of field Both built-in and user-defined fields are available. Built-in fields use all
uppercase letters: for example, to access the value of Built-in symbol fields are |
数据库关联库文件
数据库关联库是 KiCad 符号库的一种类型,它在外部 SQL 数据库中保存有关零件的数据。 数据基础库本身不包含任何符号或封装的定义。 相反,它们 引用 其他 KiCad 库中的符号和封装。每个数据库关联库文件条目都将一个 KiCad 符号(来自其他库)映射到一组属性(字段),通常还有一个 KiCad 封装(来自封装库)。
使用数据库关联库可以抛开 KiCad 符号库和封装,而创建完全自定义的元件(也可称为 最小元件),而无需在符号库中存储所有元件属性。 外部数据库可以链接到第三方工具,用于管理元件数据和生命周期。 数据库关联库的工作流程通常比标准 KiCad 库的工作流程更复杂,因此这种类型的库通常只用于大规模的元件库,因为完全自定义的元件库可以使得效率提高(这在组织或团队协同中很常见)。
KiCad 不提供编辑 SQL 数据库或定义数据库关联库的图形界面。 用户可以自行寻找最合适的工作流程和工具链来创建并更新数据库。 有些用户可能希望通过第三方数据库客户端直接编辑数据库,有些用户可能使用其他第三方软件,如元件生命周期管理(PLM)工具来创建和编辑数据。
在数据库关联库中,有一个或多个 表,每个表通常代表单一类型的元件(如电阻或电容)。 每个表可以有一个独立的结构,这意味着不同类型的元件可以有不同的属性,这些属性在 KiCad 中被转化为符号字段。 每个表必须有一个唯一的 ID 列,作为从该表放置的符号的标识符。 这个唯一的 ID 通常是一个物料号(制造商零件编号,或内部组织的零件编号)。 每张表还必须有一列包含 KiCad 符号的映射,形式为 LibraryNickname:SymbolName
。 LibraryNickname
必须与 KiCad 库表中的符号库相匹配。 表也可以包含一个包含 KiCad 封装的列,形式为 LibraryNickname:FootprintName
。 如果这一列存在,从表中放置的符号将包括一个封装映射。
表也可以包含任意的额外列,这些列可以选择性地映射到 KiCad 中的符号字段。 KiCad 数据库关联库的配置文件控制这些字段的命名方式,是否使字段可见,以及是否将字段包含在符号选择器中显示的数据。
数据库关联库配置文件
要创建一个数据库关联库,你必须创建一个配置文件,其中包含 KiCad 连接到你的数据库的必要信息并从表中获取数据。 将下面的模板复制到一个新文件中,并以 kicad_dbl
为扩展名保存。 然后你可以使用配置符号库对话框将此文件添加到你的全局符号库表中。
{
"meta": {
"version": 0
},
"name": "My Database Library",
"description": "A database of components",
"source": {
"type": "odbc",
"dsn": "",
"username": "",
"password": "",
"timeout_seconds": 2,
"connection_string": ""
},
"libraries": [
{
"name": "Resistors",
"table": "Resistors",
"key": "Part ID",
"symbols": "Symbols",
"footprints": "Footprints",
"fields": [
{
"column": "MPN",
"name": "MPN",
"visible_on_add": false,
"visible_in_chooser": true,
"show_name": true,
"inherit_properties": true
},
{
"column": "Value",
"name": "Value",
"visible_on_add": true,
"visible_in_chooser": true,
"show_name": false
}
],
"properties": {
"description": "Description",
"footprint_filters": "Footprint Filters",
"keywords": "Keywords",
"exclude_from_bom": "No BOM",
"exclude_from_board": "Schematic Only"
}
}
]
}
Database library files are in JSON format. Standard JSON syntax rules apply. To check if your file contains syntax errors, you may use a JSON validator or linter (available online). |
配置数据源
KiCad 目前只支持 ODBC 连接到 SQL 数据库。 你可以用 DSN 或连接字符串进行连接。 如果提供了 DSN 名称,可选的 username
和 password
字段将被用来连接到 DSN。 如果提供了一个连接字符串,dsn
, username
, 和 password
字段将被忽略。 连接字符串将直接传递给 ODBC 驱动程序,这样就可以包含 ODBC 驱动程序支持的任何参数。
When using a DSN connection, leave the connection_string
property blank or omit it from the file. When using a connection string, leave the dsn
, username
, and password
fields blank or omit them from the file. Connection strings must start with a Driver
key indicating to the ODBC manager which driver should be used, and may include other keys that depend on the specific driver. Check the documentation for your ODBC driver for details. You may also find a reference site like connectionstrings.com useful when configuring a database connection.
KiCad 不推荐或认可任何特定的 ODBC 驱动程序或数据库服务器,但经测试可与 Sqlite、MySQL、MariaDB 和 PostgreSQL 兼容。
Windows users: the backslash character (\ ) must be escaped with a second backslash when included in a JSON quoted string. If including a file path in your connection string, make sure to use double backslashes (\\ ).
|
Flatpak users: You need to install the corresponding ODBC drivers as Flatpak extensions. You can do this via the "Add-ons" section for KiCad in your software manager (i.e. GNOME Software), or via the command line: Run flatpak install org.kicad.KiCad.ODBCDriver.sqliteodbc for SQLite, flatpak install org.kicad.KiCad.ODBCDriver.mariadb-connector-odbc for MariaDB or MySQL, or flatpak install org.kicad.KiCad.ODBCDriver.psqlodbc for PostgreSQL.
|
Flatpak users: Due to Flatpak sandboxing, a possible way to connect to database servers running on your local machine is via TCP/IP. Make sure that your database server allows TCP/IP connections, then add the required Port parameter to your connection string. For example, add Port=3306; for the default TCP port of MySQL/MariaDB, or Server=localhost;Port=5432; to force PostgreSQL to use a TCP connection to the local server. Using the default UNIX domain socket connections for MySQL, MariaDB, or PostgreSQL is only possible when overriding host file system permissions via flatpak override .
|
配置库
每个数据库关联库可以包含映射到单个数据库表的 "子库"。 配置文件中的 libraries
条目包含一个对象列表,每个对象定义一个库。 每个库必须存在以下设置:
name
: The name of the sub-library (table) that will be shown in the KiCad UI and included as a prefix in each symbol name placed from this sub-library. This name can include any valid characters for a symbol name except for a forward slash (/
) because the slash character is used as a separator between the sub-library name and the symbol name. If this field is left blank, no prefix will be added to symbols in this sub-library.
table
: 数据库中的表的名称。
key
: 包含唯一键的列名,将用于识别表中的器件。
symbols
: 包含 KiCad 符号引用的列名。
footprints
: 包含 KiCad 封装引用的列名。
fields
: 一个字段定义的列表。 在这里定义的每个字段都会在符号被放置在原理图上时被添加到符号中。 如果源符号中已经定义了一个名称相同的字段,那么数据库表中的值将覆盖源符号中定义的任何值。每个字段定义都可以包含:
column
: 应该被映射到一个字段的数据库表列的名称。
name
: 要从数据库中填充的 KiCad 字段的名称。
visible_on_add
: 如果是 true
,当符号被添加时,这个字段将在原理图中可见。如果没有指定这个设置,它将默认为 false
。
visible_in_chooser
: 如果 true
,这个字段将在符号选择器中显示为一个列。如果没有指定这个设置,它将默认为 false
。
show_name
: 如果是 true
,除显示其值之外,该字段的名称将在原理图中显示。 如果没有指定这个设置,将默认为 false
。
inherit_properties
: 如果是 true
,并且源符号中已经存在一个给定的 name
字段,那么只有字段内容将从数据库中更新,其他属性(visible_on_add
,show_name
等)将保持源符号中的设置。 如果给定的字段名在源符号中不存在,这个设置将被忽略。 如果没有指定这个设置,它将默认为 false
。
properties
: 符号属性与数据库列的映射。 所有的属性都是可选的;任何没有在数据库库配置中指定的属性都将从为源符号设置的值中继承下来。 支持以下属性:
description
: 符号的描述属性。
footprint_filters
: 预留给未来的扩展。
keywords
: 符号的关键词属性。
exclude_from_bom
: 符号的 "不包括在 BOM 中" 设置。 该列必须是数字类型,并将被视为布尔值(0
代表假,1
代表真)。
exclude_from_board
: 符号的 "排除在 PCB 之外" 设置。该列必须是数字类型,并将被当作布尔值(0
代表假,1
代表真)。
数据库列可以被映射到自定义(用户定义的)字段,或某些内置的 KiCad 字段,包括 Value
和 Datasheet
。
KiCad only supports text (string) fields. If you map a database column containing a numeric SQL data type, it will be converted to a string using a general-purpose conversion algorithm that will switch to scientific notation for very large or very small numbers. This format conversion cannot be fine-tuned by the user, so if explicit control over number-to-string conversion is needed, a new column or view should be used to do the conversion in the database. |
使用数据库关联库
创建配置文件并将其添加到符号库表中后,您可以使用符号选择器从数据库表中放置元件。 从数据库关联库中放置的元件可以使用 "从库中更新符号" 功能进行更新,该功能将更新数据库中被改变的任何字段,以及更新源库中被改变的符号。
请注意,数据库表所引用的任何源库也必须存在于符号库表中,这样数据库关联库库才能正常工作。 如果你想把一个库只作为数据库关联库的符号源,你可以通过清除 "管理符号库" 对话框中的 "可见" 复选框将其从符号选择器中隐藏起来。
自定义网表和 BOM 格式
KiCad 可以导出各种格式的网表和 BOM,如果需要,用户可以定义新的格式。
导出网表的过程在 netlist export section中描述。BOM 导出在BOM导出章节中描述。
下文描述了如何为一个新的导出格式创建一个导出器。
添加新的网表生成器
新的网表生成器可以通过点击 添加生成器… 按钮添加到 导出网表 对话框中。

新的生成器需要一个名称和一个命令。名称显示在标签中,只要点击 导出网表 按钮,就会运行该命令。
当网表生成时,KiCad 会创建一个中间的 XML 文件,其中包含原理图中所有的网表信息。然后运行生成器命令,以将中间网表转换为所需的网表格式。
网表命令必须正确设置,以便网表生成器脚本将中间网表文件作为输入并输出所需的网表文件。确切的网表命令将取决于所使用的生成器脚本。下面描述了命令格式。
Python 和 XSLT 是创建自定义网表生成器的常用工具。
添加新的 BOM 生成器
KiCad 还使用中间网表文件,通过 BOM生成工具生成 BOM。

通过点击 按钮,可以在 BOM 生成器脚本列表中添加其他脚本。点击
按钮,可以删除脚本。
按钮在文本编辑器中打开所选的脚本。
用 Python 和 XSLT 编写的生成器脚本可以包含一个标题注释,描述生成器的功能和用法。这个标题注释会作为每个生成器的描述显示在 BOM 对话框中。标题注释必须包含字符串 @package
。该字符串之后直到注释结束的所有内容都被用作生成器的描述。
当添加新的生成器脚本时,KiCad 会自动填充命令行字段,但根据生成器脚本的情况,可能需要手工调整命令行。KiCad 试图从生成器脚本标题中的示例命令行自动确定输出文件扩展名。
生成器命令行格式
网表或 BOM 导出器的命令行定义了 KiCad 将运行的命令,用以生成所选输出文件。
对于使用 xsltproc
的网表导出器,以下为一个示例:
xsltproc -o %O.net /usr/share/kicad/plugins/netlist_form_pads-pcb.asc.xsl %I
对于使用 Python 的 BOM 导出器,以下为一个示例:
/usr/bin/python3 /usr/share/kicad/plugins/bom_csv_grouped_by_value.py "%I" "%O.csv"
建议在命令行中用引号 (" ) 将参数括起来,以防它们包含空格或其他特殊字符。
|
某些字符序列(如 %I
和 %O
)在命令行中具有特殊含义,因为 KiCad 在执行命令之前将它们替换为文件名或路径。
参数 | 替换为… | 描述 |
---|---|---|
|
|
中间网表文件的绝对路径和文件名,它是 BOM 或网表生成器插件的输入。 |
|
|
输出 BOM 或网表文件的绝对路径和文件名(没有文件扩展名)。
适当的文件扩展名可能需要在 |
|
|
输出 BOM 或网表文件的基本文件名(没有路径或文件扩展名)。
适当的文件扩展名可能需要在 |
|
|
工程目录的绝对路径,没有尾部斜线 |
中间网表文件格式
当输出 BOM 文件和网表时,KiCad 会创建一个中间网表文件,然后运行一个单独的工具,将中间网表后期处理成所需的网表或 BOM 格式。
中间网表使用 XML 语法。它包含有关设计的大量数据。根据输出(BOM 或网表),完整中间网表文件的不同子集将包含在最终输出文件中。
中间网表文件的结构详述 如下。
由于从中间网表文件到输出网表或 BOM 的转换是文本到文本的转换,因此可以使用 Python、XSLT 或任何其他能够将 XML 作为输入的工具编写后处理过滤器。
不建议新的网表或 BOM 导出器使用 XSLT;应该改用 Python 或其他工具。从 KiCad 7 开始,xsltproc 不再随 KiCad 一起安装,尽管它可以单独安装。 不过,下面列出了使用 XSLT 的网表导出器的几个示例。
|
中间网表结构
此示例提供了网表文件格式的概览。
<?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="/"/>
<tstamps>4C6E2141</tstamps>
</comp>
<comp ref="U2">
<value>74LS74</value>
<libsource lib="74xx" part="74LS74"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E20BA</tstamps>
</comp>
<comp ref="U1">
<value>74LS04</value>
<libsource lib="74xx" part="74LS04"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E20A6</tstamps>
</comp>
<comp ref="C1">
<value>CP</value>
<libsource lib="device" part="CP"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E2094</tstamps>
<comp ref="R1">
<value>R</value>
<libsource lib="device" part="R"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E208A</tstamps>
</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>
通用网表文件结构
中间网表由五个部分组成。
-
“标题” 部分。
-
“元件” 部分。
-
“库元件” 部分。
-
“库” 部分。
-
“网络” 部分。
文件内容带有分隔符 <export>
<export version="D">
...
</export>
“标题”部分
标题带有分隔符 <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>
此部分可视为评论。
“元件”部分
元件部分带有分隔符 <components>
<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E2141</tstamps>
</comp>
</components>
本部分包含原理图中的元件列表。 每个元件都是这样描述的:
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamps>4C6E2141</tstamps>
</comp>
元素名称 | 元素描述 |
---|---|
|
找到该元件的库的名称。 |
|
该库中的元件名称。 |
|
层次结构中的图纸路径:用于识别图纸。 |
|
元件的时间戳。 |
关于元件时间戳的注意事项
为了识别网表中的元件以及电路板上的元件,时间戳引用作为每个元件的唯一标识。然而,KiCad 提供了一种辅助的方式来识别一个元件,即电路板上的对应封装。在原理图工程中重新标注元件,不会失去元件和其封装之间的联系。
时间戳是原理图工程中每个元件或图纸的唯一标识符。但是, 在复杂的层次结构中, 同一个图纸会被多次使用, 因此该图纸包含具有相同时间戳的元件。
在一个复杂的层次结构中,一个给定的图纸有一个唯一的标识符:它的图纸路径。一个给定的元件(在一个复杂的层次结构内)有一个唯一的标识符:图纸路径和它的时间戳。
“库文件”部分
库文件部分带有分隔符 <libparts>
该部分的内容在原理图库中定义。
<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>
元素名称 | 元素描述 |
---|---|
|
符号的封装。每个封装都在一个单独的 |
|
符号的字段。每个字段的名称和值都在一个单独的 |
|
符号的引脚。每个引脚都在一个单独的 |
可能的电气引脚类型有:
引脚类型 | 描述 |
---|---|
Input |
通用输入引脚 |
Output |
通用输出引脚 |
Bidirectional |
输入或输出(双向) |
Tri-state |
总线输入/输出(三态) |
Passive |
无源元件的通用端头 |
Unspecified |
未知的电气类型 |
Power input |
元件电源输入引脚 |
Power output |
电源输出,如稳压器输出 |
Open collector |
模拟比较器中常见的集电极开路 |
Open emitter |
有时出现在逻辑器件中的发射极开路 |
Not connected |
必须在原理图中保持未连接状态 |
库部分
库部分带有分隔符 <libraries>
。该部分包含工程中使用的原理图库的列表。
<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>
“网络” 部分
网络部分的分隔符为 <nets>
。这一部分通过列出所有的网络和连接到每个网络的引脚来描述原理图的连接性。
<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>
一个网络可能包含以下内容。
<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>
元素名称 | 元素描述 |
---|---|
|
该网络的内部标识符 |
|
网络的名称 |
|
符号(由 |
网表导出器实例
下面包括一些使用 XSLT 的网表导出器的例子。
XSLT 本身是一种 XML 语言,非常适用于 XML 转换。 xsltproc
程序 可以用来读取中间的 XML 网表输入文件,应用样式表来转换输入,并将结果保存在输出文件中。使用 xsltproc
需要一个使用 XSLT 惯例的样式表文件。整个转换过程由 KiCad 处理,在它被配置为以特定方式运行 xsltproc
之后。
描述 XSL 变换(XSLT)的文件可在此获得: http://www.w3.org/TR/xslt
当编写一个新的网表导出器时,考虑使用 Python 或其他工具而不是 XSLT。 |
使用 XSLT 的 PADS 网表实例
下面的例子显示了如何使用 xlstproc
为 PADS 网表格式创建一个输出器。
PADS 网表格式由两部分组成:
-
封装列表
-
一个网络的列表,以及与每个网络相连的焊盘。
下面是一个 XSL 样式表,将中间网表文件转换为 PADS 网表格式。
<?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>
这是运行 xsltproc
后的 PADS 网表输出文件:
*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*
进行这种转换的命令行是:
kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp
使用 XSLT 的 Cadstar 网表例子
下面的例子显示了如何使用 xlstproc
为 Cadstar 网表格式创建一个输出器。
Cadstar 的格式由两部分组成:
-
封装列表
-
网络列表:按网络对焊盘进行分组
下面是一个 XSL 样式表,将中间网表文件转换为 Cadstar 网表格式。
<?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>
这是 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
使用 XSLT 的 OrcadPCB2 网表示例
这种格式只有一个部分,就是封装列表。每个封装都包括其焊盘的列表,并引用一个网络。
下面是一个 XSL 样式表,将中间网表文件转换为 Orcad 网表格式。
<?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>
这是 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 ) ) ) *
操作参考
以下是 KiCad 原理图编辑器中可用 操作 的列表:您可以为以下命令设置快捷键。
原理图编辑器
以下操作在原理图编辑器中可用。可以在偏好设置的 快捷键 部分中将快捷键分配给这些操作中的任何一个。
操作 | 默认快捷键 | 描述 |
---|---|---|
将元素对齐到网格 |
||
批注原理图… |
填写原理图符号位号 |
|
自动批注 |
切换新元件符号的自动批注 |
|
分配封装… |
运行封装分配工具 |
|
清除网络高亮显示 |
~ |
清除所有的高亮网络 |
导出图纸到剪贴板 |
将当前图纸导出到剪贴板上 |
|
编辑库符号… |
Ctrl+Shift+E |
在符号编辑器中打开库的符号 |
编辑图纸页码… |
编辑当前或选定页面的页码 |
|
编辑符号字段… |
批量编辑原理图中所有符号的字段 |
|
编辑符号库链接… |
编辑原理图和库中符号之间的链接 |
|
用符号编辑器进行编辑 |
Ctrl+E |
在符号编辑器中打开选定的符号 |
导出网表… |
导出包含网表的文件, 格式有多种 |
|
将符号导出到库… |
将原理图中使用的符号添加到已有的符号库 (不删除该库中的其他符号) |
|
将符号导出到新的库… |
使用原理图中使用的符号创建一个新的符号库 (如果库已存在, 将会被覆盖) |
|
生成 BOM… |
为当前的原理图生成一个物料清单 |
|
高亮显示网络 |
` |
高亮显示光标下的网络 |
高亮显示网络 |
高亮显示网络的走线和引脚 |
|
导入封装分配… |
将PCB编辑器创建的 .cmp 文件中导入符号封装分配 |
|
走线和总线的线路模式 |
将绘图和拖动限制在水平、垂直或45度角的动作上 |
|
走线和总线的线路模式 |
以任何角度绘制和拖动 |
|
走线和总线的线路模式 |
Shift+Space |
切换到线路模式 |
走线和总线的线路模式 |
将绘图和拖动限制在水平或垂直运动上 |
|
重新映射旧版本库的符号… |
将旧版本原理图中的库符号引用重新映射到符号库表中 |
|
修复原理图 |
运行各种诊断程序,并尝试修复原理图 |
|
恢复符号… |
查找工程中的旧符号,并重新命名/恢复它们 |
|
仿真… |
在SPICE中仿真电路 |
|
将当前图纸另存为… |
将当前图纸的副本保存到其他位置或名称 |
|
原理图设置… |
编辑原理图设置,包括批注样式和电气规则 |
|
在PCB中选择 |
在PCB编辑器中选择相应的对象 |
|
显示 ERC 错误 |
显示电气规则检查器错误的标记 |
|
显示排除ERC |
显示被排除的违反电气规则检查器的标记 |
|
显示ERC警告 |
显示电气规则检查器警告的标记 |
|
显示隐藏字段 |
切换显示隐藏文本字段 |
|
显示隐藏的引脚 |
切换显示隐藏的引脚 |
|
切换到 PCB 编辑器 |
在电路板编辑器中打开 PCB |
|
脚本控制台 |
显示 Python 脚本控制台 |
|
层次结构导航器 |
Ctrl+H |
显示或隐藏原理图页的层次导航器 |
符号检查器 |
显示符号检查器窗口 |
|
电气规则检查 |
执行电气规则检查 |
|
显示数据手册 |
D |
在浏览器中打开数据手册 |
添加圆弧 |
添加圆弧 |
|
添加圆形 |
添加圆形 |
|
添加矩形 |
添加一个圆形 |
|
添加原理图页 |
S |
添加一个层次化的原理图页 |
添加文本框 |
添加一个文本框 |
|
完成原理图页 |
完成绘制原理图页 |
|
导入页面引脚 |
导入层次化原理图页的引脚 |
|
在总线入口处添加导线 |
Z |
在总线上增加一个导线入口 |
添加网络类标识符 |
添加一个网络类标识符 |
|
添加全局标签 |
Ctrl+L |
添加全局标签 |
添加层次标签 |
H |
添加层次标签 |
添加图片 |
添加位图图片 |
|
添加结点 |
J |
添加结点 |
添加标签 |
L |
添加标签 |
增加一个不连接的标志 |
Q |
增加一个不连接的标志 |
添加电源 |
P |
添加一个电源符号 |
添加文本 |
T |
添加文本 |
添加符号 |
A |
添加符号 |
添加总线 |
B |
添加总线 |
添加线条 |
I |
添加连接的图形线条 |
添加导线 |
W |
添加导线 |
完成导线或总线 |
K |
完成当前线段的绘制 |
完成总线 |
完成当前段的总线 |
|
完成线条 |
完成当前段的线条 |
|
完成导线 |
完成当前段的导线 |
|
切换线段的姿势 |
/ |
切换当前线段的姿势 |
撤销上一个线段 |
Back |
将当前线段往回走一段 |
从总线上断开 |
C |
从总线上断开一条线 |
分配网络类… |
为所选导线的网络分配一个网络类 |
|
自动放置字段 |
O |
在符号或图纸的字段上运行自动放置算法 |
断开 |
分成相连的线段 |
|
更改符号… |
从库中指定一个不同的符号 |
|
变更符号… |
从库中指定不同的符号 |
|
清理图纸引脚 |
删除未引用的图纸引脚 |
|
编辑封装…… |
F |
显示封装字段对话框 |
编辑位号… |
U |
显示位号对话框 |
编辑文本和图形属性… |
编辑整个原理图的文本和图形属性 |
|
编辑值… |
V |
显示值字段对话框 |
水平镜像 |
X |
将所选对象从左向右翻转 |
垂直镜像 |
Y |
将所选项目从上到下翻转 |
引脚表… |
显示引脚表, 用于批量编辑引脚 |
|
属性… |
E |
显示项目属性对话框 |
重复上一个项目 |
Ins |
复制上一个绘制的项目 |
逆时针旋转 |
R |
逆时针旋转所选项目 |
顺时针旋转 |
顺时针旋转所选项目 |
|
德摩根替换 |
切换到备用的德摩根表示法 |
|
德摩根标准 |
切换到标准德摩根表示法 |
|
切割 |
分成不相连的线段 |
|
交换 |
Shift+S |
交换所选对象的位置 |
符号属性… |
显示符号属性对话框 |
|
更改为标识符标签 |
更改现有项目为标识符标签 |
|
更改为全局标签 |
更改现有项目为全局标签 |
|
更改为层次标签 |
更改现有项目为层次标签 |
|
更改为标签 |
更改现有项目为标签 |
|
更改为文本 |
更改现有项目为文本注释 |
|
更改为文本框 |
更改现有项目为文本注释框 |
|
德摩根转换 |
在德摩根表示法之间切换 |
|
更新符号… |
更新符号以包括库中的任何变化 |
|
从库中更新符号… |
更新符号以包括库中的任何变化 |
|
移动激活 |
||
拖动 |
G |
拖动选定的项目(s) |
移动 |
M |
移动所选的项目(s) |
选择连接 |
Alt+4 |
选择一个完整的连接 |
选择节点 |
Alt+3 |
选择光标下的一个连接对象 |
向后导航 |
Alt+Left |
在页面导航历史中向后移动 |
更改原理图页面 |
在原理图编辑器中更改所提供的页面的内容 |
|
进入原理图页 |
在原理图编辑器中显示所选页面的内容 |
|
向前导航 |
Alt+Right |
在原理图页导航历史中向前移动 |
离开原理图页 |
Alt+Back |
在原理图编辑器中显示父原理图页 |
下一个原理图页 |
PgDn |
按编号移至下一原理图页 |
上一个原理图页 |
PgUp |
按编号移至上一原理图页 |
向上导航 |
Alt+Up |
在层次结构中向上浏览一个原理图页 |
复制引脚长度 |
将引脚长度复制到符号中的其他引脚上 |
|
复制引脚名称尺寸 |
将引脚名称尺寸复制到符号中的其他引脚上 |
|
复制引脚编号尺寸 |
将引脚编号的尺寸复制到符号中的其他引脚上 |
|
创建转角 |
创建一个转角 |
|
移除转角 |
移除转角 |
|
添加一个仿真器探针 |
||
选择一个要调整的值 |
||
添加线条 |
添加连接的图形线条 |
|
添加文本框 |
添加一个文本框对象 |
|
完成绘图 |
完成绘制形状 |
|
移动符号锚点 |
为符号锚点指定一个新的位置 |
|
添加引脚 |
P |
添加一个引脚 |
添加文本 |
添加一个文本对象 |
|
添加符号到原理图 |
添加符号到原理图 |
|
复制 |
||
剪切 |
||
删除符号 |
从库中删除所选符号 |
|
复制符号 |
复制所选符号 |
|
编辑符号 |
在编辑器画布上显示选定的符号 |
|
导出… |
将一个符号导出到一个新的库文件 |
|
导出符号为 SVG… |
从当前符号创建 SVG 文件 |
|
将视图导出为 PNG… |
从当前视图中创建 PNG 文件 |
|
隐藏符号树 |
||
导入符号… |
导入一个符号到当前库中 |
|
添加符号… |
N |
创建一个新的符号 |
粘贴符号 |
||
重命名符号… |
重命名所选符号n |
|
将库另存为.. |
Ctrl+Shift+S |
将当前库保存为一个新文件 |
另存为… |
将当前的符号保存到一个不同的库中 |
|
设置单元显示名称… |
为一个单元设置显示名称 |
|
显示引脚电气类型 |
用电气类型来标注引脚 |
|
显示引脚号 |
用引脚号标注引脚 |
|
显示符号树 |
||
同步引脚模式 |
同步引脚模式 启用后会将所有的变化(除了引脚编号)传播到其他单元。 对于具有可互换单元的多单元部件,默认情况下是启用的。 |
|
更新符号字段… |
更新符号以匹配父符号中的变化 |
|
符号移动激活 |
通用
以下操作可在 KiCad 中使用,包括在原理图编辑器中。 可以在偏好设置的 快捷键 页面将快捷键分配给这些操作中的任何一个。
操作 | 默认快捷键 | 描述 |
---|---|---|
排除标记 |
将检查器窗口中的当前违规行为标记为排除项 |
|
下一个标记 |
前往检查器窗口中的下一个标记 |
|
上一个标记 |
前往检查器窗口中的上一个标记 |
|
添加库… |
添加一个现有的库文件夹 |
|
点击 |
Return |
执行鼠标左键点击 |
双击 |
End |
执行鼠标左键双击 |
光标下移 |
Down |
|
光标快速下移 |
Ctrl+Down |
|
光标左移 |
Left |
|
光标快速左移 |
Ctrl+Left |
|
光标右移 |
Right |
|
光标快速右移 |
Ctrl+Right |
|
光标上移 |
Up |
|
光标快速上移 |
Ctrl+Up |
|
切换到快速网格 1 |
Alt+1 |
|
切换到快速网格 2 |
Alt+2 |
|
切换到下一个网格 |
N |
|
切换到上一个网格 |
Shift+N |
|
网格属性… |
设置网格尺寸 |
|
重置网格原点 |
Z |
|
网格原点 |
S |
设置网格原点 |
非活动层查看模式 |
切换非活动图层为正常或暗显 |
|
非活动层查看模式 (3种状态) |
H |
将非活动层在正常、暗显和隐藏之间切换 |
英寸 |
使用英寸 |
|
毫米 |
使用毫米 |
|
Mils |
使用Mils |
|
新建… |
Ctrl+N |
在编辑器中创建一个新的文件 |
新建库… |
创建一个新的库文件夹 |
|
打开… |
Ctrl+O |
打开现有文件 |
页面设置… |
图纸大小和标题块信息的设置 |
|
向下平移(触摸板) |
Shift+Down |
|
向左平移(触摸板) |
Shift+Left |
|
向右平移(触摸板) |
Shift+Right |
|
向上平移(触摸板) |
Shift+Up |
|
引脚库 |
将库保持在列表的顶部 |
|
绘制… |
绘制 |
|
打印… |
Ctrl+P |
打印 |
退出 |
关闭当前编辑器 |
|
重置本地坐标 |
Space |
|
还原 |
放弃修改 |
|
保存 |
Ctrl+S |
保存更改 |
全部保存 |
保存所有更改 |
|
另存为… |
Ctrl+Shift+S |
将当前文件保存到其他位置 |
保存副本为… |
将当前文档的副本保存到另一个位置 |
|
3D 查看器 |
Alt+3 |
显示 3D 查看器窗口 |
显示上下文菜单 |
执行鼠标右键动作 |
|
封装库浏览器 |
浏览封装库 |
|
封装编辑器 |
创建、删除和编辑封装 |
|
符号库浏览器 |
浏览符号库 |
|
符号编辑器 |
创建、删除和编辑符号 |
|
始终显示光标 |
Ctrl+Shift+X |
即使在选择工具中也显示十字准线 |
全窗口十字准线 |
切换全窗口十字准线的显示 |
|
显示网格 |
在编辑窗口中显示网格点或网格线 |
|
极坐标 |
在极坐标系和卡迪尔坐标系之间切换 |
|
切换单位 |
Ctrl+U |
在英制和公制单位之间切换 |
取消固定库位置 |
不再将库保持在列表的顶部 |
|
从原理图更新 PCB… |
F8 |
将原理图的变化更新到 PCB |
从 PCB 更新原理图… |
将 PCB 的变化更新到原理图 |
|
居中 |
F4 |
居中 |
缩放到对象 |
Ctrl+Home |
缩放到对象 |
缩放至适合 |
Home |
缩放至适合 |
放大到适合 |
F1 |
在光标处放大 |
放大 |
放大 |
|
在光标处放大 |
F2 |
在光标处放大 |
缩小 |
缩小 |
|
刷新 |
F5 |
刷新 |
缩放选择 |
Ctrl+F5 |
缩放选择 |
取消 |
取消当前工具 |
|
变更编辑方式 |
Ctrl+Space |
变更编辑方法约束 |
复制 |
Ctrl+C |
将选定的项目复制到剪贴板上 |
剪切 |
Ctrl+X |
将选定的项目剪贴到剪贴板上 |
删除 |
Del |
删除所选项目 |
交互式删除工具 |
删除被点击的项目 |
|
复制 |
Ctrl+D |
复制选定的项目 |
查找 |
Ctrl+F |
查找文本 |
查找和替换 |
Ctrl+Alt+F |
查找并替换文本 |
查找下一个 |
F3 |
查找下一个匹配 |
查找下一个标记 |
Shift+F3 |
|
粘贴 |
Ctrl+V |
从剪贴板上粘贴项目 |
特殊粘贴… |
从剪贴板中粘贴项目(可选项设置) |
|
重做 |
Ctrl+Y |
重做最后的编辑 |
全部替换 |
替换所有匹配的内容 |
|
替换并查找下一个 |
替换当前匹配项并查找下一个 |
|
全选 |
Ctrl+A |
选择屏幕上的所有项目 |
撤消 |
Ctrl+Z |
撤消最后的编辑 |
测量工具 |
Ctrl+Shift+M |
交互式测量点之间的距离 |
选择项目 |
选择项目 |
|
配置路径… |
编辑路径配置环境变量 |
|
捐赠 |
在网页浏览器中打开 “捐赠 KiCad” |
|
参与贡献 |
在网页浏览器中打开 “为 KiCad 做贡献” |
|
开始使用 KiCad |
打开 “KiCad 入门” 的初学者指南 |
|
帮助 |
在网络浏览器中打开产品文档 |
|
列出快捷键… |
Ctrl+F1 |
显示当前的快捷键列表和相应的命令 |
偏好设置… |
Ctrl+, |
显示所有打开的工具的偏好设置 |
报告 Bug |
报告 KiCad 的问题 |
|
管理封装库… |
编辑全局和工程封装库列表 |
|
管理符号库… |
编辑全局和工程的符号库列表 |