EDA365电子论坛网

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

作者: zuoyy    时间: 2014-9-11 15:00
标题: 如何在Allegro里面设置用1234...序号命令来换层
以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
$ x: m& i) l$ A  O内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……; O6 e, ]9 T4 }; I8 u/ q
然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~* C1 i: f8 Y# r6 i2 |) w# K
请教哪位大神有什么好的方法来实现下~
作者: owencai    时间: 2014-9-11 21:20
Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,
! H0 J7 T1 Q: j4 }5 q+ ?; p还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,
4 x: B( L7 s& x. o% P1 g另:录制的应该可以吧,不好用么?
作者: owencai    时间: 2014-9-12 08:20
funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印5 `' u, e- n+ j' z' d' J# N  F6 _. X
funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印' y1 R- S! ^$ t, G
你可以根据上面的语句编你想要的层,route keepout1 o" ^* J7 [/ k
下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
$ ]& {) T, |$ [( r4 e# Z! n6 Bfunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' + U& b9 M+ F% O& v8 A% q
funckey z6 'color -toggle "Pin/BOTTOM";color -toggle "Etch/BOTTOM"'
作者: zuoyy    时间: 2014-9-12 08:33
owencai 发表于 2014-9-12 08:205 _0 H$ M' T* v& |
funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印" }% _$ o/ B  I0 ]0 \
funckey zb1 'color - ...

6 X' S% _& O$ `$ v* h; e好的,灰常感谢~我自己再研究一下。# }1 o" b" S( J/ T) Z
用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
作者: zuoyy    时间: 2014-9-12 10:14
zuoyy 发表于 2014-9-12 08:33
5 L7 ]6 h7 ~( X: \: d好的,灰常感谢~我自己再研究一下。
1 S8 n' e5 q9 u用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...
- f/ K0 d& N  E: T( K$ L, i
那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键; H  ~& ^5 I4 M* F6 s, K
我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……
, X# D2 ~, p* x7 L' N; g那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?* i! ^) g9 p$ r0 G2 N& J
如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
作者: owencai    时间: 2014-9-18 16:54
本帖最后由 owencai 于 2014-9-18 17:05 编辑 5 M; W  i" H4 r2 k( i
zuoyy 发表于 2014-9-12 10:14
# f* |+ c& S8 R那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

9 z6 T4 K7 A4 n: y: _
5 u  q2 n4 R$ E7 H& Wfunckey z8 'color -globvis off'
9 S6 o0 C  o) ~, ?+ @+ V8 ]6 J  全部关掉命令,. _1 s/ A+ _1 O$ h1 U
还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
/ x" _6 p6 H! b2 D* U$ L
9 C7 e) _  \& u# ]" ?搞不懂,正在测试中 , C% x: m5 l/ o( J, R
6 c! J  \/ E  |' j$ ~: p" a- ?6 n8 ]
经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
作者: zuoyy    时间: 2014-9-19 08:09
owencai 发表于 2014-9-18 16:54
, L- O. H, `  S1 Zfunckey z8 'color -globvis off'
+ Y9 ], ~5 w# s! H% Y  全部关掉命令,
% Y$ y- M6 q, ^9 ?, j' c/ o" H还有你加的那条color -toggle "Via class/Top"我 ...
. o8 ~1 h1 K' f5 ?3 a
哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
& W/ _9 t" W9 D7 X我的env里面这么写的:
4 W. v6 p% l& V/ I! W$ galias 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"'+ F5 U7 R! |& M' r( D- s5 ^
我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢3 m" X, t& j6 S$ T$ x3 ?' ?
那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
作者: zuoyy    时间: 2014-9-19 08:15
owencai 发表于 2014-9-18 16:546 ^4 E, Y3 ]- ?, B8 }& K0 w; J+ n) E
funckey z8 'color -globvis off'
. A0 P, @/ B  F* ]- _% c  全部关掉命令,
: x  b, Y3 G$ g- A0 {- ]9 b* Y还有你加的那条color -toggle "Via class/Top"我 ...
; M4 T; h4 U7 [$ E, ]  T. j
哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:" F! e: r/ w6 {
alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
) O- [' z- O! r) J. f- g) g我尝试用星号代替,可是无法识别& t/ g0 s) m1 [- u0 }; n+ N. `
不知道这个要怎么描述……
作者: owencai    时间: 2014-9-19 08:32
不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
作者: zuoyy    时间: 2014-9-19 08:46
owencai 发表于 2014-9-19 08:32
. J7 x0 d  b, w4 u- _6 ^不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!

; h7 X/ U& X" V, y1 r呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
6 t: T/ ]9 d" P) r, z以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……
9 D+ w' t5 w1 o$ ]2 x- V好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
作者: owencai    时间: 2014-9-19 10:08
可能用别的语句实现吧!继续研究,共同研究
作者: zuoyy    时间: 2015-8-7 16:57
owencai 发表于 2014-9-19 10:08: \# F4 X. H1 W
可能用别的语句实现吧!继续研究,共同研究

$ K( ~0 o( k: `$ @最终搞定了,用了一个小skill搞定了! l1 k  I) w, Q; f2 s& [
axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")& C9 S+ U1 b- D3 l) \' @; U

  \0 R" D6 p( y( J% y5 K0 Q- _defun(c_layer (@optional (layer ""))3 e# c4 f% w, H5 r
let((allLayer countLayer)& o/ p, D2 ?2 W
        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers0 T4 R9 \8 w1 ]' i, ?2 @( I
        countLayer = length(allLayer)0 T& ~, T: z) a* F9 T7 g# ]6 D
        if(layer != "" && atoi(layer)
: f1 |6 W0 k! N# Y$ g9 |% P! `                then( K3 o& f$ l! x4 H% L1 ~* V: b5 v$ n
                        layer = atoi(layer)
3 R0 Q3 L7 c4 d                        if( layer <= countLayer && layer > 08 v) v+ p5 L! k. H7 U- i# k
                                then/ H9 ^9 s, g/ d  X( w! h
                                        axlVisibleDesign(nil)
( X2 z3 |% w0 D) Q4 T8 v- [                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
7 L) H  n/ j, k( G& E$ \                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)7 Y# S: ?; ]* T: M
                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    . J) z0 j% E' `" _4 b
                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)# K7 y! ?3 Z- I6 I% `
                                        axlVisibleLayer(strcat("Board Geometry/Outline") t). e0 J; I: |/ C" T' S! j0 y* r* G
                                        axlVisibleUpdate(t)9 `$ R( E) ^# }0 W
                                        axlUIWPrint(nil "Swtich layer complet..."): K# C6 [; L- `( G% ]
                                else
: V$ ]  y" j4 Z% q/ t; `' r1 N, C                                        axlUIWPrint(nil "Error,Wrong layer argument! 9 T' P! i4 V- e1 `  C# E3 k
                        );end if
3 s/ f( f- D: L4 |7 t$ G( H                else! |  L8 u% L! h. e- R
                        axlUIWPrint(nil "Please Input argument...")8 U6 F* Q1 ~% c
        );end if
6 ?7 d/ ?; ]/ t7 A5 z);end let  W# e0 i0 l* k; b
);end defun' n1 _; {6 ^3 k
- `# ]7 t- y/ J  C
0 ~1 j( V: R  Q6 b% K
- H5 {; h2 B% I
把这个skill加载进allegro,然后输入命令就可以了
3 s0 ~- ]# ]2 ?5 q1 y或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层% t3 \  f: }7 I2 w: W3 J2 E" X





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2