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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
    4 T9 {! c2 z! X; i内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……2 F; n4 Y2 f% j1 S
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~, \$ _) Z! d0 F
    请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08
    9 D' q2 ]  K, S* X/ l0 g2 `( W; m可能用别的语句实现吧!继续研究,共同研究

    / Q' h) V2 W0 s/ J2 x最终搞定了,用了一个小skill搞定了
    # Q: D( _+ W$ T; X8 l7 daxlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")( z6 S4 r  U! t7 T2 T
    $ f; ?/ v) p! T' l, A8 Y
    defun(c_layer (@optional (layer ""))1 x0 n3 e9 F+ L) n7 Q
    let((allLayer countLayer)# i6 L! c# j- R+ \: K0 n# z! p
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    . G  u  d+ c* I. k0 E: a7 a- n        countLayer = length(allLayer)1 i+ G2 |  U1 r; b
            if(layer != "" && atoi(layer)3 g' L% J( e4 k# A
                    then
    ( a# W; T, y: J) a1 U' H                        layer = atoi(layer)4 J; }% p" L$ A" C
                            if( layer <= countLayer && layer > 0
    5 [- M) M, \7 k2 g& f# `# k, h. G7 [                                then
    3 ^  O; R6 K( J8 c                                        axlVisibleDesign(nil)
    - i& X* `6 u, u; f2 P" j                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    $ L) i/ k( |4 z2 c                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
    ; y+ F' x6 Q5 l- k& s. I                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    3 v$ K! v; Z& u- i
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)5 ]$ {. R7 n# p4 H5 K4 B8 R0 L
                                            axlVisibleLayer(strcat("Board Geometry/Outline") t)$ x! m" z$ ~4 j9 y+ [0 D4 W3 {
                                            axlVisibleUpdate(t)
    ) K  ^' f9 Y1 k. W+ o                                        axlUIWPrint(nil "Swtich layer complet...")
    9 U7 {. r% ~; H/ v3 d; N' F                                else
    : \% C) D3 t$ _                                        axlUIWPrint(nil "Error,Wrong layer argument! - T4 o) T# D/ C' c& ?
                            );end if  C) Y* r; P& ?5 N4 v+ Q
                    else+ i: o, \% C/ T* A& v- q
                            axlUIWPrint(nil "Please Input argument..."); ]6 f- {5 }% I; M* l. D
            );end if 9 {2 ~2 r5 y- Q1 e* _1 T
    );end let
      J. k2 e; S! T) c+ z/ u, t);end defun
    2 c4 N( g0 k. }# `$ R+ p$ L( K8 M3 G- k9 t" |: `$ l

    ! N3 d, [' T9 E  b
    5 W3 b4 Q" p+ Z把这个skill加载进allegro,然后输入命令就可以了
    4 n5 C1 t% P: p8 O8 u: d: k, ?或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层
      n* h) i* L( ~8 i% P+ u

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    5 ^1 m. L6 C! g8 _9 ~funckey z8 'color -globvis off'1 H5 S8 P2 B' n: |0 C& j
      全部关掉命令,
    $ ~: C" Z3 Y- S+ `* D& G还有你加的那条color -toggle "Via class/Top"我 ...
    6 B8 U& ?4 L0 P- f6 k: w
    哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    1 K( Z* D7 ~9 k1 U4 m+ }! [2 @alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
      Y/ j* Y, c- q2 C我尝试用星号代替,可是无法识别& O, ^  l* z; h7 E; l. |6 n
    不知道这个要怎么描述……
  • TA的每日心情
    开心
    2026-4-17 15:28
  • 签到天数: 30 天

    [LV.5]常住居民I

    2#
    发表于 2014-9-11 21:20 | 只看该作者
    Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,
    1 @* [) Z$ h( `; }- c6 A6 \. X还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,
    5 N8 w- t7 @1 a2 \另:录制的应该可以吧,不好用么?
  • TA的每日心情
    开心
    2026-4-17 15:28
  • 签到天数: 30 天

    [LV.5]常住居民I

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    1 v  n  w6 D% u5 @  O/ b8 efunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印2 R4 D  @" I7 _& u. e# R) g
    你可以根据上面的语句编你想要的层,route keepout$ \0 V7 }% Z% c) Z0 n9 p: {' a
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
    7 g6 `5 P) D  q- K2 I7 g! Yfunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' : G; m& W4 w* W6 q+ X
    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
    % i! i" Y8 ]- l! j6 r) @0 T2 Lfunckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    ! B& T6 A! W$ Z6 z& b' T& K. e6 [6 Nfunckey zb1 'color - ...
    6 r! H1 E( \' t! W. A
    好的,灰常感谢~我自己再研究一下。8 C* E' m+ W7 \4 g2 X) ^) g* p
    用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33% Z3 v+ Y$ O5 S! s$ Z# S1 }0 \
    好的,灰常感谢~我自己再研究一下。
    5 G4 K2 t9 u) e+ A用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

    ; z8 u  f9 [/ D& w' K那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键
    2 O# V) ]* w1 C, U) O& h* S  Q4 e8 U& @我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……4 w, ]+ j9 P/ N0 b9 x4 b
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
      }$ Q5 z& J7 \4 X5 L) L如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2026-4-17 15:28
  • 签到天数: 30 天

    [LV.5]常住居民I

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑 * v3 Q+ f" e( |" f8 O9 D' i# Y: }
    zuoyy 发表于 2014-9-12 10:14
    , n: x+ _% k: F! E" s) L8 `那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

    ' b7 V1 M' s! z+ g
    - y$ V! B  {) ]! Afunckey z8 'color -globvis off'
    4 v" z8 l+ E, F; O. n4 W  全部关掉命令," I# v' H5 \5 z- a6 K# o
    还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
    ( D( ^9 ~  ?! \! H4 @
    . f' Z  O# K% P搞不懂,正在测试中
    6 d2 g2 m, M1 H+ M, _& W4 s4 o2 d. I1 K% q# o( N- |7 K
    经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    8 J8 g9 k# N6 l! N# O9 E6 w8 e! G' |funckey z8 'color -globvis off'$ r2 s2 n5 @1 _7 r: q
      全部关掉命令,
    9 f5 u9 T7 Z  ^7 f还有你加的那条color -toggle "Via class/Top"我 ...
    5 k1 T/ [! e0 `4 U& R
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
    . ~' Z3 v' F0 ?! W3 \我的env里面这么写的:
    1 i. c7 Y" Q6 d2 M* S8 U! Aalias 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"'9 D. A8 W' q. b/ ]
    我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢* n* m, b# I) B' K. V
    那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
  • TA的每日心情
    开心
    2026-4-17 15:28
  • 签到天数: 30 天

    [LV.5]常住居民I

    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+ s5 }& G8 V; |9 A  k( W1 s
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
    - _! g6 u+ f6 ~5 T) ^4 \1 q- ^
    呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
    * E# Y! Y3 J4 y# I- t以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……
    ( [) \& Y, @) |/ o6 u2 F好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
  • TA的每日心情
    开心
    2026-4-17 15:28
  • 签到天数: 30 天

    [LV.5]常住居民I

    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, 2026-4-18 21:48 , Processed in 0.093750 second(s), 30 queries , Gzip On.

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

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

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