找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1491|回复: 11
打印 上一主题 下一主题

如何在Allegro里面设置用1234...序号命令来换层

[复制链接]

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
跳转到指定楼层
1#
发表于 2014-9-11 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;% R% r; X7 Z. k8 h: B
内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……
6 O; {* h# X, d5 \然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~2 ]* h& A2 m& R$ N" w. O, g5 J
请教哪位大神有什么好的方法来实现下~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持! 反对!反对!

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
推荐
 楼主| 发表于 2014-9-19 08:15 | 只看该作者
owencai 发表于 2014-9-18 16:548 d+ {. Q4 x" K# I+ \
funckey z8 'color -globvis off'
9 P* \2 a1 B" o' a. M  全部关掉命令,; a0 j" m" A6 y
还有你加的那条color -toggle "Via class/Top"我 ...

! l& j, v, a( K0 R  A哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
" t* n( s, g' b0 _: F: L+ Dalias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"': B) h: I0 Y- F6 G- }$ Q
我尝试用星号代替,可是无法识别$ d# r1 Y4 z3 g  O( }& H  O7 t
不知道这个要怎么描述……

57

主题

1152

帖子

5889

积分

五级会员(50)

Rank: 5

积分
5889
2#
发表于 2014-9-11 21:20 | 只看该作者
Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,: r) F& I& K9 Z. g& k1 H0 A
还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,
( |) x' H8 H+ W( y另:录制的应该可以吧,不好用么?
遇一人白首 择一城终老

57

主题

1152

帖子

5889

积分

五级会员(50)

Rank: 5

积分
5889
3#
发表于 2014-9-12 08:20 | 只看该作者
funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
. E. c! ]: B7 ofunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
: w3 R: v  c! H' \2 m3 ^$ |, d8 M你可以根据上面的语句编你想要的层,route keepout
6 H7 |; j1 Y9 O* H) Z+ k/ H下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,  T% }% I. E9 t( n  {
funckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' : \3 h5 a/ e+ Z' y
funckey z6 'color -toggle "Pin/BOTTOM";color -toggle "Etch/BOTTOM"'
遇一人白首 择一城终老

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
4#
 楼主| 发表于 2014-9-12 08:33 | 只看该作者
owencai 发表于 2014-9-12 08:20
) y" R* D% Z6 a; M. t; \5 {funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
2 r" }/ u$ C- N. y; s! h" T& ]funckey zb1 'color - ...
  z" h' I, H) |  ?
好的,灰常感谢~我自己再研究一下。
* \7 O& Z7 `0 I+ W; a1 P用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
5#
 楼主| 发表于 2014-9-12 10:14 | 只看该作者
zuoyy 发表于 2014-9-12 08:33
+ i; O; M( T0 @0 \$ ~8 \1 b* ^好的,灰常感谢~我自己再研究一下。! I! P) F+ n& Y) r6 J. e
用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

' |, U( p5 ^  L: c) v( A6 X那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键. L; z5 D- U# P4 ^5 }% e; F, t5 h
我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……1 V3 l$ G' H, s; L! h( @# ?1 M3 Q: D- f
那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?, }2 g! O) T  r1 ~2 s/ I
如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。

57

主题

1152

帖子

5889

积分

五级会员(50)

Rank: 5

积分
5889
6#
发表于 2014-9-18 16:54 | 只看该作者
本帖最后由 owencai 于 2014-9-18 17:05 编辑 2 t/ D6 f9 E& N: c
zuoyy 发表于 2014-9-12 10:14
, c) U. r: q& m5 S" q4 ~那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

5 T; G! ]- J+ o5 J' T2 T* b! Y) G: f% b
' \, W% x$ O% h1 F" ifunckey z8 'color -globvis off'
( X/ E# T! S) k  全部关掉命令,% Y3 N# S+ T- o2 z" Q7 o6 V# O3 q& }) S
还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,2 C* E+ R2 X1 @, y% y. T7 Y. F! m0 k

) F# d  M* ?. d" ?搞不懂,正在测试中 $ O$ D# m" S6 _8 o

- g: r! m# E" m7 U3 ^经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
遇一人白首 择一城终老

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
7#
 楼主| 发表于 2014-9-19 08:09 | 只看该作者
owencai 发表于 2014-9-18 16:54* s7 t& \% b+ m  D, `( b" D: Y$ ~
funckey z8 'color -globvis off'
) E6 Q! a9 h& Y" c- {! E  D$ {  全部关掉命令,
& M) y/ I" o! {还有你加的那条color -toggle "Via class/Top"我 ...

