JNH官网

【Altium】AD-规则查询语句设置

一、文档背景

在Altium Designer中, 设计规则通常用来定义用户的设计需求。 这些规则涵盖了设计的方方面面, 从布线宽度, 对象的安全间距,内电层的连接风格, 过孔风格等等。 设计规则不仅能在PCB设计的过程中实时检测, 而且也能够在需要的时候进行统一的批量检测并生成错误报告。

Altium Designer的设计规则不是PCB对象的属性, 而是独立定义的。 每条规则需针对具体的PCB对象。对于PCB规则系统来说,它必须知道给定的规则应用于哪些对象,即规则的应用范围。可以在PCB规则约束管理器对话框中设定规则及规则的范围。其中采用撰写查询语句的方式来定义范围是经常需要用到的,并且非常重要的方式方法。

查询语句(Query)是对规则应用对象的描述。设计规则的约束对象可以直接手动输入查询语句, 或是在语言编辑区左侧的控制区选择,或者是采用查询语句构造器来定义。


二、 查询语句含义

查询语句实际上是软件的一条指令,定义了一系列的目标设计对象。查询语句由查询的关键字组成。下面是一个查询语句的示例: InNet(‘GND‘) And OnLayer(‘TopLayer‘);

如果在宽度规则中用该查询语句定义范围,那么设计者在切换到顶层对GND网络布线时,走线的宽度会自动转换到该规则指定的宽度值。如果执行设计规则检查(DRC),任何在顶层的GND网络必须满足这个宽度规则,否则就会被标记为违反设计规则。

使用PCB规则约束编辑器( PCB Rules and Constraints Editor)对话框中的选项可以创建查询语句。根据规则是一元的还是二元的,用户可能需要相应地定义一个或两个对象范围。在PCB规则约束编辑器中,简单的查询语句有如下几种类型的范围选项。

● 所有的的设计对象

● 指定网络中的所有对象

● 指定网络类中的所有对象

● 指定层上的所有对象

● 指定层上且属于指定网络的所有对象



高级查询(Custom Query)选项允许设计者撰写自己的更复杂但更为精确的查询语句。设计者可以在语句编写区域直接输入规则范围的定制查询语句。有两个工具(Query Builder和Query Helper)可帮助创建高级查询语句。当不确定查询语句的语法或者需要使用的关键字,这两个工具就会相当有用。




三、 三种规则语句设置

1、点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。

对话框的Query区域用来生成查询表达式。JNH官网可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。



数学运算符代表的含义:

(1)、算数运算符

操作符描述例子
+加法运算NetPinCount + NetViaCount
-减法运算ArcStopAngle - ArcStartAngle
*乘法运算PadXSize_BottomLayer * PadYSize_BottomLayer
/除法运算HoleDiameter / ViaDiameter
Div整除运算Color Div 65536
这将计算Color除以65536,结果的小数部分将被丢弃
Mod模数运算Color Mod 256
这将计算Color除以256时的余数,而不确定结果的小数部分

(2)、逻辑运算符

运算符描述例子
AndIsPad And OnMultiLayer
对象必须是一个PAD而且要位于MultiLayer层上
&&
(低优先级)
IsPad && OnMultiLayer
对象必须是一个PAD而且要位于MultiLayer层上
OrIsPad Or IsVia
对象要么是pad要么是via
||
(低优先级)
IsPad || IsVia
对象要么是pad要么是via
Xor异或OnMultiLayer Xor (HoleDiameter <> 0)
对象是位于MultiLayer且孔径为0或者不在MultiLayer且孔径不为0
NotNot OnMultiLayer
不在MultiLayer层的对象

(3)、比较运算符

运算符描述例子
<小于HoleDiameter < 40
孔直径小于40的对象
<=小于或等于HoleDiameter <= 40
孔直径小于或等于40的对象
>=大于或等于HoleDiameter >= 40
孔直径大于或等于 40的对象
>大于HoleDiameter > 40
孔直径大于40的对象
<>不等于HoleDiameter <> 40
孔直径不等于40的对象
=等于HoleDiameter = 40
孔直径等于40的对象
Between...And...包括范围HoleDiameter Between 30 And 50
孔径大于等于30,小于等于50的对象
LikeLike 关联Name Like 'ADDR?*'
具有Name属性的对象其关联的(文本)字符串以ADDR开头,并且至少包含一个以上的字符

(4)、通配符

OPERATORDESCRIPTIONEXAMPLE
?这个可以用任意类型代替的单个字符Footprint Like 'DIP1?'
具有DIP11、12、14、15等封装属性的对象
*这可以用任意数量的字符替换每个字符可以是任何类型Footprint Like 'SIP*'
具有SIP1、SIP12或SIP216等Footprint属性的对象(任何具有SIP Footprint属性的对象)

2、使用Query Builder构建查询语句

Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击“查询构建器”(Query Builder)按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如下图所示,可以添加多个条件进一步限制目标对象



