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

在“Allegro实现PADS无模Z命令切换层的源码”里怎么加入其它想要的层

[复制链接]
  • TA的每日心情
    开心
    2022-5-14 15:11
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-5-19 22:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本帖最后由 lanyun1981 于 2022-5-19 22:40 编辑

    今天无意中发现论坛里的一个帖子,“allegro中实现pads无模Z命令层面切换(源码) - Allegro skill开发 - EDA365电子论坛网”
    超链接不知道为什么,总是不成功,把源码复制如下:

    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

    把源码做成skill文件,是可以使用的。
    但是在显示TOP和Bottom的时候,想把如下图的几层也加到这个源码里面去。
    尝试这修改了几行源码,都不成功。


    有没有大神对这个源码做过类似修改的?应该怎么加这个层呢?

    还请不吝赐教啊!谢谢!!




    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    2#
    发表于 2022-5-20 01:56 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    开心
    2022-5-14 15:11
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2022-5-20 11:08 | 只看该作者
    本帖最后由 lanyun1981 于 2022-5-20 11:11 编辑
    aarom 发表于 2022-5-20 01:56
    請問使用是 layernumvisible +數字 達成你要顯示的層面嗎??

    尝试过layernumvisible+想要的层,不成功。。如下图:
    软件里显示如下:

  • TA的每日心情
    开心
    2022-5-14 15:11
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2022-5-20 11:33 | 只看该作者
    aarom 发表于 2022-5-20 01:56
    請問使用是 layernumvisible +數字 達成你要顯示的層面嗎??

    最新情况,加了下面这一行,Assembly可以显示了。。


    20220520110649.png (119.36 KB, 下载次数: 0)

    20220520110649.png

    点评

    看一下原廠正式層面名稱, 你就成功了.  发表于 2022-5-21 02:08
  • TA的每日心情
    开心
    2022-5-14 15:11
  • 签到天数: 2 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2022-5-21 16:05 | 只看该作者
    增加了如下两行,实现了想要的结果,谢谢!

  • TA的每日心情
    开心
    2025-8-22 15:14
  • 签到天数: 103 天

    [LV.6]常住居民II

    6#
    发表于 2025-7-7 16:25 | 只看该作者
    我的是17.4版本的,做成skill后,没有反应呀,可以贴个界面图?

    该用户从未签到

    7#
    发表于 2025-7-8 13:52 | 只看该作者
    66666666666666

    该用户从未签到

    8#
    发表于 2025-7-9 16:10 | 只看该作者
    学习学习,感谢分享!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 20:54 , Processed in 0.140625 second(s), 28 queries , Gzip On.

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

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

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