EDA365电子工程师网

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

作者: zuoyy    时间: 2014-9-11 15:00
标题: 如何在Allegro里面设置用1234...序号命令来换层
以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
9 ]2 U4 C  I1 b0 O( }8 M! h. J内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……+ A. b! h( u' G3 ?: {( I
然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~0 A) S; I" n& U4 L' [3 m2 k
请教哪位大神有什么好的方法来实现下~
作者: owencai    时间: 2014-9-11 21:20
Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,
2 Y# T& Y9 r, X8 b: T8 p8 P1 }+ }0 N还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,# t- n. r; M  N; _% ~! T
另:录制的应该可以吧,不好用么?
作者: owencai    时间: 2014-9-12 08:20
funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印0 |3 B2 z3 p- X  g; a, l" i" K9 }
funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
9 N$ m. A- d/ O! M$ D你可以根据上面的语句编你想要的层,route keepout; h) K  Q8 I9 u: I1 m$ j: d0 ?
下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
, J- N  n0 q" D; @. G9 Ofunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"'
- o3 x3 J7 m. W  Kfunckey z6 'color -toggle "Pin/BOTTOM";color -toggle "Etch/BOTTOM"'
作者: zuoyy    时间: 2014-9-12 08:33
owencai 发表于 2014-9-12 08:20
/ e1 v  c$ z# A6 y3 p) Zfunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
) `0 x* k* x0 kfunckey zb1 'color - ...

/ s# l- ]- m6 c- Y, ]- c好的,灰常感谢~我自己再研究一下。
$ Z# D6 r& |. _/ a用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
作者: zuoyy    时间: 2014-9-12 10:14
zuoyy 发表于 2014-9-12 08:33
9 R4 i/ Z% T! v- i" S- X好的,灰常感谢~我自己再研究一下。
4 Y7 L" T+ ]& y. U8 ?7 u用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...
  B' T( Z# s* Y9 I) \# J; K. s
那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键% D0 ]% z6 u3 g- }% E( C) M. `
我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……
' a+ t3 v# n% a那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
2 J" q+ k; F/ i% Q2 r( G, m. v如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
作者: owencai    时间: 2014-9-18 16:54
本帖最后由 owencai 于 2014-9-18 17:05 编辑 3 j; l0 u8 I2 S: }
zuoyy 发表于 2014-9-12 10:143 L: |9 {: e) l0 h! ]! y6 `' w& P' B$ u
那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

) d+ M% o, ]8 S& M
# g8 K: d/ q, Lfunckey z8 'color -globvis off'
, a) V7 U  g4 N5 N  全部关掉命令,, K: h! ]6 S0 J# L; `+ ?. _; E
还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,' `8 `: [* a% W% M& y. O; o' F, M

3 v: s( ?, b( x: P) x搞不懂,正在测试中 0 \/ Z* T8 i! T5 V0 F
3 s% H* s% t8 k: ^3 b3 ~  C
经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
作者: zuoyy    时间: 2014-9-19 08:09
owencai 发表于 2014-9-18 16:54/ M4 Q$ }! H+ t, o' S
funckey z8 'color -globvis off'
5 x$ T. o; J. M  全部关掉命令,* Y3 s: H  @. a  e
还有你加的那条color -toggle "Via class/Top"我 ...

' H6 j1 s7 j. `$ n7 `% b) S; _' v哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……& r* W; p, b) H7 M) E2 @
我的env里面这么写的:
5 z& V# E7 p0 {9 c* 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"': }- N+ S* U) Y6 H+ s
我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢. r# ?4 I' {0 V8 f5 F
那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
作者: zuoyy    时间: 2014-9-19 08:15
owencai 发表于 2014-9-18 16:54$ F( ^$ d: ]5 d5 s1 R
funckey z8 'color -globvis off', [* i; l" w/ g7 E& a- A
  全部关掉命令,
# l' X7 F2 e' z, X3 N5 }还有你加的那条color -toggle "Via class/Top"我 ...
5 q' w4 M- J; T7 C: X9 y0 S
哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
8 d; o1 M% O8 z! Y- _alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
1 q. F/ }+ \& N: y7 J9 K- {我尝试用星号代替,可是无法识别
# A# G7 p; k8 {) R) h* J不知道这个要怎么描述……
作者: owencai    时间: 2014-9-19 08:32
不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
作者: zuoyy    时间: 2014-9-19 08:46
owencai 发表于 2014-9-19 08:32; p: r8 r& k2 `8 J
不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!

  e- c/ e/ ^$ w1 P呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……- L1 i# n: C* v9 g- L0 `
以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……" r) F) o9 ~8 c. h
好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
作者: owencai    时间: 2014-9-19 10:08
可能用别的语句实现吧!继续研究,共同研究
作者: zuoyy    时间: 2015-8-7 16:57
owencai 发表于 2014-9-19 10:08, U* b/ h8 R" t3 O7 E
可能用别的语句实现吧!继续研究,共同研究
; B& n7 c% U; C7 x( E% P0 _
最终搞定了,用了一个小skill搞定了
! ~/ Q  Y, @0 YaxlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
4 J5 c, C# t6 I1 R
7 ~/ h$ W. p8 Y) e* A0 Wdefun(c_layer (@optional (layer ""))8 N: Z( Z& z5 m  ?% J/ i
let((allLayer countLayer)
7 [6 s# M0 C/ k, c$ F1 k        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
, F; x. Z: z# d. J" g: r( D* W        countLayer = length(allLayer)
: |+ D) y# A' l8 q0 h  ~        if(layer != "" && atoi(layer)7 p& P! Q  D; o; ^# ^/ g
                then
' Y1 J7 V: @  Y- G3 x4 Z& Q( o                        layer = atoi(layer)9 T7 [* |$ i0 O5 a
                        if( layer <= countLayer && layer > 0
# |/ i' |. O+ c+ f/ L                                then
( L! i3 w6 [8 B: C! M- v$ m' S                                        axlVisibleDesign(nil)
( U+ ~2 J( k/ {                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
+ Z5 N/ t; r0 @+ g6 p) D                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
% w4 H( n$ Z3 c8 g                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)   
) I* w, F* P1 I# Y                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)
$ _9 b) ?$ t& K+ ^# {' t- w5 A6 v8 _3 d                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)4 u: Z3 T( |8 E5 O/ T' K
                                        axlVisibleUpdate(t): t: g' g: t  e) u
                                        axlUIWPrint(nil "Swtich layer complet...")3 ?! |9 s! ]# Y4 x" w+ ~5 m
                                else2 X0 ?/ v8 L+ S: J, D1 J
                                        axlUIWPrint(nil "Error,Wrong layer argument! + L6 i. D1 V! h* y6 M
                        );end if
1 s9 ?9 d" U$ F& p                else- U* H% E4 h& v2 ^+ t- p4 h
                        axlUIWPrint(nil "Please Input argument...")2 W) q: d6 R! ?/ \4 M2 q/ j2 ^; `0 A
        );end if
8 d& h, m0 g# d1 o- W: d' i);end let7 ~5 ~% U& h% N+ L
);end defun! W& y" d/ [2 ^+ N2 c+ y- D

1 u. p2 }) n* g3 ^* o' n* V5 N
7 {. m4 K! e! H0 S0 e! g& P* r4 b6 I, J. {8 E6 H6 O! u
把这个skill加载进allegro,然后输入命令就可以了0 Z# ?, G) z2 Q* F
或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层
% L/ b! {% n5 v. m# c. K




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