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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
5 m! ^+ @: Z) B. B; b
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。/ n6 o5 a; E" ?6 |: F6 e8 t
1.编写Query语句; D1 `. j1 N! _( ~  k% g4 O9 {
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。2 b( B& x8 k+ N" @2 A

. R, k! ]2 H; Z6 q
& u" `& _! T9 Z0 P创建Query语句5 w5 m; q: B5 M0 {- ~' b3 t3 _- U
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
0 \, A3 z6 L7 ^9 s1 [9 O1.1. 使用Query Builder构建查询语句
/ G5 A6 x" R/ l( P5 jQuery Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
# A6 a! G0 o' D# C. @  ^2 j0 [' L7 R9 K

# ?: C3 R8 `+ _5 ]% D- ~! e + i% h1 x0 N1 Z! K2 _
5 `! d# q7 A8 F
使用Query Builder创建查询表达式
  c/ ]2 \5 L1 N5 Q# `% b# A该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
. k1 Z3 y4 Q- C2 o/ z  Z1.2.使用Query Helper构建高级查询语句
6 B4 w9 {8 [/ p点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。7 T  `* g7 g; H: P1 y1 r3 T( N9 G
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。/ g3 R9 I, ?* _# G. W
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
$ a2 ~2 B. V" n5 V$ r! m; }( {% S, R3 o4 @, z' W
( g$ k/ ~3 o0 V7 V( K% G& Q

4 V7 G, o/ a) x' h/ y使用Query Helper编写更复杂的查询表达式: c0 O: s8 H9 {4 h
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。3 l2 B% f3 K& i1 W( p: m; a
1.3. 使用PCB Filter 面板创建设计规则
- U6 j& l, @3 x. \/ u创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:3 N* n5 X  v( H4 k$ i$ N
' d0 y* d, A4 c% S4 b0 ^1 ~
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。' D' Q/ y& b+ S% V5 n

$ T% `- b5 D$ S3 ~/ k 9 {! n5 }  A. W' v

: s3 m, W, i* u利用Find Similar Objects 创建查询语句; K1 |8 _# s! T1 n

4 T/ t2 C  T+ y* L# @3 [- R0 t
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:
    . t- U% o5 ?5 z; |" K/ M" H

% a3 _2 E# s5 j " {  r4 P4 m% S- _& t
9 |# V, m* e9 t+ Z$ t+ e
PCB Filter面板( l& k2 m5 C: K9 q: _: B0 Z5 I7 c
( M; R1 e" I, v2 [
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:5 H3 Z+ k' C4 K
4 ]0 e' M5 o) [' q
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    7 R" L+ d+ z) h  j8 J  N# H: x
/ g! r  G8 o& O$ G" I

7 m6 h  |! u: ?' K" F: v2 R; H" }" d+ n  x7 E" g
选择要创建的设计规则的类型
# v' d# u& W( u! e3 M) D0 d
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。
    + k, q6 p7 z! D1 z7 @4 Z8 R  o

& Q- ?  c+ ~. e  U# w
+ t+ Z! F3 p, G, T' a5 w1 Q' v5 r9 J! s
生成设计规则
# C# P* Y) d1 ?
- G4 s5 k8 Y! z' a  ^  r4 u, i& P% I2. 检测Query语句
& H( v! v) e& D& E) o" S在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。' y  e5 i* T* m/ J" J
2.1. 使用Test Queries检测查询语句
% n9 j; ~1 c3 _& T5 x' P4 xTest Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
9 A7 s  E" i' f) f( h, |在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。  H* m5 n) J, w) {, y
: b7 [% S" x% ]! K

; s, r  ?, E+ Z( U" B
9 \" r9 [  ^, u; k' f. f% g6 J1 _
( [) h8 `: F2 r检查当前查询语句应用到的对象6 n) U9 {$ G8 q( N! {6 D7 i' }
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
2 O* ^6 X4 j5 L  {4 _% H2.2. 在PCB Filter中检测/ I9 k: l& v  [% h
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
6 v9 V7 G3 @3 P! ^# t4 @3. 用Query语句创建规则的实例
/ e; J) {; H8 i$ E' X( h4 N* v4 A例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
1 J8 @5 G7 y  ]- Z! |/ N创建Room,并为其命名。  F  o) G3 x) v/ y  C+ X
  ^' i; l" i, s
选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
5 L$ `  [. S9 x6 R  `* |
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
      J( k% `* ~* b3 z4 I" }! x* W5 `# Q

3 G) J6 t- D( f# Q: P/ Z, X' a8 F在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:. q6 ~5 C! x$ b9 V, c3 y# \

7 q, e( e4 {8 I' s, P4 X! Q: r- `5 ^( L5 S1 L
) O& i2 H/ ~! q" A* v; g4 S& H4 N0 ~

% ?$ y4 b. [( k
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:4 n, r3 J: A% P1 ~2 x

# O: |& X: J: @- F# y( c' ^5 x
- n7 O9 F8 M- j5 S: g. f1 K1 i+ J* v0 U' `7 O
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:
    6 k3 I' [1 _0 r& ?1 w5 M/ w
8 U% C% e* e2 e4 A# _

, H; @+ e* k+ Y5 E
+ z% ~) m7 I, R9 LCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  7 O" a0 r7 v* ?
& i6 h' ?! @  G# }% n7 I
" A& v0 x, w. U/ }9 J' m( E" g

该用户从未签到

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 | 只看该作者
    感谢分享
    7 B8 b" G" R1 Q. x; IAltium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-5-29 05:25 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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