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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
    1 q) f8 ^+ O/ V: a8 s内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……6 D9 C5 W" [2 x7 J8 P  S
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~
    ; N/ H5 N: u5 P# a请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08/ e: q9 ]% |5 l- V8 e, O) Y4 e
    可能用别的语句实现吧!继续研究,共同研究

    ; y; o/ b' A& U8 @2 Z; M最终搞定了,用了一个小skill搞定了, z. @# [' o0 |" N; C  @1 G
    axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
    3 J7 A# K1 Z* f$ P3 c( q5 h
      [% O# d+ F8 S0 u/ ~defun(c_layer (@optional (layer ""))
    " X3 O& C: i# w5 e/ ilet((allLayer countLayer)
    ( k' U! E- O* G9 @$ A        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    & J0 M: C. g5 F: q$ m        countLayer = length(allLayer)
    + U& D! O8 ~9 A+ K- Q        if(layer != "" && atoi(layer)
    7 Y! L5 P- u1 Q* s# }5 i7 D1 W* I                then! E) B- e" {: Q7 t0 i# r/ v$ r
                            layer = atoi(layer)
    ) k, ^, `) A6 m/ ~- e                        if( layer <= countLayer && layer > 0
    * B# W* w# q4 l& ^: n                                then0 q& O! {+ \9 T+ s! w' [
                                            axlVisibleDesign(nil)( U+ J+ ^. `  A
                                            axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    $ P' S( G* @% `# R% F# u                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
    / ]5 o# }0 W' x0 R                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    0 R/ ~8 @6 a' |8 V9 q' L
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)2 }: K' O) K$ j; k9 @- X* o
                                            axlVisibleLayer(strcat("Board Geometry/Outline") t)
    8 I. ^* _. r" F4 u2 B                                        axlVisibleUpdate(t)
    $ u1 O$ g: d1 c3 ]2 o- a* n0 P4 a                                        axlUIWPrint(nil "Swtich layer complet...")
    * B  M/ V6 Z: V& _9 g                                else
    2 f: q- K) b' e4 E3 q: C( a5 K. f" E                                        axlUIWPrint(nil "Error,Wrong layer argument! 8 ~6 `! @" ~8 j8 ~7 W) o! w( _) D- W+ d# g
                            );end if
    ' C; V! O. W, C$ r; ?: e                else
    ) k. Q( Z+ U6 l# C" q9 k                        axlUIWPrint(nil "Please Input argument...")2 v/ j8 ?9 y; p# _
            );end if $ W9 m2 j- y" ^" I: \( b$ i; r
    );end let
    : v) s& f: Z. P" u) Q0 c  P1 R);end defun
    . ?+ o3 P' f/ ]5 c# t+ g/ P2 d' n
    # Q/ ]" Q: w! H- t0 c0 Y% @
    5 E3 t8 t; i& u" j* k; r' o! g, X
    把这个skill加载进allegro,然后输入命令就可以了6 F' m( z9 `  U' X- B1 k$ k0 o
    或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层; F5 c( S7 d0 j& r

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:547 z, K7 _6 e7 p5 q1 c4 o2 z
    funckey z8 'color -globvis off'( [- Q2 q3 Q, R' @$ j+ q8 ~: P) u
      全部关掉命令,
    ) E) N) p" U# C) L还有你加的那条color -toggle "Via class/Top"我 ...
    5 _; e) M, w* }! r4 ?9 r4 f5 ]
    哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    : {# ?5 v1 ^! ^% ?4 `. _! z; y0 kalias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
    ; h5 W; O; F# @" q( s# a' M/ i我尝试用星号代替,可是无法识别3 `  c9 j  _! l: Q: D0 t5 c: a4 [1 R
    不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    * h6 r' D% \2 q; Y% a2 H5 ?) Z& ufunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
    ; |, a2 V& z/ Q( d你可以根据上面的语句编你想要的层,route keepout
    3 S/ |' X% Z/ w, y! E+ F: i$ M下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下," C, `+ H  Z4 b7 q
    funckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"'
    ) I+ }8 J3 Z: C" t% |/ Wfunckey 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
    6 Y/ ?# K4 A" i/ v5 J! K% lfunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    8 U# W3 D0 @  d4 xfunckey zb1 'color - ...

    # O: z) g' q! D  a# ^& z% K好的,灰常感谢~我自己再研究一下。
    0 r( O. T% ~3 E  |3 i用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33
    1 o. v; O! |7 `& Q/ q: v好的,灰常感谢~我自己再研究一下。
    ) R5 O/ S8 `/ y  @/ w% d& v# \用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...
    ; Z7 b3 h! N& d  Z/ \; Z
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键3 s0 b9 S$ G- h& Z* B% O8 Y0 n/ P
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……
    6 O  z2 P2 a7 U: l6 ^; {那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
    4 ?5 d& H7 g  W3 z8 u# i如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    ( D* w# g6 [( c5 m# k0 Z5 ~! W- X
    zuoyy 发表于 2014-9-12 10:14( `* W/ T1 W  d& O1 i
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...
      w- e/ P! j" h2 t  A- c& L, n2 a

    - @& T7 u, g0 t( I0 E; `4 b7 k* u; efunckey z8 'color -globvis off'
    , ]0 t8 K9 I- w) ^3 K  全部关掉命令,( A/ P; X0 g7 p4 b0 h2 s% \
    还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
    : L* J+ G4 H1 D8 C' l+ `* v9 I: f6 _6 ?  c7 L
    搞不懂,正在测试中
    % k1 N% p% U9 D. H- i
    + f2 N5 G6 c" h1 f2 o$ [9 ?7 _经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:540 p( I  o- ~; N, M/ h. q# f
    funckey z8 'color -globvis off'- |% I* P+ R7 [+ P: Q& f
      全部关掉命令,
    6 U) G$ y. c3 x& x还有你加的那条color -toggle "Via class/Top"我 ...
    ( X( v3 O- m2 Z
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
    ) j2 i! [  B# b$ }7 v7 |" Y我的env里面这么写的:
    ) h; l' g; N- k2 i$ E! 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"'1 U6 g! @2 g; u
    我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢
    2 f6 i, ?$ Z6 Z+ D# z那个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+ v! [$ q  C0 w* d$ w
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!

    , {5 X% C' J2 n( W+ R呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……( {% B, }4 k0 w9 O, X5 a& K2 X$ s
    以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……2 w! a/ [1 C" J
    好后悔当时怎么没有研究下……以为是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-10-8 22:19 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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