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

Allegro中实现PADS无模Z命令层面切换(源码)

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在Command命令行中输入
L<n> [n] [n]...
n表示所在层序列,支持多层输入。例:显示第1,3层 Command > L1 3回车

axlCmdRegister("layernumvisible" 'layernumvisible ?cmdType "general")

procedure( layernumvisible( @rest num)
  _LCSetNumLayVis( num)
);end-procedure

;###########################################################
;#                 number layer visible                    #
;###########################################################

defun( _LCSetNumLayVis ( lnum, @optional msg)
prog( ( class, i, n, layer)
  n = 0
  ln = nil
  foreach( enum, lnum
           num = atoi( enum)
           if( num then
               if( num <= axlGetParam( "paramLayerGroup:ETCH") -> nChildren && num > 0 then
                   class = nthelem( num axlGetParam( "paramLayerGroup:ETCH") -> groupMembers)
                   i = makeVector( 11 nil)
                   i[0] = axlGetParam( "paramLayerGroup:ANTI ETCH") -> visible != nil
                   i[1] = axlGetParam( "paramLayerGroup:BOUNDARY") -> visible != nil
                   i[2] = axlGetParam( "paramLayerGroup:ROUTE KEEPOUT") -> visible != nil
                   i[3] = axlGetParam( "paramLayerGroup:VIA KEEPOUT") -> visible != nil
                   i[4] = axlIsVisibleLayer( "BOARD GEOMETRY/CONSTRAINT_AREA")
                   i[5] = axlIsVisibleLayer( "ROUTE KEEPIN/ALL")
                   i[6] = axlIsVisibleLayer( "ROUTE KEEPOUT/ALL")
                   i[7] = axlIsVisibleLayer( "DRC ERROR CLASS/ALL")
                   i[8] = axlIsVisibleLayer( "VIA KEEPOUT/ALL")
                   i[9] = axlIsVisibleLayer( "ANTI ETCH/ALL")
                   i[10] = axlIsVisibleLayer( "BOUNDARY/ALL")
                   if( n == 0 then
                       axlVisibleDesign( nil)
                     else
                       axlVisibleSet( layer)
                     );end-if
                   axlVisibleLayer( "BOARD GEOMETRY/OUTLINE", t)
                   axlVisibleLayer( strcat( "ANTI ETCH/", class), i[0])
                   axlVisibleLayer( strcat( "BOUNDARY/", class), i[1])
                   axlVisibleLayer( strcat( "ROUTE KEEPOUT/", class), i[2])
                   axlVisibleLayer( strcat( "VIA KEEPOUT/", class), i[3])
                   axlVisibleLayer( "BOARD GEOMETRY/CONSTRAINT_AREA", i[4])
                   axlVisibleLayer( "ROUTE KEEPIN/ALL", i[5])
                   axlVisibleLayer( "ROUTE KEEPOUT/ALL", i[6])
                   axlVisibleLayer( "DRC ERROR CLASS/ALL", i[7])
                   axlVisibleLayer( "VIA KEEPOUT/ALL", i[8])
                   axlVisibleLayer( "ANTI ETCH/ALL", i[9])
                   axlVisibleLayer( "BOUNDARY/ALL", i[10])
                   axlVisibleLayer( strcat( "PIN/", class), t)
                   axlVisibleLayer( strcat( "VIA CLASS/", class), t)
                   axlVisibleLayer( strcat( "DRC ERROR CLASS/", class), t)
                   axlVisibleLayer( strcat( "ETCH/", class), t)
                   if( class == "TOP" || class == "BOTTOM" then
                       axlVisibleLayer( strcat( "PACKAGE GEOMETRY/SILKSCREEN_", class), t)
                      );end-if
                   n++
                   ln = append1( ln num)
                 else
                   if( num == 0 then
                       if( n == 0 then
                           axlVisibleDesign( nil)
                           axlVisibleLayer( "BOARD GEOMETRY/OUTLINE" t)
                           class = nil
                           n++
                           ln = append1( ln num)
                         );end-if
                     else
                       axlMsgPut( "E- The %d etch layer is not exist.", num)
                     );end-if
                 );end-if
               else axlMsgPut( "E- %L is not number.", enum)
             );end-if
           if( n != 0 then layer = axlVisibleGet())
         );end-foreach
  if( n == 1 && class then axlSetActiveLayer( strcat( "ETCH/", class)))
  if( n != 0 && ! msg then
      axlVisibleUpdate( t)
      msg = ""
      foreach( n ln
               sprintf(layer "%d", n)
               if( msg == "" then msg = layer else msg = strcat( msg, " ", layer))
             );end-foreach
      axlMsgPut( "The %s etch layer display.", msg)
    );end-if
);end-prog
);end-defun

;###########################################################
;#                 customize shortcut key                  #
;###########################################################

prog( ( n, s, key)
  n = 0
  while( n < 255
         sprintf(key "l%d", n)
         sprintf(s "layernumvisible %d", n)
         axlSetAlias( key, s)
         sprintf(key "L%d", n)
         sprintf(s "layernumvisible %d", n)
         axlSetAlias( key, s)
         n++
       );end-while
);end-prog

评分

参与人数 1贡献 +6 收起 理由
deargds + 6 感谢分享

查看全部评分

该用户从未签到

推荐
发表于 2020-3-5 17:59 | 只看该作者
楼主,您好 !最近刚从 PADS 转到 allegro  ,这个源码怎么使用 ,谢谢 ?

该用户从未签到

推荐
发表于 2018-10-19 23:49 | 只看该作者
这么长时间,对于习惯pads的来说,好东西呀

该用户从未签到

推荐
发表于 2019-6-24 15:13 | 只看该作者
这个17.2多人模式下不能使用,如何解决?

该用户从未签到

2#
发表于 2011-5-28 15:36 | 只看该作者
感谢分享

该用户从未签到

3#
发表于 2011-5-29 13:12 | 只看该作者
谢谢分享~!

该用户从未签到

4#
发表于 2011-5-30 12:29 | 只看该作者
做个记号,谢谢分享
  • TA的每日心情
    奋斗
    2024-1-17 15:52
  • 签到天数: 237 天

    [LV.7]常住居民III

    5#
    发表于 2011-6-2 17:29 | 只看该作者
    很好用,謝謝大大的分享

    该用户从未签到

    6#
    发表于 2011-6-3 10:32 | 只看该作者
    感谢分享
  • TA的每日心情
    擦汗
    2024-5-15 15:49
  • 签到天数: 314 天

    [LV.8]以坛为家I

    7#
    发表于 2011-6-8 14:14 | 只看该作者
    感谢分享

    该用户从未签到

    8#
    发表于 2011-7-13 20:43 | 只看该作者
    这个要如何加载到SKILL中?请问一下用过的朋友。谢谢!

    该用户从未签到

    9#
    发表于 2011-7-23 01:23 | 只看该作者
    thanks!

    该用户从未签到

    10#
    发表于 2011-7-25 13:49 | 只看该作者
    thanks!

    该用户从未签到

    11#
    发表于 2011-8-1 09:32 | 只看该作者
    好东西,谢谢分享!!!!!!!!!!
    开放源码,楼主好样的

    该用户从未签到

    12#
    发表于 2011-8-14 12:12 | 只看该作者
    感谢lz,很有学习价值

    该用户从未签到

    13#
    发表于 2011-8-21 22:00 | 只看该作者
    顶顶顶顶顶顶

    该用户从未签到

    14#
    发表于 2011-8-22 23:51 | 只看该作者
    多谢分享。。。。。。。。。。。。。。

    该用户从未签到

    15#
    发表于 2011-9-8 13:10 | 只看该作者
    谢谢分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-9-11 00:09 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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