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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

( k9 g7 l! P0 f" n( n在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
. U1 e; z) _0 y& d6 s( Q+ v1.编写Query语句5 P* l7 v( S$ i& X- z% R
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。: S& Z3 E9 @3 s* B6 l( S/ i3 Q0 I$ O0 z

) z" A. @5 D1 G6 Y7 S* I5 ~/ j7 x0 ?7 X( e0 f! m, W/ t. S
创建Query语句) _' T) m- e2 q7 P' p; y5 `
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
9 r  g& O6 `1 {9 F' D, W( }1.1. 使用Query Builder构建查询语句5 z' }  o: Q5 j# p! X& V, m9 Z" C
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
  l% m, e' a/ I/ w, }6 Y4 n& D8 r0 @1 z1 l4 n5 C, X2 i6 L! x4 }7 K
2 A1 p$ Y1 N0 V6 u

) T) j8 b8 d' T, X& d/ p1 }, O; e# l. e9 G
使用Query Builder创建查询表达式
: ]) T% G. g0 u4 y% Q# y! a3 F# v该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。: i* M- ?, U+ @
1.2.使用Query Helper构建高级查询语句9 {" o& T0 x3 i9 B: p( v& U
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。5 J# k. E+ a$ g. X7 G* F1 b
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。$ C1 s0 R8 P# x5 M- a. w" N
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。- f! g% w+ o2 _, r) R: z, P8 J
( |/ M1 K0 [  W! }( W' E3 _" B

, ~; C  S% Q: v4 K$ _1 W
: F+ J8 S3 {7 U2 P/ q/ ^使用Query Helper编写更复杂的查询表达式% Q3 J* z& A# o) u( W% ^0 z6 r+ E
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
5 E  c; `; L7 M1 w7 N% U1.3. 使用PCB Filter 面板创建设计规则
# l( {1 n3 ^4 g/ F' [创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
3 U" C: C! A3 e
1 l6 z& ^1 E8 Q$ ?) f$ o" ?
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
    ! l' h" \( ~+ Q7 P$ n& d

! S7 z( Z1 o2 Q' j6 m$ c+ @( B0 t' b
- b* z+ k6 J! B, c. W) ~* ~" j$ D$ H: n' g1 z$ C# e
利用Find Similar Objects 创建查询语句
/ r9 r9 m$ U' F2 q6 @, A8 i, ?4 g9 y% `% H
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:
    % n- {2 t1 ]+ Z8 Z& z* T
- d0 P& d. g# i6 a
' }$ u  A5 V, M, I
  i) J/ a* n4 @3 ?
PCB Filter面板
: j0 u& X" p" ^. H( {% \( H7 k
! F  t. V7 R% R* O
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    1 c' b, m5 c& m% A: `9 ^# Z0 k
# e0 G' _6 w% n) Y' n9 s
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;; f6 n0 ?9 P- U6 K1 n

* ?& X. `8 z8 x  ^; O& W
& u5 o# p7 {" U5 g
  n! w  @0 k& s选择要创建的设计规则的类型
7 q+ _/ @+ ~% i$ P
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。7 i( L$ I0 n& C
) \; ?% `; f6 r' H2 M
! a/ k5 C- M% q3 [  n" N
* u  d6 o! @" q8 P8 c# @
生成设计规则$ L# H5 T) e& Q# C9 h( h7 v
: G8 f$ y4 g) A) X; h
2. 检测Query语句
0 D6 a% e) F! t在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。  O4 \2 O. O( S' J  {
2.1. 使用Test Queries检测查询语句
9 S3 ]' Z& L/ H) q9 z0 t% fTest Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。" y3 L+ k+ k. N6 P
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
0 s6 ^" f$ m: B4 C9 i3 J. j( A% [$ v5 A2 _( w' y9 U

/ s$ n  L+ n5 b4 R1 S' U 6 A3 j; I, ^/ ]( l
3 H, S! l( k6 @5 L
检查当前查询语句应用到的对象  _$ K! f2 P- h$ r3 `3 @0 f
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
" u4 Z% C. T9 j0 u; L4 A0 |2.2. 在PCB Filter中检测
' N5 R: m0 _9 N# j0 Y还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
7 N/ T8 [0 P* A5 H' E0 n3. 用Query语句创建规则的实例
9 A7 b% V8 h# x例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
- `; b' y  Q3 Z& E创建Room,并为其命名。' j/ v( ?( ^; w% L5 n- x' L

2 h* ?, Z3 i* K& C* g- g( ]* J选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
! u0 h! o: K/ d3 h2 {
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。5 v+ V) g# D2 I' L$ g( y' }

) B: I+ P0 o! a6 @5 o在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:) n" }6 E1 F1 ~

; V6 D; _4 z& O4 Y* [$ `# S8 m' _" X. n! ^: K+ i6 {

6 E/ h4 F5 p8 L; n$ u3 ^# N8 a3 A- g* U) p4 s% V
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    % G3 y8 |% K: W& ^
, N8 P- C8 e) |! |7 g6 e

  K! h' W+ {, e& p
. L" q8 j& u2 S" k. t: a* w
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:
    ) w1 s# e" W$ N$ i; R
. ?: T5 h4 G& u$ n9 e. C

( c3 p, x+ x! y9 G# {
* g1 g5 g1 d$ y. a' z) v7 f& [Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  4 y! N/ g/ @% e- C% |
3 Y. F7 i, J' K) G

% B% e$ D& r7 {6 {; X! X8 ^$ [

该用户从未签到

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 b4 o% N1 S& ~) }2 c/ e1 G, lAltium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2026-5-7 20:13 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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