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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;
    # u/ s, J, x5 M. x5 `# S内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……
    - K  T. R9 _( I6 J然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~% i" w; x; q  e3 R8 }. P9 ~$ s* {
    请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:084 W' R: X# ?  T  k# t3 |
    可能用别的语句实现吧!继续研究,共同研究
    " C  J; ?7 g) _+ g9 F$ F, `" @0 |
    最终搞定了,用了一个小skill搞定了
    # Z1 @' u) y7 k, JaxlCmdRegister("c_layer" 'c_layer ?cmdType "interactive"): a' I! ]# f! g' O. s/ i+ m
      [0 V1 g& I1 B6 c  D% d
    defun(c_layer (@optional (layer ""))- M# M9 I% c! E7 _6 b
    let((allLayer countLayer)+ T% W' p1 T- _$ ~8 j+ C9 X$ Z$ N
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    9 P* D/ n& e& B) t1 L$ P1 `" D- L        countLayer = length(allLayer)
    % X! @' w8 w6 k  o) J        if(layer != "" && atoi(layer)% b' {$ _6 D2 S  Y' u. Y
                    then+ i9 v: A* A) N9 p
                            layer = atoi(layer)
    + C* ^8 ~8 A& }                        if( layer <= countLayer && layer > 0" m8 O9 Z9 Q+ s8 j5 o+ O' ^- a
                                    then+ K; [3 d1 ], D2 C4 j! K& A1 s
                                            axlVisibleDesign(nil)
    ! }/ t$ B# L( e2 c2 @/ F9 p/ i# {' P                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    : q( w6 a9 E0 @) Z/ S: J) x                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)0 h" _  z7 c& z- g
                                            axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    , N/ N; k. D+ }# A1 l
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)
    . c1 e1 x% F* e, D9 `, `- Z                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)( v# q+ f* b3 j$ C# y# @# [
                                            axlVisibleUpdate(t)
    2 [# w$ B7 B# O, G& C7 u: N                                        axlUIWPrint(nil "Swtich layer complet...")) I0 ]! I% m: i8 M
                                    else
    ' B# q7 X: J' t: S0 h6 o$ u                                        axlUIWPrint(nil "Error,Wrong layer argument! 7 l1 d& _3 [) O& R
                            );end if& B* X% t( z8 `- C) Y2 D7 \
                    else# `1 o! W0 B% F- b, Q
                            axlUIWPrint(nil "Please Input argument...")
    + v, |& r; ^1 h" G* @; J' m        );end if
    5 p2 v7 ~" r0 ], ~( Z5 Y+ C);end let4 I3 r1 ?1 |; I4 ]( C
    );end defun/ |4 ^" \: O+ Z+ U
    # v+ j# [7 U6 g/ ~, @5 O

    / }$ u! d' }" s' J/ C0 [+ ~& g% R9 K
    把这个skill加载进allegro,然后输入命令就可以了6 t  M: j' _+ O' a6 b0 p, S* I
    或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层1 t* p. N; M" L" _8 a

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:547 w& P0 @% h* u( ?: I+ h% h" A
    funckey z8 'color -globvis off'( y: M1 `1 y6 R
      全部关掉命令,
    7 a& O$ E4 x; }# c) o2 E/ \还有你加的那条color -toggle "Via class/Top"我 ...

    5 c3 t+ g- ]8 V% b哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    9 B6 Y% u; O2 G' b" f* {alias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
    4 Z. P9 g2 U1 D1 |我尝试用星号代替,可是无法识别
    : V9 d1 G/ n3 _/ g& g% P不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
      L8 Z& U; h9 I$ I% z) Dfunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印5 X% \4 C4 w2 N  n
    你可以根据上面的语句编你想要的层,route keepout1 S+ }# z& t; Z1 O
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
    # t; V4 m5 N( _# u, ~, n; ffunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' 6 ^/ N! f& z. U6 \* V4 S4 ]
    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* c: X6 S4 f/ }+ `# s/ ~9 W6 f( _
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印1 D7 u, _& @7 ]2 f  X* Z
    funckey zb1 'color - ...
    / m. l$ K) h  Q1 G# l3 Z
    好的,灰常感谢~我自己再研究一下。  k2 [, T- A1 H7 w: ^5 |4 ?# N. R
    用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33& `2 a2 B* ~2 g: ?( t% i* J
    好的,灰常感谢~我自己再研究一下。
    + e5 f' C! O& S! x2 z用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...
    $ P+ s) k0 T3 Y5 G
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键; |# n4 J7 U  K3 K/ Q
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……7 i& F1 s: _# h* C
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?4 e4 ^1 V; k0 F1 j$ r- N
    如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑 0 n" _3 z* k' c( Q$ b
    zuoyy 发表于 2014-9-12 10:14
      `3 ]" s( k0 l$ E0 s! i那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

    0 Q8 i# g/ l) Z3 l) C. ^% C4 b
    # a4 q, K& o! D1 j- h/ efunckey z8 'color -globvis off'
    5 |+ ]4 w- }. G8 W5 V! x  全部关掉命令,
    ) t! |( u; q- n4 x( I还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,
    & L% M( \0 {% x$ E* T0 t0 ]* d: E6 m' }6 o4 W" z: X8 q
    搞不懂,正在测试中 # X! D/ b9 x( s& B
    - Z: o, y7 p( k- Q2 k+ \& @
    经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:542 W/ o" Z, o) s2 A1 `
    funckey z8 'color -globvis off'5 ^' P8 A' v, G8 N0 j
      全部关掉命令,; b- l  O$ h. y- m, U
    还有你加的那条color -toggle "Via class/Top"我 ...
    ' Q5 N6 }3 Z  r, U" c
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……, H5 Y& d, X6 C) X0 B
    我的env里面这么写的:
    / K: s, e# d3 W# I3 falias 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"'
    - N' u/ M# S5 B1 l( p0 A# X我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢3 C& C. X3 }. f+ {: y! b
    那个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: ]. y: x: b# U4 i
    不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
    " Y- w8 N  g7 e2 Q: m
    呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……! I; N4 Z) j, i3 {2 f: l1 {8 j  [
    以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……3 i9 f5 E1 T$ ]5 S' H3 m
    好后悔当时怎么没有研究下……以为是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-8-20 18:47 , Processed in 0.125000 second(s), 29 queries , Gzip On.

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

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

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