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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
7 u1 Z" u2 e$ I4 U. m' x. f: S
在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。
; f  c! o: U0 p3 y1.编写Query语句$ j  T3 |; D0 O
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
. P7 \# j  t2 t1 J/ r) H+ T
% _$ d6 S9 |. ]6 m& N
: T2 u6 h! J1 t0 h, _创建Query语句
& {; x5 b, O, c! V; r1 _当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。
  Y* i/ _* J, o( y9 Z1.1. 使用Query Builder构建查询语句9 N; Z: \2 m. P) s' m
Query Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。
4 r* @, o( v$ _+ E) S2 T9 x8 f, R, ^+ t/ R/ Q
- \) H/ M7 k& p

, q1 Q, ]0 c( Y$ i# Q4 L
5 n* E& [- Q  _0 [使用Query Builder创建查询表达式: J7 I' x1 b. e! [8 ?7 G
该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。" u& @* p2 ^* h/ r$ v9 O9 W( l
1.2.使用Query Helper构建高级查询语句$ T6 q/ C6 C0 o
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。& g4 B0 i# g$ e+ k5 y" v2 J* m- {
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。
/ o' ?( j$ U0 c7 Z4 w. X对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。
$ k- h, _% q. g( R; l  Z
9 U% p  q6 n8 H6 w* U   Z$ s; s; [+ z; B$ K
0 B( @& ?6 Z- X! g
使用Query Helper编写更复杂的查询表达式9 m( ~/ S8 J" r! ^
该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。9 S; g; s8 y; b* S! {3 D* i7 F
1.3. 使用PCB Filter 面板创建设计规则
. ?/ D7 y% Q/ T5 n% K. M& e创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:
, K" z8 n! C+ J1 c+ m# w
6 Z' s+ z9 E4 r7 a6 w7 N! D
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。7 R  z+ z, b' T; f7 l2 b
+ k  i2 a+ U4 Z

# L  u4 y# P% L( I- M, ?: {! ]% ^  k- Y
利用Find Similar Objects 创建查询语句
& f& X4 B  M/ W( K
% a0 ~# k# m0 h* g+ x
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:) w( r4 p: g8 y$ z
3 m8 P' B* [9 r
+ F* J5 n! M$ h9 |: n

5 X6 b: \9 k' b. N$ P3 d  vPCB Filter面板$ _9 N& o) V! L5 X

1 U( U+ P% V& `+ A/ F: \) f
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:; B% x" m( Z' x; n1 E& ?
% P0 c7 [7 M6 G2 N
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    / \) o! V& G& b+ F) K2 A

8 W* \/ n( Y* `; j. A ; H! ^( g0 P3 X

+ T; H2 \" J* l! C% i7 f选择要创建的设计规则的类型
$ d# a& w7 g& R! r6 J8 }" I
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。* |9 \" h% c! ?! L" A
# l/ K8 J- T6 \. G

( c, n" J; k  D1 f$ Y3 y: C
( ^) d0 Y- V" s' h* A8 K生成设计规则& }7 F! K  C. |' j

' n$ ?& S9 o( O2. 检测Query语句& p/ u  a& M( W
在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。+ O. A7 d2 @$ {( b3 G0 A
2.1. 使用Test Queries检测查询语句
0 n+ q2 I* J8 [; g$ X+ h+ PTest Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。
4 u% X$ w; H$ h+ T& L% X' F6 T' ~在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
: n+ F$ _, X) ^/ M, d0 \: y% R- e$ K( Y* u( ], B& P2 z

6 I* q$ `1 Q: v' k) G2 B , A% u) b( r2 S4 V1 R5 J0 o

( {. V( U" R4 |$ x) Q检查当前查询语句应用到的对象: w$ o0 }) }, `# ^/ A  d1 O& [
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。% P, _. y( t. v$ w( p
2.2. 在PCB Filter中检测
* `0 p: A5 O+ h; G4 V9 e3 x. e还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
1 ]8 z% e( u+ l2 ?3. 用Query语句创建规则的实例
4 s5 Q, w) [# m* y例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:
' Y5 r1 c; R" X' c6 N) D4 V8 o创建Room,并为其命名。
6 h2 }0 d& d# ]) T' k- S# q" w, Q. J( k) l" O3 @4 C" @9 g3 N
选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
6 R& ~* M% Q* ?9 f9 G. k
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。
    - c  V" x* K. v% w- s8 B) X6 W
3 k3 i6 x! t- ]; N  t  V
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:
" z9 s5 X: j% i4 i' w
# ^6 |) `6 p2 Y
; g8 g7 K: j3 i  V . t5 O8 c+ V) g* s

% A, s6 n/ U. R% Q1 v
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:" o! p5 }; w. @# o
6 R  D! H0 A! D0 A

2 s) y9 z, m9 y% H; f# z! @" q" v) H, T% [+ P/ U
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:2 v- H# z9 L2 J% l4 H$ B/ `
9 `- p$ a3 k7 L8 u" n! y

8 s: }5 v* u$ ~1 U, I4 z: N. P8 o3 \$ m, `5 O$ ~7 f
Custom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  : L* M8 g2 ?" ?) X% N

2 B' m$ ^! Q/ S# y3 _
7 {! ?6 p, J+ p7 f7 d

该用户从未签到

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 | 只看该作者
    感谢分享1 E( j) g1 O& ^% {7 r
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-13 12:32 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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