简介:KiCad 是一款开源 PCB 设计工具,这份指南围绕其核心原理图编辑器 Eeschema 展开,适合准备入门或正在使用 KiCad 的硬件工程师、电子爱好者及相关专业学生,用于快速掌握电路原理图与 PCB 设计流程。压缩包内共 1 个 PDF 文件,整体约 1.94MB,文档系统梳理了 Eeschema 的技术概览、基本命令、鼠标操作、热键/快捷键、菜单命令、工具栏、弹出菜单、快速编辑和首选项自定义等核心内容;同时涉及栅格选择、缩放、光标坐标显示、图纸管理及原理图编辑器选项,基本覆盖 Eeschema 的常用操作与界面布局。读者可按目录定位功能说明,边看边练,省去逐个摸索菜单的时间,适合作为 KiCad 日常设计和学习排查时的工具手册。目前已有 442 人浏览学习。
1. Eeschema不只是画原理图:KiCad 2017版本里从建工程到出网表的完整路径
如果你只把 Eeschema 当成一个画原理图的画布,那 KiCad 至少一半的价值就被浪费了。Eeschema 是 KiCad 里负责原理图编辑、元件库管理、电气规则检查(ERC)、以及生成网表的核心模块。2017 年这个时间点的 Eeschema,虽然界面比现在的版本朴素,但它的工作流骨架已经非常完整:从放置元件、绑定封装、检查电气连接,到最后把网表交到 Pcbnew 做布局布线,整条链路是通的。这份指南适合两类人:一类是从 Altium 或立创 EDA 转过来、想搞清 KiCad 工程结构的设计者;另一类是刚开始接触开源 PCB 工具、被菜单和快捷键搞得晕头转向的新手。读完你至少能解决三件事:知道 Eeschema 各按钮和菜单到底在干什么,能画出一张不报错、能转出网表的原理图,以及踩坑时知道往哪个方向排查而不是靠玄学重启。
2. 打开 Eeschema 的第一步:从主窗口到原理图编辑器,界面与配色一次调好
2.1 进入 Eeschema 前的工程目录结构,先用文件清单认清六种文件
KiCad 的工程管理方式和很多商业软件不一样,它不把一个设计塞进单个文件,而是以工程文件夹为单位,里面散落着多个分工明确的后缀文件。在双击进入 Eeschema 之前,我建议先看一眼工程目录,否则后面很容易搞混哪个文件是原理图、哪个是封装库。
一个由 KiCad 自动生成的工程目录,通常会包含以下几种核心文件:
| 文件后缀 | 作用 | 常见误用 |
|---|---|---|
| .pro | 工程文件,记录工程配置 | 误以为是原理图 |
| .sch | 原理图文件,由 Eeschema 读写 | 用文本编辑器打开后会乱码 |
| .lib | 原理图符号库,存放元件图形与引脚定义 | 忘记同步备份 |
| .kicad_pcb | PCB 文件,由 Pcbnew 读写 | 还没建板时不存在 |
| .net | 网表文件,由 Eeschema 生成 | 手动修改后导致元件丢失 |
| .kicad_pcb-bak | PCB 自动备份文件 | 删除后不可恢复 |
很多新手会把 .pro 当成工程入口,在文本编辑器里打开后看到一堆键值对就懵了。其实 .pro 只在 KiCad 主窗口里起作用,Eeschema 关心的是同目录下的 .sch 文件。
进入 Eeschema 的标准路径是:在 KiCad 主窗口里打开工程后,点击顶部工具栏的「原理图编辑器」(通常是一个蓝色方块加线条的图标),或者在系统命令行里用 kicad 打开 .pro 文件后选择 Eeschema。我自己更喜欢直接从文件管理器双击 .sch 文件,这样能跳过主窗口的加载过程,尤其在工程文件很大时明显更快。
2.2 修改默认配色与网格:用配置文件绕过菜单里没有的选项
2017 年的 Eeschema 默认背景是深色还是浅色,取决于具体编译版本,但无论哪种,画原理图半小时后眼睛都会疲劳。更麻烦的是,这个版本的菜单里能调的配色项目很少,默认的网格属性也不能在界面里改。绕行的办法是直接编辑配置文件。
在 Linux 下配置文件的路径是~/.config/kicad/eeschema,Windows 下则在%APPDATA%\kicad\eeschema。先关闭 Eeschema,再用任意文本编辑器打开:
# 备份原始配置,防止改坏后找不到默认值 cp ~/.config/kicad/eeschema ~/.config/kicad/eeschema.bak # 用 sed 直接替换背景色配置块中的 RGB 值 # 这里把背景改成浅灰色,网格改成深灰,对比度适中 sed -i 's/BackgroundColor.*/BackgroundColor = (0.3 0.3 0.3)/' ~/.config/kicad/eeschema sed -i 's/GridColor.*/GridColor = (0.6 0.6 0.6)/' ~/.config/kicad/eeschema逻辑说明:eeschema配置文件本质是一个文本格式的存储文件,里面记录了窗口位置、最近打开文件、配色等设置。用 sed 替换是因为这个文件里的键名相对稳定,而且你不用担心漏掉某些嵌套结构,但注意务必先做备份,改坏了还能用.bak还原。参数说明:BackgroundColor和GridColor后面的三个小数分别是红、绿、蓝通道的浮点值,范围是 0 到 1,不是网页里习惯的 0 到 255,这里是很多人第一次改配置时翻车的地方。
改完后重新打开 Eeschema,颜色才会生效。配置文件里还能调的是光标捕捉格点尺寸,在GridSize这个键下改成0.025表示 25 mil,和很多 PCB 设计规范的做法一致,方便后面画封装时对齐。
3. 画一张能用的原理图:放置元件、网络标签与电源符号的操作顺序
3.1 放置元件的标准流程:先从库过滤器说起
在 Eeschema 里放元件,不是从菜单里找库文件,而是通过「放置元件」对话框。这个对话框上半部分是库选择列表,下半部分是元件筛选预览。一个典型的放置电阻的操作是:按 P 键打开放置元件窗口,在库过滤器里输入R_或直接选Resistor库,预览窗口会列出所有候选符号。
很多第一次用的人会卡在「我以为选了库就自动放上去,结果只放了一个空符号」这一步。实际上,Eeschema 放置元件的完整动作是:在列表里双击目标符号,然后移动鼠标到原理图图纸上,左键点击确认位置,再按 R 键旋转方向或按 X/Y 键镜像,最后按 Esc 退出放置模式。旋转和镜像这一步容易被忽略,导致后面画总线时引脚方向对不上,还得右键一个个改。
我一般会先把整张图的元件全部放完,再统一连线和调整位置,而不是放一个连一个。原因是 Eeschema 的自动标注功能会按放置顺序给元件编号,如果你中途大量删除或移动元件,容易让编号混乱,后面的 BOM 和网表全都跟着乱掉。
放置元件的快捷键值得单独记住:P 放置、R 旋转、X 水平镜像、Y 垂直镜像、Delete 删除。在 2017 版本里这些快捷键是全局默认的,不需要额外配置。
3.2 网络标签与全局网络的正确用法,别拿导线到处飞
新手画原理图最直观的错误,是把所有连接都用导线画出来,跨过半个图纸去连一个远端的引脚。这样画出来的图自己看还行,网表也能生成,但图纸可读性极差,后续修改一个连接时牵一发动全身。Eeschema 提供的正式做法是「网络标签」(Net Label)。
网络标签的规则很简单:两张原理图图纸上、或者同一张图纸不同位置上,两个名字完全相同的网络标签,就表示它们在电气上是相连的。放置网络标签的快捷键是 L,放置后双击可以改名字,或者按 E 编辑属性。常见习惯是给电源网络加+3V3、+5V这类明确的名字,给信号网络加UART_TX、I2C_SDA这类功能名。
这里有三个容易踩的边界情况。第一,网络名区分大小写,uart_tx和UART_TX会被当成两个不同的网络。第二,网络标签一定要放在引脚端点或导线的端点处,如果放在导线中间,Eeschema 会提示节点无效。第三,如果两个标签名字一样但所在的图纸页间距太远,ERC 检查也可能会因为图纸层次问题报 no connect,这个问题放到第 5 章排查。
3.3 ERC 检查的打开方式:把电气规则检查当提交前的编译
写完原理图后,Eeschema 最像编译器的功能就是 ERC,也就是电气规则检查。点击菜单「检查」下的「电气规则检查」,或者按键盘快捷键(不同版本略有差异,一般能在菜单里看到),会弹出规则报告窗口。
ERC 会逐条检查引脚类型匹配、电源引脚连接、未连接引脚、重复网络名等问题。检查结果分错误和警告两级。错误用红色标记,阻断网表生成,警告用黄色标记,不阻断但建议处理。一个常见做法是先把默认规则跑一遍,再针对报错逐条双击定位到具体位置。
在 2017 版本里 ERC 报告对新手不太友好,因为它默认不显示中文描述,一堆ErrType(3): Pin connected to other pins at ...这种句式看着头疼。解决办法是不要硬看英文描述,直接看报错坐标和引脚编号,用 Eeschema 的跳转定位功能过去看现场,比读文字高效得多。我一般会先修电源相关的 ERC 报错,因为它们往往会导致整板的电源网络被错误地合并或悬空。
4. 让每个元件都有脚印:封装绑定、元件属性表与库路径的三件套排查
4.1 元件属性表里原来藏着四类关键字段
原理图里的元件符号只是逻辑符号,它本身并不包含 PCB 上用什么形状的铜箔。把符号映射到实际封装,靠的是元件属性表里的「封装」(Footprint)字段。双击原理图里的任何一个元件符号,弹出的属性对话框中,除了位置和方向,最关键的四个字段分别是:元件符号名、封装名、原理图参考编号和附加字段里的值。
封装字段里填写的名字必须和封装库中的条目精确匹配。比如一个 0603 贴片电阻,常见的封装名写法是Resistor_SMD:R_0603或Resistor_SMD:R_0603_1608Metric,多一个字号、少一个下划线都会导致绑定失败。Eeschema 在放置元件时不会主动告诉你封装是否存在,只有到最后生成网表、导入 Pcbnew 时才报错。
我检查元件属性时有一个固定顺序:先看参考编号(Reference)是否按 R1、R2、C1 正常排序,再看封装是否为空。参考编号重号在 ERC 里一般能查出来,封装为空却是 ERC 不报的,但一到 PCB 环节就翻车。所以画完图图后专门花几分钟抽查几个关键元件(电源芯片、连接器、电解电容)的封装字段是必要的。
4.2 封装未绑定时的快速筛查与批量修改
如果一个工程有几十个元件没有绑定封装,挨个双击属性框去填显然是血泪效率。Eeschema 提供了一个批处理入口:在原理图编辑器中点击「工具」菜单里的「编辑元件属性」(不同版本位置略有差异)。这个表格视图能列出当前原理图中所有元件的符号名、参考编号、封装名和值,直接在表格里批量修改封装字段。
操作步骤是:打开元件属性编辑器 → 点列表头按「封装」列排序 → 把空的封装字段按器件类型填入对应的封装名 → 关闭表格时点保存。这里有个容易误操作的地方:表格里改的是整个原理图里的元件属性,不是单个元件。如果只想改某个元件,直接在原理图双击该元件单独改。
批量排查还有一条命令行视角的路径:用 KiCad 的 Python 脚本接口(2017 版内置的 Python 版本较旧,部分新 API 不可用)读取网表文件,筛选出封装为空的元件。常见做法是先让 Eeschema 导出网表,再用一个简单脚本检查:
# 读取 KiCad 生成的网表文件,找出封装字段为空的元件 import re netlist_file = "project.net" pattern = re.compile(r'\$comp.*?\$endcomp', re.S) with open(netlist_file, encoding="utf-8", errors="ignore") as f: content = f.read() for comp_block in pattern.findall(content): ref_match = re.search(r'\(ref\s+"([^"]+)"\)', comp_block) fp_match = re.search(r'\(footprint\s+"([^"]+)"\)', comp_block) ref = ref_match.group(1) if ref_match else "unknown" fp = fp_match.group(1) if fp_match else "" if fp == "": print(f"未绑定封装: {ref}")逻辑说明:KiCad 的网表文件是明文文本,每个元件以$comp开头到$endcomp结束,里面包含参考编号、封装、值等字段。这个脚本的正则负责切分出每个元件块,再单独抓取 ref 和 footprint 字段判断。参数说明:re.S是为了让点号匹配换行符,否则多行文本的正则匹配会失败;errors="ignore"是为了避免网表里偶尔出现的非 UTF-8 编码字符导致程序中断。
4.3 自定义封装库的路径配置:两个配置文件各管一段
2017 年那个阶段的 KiCad 库管理,比现在的新版本要粗放得多。它靠两个配置文件来指定库搜索路径:一个是主配置文件里的LibDir参数,负责告诉程序去哪里找.pretty封装库文件夹;另一个是工程内的库列表文件,负责加载具体的符号库和封装库名称。
如果你有一个自己画的封装库,放在工程目录外的某个共用文件夹里,让多个工程都能用,常见做法是在主配置文件里追加路径搜索项:
# 追加自定义封装库路径到 KiCad 主配置 echo "LibDir = /home/yourname/kicad-lib:/home/yourname/project-lib" >> ~/.config/kicad/kicad.conf逻辑说明:LibDir支持用冒号分隔多个路径,程序会按顺序逐个搜索。追加到配置文件末尾即可,不需要手动格式化。参数说明:路径要用绝对路径,不能用~,因为 KiCad 的配置解析器不一定做波浪号展开。Windows 下路径分隔符依旧是分号,写反了会直接导致库加载失败。
这个环节最常见的翻车点是把.kicad_pcb文件放进LibDir指定的目录里,误以为这样就算「安装了封装库」。实际上.pretty目录里的.kicad_pcb才是封装库文件,普通 PCB 文件放进去虽然也能被库管理器尝试读取,但极容易造成冲突。
5. Eeschema 使用避坑:2017 版本最典型的五个翻车现场
5.1 现象一:改了原理图,PCB 上元件纹丝不动
在 Eeschema 里把 R1 的阻值从 10k 改成 4.7k,保存后打开 Pcbnew,板子上的 R1 还是 10k。原因:KiCad 的原理图和 PCB 之间没有实时同步机制,PCB 文件里保留的是上一次导入网表时的元件信息。你没有重新生成网表并重新导入。解决:在 Eeschema 里重新生成网表文件,再到 Pcbnew 里执行导入网表,并在弹出的对话框里勾选「更新所有元件」。不要在 PCB 端直接改阻值,那样改的只是 V 割线上印的字,原理图一重新导入又会被覆盖。
5.2 现象二:ERC 报错找不到原因,按 F5 刷新后消失
跑 ERC 时报了错误,但双击定位到的位置看起来没有任何问题,导线也连着,引脚也接着,关闭重开 ERC 报告之后报错又不见了。原因:Eeschema 的 ERC 是基于缓存模型的,当你移动过元件或导线后,没有执行重新连线,缓存里仍然保留着旧的连接关系。解决:在跑 ERC 之前先按 F5 刷新视图,或者在菜单里执行「重新构建连接」,等左下角状态栏提示完成后再跑 ERC。这不是软件抽风,是这个版本的缓存机制决定的,先刷新再检查是标准流程。
5.3 现象三:电源引脚悬空,ERC 居然没报
一个芯片的 VCC 引脚没接任何网络,ERC 报告里只字未提。正常逻辑里悬空电源引脚应该是严重错误才对。原因:这是引脚类型(Pin Type)的设置问题。Eeschema 的库引脚分 Power In、Passive 等类型,Power In 类型的引脚悬空会报错,但如果你的芯片符号是从某个旧库加载的,引脚类型被标成了 Passive,ERC 就会认为悬空是允许的。解决:打开库编辑器,检查该元件电源引脚的电气类型,改成 Power In 后重新加载符号,再跑 ERC。顺带注意,自己画符号时也按这个标准建,别图省事全部设成 Passive。
5.4 现象四:原理图库改了封装,板子上的元件却不变
在库编辑器里把某连接器的封装从直插改成贴片,回到 Eeschema 里发现原理图元件没变化,导到 PCB 也没变化。原因:原理图里已经放置的元件是库符号的实例,它把封装信息快照在自己的属性里。库文件更新不会反向通知已经放置的实例。解决:右键原理图中的该元件,选择「更新符号」(或 Rebuild),让它重新从库里加载属性。如果更新后位置乱掉,先记录坐标再更新,再手动移回去。这个操作没法撤销,建议更新前保存文件。
5.5 现象五:中英文菜单切换后,快捷操作全失灵
为了看中文菜单,把系统语言设置改成了中文,重开 Eeschema 后发现按快捷键没反应,菜单能点但键盘操作全部失效。原因:这个版本的 Eeschema 热键绑定是跟着菜单文本走的,语言切换后热键配置的映射表没有同步更新,导致按键事件没有被正确路由到对应命令。解决:回到系统设置里把语言改回英文,删除~/.config/kicad/eeschema里的热键缓存段,重新打开后恢复默认。如果一定要用中文,就放弃快捷键,全程鼠标操作,这不是开玩笑,2017 版本对中文环境的适配确实不够好。
6. 把网表交到 Pcbnew 之前:生成网表、检查缺失连接与板级对比
6.1 自定义网表文件名与输出路径,别让文件覆盖成习惯
在 Eeschema 里点击「生成网表」按钮,默认会生成和工程同名的.net文件覆盖到工程目录下。这个小习惯有个隐患:如果你同时维护原理图的两个版本(比如一个做调试、一个做量产),网表文件会被反复覆盖,旧版本无据可查。
更稳妥的做法是每次生成网表时手动改一下文件名,例如加日期后缀或版本号。操作路径是:点击「生成网表」菜单 → 在弹出的对话框里选择输出目录 → 在文件名字段填入project_v2.net→ 确认生成。虽然 Eeschema 不会阻止你写同名文件,但养成每次保存不同名的习惯,后续回溯时能省掉很多时间。
6.2 在 Pcbnew 里打开网表后,用 DRC 快速验证对应关系
把.net文件导入 Pcbnew 后,很多设计者直接开始拖元件布线,忽略了板级验证。这里的验证指的是用 DRC 来检查封装焊盘与网表网络的对应关系。在 Pcbnew 中执行「设计规则检查」,重点看「未连接的焊盘(Unconnected pads)」项目。
如果 DRC 报出大量未连接焊盘,而你在 Eeschema 里明明用网络标签连好了导线,问题大概率出在网表生成时的连接遗漏。这时可以检查:原理图里是否存在网络标签和引脚之间有多余的空隙;是否用了「总线」而不是「网络标签」连接多根信号线;是否有跨图纸页的标签因为图纸层次问题没能被正确归入同一网络。
最后一招是板级对比:把导入 PCB 后的元件网络表导出一份,再和 Eeschema 生成的网表做逐行对比。实际经验是,用文本比对工具打开两份文件,凡是原理图有、PCB 没有的元件,就是导入时被跳过或绑定失败的对象。手动修正后重新导入,DRC 的未连接焊盘数量会骤降。
我自己的使用习惯是:每次在 Eeschema 里改完一处连接,就重新生成网表并重新导入 Pcbnew 一次,不让修改在两端越积越多。这样如果过了两天回头查问题,最多只回溯最后一次改动,而不是面对一张改了十几个地方、说不清哪处没同步的图纸。这个习惯也建议你培养,希望帮到你。
本文还有配套的精品资源,点击获取