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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
0 X# u8 l/ V/ \) s/ q' G
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。7 t' V' F6 P, C2 X8 U5 _( k% L$ x
1.编写Query语句
9 I. u; |: ~8 R' Y: \0 c! v- G在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
% ^* s8 b9 T( |4 v; W
3 |3 k  Y5 I1 [, }8 G' W6 v" E  w3 y# E  q/ o: z. \5 z3 e
创建Query语句
! V6 D1 m+ c' b+ H" R当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。. _" m0 b( k! b/ x+ x
1.1. 使用Query Builder构建查询语句" g2 N7 n+ Y) A2 F) h4 j# w* A2 Z8 l
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
8 ^- s5 g( }5 n# Z1 r0 e; P4 A% V" Z; l2 N! l
" t0 T5 L+ `# K9 F# B1 [! R
- |: G9 m8 `9 x4 }( e+ {( C0 ]
2 s6 Z0 Y& r7 I: g6 t
使用Query Builder创建查询表达式
. ^" [6 Y. L5 \2 o4 s该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
! j6 h( a" C9 T3 ~4 }1.2.使用Query Helper构建高级查询语句: K: k- m( g& K9 }+ G  k' [
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。( N6 D# m4 O" Z* _& r
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。* O( M  Z$ Y6 U$ ?7 }( Z
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
5 r% ]7 E/ |/ L4 X1 o! J6 s: ], f* z2 t  J9 C

1 x5 D: }" v4 f- @, Y. C7 X9 @" s, A4 b3 t/ u* B! T  \
使用Query Helper编写更复杂的查询表达式* ?! a" Y  A6 |  R1 I
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。" l  u3 x* o' Y6 W. j# L" S# K
1.3. 使用PCB Filter 面板创建设计规则2 n- K) Y3 B& N6 O! v
创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
; i" ?3 s5 N2 k. s( M6 E9 b  R) T' |1 R, P$ L9 l% e& ^
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
    ' I1 n1 v: ]" Y+ X  u

0 j9 t" j8 l0 f. a+ A: D3 b
4 T7 V3 s# p/ h$ _7 J( q
1 R, f& d" T& L2 g7 m利用Find Similar Objects 创建查询语句
. |9 e9 C% A/ h; j
  R$ _% [8 r9 j; ^# G/ K
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:2 l9 T( G5 m3 E4 n8 n- |5 t7 g

; s0 J9 O$ y/ V5 d8 {  {) U, l( R( h8 D / V" f+ ?; C$ N# L/ U& R: s6 m: D
4 b) F  ^/ o; G1 D2 y
PCB Filter面板' R0 n4 h$ }$ a
  H+ Z8 @0 ]8 }3 n' L1 g
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:- ]+ t7 K$ Q) O1 ]+ K: o4 B
* U% I* R) Z2 C! q
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;3 w  v/ c3 V; O" t1 n- V

9 y8 U$ Z! Q, S 7 J" R. D9 I6 ?* K

) o' ?0 j1 h" p7 _3 M) l$ Y  D选择要创建的设计规则的类型9 l+ I* O4 U7 O
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。! J! N: H! _8 o: h$ h- N+ _

% s; o. n: f* W " d8 }6 w+ t' p- a6 [
: U3 L- M5 F5 b
生成设计规则) b3 m5 J+ Q$ ~9 q$ z
5 i4 u, Q/ l6 C  b5 Q/ h# t" a
2. 检测Query语句
8 P2 v1 T" a7 `$ u; D' I* A; m! q在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
/ i* s% s. p0 e4 H" U! @1 M5 F2.1. 使用Test Queries检测查询语句
' m. @+ c  y$ T, K# ]& kTest Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
. J- R4 N& G" q! w在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。2 w/ J  ^! M' l' w7 q

4 z2 c/ S- ^" [5 x6 t2 M: h( A: |1 j
9 X0 l; W6 S* {+ g& q5 p* {& b! p

& C+ Y  o. d1 l0 C3 W/ P检查当前查询语句应用到的对象" s! |+ w6 n8 U! `- m1 J8 _
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
& H) o' f* S' W7 x7 m; T2.2. 在PCB Filter中检测
. J. k# K- |& x9 \3 |/ S, }. f还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
' e( r9 y% u$ E$ m' t4 G% q3. 用Query语句创建规则的实例% e+ R( B* H+ A" B
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:* ^; M) [3 I. T8 |  Z
创建Room,并为其命名。
; A! q' ]" G5 K2 m- X
% |+ ~, J3 v' \9 W选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。+ X4 ^, q: s# v; G  v2 X
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
      _- x7 i& x* ?2 K7 N/ v

% V- E4 O; z- ~, X$ G在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:
0 U6 g' }3 Y8 C: F8 w4 O' k/ N4 Z' k
2 w4 _6 l) V' `% ], R, j. a6 U( h
( M9 }8 F' c2 ?* E/ \

( R1 l9 [1 I4 ^# G
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    ) [& _7 B1 u4 T/ @0 d. r0 @2 ]  m

! Q% o8 N* S' y; B! Z; @
! _: p9 m4 g! g
2 f4 a) F* A& {) p" k* Y8 E$ E
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:5 x, p# \. D6 f0 Y8 J
. i9 q  V7 u, L8 F; z5 q. d& F
% P8 }5 ?( Q6 T$ e% b, z- v

/ A. \* j0 Y1 z$ I( KCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  1 Q. s0 u3 n( U5 ~- i

8 a0 [$ f. ?$ K6 u0 K& f- P2 Z; K* z3 H3 i( m2 B7 c; M% 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 | 只看该作者
    感谢分享" e- l  V$ e8 A
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-26 06:26 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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