请选择 进入手机版 | 继续访问电脑版
搜索
专业IC版图外包服务 微信:drclvs
广告位:SY02 广告业务联系QQ:3173974412
无锡芯满微电子有限公司---专业研发电机驱动芯片
IC设计论坛----ictown.com
广告位:SY05 广告业务联系QQ:3173974412
查看: 690|回复: 6

[转帖] 一个简单的换层显示工具

[复制链接]

19

主题

20

帖子

310

E币

技术员

Rank: 2

积分
39
发表于 2017-12-15 22:25:10 | 显示全部楼层 |阅读模式

这个比较简单,也不算是新奇的功能了,在代码行中,默认是按上下箭头换层。当然,可使用 + -键切换visibility中各导电层,也可以用其他的按键切换。
  1. when(axlGetAlias("Up") != "UP";此处修改向上翻页快捷键 如"Up" => "+"
  2. /* ========================================================= */
  3.         axlSetFunckey("Up" "skill UP" t);此处修改向上翻页快捷键 如"Up" => "+"
  4. /* ========================================================= */
  5. );when
  6. when(axlGetAlias("Down") != "DOWN";此处修改向下翻页快捷键 如"Down" => "-"
  7. /* ========================================================= */
  8.         axlSetFunckey("Down" "skill DOWN" t);此处修改向下翻页快捷键如"Down" => "-"
  9. /* ========================================================= */
  10. );when
  11. axlCmdRegister("DOWN" 'DOWN)
  12. axlCmdRegister("UP" 'UP)
  13. defun(DOWN ()
  14.         EC_layers = axlGetParam("paramLayerGroup:ETCH")->groupmembers
  15.         sum = length(EC_layers)
  16.         ACT_layer = substring(axlGetActiveLayer() 6 20)
  17. by_ck = 0
  18.         prog( ()
  19.                 for(i 0 sum-1
  20.                         when(ACT_layer == nth(i EC_layers)
  21. by_ck = i
  22.                                 return(by_ck)
  23.                         );when
  24.                 );for
  25.         );prog 获取索引 兼容15.x
  26.         
  27.         
  28.         if(by_ck == sum - 1
  29.                 then
  30.                         NXT_layer = nth(0 EC_layers)
  31.                 else
  32.                         NXT_layer = nth(by_ck+1 EC_layers)
  33.         );
  34.         axlSetActiveLayer(sprintf(nil "ETCH/%s" NXT_layer))
  35.          axlVisibleDesign(nil)
  36.         axlVisibleLayer(sprintf(nil "ETCH/%s" NXT_layer) t)
  37.         axlVisibleLayer(sprintf(nil "VIA CLASS/%s" NXT_layer) t)
  38.         axlVisibleLayer(sprintf(nil "PIN/%s" NXT_layer) t)
  39.         axlVisibleLayer(sprintf(nil "DRC ERROR CLASS/%s" NXT_layer) t)
  40.         axlVisibleLayer(sprintf(nil "ROUTE KEEPOUT/%s" NXT_layer) t)
  41.         axlVisibleLayer("ROUTE KEEPOUT/ALL" t)
  42.         axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
  43.         axlVisibleUpdate(t)

  44. );defun
  45. defun(UP ()
  46.         EC_layers = axlGetParam("paramLayerGroup:ETCH")->groupMembers
  47.         sum = length(EC_layers)
  48.         ACT_layer = substring(axlGetActiveLayer() 6 20)
  49. by_ck = 0
  50.         prog( ()
  51.                 for(i 0 sum-1
  52.                         when(ACT_layer == nth(i EC_layers)
  53. by_ck = i
  54.                                 return(by_ck)
  55.                         );when
  56.                 );for
  57.         );prog 获取索引 兼容15.x
  58.         
  59.         if(by_ck == 0
  60.                 then
  61.                         NXT_layer = nth(sum - 1 EC_layers)
  62.                 else
  63.                         NXT_layer = nth(by_ck -1 EC_layers)
  64.         );
  65.         axlSetActiveLayer(sprintf(nil "ETCH/%s" NXT_layer))
  66.          axlVisibleDesign(nil)
  67.         axlVisibleLayer(sprintf(nil "ETCH/%s" NXT_layer) t)
  68.         axlVisibleLayer(sprintf(nil "VIA CLASS/%s" NXT_layer) t)
  69.         axlVisibleLayer(sprintf(nil "PIN/%s" NXT_layer) t)
  70.         axlVisibleLayer(sprintf(nil "DRC ERROR CLASS/%s" NXT_layer) t)
  71.         axlVisibleLayer(sprintf(nil "ROUTE KEEPOUT/%s" NXT_layer) t)
  72.         axlVisibleLayer("ROUTE KEEPOUT/ALL" t)
  73.         axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
  74.         axlVisibleUpdate(t)

  75. );defun
复制代码


积分规则
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



版权所有:EDABOSS论坛 投诉受理:13816911948 合作热线:13816911948

备案信息:苏经营性ICP B2-20090218号 皖ICP备09697823号 电子公告服务许可文件号:皖通[2009]556号

Powered by EDABOSS X3.4 Tamplate By EDABOSS论坛  © 2001-2013 Comsenz Inc.

广告投放 微信:drclvs

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