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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;6 |- T7 n; }; U
    内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……
    ; G4 U$ I0 D! D然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~! l2 J3 f1 y) n" q! G; i6 g
    请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08
    + z, P& A% Z6 d  D' G3 f可能用别的语句实现吧!继续研究,共同研究

    3 H" o) S: w* b9 K$ q) d( y& {最终搞定了,用了一个小skill搞定了
    + P7 m7 ^5 I# S- F7 D; a- waxlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")
    $ t3 p( w0 x7 h8 D; W* ^5 x. w0 r' T: r* o* E4 _
    defun(c_layer (@optional (layer ""))
    * q( n7 j6 D6 U- klet((allLayer countLayer)9 F4 e) K1 s8 l' z, I* m! X2 u7 b/ j
            allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    1 ]* m  ?7 u% C( B$ T% c0 O% d        countLayer = length(allLayer). m, w( K/ P1 R# [. h& \
            if(layer != "" && atoi(layer)
    1 Q# T7 G7 x* K2 [& w                then/ U4 P$ ?5 h+ b1 D! c; D( z+ }
                            layer = atoi(layer)
    ) h0 L+ e& g+ h9 \                        if( layer <= countLayer && layer > 0% Z) n9 S" _' H8 l
                                    then- r4 f" i/ w/ u4 F+ U
                                            axlVisibleDesign(nil)
    # [4 u5 m0 v! @# E& s7 o7 H, j                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)7 I0 R# t6 X. W. F+ d) `( }) ^% H2 ]
                                            axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)% W3 V, g) ~' E) i
                                            axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    0 u. b$ a* Z1 Y2 C$ x7 k$ O
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)7 s  H( v0 \8 m4 _9 N/ e& R% B; l
                                            axlVisibleLayer(strcat("Board Geometry/Outline") t)
    , e$ J4 c  ?$ o3 P7 k8 g                                        axlVisibleUpdate(t)
    $ ?& u! ?, H9 x! E- r                                        axlUIWPrint(nil "Swtich layer complet...")
    4 z9 {/ ]- p5 O! \8 T" h                                else
    : i" D+ s2 a- f, G1 A( m( ^                                        axlUIWPrint(nil "Error,Wrong layer argument! 1 n( U2 u4 q+ ?5 d* b9 u& D
                            );end if0 h3 s2 V6 X9 c6 z" ~
                    else
    3 T' C; P( b* w; z8 l' N' k0 G                        axlUIWPrint(nil "Please Input argument...")7 H! a( h; ?5 D( Q; G/ ^! c* b: k9 m
            );end if : r: e/ }/ f) c# n, a$ G$ K
    );end let
      C! G- x2 P# O! I0 A);end defun
    7 K7 o0 A3 H: x" K3 |$ [
    3 q6 W6 r9 Q; W8 ^& A' U3 C8 X! t7 Y4 b+ [# D9 \+ G
    ) g. r* g1 _2 `) V, ~
    把这个skill加载进allegro,然后输入命令就可以了
    " z; }+ h/ W# {, z" d+ v或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层' U; G1 @* t6 q/ ^2 h8 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
    ' X& @9 r8 |& ^+ q- Hfunckey z8 'color -globvis off'8 c, |# }" r# D
      全部关掉命令,6 x8 _5 D3 M. c" K4 z% |
    还有你加的那条color -toggle "Via class/Top"我 ...

    6 s+ R+ Q9 ~3 I3 E! r哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    ' ]& \, S$ o+ i% s$ K! p+ T6 K8 yalias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'3 l5 U3 o& X* _
    我尝试用星号代替,可是无法识别' z& ^. a3 g8 ^1 D9 d6 T. o
    不知道这个要怎么描述……
  • TA的每日心情
    开心
    2026-5-7 15:16
  • 签到天数: 40 天

    [LV.5]常住居民I

    2#
    发表于 2014-9-11 21:20 | 只看该作者
    Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,
    / a1 e& Q, G* Z% \5 r还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,/ W. t0 p% T% E" `2 d
    另:录制的应该可以吧,不好用么?
  • TA的每日心情
    开心
    2026-5-7 15:16
  • 签到天数: 40 天

    [LV.5]常住居民I

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    / o* a) i' y8 J% e  cfunckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
    , u  _  r* |5 X: d* P你可以根据上面的语句编你想要的层,route keepout, N* {5 Z# j# G8 w+ |, i7 a' }
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,
    # B! a2 n8 M8 c, M! |5 q" P- Wfunckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"' . b3 c- Q5 `. @( o& u8 Z9 o; C
    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: I4 p0 ^  b* j2 {# g
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    - }# Q8 o% R2 r/ F) Yfunckey zb1 'color - ...

    , N4 s% E9 J+ d& i" \7 L" m0 [% G好的,灰常感谢~我自己再研究一下。
    ; S* H7 [0 M0 ~9 b5 l3 M% p用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33
    2 H$ h3 S3 V) G8 @/ t2 f好的,灰常感谢~我自己再研究一下。
    . ^1 _6 z9 d$ C' H1 e( m9 p4 B用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

    ( ]/ v% n/ \% Y  V那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键$ a- B. N/ ^( f  w/ Q
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……: ^# R# t: {. L* ?2 m6 m% E- Q( f8 f
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
    ' I( x- O% \0 F3 C4 w' S8 i如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2026-5-7 15:16
  • 签到天数: 40 天

    [LV.5]常住居民I

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    . k% C* h% l+ p3 F
    zuoyy 发表于 2014-9-12 10:14. \" S! K% K" p
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...

    2 {3 h: H0 l; M4 m: X" U* u* `. m+ @4 |
    funckey z8 'color -globvis off'" l3 U1 n# O  m& }2 p- Q3 |2 `
      全部关掉命令,' `% d' I4 ]1 s- u* g& ~8 P+ X
    还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,+ k( x/ s5 q: W( C( ^5 h8 J: z

    2 ~2 e/ z& j+ I; p3 S) c7 d搞不懂,正在测试中 : l7 Y- w6 {& Z

    + K2 }7 E# w8 q  v. Q9 X经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    2 X. R0 C0 C6 @, e( W- D/ afunckey z8 'color -globvis off'" S- l+ v4 J- Y+ E8 W* K2 t
      全部关掉命令,
    7 ?/ s- \. q- Y. q4 W还有你加的那条color -toggle "Via class/Top"我 ...
    5 Q1 R& I# `2 p
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
    ( C/ q" ~, P1 g1 T2 h我的env里面这么写的:: u6 P/ ^( G7 p
    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"'2 C$ G- U& J' q
    我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢5 p' @9 M- n; y- l- j! q* o
    那个Via Class/Top我这边是可以的,你看一下你的那个层名称是不是这样命名的,这个好像还是区分大小写的
  • TA的每日心情
    开心
    2026-5-7 15:16
  • 签到天数: 40 天

    [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
    ; z9 s3 \& Z& R" b  a! h- F0 @/ Y- Q! e不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!

    7 y5 t" ?) J9 i) I4 f+ z* H呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……
    7 q2 H% v) w, p4 R* i$ c# l以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……0 u# L- P+ H5 w4 Z- ]
    好后悔当时怎么没有研究下……以为是Cadence软件自带的功能……
  • TA的每日心情
    开心
    2026-5-7 15:16
  • 签到天数: 40 天

    [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-5-7 20:22 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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