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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

  K4 H! L$ H) ~* b4 _8 W在编写设计规则时,我们经常会用Query语句来详细地限定设计规则的范围。如何准确地编写Query语句,并在编写完成之后检查Query语句的范围是否正确呢?下面详细地说明一下。( \  P% G! |! Y: e
1.编写Query语句! l" B; X; ^- X$ O2 x" F
在PCB文档界面,选择菜单Design-> Rules… 打开PCB Rules and Constraints Editor 对话框,将Where The Object Matches的范围设置为Custom Query,右侧的区域内就可以直接输入Query语句了, 如下图所示。
8 f: s8 o8 G0 @4 ?
" l1 v0 V* T0 f. S: x9 u2 ?" [: R& ~  W
创建Query语句7 c( R9 T& T) f/ r# W# G( ]/ K$ V$ \
当我们不了解Query语句的语法、可用的关键字时,可以使用Query Builder和Query Helper这两个功能项协助创建Query语句。/ f; n3 w1 {% U3 s1 U! _6 S
1.1. 使用Query Builder构建查询语句
6 S, f2 ~) A, t$ u) r& l7 LQuery Builder提供了一种构造查询语句的简单方法,它允许设计者利用条件类型和值构建相关的查询模块。点击Query Builder按钮来打开Building Query from Board对话框,可以在该对话框中创建由AND和OR 逻辑字符串构成的查询表达式。; H# B/ t: ~2 y/ a8 Y# N

; t9 b7 m& t+ L, J; S
3 s: b9 t* x3 x / }9 @# [+ ]" w& A: ]
0 x1 O  E: o; s8 O) Y+ v
使用Query Builder创建查询表达式
' _$ Q% G1 E/ h6 `( h该对话框的左侧部分用于选择指定目标对象的条件,右侧部分会显示当前查询语句的预览,如上图所示,可以添加多个条件进一步限制目标对象。8 x4 o, r4 R+ T5 n2 ]0 P( i1 ^# b
1.2.使用Query Helper构建高级查询语句$ p) Q+ y. Q4 I
点击Query Helper按钮打开Query Helper对话框。查询引擎会分析PCB设计,列出所有可用的对象,以及所有查询关键字。) L, [/ w- g9 m& z/ H/ e* z
对话框的Query区域用来生成查询表达式。我们可以直接在该区域输入——会出现辅助的关键字或对象的提示列表。) Z. {/ H. R( }: W8 `; f
对话框的Categories区域用于访问可用的PCB函数(PCB Functions)、PCB对象列表(PCB Object Lists)和系统函数(System Functions),它们用来创建查询表达式。在这三个区域中点击一个子类别,会在右侧区域中显示相应的关键字或对象列表。定位要在查询语句中使用的关键字或对象,并双击其条目,该条目就会出现在查询表达式区域的当前光标位置。' r  j- |( g" b1 f* i3 W0 x

; D/ A; d5 |' h1 G2 y$ \- o 7 O* m5 M' [. X" q4 {
8 e/ F6 p7 g9 g: A
使用Query Helper编写更复杂的查询表达式
% L/ h5 L! W9 R1 B7 v1 {8 M该对话框上的Check Syntax按钮可用来检查和标记查询表达式中的语法错误。
" J+ u6 Z: `+ y9 n1.3. 使用PCB Filter 面板创建设计规则
( e; z$ h% h0 H  w$ T8 O3 s创建设计规则的另一种方法:利用PCB Filter面板的查询语句直接创建设计规则。使用Find Similar Objects对话框,可以为PCB Filter 面板创建查询表达式。然后在PCB Filter面板中使用Create Rule按钮,为Filter部分的查询表达式直接创建设计规则。步骤如下:# R) x& C  L% c, z6 [! }. b

2 F3 p: X( A0 U$ d8 h. E
  • 在PCB面板上选择一个目标对象,对其右键单击,然后在弹出的右键菜单中选择Find Similar Objects命令,打开Find Similar Objects对话框。在该对话框中,将目标对象具有的相同元素设置为Same (例如PCB封装相同,则将Footprint设置为Same),勾选Create Expression 对话框,设置如下图所示。
    5 _1 h" c# x; ~/ z9 T# L0 A$ Q# G
  a6 ^0 H% F9 F0 D  K$ D
7 {# R/ U8 F0 C1 c6 H
* f, f4 w& F" q9 P. \$ O' S( v
利用Find Similar Objects 创建查询语句
$ p) F: a) A3 x& r% N" F2 @. I) J0 U  {/ N% A/ R( L
  • 此时可以点击 Apply按钮, 查看目标对象是否都被选中。如果我们需要的对象都被选中,并且不需要的对象不在选择范围内,则说明设置的选择范围没有问题。点击OK按钮,此时已经打开的PCB Filter面板的Filter区域出现了 Find Similar object 对话框产生的查询表达式。如下图所示:4 y3 W7 C  f- V, `$ h: {

% k/ j; Y3 ~& F0 ~( O( M5 |
  D$ u& b! N/ o1 }9 [, u$ ^" {' i; v+ d) F% V- J6 b" |; a% I' S
PCB Filter面板
! f; ^. h: }' l/ C9 N  k0 d" t. y7 F1 c
  • 此时勾选面板上的Select 复选框,然后点击Apply to All按钮(如上图所示),将会选中PCB板上所有要查询的设计对象。
  • 在确保查找对象的范围没有问题后,可以将Filter中的查询语句复制到设计规则对话框的Query语句区域。也可以按照下面所示的步骤创建新的设计规则:
    " X8 B8 u# O; A4 I& o

. o" u; Q! u( o/ S3 [8 A
  • 点击Filter对话框上的Create Rule按钮,然后在弹出的Choose Design Rule Type对话框中选择要创建的规则类型;
    % `* {- \- t9 m: `( T
  E: Y+ U8 m% Q1 O
6 J- P  m3 n8 a

( Z1 r% Y- ^" r2 l选择要创建的设计规则的类型
1 S: \. U8 b* V# J9 e2 ?9 E2 ]
  • 这将打开PCB Rules and Constrains Editor窗口,查询语句已经被复制到相应的区域,此时只要对规则进行命名,然后进行后续的设置即可。
    ) R4 F2 m% _- p8 p6 N& `1 {  A
2 g2 K  _2 O& D! ]) F
5 C/ ?" Y- w, B* N/ n, ]
4 B( t; m, c) r: Y  j
生成设计规则, \& f1 R7 }7 D+ h; Q3 a( r

: f0 ]6 y* Z; I- r; }& m$ n  J; Y2. 检测Query语句
1 Z( T* p  D/ X0 w在设置设计规则时,了解规则的范围是否正确涵盖了所有预期的对象,且不包括其他的对象,是个很重要的步骤。( q8 c$ Y5 B) W7 }6 L
2.1. 使用Test Queries检测查询语句6 {" V, O. j2 I% }+ a0 i) [  B
Test Queries功能可以测试查询语句,验证查询表达式是否定位到正确的对象。; R2 X9 @& n( G+ O1 T; ?
在设计规则界面点击窗口右上角的Test Queries按钮,打开Test Queries Result窗口,该窗口中会显示查询语句实际上应用到的对象数,如下图所示。
7 }" h$ Z  ?  ]7 ^. n8 t! V
% [! N, S3 U$ B1 s- F. a" `9 i0 f& h- a9 ~4 U2 D$ |1 m

1 C  J3 L$ H0 m& Z" K# N
4 a' D7 b$ v2 K检查当前查询语句应用到的对象; g1 w3 b; _- v7 X, C! [5 k/ j
点击Test Queries Result对话框上Expression result 后面的数字,PCB板上会高亮显示该条查询语句适用的设计对象,其它的设计对象会被遮蔽或变暗,以检测查询语句是否涵盖了正确的对象并且不包含多余的对象。
2 `& G0 c2 u6 x4 V2 {/ W& F2.2. 在PCB Filter中检测6 Z5 G5 ]; Q2 R+ N! N7 S
还可以将查询语句复制到PCB Filter 面板的Filter区域内,在勾选Select复选框后,使用Apply to All 按钮测试查询语句的应用范围。具体的方法如 1.3.中的C步骤所述。
* U( G8 P3 X" E, C( k( W3. 用Query语句创建规则的实例) J/ z0 y* u0 p/ X
例如:我想限定电路板上特定区域内的线宽和间距,可以借助Query语句来创建设计规则,步骤如下:& j) n  X/ ~, p0 j1 t5 ]
创建Room,并为其命名。$ P% b1 Y' [  w: P+ D5 o

1 Y4 \9 s( W& G( L7 I9 t1 P4 ^选择菜单: Design>> Rooms >> Place Rectangular Room,创建包含特定区域的Room,并将其命名为RoomT 。
6 h9 \, Z* g$ x" z' _
  • 创建一个新的Width设计规则。
  • 在设计规则中编写Query语句来对Room内的对象进行限定。& X; k) q5 y4 L# b& t! ?
5 ~5 }/ e- l- [, F
在设计规则中,打开Query Helper 对话框,找到PCB Functions下面的Membership Checks, 找到跟Room相关的关键字 WithinRoom 并双击,使其出现在Query语句预期,然后填入创建的Room的名称RoomT,  点击OK 按钮。如下图所示:& N3 v; A6 r- Y! d
  ], G! U$ @5 b' b
- ]( L5 W5 f6 p+ q) n% y
; G5 x) X% x: H  M/ t
: }6 H6 k9 M' X. l* Z
  • 编写好的Query语句会出现在设计规则的Query语句框内,然后设置线宽范围,并点击OK按钮。规则编写完成,如下图所示:
    & g) ~2 E1 L+ c0 V0 B6 w
& ?8 I' |. U  k
0 A. }- Y9 d. p2 {. M2 M
0 n8 @' t$ H. m( f. a
  • 创建一个新的Clearance设计规则。并参考步骤c、d完成间距设计规则的编写。如下图所示:+ u: V* Y# [: c
2 f3 p+ P# x2 z5 y2 f: {" j
2 ]3 y8 T) H: [- ?+ u& t- ]0 s/ F! q

  |$ g& L! [& h$ s9 DCustom Query选项使设计人员能够自定义编写更复杂的查询语句,以便更具体地限定规则应用的范围。编写Query 语句并检测其准确性,在我们日常编写设计规则的时候应用非常广泛,通过本篇文章,大家是否对Query语句的编写和检测有了更多的了解呢?  - k" J# u  q# W/ A. e# H
3 k+ [% f6 @* W

: ]* s3 c$ ?# T* \- M

该用户从未签到

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 | 只看该作者
    感谢分享: P9 H1 E/ e0 B; r" l9 b+ `
    Altium Designer Query语句的编写及检测教程
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-8 22:38 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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