使用查询语言工作
Altium Essentials: PCB Global Editing and List Panel
This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.
什么是查询?
在进行复杂的电子设计时,最大的挑战之一就是管理大量的设计对象。从原理图页上的元件、网络标号和文本字符串,到构成 PCB 布线的数百个元件和 走线,你都需要能够访问、检查并编辑这些对象。 和大多数 Windows 应用程序一样,你可以双击某个对象并编辑其属性。对于单个对象这没问题,但如果你需要编辑 300+ 个元件位号字符串,或更改 PCB 上的 所有过孔,这就不是你想采用的方式了。对于这类更新,你需要能够同时访问多个对象。
Altium Designer 的原理图与 PCB 编辑器底层内置了强大的查询引擎。通过向该引擎输入查询,你可以筛选并精确找到需要编辑的对象。
Altium Designer 强大的数据筛选与编辑系统允许你指示软件返回一组指定的对象。这种指示以查询的形式输入。查询是你使用特定关键字与语法输入的一段字符串,它会返回目标对象。至于你要对这些对象做什么,则由你决定。你可能想高亮它们并将其他所有对象变暗,或者你想浏览或排序它们的属性,并修改它们共同具备的某些特定属性。
你可以在多个位置应用查询,但核心位置是下图所示的 Filter 面板。按 F12 可显示/隐藏 Filter 面板。
带查询功能的 PCB Filter 和 SCH Filter 面板

带查询功能的 PCBLIB Filter 和 SCHLIB Filter 面板
面板中的控件用于定义查询将应用到哪些对象,以及如何处理通过查询的对象和未通过查询的对象。
SCH Filter Panel

在 SCH Filter 面板中使用逻辑查询快速定位并高亮对象。
概述
SCH Filter 面板允许你通过创建逻辑查询来构建过滤器。随后可将已定义的过滤器应用到当前活动的原理图文档 或所有已打开的原理图文档,从而更准确、更高效地选择并编辑多个对象。
面板访问
可通过以下方式访问该面板:
- 当 SCH Editor 处于活动状态时,单击编辑器右下角的 Panels 按钮,然后在弹出菜单中选择 SCH Filter 。
- 单击 View » Panels » SCH Filter。
- 单击 F12 快捷键。
定义过滤范围
面板的第一个区域包含用于定义过滤范围的控件:
Limit search to 区域提供控件,用于进一步细化过滤范围:
- All Objects - 将过滤器应用到所有设计对象。
- Selected Objects - 仅将过滤器应用到当前已选中的设计对象。
- Non Selected Objects - 仅将过滤器应用到当前未选中的设计对象。
Consider objects in 下拉字段用于控制过滤器应用的位置。可从以下选项中选择:
- Current Document - 仅对当前活动的原理图文档应用过滤(默认)。
- Open Documents - 对所有已打开的原理图文档应用过滤。
- Project Documents - 对所有已打开且属于同一父项目源文档的原理图文档应用过滤。
定义过滤查询
面板的中央区域允许你通过输入逻辑查询来构建过滤器。你可以直接在字段中键入查询。输入时,会出现可能关键字的提示列表以供辅助。
Query Helper 可用于辅助创建查询。如果你不确定查询语法或可能需要使用的关键字,该功能会非常有用。要使用 Query Helper,请单击 Helper 按钮打开 Query Helper 对话框。底层查询引擎会分析文档并列出所有可用对象 以及可用于查询的通用关键字。
使用对话框顶部区域,利用可用的 SCH Functions 和 System Functions 组合查询表达式。对话框中部区域提供了一系列用于构建表达式的运算符。使用 Check Syntax 按钮验证表达式在语法上是否正确。
当查询表达式按需定义完成后,单击 OK 会将查询加载到 SCH Filter 面板的中央区域,随时可应用过滤器。
定义过滤高亮显示
在应用查询之前,最好先定义你希望过滤结果在设计工作区中的视觉呈现方式。面板的 Objects passing/not passing the filter 区域提供了多种选项,这些选项共同构成永久过滤的高亮控制。
Objects passing the filter 区域中的选项用于控制工作区中所有处于范围内且匹配过滤器特定查询表达式的对象的显示效果:
- Select - 启用时(默认),过滤后的对象将在工作区中被选中。
- Zoom - 启用时(默认),过滤后的对象将在设计编辑器窗口中尽可能被缩放并居中显示。
Objects not passing the filter 区域中的选项用于控制工作区中所有不在范围内和/或不匹配过滤器特定查询表达式的对象的显示效果:
- Deselect - 启用时(默认),所有不在过滤范围内的对象将在工作区中被取消选择。
- Mask out - 启用时(默认),过滤后的对象将在设计编辑器窗口中完全可见,而其他所有对象将变暗。应用遮罩后,所有不在过滤范围内的对象将无法被选择/编辑。
这些选项可以任意组合启用。例如,你可能希望让所有符合查询范围的过滤对象在设计编辑器窗口中被缩放、居中并选中,同时应用遮罩以减少其他设计对象带来的杂乱。
应用与清除过滤器
当你定义好查询并按需设置面板选项后,即可应用过滤器——可以单击 Apply 按钮或按 Enter。
要在面板内清除当前已应用的过滤器,请清空面板中查询表达式的输入,然后单击 Apply 按钮或按 Enter。设计工作区中的所有对象将恢复为完全可见,并可被选择/编辑。
右键菜单
在 SCH Filter 面板内右键单击,可通过弹出菜单访问其他选项与命令。
该菜单提供以下命令:
- Add to Favorites - 将面板中当前显示的查询表达式添加到收藏查询列表。该查询将作为新条目出现在 Expression Manager 对话框的 Favorites 选项卡中。查询被添加到收藏列表后,也会显示在右键菜单顶部。菜单将显示最近添加到收藏列表的十条查询(最新的在最上方),便于你快速访问并复用常用查询表达式。
- Organize Favorites - 使用此命令访问 Expression Manager 对话框的 Favorites 选项卡,你可以在其中按需整理(重命名、删除)收藏查询列表中的条目。
- Examples - 单击 以访问预定义示例过滤器的子菜单。选择某个示例过滤器会将其对应的底层查询表达式加载到面板中央区域。
- History - 单击 以访问一个子菜单,其中包含从面板查询历史列表中提取的最近使用的九条查询表达式。单击 More 条目可访问 Expression Manager 对话框的 History 选项卡,你可以在其中浏览并从完整历史查询列表中应用某个查询,并按需清除历史列表。
说明
常规
- 按下 F12 键将切换该面板在工作区中的可见性。
- 使用 Query Helper 对话框构建查询时,在已输入的关键字内单击,或在可用列表中的某个关键字上单击,然后按下 F1 将打开该关键字的帮助。类似的关键字级帮助也可通过在 SCH Filter 面板中央区域的某个关键字内单击,然后按下 F1 来访问。
- 根据面板的形状和大小,内容会动态地以水平或垂直方式排列。
构建查询表达式时
- 强烈建议在任何可能导致查询被错误解释的情况下都使用括号。
-
在为各类运算符定义的优先级顺序中,括号具有最高优先级;该顺序决定了在你未提供括号时软件如何解释查询。其优先级顺序如下:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
该优先级顺序与 Pascal 类语言类似;尽量多用括号可以消除歧义,并使生成的查询更便于他人阅读。 - 歧义通过从左到右的方式来解析。
- 圆括号从内到外进行求值,同一层级按从左到右处理。
- 由于对“通过过滤”和“未通过过滤”的对象显示选项是分开的,你可以有效地应用新的过滤查询,在先前过滤结果的基础上继续构建。
- 从 SCH Filter 面板使用 Queries(查询)时所应用的过滤是永久性的。当对未通过过滤的设计对象进行遮罩时,遮罩程度由面板底部的滑块控制。
- 永久过滤必须通过从 SCH Filter 面板应用一个空查询来清除。
SCHLIB Filter Panel
使用 SCHLIB Filter 面板中的逻辑查询,快速定位并高亮显示原理图库对象。
概述
SCHLIB Filter 面板允许你通过创建逻辑查询来构建过滤器。随后可将已定义的过滤器应用到当前活动的原理图库元件,或活动原理图库中的所有元件,从而更准确、更高效地选择并编辑多个对象。对象的可视化显示可根据是否匹配过滤器的搜索条件(匹配/不匹配)分别进行设置。
面板访问
可通过以下方式打开该面板:
- 单击工作区右下角的 Panels 按钮,然后选择 SCHLIB Filter。
- 从主菜单中单击 View » Panels » SCHLIB Filter 。
- 使用 F12 快捷键。
定义过滤范围
SCHLIB Filter 面板左侧区域包含用于定义(限制)过滤范围的控件。
范围选项包括:
- All Objects - 将过滤器应用于所有设计对象。
- Selected Objects - 仅将过滤器应用于当前已选中的设计对象。
- Non Selected Objects - 仅将过滤器应用于当前未选中的设计对象。
- Whole Library - 控制过滤是仅应用于活动元件(选项禁用),还是应用于活动原理图库文档中的所有元件(选项启用)。
定义过滤查询
SCHLIB Filter 面板中央区域允许你通过输入逻辑查询来构建过滤器。
你可以直接在字段中输入查询;输入时会出现可能关键字的提示列表以供辅助。
Query Helper
除提示列表外,该面板还提供 Query Helper 功能,以帮助创建查询。如果你不确定查询语法或可用关键字,这个功能会非常有用。要使用 Query Helper,单击 Helper 按钮打开 Query Helper 对话框。底层 Query Engine 会分析文档并列出所有可用对象,以及可用于查询的通用关键字。
使用对话框顶部区域,利用可用的 SCH Functions 和 System Functions 组合查询表达式。对话框中部区域提供了一系列用于构建表达式的运算符。使用 Check Syntax 按钮验证表达式在语法上是否正确。
按需定义好查询表达式后,单击 OK 将查询加载到 SCHLIB Filter 面板的中央区域。使用 Apply 按钮应用过滤器。
当应用到整个库时,满足过滤条件的引脚将在所有其他元件中被高亮显示。
有关应用过滤器的更多信息,请参见下方 Applying and Clearing a Filter 小节。
定义过滤高亮显示
在 SCHLIB Filter 面板中应用查询之前,最好先定义你希望过滤结果在设计编辑器工作区中如何呈现。面板右侧区域提供了多种选项,这些选项共同构成永久过滤的高亮控制。
Objects passing the filter 选项允许你控制所有处于范围内并匹配过滤器特定查询表达式的对象在工作区中的显示方式。
- Select - 启用时(默认),过滤后的对象将在工作区中被选中。
- Zoom - 启用时(默认),过滤后的对象将在库编辑器窗口中尽可能缩放并居中显示。缩放行为可由 Preferences 对话框中 Schematic - Library AutoZoom 页面里设置的 Zoom Library Components 选项决定。
相反,Objects not passing the filter 选项允许你控制所有 do not 处于范围内和/或匹配过滤器特定查询表达式的对象在工作区中的显示方式。
- Deselect - 启用时(默认),所有不在过滤范围内的对象将在工作区中被取消选择。
- Mask out - 启用时(默认),所有不在过滤范围内的对象将在库编辑器窗口中被遮罩。使用滑块定义遮罩级别。
应用与清除过滤器
在你按需定义查询并设置好面板选项后,可通过单击面板的 Apply 按钮或按下 Enter 来应用过滤器。
要在面板内清除当前已应用的过滤器,请清空(选中并删除)面板中央区域中的查询表达式,然后单击 Apply 按钮或按下 Enter。设计工作区中的所有对象将恢复为完全可见,并可用于选择/编辑。
要清除工作区中的过滤效果,但保留查询表达式仍加载在面板中央区域,请使用 Sch Lib Standard 工具栏上的 Clear Current Filter 按钮(
)(快捷键 Shift+C)。
右键菜单
在 SCHLIB Filter 面板内右键单击,可通过弹出菜单访问更多选项与命令。
该菜单提供以下命令:
- Add to Favorites - 使用 将当前显示在面板中央区域的查询表达式添加到收藏查询列表中。该查询将作为新条目出现在 Expression Manager 对话框的 Favorites 选项卡中。查询被添加到收藏列表后,也会显示在右键菜单顶部。菜单将显示最近添加到收藏列表的 10 条查询(最新的在最上方),便于你快速访问并复用常用查询表达式。
- Organize Favorites - 使用 访问 Expression Manager 对话框的 Favorites 选项卡,你可以在其中整理(重命名、删除)收藏查询列表中的条目。
- Examples - 单击以访问预定义示例过滤器的子菜单。选择某个示例过滤器会将其对应的底层查询表达式加载到面板中央区域。
- History - 单击 以访问一个子菜单,其中包含从该面板的查询历史列表中取出的最近使用的 9 条查询表达式。单击 More 条目可访问 Expression Manager 对话框的 History 选项卡,你可以在其中浏览并从完整历史查询列表中应用查询,并按需清除历史列表。
- Show Scope Options - 使用 切换面板中过滤范围区域的显示/隐藏。
- Show Masking Options - 使用切换面板中过滤高亮显示区域的显示/隐藏。
注释
常规
- 按下 F12 键将切换该面板在工作区中的可见性。
- 从 SCHLIB Filter 面板使用 Queries 时所应用的过滤在本次会话中是永久生效的。永久过滤必须通过相应的 Clear 操作来清除(即从 SCHLIB Filter 面板应用一个空查询)。
- 根据 SCHLIB Filter 面板自身的形状和大小,内容会动态地以水平或垂直方式排列。
构建查询表达式
- 强烈建议在任何可能导致查询无法被正确解释的情况下都使用括号。
-
在为各类运算符定义的优先级顺序中,括号具有最高优先级;该顺序决定了在用户未提供括号时软件如何解释查询。其优先级顺序如下:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
该优先级顺序类似于 Pascal 类语言所使用的规则。不过,尽量多用括号可以消除歧义,并让生成的查询更便于他人阅读。 - 歧义通过从左到右的方式来解析。
- 括号从内到外进行求值,同一层级按从左到右执行。
PCB Filter Panel

