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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

  _4 t& K0 M3 t3 M在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。8 M! s6 z* s$ V( [, C+ T9 T
1.编写Query语句
  ]0 S1 y# r# M4 R5 y; N# G在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。$ p. Z! h) @* a

$ F2 O# J; U1 J3 M6 S# b
; X( B) `: e1 |5 f* z% N创建Query语句5 {  f3 Z$ V$ a& T! A
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。9 ~0 ]& H- D% i
1.1. 使用Query Builder构建查询语句# a3 G5 L' e  t2 c
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。7 w  r1 r+ |6 i" ?8 M3 N

( b+ z* r0 i5 ^5 J$ o
5 G7 H1 u! x' @/ @
7 a2 V. V0 r# p5 N5 Q
) N% M; S, a0 |; l8 M$ ~2 \/ L使用Query Builder创建查询表达式
, v1 B* q1 P" g2 ^0 I. p8 Z该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
: Z6 Q1 p; v& c1.2.使用Query Helper构建高级查询语句2 z; \4 z- ]$ Q1 a# j) b1 t0 l
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。" t  l% s. o! R- ?( i9 }
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。! `4 ~8 @; a9 M" F# J& g4 K/ F
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。" J8 ]2 U) H, t+ u* b0 m$ m
+ k$ U( w9 s6 H
" q! }8 P" {+ z

! h3 D( X4 k) I8 q' d# M9 b使用Query Helper编写更复杂的查询表达式3 K9 j% ^' c. b
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
; C5 L5 ~% ^* |9 V) I1.3. 使用PCB Filter 面板创建设计规则
0 S/ J  r& Y  w# R- r# N* H& W创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:% [2 n1 |1 }" N$ _7 m1 D0 o
, u) `9 u8 n, O& J
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。/ k0 W7 G0 [, s  T3 u
  b: H6 a* |4 I9 @5 R$ {' `
3 i6 u# D, @/ f2 p6 H- l$ D
9 T4 M, o/ s0 {+ C
利用Find Similar Objects 创建查询语句: ^/ _& D$ o- ?4 k/ U
8 f: U1 \2 `* D' A
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:. A  n3 A9 U; a. Y7 M4 `7 S
7 Y, F' a9 ?6 T( _2 j% ]

; n$ H! x, T. ~7 U
) L2 \3 @4 Y; j2 c& iPCB Filter面板
, V8 h6 A: T) f! D, W
4 u0 B8 w. e  |6 o
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    + L/ m3 X- s' q: o3 f' i
3 o9 b7 X, \6 x
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    7 z* D# W# o" D8 U
4 y9 S5 U$ g% [1 x& E* A

% c6 j) u* P9 O$ }2 c
5 Z, D( N2 Y- E/ _& f选择要创建的设计规则的类型
: Z2 @, N/ }- b/ p  C& C. J
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。
    4 o! `, _6 ~% ^! g
; H, V2 _+ p, R6 `

( M9 |" _8 J9 m+ @5 |5 i5 Z) F+ T( ~0 ?) ~5 k7 l6 g2 _
生成设计规则
  `+ F4 O2 S+ g1 J. |
: y2 V$ p( _/ s# F9 D1 H$ o6 Z( ~2 i2. 检测Query语句
0 d/ E5 V( s' E+ A2 S* _( B在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
) A% [: r  Y' _) y$ r7 C2.1. 使用Test Queries检测查询语句9 K1 \0 f" |- b9 D6 u# n
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。1 L8 ~- a3 ]0 k0 L7 g% u
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
+ x3 ?: W. D- i
, f  a. w4 I/ |# a6 L4 g: S! U( H" c- T
+ t% k2 e2 n8 `

; m7 R1 j5 D/ j3 |* R检查当前查询语句应用到的对象
$ z- p% X- s4 q+ {0 I0 ]0 l) k点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
; y8 Q8 [4 K) g/ d4 b7 c9 ^# V2.2. 在PCB Filter中检测, u8 U+ C- O3 ?" Z1 j$ _  j
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
- b1 p5 b5 e) ^5 D3 J7 }4 b# g3. 用Query语句创建规则的实例
8 s  \, Z: S5 c: X# J3 A  h例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:& V/ G1 v2 X& I# F" H  S% E8 i
创建Room,并为其命名。1 }2 N9 f5 ^& }( E
8 `% X; d  P) X9 R* v
选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
& y  r7 y4 T" D" c; R. N
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
    $ n% p# u* o* z: r6 T3 g( x2 Y
6 `, T) U' M& Q9 u  x6 z: Y
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:. T1 K- Z% V; K/ z* y! T( F0 m
7 k, A' s, u/ _4 B' B/ K( h6 ^0 r
  V: j  V0 m. b: d! z/ S
  I- \4 t; z* X4 y2 n! t

4 t4 G* m6 {4 [2 l" l2 _9 w3 w2 A
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    % D1 ~, B* `7 J5 O9 S

4 z. Q# v' w7 @( p) i ) }* _& j* }; Y2 \' T0 T8 v* V6 v

) Z" Q" e+ B" [. T+ x5 E$ B1 D2 D
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:  [; I( l2 R% P" k2 G

5 x/ U! m) Y+ Q9 k1 S) S
. H0 v" a. i' U( K9 ?- d
* ^' v9 b* R. l- W' w, Z( cCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  
& B3 z& x- s* F
5 B2 \4 S! L$ o1 F
1 n/ b2 U" p$ h- H) z

该用户从未签到

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 | 只看该作者
    感谢分享- L' d0 y- U. q- o; v' m( A* J
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-4 13:27 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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