EDA365电子论坛网

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

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

" Y" `4 y& L( e在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。0 i1 Y- N3 i( Z5 q: X9 x# N
1.编写Query语句
; K8 `0 U3 Y0 B5 V2 A在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。* `: v! n  `! {; ^. s* Y1 e

7 H* Y5 W/ j8 {! q+ K; Q
2 Y, Q1 i% k9 q5 v- `/ d6 M) J% S) p创建Query语句
7 u1 s7 O: }) W9 X- b当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
2 J# I' v$ w% k6 r* V1.1. 使用Query Builder构建查询语句
1 E6 u8 ^( b$ @+ JQuery Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
9 J, e% |: i6 k6 Y
& |& N4 O. k: d& ^1 G  t3 _& @7 [* f0 y/ R& a. C1 L5 k0 E5 C9 ]
  I. Z7 o, }1 k  ~
/ x  Q4 _" X1 [# ~
使用Query Builder创建查询表达式" h- D& U: B# C5 j0 S4 \$ }
该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
; j) h( @* Q" R! j7 o  p: \1 x1.2.使用Query Helper构建高级查询语句5 s" ]4 y( G0 B3 z
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。
* O" C' }# p) w  p; }对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
  c0 Q( W- J, s对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
" n) l. K8 x. @+ w  I# X* v' f: g: l" l( n& F+ R  Q

. A6 A1 @1 k4 O' p. t) h, H$ I
使用Query Helper编写更复杂的查询表达式% v5 F; h2 u9 i7 m9 ]
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
! G9 ]% H; ^: T8 z1.3. 使用PCB Filter 面板创建设计规则
& @6 S: R3 R  P创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
: m! Q/ o; _' L* o$ E$ ~# p5 f; p9 H. u" b# v3 V( w

& u1 Q0 I  d0 Z7 U0 K2 O) v, [7 u 3 S$ v! E5 t& h) v. ^3 Y9 F

6 U0 P/ G/ R" {% `* m利用Find Similar Objects 创建查询语句1 V0 @# u2 e! a
% u3 ]# L* b) Q% i

. p# |" M! }+ s$ n3 V. k
6 w/ l( Q6 M) u& n
; l. s7 c7 L! D# w5 ]' pPCB Filter面板
# z# ~# |/ j: v
" P' S& L- ^+ t( i, B7 L
) a8 J+ y3 |7 d. Y# ~) h% {
- E# K, w* z, l7 W3 z( [4 W 2 R0 ?* T, i9 Z* r; x4 ]

" U8 _8 O: q% E" L$ k3 N# R9 a选择要创建的设计规则的类型9 y4 v, R1 d8 i, O) @
* M7 e: J5 b" {
5 A: Q( _, o( @4 t

, x6 W0 Q; N, N/ L; B生成设计规则( N6 A# l' F6 `+ ]# ^) h3 ?; E

  d1 n) k2 ^+ J2 C4 m0 ^2. 检测Query语句
& \; l0 S) _! e, C" [在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。/ V. \8 b" @/ d
2.1. 使用Test Queries检测查询语句
) W& i! W: X7 k& A) x$ w% g2 ]Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。/ @- x: r" L$ M; R
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
) m( e# b, U0 b& w+ u5 X
# ~; j! B% o: t; J. }4 K4 m, d: o7 @6 D& L/ _
- k! h% p3 g# m/ M0 T
9 g" ^2 W: Z. Q& ?6 e
检查当前查询语句应用到的对象
6 c, ?3 z0 A. m! c7 v$ W" Q0 ~$ H点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。- j' H% c( K$ u" n
2.2. 在PCB Filter中检测
* ?( ~% j6 Z+ F# R8 }还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
5 Q2 ?4 x/ w! s# q: D3. 用Query语句创建规则的实例) o$ ], l. r4 x; e6 I/ m# ~- z4 W+ Y
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
' X- n# h. q6 }! D! J, A创建Room,并为其命名。
6 a- H# T% o& c5 ~4 V1 \  R( l. a; N0 A& b2 D0 E  k
选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。8 q& a: U+ s9 j$ J$ J* S6 ]
# l2 ^9 }( S+ m1 f
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:  ]( ^0 d3 S( v" J9 X

+ M: S$ g* s# G' t+ I
1 Y3 c1 L- p! L 3 H/ i+ Z" ?3 G, l. Z9 S2 O9 l5 s
* P0 p2 x/ F" P2 r

( v1 S; T' l8 N9 B! g
9 E+ l# \8 v; A
9 _1 b% e: s; o+ @) F
2 P! L4 g9 Z( S 4 U) t: D, L( L( P
1 J0 P. X1 J* C( D: f# u
Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  
) _. M- R  F% Q7 I1 w) y0 {5 b( u* Z; L

  U0 A  r# S; `( g7 w7 d5 ]4 i
作者: 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
感谢分享
; \4 m( V. e4 s2 kAltium Designer Query语句的编写及检测教程




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