Altium Designer高效选中对象:Filter过滤器实战指南
2026/9/18 17:34:59 网站建设 项目流程

用Altium Designer画板子,最花时间的事情往往不是布局和布线,而是“选中目标”。举个例子:板子上有几百个GND过孔,客户要求统一改成树脂塞孔,你怎么办?如果一个个按住Shift点选,半小时就耗在鼠标上了。我刚工作那会儿就这么干过,直到被老工程师问了一句“你怎么不用Filter”,才意识到这个功能有多能打。

Filter,中文叫过滤器,是AD里专门用来按条件筛选PCB对象的面板,快捷键是Y。它能根据对象类型、网络、层、封装、线宽、孔径这些属性,几秒钟把你要的目标全部挑出来,并且配合Mask、隐藏、选择锁等功能,让你在复杂的板面上只跟目标对象打交道。这篇文章就把我在实际项目中高频使用的Filter玩法整理出来,从面板认识、原理拆解到完整实操案例,适合正在用AD画板、尤其是画过几块板但还没系统研究过过滤器的工程师参考。

1. Filter到底在解决什么问题,面板长什么样

1.1 Filter不是查找替换,而是一个“对象筛选器”

不少人第一次接触Filter,会把它和Ctrl+F查找功能混淆。查找是在当前文档里检索文字或对象,找到后可跳转;Filter的作用比这个“重”得多,它会在整个PCB文档里跑一遍所有对象,按你给定的条件生成一个“过滤结果集”。这个结果集生成之后,你可以对它继续做缩放定位、属性修改、复制移动、规则检查,甚至配合快捷键批量删除。

我觉得理解Filter最好的方式是把它想象成一个“对象透视镜”:复杂的板子上有走线、过孔、焊盘、铜皮、丝印、标注、器件位号,密密麻麻叠在一起。你戴上一副只让你看到GND过孔的眼镜,其他东西虽然还在,但被自动忽略了,那么接下来的操作自然就聚焦了。

1.2 打开Filter面板的几种方式

第一条,也是最常用的方式,是在PCB编辑界面直接按键盘上的Y键,Filter面板立刻弹出来。这个快捷键我用得比Ctrl+S还勤快。

第二条,在右下角的Panels面板区域点一下,会列出一堆面板名称,从里面选Filter。这种方式适合鼠标流用户,尤其适合那些右下角面板已经被拖乱了、快捷键记不住的新手。

第三条,在PCB空白处点右键,菜单中也能看到Filter相关入口。不同版本的AD菜单命名略有差异,有的直接叫Filters,有的叫PCB Filter,但指向的是同一个面板。

需要多说一句:Filter面板在原理图编辑界面和PCB封装编辑器里也存在,但对象类型不同。比如原理图里过滤的是引脚、网络标号、端口、图纸符号;封装编辑器里过滤的是焊盘、丝印、器件本体。本文主要讲PCB编辑环境下的用法,原理是相通的。

1.3 Filter面板界面:三个下拉框加一个表达式输入框

AD版本更新很快,面板细节在不同版本里会有区别,但核心结构这么多年没怎么变。面板上半部分是三个下拉框,第一个选择过滤类别,第二个选择具体对象类型或属性,第三个输入匹配值。面板中间还有一个可以手动输入查询表达式的输入框,这是真正拉开效率差距的地方。

面板下方通常还有一排功能按钮,对应的是缩放结果、屏蔽非过滤对象、隐藏非过滤对象、清除过滤等操作。有的版本里这些按钮在面板顶部,有的版本里需要应用到过滤条件后才全部点亮。新版本里还能看到“收藏”图标,可以把常用的过滤表达式存下来。如果你用的是比较新的AD版本,务必用一下,谁用谁知道。

我记得第一次用Filter时,我以为三个下拉框就是全部功能了,手动输表达式这个区域被完全忽略。后来在一次改板任务里需要筛选“所有网络名以_A结尾的走线”,下拉框根本做不到,才意识到上面那个输入框才是Filter的完全体。

2. Filter的三个核心要素,搞懂它你就能举一反三

2.1 第一个下拉框:过滤类别,决定“我在看哪一类东西”

