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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
    0 z' J) x3 S1 `4 d# r4 d内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……' d; N/ H/ ]8 {# m6 e
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~- k; Z! k1 O' ?
    请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:084 h; b" Y4 D  S8 K( \/ H; s# V
    可能用别的语句实现吧!继续研究,共同研究
    : L7 ?% r/ }6 j7 V2 P0 f1 C
    最终搞定了,用了一个小skill搞定了: c0 A. ?% j2 d8 ?0 d! v/ G$ t
    axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")+ p" c  M9 b* U
    ( W3 u2 X. s* ^2 J5 i
    defun(c_layer (@optional (layer ""))8 J8 s. Y  p9 Y1 o1 h; @/ ~! a
    let((allLayer countLayer)) \9 @0 f1 `* ^% \, h3 X
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers6 r' V$ {4 C; s( x! g2 `
            countLayer = length(allLayer)4 F. n2 E/ }7 {. T( d( k; s
            if(layer != "" && atoi(layer)
    - o7 r8 |( e/ Y# \3 h0 u                then
    ) ]4 i2 b/ A7 b                        layer = atoi(layer)
      t# e/ ?3 t' ^. j0 u                        if( layer <= countLayer && layer > 0
    & k& x. U6 Y' z- V1 M                                then$ i0 I) w$ V- R5 l2 O+ ~
                                            axlVisibleDesign(nil); N' L6 q4 ?7 w4 C
                                            axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    - J9 f0 R% @2 |4 l$ U! i  q* @                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
    ) x& }* t$ n8 Y4 V9 T4 {+ Y                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    * A" N, ?' C0 L: n5 V
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)4 w) ~. U" F& g% W  e
                                            axlVisibleLayer(strcat("Board Geometry/Outline") t)
    + n0 [* a7 _7 Y# V7 h                                        axlVisibleUpdate(t)
    - r6 j2 e) Y" T! P2 G                                        axlUIWPrint(nil "Swtich layer complet...")
    * C, U$ u4 j6 p* C& k' H                                else" n1 m, _# x" \6 z8 D5 A
                                            axlUIWPrint(nil "Error,Wrong layer argument! - X/ H. r$ Q- t+ _* J+ ^
                            );end if& W, k) E2 J) u: y8 ^: E
                    else
    ( q! G3 O6 M0 t  J* S/ e                        axlUIWPrint(nil "Please Input argument...")% a. P* v$ n9 G3 o" r$ a
            );end if ! \( a* T1 Z/ o' O  }4 L
    );end let: ^' L2 R- ^# V* k0 v7 G/ g% F
    );end defun
    ( T: n. h4 \( {! _6 P& C3 P" O- [
    $ B  q4 v1 e4 p( N: ^# e: ~) ^% |
    ! p: b2 `- h1 v0 R5 p6 x/ }5 `4 m# X5 p& g/ L( J
    把这个skill加载进allegro,然后输入命令就可以了
    7 J/ r( m5 ~/ h或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层
    . J. \% }1 q9 s' {, ]" F, G! {2 Q

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:54& |( \6 q2 u' a8 @2 u8 C  t
    funckey z8 'color -globvis off'
    $ g! m8 a! C  y9 g/ m  全部关掉命令,7 ^' Y/ P# J- f9 O) k
    还有你加的那条color -toggle "Via class/Top"我 ...

    4 P) x; i8 T; z2 S3 Z" ]哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    6 t2 n+ J: k/ [* u9 I$ ealias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
    1 @$ Q/ t, Y* ^8 `+ {5 W我尝试用星号代替,可是无法识别
    + U/ v$ m$ K+ o* i不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印: D7 A( d0 T' S$ `5 p1 [% P5 U+ W
    funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印) U! L+ X0 f% F: E: N+ c" U6 J" R
    你可以根据上面的语句编你想要的层,route keepout0 n# ^- ]7 R+ t4 K5 n
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
    8 r9 a# ]& c- a; z5 Jfunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"'
    5 ?2 x- Z- T) Yfunckey 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
    . \' s. r. \7 k& i8 T9 d+ lfunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    ) Z1 S& `& E$ b& w' D+ r0 W0 _- kfunckey zb1 'color - ...
    & ~' _1 o$ q# U  f1 O
    好的,灰常感谢~我自己再研究一下。0 w, V/ T. y1 N, C* A& g5 Q3 J' I$ g
    用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33
    5 o5 l" ~" Z! @8 [好的,灰常感谢~我自己再研究一下。
    * w  {3 y' c) n, q& {" K用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

    ' N- z) ]% L% g7 N! y4 R$ T0 C5 O那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键- r8 H' r5 q+ C6 ?6 `& r$ o
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……9 E- k" J- j* P! y9 r/ n( l
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?: q+ s( E: ^+ h6 |. A* j- |
    如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    ' [; x3 S, }: l$ w( J( e+ H
    zuoyy 发表于 2014-9-12 10:14
    + }) c, t  z6 P( h3 E" ~, d那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...
    * G, Z2 s7 g3 l, X$ K0 Q7 G

    " @, q1 c* Y# e, ^+ H( C7 rfunckey z8 'color -globvis off'- X& i! ^* j' y3 w
      全部关掉命令,
    * J' P  O- r5 h: T* N% F9 `还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,7 D) _3 a+ b" l" _; `" g( G
    1 p3 t3 e' d0 o) \
    搞不懂,正在测试中
    * t+ B: G0 O' ^6 i* W& f. s1 [! Y1 L, C: ~6 m9 a# v$ K
    经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54( {: I- f9 s3 P, n: n
    funckey z8 'color -globvis off'
    7 N( `3 }, b5 e, x0 f% r) d  全部关掉命令,
    # C5 v( J: L- D还有你加的那条color -toggle "Via class/Top"我 ...

    & l7 n* p. e- s. {哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
      K& c5 E+ H/ J, e: W' o我的env里面这么写的:/ k" Y2 ]' Y1 I) ?0 Z: y
    alias 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 V9 i9 Y- o# N- }" G我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢+ A8 v% {, I2 @9 \- T8 U. y
    那个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:328 s3 _' X" b4 X' J- U
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
    4 k9 ^. ], u' W
    呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
    ( s. G) _0 `+ I# x以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……
    ( Z7 y) y7 s( s3 g3 ~4 L好后悔当时怎么没有研究下……以为是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-5-23 07:47 , Processed in 0.078125 second(s), 25 queries , Gzip On.

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

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

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