PCB Filter 面板
摘要
PCB Filter 面板提供用于通过创建逻辑查询来构建过滤器的控件。随后可将已定义的过滤器应用到当前 PCB,从而以极高的准确性与效率选择并编辑多个对象。
面板访问
可通过以下方式在 PCB 编辑器中打开该面板:
- 单击工作区右下角的 Panels 按钮,然后选择 PCB Filter。
- 从主菜单中单击 View » Panels » PCB Filter。
- 使用 F12 快捷键。
面板分区
PCB Filter 面板由三个区域组成。前两个是可选择的列表区域,它们共同定义过滤范围:Object 和 Layer。
第三个区域 Filter 用于显示基于当前所选对象与层而创建的查询。
构建简单过滤表达式
面板的主要区域提供控件,用于快速构建面向任意对象组合的简单过滤表达式。对象类型以“对象矩阵”的形式排列,并按网络对象(Net)、元件对象(Comp)或自由对象(Free)分类。以下核心对象列表会在这三个分组中重复出现:
- Track
- Arc
- Via
- Pad
- Fill
- Region
Text 对象可作为 Comp 和 Free 分组的一部分使用;但由于该对象类型不具备网络感知能力,因此不属于 Net 分组。此外,Free 分组还包括:Component、Component Body、Room 和 Polygon。
例如,如果将这些设置为“Component”和“Top Layer”,则板视图会高亮显示顶层元件。面板两个分区中的选择体现了多阶段过滤操作的累积效果,可用于快速高亮任意类型的设计对象。
要在构建过滤表达式时使用某个对象(即按该对象进行过滤),请在对象矩阵中勾选与该对象相关的复选框。该区域的右键菜单命令可让你快速勾选或取消勾选矩阵中的所有条目,或切换矩阵中所有复选框的状态。
使用面板的 Layer 区域可将过滤限制到特定层或多层,或某一特定层类别。所列条目反映:
-
为该板定义的层类别,默认包括:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- 层叠(Layer Stack)中定义的各层(如在 Layer Stack Editor 中所示)。
- 顶层与底层的焊膏阻焊层。
当你进行过滤选择时,生成的查询表达式会动态构建,并显示在面板的 Filter 区域中。按需定义好过滤查询表达式后,还需要单独执行“应用”操作。为此,请单击面板底部的 Apply to All 按钮。或者,如果你只希望将其应用到当前在工作区中已选中的对象,请单击 Apply to Selected 按钮。
按对象过滤
在面板的 Object 列表中进行选择,会过滤板视图以显示基本(primitive)设计对象。除非被 Object 和/或 Layer 过滤列表中的设置所修改,否则所有对象都会被高亮显示。

所示电路板在 Object 下选择了 Component Body 和 Pad (In Any Component) 。Layer <All> 设置为 <All>。

所示电路板将 Object 设置为 Tracks (In Any Net) 和 Pads (In Any Net)。 Layer 设置为 <All>。
按层过滤
在面板的 Layer 列表中进行选择,会过滤板视图以显示位于指定物理设计层(信号层、阻焊层与丝印层)上的对象。除非被 Layer 和/或 Objects 过滤列表中的设置所修改,否则所有有效的层对象都会被高亮显示。

所示电路板将 Object 设置为 Components 和 Pads (In Any Component)。Layers Top Layer 设置为 Top Layer。

所示电路板将 Object 设置为 Tracks(In Any Net)。 Layer Bottom Layer 设置为 Bottom Layer。
选择已过滤对象
该面板提供的综合过滤操作有助于查看与选择感兴趣的板级设计对象。
只有被高亮(已过滤)的对象可被选择,从而更容易定位、编辑并查找对象信息。
清除过滤
单击 Clear 按钮以清除当前应用的过滤器。
设置可视化过滤
工作区中文档应用过滤后的可视化结果由一系列高亮控件决定。在编辑器视图中施加的效果可设置为 Normal、Mask 或 Dim;在实际使用中,Mask 的高亮效果最明显。
Normal / Mask / Dim 下拉列表提供选项,用于在工作区中对已过滤与未过滤对象进行可视化对比。