3、使用PCB Filter 面板创建设计规则

创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用查找相似对象对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用创建按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:

在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择”查找相似对象“命令,打开查找相似对象对话框。在该对话框中,将目标对象具有的相同元素设置为”Same “(例如PCB封装相同,则将Footprint设置为Same),勾选”创建表达式“对话框,设置如下图所示。


此时可以点击” 应用“按钮, 查看目标对象是否都被选中。如果JNH官网需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击”确定“按钮,此时已经打开的PCB Filter面板的”过滤器“区域出现了查找相似对象 对话框产生的查询表达式。如下图所示:



此时勾选面板上的”选择“复选框,然后点击”全部应用“按钮,将会选中PCB板上所有要查询的设计对象。在确保查找对象的范围没有问题后,可以将”过滤器“中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:点击”过滤器“对话框上的”创建规则“按钮,然后在弹出的选择设计规则类型对话框中选择要创建的规则类型;



这将打开PCB 规则及约束编辑器窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。


4、检测Query语句

在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。测试语句功能可以测试查询语句,验证查询表达式是否定位到正确的对象。在设计规则界面点击窗口右上角的”测试语句“按钮,打开测试查询结果窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。



四、讨论分析

Query Helper和Query Builder是Altium Designer中用于构建查询语句的两个工具,它们各有优缺点:

Query Helper

优点:

1. 高级查询支持:Query Helper提供了一个对话框,允许用户使用PCB Functions、PCB Object Lists和System Functions来构建复杂的查询表达式。

2. 语法检查:提供了Check Syntax按钮,用于验证查询表达式的语法是否正确。

3. 详细文档支持:对于每个关键字,提供了简短的描述,并且可以通过按F1键访问在线帮助文档,获取更多关于如何使用该关键字的信息。

4. 关键字搜索:通过Mask字段,可以快速搜索相关的关键字,这在不确定确切关键字时非常有用。


缺点:

1. 复杂性:对于初学者来说,可能需要一定的学习曲线来熟悉如何使用Query Helper构建复杂的查询语句。

2. 手动输入:需要用户手动输入查询语句,这可能会增加出错的机会,尤其是在不熟悉查询语法的情况下。

Query Builder


优点:

1. 用户友好:Query Builder提供了一个图形界面,通过下拉列表选择测试条件,适合不太熟悉查询语法的用户。

2. 自动生成查询:QueryBuilder对话框可以帮助用户自动生成与指定条件相对应的查询,简化了查询构建过程。

3. 直观操作:用户可以通过直观的界面添加和组合条件,构建由AND和OR逻辑字符串构成的查询表达式。


缺点:

1. 限制性:QueryBuilder主要使用相关的“构建块”来构建查询,可能不如Query Helper那样灵活,无法构建非常复杂的查询语句。

2. 缺少高级功能:对于需要精确控制查询语法和关键字的高级用户来说,QueryBuilder可能不够用。

总的来说,Query Helper适合那些需要构建复杂查询并且熟悉查询语法的用户,而Query Builder则更适合初学者或者需要快速构建简单查询的用户。两者可以根据不同的需求和场景选择使用。

使用PCB Filter 面板创建设计规则


优点:

1. 精确选择和编辑:PCB Filter面板通过逻辑查询提供精确选择和编辑多个对象的能力,这对于复杂的PCB设计尤其有用。

2. 用户友好的界面:面板提供了直观的界面,使得用户可以快速构建简单的过滤表达式,针对任何组合的对象。

3. 动态查询构建:随着用户在面板中进行过滤选择,查询表达式会动态构建并显示在面板中,使得用户可以实时看到过滤结果。

4. 视觉过滤效果:面板提供了不同的视觉过滤效果,如Normal、Mask和Dim,帮助用户在工作区中区分过滤和未过滤的对象。

5. 辅助工具:PCB Filter面板提供了Query Helper和Query Builder工具,帮助用户构建查询语句,尤其是对于不熟悉查询语法的用户。

6. 设计规则创建:面板还提供了创建设计规则的功能,其范围将使用面板中定义的查询表达式。

7. 灵活性:用户可以有效地应用新的过滤查询来构建在之前过滤结果的基础上,增加了设计的灵活性。


缺点:

1. 学习曲线:对于初学者来说,PCB Filter面板可能需要一定的学习曲线,尤其是当涉及到复杂的查询语句构建时。

2. 性能影响:在处理大型或复杂的PCB设计时,应用复杂的过滤规则可能会对软件性能产生一定影响,尤其是在计算机配置较低的情况下。

3. 忽略错误:在某些情况下,如DRC(设计规则检查)时可能会忽略那些没有放好的器件,如果设计规则设置不当,可能会导致设计中的问题被遗漏。


五、结论

Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性。

jnh官网 jnh官网 jnh官网 jnh官网 金年会 金年会 金年会 金年会