|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 {+ [8 r3 }! P7 Q0 J; t9 D0 a
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
6 ] `. f0 e9 h+ H& [0 ?0 ?7 j1.编写Query语句
) {3 a; b; W: _: B1 S; [( R4 k在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。# A# d! K: f/ ?- E1 f" ]
- ^! Y) x5 M& Q$ L9 y3 f/ z+ `& H* l" o/ B( w
创建Query语句
% V4 }& ^2 S+ g5 v( j0 p当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。3 d: h D v! d2 W) T* a2 v) W
1.1. 使用Query Builder构建查询语句
* r7 k1 o/ E( ?/ f& {Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
# |) f% {1 {+ j* J7 c2 X- n# V9 L5 e6 F- ^: T5 e
( X- R8 V) i4 L8 H8 j- K* ]/ ^
, a, K) z# e, A. x% ]" h) s7 T
8 k) ?1 U3 ?0 c7 _. X
使用Query Builder创建查询表达式
) w5 _3 I; E% [' ]( J1 p3 A该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。
& {1 D# P9 U9 Y0 m s/ e* D4 Q1.2.使用Query Helper构建高级查询语句% C% B1 U6 H0 M6 t z
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。6 ?' [6 P( g% P3 T$ m- o
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
1 V4 M+ A. z" S; N; j对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
8 W# }: N" H/ d8 \/ h3 F0 ~; P
+ {* b" B- d5 `( s5 j! [
2 x6 }4 a' |6 ]% j
3 N: e) x5 n. b. R6 `
使用Query Helper编写更复杂的查询表达式5 {* W/ X" }) {7 L$ \- k2 G
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
1 C7 G# [% Y8 w, m. s! I/ N1.3. 使用PCB Filter 面板创建设计规则 [' U2 _$ l! B' Y" F. [
创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
# ~* F4 Z3 @7 S4 Z7 T- e; V+ Y' ^ {& m' w. p8 \
- 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
/ |' }& k$ M- ^( f( \ T+ f
Y9 g( q3 ]) B# c
6 a( L0 Z1 T6 G& x8 ?5 o
K6 q6 B9 z6 y% l3 {1 m利用Find Similar Objects 创建查询语句
2 ]5 w( k7 D- X) U" n6 X* N( m9 O2 Q: D4 Z! K- A
- 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示: ]: n5 d$ E0 }( Y' y" [
8 o5 m' a# f: C, z* H! e: W, d/ B
) a: F8 ~9 ?3 l8 n6 a- p w( R0 Z/ k* Z2 s) z
PCB Filter面板
! }" s' E" @ M; b) l# x
3 h, l4 _; j' V% D4 H2 {- 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
- 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:# v+ i; l. b9 I6 e4 g
& _$ G1 W* Q4 n- 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;+ x: H) \- o4 g/ `9 I7 K
. _1 ^6 S: X- k. ?, U8 n
# l7 k$ j" ?8 r
0 Q: | W: W3 _) Y选择要创建的设计规则的类型
4 A+ o% Y! p% @0 K& X' j' w- 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。6 s( R, a, F6 n: l) B3 Q0 y! Z
- B; O; F1 r" O' i4 T! E
# ^7 F* Y4 ~0 O- S" U0 W" V/ d s3 |4 o4 u: ]! {
生成设计规则
% a9 ]6 G( I( P8 f. D* s* ^ U
4 Q( M7 A/ l1 R8 G* K z/ j6 }1 v2. 检测Query语句
& _% {' y# h8 C; Z& e! a! F在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。
8 @% s! S7 c0 D2.1. 使用Test Queries检测查询语句
' }3 g0 ~& g# X9 X8 jTest Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。5 E: {% ?+ R/ l X0 i8 A( J
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
! W1 ?7 G# z: M/ e, Z& |" t. }" m, @2 |( _
* T7 F. `! g6 i' I0 W
7 ~7 b/ ~- S& A7 h& _3 g$ L
( T$ I$ b2 s3 V+ G6 U0 P$ A
检查当前查询语句应用到的对象
. g# L$ V2 U" b8 W" j0 Q% `/ ?点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
% k: c0 Z$ a+ O. \9 r' E7 [) Q2.2. 在PCB Filter中检测
- M- S8 o4 S* J8 Q( u9 L还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
]: x# U3 h; w# z% q' t8 L$ w& v9 y3. 用Query语句创建规则的实例
) S2 Y, }6 i/ h- i* Y# N3 t- }- V例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
6 S" e) r9 [, W; y( C0 p! f创建Room,并为其命名。
+ S) O1 Q( `( q1 g
, w7 z( p- i. t$ `+ L5 _% O4 J4 R选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。. x7 @& R! x2 l2 O
- 创建一个新的Width设计规则。
- 在设计规则中编写Query语句来对Room内的对象进行限定。
) g/ l2 T* b& M4 q8 `
9 a: S. |: k$ N( Z在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT, 点击OK 按钮。如下图所示:
' {! m& }+ x6 K; B- t! O: e" ~$ m. ~% A# n$ F( C& ^6 F' ?/ e% y3 c
8 I: a* n0 W1 P$ z5 U% _
' @4 p4 C# V9 n* T3 Y, x& r
0 p v2 B& j+ c, E. o# O) h# k- 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:$ X9 |" [& c4 V2 W/ i
" D+ E' e2 w" ]8 @
5 _- q: s, T. Z0 r
5 L" d4 S _* ^- 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:
5 C! B1 N7 S" W- `5 K2 ^' v+ F
1 m( C1 N8 ]2 Y+ r, w
3 k- V- l, B0 H5 h3 Q; r2 P7 z7 U, Y1 Z- I$ ~3 s; t
Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?
# ^/ Y( z2 ^4 A$ E$ U: A$ d$ ]( [8 A5 F5 R, {/ _8 E. j
$ L5 V2 h4 ?! S
|
|