EDA365电子论坛网

标题: Altium Designer Query语句的编写及检测教程 [打印本页]

作者: baqiao    时间: 2020-9-16 17:13
标题: Altium Designer Query语句的编写及检测教程

  i2 ?& Y$ u$ Y% t, i在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
: R; `! r% C4 n1 k1.编写Query语句
6 F" R$ C- O& \$ a, y6 ~在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。5 q8 j9 z8 d" B3 d  J* p
) d& j8 w, [) _

. \( R% t2 |9 _! m! i创建Query语句3 Z( B, w' ]( Z
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
2 E' t2 ]0 c1 ~4 `# X1 L( o0 ]) `9 t4 o1.1. 使用Query Builder构建查询语句' P- W$ u4 f2 d2 c) f  X
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。! X9 {% r9 k2 K( o0 p8 Z

; m$ O& c2 g& S' U- c- B/ ?9 U7 M$ [3 p  ~* V. u$ L7 B) z

  n+ O6 t1 f8 S; E
* D1 Q& v+ T0 t使用Query Builder创建查询表达式
4 x$ L. X# x- ^; V1 k& a; M4 t! W3 N该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
4 J3 u' V  x2 S; `1.2.使用Query Helper构建高级查询语句
5 O. O$ [1 n- N! V点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。0 L; t- f) n0 H' \/ A
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。/ C' |! }0 f- K& F  {
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
9 f9 k" U. E! x
$ O* N7 k* R. [) Y+ f5 N+ r! m
# w+ d" X  o5 q+ F, }% L: g7 x5 _2 {* q' u+ K& J4 c1 `  U1 |
使用Query Helper编写更复杂的查询表达式
: W( p- Y  Z) j" ?2 M该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。( l* |8 f7 v) |  k, [, F5 R1 K
1.3. 使用PCB Filter 面板创建设计规则
3 |4 l+ ?3 j, h( P创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
, s6 N1 N5 b2 F  z* A  z
- G# \/ B+ w" W9 n$ q4 C
) ^2 |% b, c3 j% J1 I# j9 B4 a/ p$ | / {/ h! {+ X( S4 s  c$ c9 ]/ v
' B9 d: m. [" g1 s
利用Find Similar Objects 创建查询语句
3 r% y& F* a' J0 ^0 k0 O
0 R" W* \" i) R& F! g0 p: \. b  I

9 ]  f4 i" s6 B5 z* D
, {, Z# @9 n: n* C7 R' R  MPCB Filter面板
% O+ V+ l4 A& Y' c+ }+ `. @, R- U1 A& G: R
9 O2 q% d. \( J' t2 u: P

4 l  ]* n( E# H3 m5 u4 N8 S# b 6 N# d! m. J# V2 ^1 n

$ s! h5 C$ f$ n/ l8 W+ W选择要创建的设计规则的类型
3 A# H1 Y0 x5 a* Q+ u) |" R7 S

1 `. X! v. X2 ^) b7 l( \+ C, b, O
+ T7 Q/ [% t1 M' c$ n生成设计规则
( w4 o" f' s) a8 R9 [
1 a2 U' d2 T0 q* [. q+ p5 _1 X2. 检测Query语句, G1 p1 s* P- m
在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。0 X: O! z: F0 ~! F" S2 A* I3 k; s
2.1. 使用Test Queries检测查询语句" D8 D7 P; [* S6 h4 s; c/ B
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
8 u5 c: P2 X  ?1 J) n1 K" ]" A在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。0 n, V  @6 ~. a( d0 j% [- K

& e( m+ U2 h! \3 C1 w6 `
4 ?$ {! q% T  K 6 ~8 x7 w, f3 j) r$ M/ s2 K

9 h" T1 K% @: s! H3 @1 V0 W检查当前查询语句应用到的对象( [% n8 Q2 ~& I" I
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
' E& o0 v: ^* e) @2 A% d8 n2.2. 在PCB Filter中检测
4 G  B& t9 b2 J) k9 Y! L还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。' H' q& B% R$ J' s. L; _
3. 用Query语句创建规则的实例( e+ ~% O' ^8 z( W2 M
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
' H* K: ~! ~: d4 }0 ~- _创建Room,并为其命名。
4 ^2 j- A, [# m7 r* v: Y6 i% o
8 A) C$ n( Q! f% a  L" A选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。9 X$ P3 h. |# t* c
$ ^. N& r4 t  W  D' A' M
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:' x- b2 V4 }- N& w

5 V- W8 [% n- c) ]; U# ~/ |
2 {' Q! B9 C; e1 J7 `
0 O! G% y2 W( s9 ]/ {# a) M9 b& P% l9 Z0 c) c, ?

0 f& V5 N) i4 S! O
4 g6 a" m) ]+ b
: p5 B( |9 a( W9 F3 X& W' ]$ L
( D- o' t+ @1 g6 ]2 k" O ! A0 \& W+ Q* G3 Z

, O7 o0 Y( I' P" q/ XCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  
' [' D2 t9 \& m" j
! I- @& b" l, r5 |9 q; x1 x% a3 ]0 e" S8 B: Y& v, g( P7 D! b

作者: hope123    时间: 2020-9-16 17:48
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。1 N0 [6 k1 q" k$ ] 对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。 对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。  
作者: bsozh2009    时间: 2020-9-19 16:43
很有用,谢谢
作者: xy201707004    时间: 2021-2-19 10:04
学习学习,非常感谢!
作者: yxxl    时间: 2021-6-9 10:05
谢谢分享1
作者: xiaogegepcb    时间: 2021-6-10 18:27
Altium Designer Query语句的编写及检测教程
作者: meizhi_ym    时间: 2022-1-2 17:14
感谢分享
' E; u, z& V4 VAltium Designer Query语句的编写及检测教程




欢迎光临 EDA365电子论坛网 (https://eda365.com/) Powered by Discuz! X3.2