封装库管理

重要提示:

本节内容只与 2013 年 12 月之后发行的 KiCad 相关

封装库表

从 2013 年 12 月以后, Pcbnew 和 CvPcb 使用了新的基于 封装库列表 的库管理工具,新的管理工具允许用户通过以下方式 直接使用封装库

  • KiCad 传统封装库文件 (.mod 文件)

  • KiCad 新式 .pretty 封装库(在用户的本地磁盘中, 拥有 .pretty 扩展名并包含了 .kicad_mod 文件的文件夹)

  • KiCad 新式 .pretty 封装库 (托管在官方或第三方维护的 Github 仓库中)

  • GEDA 封装库(包含了 .fp 文件的文件夹)

  • Eagle 封装库

  • 用户仅能改写位于本地磁盘上的 Kicad .pretty 封装库 (以及这些文件夹中包括的 .kicad_mod 文件)。

  • 其余的格式都是只读的。

下面的图片展示了封装库列表编辑对话框, 该对话框可以通过菜单栏中的 “设置” - “封装库” 打开。

封装库列表编辑对话框

封装库列表的作用是为 Kicad 支持的封装库分配一个别名。可利用该别名而不是之前基于封装库 路径查找顺序的方法,进行封装的查找.

这项功能能够使 Cvpcb 控制不同封装库的加载, 从而使得访问那些位于不同封装库但是拥有相同名称的封装可以被正确访问。此外,这项功能还能使 Kicad 访问来自其他 PCB 编辑器,例如 Eagle 和 GEDA 的封装库。

全局封装库列表

全局封装库列表包括了那些在任何项目中都可访问的封装库。该表格的配置存储在用户主目录下的 fp-lib-table 文件中。用户主目录的具体位置由用户使用的操作系统决定。

项目封装库列表

项目封装库列表包括了仅在当前打开项目内能访问的封装库。项目封装库列表仅能在项目的 网络列表文件被加载时才能编辑。如果当前没有打开任何项目,或是在打开的项目目录中没有封装库列表文件,那么系统将创建一个新的可供编辑的表格文件。

初始设置

首次运行 Pcbnew 或 Cvpcb 时, 如果在用户主目录下无法找到全局封装库列表文件 fp-lib-table ,那么 Pcbnew 或 CvPcb 将尝试将存储在 KiCad 模板文件夹中的默认封装库列表文件复制到用户主目录中。

如果默认的 fp-lib-table 文件无法被找到,那么将会在用户主目录下创建一个新的封装库列表文件。这种情况下, 用户可以从别处复制 fp-lib-table 文件,或是手动进行封装库配置。

默认的封装库列表将作为 kicad 的一部分而被安装,其中包括了许多标准的封装。

显然, 用户 首先 需要根据实际需求,修改该列表(添加/移除项目)。

(加载过多的封装库会耗费许多时间)

添加列表项目

如果要使用一个封装库, 它必须先被添加到全局封装库列表或工程封装库列表中。仅当用户当前拥有一个网络列表文件时,工程封装库列表才是可用的。

封装库列表中的项目别名不可重复

“别名” 字段可以由用户自行决定,不必和封装库的路径/封装库文件名等相关。别名中不可以出现冒号 : 。列表中的每一项需要有一个可用的路径。根据封装库类型的不同,路径的具体表现形式可能不同。“路径” 字段中的内容可以是绝对路径,相对路径,或者是环境变量(下文中会进一步讨论)

为了正确读取封装库,列表中每一项的 “插件类型” 字段必须被正确选择。目前 KiCad 支持的类型包括 KiCad legacy, KiCad Pretty, Eagle, 和 GEDA 封装库。

列表中的 “描述” 字段,用于为项添加额外的备注信息。列表中的 “设置” 字段在当前版本尚未使用,修改该字段没有任何效果。

  • 注意,用户无法在同一个封装列表中为两项分配相同的别名。但是可以在全局封装列表和工程封装列表中使用相同的别名。

  • 如果重名发生,工程封装列表中的名称将优先被使用。定义在工程封装列表中的项目,将会被写入当前网络列表所在目录下的 fp-lib-table 文件中。

环境变量替换

环境变量替换是封装库列表的强大功能之一。它将允许用户使用环境变量定义自定义的封装路径。使用环境变量替换, 需要在封装库列表的 “路径” 字段中,遵守以下语法: +${ENV_VAR_NAME}

运行时,KiCad 默认定义 两个环境变量 :

  • KIPRJMOD 环境变量。该变量指向当前项目的目录,不可被改变。

  • KISYSMOD 环境变量。该变量指向默认随 KiCad 安装的默认封装库目录。

用户可以通过在菜单栏中的 “设置” - “配置目录” 中重载 KISYSMOD 的值,因此用户可以使用自定义的封装库替换 Kicad 的默认封装库。

如果当前项目的网络列表文件已被加载, CvPcb 会将 KIPRJMOD 的值设置为 网络列表文件的目录(即项目目录)。

在加载一个电路板文件时,Pcbnew 也会设置该环境变量。

该环境变量允许用户在不知道项目绝对目录的情况下,将封装库存储于项目目录下。

使用 GitHub 插件

GitHub 插件提供了只读访问那些包含 Kicad pretty 封装库文件的 GitHub 仓库的接口。 该插件也提供了 COW(“复制时写入”) 功能。 该功能是可选项,它将允许用户编辑从 GitHub 仓库读取的封装库, 并且将它们保存在本地。因而, “GitHub” 插件用于 只读访问托管于 https://github.com/ 的远程 pretty 封装库 如果要向封装库列表中添加 GitHub 项, 其 “路径” 字段需要被设置为一个合法的 GitHub 地址。