" L9 k8 n' V- w4 R哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
* \8 `- ?" Q0 E8 A+ {我的env里面这么写的:
6 d9 E, j- h( F7 y8 ealias 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"'4 p7 M2 h; X, U" O0 B' L
我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢: s2 \6 r# k) l3 a0 ^
那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的

57

主题

1152

帖子

5889

积分

五级会员(50)

Rank: 5

积分
5889
9#
发表于 2014-9-19 08:32 | 只看该作者
不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
遇一人白首 择一城终老

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
10#
 楼主| 发表于 2014-9-19 08:46 | 只看该作者
owencai 发表于 2014-9-19 08:32
- U4 I) Z  G- ]不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
( t$ o# N6 j; P2 H) `# v- X6 Y
呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……+ C4 ~1 J, k6 x( t
以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……- t. y; [+ T! z* p5 U( F
好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……

57

主题

1152

帖子

5889

积分

五级会员(50)

Rank: 5

积分
5889
11#
发表于 2014-9-19 10:08 | 只看该作者
可能用别的语句实现吧!继续研究,共同研究

点评

最终搞定了,用了一个小skill搞定了 axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive") defun(c_layer (@optional (layer "")) let((allLayer countLayer) allLayer = axlGetParam("paramLayerGrou  详情 回复 发表于 2015-8-7 16:57
遇一人白首 择一城终老

19

主题

235

帖子

2138

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2138
12#
 楼主| 发表于 2015-8-7 16:57 | 只看该作者
owencai 发表于 2014-9-19 10:08
( c' [% h. ^. G  ]可能用别的语句实现吧!继续研究,共同研究
0 Q& g$ j8 @- B, N& u# ^# W; ?
最终搞定了,用了一个小skill搞定了% q1 [. ?) ^3 Z; O: U  h
axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
( m, T* A1 _2 o6 Z9 e: [( z3 v$ c* ]5 D9 J' s! H" Z
defun(c_layer (@optional (layer ""))' k3 h5 }! _. P6 E, o( i
let((allLayer countLayer)
+ _2 i& Z- e3 D' _. D) t0 H" Y& [8 l        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
* ^4 Q5 T$ h) V; U5 c& t* e        countLayer = length(allLayer)
6 g0 W! W/ w. K# ]& j$ L$ B        if(layer != "" && atoi(layer)1 s7 `5 `1 |6 y0 G: U
                then
& {8 g6 c* r; G; D0 @1 G                        layer = atoi(layer)
2 R# j# v9 U: k( A                        if( layer <= countLayer && layer > 09 A8 i- ^  r$ \& a/ [! q
                                then
' G9 j$ y9 z) ?$ F                                        axlVisibleDesign(nil)
+ P; f" |8 h5 }3 m                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
( p$ E' [/ i7 H* I                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
- s1 ~5 `. ^/ Q# S( U                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    $ b$ \' n$ E1 Q2 F9 l/ q
                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)4 U2 _1 H3 H* V
                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)
+ |6 x# `7 O8 d2 Q! ~' W6 g                                        axlVisibleUpdate(t)
3 S0 p3 z( {/ V% @" P                                        axlUIWPrint(nil "Swtich layer complet...")2 v1 U# U5 k" ?# @$ S2 _
                                else' s: @& ?7 ~' t& v7 c; D. a
                                        axlUIWPrint(nil "Error,Wrong layer argument! + L8 e& i' t& H! B; N
                        );end if
. _) v' v# _, r                else, K* g2 ^; ^( R
                        axlUIWPrint(nil "Please Input argument...")
: u/ ?: p2 b3 x5 k6 s/ R4 T& z, Y        );end if ( @& E% ~6 F5 E( O( z% j- i
);end let1 W" a% a5 O; ]
);end defun
* [# X: y. T. d# A6 b! }: r. i$ o6 T# z" m5 _) Q- H- H$ h
4 K" q0 _( v, f9 U5 h

* k; J) z1 A6 B5 ~把这个skill加载进allegro,然后输入命令就可以了
( b" ^) k8 l% \  S2 h7 r或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层& z9 b# I' b- H6 \" b1 B$ C

评分

参与人数 1威望 +2 收起 理由
owencai + 2 你终于修炼成了啊,很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-10-23 13:39 , Processed in 0.123327 second(s), 38 queries , Gzip On.

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

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

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