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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

& Z4 r2 O) R, e7 z1 Z5 C3 E" H在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。6 |( t' {! [+ _' M+ z
1.编写Query语句* E5 Y$ r% N2 Y/ ~% Q/ Q! ]! n
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
  J. H9 Q9 D! e9 R/ b 3 L3 D  ~" B, j8 f2 b. h. e8 E
. m$ a, o& |. G9 ?4 i: o% ]
创建Query语句
, w7 P4 y; |8 f! C) v6 c+ ]当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。1 T/ n& v' Y' B# ^8 g
1.1. 使用Query Builder构建查询语句# W6 t* Q1 z& M9 f
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
' R: q: p. H' {$ D! B6 Q# G5 k) _4 t( w

) Y7 b6 Z$ \) ^, s, ?6 o% P& f 6 s/ M! i1 Y0 ]( _; h

3 q: Z! A2 N$ Z* R' `5 V2 L使用Query Builder创建查询表达式
, K# m4 t  E7 {  H该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。7 i: P  O8 x5 t) G" a
1.2.使用Query Helper构建高级查询语句0 X: A  l6 ]2 H/ o
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。
6 {8 z4 H$ K, d9 v) B7 O$ P% R对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。+ z& W+ _3 h" s( o0 G
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。# B3 \9 |: \3 f
2 n- T1 n1 v! {8 v! o
" c0 b. G  m1 f/ p5 R/ R
! c" |7 m+ T  W) M
使用Query Helper编写更复杂的查询表达式
* L: W7 g! l# Q& o该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。3 R4 S' ]$ `" |- T( n4 n1 _
1.3. 使用PCB Filter 面板创建设计规则
/ s* T+ D0 F' U0 x! u1 N7 J创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
# {. k, I; V) E3 G+ N' ~9 m3 T, i7 i0 ~% Q2 S- ], h# ^+ s4 {
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
    3 @4 q3 v) }3 y: J
! [# q1 R& B" ^1 e- R
  B* y/ x! J! N- v& b$ {; ~

3 I9 K/ C" _! `) }5 h利用Find Similar Objects 创建查询语句* E0 J, f, k. m. _( D* q* ~

4 C, b/ y* E) \/ r" M) Y
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:& q2 D& J$ i/ f# G
* ^2 S4 k$ Q% G8 o& }, V9 T' l( n
2 }; w0 o! G& ^$ `# s

; |, b. w2 a9 ]1 N. Z, aPCB Filter面板: e0 \9 y, P5 t  E  a

0 o& p0 ~, g& d/ Q  Q0 Q
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    " g- _" r8 l1 q
8 Z9 Z8 @6 H0 J' z
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    1 K4 K1 o% V2 E* Q! b; u( G
: o: h2 `1 p# T. W# N, d4 a

' t+ f6 q) s! H2 a* q" @7 Q6 z
) M) q* ]$ ?) H: v2 l0 M1 P3 j. C选择要创建的设计规则的类型2 D& \5 C- }" R$ n* V
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。
    , f& A6 Z3 a* [) y1 x6 [
% H" ?+ o5 L0 D! y+ T6 H
% k/ v1 W" D! T
  H* {4 c9 K$ n* l) T# I$ h6 |
生成设计规则
' l5 C. |3 x$ R) _
: `% r, U% }, A$ v3 |8 _2. 检测Query语句/ C) v8 Z( e: q/ H
在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
4 O2 K- V2 m. i2.1. 使用Test Queries检测查询语句7 f5 F3 I, a. d% T* B
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。6 D$ O$ f6 W' o5 L+ z1 N" O& l# [
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。- T, E% Q' S: Z) c+ E
$ z+ h) _% u* O1 R1 g* g
6 N3 G( H% r7 V  L! O

" y( {) p: c6 q7 W, q' P  v0 E! I
1 b- r1 H. X6 F4 H7 E& _2 F检查当前查询语句应用到的对象
* y2 U9 ]4 e6 y& z0 i* b  Z点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。9 B. C  C+ e* c: b# M! }! {. M
2.2. 在PCB Filter中检测$ @* |6 K2 U2 U' q  N& w7 c% O5 Y
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。/ ^# n1 E$ z; d- n
3. 用Query语句创建规则的实例8 H1 M& V# C/ d. W2 B
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
$ f0 v' y  x" E, J创建Room,并为其命名。
+ ~4 O; K7 W0 z/ T4 n
' s% B+ Y1 J7 q- [( s3 x选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
* y5 @) y3 K$ {# t2 g' q0 G
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
    . H$ [; m1 ]# I+ `/ n' T* ?
/ z4 ^! ]4 H2 R6 g( Z& M4 s: Z
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:1 Z* \3 M1 n, X

& y1 M: f) n4 y. [; {7 N/ x1 W
8 ~$ m6 r6 r# _4 W# Y
/ P) a. w5 ^" Y4 s, i
$ Q! r2 Z3 t- }
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    & e+ O  Y, I) ~/ T+ W

7 v1 O% j2 Y$ ^4 ~. K. z # y; B! m- ?$ l& w& k

8 H8 @# @! f' x3 o+ |# k
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:# T7 M% C$ S6 }7 p! H

  L( p' e) Q" U0 ]   y- a; M- s$ T* A! o
% s  \0 ]) E) @  J- v& X: {
Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  ( [8 Q* I; c' ]! v) f; `0 f
) A$ {  n: F2 l) P* s
4 W' j+ \; b$ d# o8 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 | 只看该作者
    感谢分享1 A5 u( M7 w; }; J7 @# p% B6 [! r
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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