找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 6200|回复: 50
打印 上一主题 下一主题

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

  [复制链接]

3

主题

32

帖子

497

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
497
跳转到指定楼层
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 感谢分享

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏9 支持!支持! 反对!反对!

0

主题

50

帖子

-1万

积分

未知游客(0)

积分
-11987
推荐
发表于 2016-2-2 09:53 | 只看该作者
这个必须得好评。多谢分享源码。学习了。

1

主题

209

帖子

173

积分

二级会员(20)

Rank: 2Rank: 2

积分
173
推荐
发表于 2015-8-21 14:45 | 只看该作者
支持支持支持  非常感謝

0

主题

24

帖子

1395

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1395
推荐
发表于 2016-1-14 01:48 | 只看该作者
感謝分享快樂多~~學習學習~~感恩收下

0

主题

431

帖子

2033

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2033
51#
发表于 2017-7-26 15:11 | 只看该作者
很實用,謝謝分享~

17

主题

64

帖子

298

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
298
50#
发表于 2017-7-20 17:38 | 只看该作者
很不错 谢谢分享

4

主题

88

帖子

3977

积分

五级会员(50)

Rank: 5

积分
3977
49#
发表于 2017-7-19 01:30 | 只看该作者
强大

10

主题

379

帖子

4169

积分

五级会员(50)

Rank: 5

积分
4169
48#
发表于 2016-11-14 17:08 | 只看该作者
感谢分享

64

主题

613

帖子

2459

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2459
47#
发表于 2016-7-18 13:27 | 只看该作者
谢谢分享

14

主题

205

帖子

1585

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1585
46#
发表于 2016-3-18 13:53 | 只看该作者
谢谢分享

1

主题

269

帖子

2120

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2120
45#
发表于 2016-3-17 09:32 | 只看该作者
厉害呀

40

主题

572

帖子

1306

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1306
44#
发表于 2016-3-14 14:07 | 只看该作者
好东西,感谢分享~

15

主题

112

帖子

238

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
238
42#
发表于 2016-1-31 11:16 | 只看该作者
感谢分享

7

主题

31

帖子

131

积分

二级会员(20)

Rank: 2Rank: 2

积分
131
40#
发表于 2016-1-13 09:45 | 只看该作者
这个怎么用。。。。

8

主题

239

帖子

401

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
401
39#
发表于 2016-1-12 08:43 | 只看该作者
谢谢.

0

主题

3

帖子

-2930

积分

未知游客(0)

积分
-2930
38#
发表于 2016-1-11 19:04 | 只看该作者
感謝分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-25 22:25 , Processed in 0.076608 second(s), 35 queries , Gzip On.

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

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

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