使用遮罩模式下拉列表选择所应用的可视化过滤类型。
各遮罩模式的可视化高亮效果:
- Normal - 已过滤对象在工作区中可见,未过滤对象的外观保持不变。
- Mask - 已过滤对象在工作区中高亮显示,其余所有对象变为单色显示。
- Dim - 已过滤对象在工作区中高亮显示,其余所有对象保留颜色但会被加深/变暗处理。
定义过滤查询
该面板的中央区域提供控件,可通过输入逻辑查询来构建过滤器。
您可以直接在字段中输入查询,随着输入的进行,会出现一个可能关键字列表作为辅助。
有两个可用于帮助创建查询的功能——Query Helper 和 Query Builder。如果您不确定查询语法或可能想使用的关键字,这些功能会非常有用。
Query Helper
要使用 Query Helper,单击 Helper 按钮以打开 Query Helper 对话框。底层的 Query Engine 会分析文档,并列出所有可用对象 以及可用于查询的通用关键字。
使用对话框的顶部区域,利用可用的 PCB Functions、PCB Object Lists 和 System Functions 来编写查询表达式 。对话框的中间区域 提供了一系列在构建表达式时可用的运算符。使用 Check Syntax 按钮验证表达式在语法上是否正确。
当按需定义好查询表达式后,单击 OK 将查询加载到面板的中央区域,准备应用过滤器。
Query Builder
要使用 Query Builder,单击面板的 Builder 按钮以打开 Building Query from Board dialog。该对话框允许您通过构建一串 AND 和/或 OR 条件来创建查询,以便在设计文档中定位特定对象。对话框左侧 用于指定定位所需对象集合所需的条件。初始时,Condition Type/Operator 列中的条目将为 Add first condition。单击一次该条目会显示条件类型的下拉列表。
所列出的条件类型将 仅反映与板级设计相关的内容。
选择所需的条件后,在 Condition Value 列中单击以访问该条件类型的可能取值下拉列表。随着您在对话框左侧定义条件,右侧会显示当前已构建查询的预览。
继续添加更多条件,以按需缩小目标设计对象集合。条件可以用 AND 或 OR 连接。默认逻辑运算符为 AND,当您添加另一个条件时会自动插入。
要更改条件之间的逻辑运算符,请在 Condition Type/Operator 列中单击 AND 或 OR 条目,然后选择所需运算符。查询预览将相应更新。
指定优先级
Building Query from Board 对话框顶部的
和
按钮允许您为当前选中的条件添加或移除括号(增加或减少缩进)。这使您能够为某些逻辑 AND 或逻辑 OR 的条件创建优先级。
例如,考虑以下已构建的查询:
InNet('5V') AND (OnLayer('TopLayer')
第一个条件被设置为条件类型 Belongs to Net ,其值为 16M_IN。随后又添加了另一个条件 ,使用条件类型 Exists on Layer ,其值为 TopLayer。
在此阶段,在对话框中选中第二个条件后,单击了右箭头按钮。系统会自动在第二个条件周围添加括号 ,并且现在可以在这对括号内添加条件。
随后在括号内添加第三个条件,其条件类型为 Object Kind is,值为 Track。
使用对话框左上角的 Show Level 下拉菜单来控制结构化条件字符串中各层级的可视显示。这本质上是在展开/折叠括号显示。添加括号会有效创建一个新层级。您可以显示 1-5 级,但对于新增的更深层级,请使用 Show All Levels 选项。
或者,单击(与带括号条件关联的)展开 或收起 符号,分别显示下一层级或隐藏当前层级(以及其下所有层级)。对话框顶部的
和
按钮也可用于展开或折叠当前选中的条件。
使用对话框顶部的
和
按钮在查询字符串中移动所选条件。对于具有子层级的条件(即带括号的条件),层级结构中的任何条件都可以移动。当层级展开时,条件可以在层级间向下或向上移动。当层级折叠时,条件将跨越层级结构移动。
要删除某个条件,选中它,然后单击对话框顶部的
按钮,或使用 Delete 键。
当按需定义好查询表达式后,单击 OK 将查询加载到 PCB Filter 面板的中央区域,准备应用过滤器。
创建设计规则
PCB Filter 面板还提供创建设计规则的功能,其作用域将使用面板中央区域当前定义的查询表达式。
要添加新的设计规则,单击 PCB Filter 面板的 Create Rule 按钮。将打开 Choose Design Rule Type 对话框。
该对话框列出了 PCB 文档中可用的各个规则类别和规则类型。选择要创建的规则类型,然后单击 OK(或直接双击该条目)。将打开 PCB Rules and Constraints Editor 对话框。
新创建的规则名称会在左侧导航树中以选中状态显示。规则查询表达式位于对话框右上窗格中。
系统会创建所选类型的规则,并显示该规则的主编辑窗口,供您定义该规则的具体约束。来自 PCB Filter 面板的查询表达式会被填入对话框的 Full Query 区域。按需细化规则配置设置,并应用新规则。
应用与清除过滤器
一旦您定义了查询并按需设置了面板选项,就可以通过单击面板的某个 Apply 按钮或单击 Enter 来应用过滤器。
要在面板内清除当前已应用的过滤器,请清空(选中并删除)面板中央区域中的查询表达式,然后单击某个 Apply 按钮或按 Enter。设计工作区中的所有对象将恢复为完全可见,并可用于选择/编辑。
右键菜单
在 PCB Filter 面板内右键单击,可通过弹出菜单访问其他选项和命令。
在面板的 Object 或 Layer 区域右键单击,会打开以下上下文菜单选项:
- Toggle Check - 启用以切换选项。当前已选中的选项将被取消选择 ,而未选中的选项将被选中。
- Check All - 启用以选择所有可用选项。
- Uncheck All - 启用以取消选择所有可用选项。
注意事项
常规
- 按下 F12 键将切换面板在工作区中的可见性。
- Query Builder(Building Query from Board 对话框)提供了一种构建查询的简单方法,它使用“敏感”的条件类型和值,只允许您使用相关的“构建块”来构建。对于高级查询构建(完整关键字指定与运算符语法),请使用 Query Helper 对话框。
- 由于对通过与未通过已应用过滤器的对象显示选项是分开的,您可以有效地应用新的过滤查询,以在先前过滤结果的基础上继续构建。
构建查询表达式时
-
强烈建议在任何可能导致查询无法被正确解释的情况下使用括号。
-
括号在已为各类运算符定义的优先级顺序中具有最高优先级,该顺序决定了软件如何解释查询(当用户未提供括号时)。该优先级顺序如下:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
该优先级顺序类似于 Pascal 类语言中使用的规则。不过,尽量多用括号可以消除歧义,并使生成的查询更便于他人阅读。 -
歧义通过从左到右的方式解决。
-
括号从内到外求值,同一层级按从左到右执行。
PCBLIB Filter Panel
概述
PCBLIB Filter 面板提供用于通过创建逻辑查询来构建过滤器的控件。随后可将已定义的过滤器应用到活动 PCB 元件封装,或活动 PCB 库中的所有元件封装,从而以极高的准确性与效率选择并编辑多个对象。
面板访问
可通过以下方式从 PCB Library Editor 访问该面板:
- 单击工作区右下角的 Panels 按钮,然后选择 PCBLIB Filter 条目。
- 从主菜单单击 View » Panels » PCBLIB Filter。
面板分区
PCBLIB Filter 面板由三个区域组成。前两个是可选择的列表区域,共同定义过滤的范围:Object 和 Layer。第三个区域 Filter 显示根据当前所选对象和层生成的查询。
构建简单过滤表达式
面板的主要区域提供控件,用于快速构建面向任意对象组合的简单过滤表达式。对象类型以“对象矩阵”的形式排列,并按网络对象(Net)、元件对象(Comp)或自由对象(Free)分类。以下核心对象列表在这三个组中都会重复出现:
- Track
- Arc
- Via
- Pad
- Fill
- Region
Text 对象可作为 Comp 和 Free 分组的一部分使用;但由于该对象类型不具备网络感知能力,因此不属于 Net 分组。此外,Free 分组还包括 Component、ComponentBody、Room 和 Polygon。
例如,如果将它们设置为“Components”和“Top Layer”,则板视图会高亮显示顶层元件。两个面板分区中的选择代表多阶段过滤操作的累积效果,可用于快速高亮任意类型的设计对象。
要在构建过滤表达式时使用某个对象(即按该对象进行过滤),请在对象矩阵中启用与该对象关联的相应复选框。该区域的右键上下文菜单提供命令,可分别快速全选/全不选矩阵中的所有条目,或切换矩阵中所有复选框的状态。
使用 Layer 区域将过滤限制到特定层、多个层或某一类层。所列条目反映:
-
为该板定义的层类,默认包括:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- 层叠(Layer Stack)中定义的各层(如 Layer Stack 中所示)。
- 顶层与底层的焊膏阻焊层(paste mask layers)。
当你进行过滤选择时,生成的查询表达式会动态构建,并显示在面板的 Filter 区域中。按需定义好过滤查询表达式后,还需要单独执行“应用”操作。为此,请单击面板底部的 Apply to All 按钮。或者,如果你只需要将其应用到工作区中当前已选中的对象,请使用 Apply to Selected 按钮。
应用过滤
PCB 库元件由原始对象类型(Arc、Pad、Track 等)组成,并分布在不同的板层上。这些对象要么是“自由”的,要么“归属”于某个组对象。注意:在 Object 区域中选择 Free 将只会高亮显示那些不属于任何组对象的对象。
按对象过滤
在面板的 Object 列表中的选择会过滤板视图,以显示原始设计对象。除非被 Layer 过滤列表中的设置所修改,否则所有对象都会被高亮显示。

示例板如图所示,在 Object 下选择了 Track 和 Arc。Layer 设置为 Top Overlay。
按层过滤
在面板的 Layers 列表中的选择会过滤板视图,以显示位于指定物理设计层(信号层、阻焊层与丝印层)上的对象。除非被 Object 过滤列表中的设置所修改,否则所有有效的层对象都会被高亮显示。

示例板如图所示,Object 设置为 Pad. Layer ,Top Layer 设置为 Top Layer。
选择已过滤对象
PCBLIB Filter 面板提供的综合过滤操作有助于查看并选择感兴趣的板级设计对象。
只有被高亮(已过滤)的对象可被选择,从而更容易定位、编辑并查找该对象的信息。
清除过滤
使用面板的 Clear 按钮清除当前应用的过滤。
设置可视化过滤
工作区中文档应用过滤后的可视化结果由一系列高亮控制决定。在编辑器视图中施加的效果可设置为 Normal、Mask 或 Dim;在实际使用中,Mask 的高亮效果最明显。
Normal / Mask / Dim 下拉列表提供选项,用于在工作区中对已过滤与未过滤对象进行可视化对比。

使用遮罩模式下拉列表选择所应用的可视化过滤类型。
各遮罩模式的可视化高亮效果如下:
- Normal - 已过滤对象在工作区中可见,未过滤对象的外观保持不变。
- Mask - 已过滤对象在工作区中高亮显示,其余所有对象变为单色显示。
- Dim - 已过滤对象在工作区中高亮显示,其余所有对象保留原有颜色但会被加深/变暗处理。
定义过滤查询
面板的中央区域允许你通过输入逻辑查询来构建过滤器。
你可以直接在字段中键入查询;在输入过程中,会出现可能关键字的提示列表以供辅助。
有两项功能可辅助创建查询——Query Helper 和 Query Builder。如果你不确定查询语法或可能需要使用的关键字,这些工具会非常有用。
Query Helper
要使用 Query Helper,请单击 Helper 按钮打开 Query Helper 对话框。底层的 Query Engine 会分析文档并列出所有可用对象,以及可用于查询的通用关键字。
使用对话框顶部区域,利用可用的 PCB Functions、PCB Object Lists 和 System Functions 组合查询表达式。对话框中部区域提供一系列运算符,用于构建表达式。使用 Check Syntax 按钮验证表达式在语法上是否正确。
当查询表达式按需定义完成后,单击 OK 将查询加载到 PCBLIB Filter 面板的中央区域,以便应用过滤。
Query Builder
要使用 Query Builder,请单击 PCBLIB Filter 面板的 Builder 按钮打开 Building Query from Board 对话框。
该对话框允许你通过简单构建一串以 AND 和/或 OR 连接的条件,创建用于定位设计文档中特定对象的查询。
对话框左侧用于指定定位所需对象集合的条件。初始时,Condition Type/Operator 列中的条目为 Add first condition。单击该条目一次以打开条件类型的下拉列表。
所列条件类型只会反映与板级设计相关的内容。
选择条件后,单击 Condition Value 列以访问该条件类型的可能取值下拉列表。当你在对话框左侧定义条件时,右侧会显示当前构建的查询预览。
根据需要继续添加更多条件,以进一步缩小目标设计对象集合。条件之间可以使用 AND 或 OR 进行组合。默认逻辑运算符为 AND,当你添加另一个条件时会自动插入该运算符。
要更改条件之间的逻辑运算符,请在 Condition Type/Operator 列中单击 AND 或 OR 项,然后选择所需的运算符。查询预览将相应更新。
指定优先级
在 Building Query from Board 对话框顶部的
和
按钮,可在当前选中的条件周围添加或移除括号(增加或减少缩进)。这使你能够为某些逻辑 AND 或逻辑 OR 的条件创建优先级。
第一个条件已设置为条件类型 Exists on Layer ,其值为 Top Layer。随后又添加了另一个条件,使用条件类型 Object Kind is ,其值为 Arc。
在此阶段,对话框中选中了第二个条件,并单击了右箭头按钮。系统会自动在第二个条件周围添加括号,并且现在可以在这对括号内添加条件。
随后在括号内添加第三个条件,其条件类型为 In Any Polygon 。
使用对话框左上角的 Show All Levels 下拉菜单来控制结构化条件字符串中各层级的可视化显示。这本质上是展开/折叠括号显示。添加括号会有效创建一个新层级。你可以显示 1-5 级,但对于新增的更深层级,请使用 Show All Levels 选项。
或者,单击带括号条件旁的展开或收缩符号,分别用于显示下一层级或隐藏当前层级(以及其下所有层级)。对话框顶部的
和
按钮也可用于展开或折叠当前选中的条件。
使用对话框顶部的
和
按钮来移动正在构建的查询字符串中的某个已选条件。对于包含子层级的条件(即带括号的条件),层级结构中的任何条件都可以移动。展开层级时,条件可以在各层级间向上或向下移动;折叠层级时,条件会跨越该层级结构进行移动。
要删除某个条件,请选中它,然后单击对话框顶部的
按钮,或使用 Delete 键。
当按需定义好查询表达式后,单击 OK 将查询加载到 PCBLIB Filter 面板的中央区域,以便应用过滤器。
创建设计规则
PCBLIB Filter 面板也提供创建设计规则的功能。其作用域将使用面板中央区域中当前定义的查询表达式。
要添加新的设计规则,请单击 PCBLIB Filter 面板的 Create Rule 按钮。将打开 Choose Design Rule Type 对话框。
该对话框列出了 PCB 文档中可用的各个规则类别和规则类型。选择要创建的规则类型,然后单击 OK(或直接双击该条目)。将打开 PCB Rules and Constraints Editor 对话框。
新创建的规则名称会在左侧导航树中以选中状态显示。规则查询表达式位于对话框右上方面板中。
系统会创建所选类型的规则,并显示该规则的主编辑窗口,供你定义具体约束。来自 PCBLIB Filter 面板的查询表达式会被填入对话框的 Full Query 区域。根据需要细化规则配置设置,并应用新规则。
应用与清除过滤器
当你已按需定义查询并在面板中设置好选项后,可以通过单击面板的 Apply 按钮或按下 Enter 来应用过滤器。
要在面板内清除当前已应用的过滤器,请清空(选中并删除)面板中央区域中的查询表达式,然后单击 Apply 按钮或按下 Enter。设计工作区中的所有对象将恢复为完全可见,并可用于选择/编辑。
右键菜单
在 PCBLIB Filter 面板内右键单击,可通过弹出菜单访问更多选项和命令。
在面板的 Object 或 Layer 区域右键单击,会打开以下上下文菜单选项:
- Toggle Check - 启用以切换选项。当前已选选项将被取消选择,而未选选项将被选中。
- Check All - 启用以选择所有可用选项。
- Uncheck All - 启用以取消选择所有可用选项。
说明
常规
-
按下 F12 键将切换面板在工作区中的可见性。 - Query Builder(Building Query from Board 对话框)提供了一种简单方法,可使用具备上下文敏感性的条件类型和值来构建查询,从而只允许你使用相关的“构建块”进行搭建。对于需要完整关键字定义与运算符语法的高级查询构建,请使用 Query Helper 对话框。
- 由于对“通过过滤器的对象”和“未通过过滤器的对象”的显示选项是分开的,你可以有效地应用新的过滤查询,以在先前过滤结果的基础上继续筛选。
在构建查询表达式时
- 强烈建议在任何可能导致查询被错误解释的情况下使用括号。
在为各类运算符定义的优先级顺序中,括号具有最高优先级;该顺序决定了软件如何解释查询(当用户未提供括号时)。该优先级顺序如下:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
- 该优先级顺序类似于 Pascal 类语言中使用的规则。不过,充分使用括号可以消除歧义,并使生成的查询更便于他人阅读。
- 歧义通过从左到右的方式来解决。
查询结果在哪里?
现在你已经在 Filter panel 中编写了查询,那么如何访问查询返回的对象?在 Altium Designer 环境中,有两种方式可以访问并编辑这些对象。
-
图形方式 - 应用过滤器后,默认行为是对未通过查询的所有对象进行遮罩(淡化并设为不可编辑),仅保留通过查询的对象。该模式非常适合在工作区中定位和检查对象。由于被遮罩的对象不可编辑,像 Ctrl+A(全选)这样的命令只会作用于查询返回的对象。
-
List panel - List panel(Shift+F12)以类似电子表格的方式查看设计数据。默认情况下它显示所有设计对象,但一旦应用过滤器,就只显示查询返回的对象。List panel 具备标准的表格式排序与选择行为,允许你直接编辑单个或多个单元格。
PCB List 面板和 SCH List panel 显示上一节中 PSB/SCH 查询的结果。
高亮选项
每当应用查询(或以其他方式使用数据过滤功能)时,目标文档中的每个对象都会成为该过滤操作结果的一部分。然而,结果中的对象以及不在结果中的对象随后如何显示,取决于在 Filter panel 中选择的高亮选项。共有三种不同的高亮选项,并且这些选项彼此完全独立,因此你可以选择其中一个、两个或全部。
缩放
当应用查询时启用 Zoom 选项,目标文档的视图会更新为显示结果中所有对象所占据的区域。更新后的视图中,其余对象是否显示取决于它们相对于该区域的位置,因此这些对象可能会完全显示、部分显示,或完全不显示。
此选项通常会与其他一个或两个选项配合选择。 如果未启用 Mask 选项,那么不在结果中的对象只要位于更新后的边界内,仍会在图形视图中显示。乍一看,单独选择此选项似乎没有意义,但有时你可能希望更新图形视图,使其包含特定对象,同时又不改变文档中任何对象的选中状态或屏蔽状态。
选择
当启用 Select 选项时,结果中的所有对象都将处于选中状态,而其余对象均为未选中状态。选中对象会以比未选中对象更醒目的方式显示。
如果在应用当前查询时选择了 Select 选项,则结果集中的所有对象随后都会获得选中状态,而其余所有对象(不属于结果集的对象)则会获得未选中状态。该选项通常会在全局编辑操作之前选择,因为当时只有当前被选中的对象其属性才会被更新。但在其他场景下 Select 选项也很有用,例如需要移动、复制或删除特定对象时。
屏蔽
Mask 高亮选项用于决定目标文档中对象更新后的“屏蔽(masked)”属性。选中后,结果中的所有对象都会被屏蔽,而其余对象将取消屏蔽。屏蔽对象的主要特性是:对象及其属性无法被编辑。(屏蔽对象在列表视图中会以变暗方式显示,但除非在 List 面板中当前选中了 all objects 选项,否则它们不会显示在列表视图中。)屏蔽对象的主要特性是:对象及其属性无法被编辑。
Query Builder
PCB 编辑器包含一个专用的 Query Builder 对话框。该对话框允许你通过从下拉列表中选择测试条件来构建复杂查询。Query Builder 的一个优势是,它让你能够创建一个可针对不同类型对象的查询。
“Building Query”对话框(属于“Query Builder”功能的一部分)可帮助不太熟悉查询编写的用户;系统会自动生成一个查询,其内容与设计者指定的条件相对应。
该对话框左侧区域包含一些控件,用于帮助设计者指定:文档中的每个对象需要满足哪些属性条件,才会被此对话框生成的查询返回。每当这些条件被指定或编辑时,相应查询的内容都会更新,并显示在对话框右侧区域。如果随后通过点击 OK(或 Apply)按钮关闭该对话框,则会应用关联的查询,或将其内容复制回 Filter 面板(取决于最初是以何种方式调用该对话框)。
Query Builder 对话框可从以下位置启动(如下图所示):
- 在 PCB Filter 面板中,点击 Query Builder 按钮以构建查询并将字符串加载到该面板中。
- 在 PCB Rules and Constraints Editor dialog 中,点击 Builder 按钮以构建一个查询,用于定义该规则适用于哪些对象。
下图显示了使用 Query Builder 对话框创建一个查询,该查询同时针对 5V 网络上的焊盘(pads)和过孔(vias)。

Query Builder 对话框
Options and Controls of the Query Builder Dialog
-
Show All Levels - 使用下拉列表控制结构化条件字符串中各层级的可视化显示。这本质上是展开/折叠括号显示。添加括号会创建一个新层级,你可以显示 1-5 级。或者,点击展开(
)或收缩(
)符号,分别用于显示下一层级或隐藏当前层级(以及其下所有层级)。
-
- 用于移除当前选中条件周围的括号(减少缩进)。 这使你能够为某些逻辑 AND 或逻辑 OR 的条件创建优先级。
-
- 用于为当前选中条件添加括号(增加缩进)。 这使你能够为某些逻辑 AND 或逻辑 OR 的条件创建优先级。
-
- 用于将选中的条件在正在构建的查询字符串中上移。对于包含子层级的条件(即带括号的条件),层级结构中的任意条件都可以移动。展开层级时,条件可以跨层级向上移动;折叠层级时,条件会在层级结构上方移动。
-
- 用于将选中的条件在正在构建的查询字符串中下移。对于包含子层级的条件(即带括号的条件),层级结构中的任意条件都可以移动。展开层级时,条件可以跨层级向下移动;折叠层级时,条件会在层级结构上方移动。
-
- 用于展开符号以显示下一层级。
-
- 用于收缩符号以隐藏当前层级(以及其下所有层级)。
-
- 用于删除选中的条件。
- Condition Type/Operator - 使用此区域来指定定位所需对象集合所必需的条件。初始时,Condition Type/Operator 列中的条目将为 Add first condition。单击该条目一次以打开条件类型的下拉列表。该列表会根据对话框的启动位置而变化。如果你是在 PCB Rules And Constraints Editor 对话框中为某条特定设计规则构建查询,则条件列表只会反映该规则类型所允许的条件类型。
- Condition Value - 选择第一个条件,然后在 Condition Value 列中单击以访问该条件类型的可能取值下拉列表。随着你定义条件,当前构建的查询预览会显示在 Query Preview 区域中。
Query Helper
提升查询编写技能的下一步是使用 Query Helper 对话框。Query Helper 对话框包含一个 Query 框,你可以在其中输入所需查询,同时也可以使用 Query 字段下方的语法按钮(例如 And、Or、<、Not、 Like 等),以及 Categories 字段中列出的全部查询关键字列表。
“Query Helper”对话框为希望自行编写查询的设计者提供帮助。列表中的每个关键字都提供了简要说明;当某个关键字被高亮时,按 F1 键即可访问在线帮助。这将调用 Altium Designer Documentation Library 对话框,其中会详细说明:文档中哪些对象会被该高亮关键字返回、如何使用该关键字,以及一个或多个用法示例。
可通过以下方式访问该对话框:
- 点击 Filter 面板中的 Helper 按钮。
PCB Filter 面板访问
SCH Filter 面板访问
-
在 File-based Libraries Search dialog 中(通过在 Components panel 右上角点击
,然后从下拉菜单中选择 File-based Libraries Search 进入),点击 Helper 按钮。
File-based Libraries Search对话框访问
使用对话框顶部的 Query 区域,利用可用的函数来编写查询表达式。在文本框中,您可以查看和/或进一步编辑搜索表达式。直接在文本框中键入即可编辑搜索表达式。若要搜索并添加特定关键字,请开始输入。在您输入时,对话框会提供一个下拉菜单,列出与您目前已输入文本相匹配的可用关键字。单击某个关键字可自动补全您的选择。如果所需关键字已高亮,按下 Enter 也会自动补全您的选择。
浏览可用关键字的 Categories ,找到您需要的那个。如果您不确定确切的关键字是什么,请使用 Mask 字段。例如,在原理图编辑器的 Query Helper 中,在 Mask 字段输入 *har 将会找到专门适用于线束(harness)的关键字,如下图所示。请注意,Mask 字段同时作用于关键字 Name 字段和 Description 字段,因此它可能是查找潜在关键字的最快方式。
在网格中双击某个关键字,可将其添加到当前光标位置的查询中。
对话框中部区域包含语法按钮,提供一系列在构建表达式时可用的运算符。关于每个语法按钮的具体功能,请参阅下方的 Logical Query Expression Operators 章节。使用 Check Syntax 按钮(对话框左下角)可验证表达式在语法上是否正确。
历史查询
当您从过滤面板(SCH Filter / SCHLIB Filter、PCB Filter / PCBLIB Filter)输入并应用一个新查询时,它会被添加到查询历史列表中。单击面板上的 History 按钮可访问该列表。Expression Manager 对话框会打开,并默认激活 History 选项卡。
Expression Manager 对话框的 History 选项卡提供过去使用过的查询表达式列表。此处展示了原理图(Schematic)的历史查询示例。将鼠标悬停在图像上,可查看 PCB 的类似示例列表。
要使用列表中的历史查询,可选择其条目并单击 Apply Expression 按钮,或直接双击该条目。对话框将关闭,并把该查询的表达式加载到相应过滤面板的中央区域。
通过选择历史查询条目并单击 Add To Favorites 按钮,可将历史查询添加到收藏查询列表中。如果您想“清空”历史列表,请使用 Clear History 按钮。
历史列表中最近使用的最多九条查询表达式,可通过过滤面板右键 History 子菜单直接使用。
收藏查询
任何已定义的查询都可以通过两种方式添加到收藏查询列表中:
- 单击 Add To Favorites 按钮,或在主 Query Expression 区域右键并从上下文菜单中选择 Add to Favorites 命令,以添加当前在活动过滤面板中央区域中定义的查询表达式。
- 在 Expression Manager 对话框的 History 选项卡中选择一条历史查询条目,然后单击 Add To Favorites 按钮。
收藏查询表达式存储在 Expression Manager 对话框的 Favorites 选项卡中,并在此处进行管理。可通过过滤面板上的 Favorites 按钮(SCH Filter / SCHLIB Filter、PCB Filter / PCBLIB Filter)访问;也可在过滤面板主 Query Expression 区域右键,并从上下文菜单中选择 Organize Favorites 命令访问。在设计空间中,可使用 Y 快捷键,然后从弹出的过滤菜单中选择 Organize Favorites 来打开该对话框。
可通过编辑器的过滤面板或设计空间中的过滤弹出菜单,访问您的收藏查询列表。
当某个查询表达式被添加到 Favorites 列表时,会为其分配一个唯一名称。默认情况下会分配一个通用名称——Favorite_n——其中 n 是下一个可用的未使用编号。条目的名称可在任何阶段通过以下任一方法更改:
- 选择查询条目,然后单击 Rename 按钮。
- 选择查询条目,然后从右键菜单中选择 Edit 命令。
- 选择查询条目,然后在 Name 字段内再次单击。
在每种情况下,根据需要输入新名称,然后在 Name 字段外单击以使更改生效。
要编辑某个收藏查询表达式,请在列表中选择其条目,然后单击 Edit 按钮(或右键并从上下文菜单中选择 Edit )。Edit Favorite 对话框将打开。使用该对话框可修改收藏项名称、更改表达式本身,并确定如何处理设计对象(包括通过过滤的对象和未通过过滤的对象)。
使用 Edit Favorite 对话框修改现有收藏查询,此处分别展示原理图(左)与 PCB(右)。
要从 Favorites 列表中移除某个查询,请在列表中选择其条目,然后单击 Remove 按钮,或从右键菜单中选择 Remove 命令。将出现一个对话框,要求确认移除操作。
使用收藏查询
使用收藏查询有三种方式:
-
在 Expression Manager 对话框的 Favorites 选项卡中——选择其条目并单击 Apply Expression 按钮,或双击该条目。对话框将关闭,并把该查询的表达式加载到相应过滤面板的中央区域。
-
从过滤面板右键菜单的顶部使用(最多提供最近添加到 Favorites 列表的十条查询表达式)。
-
从设计空间的过滤弹出菜单使用(按下 Y)——菜单顶部会列出最多十条收藏查询表达式。所选查询表达式将被加载到相应过滤面板的中央区域。
使用预置示例
原理图与 PCB 编辑器都提供一组预置的示例查询。这些示例可从过滤菜单中获取——可通过在过滤面板的表达式区域右键访问,或在设计空间中使用 Y 快捷键访问。将鼠标悬停在 Examples 上可查看子菜单。
当您在子菜单中选择某个条目时,将应用该过滤器背后的查询。要查看某个示例背后的实际查询,请在应用后查看 History 列表。您也可以在过滤弹出菜单中访问该列表。
查询构建工具
也许编写查询最简单的方法,就是让 Altium Designer 帮您生成!您可以使用 Find Similar Objects 对话框或 Query Builder 对话框来实现。
查找相似对象对话框
当您使用 Find Similar Objects dialog 时,它会生成一个查询来查找所需对象。如果启用了 Create Expression 选项,该查询将显示在 Filter 面板中。这是学习不同查询关键字的极佳方法。
当您在设计文档中右键单击任意未被遮罩(unmasked)的对象,然后从上下文菜单中选择 Find Similar Objects 时,将打开 Find Similar Objects 对话框。
左图:PCB 版本;右图:SCH 版本
此对话框允许你查找与所右键单击对象相似的对象,然后定义该对象的哪些属性在匹配时必须相同(或不同)。假设你想更改设计中的所有 GND 焊盘。你可以在其中一个焊盘上右键单击,选择 Find Similar Objects,然后将 Net 字段从 Any(默认设置)更改为 Same。当你在对话框中单击 Apply 时,所有 GND 焊盘都会被选中。如果启用了 Create Expression 选项,则以下查询将显示在 Filter 面板中:(ObjectKind = 'Pad') And (Net = 'GND').
作为原理图中的示例,你可以将文档内所有具有特定 Text 属性(例如“GND”)的 Power Objects 的 Color 属性更改为相同的值。再例如,在 PCB 中,你可以将文档内所有具有特定 Via Diameter 属性的过孔的 Hole Size 属性更改为相同的值。
清除现有选项
启用 Clear Existing 选项可在应用搜索之前清除任何现有选择或编辑掩膜。如果你正在执行连续搜索并希望结果累积,请禁用此选项。
过滤器工具栏
Filter Toolbar 适用于 PCB 文档,可将文档中除具有指定属性的对象之外的所有对象进行掩膜,或仅保留属于指定元件的对象。工具栏最右侧的字段用于指定查询内容。你可以在该字段中输入查询,也可以使用下拉列表从最近的查询(存在于查询 History 列表中的查询)中选择。通过 Filter Toolbar 应用查询时无法指定使用哪些选项;在所有情况下,都会清除之前的查询,然后对当前查询使用 Mask 和 Zoom 选项。要使用查询选项,请使用 Filter 面板、Query Builder 对话框、Query Helper 对话框或 Find Similar Objects 对话框。
逻辑查询表达式运算符
下面汇总了在使用查询语言定义逻辑查询表达式时可用的运算符。
算术运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
| + | 加法运算符 | NetPinCount + NetViaCount |
| - | 减法运算符 | ArcStopAngle - ArcStartAngle |
| * | 乘法运算符 | PadXSize_BottomLayer * PadYSize_BottomLayer |
| / | 除法运算符 | HoleDiameter / ViaDiameter |
| Div | 整除运算符 | Color Div 65536 此运算将 Color 除以 65536,并丢弃结果的小数部分 |
| Mod | 取模运算符 | Color Mod 256 此运算计算 Color 除以 256 的余数,不计算结果的小数部分 |
逻辑运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
| And | 逻辑与运算符 | IsPad And OnMultiLayer 要被返回,对象必须是焊盘,并且位于 Multi-Layer 层 |
| && | 逻辑与运算符 (优先级较低) |
IsPad && OnMultiLayer 要被返回,对象必须是焊盘,并且位于 Multi-Layer 层 |
| Or | 逻辑或运算符 | IsPad Or IsVia 要被返回,对象必须是焊盘或过孔之一 |
| || | 逻辑或运算符 (优先级较低) |
IsPad || IsVia 要被返回,对象必须是焊盘或过孔之一 |
| Xor | 逻辑异或运算符 | OnMultiLayer Xor (HoleDiameter <> 0) 要被返回,对象要么位于 Multi-Layer 层且其 Hole Diameter 为零,要么不位于 Multi-Layer 层且其 Hole Diameter 不为零。 |
| Not | 逻辑非运算符 | Not OnMultiLayer 要被返回,对象必须不在 Multi-Layer 层 |
比较运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
| < | 小于运算符 | HoleDiameter < 40 要被返回,对象必须具有小于 40 的 Hole Diameter |
| <= | 小于或等于运算符 | HoleDiameter <= 40 要被返回,对象必须具有小于或等于 40 的 Hole Diameter |
| >= | 大于或等于运算符 | HoleDiameter >= 40 要被返回,对象必须具有大于或等于 40 的 Hole Diameter |
| > | 大于运算符 | HoleDiameter > 40 要被返回,对象必须具有大于 40 的 Hole Diameter |
| <> | 不等于运算符 | HoleDiameter <> 40 要被返回,对象必须具有不等于 40 的 Hole Diameter |
| = | 等于运算符 | HoleDiameter = 40 要被返回,对象必须具有等于 40 的 Hole Diameter |
| Between...And... | 闭区间范围运算符 | HoleDiameter Between 30 And 50 要被返回,对象必须具有一个 Hole Diameter,其大于或等于 30,且 小于或等于 50。 |
| Like | Like 运算符 | Name Like 'ADDR?*' 该运算符返回具有 Name 属性的对象,其关联的(文本)字符串以 ADDR 开头,并且 至少还包含一个字符 |
通配符字符
通配符字符允许提供不完全精确指定的字符串。这些字符通常与其他字符结合使用,从而提供部分指定的字符串。少数特殊关键字可以接受不完全精确指定的字符串参数,但在大多数情况下,只有当字符串通过 Like 运算符进行比较时,字符串中才可以包含通配符字符。
| 运算符 | 说明 | 示例 |
|---|---|---|
| ? | 可被任意类型的单个字符替换 | Footprint Like 'DIP1?' 这将返回 Footprint 属性为 DIP10、或 DIP12、或 DIP14 等的对象。 |
| * | 可被任意数量的字符替换,每个字符都可以是任意类型 | Footprint Like 'SIP*' 这将返回 Footprint 属性为 SIP1、或 SIP12、或 SIP216 等的对象。(任何 Footprint 属性为 SIP 的对象也会被返回,因为“*”也可以被替换为 no 个字符) |
布尔字符串
| 运算符 | 说明 | 示例 |
|---|---|---|
| True | 肯定关键字的含义 | IsPad = True 要被返回,对象必须是焊盘 |
| False | 否定关键字的含义 | IsVia = False 要被返回,对象必须不是过孔 |
圆括号与优先级顺序
了解逻辑查询表达式中运算符的优先级顺序是很有必要的。毕竟,如果不了解这些知识,表达式可能无法定位到所需对象。
在为各种运算符定义的优先级顺序中,圆括号具有最高优先级,该顺序决定了软件如何解释查询(当用户未提供圆括号时)。该顺序从高到低如下:
- 圆括号 ()
- Not
- ^, *, /, Div, Mod, And
- +, -, Or, Xor
- =, <>, <, >, <=, >=
- &&, ||
全局系统查询函数

在 Query Helper 对话框中显示的全局系统查询函数
本节详细介绍 Altium Designer 中原理图、PCB 和库文档里可用的查询语言关键字。若需要查看某个特定查询关键字的帮助,请使用下面的可折叠章节,或在 Query Helper、Filter 面板中,或在 PCB 设计规则的 Query 字段中高亮(或点击进入)任意关键字,然后按 F1 以立即跳转到其对应章节。
算术函数
ABS
摘要
返回一个(实数)数值,其值等于参数数值的绝对值。如果该数值为正,则返回值与其相同;否则返回值等于参数数值乘以 -1。
语法
ABS(X : Number / Numeric_String) : Number
示例用法
ABS(2.3)
返回 2.3。
ABS(-7.2)
返回 7.2。
CEIL
摘要
返回一个整数,其值取决于参数数值的性质。如果该数值本身就是精确整数,则返回值与其完全相同;否则返回值为大于该参数数值的最小整数。
语法
CEIL(X : Number / Numeric_String) : Number
示例用法
CEIL(5.0)
返回 5。
CEIL(5.33)
返回 6。
CEIL(-5.0)
返回 -5。
CEIL(-5.33)
返回 -5。
FLOOR
摘要
返回一个整数,其值取决于参数数值的性质。如果该数值本身就是精确整数,则返回值与其完全相同;否则返回值为小于该参数数值的最大整数。
语法
FLOOR(X : Number / Numeric_String) : Number
示例用法
FLOOR(5.0)
返回 5。
FLOOR(5.33)
返回 5。
FLOOR(-5.0)
返回 -5。
FLOOR(-5.33)
返回 -6。
FRAC
摘要
返回一个(实数)数值,其值取决于参数数值的性质:
- 如果该数值为正但不是精确整数,则返回值为参数数值与小于该参数数值的最大整数之间的差值。
- 如果该数值为负但不是精确整数,则返回值为参数数值与大于该参数数值的最小整数之间的差值。
- 如果参数数值为精确整数,则返回值为 0。
语法
FRAC(X : Number / Numeric_String) : Number
示例用法
FRAC(5.0)
返回 0。
FRAC(5.33)
返回 0.33。
FRAC(-5.0)
返回 0。
FRAC(-5.33)
返回 -0.33。
IIF
摘要
这是一种特殊用途的结构,包含三个查询。首先对第一个查询(位于左括号与第一个逗号之间)的值进行求值。如果结果为 True,则返回第二个查询(位于两个逗号之间);否则返回第三个查询(位于第二个逗号与右括号之间)。
语法
IIF(L : Boolean Query , A : Query , B : Query)
L、A 和 B 都是字符串,分别用于指定某个查询;L 需要是一个布尔查询(即返回 True 或 False 的查询)。
示例用法
IsArc And IIF(ArcStopAngle - ArcStartAngle >= 0 , ArcStopAngle - ArcStartAngle Between 30 And 60 , ArcStartAngle - ArcStopAngle Between 300 And 330)
返回所有弧对象:其弧长大于或等于 30 度且小于或等于 60 度。(弧的 Arc Length 属性是一个角度,通过用 Stop Angle 属性减去 Start Angle 属性得到。一个复杂情况是弧的 Stop Angle 可能小于 Start Angle,但该查询能对所有可能的弧对象正确计算真实的弧长属性。)
IsComponent And IIF(Layer = 'Top Layer' , Rotation <> 0 , Rotation <> 180)
返回所有位于 PCB 顶层且 Rotation 属性不为 0 度的元件,以及所有位于 PCB 底层且 Rotation 属性不为 180 度的元件。(元件对象只能位于 Top 信号层或 Bottom 信号层,因此任何不在 Top 信号层的元件必然在 Bottom 信号层。)
INT
摘要
返回一个整数,其值取决于参数数值的性质:
- 如果该数值为正但不是精确整数,则返回值为小于该参数数值的最大整数。
- 如果该数值为负但不是精确整数,则返回值为大于该参数数值的最小整数。
- 如果该数值为精确整数,则返回值与其完全相同。
语法
INT(X : Number / Numeric_String) : Number
示例用法
INT(5.0)
返回 5。
INT(5.33)
返回 5。
INT(-5.0)
返回 -5。
INT(-5.33)
返回 -5。
提示
这是 TRUNC 算术函数的别名。
MAX
摘要
返回一个(实数)数值,其值等于所提供全部参数中的最大值。每个参数必须是数字或数字字符串,并且可提供任意数量的参数。
语法
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
示例用法
MAX(2)
返回 2。
MAX(7,2,3)
返回 7。
提示
至少必须提供一个参数。
MIN
摘要
返回一个(实数)数值,其值等于所提供全部参数中的最小值。每个参数必须是数字或数字字符串,并且可提供任意数量的参数。
语法
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
示例用法
MIN(2)
返回 2。
MIN(7,2,3)
返回 2。
提示
至少必须提供一个参数。
POWER
摘要
返回一个(实数)数值,其值等于第一个参数的数值以第二个参数的数值为指数进行幂运算的结果。
语法
POWER(X : Number / Numeric_String , Y : Number / Numeric_String) : Number
示例用法
POWER(3,2)
返回 9。
POWER(32,0.2)
返回 2。
POWER(16,-0.5)
返回 0.25。
ROUND
摘要
返回一个整数,其值取决于参数数值的性质:
- 如果该数值为精确整数,则返回值与其完全相同。
- 如果该数值不是精确整数,则返回与参数数值最接近的整数。恰好位于相邻整数正中间的正数会向上舍入upwards,而恰好位于相邻整数正中间的负数会向下舍入downwards。
语法
ROUND(X : Number / Numeric_String) : Number
示例用法
ROUND(5.0)
返回 5。
ROUND(5.33)
返回 5。
ROUND(5.5)
返回 6(向上舍入)。
ROUND(5.66)
返回 6。
ROUND(-5.0)
返回 -5。
ROUND(-5.33)
返回 -5。
ROUND(-5.5)
返回 -6(向下舍入)。
ROUND(-5.66)
返回 -6。
SIGN
摘要
返回所提供参数的符号值。也就是说,它返回一个整数,其值取决于参数数值的性质:
- 如果该数值为正,则返回 1。
- 如果该数值为负,则返回 -1。
- 如果该数值恰好为 0,则返回 0。
语法
SIGN(X : Number / Numeric_String) : Number
示例用法
SIGN(5.33)
返回 1。
SIGN(-5.33)
返回 -1。
SIGN(0)
返回 0。
SQR
摘要
返回一个(实数)数值,其值等于参数数值的平方。
语法
SQR(X : Number / Numeric_String) : Number
示例用法
SQR(2)
返回 4。
SQR(14.1)
返回 198.81。
SQR(-1.5)
返回 2.25。
SQRT
摘要
返回一个(实数)数值,其值等于参数数值的(正)平方根。
语法
SQRT(X : Number / Numeric_String) : Number
示例用法
SQRT(4)
返回 2。
SQRT(10)
返回 3.1623。
TRUNC
摘要
返回一个整数,其值取决于参数数值的性质:
- 如果该数值为正但不是精确整数,则返回小于该参数数值的最大整数。
- 如果该数值为负但不是精确整数,则返回大于该参数数值的最小整数。
- 如果该数值是精确整数,则返回的数值与其完全相同。
语法
TRUNC(X : Number / Numeric_String) : Number
示例用法
TRUNC(5.0)
返回 5。
TRUNC(5.33)
返回 5。
TRUNC(-5.0)
返回 -5。
TRUNC(-5.33)
返回 -5。
提示
这是 INT 算术函数的别名。
ZERO
摘要
返回一个整数,其值为 0 或 1,取决于参数的数值。如果该数值为 0,则返回 0;否则返回 1。
语法
ZERO(X : Number / Numeric_String) : Number
示例用法
ZERO(5.33)
返回 1。
ZERO(-5.33)
返回 1。
ZERO(0)
返回 0。
三角函数
ACOS
摘要
返回一个(实)数,其值等于参数数值所指定的数的反余弦角;该角度单位为弧度(而非度)。
语法
ACOS(X : Number / Numeric_String) : Number
示例用法
ACOS(0)
返回 1.5708。
ACOS(0.5)
返回 1.0472。
ACOS(1)
返回 0。
ASIN
摘要
返回一个(实)数,其值等于参数数值所指定的数的反正弦角;该角度单位为弧度(而非度)。
语法
ASIN(X : Number / Numeric_String) : Number
示例用法
ASIN(0)
返回 0。
ASIN(0.5)
返回 0.5236。
ASIN(1)
返回 1.5708。
ATAN
摘要
返回一个(实)数,其值等于参数数值所指定的数的反正切角;该角度单位为弧度(而非度)。
语法
ATAN(X : Number / Numeric_String) : Number
示例用法
ATAN(0)
返回 0。
ATAN(1)
返回 0.7854。
ATAN(2.5)
返回 1.1903。
COS
摘要
返回一个(实)数,其值等于参数数值所指定角度的余弦;该角度单位为弧度(而非度)。
语法
COS(X : Number / Numeric_String) : Number
示例用法
COS(0)
返回 1。
COS(0.8)
返回 0.6967。
COS(1.57)
返回 0.0008。
COSH
摘要
返回一个(实)数,其值等于参数数值的双曲余弦。
语法
COSH(X : Number / Numeric_String) : Number
示例用法
COSH(TextHeight / TextWidth) < 70.5
返回对象:其 TextHeight 距离与 TextWidth 距离之比的双曲余弦小于 70.5。(这等价于返回对象:其 TextHeight 距离与 TextWidth 距离之比小于 4.9487)。
(TextHeight / TextWidth) >= COSH(2.3)
返回对象:其 TextHeight 距离与 TextWidth 距离之比等于或大于 2.3 的双曲余弦(即 5.0372)。
COTAN
摘要
返回一个(实)数,其值等于参数数值所指定角度的余切;该角度单位为弧度(而非度)。
语法
COTAN(X : Number / Numeric_String) : Number
示例用法
COTAN(0.1)
返回 9.9666。
COTAN(0.8)
返回 0.9712。
COTAN(1.57)
返回 0.0008。
SIN
摘要
返回一个(实)数,其值等于参数数值所指定角度的正弦;该角度单位为弧度(而非度)。
语法
SIN(X : Number / Numeric_String) : Number
示例用法
SIN(0)
返回 0。
SIN(0.8)
返回 0.7174。
SIN(1.57)
返回 1.0。
SINH
摘要
返回一个(实)数,其值等于参数数值的双曲正弦。
语法
SINH(X : Number / Numeric_String) : Number
示例用法
SINH(TextWidth / TextHeight) < 0.17
返回对象:其 TextWidth 距离与 TextHeight 距离之比的双曲正弦小于 0.17。(这等价于返回对象:其 TextWidth 距离与 TextHeight 距离之比小于 0.1692)。
(TextWidth / TextHeight) >= SINH(0.2)
返回对象:其 TextWidth 距离与 TextHeight 距离之比等于或大于 0.2 的双曲正弦(即 0.2013)。
TAN
摘要
返回一个(实)数,其值等于参数数值所指定角度的正切;该角度单位为弧度(而非度)。
语法
TAN(X : Number / Numeric_String) : Number)
示例用法
TAN(0)
返回 0。
TAN(0.8)
返回 1.0296。
TAN(1.57)
返回 1255.7656。
TANH
摘要
返回一个(实)数,其值等于参数数值的双曲正切。
语法
TANH(X : Number / Numeric_String) : Number
示例用法
TANH(TextWidth / TextHeight) < 0.17
返回对象:其 TextWidth 距离与 TextHeight 距离之比的双曲正切小于 0.17。(这等价于返回对象:其 TextWidth 距离与 TextHeight 距离之比小于 0.1717)。
(TextWidth / TextHeight) >= TANH(0.2)
返回对象:其 TextWidth 距离与 TextHeight 距离之比等于或大于 0.2 的双曲正切(即 0.1974)。
指数与对数函数
EXP
摘要
返回一个(实)数,其值等于 e 的参数数值次幂。(数 e 是自然对数的底,约等于 2.7183)。
语法
EXP(X : Number / Numeric_String) : Number
示例用法
EXP(0)
返回 1。
EXP(1)
返回 2.7183。
LG
摘要
返回一个(实)数,其值等于参数数值的以 10 为底的对数。
语法
LG(X : Number / Numeric_String) : Number
示例用法
LG(1)
返回 0。
LG(10)
返回 1。
LG(25)
返回 1.3979。
LN
摘要
返回一个(实)数,其值等于参数数值的自然对数(或以 e 为底的对数)。(数 e 是 2.7183)。
语法
LN(X : Number / Numeric_String) : Number
示例用法
LN(1)
返回 0。
LN(2)
返回 0.6931。
LN(10)
返回 2.3026。
LOG
摘要
返回一个(实)数,其值等于参数数值的以 2 为底的对数。
语法
LOG(X : Number / Numeric_String) : Number
示例用法
LOG(1)
返回 0。
LOG(2)
返回 1。
LOG(8)
返回 3。
LOG(10)
返回 3.3219。
聚合函数
AVG
摘要
返回一个(实)数,其值等于所提供全部参数的平均值。每个参数必须是数字或数字字符串,并且可提供任意数量的参数。
语法
AVG(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
示例用法
AVG(2)
返回 2。
AVG(7,2,3)
返回 4。
提示
- 必须至少提供一个参数。
MAX
摘要
返回一个(实)数,其值等于所提供全部参数中的最大值。每个参数必须是数字或数字字符串,并且可提供任意数量的参数。
语法
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
示例用法
MAX(2)
返回 2。
MAX(7,2,3)
返回 7。
提示
必须至少提供一个参数。
MIN
摘要
返回一个(实数)数值,其值等于所提供的所有参数中的最小值。每个参数必须是数字或数字字符串,并且可以提供任意数量的参数。
语法
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
使用示例
MIN(2)
返回 2。
MIN(7,2,3)
返回 2。
提示
必须至少提供一个参数。
PROD
摘要
返回一个(实数)数值,其值等于所提供的所有参数的乘积。每个参数必须是数字或数字字符串,并且可以提供任意数量的参数。
语法
PROD(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
使用示例
PROD(2)
返回 2。
PROD(7,2,3)
返回 42。
提示
必须至少提供一个参数。
SUM
摘要
返回一个(实数)数值,其值等于所提供的所有参数之和。每个参数必须是数字或数字字符串,并且可以提供任意数量的参数。
语法
SUM(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
使用示例
SUM(2)
返回 2。
SUM(7,2,3)
返回 12。
提示
必须至少提供一个参数。
系统函数
Copy
摘要
返回字符串的子串。可以指定返回的子串包含多少个字符,以及在字符串中从哪个位置开始作为返回子串的第一个字符。
语法
Copy(S : String , Index : Integer , Count : Integer) : String
S为字符串类型表达式。Index 和Count为整数类型表达式。Copy返回一个子串,包含从S[Index]开始的Count个字符。
如果Index 大于S的长度,Copy将返回空字符串。
如果Count指定的字符数超过可用字符数,则仅返回从 S[Index] 到S末尾的字符。
使用示例
Copy('Cats and dogs',1,1)
返回 'C'。(从字符串的第 1 个位置返回 1 个字符)。
Copy('Cats and dogs',2,1)
返回 'a'。(从字符串的第 2 个位置返回 1 个字符)。
Copy('Cats and dogs',13,1)
返回 's'。(从字符串的第 13 个位置返回 1 个字符)。
Copy('Cats and dogs',14,1)
返回 ''(空字符串)。(从字符串的第 14 个位置返回 1 个字符;但字符串只有 13 个字符,因此返回空字符串)。
Copy('Cats and dogs',1,2)
返回 'Ca'。(从字符串的第 1 个位置开始返回 2 个字符)。
Copy('Cats and dogs',2,2)
返回 'at'。(从字符串的第 2 个位置开始返回 2 个字符)。
Copy('Cats and dogs',12,2)
返回 'gs'。(从字符串的第 12 个位置开始返回 2 个字符)。
Copy('Cats and dogs',13,2)
返回 's'。(从字符串的第 13 个位置开始返回 2 个字符;但字符串只有 13 个字符,因此只返回 1 个字符)。
Copy('Cats and dogs',15,2)
返回 ''(空字符串)。(从字符串的第 15 个位置开始返回 2 个字符;但字符串只有 13 个字符,因此返回空字符串)。
Copy('Cats and dogs',1,6)
返回 'Cats a'。(从字符串的第 1 个位置开始返回 6 个字符)。
Copy('Cats and dogs',5,9)
返回 ' and dogs'。(从字符串的第 5 个位置开始返回 9 个字符)。
Copy('Cats and dogs',8,5)
返回 'd dog'。(从字符串的第 8 个位置开始返回 5 个字符)。
Copy('Cats and dogs',8,6)
返回 'd dogs'。(从字符串的第 8 个位置开始返回 6 个字符)。
Copy('Cats and dogs',8,7)
返回 'd dogs'。(从字符串的第 8 个位置开始返回 7 个字符;但字符串只有 13 个字符,因此只返回 6 个字符)。
Length
摘要
返回字符串中包含的字符数。
语法
Length(S : String) : Integer
S为要返回其字符数的字符串。
使用示例
Length(Name) Between 4 And 7
返回 Name 属性所包含的字符数在 4 到 7 之间的所有对象。
Length('Cat')
返回 3。
Length('Darryll')
返回 7。
Length('Cats and dogs')
返回 13。
Length('')
返回 0。
Pos
摘要
返回给定字符串中首次出现的指定子串的首字符索引值。
语法
Pos(Substr : String , S : String) : Integer
Pos在字符串S中搜索子串Substr。Substr和S为字符串类型表达式。返回一个整数值,表示Substr的第一个字符的索引。
使用示例
Pos('T',Name) = 1
返回所有具有Name 属性且其关联字符串第一次在第 1 个位置包含 'T' 的对象;'T1' 和 'Time Table' 是此类字符串的示例。(字符串 'Time Table' 中 'T' 出现了两次,但第一次出现的位置在第 1 个字符处。)
Pos('A',Name) = 2
返回所有具有Name 属性且其关联字符串第一次在第 2 个位置包含 'A' 的对象;'RA1' 和 'CABLE CHART' 是此类字符串的示例。
Pos('B',Name) = 0
返回所有具有Name 属性且其关联字符串在任何位置都不包含 'B' 的对象;'D1' 和 'Time Table' 是此类字符串的示例。('Time Table' 的第 8 个位置包含 'b',但 Pos 区分大小写。)
Pos('D',Name) > 0
返回所有具有Name 属性且其关联字符串在至少一个位置(任意位置)包含 'D' 的对象;'Data Chart'、'U1D' 以及 'Install either D1 and D2 or D3 and D4, but never install all of these.' 是此类字符串的示例。
Pos('Con',Name) = 1
返回所有具有Name 属性且其关联字符串第一次在第 1、2、3 个位置包含 'Con' 的对象;'Concatenate' 是此类字符串的示例。('Concatenate' 中 'Con' 第一次出现的位置是其前三个字符;'Con' 的第一个字符是 'C',其位置是 'Concatenate' 的第一个字符。)
Pos('ate',Name) = 5
返回所有具有Name 属性且其关联字符串第一次在第 5、6、7 个位置包含 'ate' 的对象;'Concatenate' 是此类字符串的示例。('Concatenate' 中 'ate' 第一次出现的位置是第 5 到第 7 个字符;'ate' 的第一个字符是 'a',其位置是 'Concatenate' 的第 5 个字符。)
Pos('ate',Name) = 0
返回所有具有Name 属性且其关联字符串中任何位置都不包含 'ate' 的对象;'C1' 和 'TIME:' 是此类字符串的示例。
Pred
摘要
返回一个(实数)数值,其值等于参数的数值减去 1.0。
语法
Pred(X : Number / Numeric_String) : Number
使用示例
Pred(4.1)
返回 3.1。
Pred(41.313)
返回 40.313。
Random
摘要
返回一个介于 0 和 X-1 之间的随机数。
语法
Random(X) : Number
使用示例
Random(10)
返回一个介于 0 和 9 之间的值。
Random(100)
返回一个介于 0 和 99 之间的值。
Succ
摘要
返回一个(实数)数值,其值等于参数的数值加上 1.0。
语法
Succ(X : Number / Numeric_String) : Number
使用示例
Succ(2.1)
返回 3.1。
Succ(41.313)
返回 42.313。