找回密码
 注册
关于网站域名变更的通知
查看: 2079|回复: 6
打印 上一主题 下一主题

Altium Designer Query语句的编写及检测教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-16 17:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  M3 W$ e- F( s/ R
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。4 e% G+ I2 H, c( V
1.编写Query语句2 k3 [% x) w9 X1 i1 Z
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
. @1 u' a- Z; o# I# a' A9 p
4 R$ E. {  t9 D0 s2 A3 l4 S( e% H" q/ l% X
创建Query语句' U, o2 d% r- T+ w4 T
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。6 F6 {4 s; R0 q3 [9 ~$ Z
1.1. 使用Query Builder构建查询语句
7 ]8 y7 W% K. `  F1 V8 _5 |* }Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
; B# t( y* J, x& K0 D% o
1 e& J/ P1 r% m7 k0 _4 w; o% J5 w  z5 Y0 P; v2 x% R, x, P
4 ~' i1 P2 G! ?( h

" |+ H$ D9 W0 f9 s! G  Z/ R! @使用Query Builder创建查询表达式
& p) V" x' I' T2 E0 I6 Z# `1 j) d2 d该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。& n2 a  D2 E, b/ O  d) g
1.2.使用Query Helper构建高级查询语句0 ?1 s9 b4 ]+ N- F" J: I) j6 q2 I
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。8 ^' E3 _1 P. B% d3 Z
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
: w  f* i4 m6 o8 l# D对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。4 v7 Q- e+ s; ?9 J- G
9 M) l0 l0 c+ E$ o, F
" @) S0 }( e! e5 d& q' U' _" ?
, U; \1 x/ V' |& M7 U+ N) H, N0 v
使用Query Helper编写更复杂的查询表达式5 H0 L6 ^' E! ^$ A, |
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
" h  Q2 h. B, U9 I1.3. 使用PCB Filter 面板创建设计规则
* V$ w' Z" q* O8 D创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
  q+ o2 f$ v2 t- @$ E; \' `9 \. O% i, [* ]- N+ u
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
    ) a: z# q' w' g& t( A; t$ {

1 ?% H# i7 e8 w, X3 F2 N$ _ + j) J' R. Y2 j( o  S8 N

8 O. ^/ N; o% |- K利用Find Similar Objects 创建查询语句+ _5 R3 [" P8 F/ g+ Y7 R5 ]
, H% v" r: @" Y
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:
    ! E/ C' x* d/ ?( j* ?

4 c. {* d) I8 q: b : X% `/ J6 q. {; j

) o& ^$ l& S8 L  F8 ]9 SPCB Filter面板1 C# d" C! j4 C
' e1 C6 z. \% w1 u) X  G
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    4 y7 s1 C' A2 l! Q/ X, }- f

. H+ Y* Q" r* \$ Q
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;4 f. n. _$ u+ N

: I* A2 \! i& v9 j6 @& l
. B+ F2 b! H3 N8 c3 I
/ ]. k/ [7 D* _7 [  [! O选择要创建的设计规则的类型8 O% Y" p# F  r, |6 X
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。7 C; z7 G, U8 b
' K  j' A, s5 V# x8 R2 K5 c+ h9 T

  y9 V, M* f, y/ S0 L, V
6 Q! {! y: E& I3 a( }5 s生成设计规则
2 |* v  R1 B7 ^2 ]) X6 z( e0 F$ u# Z
6 L- z6 ]2 H: P$ v2. 检测Query语句
( n4 b" ^$ e" d4 {在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。7 ?9 K: `  L1 \+ U
2.1. 使用Test Queries检测查询语句& w8 j; Y: p" U; o
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
; Y" |1 t9 Z( A- Q4 L1 D* Y3 t/ Q在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。4 Z8 a: |; i: s3 A! y$ v* U
- P' a5 K, w: `% K3 Z* B& ~9 Q
! s/ M0 O3 E3 t* A; M: @+ O! z

. f; Y; x6 I# h
$ n* H% J/ |5 F4 P检查当前查询语句应用到的对象. g( l5 {+ C  i1 R3 T" q6 i
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。1 K5 X; R  m+ C( O$ X' A. D( t9 M: o
2.2. 在PCB Filter中检测" z! o, w! C/ V2 m* e0 |" Z
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
8 e( w' k$ n; e  p# y3 g3 u3. 用Query语句创建规则的实例
5 e5 h- t' g+ F  L0 r3 N/ y, j例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
' f2 [3 S6 Z( h0 i% J创建Room,并为其命名。. Z/ w* G/ g( i0 h2 V; f% o
2 c* u0 e" h9 v  J3 B6 O4 z8 p
选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
4 _' w9 R& l- Q: e; Z
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
    * g1 |4 F. x% v* I# c5 C
: G+ E4 ^% p2 s5 S) w- G4 e
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:
( @7 X& P" W4 o; u
* X+ K' e1 S8 r' H" u* u3 N; l6 U( I, i1 g  E

( ^  A: V: s. H( j3 Y  \) y8 d( Z8 ], N
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:6 n6 q1 C; q$ N) i. q
) N8 w7 ]( s* p) ]$ F! a4 R
" _( t4 k  M+ j7 ^0 k

' a1 S, g, c( d4 E
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:
    & W) T; L; d8 X) j. H* `

) I2 S" r) R4 b( x . l/ u7 s, `: ]. ~! S4 W) }/ x% M0 `

3 c7 D$ a6 `3 _! y# u+ ]9 k5 V, cCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  
& \* x. i- F6 T  a' Z9 A; ~$ g+ l' A, k$ T% a: V. B

0 x- q7 n/ [- j* y7 Z" r& {

该用户从未签到

2#
发表于 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),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。  
  • TA的每日心情
    开心
    2019-11-28 15:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-9-19 16:43 | 只看该作者
    很有用,谢谢

    该用户从未签到

    4#
    发表于 2021-2-19 10:04 | 只看该作者
    学习学习,非常感谢!

    该用户从未签到

    6#
    发表于 2021-6-10 18:27 | 只看该作者
    Altium Designer Query语句的编写及检测教程

    该用户从未签到

    7#
    发表于 2022-1-2 17:14 | 只看该作者
    感谢分享
    0 |% s# w9 I3 @9 tAltium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-13 09:34 , Processed in 0.140625 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表