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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    以前用过这个功能,就是在命令行输入1显示的是第一层的器件,孔,线,然后2就切换到第二层,以此类推;0 l# ^* }+ N# h$ k& ]
    内层的话只显示线和孔,当然,route keepout也是显示出来的,我用script录制功能试过,但是效果不太好……. W" F$ I6 X% ?8 n* N# b
    然后同理,输入ka可以显示所有的route keepout,输入pbt可以显示TOP层的placebound,等等~: S* V; g& R1 S- m
    请教哪位大神有什么好的方法来实现下~
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2015-8-7 16:57 | 只看该作者
    owencai 发表于 2014-9-19 10:08
    4 G. M/ G) ^8 i3 X; e可能用别的语句实现吧!继续研究,共同研究
    . K2 {8 H5 `2 H
    最终搞定了,用了一个小skill搞定了# _( Z( v8 [1 y1 y& n- g
    axlCmdRegister("c_layer" 'c_layer ?cmdType "interactive")8 O% T) I7 F3 J% Q

    $ `# P8 W* g2 @7 Bdefun(c_layer (@optional (layer ""))
    " e9 P, w: i% C2 h" X- c2 ilet((allLayer countLayer)
    3 c; v; {6 |8 j1 J% I1 r        allLayer = axlGetParam("paramLayerGroup:ETCH")->groupMembers
    , X+ M" w' u  P# Z. e8 v/ |        countLayer = length(allLayer)
    3 i- l8 o! V- d" @/ x1 t0 O        if(layer != "" && atoi(layer)
    + r% {" d/ U. t5 b3 G( V2 o                then1 x( A; ~7 g$ L8 p  I6 S
                            layer = atoi(layer)
    0 A& d+ [# w7 V$ Q                        if( layer <= countLayer && layer > 0
    ! u) F# B% \& x0 l+ a, V                                then( v# s+ N! V* T7 y) f$ o3 s* ]
                                            axlVisibleDesign(nil)
    5 z# f6 k( y) k$ }                                        axlVisibleLayer(strcat("ETCH/" nthelem(layer allLayer)) t)
    , S" e7 z6 n0 c/ s* s% t                                        axlVisibleLayer(strcat("PIN/" nthelem(layer allLayer)) t)
      m" r8 s# E- n6 ?5 e3 p! O                                        axlVisibleLayer(strcat("VIA CLASS/" nthelem(layer allLayer)) t)    9 [$ r, u1 C% L' c$ i! P
                                            axlVisibleLayer(strcat("DRC ERROR CLASS/" nthelem(layer allLayer)) t)
    % k, X$ y+ T- H                                        axlVisibleLayer(strcat("Board Geometry/Outline") t)
    # _! r% _, @8 }- l3 o                                        axlVisibleUpdate(t)
    1 K0 ]7 Z/ t7 ?( ?                                        axlUIWPrint(nil "Swtich layer complet..."); E/ n8 H5 c7 K! w, ^7 ~# C9 L# {5 V! ^
                                    else
    2 W5 \1 w# x- B1 M7 }                                        axlUIWPrint(nil "Error,Wrong layer argument!
    3 T( d; k  W" N1 s9 i                        );end if6 {4 q" {0 A! Z# b; V
                    else( D8 z% @8 B! F8 |% J9 \. ~, A% t
                            axlUIWPrint(nil "Please Input argument...")
    & X; V$ v% t" c# n( ~        );end if ' s# w- j$ ?9 V. `6 V- U
    );end let" _8 t4 [( i6 u/ k* I$ D- M
    );end defun7 U! Y, h9 ~0 [# x1 V) E

    3 w, s& ]. ^4 [# F( t. _5 y) \/ r
    : C3 |. ]9 h, i/ y
    , t: V% K7 b" M$ F6 n把这个skill加载进allegro,然后输入命令就可以了1 P  M+ K) _) B% Q' d
    或者在env文件里面加快捷命令1 2 3 4 ...就可以实现用数字换层7 I; A3 R  v# h: T

    评分

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

    查看全部评分

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

    [LV.1]初来乍到

    推荐
     楼主| 发表于 2014-9-19 08:15 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    4 X% ?8 S0 `! n2 N/ Y5 l+ Jfunckey z8 'color -globvis off'
    7 @6 u+ ~& {7 L. c; ?' [$ p  全部关掉命令,% u, X3 d2 ]: \' Y0 {8 n3 k' Y3 k( _
    还有你加的那条color -toggle "Via class/Top"我 ...

    3 j8 B; P9 o/ \5 u, ?; G" U哦,对了,我这边还有个问题……中间层每次的叠层都不一样,在env文件里面写:
    5 Y1 u/ ^; |& xalias 2 'color -globvis off;color -toggle "Via Class/L02_*";color -toggle "Etch/L02_*";color -toggle "Board Geometry/Outline"'
    / u+ Q% W5 v' R$ L) C, b$ q2 p我尝试用星号代替,可是无法识别
    2 L% Q, R9 Z9 i+ H不知道这个要怎么描述……
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2014-9-11 21:20 | 只看该作者
    Skill论坛有个skill,输入命令L1,显示第一层,L2显示第二层,感觉用起来不错哦,
    : N9 O$ s& j6 a4 Y* a: T& ]2 V+ L: M还有一种快捷键设置,但是只能显示器件和线,过孔无法显示,现在用手机上,明天早上再上传,你到时候再研究下能不能改成全部显示,- J8 V3 y/ O3 Q
    另:录制的应该可以吧,不好用么?
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2014-9-12 08:20 | 只看该作者
    funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    : ?. q8 q$ ~7 e$ i3 `funckey zb1 'color -toggle "Package Geometry/Silkscreen_bottom"' #控制底层丝印
      o$ i8 I' q+ L- q* y5 F: K你可以根据上面的语句编你想要的层,route keepout' A8 s7 R" d9 g  l  y
    下面是按1显示器件和线的快捷键,但是不显示过孔,你研究下,看能不能完善下,# Y2 D& I( L6 |' d9 R& T7 f
    funckey z1 'color -toggle "Pin/Top";color -toggle "Etch/Top"'
      T3 R, C( E8 v% y9 S2 k8 U' 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
    - k5 |" ^+ i4 x3 D! U  K  W5 @funckey zt1 'color -toggle "Package Geometry/Silkscreen_top"'    #控制顶层丝印
    1 }, o8 \; R2 d0 {funckey zb1 'color - ...

    - H  F* \. ]: y; _# Q/ ?好的,灰常感谢~我自己再研究一下。
    # m! {* y7 @5 o5 Q: n0 r' E0 t+ R用script录制的显示的是一步一步的,然后以前用的是输了命令过后直接显示的,所以觉得方法可能不对……
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2014-9-12 10:14 | 只看该作者
    zuoyy 发表于 2014-9-12 08:33
    5 h% `" N; A+ y4 E; a好的,灰常感谢~我自己再研究一下。
    1 u+ D/ w4 q! t5 I8 S6 x0 O/ x用script录制的显示的是一步一步的,然后以前用的是输了命令过后直 ...

    ' P7 P( a  {- {: A那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样好像就是通过命令行而不是快捷键3 c* h5 i8 G' N- t2 l$ P* z
    我刚才尝试了下,这个是可以显示的,但是好像只能开,不能在开的同是关掉其他层……" b% q1 {2 j/ B
    那个在color里面有个Global Visibility可以全局的全开和全关,这个想要通过命令行怎么实现?
    * R6 x- g9 P9 n* a+ `: H  F如果实现了得话就可以在这些语句前面加一句all off,然后就能把其他的全部关掉,只开我们想要的那些层。
  • TA的每日心情
    开心
    2023-2-12 15:39
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2014-9-18 16:54 | 只看该作者
    本帖最后由 owencai 于 2014-9-18 17:05 编辑
    6 I: D" {) Y8 x( ?3 |7 F* a
    zuoyy 发表于 2014-9-12 10:142 ^3 [6 Y4 |' P: N0 S% l4 q+ H
    那个孔的可以加一条color -toggle "Via Class/Top";然后就能显示孔了,然后最好把funckey改成alias,这样 ...
    3 ]4 i* L, F9 K4 |" |
    7 g; u( S8 o) E+ |
    funckey z8 'color -globvis off'
    : G7 e; C" O: L' p  全部关掉命令,
    7 w/ B: N/ u; O6 W) |7 Q+ c" M还有你加的那条color -toggle "Via class/Top"我这里是没有用的,显示E- Unmatched quote 我的是16.3 的,2 S( {! H3 y# O
    * ?* s& f, k# t: G
    搞不懂,正在测试中
      d# g, _; I7 K9 n7 Y% W/ a
    ( q8 Y7 p: W; Z, }. ?& u+ {  k& W3 t经过测试可以用,嘿嘿,不能把这个语句直接复制到命令行执行,否则会出错,直接放在ENV里就可以,
  • TA的每日心情
    奋斗
    2020-7-15 15:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2014-9-19 08:09 | 只看该作者
    owencai 发表于 2014-9-18 16:54
    ! U7 `1 M# F! S' g1 Bfunckey z8 'color -globvis off'
    2 N. m$ Z) U: m. x  全部关掉命令,
    - U; n  q0 {4 k; J$ S还有你加的那条color -toggle "Via class/Top"我 ...
    , Q5 w3 U2 y0 z9 Z3 i' Z1 a
    哦,感谢~这个命令找不到……后来用录制的scr代替了这一步……
    / B6 I7 M& U% a我的env里面这么写的:$ \2 A+ @; P! d. R' @* k# q
    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"'
    + E, |( i) O3 M9 r0 r& g2 @5 n3 ?8 {' A我等下把第一步的改一下,用命令执行要快一点,scr文件执行有点慢$ J; [: P9 n0 K7 J9 ~* H! g
    那个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
    4 R, Q, j9 t" r" {! }! U1 |! s" h9 G不能用*号代替,系统识别不了这个subclass,只能在命名层的时候将名字与ENV里一样!
    9 t8 g3 G6 y' L1 J
    呃……这样啊……但是我以前用过这个功能啊……叠层不可能每次都一样的……! q' \* {. h8 ]' c! k7 i
    以前公司用的是按几就是第几层,然后每次的叠层都不一样的,层的名字也不一样,但是没有改过ENV里面的东西……, g. R: Y, @, x( ]; _
    好后悔当时怎么没有研究下……以为是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-11-3 04:41 , Processed in 0.171875 second(s), 28 queries , Gzip On.

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

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

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