Filter面板里的Category(类别)下拉框,一般会列出Objects、Nets、From-To、Whole Board等几个大类。Objects代表按对象类型过滤,下面可以继续选是走线、过孔、焊盘、铜皮、文字、尺寸标注等;Nets代表按网络过滤,选中后第二个框会变成网络列表,直接挑网络名;From-To则是按两个焊盘之间的连接关系来过滤,适合查特定网络中的某一段飞线或走线。

我自己的经验是:如果你对当前要过滤的网络名很熟,直接选Nets类别非常省事;如果我是想按“对象属性”来筛,比如所有顶层宽度0.25mm的走线,那就选Objects,然后进第二层具体选Track,再配合第三个框写宽度条件。Category的意义是缩小范围,减少后面的条件组合难度。

2.2 第二个下拉框和第三个输入框:属性条件与匹配值

第二个下拉框的内容会随第一个框的选择动态变化。选Objects时,第二个框可以选All、Via、Track、Pad、Arc、Text、Fill、Polygon、Dimension等具体对象;选Nets时,第二个框列出的是当前PCB文档里存在的所有网络名。

第三个框通常用来填匹配值,比如网络名文本、线宽数值、孔径大小。有些版本把第二个和第三个做成“属性-取值”的联动关系,比如第二个框选Net,第三个框输入GND;第二个框选Width,第三个框输入0.5mm。这里的单位和AD默认单位保持一致,如果工程是公制,直接写0.5mm;如果是英制,写20mil。这个细节容易踩坑,单位写错了过滤结果就是空集。

有一点要注意:下拉框方式本质上是帮你把“查询表达式”拼出来,三个框选完,中间的表达式输入框会自动生成一段类似IsVia And Net = 'GND'的语句。所以真正的高手不会局限于点选,而是直接手动改这段表达式,能实现下拉框做不到的复杂逻辑。

2.3 手动表达式才是Filter的精髓

表达式区域支持AD的查询语法,可以自由组合。常用查询关键字包括:

  • 对象判断:IsVia、IsTrack、IsPad、IsArc、IsText、IsFill、IsPoly、IsComponent、IsBoard、IsNet
  • 属性比较:Net = 'GND'、Layer = 'Top Layer'、Width >= 0.5mm、HoleSize > 0.6mm
  • 逻辑连接:And、Or、Not,可以加括号改变优先级
  • 模糊匹配:Footprint Like '0402'、Net Like '_A',通配符用星号

举个例子,我想过滤出“顶层所有宽度大于等于0.4mm的走线”,表达式可以写:

IsTrack And Layer = 'Top Layer' And Width >= 0.4mm

这段表达式的含义是:先限定对象必须是走线,再限定层,再限定线宽。由于AD的表达式解析是从右往左结合,我习惯上把对象判断放在最前面,这样后续属性判断都基于正确的对象类型,不会出现访问不到属性导致的结果异常。

表达式里的字符串值需要用单引号括起来,数值后面带单位。还有一个细节是属性名不区分大小写,写NET='gnd'也能识别,但为了可读性我通常保持首字母大写。

2.4 过滤结果的三种视觉模式:Mask、Dim、Hide

过滤条件应用之后,AD默认会使用Mask模式,也就是把非目标对象整体变暗,目标对象保持高亮。这个模式下你仍然能看清整板布局,只是视觉重心完全落在目标上。

Dim模式和Mask类似,但变暗程度比Mask轻一些,适合板子本来就干净、只想轻微弱化其他对象的情况。

Hide模式则直接把非目标对象隐藏,画面上只剩过滤出的对象。这个模式最干净,但也最危险:如果过滤对象很少,板子看起来就像空了。我用Hide模式时一定会再开一个层显示,免得心里没底。清除过滤后对象会重新显示出来,不需要担心对象被删掉。

3. 高频实操案例:从最简单到进阶表达式

3.1 案例一:一键选中整板所有GND过孔

说一个最常见的场景:改板时客户要求所有GND过孔盖油。板子上过孔少说有几百个,手动选肯定不现实,用Filter就是几秒钟的事情。

首先按Y打开Filter面板,在表达式输入框里写入:

IsVia And Net = 'GND'

