EDA365电子工程师网

标题: 如何在Allegro里面设置用1234...序号命令来换层 [打印本页]

作者: zuoyy    时间: 2014-9-11 15:00
标题: 如何在Allegro里面设置用1234...序号命令来换层
以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
6 b7 M+ I" a9 L, \  I3 A内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……
; |0 Z$ F4 q5 ]" p5 _" {: O1 x, G然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~
9 e1 x3 A) ]# k3 G2 F请教哪位大神有什么好的方法来实现下~
作者: owencai    时间: 2014-9-11 21:20
Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,! j5 M1 E5 r+ G. ]; q; U3 _
还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,
  s# \. f6 @" b" m1 P3 Y6 I另:录制的应该可以吧,不好用么?
作者: owencai    时间: 2014-9-12 08:20
funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
" R, o- Z6 w1 L; t! sfunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印; @% V; k: Y& o
你可以根据上面的语句编你想要的层,route keepout5 [0 Y) h5 N8 }1 L% q
下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
) j4 y: d+ T2 k; j/ C+ |  m+ _1 G; v! ffunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' # f% y4 M+ z. \4 A: g
funckey z6 'color -toggle "Pin/BOTTOM";color -toggle "Etch/BOTTOM"'
作者: zuoyy    时间: 2014-9-12 08:33
owencai 发表于 2014-9-12 08:20
1 _  z0 {/ s, e5 v8 t; [funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
1 H; R, }5 v( Efunckey zb1 'color - ...
$ ~% D% V. X; m) b! _, p. u; Y, P
好的,灰常感谢~我自己再研究一下。0 @5 t  p  l6 i, L+ ^
用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
作者: zuoyy    时间: 2014-9-12 10:14
zuoyy 发表于 2014-9-12 08:33- u5 h; w0 C5 C3 H( |
好的,灰常感谢~我自己再研究一下。, n% m& z8 c) a( F0 h
用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

- ~1 W  P6 x6 ]3 |- h那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键
& M# {0 z, _" D& C我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……
: Q7 S% `# l/ W1 L, K  @- K' B那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
. _/ n# U$ c2 Y* }  b如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
作者: owencai    时间: 2014-9-18 16:54
本帖最后由 owencai 于 2014-9-18 17:05 编辑 7 \; z0 r1 ^6 f1 i
zuoyy 发表于 2014-9-12 10:14
) F5 O5 {3 A4 O2 |! D# c那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

( T' v4 g) P, a, m+ Q- w
) G2 D- s" ~* F. Z. kfunckey z8 'color -globvis off'2 j/ _# P& a3 f5 A5 @% f
  全部关掉命令,
( X- m0 i, H+ I* }3 ?还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
; |# }) n& J8 r& t" J3 P
0 a) s, V+ e+ L5 N9 ^% P搞不懂,正在测试中
; M5 |7 R5 o( O0 V& z! B3 {# j/ [# Q' ?9 W, ~6 w; @* }9 |
经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
作者: zuoyy    时间: 2014-9-19 08:09
owencai 发表于 2014-9-18 16:548 p/ K2 a3 v4 u
funckey z8 'color -globvis off', ~( {; K% N1 S
  全部关掉命令,
$ L' \) @. j/ y% d+ I! y  {还有你加的那条color -toggle "Via class/Top"我 ...
) u$ ~" j' J, B* L' q% T6 [9 t
哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……, O4 @, H7 c* ?" Z' w! h
我的env里面这么写的:
, R8 m# v3 K) Q7 R0 q* I9 |alias T 'replay alloff;color -toggle "Via Class/Top";color -toggle "Pin/Top";color -toggle "Etch/Top";color -toggle "Package Geometry/Silkscreen_Top";color -toggle "Board Geometry/Outline"'
$ N+ R+ h6 H( R我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢+ t5 Z( N+ a! }1 \
那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
作者: zuoyy    时间: 2014-9-19 08:15
owencai 发表于 2014-9-18 16:54
( _/ c5 E& ~* [& {. @& ifunckey z8 'color -globvis off'
' T% E4 c! n3 e1 n) C7 u6 r0 P  全部关掉命令,
/ F0 ?2 h# ?. a6 b" p1 C0 J还有你加的那条color -toggle "Via class/Top"我 ...

/ \0 L3 D& N3 u! v1 F* T' M哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:6 L( q6 D" J5 g% h( k
alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
4 ]* J4 N9 r3 A5 P1 f9 z我尝试用星号代替,可是无法识别7 I1 M6 L% e9 @1 H: P
不知道这个要怎么描述……
作者: owencai    时间: 2014-9-19 08:32
不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
作者: zuoyy    时间: 2014-9-19 08:46
owencai 发表于 2014-9-19 08:32
; Q& j, S) B' [' x3 N" a& j不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
/ _; R% D- m  n. W3 P7 X
呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
. |& }5 z. n) A以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……
! B2 K7 h6 ^; B9 K5 f* E好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
作者: owencai    时间: 2014-9-19 10:08
可能用别的语句实现吧!继续研究,共同研究
作者: zuoyy    时间: 2015-8-7 16:57
owencai 发表于 2014-9-19 10:08
0 g9 `# t6 }; Q# y' @* v: e可能用别的语句实现吧!继续研究,共同研究
4 Q0 }( Q0 s- }, Q' D
最终搞定了,用了一个小skill搞定了' O! ?  M3 l; q5 g% |. y
axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
* G9 m8 J4 L3 l% T/ S/ |5 n* f3 ]+ F3 N: l
defun(c_layer (@optional (layer ""))& W) ~" e" x$ I3 U4 S3 S
let((allLayer countLayer)
' \' J; k' c$ H        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers! S5 E3 Z( u4 y% w& H
        countLayer = length(allLayer): ~" t. O  _9 S" Y
        if(layer != "" && atoi(layer)" S$ w+ d) T' L7 w1 c9 ~
                then& V3 H# Z- q1 W/ Z
                        layer = atoi(layer)
, @: {2 _% ]  `4 e                        if( layer <= countLayer && layer > 0
% Z/ Z. m- K5 A+ A* q                                then2 B0 }# p+ g+ r; t) U
                                        axlVisibleDesign(nil)
; i; ~7 C/ r/ f* O& ]9 J                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
) O8 V- d7 l( @$ a5 o* q                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)& A' A# L# ~" h
                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    6 C5 {* p7 r& u; F5 c, b2 Z
                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t): a, l$ O. u) e5 G6 t, D
                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)
4 |* N+ I) M6 R/ k5 `8 r6 X                                        axlVisibleUpdate(t)" T& t2 k$ {" [8 J
                                        axlUIWPrint(nil "Swtich layer complet...")
& H: T1 Q$ ]( H8 W  W/ S1 N2 k                                else+ y" m! s0 [; h  |0 c( @
                                        axlUIWPrint(nil "Error,Wrong layer argument!
  [1 q3 n( M; }: i                        );end if$ a# g* \) v) n$ E5 G9 F/ J# f
                else! j7 W- _% e# r  C6 s. [
                        axlUIWPrint(nil "Please Input argument...")" L5 |; w9 j& v  M: X) S
        );end if 1 D7 \% e. A# ~8 d/ m. l
);end let
5 W" E$ }- y! F' W2 d- C);end defun2 n3 e  m) h# i! v' J
# c- }5 ^) \7 k0 m! M- B: L
( [) E7 O4 q$ k( w2 S
5 A8 L- W- }7 h; `! O  v
把这个skill加载进allegro,然后输入命令就可以了
( ^+ ^) h- H, C0 n8 C或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层
# S$ k* q- Q! ^+ [: F& Q* b  a




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2