电子产业一站式赋能平台

PCB联盟网

搜索
查看: 22899|回复: 68
收起左侧

[PCB技术] Altium Designer 高级规则 Query语句的编写及检测

  [复制链接]

2851

主题

4614

帖子

2万

积分

官网认证

Rank: 3Rank: 3

积分
25789

活跃会员热心会员推广达人优秀版主

发表于 2020-10-15 12:13:10 | 显示全部楼层 |阅读模式
Altium designer 高级规则 Query语句的编写及检测
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
1.编写Query语句
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
创建Query语句
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
1.1. 使用Query Builder构建查询语句
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
使用Query Builder创建查询表达式
该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
1.2.使用Query Helper构建高级查询语句
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析pcb设计,列出所有可用的对象,以及所有查询关键字。
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
使用Query Helper编写更复杂的查询表达式
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
1.3. 使用PCB Filter 面板创建设计规则
创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。

利用Find Similar Objects 创建查询语句
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:

PCB Filter面板
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:

  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;

选择要创建的设计规则的类型
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。

生成设计规则
2. 检测Query语句
在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
2.1. 使用Test Queries检测查询语句
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
检查当前查询语句应用到的对象
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
2.2. 在PCB Filter中检测
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
3. 用Query语句创建规则的实例
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
  • 创建Room,并为其命名。
    游客,如果您要查看本帖隐藏内容请回复

该会员没有填写今日想说内容.
回复

使用道具 举报

13

主题

172

帖子

924

积分

二级会员

Rank: 2

积分
924
发表于 2020-10-15 22:47:49 | 显示全部楼层
支持一下,厉害了老师
回复 支持 反对

使用道具 举报

3

主题

1635

帖子

5615

积分

四级会员

Rank: 4

积分
5615
发表于 2020-10-16 19:30:37 | 显示全部楼层
学到了,。。。。。
回复 支持 反对

使用道具 举报

0

主题

11

帖子

69

积分

一级会员

Rank: 1

积分
69
发表于 2020-11-4 16:54:42 | 显示全部楼层
学习一下学习一下
回复 支持 反对

使用道具 举报

15

主题

351

帖子

1831

积分

三级会员

Rank: 3Rank: 3

积分
1831
发表于 2020-11-11 17:04:02 | 显示全部楼层
支持一下,厉害了老师
静坐常思已过,闲谈莫论人非。
回复 支持 反对

使用道具 举报

0

主题

75

帖子

343

积分

一级会员

Rank: 1

积分
343
发表于 2020-12-13 18:17:06 | 显示全部楼层
规则设置来学习了,多谢。整理学习了。
回复 支持 反对

使用道具 举报

2

主题

162

帖子

808

积分

二级会员

Rank: 2

积分
808
发表于 2020-12-22 18:09:10 | 显示全部楼层
了解一下!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

7

主题

127

帖子

704

积分

二级会员

Rank: 2

积分
704
发表于 2020-12-24 15:19:48 | 显示全部楼层
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
回复 支持 反对

使用道具 举报

0

主题

84

帖子

421

积分

一级会员

Rank: 1

积分
421
发表于 2020-12-24 21:54:20 | 显示全部楼层
我来看卡啊
回复 支持 反对

使用道具 举报

0

主题

66

帖子

214

积分

一级会员

Rank: 1

积分
214
发表于 2021-1-5 21:20:06 | 显示全部楼层
学习相关内容
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表