chuankay 发表于 2014-1-3 09:00:03

一个简单的换层显示工具

这个比较简单,也不算是新奇的功能了,在代码行中,默认是按上下箭头换层。当然,可使用 + -键切换visibility中各导电层,也可以用其他的按键切换。when(axlGetAlias("Up") != "UP";此处修改向上翻页快捷键 如"Up" => "+"
/* ========================================================= */
        axlSetFunckey("Up" "skill UP" t);此处修改向上翻页快捷键 如"Up" => "+"
/* ========================================================= */
);when
when(axlGetAlias("Down") != "DOWN";此处修改向下翻页快捷键 如"Down" => "-"
/* ========================================================= */
        axlSetFunckey("Down" "skill DOWN" t);此处修改向下翻页快捷键如"Down" => "-"
/* ========================================================= */
);when
axlCmdRegister("DOWN" 'DOWN)
axlCmdRegister("UP" 'UP)
defun(DOWN ()
        EC_layers = axlGetParam("paramLayerGroup:ETCH")->groupMembers
        sum = length(EC_layers)
        ACT_layer = substring(axlGetActiveLayer() 6 20)
by_ck = 0
        prog( ()
                for(i 0 sum-1
                        when(ACT_layer == nth(i EC_layers)
by_ck = i
                                return(by_ck)
                        );when
                );for
        );prog 获取索引 兼容15.x
       
       
        if(by_ck == sum - 1
                then
                        NXT_layer = nth(0 EC_layers)
                else
                        NXT_layer = nth(by_ck+1 EC_layers)
        );
        axlSetActiveLayer(sprintf(nil "ETCH/%s" NXT_layer))
        axlVisibleDesign(nil)
        axlVisibleLayer(sprintf(nil "ETCH/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "VIA CLASS/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "PIN/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "DRC ERROR CLASS/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "ROUTE KEEPOUT/%s" NXT_layer) t)
        axlVisibleLayer("ROUTE KEEPOUT/ALL" t)
        axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
        axlVisibleUpdate(t)

);defun
defun(UP ()
        EC_layers = axlGetParam("paramLayerGroup:ETCH")->groupMembers
        sum = length(EC_layers)
        ACT_layer = substring(axlGetActiveLayer() 6 20)
by_ck = 0
        prog( ()
                for(i 0 sum-1
                        when(ACT_layer == nth(i EC_layers)
by_ck = i
                                return(by_ck)
                        );when
                );for
        );prog 获取索引 兼容15.x
       
        if(by_ck == 0
                then
                        NXT_layer = nth(sum - 1 EC_layers)
                else
                        NXT_layer = nth(by_ck -1 EC_layers)
        );
        axlSetActiveLayer(sprintf(nil "ETCH/%s" NXT_layer))
        axlVisibleDesign(nil)
        axlVisibleLayer(sprintf(nil "ETCH/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "VIA CLASS/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "PIN/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "DRC ERROR CLASS/%s" NXT_layer) t)
        axlVisibleLayer(sprintf(nil "ROUTE KEEPOUT/%s" NXT_layer) t)
        axlVisibleLayer("ROUTE KEEPOUT/ALL" t)
        axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
        axlVisibleUpdate(t)

);defun

kedacadence 发表于 2014-2-12 15:33:12

mingqi 发表于 2014-2-10 15:03 static/image/common/back.gif
可以给发些入门的资料么

主要在看一些文档文件
X:\Cadence\SPB_15.7\doc\sklanguser\sklanguser.pdf
X:\Cadence\SPB_15.7\doc\sklangref\sklangref.pdf
X:\Cadence\SPB_15.7\doc\algroskill\algroskill.pdf

vivienluo 发表于 2014-1-3 20:43:39

不错,支持原创。。。

kedacadence 发表于 2014-1-8 16:21:24

学习了 目前刚开始学习allegro-skill

chuankay 发表于 2014-1-8 22:43:25

kedacadence 发表于 2014-1-8 16:21 static/image/common/back.gif
学习了 目前刚开始学习allegro-skill

坚持,不是很难,祝你早日成功。

mingqi 发表于 2014-2-10 15:03:07

kedacadence 发表于 2014-1-8 16:21 static/image/common/back.gif
学习了 目前刚开始学习allegro-skill

可以给发些入门的资料么

srqrs 发表于 2014-4-2 17:56:42

不错支持;

fycat 发表于 2014-4-3 16:20:57

学习了~~~~

一直在路上 发表于 2014-4-8 16:46:49

支持支持:lol

menglide 发表于 2014-10-22 14:50:54

楼主真是辛苦你了
页: [1] 2 3
查看完整版本: 一个简单的换层显示工具