点击Apply或者直接按回车,此时画面里所有非GND过孔的对象迅速变暗,所有GND过孔保持高亮,同时状态栏会显示当前被过滤出来的对象数量。

如果你需要对这批过孔做属性修改,可以直接双击其中一个高亮过孔,AD会弹出Properties面板,面板标题上通常会带“(n.Items)”这样的信息,n就是过滤出来的数量。把“Solder Mask Expansion”改成需要的值,回车,所有GND过孔同步更新。这一步省去几百次重复点击,是我在项目里用得最多的操作。

完成属性调整后,按Shift+C清除过滤,板子恢复正常显示。这里注意Shift+C是清除过滤的通用快捷键,如果你在操作过程中发现板子一直处于高亮状态,先按Shift+C准没错。

3.2 案例二:按封装和位号过滤元件

Filter不仅针对走线和过孔,对元件也一样有效。比如你想把板上所有0603封装的电阻一次性找出来,在表达式框里写:

IsComponent And Footprint Like '*0603*'

这里用了Like运算符和通配符星号,原因是很多电容电阻的封装名可能叫R0603、C0603、0603SMD等,完全匹配容易漏掉。使用Like后只要封装名里包含0603就会被捕获,覆盖更全面。

如果想过滤某个具体器件,比如U1和U2,表达式可以写:

IsComponent And (Designator = 'U1' Or Designator = 'U2')

这种方法适合做器件分组检查。我曾经在改版时把几个关键电源芯片挪到另一层,就是用这条表达式选中它们,然后统一检查丝印位置和位号方向。比在板面上一个个找不知道快了多少倍。

3.3 案例三:过滤某一层的大电流走线

在大功率板子里,电源走线往往需要加宽,但有时候因为空间不足,一部分走线会窄一截。这种隐患肉眼很难扫出来,用Filter可以精准定位。

比如我想检查Top Layer上所有宽度在0.5mm以下的走线,表达式写:

IsTrack And Layer = 'Top Layer' And Width < 0.5mm

应用过滤后,窄走线会全部高亮,宽走线和其它对象全部变暗。你可以直接看到哪些地方的电源线被“卡脖子”了。我一般会在这一步顺手打开Properties面板,把所有不符合要求的窄走线统一改成0.5mm,但如果走线长度和位置差异大,还是建议先评估再批量改,避免出现阻抗不连续问题。

有时候我还用宽度区间来检查差分对内等长状态,表达式可以写成这样:

IsTrack And Net Like '*DP*' And Width Between 0.1mm And 0.2mm

AD的查询语法里能用Between...And...表示区间范围,实际用于筛选特定线宽范围内的对象非常方便。不过要注意Between是闭区间,边界值是包含在内的。

3.4 案例四:过滤后批量修改属性,避免手工逐个点

过滤的真正威力在于“筛选+批量编辑”的组合。我列一个完整的操作链路,照着做就能掌握。

假定你需要在PCB中把所有网络名为VCC且孔尺寸为0.45mm的过孔全部改成盲孔。步骤是:

先按Y打开Filter面板,输入:

IsVia And Net = 'VCC'

看到VCC过孔全部高亮后,再补充孔径条件。这里有两种方式:一种是在表达式里继续加And HoleSize = 0.45mm,另一种是先Look一下高亮对象,如果VCC过孔里恰好都是0.45mm孔径,就不用再加。

我习惯直接用完整表达式一步到位:

IsVia And Net = 'VCC' And HoleSize = 0.45mm

应用过滤后,双击任一高亮过孔,在Properties面板里改孔类型,AD会提示修改应用到所有过滤出来的对象,确认即可。

这个流程比“先全选->再筛选->再修改”要顺畅得多,因为Filter从第一步就帮你把范围锁定了,后续操作几乎不可能带偏。

4. Filter的进阶玩法:收藏、交叉选择、与层过滤区分

4.1 把常用过滤条件存成收藏

如果你的AD版本比较新,在Filter面板的表达式输入框上方或旁边能看到一个星标收藏按钮。把当前输入进去的表达式存下来之后,下次点击星标区域的下拉箭头,可以看到自己存过的所有过滤条件,点一下就能直接应用。

