找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 6198|回复: 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 | 只看该作者
感謝分享快樂多~~學習學習~~感恩收下

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

2#
发表于 2011-5-28 15:36 | 只看该作者
感谢分享
谁画出这天地 又画下我和你

4

主题

346

帖子

3518

积分

五级会员(50)

Rank: 5

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

12

主题

213

帖子

880

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
880
4#
发表于 2011-5-30 12:29 | 只看该作者
做个记号,谢谢分享

116

主题

960

帖子

5983

积分

五级会员(50)

Rank: 5

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

7

主题

64

帖子

535

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
535
6#
发表于 2011-6-3 10:32 | 只看该作者
感谢分享
当裤子失去皮带,才懂得什么叫依赖...

19

主题

315

帖子

2106

积分

四级会员(40)

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

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

57

主题

1181

帖子

1807

积分

四级会员(40)

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

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

0

主题

10

帖子

102

积分

二级会员(20)

Rank: 2Rank: 2

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

1

主题

116

帖子

371

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

16

主题

339

帖子

3796

积分

五级会员(50)

Rank: 5

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

0

主题

15

帖子

-8949

积分

未知游客(0)

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

1

主题

17

帖子

-8995

积分

未知游客(0)

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

48

主题

579

帖子

3920

积分

五级会员(50)

Rank: 5

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

13

主题

702

帖子

2118

积分

四级会员(40)

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

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

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-25 20:46 , Processed in 0.075328 second(s), 36 queries , Gzip On.

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

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

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