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

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

[复制链接]
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
    , A2 x' K8 e% M9 d$ Q内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……% |. w4 f2 L- S) |* W
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~
    3 G( ^' r$ L7 N; q请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08
    ' q, ?8 \8 r+ Q$ Q/ W4 m5 X  f9 J" X可能用别的语句实现吧!继续研究,共同研究
    9 `% W# a! I' V7 _# C
    最终搞定了,用了一个小skill搞定了3 Z7 e  `' m5 d9 U3 T! c' p/ q7 m
    axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
    2 M! q% J8 O2 K6 |/ e8 G  q+ m" F! M" d& W! s6 l( c( ^, d8 S& z5 c
    defun(c_layer (@optional (layer ""))0 `2 l  C6 n: T& E
    let((allLayer countLayer)2 `. a+ l- Y- _1 K6 R# T4 S
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers4 X1 s: ?% M: W6 [: N. v. H7 T4 a- N" t
            countLayer = length(allLayer)
    + t: K0 M3 O% w: {8 i( n& I# j        if(layer != "" && atoi(layer)
    9 @2 c" [( E5 w4 E* K                then
    - G* D" V  l% J+ h' |* k. V                        layer = atoi(layer): Z- @) z# o& ^5 @+ s3 u/ H6 s
                            if( layer <= countLayer && layer > 0; s5 {' K) |" ^& [' U
                                    then
    . x' H; m% k+ L" S7 o5 z: L; x                                        axlVisibleDesign(nil)# J9 c7 J/ z: u7 o% w/ C
                                            axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    1 _: J) v' q/ L; j0 W' x                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)" E! o( j: z% w
                                            axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)   
    + [, z- ~/ E4 z: e$ Q                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)
    % T  {) R9 I/ a                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)% |: N0 t% q4 X- d- r, J: f6 H  i$ D
                                            axlVisibleUpdate(t)
    ! i6 ]& t; Q% \1 X( M! ?                                        axlUIWPrint(nil "Swtich layer complet...")
    * @6 w* K  ]; S  {5 f# ]8 O                                else
    . z9 Q7 V* H# G( f* A4 J                                        axlUIWPrint(nil "Error,Wrong layer argument!
    # t" r  v' c, o6 e! y                        );end if  ^2 p5 m) Z* E8 `: M8 N  S! S
                    else, o6 }+ ]9 e0 ?" t( h! b
                            axlUIWPrint(nil "Please Input argument..."): _3 p; H/ k; Z3 h
            );end if
    ; J3 x9 }9 x: C0 k8 t);end let7 V8 u8 B% O" i2 |( e8 Q
    );end defun
    # k0 h9 F0 ^! ^) ~0 ?) N6 h1 u; F( L7 l: F. F# k

    ; z- N  k" [% e9 K
    + ?/ y7 v1 d, M0 v把这个skill加载进allegro,然后输入命令就可以了
    / @; {+ V! H! A0 B/ o" @( ?6 I+ a或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层; l$ z- U  B: o+ l2 o; k6 F( A

    评分

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

    查看全部评分

  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:54! ?+ |( D8 g7 P. E, V# g$ m( N" Z
    funckey z8 'color -globvis off'
      C+ O) B3 g, i( b  全部关掉命令,& A# j" v8 z# d( g7 W: U2 x$ |& B7 u
    还有你加的那条color -toggle "Via class/Top"我 ...

    0 F. f( u2 i( v: G# f  Q* x2 z6 m哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    ; c, B* s9 P3 r3 X" Z3 `alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'7 `5 g8 w1 d9 O
    我尝试用星号代替,可是无法识别' P5 |# ?+ z$ U7 w0 y) y
    不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2014-9-11 21:20 | 只看该作者
    Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,3 C' v  o- w. |( D4 O
    还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,
    7 m2 M; c" u; T6 \. H另:录制的应该可以吧,不好用么?
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印  l" A( \; I, P# h
    funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
    ! J. Q1 N1 L! s6 [2 g3 r你可以根据上面的语句编你想要的层,route keepout+ F: ^6 o5 ^3 v- V
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,9 B" K, K* f, ?! s( t3 V" {+ e
    funckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' , d/ v1 _( s2 f1 t) ]+ g9 ^
    funckey z6 'color -toggle "Pin/BOTTOM";color -toggle "Etch/BOTTOM"'
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2014-9-12 08:33 | 只看该作者
    owencai 发表于 2014-9-12 08:20
    . l0 A/ K" }, U* ^3 N3 Vfunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印: h0 }# s3 i: h
    funckey zb1 'color - ...
    # j6 u$ R/ n8 b
    好的,灰常感谢~我自己再研究一下。' w5 f% I0 v  a9 ~! X, r
    用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33: D$ R8 t: s9 H
    好的,灰常感谢~我自己再研究一下。
    - ~- ?/ K7 N, t6 O9 d) v0 c1 @6 |用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...
    * W' q; O  U; O) A  ~
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键
    1 o; f% D9 ~( s8 N+ S1 \我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……8 j4 `+ r9 l% M$ Q+ h1 B+ ?
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
    9 H/ n2 y2 d7 D9 [; b6 T如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    0 x7 w( ]8 ]& |( x/ g
    zuoyy 发表于 2014-9-12 10:141 {7 _) W3 o4 H+ K9 [$ a
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...
    , h) g0 ~' r$ ]: p# j# S, K
    5 M' I+ G$ F/ v
    funckey z8 'color -globvis off'  T5 V! L2 a3 S5 X8 p5 Z+ g0 k
      全部关掉命令,
    ; Z. ~3 s8 C7 Q+ P& u还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,5 I! s5 l4 ?. S; y

    ! E0 R1 q6 D( E) E& {2 @7 t5 G$ Y搞不懂,正在测试中
    % p  ]& e* x9 S. N7 c+ ?5 |! x
    9 D) d$ U  b! P4 x/ \; ]: l  V/ n. a3 n经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54/ S" L( k9 z0 C. F: X: w% H
    funckey z8 'color -globvis off': G: I: [% J1 L- T  u. p  A/ M' O, H/ s
      全部关掉命令,/ c7 Q# M3 n" J/ D" ]+ k
    还有你加的那条color -toggle "Via class/Top"我 ...

    ( M9 `3 [- h' o哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
    4 H* p* w4 r; E, I  d4 s" U3 x我的env里面这么写的:
    $ A. v4 I  J# Kalias 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"': W. r( R$ k; [; s$ {. u2 ^5 \- u
    我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢4 V: k6 i; V' M' E; ^9 S2 E& {
    那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
    发表于 2014-9-19 08:32 | 只看该作者
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
     楼主| 发表于 2014-9-19 08:46 | 只看该作者
    owencai 发表于 2014-9-19 08:32- B) h) W* m7 c( }
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!

    / D* s( ~* p. k& ~! n, A呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……0 u/ ^4 k! B; K$ Z* ~7 B, _0 @
    以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……2 P( p, J' a  X" V
    好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    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
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-10 17:31 , Processed in 0.125000 second(s), 25 queries , Gzip On.

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

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

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