我在项目里固定的收藏大概有这几条:

IsVia And Net = 'GND' IsComponent And Footprint Like '*0603*' IsTrack And Layer = 'Internal Plane 1' IsText

把这些常用的存下来之后,每个项目打开先按Y,点星标选条件,几秒钟完成筛选。对于经常处理不同项目的工程师来说,这个习惯能省下大量重复录入时间。

有些老版本可能没有收藏按钮,那就把常用表达式统一存在一个文本文件里或者记在笔记本上,需要时复制粘贴。我自己早期是存在个人模板工程的一个注释层里,后来版本支持收藏了才离开“土办法”。

4.2 Filter和DRC检查配合:先筛后查

有人觉得DRC检查是全自动的,不需要Filter参与。但某些场景下,Filter能让DRC检查更有针对性。

比如你想知道某个网络上有没有设计违规,可以先在Filter中过滤出这个网络上的所有走线、过孔、焊盘,然后用Tools里的Design Rule Check,选择“Current Design”或者“Selected Objects”。配合Filter把检查范围缩小到当前过滤结果,检查效率比整板跑DRC快很多,结果也更聚焦。

我有一次在排查电源纹波问题时,就是先用Filter选中了12V干线上的所有对象,再针对“Minimum Solder Mask Sliver”规则做了局部检查,很快就定位到一对间隙过窄的焊盘。如果整板跑,这个问题大概率被埋在上百条违规信息里,反而看不到。

4.3 Filter与Cross Select联动:PCB筛选结果反向回看原理图

AD支持PCB和原理图之间的交叉选择。先在PCB里通过Filter选中目标集合,然后切换到原理图,使用Tools -> Cross Select Mode,对应网络或器件会在原理图中同步选中。

这个功能在回顾设计、评审走线时特别好用。比如你在PCB里过滤出了一路电源所涉及的所有器件,交叉选择后在原理图里能一眼看到这路电源的完整拓扑,比两边分开看清晰很多。

不过要注意,交叉选择依赖工程里原理图和PCB的“同步网络和器件关系”,如果工程没编译过或者网表对应关系错乱,交叉选择会失效。遇到这种情况,先编译工程再试。

4.4 分清Filter、层过滤和对象隐藏

很多新手会把Filter和层过滤搞混。Layers面板中每个层的眼睛图标控制的是层的可见性,层被关掉之后,那一层上的所有对象都不再显示,也无法被选中。Filter则是在所有可见对象里按属性筛选,即使某层对象符合条件,只要层不可见,同样选不到。

我踩过的坑是:在Layers面板里不小心把Top Layer关掉了,然后Filter里写IsTrack And Layer='Top Layer',结果怎么过滤都是空的,第一反应以为是Filter表达式错了。排查了半天才发现只是层被隐藏了。后来我养成一个习惯:过滤结果为空时,先检查面板里的层显示状态和层的颜色,再回头怀疑表达式。

对象隐藏与Filter的Hide模式也有区别。Hide模式是Filter特有的视觉弱化方式,清除过滤即恢复;而手工的隐藏对象操作需要手动取消隐藏才能恢复显示。所以日常临时弱化建议优先使用Filter的Mask或Hide,而不是手动隐藏。

5. 常见问题与排查实录

5.1 过滤后板子全暗,看不清了怎么办

这是Filter最容易吓到新人的现象。应用过滤条件后,如果所有对象都变暗或者画面几乎全黑,大概率是三个原因:过滤结果只有极少数对象,其余对象被Mask变暗导致视觉上像“全暗”;或者是因为层可见性设置,过滤对象恰好分布在不可见层;再或者你误用了Hide模式,把非过滤对象全藏了。

处理方式很直接:先按Shift+C清除过滤,画面恢复常态。如果想保留过滤但看得更清楚,在Filter面板里把显示模式从Hide或者Dim切成Mask。另外可以在过滤结果应用后点面板上的放大镜/缩放按钮,AD会自动缩放视野到过滤出的对象上,避免你在暗掉的板子里大海捞针。

5.2 过滤之后只能选中目标对象,其他对象点不到

