找回密码
 注册
查看: 2445|回复: 6
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

, j1 N: r: K! i4 _在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。) B% B3 b6 b, [/ ?. q
1.编写Query语句; Q& P4 e8 x  d, @- V( z8 P
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。" ?3 S2 ~7 \; ^- [( U
7 h  T. c8 O& ^  |3 F

3 _, s( K. K; D+ ~$ a( `4 c创建Query语句
5 u! H6 [! q: G' Z7 h# J当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
0 d: ?8 L5 @1 d" o1.1. 使用Query Builder构建查询语句+ a6 i5 y  ?( [
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
/ S' ]6 k% N9 W# x9 R" x* s  B) }$ z/ N/ c& H0 U( {, M
* f; n- @3 m% w. ^! E

' Y; N0 @) i% w: V1 U/ d3 G3 Y8 T4 X" F7 I- U
使用Query Builder创建查询表达式: F( k' W7 ]9 Z" I  x+ p; s  x
该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。: V# A  n1 A$ H/ Y, I& ?5 ^$ _" J
1.2.使用Query Helper构建高级查询语句
+ e( V. f6 @% ]* b- G& D点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。
: a7 o3 S! R# c4 u& [对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
" e: h0 w5 v  x% T5 ]+ A( [" V对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。! c9 d. a/ |7 }) n2 K
1 C2 Z! k1 g4 `( x7 h1 M4 o
/ T: g2 T% O$ \8 [
* @' |4 O, D0 L: f
使用Query Helper编写更复杂的查询表达式4 I' t0 ]' ~' i3 G" x( I* u& u2 v
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
/ }; Q, @; Q+ I) v6 T6 O- V1.3. 使用PCB Filter 面板创建设计规则# j; D, m& R* z4 o7 M) s; {) ]. N- o' o
创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:  y. J: a$ D; s

& T8 y( W* G1 ^) Z+ A* d) Q4 {/ a! X
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。, M1 E) f/ k, u& F
6 t2 Q: L/ c8 x2 k

7 f0 c( s3 Q6 B7 _$ Y$ a* B$ z
4 J9 T# a2 v8 g8 |6 C利用Find Similar Objects 创建查询语句6 b$ {; `( [' r

7 |" Z" h2 s4 P" I' [* q
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:' l9 e2 S5 w: j1 m' y5 T& p1 H3 v

1 q  K" v& N* L! {3 T# H& o, }: }* W
" S8 g2 M# ?4 p5 a  _9 W: H' a- M% @6 P& i! ?  V8 a* B, ~
PCB Filter面板
; Z9 d! v! U) }! M' x
. p  P7 u: c) V6 A7 z
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    3 B9 y7 @4 {" l8 Q8 ]

( Q  T! G5 C' ~
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    5 ?7 x5 L6 }. i

# F3 w0 Y- S; U) v 1 z% K- v* S" @
- A5 v0 j" t/ P, c1 G
选择要创建的设计规则的类型4 }& m0 a$ Y  E: ~
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。
    7 }: j" t$ S' m) \8 N

: h& w! P; p: M) I1 |4 }
, P! y" [7 `1 e4 l. F, |* i+ X: w% `3 h! @
生成设计规则& q; y- L! N+ e, l8 F. U

7 c# Q. u) N/ o% I  ^4 R7 W: }  y% Z. z2. 检测Query语句
& Z( r2 L1 r- w& ]1 h在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
6 v: W5 j9 J7 P; [0 U2.1. 使用Test Queries检测查询语句8 ?' W8 l% t# ?. P) `1 ^& j
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
+ d) m0 Z$ y7 `( L# O' `在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
7 G- q- R3 I" X8 E8 `1 l5 j; C; n8 V. n0 J: y8 z

/ ?5 o2 D( q2 D! l# g" v
" V! t1 D( j8 x; q0 f4 n7 y; [+ {% C* e. e
检查当前查询语句应用到的对象
: Z8 ^' s+ x3 i, L& G点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。( H+ K" k9 V' `8 H
2.2. 在PCB Filter中检测/ t+ u" Z% E  o" l: k) Q
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
" c: u, K- T$ j% ~7 R3. 用Query语句创建规则的实例, p0 x* r1 T, G
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
# _" G  j9 q% @# b, E+ o6 k创建Room,并为其命名。
: i" P# T# |! F* x
6 I) \: N+ j0 \8 g8 P  ^' a" y! p选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
! j  g9 _3 h0 |% x/ F. I
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。! N0 y) v1 @5 C
, d* n# ]+ l, t
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:
" G# |/ U- F" j/ ?- n
" K) F: f9 a( _5 n) K0 W/ w$ E
2 Q; t" K) s2 c* o: E + |! }7 @$ G. P

0 V2 v  b4 h) B
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    ) Z6 h, X6 h2 \5 Z0 y6 ]
' L! f  a0 d) u0 \' C& M

1 W9 n* T7 |4 h5 }9 V7 z" U; ]& n: t* m: |
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:
    ; ~9 c( x! N, }' r% Y) N' Y" l( j% w

" F! P8 u$ f0 p- H# Y1 A4 k
3 q3 f3 ~* h$ {& h
( F! Z" Z2 N. E/ G) hCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  * b8 D: Y0 ^+ V' y9 {7 [# Y8 W
, @! R2 e0 B% V9 `- A1 r8 }4 V

" N! |0 P4 P: m- Q  o4 a

该用户从未签到

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 | 只看该作者
    感谢分享
    ; V) g0 R8 s9 \8 R8 kAltium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2026-5-7 19:09 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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