找回密码
 注册
查看: 3663|回复: 11
打印 上一主题 下一主题

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;: a4 y& E8 {2 y6 Q0 f' K6 p7 s# m
    内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……0 a- w% [( h, M; Z
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~
    4 ]- ^  E. G2 ~1 A# J- l请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08
    5 a. p, q4 t: Q$ J可能用别的语句实现吧!继续研究,共同研究
    " {9 L/ W$ d  t; T
    最终搞定了,用了一个小skill搞定了: X9 |  x+ _! `, @; B
    axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
    8 \( m, ~3 X- l: K3 ~. r
    8 v2 \3 ^9 f* |0 g+ t# N% Idefun(c_layer (@optional (layer ""))6 K. g2 k( c! s- b6 H% l  J
    let((allLayer countLayer)% S$ ]7 r  o0 a- L( @
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    3 Z% Q- C/ R' @' v        countLayer = length(allLayer)  o% k' \$ J8 M$ z9 u9 d
            if(layer != "" && atoi(layer)
    ) w& l$ ~8 C( k/ F+ d                then7 d- j! R; F1 I$ P3 p
                            layer = atoi(layer)
    1 l7 x  m! f6 p$ e' Q# A! Z0 Z                        if( layer <= countLayer && layer > 0
    ) R" ]& y9 V: [: p& m! F                                then
    # O+ R. D) p* N6 C- Q5 E                                        axlVisibleDesign(nil)) H, c" Z( x6 K7 z
                                            axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)8 X+ J/ @  i8 Z; n
                                            axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
    % W: R4 n8 D" ~( ^( p7 M                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)   
      z+ b  D# Q! ?                                        axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)( d+ k; t1 j1 r1 p+ i( e% K
                                            axlVisibleLayer(strcat("Board Geometry/Outline") t)
    + j* w: S. z5 E2 H                                        axlVisibleUpdate(t)
    - p" M: O/ f! H8 M  ]                                        axlUIWPrint(nil "Swtich layer complet...")
    ( M7 H. k3 ~9 ~+ e4 O$ \                                else
    5 B, }1 i( Q- C# W$ n% l- f                                        axlUIWPrint(nil "Error,Wrong layer argument! 4 ^. g- a. n! m( H7 Q  d$ Z
                            );end if
    - Y( q/ |4 ]3 e+ H                else
    7 @5 p0 k! a. J7 }                        axlUIWPrint(nil "Please Input argument...")
    4 R5 o$ l6 F; K0 Y% P) @  g* P        );end if
    / U9 n- o2 x  o: S2 D);end let5 I2 _8 n- s5 x  Y* V- _; C/ w9 v5 e" F
    );end defun0 K$ F5 p4 V, l# o4 u2 Z0 P; `: B4 _

    $ X: Z( H4 S/ O( E( a
    5 V$ m& [% L, C# T
    - i$ Z5 m# x5 Q- ?把这个skill加载进allegro,然后输入命令就可以了4 z+ F* f, V, r# g& V
    或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层
    9 f' W, _; F/ A% D2 b

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    # Y- T+ z! Q8 p! Ofunckey z8 'color -globvis off'! K3 G5 S* H* _5 r/ c
      全部关掉命令,+ W, q! V" m4 ?  f+ n! G
    还有你加的那条color -toggle "Via class/Top"我 ...

    - R4 M! ?* q$ |- I* Z哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:+ w8 q$ b2 W5 A" X( Y
    alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"') r/ D' _; F+ S/ S# X0 i
    我尝试用星号代替,可是无法识别1 w7 W+ R0 x9 z1 n  v2 ?
    不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2014-9-11 21:20 | 只看该作者
    Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,, H' E4 W) @2 s, a1 B% ]" d
    还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,4 O% y  X4 s+ G( x% O0 x
    另:录制的应该可以吧,不好用么?
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印$ m5 \3 l! f% C! i* v: Z' e
    funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印, a. b& ?) K! R0 J4 |
    你可以根据上面的语句编你想要的层,route keepout4 d2 m+ [3 |4 U- X1 S
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,! M! `1 m' @  W; G' }
    funckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"'
    2 C: V/ U7 b1 n  H. ^9 u* ]9 efunckey 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
    # ]/ W' J" j' \: q$ G: z+ `1 afunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    4 ]4 o( k3 V6 x$ L* S' |funckey zb1 'color - ...

    + T- ?8 B) s; R+ [好的,灰常感谢~我自己再研究一下。
    + A! i# ^, o  U# z- [8 X用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33& W: p) m/ |0 y  r) j+ y! n  D$ s% `
    好的,灰常感谢~我自己再研究一下。
    ; q- v; q, Y$ r7 \5 X- S+ G. D, d用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

    - L7 z; Y2 A. v# ~那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键! l2 d8 K+ _/ L) P1 p8 _  n/ x
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……
    / m5 H- @" ~( ^# X' k: \那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
    - B# p6 v( m1 E$ M0 I+ E( E如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    + {; G6 S3 D* i0 j- f8 J
    zuoyy 发表于 2014-9-12 10:14
    . {, T9 C$ h! A8 w, M那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

    8 K* q6 s* ^1 ^& k$ \3 U4 i
      c- h& }9 I. }# m$ H" r+ G0 _funckey z8 'color -globvis off'
    " X+ Z5 w% ]  a4 K7 |  全部关掉命令,9 n4 O) [2 B, }  D2 b0 T, Y1 L
    还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
    # d  u* M' A% D8 h8 j& U( @+ @9 I& w4 S  `, `! k
    搞不懂,正在测试中 8 }+ `( U0 K6 ~) r6 q+ |
    9 t9 {- O/ n; q0 i: ]* A; U& i
    经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    0 X0 r+ b6 Y& P0 Y; gfunckey z8 'color -globvis off'
    / m6 ?- N9 @) G/ G2 }  全部关掉命令,+ [" F' j! M2 d' E# M; L4 X+ x, \
    还有你加的那条color -toggle "Via class/Top"我 ...
    2 o& j- o$ z5 w+ m, i+ T
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……: ~' b: c9 \) e' Y+ {
    我的env里面这么写的:
    + X; p0 q. x* F. ralias 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"'
    ! b5 `8 _: z) Y1 {2 @我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢
    : \( S$ P& |* M1 i9 U那个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) l4 {6 K" l  `% b6 z  m
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
      U, i7 ?2 Y# I1 x$ ]8 f1 e! ?
    呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
    2 r* g  }, E) y# c: m7 g& k以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……
    9 G: \2 J3 V! @% w' _$ ?' F好后悔当时怎么没有研究下……以为是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-3-13 00:03 , Processed in 0.078125 second(s), 29 queries , Gzip On.

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

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

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