这其实是Filter的默认行为,说明“选择锁定”是开启状态。它的设计意图是防止你在过滤状态下误操作其他对象,但在不熟悉时很容易让新人觉得“板子卡死了”。

如果只是临时想点一下过滤集合外的对象,最简单的方法还是Shift+C把过滤清除。如果希望过滤的高亮效果保留、但选择不限制,需要在Filter面板里找到类似“选择锁定”或“Enable/Disable filtering”的开关,把它关掉。不同版本开关位置不一样,新版本里一般在面板上方,图标常是一个小锁或者箭头。

我在日常操作中通常会保持选择锁定开启,因为过滤状态下我就是要集中精力处理目标对象,万一选到别的东西反而容易出事故。

5.3 Filter没反应,过滤结果还是整板对象

先检查是不是在正确的编辑器里打开了Filter面板。PCB Filter面板在原理图编辑器里使用时,对象类型完全不同,输入IsVia这样的PCB对象查询会直接无效。同理,如果你在PCB封装编辑器里,想要过滤器件位号,要选的对象类型也不一样。

再一个常见原因是表达式语法有误。AD的查询语法对引号和单位很敏感,Net='GND'漏了单引号,或者Width > 0.5mm写成Width > 0.5,都可能让解析器出错或匹配不到。遇到过滤结果异常的时候,把你的表达式截下来贴到Expression编辑器里,AD会提示语法错误的位置,比自己在面板里盲猜效率高。

另外提醒一句:查询表达式里的字符串值是大小写不敏感的,但网络名在PCB里大小写最好和原理图一致,特别是在用Like模糊匹配时,不一致可能导致漏筛。

5.4 过滤结果对象数量对不上,感觉少选了

这种情况多半和层可见性有关。Filter只能处理当前可见的对象,如果某一层的对象被Layers面板的层显示关闭了,它们就不会出现在过滤结果里。比如你想过滤所有Top Layer的走线,但Top Layer在Layers面板里没显示,过滤时自然看不到它们。

检查办法很简单:先确认所有相关层都已开启,再重新应用过滤条件。还有一种情况是对象被放在了机械层或者隐藏元件层,这些层默认可能不显示,需要在Layers面板里勾选相应层。

还有一个小细节:AD里有些对象类型叫Dimension,和Text是分开的。如果你过滤IsText,可能漏掉尺寸标注;过滤IsDimension,又可能漏掉普通文字。需要根据需求写Or组合,不要想当然地把它们当成同一类。

5.5 过滤后误删了对象,能撤销吗

Filter本身不删除任何对象,它只是把非目标对象藏起来或者变暗。如果你在过滤状态下做了删除操作,删除的是当前选中的目标。这时可以用Ctrl+Z撤销删除,AD的撤销栈在过滤状态下依然有效,所以不用慌。

但要注意,如果删完后又做了一大堆其他操作,再去撤销可能回退过多。我的建议是:大范围批量删除前,先备份工程文件,或者在过滤状态下先检查过滤结果对象数量,确认无误再动手。删除后如果发现问题,立刻Ctrl+Z,别犹豫。

6. 我个人在项目中的几个使用习惯

做复杂板子这几年,Filter已经成了我离不开的工具。我自己的习惯是:打开PCB的第一件事,先按Y把Filter面板调出来放在右下角,不挡画布。画图过程中只要涉及“找一类对象”,第一反应就是Filter,而不是去慢慢点选。

我还会把常用表达式存到收藏里,尤其是GND过孔、特定网络走线、0603元件这些反复出现的过滤条件。新项目导入后,点几下就能复用,不需要重新记网络名。

最想提醒大家的一点是:善用Mask而不是Hide。Hide虽然干净,但对象藏的太彻底容易让新手误以为板子上东西消失了。Mask既有视觉焦点,又保留了板子的全局信息,是大多数情况的最佳选择。如果需要真的隐藏部分对象,等确认过滤结果正确后再切换成Hide也不迟。

Filter看起来是一个很小的面板,但它在复杂PCB设计里的提效作用是实打实的。掌握了它,你就能从“大海捞针”的选对象里解放出来,把时间花在更有价值的设计决策上。希望这篇内容能帮你少走点弯路,把这个不起眼的功能真正用起来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询