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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

2 x; @: H+ B9 s6 M& E8 b2 h* C在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
, N; R  Q8 r" w; n2 U" E/ d$ a( x1.编写Query语句
- R$ F! l. n! P  \9 [( Y* i( T, f在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。* w/ x0 L( |4 @7 w3 F

# D6 I8 c! Y' s& k' W* j( Q% W8 w" r4 T
/ t% j5 H+ X* i8 g# [6 z/ b. |创建Query语句+ P& S' w8 [+ o6 `
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。4 P* L* Z! }2 l, G) J
1.1. 使用Query Builder构建查询语句
! B! t9 b. Q- t, f7 ~Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
5 z- r$ k1 c" Y5 k. C" a' e; B9 c0 Q4 g3 K" j  C& F5 V% k' o
6 c5 y9 Q  ~3 @# i! E9 g5 x

+ Q. y* c5 d4 e8 o6 T. \" u" g" K* V9 o, m
使用Query Builder创建查询表达式, }3 w: M3 Y9 K/ g8 ]9 K) _
该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
$ |+ J6 ?' i. A4 I* b2 q0 E/ o9 t; x! B) P1.2.使用Query Helper构建高级查询语句" G+ O$ }4 R6 E9 w2 a  l
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。& ]! z/ _( \6 g" A1 U. A
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。; L- I$ Q5 C& U! }. ]6 d
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
5 K* @/ x2 P# n7 \0 S& c  i
3 U3 l! P+ v; ?# E ! J, t* k6 C2 j, p

$ w5 N1 n) w& E- M' s1 p2 p0 }使用Query Helper编写更复杂的查询表达式
0 b0 a) Y( `; l. Y5 l该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
  i  T% `" z. t) ?1.3. 使用PCB Filter 面板创建设计规则2 F' R9 a. a. |8 d' R& j
创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:+ \5 B; f& I1 [, D6 O
" |0 t7 l2 m  E( J6 @6 ?2 j
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。8 ~) t: l1 B7 z& @8 y

  @- Z* f9 ?: Y: ^
7 b% T( ?0 T# p& k$ f/ ?' n
+ y/ e/ n7 B+ f. c2 A: g% ^2 \' p利用Find Similar Objects 创建查询语句: _5 m7 C, z& D, p! M& H$ y4 V

& r; u6 w7 D8 }, o/ N# p  x
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:3 P3 w0 z4 i% ~9 n+ J5 D

. S& {3 h% `3 f/ i" i( b) j ( x1 f4 _4 D% j0 U6 N+ k
4 ?* [, ]- z) C. y; y5 g
PCB Filter面板
6 o" C2 v+ u' w! c: x# `6 T# i% N. ?# W, `$ e2 A- _: j" _
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:0 L/ e3 X' O9 B" B' e8 t
5 N  M$ [5 Q% q0 s3 r7 K0 ^
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    0 o/ p2 X+ ]7 n

  c8 y4 \; D  ?# O
9 r9 s( N7 f9 @  E# B" E1 J6 q/ a) x) l/ X# Z4 I* l
选择要创建的设计规则的类型% y' Y$ ]4 L; }4 R1 f) d
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。! g- t2 {2 i7 a( P: ^1 B

; a& ]. _8 H/ x0 A  w6 C+ f  ?5 ~6 W   K4 s$ N4 v/ j% ~2 j
* ~# w+ [3 G0 {9 J- y
生成设计规则9 I6 `6 D. D! ?/ H' L

, i3 C" k" O# k2 |2. 检测Query语句0 w) h1 Z% ^1 H  ^6 |! \6 S- T
在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
. W- m$ W" m0 o2.1. 使用Test Queries检测查询语句+ r7 L1 J' h: {
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
, l2 n2 g; Z0 q. [在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
) m' k5 \' Y4 t$ @3 s; D* b! m$ I) E; o" u

. N9 I( H) e: F; i% { 1 Q& w4 v* h- _2 b( ~; u2 c
* u3 b8 s$ z7 C( b* E
检查当前查询语句应用到的对象1 l( |0 m5 Y# c# |+ h; [
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
7 \5 h: ~: `- Y% `2.2. 在PCB Filter中检测
+ I/ P% T8 l! m  U还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
5 r# Q2 j6 Z* H# D% N3. 用Query语句创建规则的实例/ x$ [* _! E% ~7 I; p: [0 e
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:/ g5 p1 U3 q- v2 P$ c* c) E* ?
创建Room,并为其命名。' Z5 R3 y9 p# A6 i5 P

+ i* X# ^) {- q. f/ {. S; o2 ?选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
, H! I9 T6 n+ G: S
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
    / r$ p# E, b  y# G/ O0 V
9 d- z: e+ Z  j% W+ V' V- P
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:8 f! S- l# W$ ^8 h9 K1 }" U% w
7 T  M0 |, x6 E4 m
3 m* W/ K- P+ ?: Z
. p  p- n" N) v+ C
) h6 q9 @* S. x3 m# j
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    - f4 E3 G( |3 [2 Z) X' d5 F# g

3 I" N, W* k4 R: p: m( Y& n. T
( f" |5 G) f$ `
7 J5 O9 E. f, u: b: \% l: i4 F
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:" @- x  [4 Y) R  r3 p0 t: m) w0 f

- \* l- d* t$ J' `7 h
* r4 x/ d9 o2 |; ]* w$ c' ~  i: b- A
Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  
2 i* g* f: L- R2 W( e
, l6 N* p# c4 A3 v. H1 T1 H
  C' z' P: g+ Q7 I' F

该用户从未签到

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 | 只看该作者
    感谢分享* q3 D1 d8 ~7 i* s9 e
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-4 11:25 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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