例如:

https://github.com/liftoff-sr/pretty_footprints

https://github.com/KiCad

典型的 GitHub URL 为以下形式:

https://github.com/user_name/repo_name

“插件类型” 字段必须被设置为 “GitHub”。 如果要使用 COW 功能,必须向设置字段内添加 允许写这个目录 的选项.该选项的值用于设置对 GitHub 上封装库的修改副本的存储路径.存储在该目录中的封装将和 GitHub 上的只读部分共同构成封装库.如果没有声明该选项,那么 GitHub 封装库就完全是只读的. 如果声明了该选项, 那么对该 “混合” 封装库的修改,将存储到本地的 .pretty 文件夹中.注意该 “混合” 封装库中位于 GitHub 中的那一部分始终是只读的, 这意味着你无法直接删除或修改特定 GitHub 仓库中的内容. 进一步的讨论认为该混合仓库仍然属于 “GitHub” 类型, 只是它包括了本地的读/写部分及远程的只读部分.

下面的表格展示了没有 允许写这个目录 设置的封装库列表项:

昵称库路径插件类型选项描述。

github

https://github.com/liftoff-sr/pretty_footprints

Github

Liftoff’s GH footprints

下面的表格展示了开启 COW 功能的封装库列表项。注意 环境变量 ${HOME} 仅做举例用。github.pretty 目录应该位于 ${HOME}/pretty/ 。如果用户使用了 允许写这个目录 选项,则应该提前手动创建上述目录并以 .pretty 结尾。

昵称库路径插件类型选项描述。

github

https://github.com/liftoff-sr/pretty_footprints

Github

allow_pretty_writing_to_this_dir= ${HOME}/pretty/github.pretty

Liftoff’s GH footprints

对于设置了 允许写这个目录 的列表项,将首先加载位于本地的封装库。一旦用户使用封装编辑器对封装进行修改并保存在了 COW 本地文件夹中,那么 GitHub 仓库中,和用户修改并保存过的的封装同名的任何封装的更新将不会被看见。

始终应该对每一个 GitHub 封装库使用不同的本地 .pretty 目录。请不要试图通过多次引用同一目录的方式来结合两个不同的 GitHub 封装库。

也不要在不同的封装库列表项中使用相同的 COW (*.pretty) 目录。 这将带来不少问题。

设置字段中,允许写这个目录 的设置值将会通过使用 $\{\} 表示的环境变量来创建路径,就和在库路径字段中使用环境变量一样。

那 COW 的目的究竟是什么? 其实它是为了更好的促进封装库的分享。

如果用户周期性的将通过 COW 修改的 pretty 元件库反馈到 GitHub 仓库的维护者处, 那么用可以帮助更新 GitHub 中的封装库。用户可以仅将 COW 文件夹中的 *.kicad_mod 文件发送给仓库的维护者。当用户得知他们的修改被同步到了 GitHub 仓库时,他们就可以删除本地的 COW 文件,然后 使用 GitHub 插件提供的只读访问功能。用户应尽量向位于 https://github.com 的主仓库多多提交,让自己的 COW 文件尽可能的小。

使用模式

封装库既可以在全局定义,也可以在当前工程的范围内定义。全局定义的封装库将被存储在用户主目录下的 fp-lib-table 文件中,它们将可以在所有的项目中使用。

全局封装库始终可以访问, 即使当前没有加载项目。

工程封装库则仅能在当前打开的网络列表文件中使用。

工程封装库列表存储在项目文件夹内的 fp-lib-table 文件中。你可以自由选择在哪个列表中定义封装库。

两种方法各有优劣。你可以在全局封装库列表中定义所有你可能会用到的封装,这样可以实现随用随取。这样做的缺点是你必须在非常多的封装中寻找你所需要的封装。你也可以根据项目的需求定义你的封装库。

这样做的好处在于你仅需要定义你在某个项目中需要用到的封装,这将大大减小搜索的复杂度。

这样做的缺点是,每新建一个项目,你都得重新手动定义每一个该项目中需要用到的封装。你也可以同时在全局范围和工程范围内定义你的封装库。

一种使用模式是,将所有常用的封装库定义在全局封装库列表中,将一些只在特定项目中使用的封装库定义在工程封装库列表中。总而言之,用户完全可以自主决定封装库的管理方式。

使用封装库列表添加向导

添加向导用于向封装库列表中添加封装库。可以在 封装库列表编辑对话框 中打开添加向导。

待添加的封装库可以是任何 Kicad 支持的类型。

它可以是本地的封装库或是 GitHub 上的封装库。

当库位于 GitHub 仓库中时,它们可以被添加为远程仓库,也可以 将它们下载到本地作为 本地仓库 添加

此处本地封装库默认被选中。

封装库添加向导本地起始页面

此处远程封装库选项被选中。

封装库添加向导 GitHub 起始页面

根据选择的不同,将会显示这些页面中的一个,用于让用户选择要添加的封装库列表:

此处,本地选项被选中.

封装库添加向导本地库选中

此处,远程仓库选项被选中。

封装添加向导 GitHub 选中

当一系列封装库被选中后,下一个页面将验证选择:

封装库添加向导验证

如果一些选中的库不正确(不支持,不是封装库,…​),它们将被标记为 “不可用”。

最后一个页面是选择需要导出的封装库列表:

  • 全局库配置

  • 仅当前工程

封装库添加向导 选择本地文件夹