KiCad 11 新功能速递(五):按属性查找,让 PCB 批量选择像筛数据库一样简单
一次选中所有 GND 过孔、所有 47uF 电容、所有未锁定封装,或者所有位于 F.Cu 的对象,KiCad 11 新增的Find by Properties(按属性查找),正在把过去依赖框选、过滤器甚至脚本的操作,变成可复用的属性查询。

在一块元件密集、布线复杂的 PCB 上,“找到一个对象”通常不难。
真正麻烦的是:找到所有具有相同特征的对象。
批量选中所有 GND 缝合过孔并删除;
找出所有 47uF 电容,统一检查封装或装配属性;
选中某一层上的全部图形或封装;
找到所有未锁定的封装,再统一锁定;
筛出特定孔径的过孔,或特定线宽、特定网络的走线。
过去,选择过滤器只能限制“允许点选哪类对象”,普通查找更偏向位号和文本;面对多个属性组合时,工程师往往仍要手工框选,或者写脚本处理。
KiCad 11 新增的Find by Properties,则把 PCB 对象的属性系统直接变成了一套选择工具。
以一个 47uF 电容为参考,按照 Value 属性查找并选中所有匹配封装。
按属性查找(类似AD的FSO)
功能入口位于 PCB 编辑器:
Edit → Find by Properties…
Find by Properties 位于 PCB 编辑器的 Edit 菜单中。
这项功能本身不会自动修改 PCB。它首先按照属性条件生成一组选择结果;随后,工程师可以继续使用属性管理器、删除、锁定、移动、更换封装等现有工具,对这些对象进行批量处理。
第一种方式:从一个参考对象出发
对大多数工程师来说,From Selection会是最直接的使用方式。
在 PCB 上选中一个或多个参考对象;
打开 Find by Properties;
为需要参与筛选的属性选择匹配方式;
点击Select Matching。
KiCad 会自动读取当前选择的可用属性,并显示 Property、Value 和 Match 三列。
| 模式 | 作用 |
|---|---|
| Ignored | 忽略该属性,不参与筛选。 |
| Matching | 候选对象必须与参考值相同。 |
| Different | 候选对象必须与参考值不同。 |
启用多个属性时,条件会组合使用。比如选择一个封装,同时把Value和Layer设为 Matching,就可以只选择“数值相同且位于同一层”的封装。
实例:选中全部 GND 过孔
先在板上选中一个 GND 过孔,再把它的网络属性设为Matching。由于参考对象是 Via,KiCad 会在同类对象中寻找具有相同网络属性的过孔,而不是把焊盘、走线和铜区也全部混入结果。
这特别适合删除旧的 GND 缝合过孔、统一修改孔径、检查层间连接,或者在移动大批元件前清理过孔阵列。
参考选择决定了搜索对象类型
From Selection 并不是在所有 PCB 对象中毫无限制地搜索。如果参考项是封装,结果默认也是封装;参考项是过孔,结果也是过孔。选择多种对象类型时,界面只展示这些类型共同拥有的可用属性。
这种设计可以减少误选:工程师通常先用“对象类型”确定范围,再用属性缩小结果。
多个参考对象的值不同怎么办?
当同时选择多个对象,而某个属性的值不一致时,KiCad 会把该值显示为<...>。这种混合属性没有唯一参考值,因此不能直接设为 Matching 或 Different。工程师可以改选一个更明确的参考对象,或者切换到 Query 模式。
第二种方式:像写 DRC 条件一样查询 PCB
需要更复杂的组合条件时,可以切换到Query页面。
Query 模式复用了 KiCad 自定义 DRC 规则的表达式引擎。它支持属性自动补全、语法检查和最近使用记录,还可以通过Create from Selection Tab,把前一个页面配置好的条件自动转换成表达式。

使用 A.Value == '47uF' 查询对象。Query 页面提供语法检查、最近查询和选择结果控制。
# 选择全部 GND 过孔A.Type=='Via'&& A.NetName =='GND' # 选择全部数值为 47uF 的封装A.Type=='Footprint'&& A.Value =='47uF' # 选择顶层所有未锁定封装A.Type=='Footprint'&& A.Layer =='F.Cu'&& !A.Locked
这里的A表示当前正在被测试的 PCB 对象。
使用提示:把Type条件写清楚通常更安全。KiCad 的部分属性会由父封装继承给子对象,只写A.Value == '47uF'时,可能同时匹配封装及其焊盘或图形;增加A.Type == 'Footprint',结果会更加可控。
从图形界面自动生成查询
先在 From Selection 页面配置 Matching / Different,再点击Create from Selection Tab,软件会自动生成类似下面的表达式:
A.Value=='47uF'&& A.Layer =='F.Cu'
工程师可以直接执行,也可以在此基础上继续加入网络、类型、锁定状态或其他条件。这让简单筛选保留图形化操作,复杂筛选又拥有表达式的灵活性。
查询结果还能怎样控制?
Deselect non-matching items
启用后,原有选择会被清除,只保留本次匹配结果。关闭后,新匹配对象会加入现有选择,更适合分多次构建一组对象。
Zoom to fit selected items
启用后,KiCad 会自动缩放视图,使全部匹配对象进入可视范围。对于散布在整块 PCB 上的对象,这也能帮助工程师快速判断查询条件是否过宽或过窄。
哪些工作会明显受益?
过孔与走线清理
按网络、类型、孔径、尺寸、线宽或锁定状态批量选择对象,尤其适合大面积 GND 过孔、历史遗留走线和规则变更后的统一整理。
元件布局维护
查找相同 Value、相同库链接、相同层或相同旋转方向的封装,然后统一移动、锁定、翻面或更换封装。
装配与设计变体检查
筛选 DNP、排除 BOM、排除坐标文件等属性,快速核对当前装配方案中哪些器件被包含或排除。
规则审查前的预检查
先用与自定义 DRC 相似的表达式把目标对象选出来并缩放显示,确认条件是否命中了预期对象,再把思路写入正式设计规则。
它与“选择过滤器”有什么不同?
| 工具 | 它回答的问题 |
|---|---|
| Selection Filter | 鼠标现在允许选什么类型的对象? |
| Find by Properties | 整块 PCB 中,哪些对象满足这组属性条件? |
前者主要按对象类别工作;后者可以进一步按照网络、层、数值、锁定状态、几何参数以及其他属性筛选。两者不是替代关系,而是可以组合使用。
当前需要注意的边界
第一,该功能目前面向 PCB 编辑器,原理图编辑器尚不支持。
第二,Query 虽然复用自定义 DRC 规则表达式语法,但目前只支持单一对象。不支持用B.编写需要同时比较两个对象的成对条件。
第三,它生成的是选择结果,并不会自动完成修改。批量删除、调整属性或移动对象仍然是后续独立操作。
第四,KiCad 11 仍处于开发阶段。正式版本发布前,菜单位置、中文翻译、可查询属性和界面细节仍可能继续调整。尝试 nightly 开发版时,建议保留工程备份。
从“属性面板”走向“属性驱动的操作”
Find by Properties 看起来不像 3D 引擎或布线器那样醒目,却是一项非常典型的专业效率功能。过去,PCB 对象的属性更多是“选中之后查看或修改的数据”;现在,这些属性开始反过来驱动选择和操作。
对于经常维护复杂 PCB 的工程师来说,它很可能会成为一个用了就很难回去的功能。
审核编辑 黄宇
