Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: mmmmyuitian

如何实现form里面根据层面分别显示routekeepout 和constriant region

[复制链接]
 楼主| 发表于 2014-12-2 22:00:13 | 显示全部楼层
vivienluo 发表于 2014-12-1 13:00
你的%s没法传递值啊。

希望您帮忙看下 代码 只要举例一个可以分层控制就行
发表于 2014-12-2 22:09:08 | 显示全部楼层
mmmmyuitian 发表于 2014-12-2 22:00
希望您帮忙看下 代码 只要举例一个可以分层控制就行

有那么纠结吗,我帮你看看。。。。
发表于 2014-12-2 23:10:14 | 显示全部楼层
给你个参考!随便写的,代码不是很优化,多注意下。
subColor.png

subColor-01.png
subColor.rar (1.17 KB, 下载次数: 9, 售价: 1 SKILL币)
 楼主| 发表于 2014-12-3 19:49:35 | 显示全部楼层
谢谢楼主 万分感谢 呵呵
发表于 2014-12-3 20:49:45 来自手机 | 显示全部楼层
希望对你有帮助。
 楼主| 发表于 2014-12-4 12:04:09 | 显示全部楼层
已經ok了 我可以以這個類推其他的 謝謝
 楼主| 发表于 2015-1-6 11:50:49 | 显示全部楼层
这里如何实现 一个checklist框, 选择展开内层或者关闭内层(gnd ,pwr)
 楼主| 发表于 2015-1-6 11:52:01 | 显示全部楼层
vivienluo 发表于 2014-12-2 23:10
给你个参考!随便写的,代码不是很优化,多注意下。

这里如何实现 一个checklist框, 选择展开内层或者关闭内层(gnd ,pwr)
 楼主| 发表于 2015-1-6 12:03:18 | 显示全部楼层
;subColor Test
;BY Vivien Luo
;2014/12/02 23:40
axlCmdRegister("aaa" 'subColor)

defun( subColor ()
        subColorformcreate()
        form = axlFormCreate(gensym() "./subColor.form" nil 'subColorAction  nil)
        axlFormSetField(form "RteKoAll"  if(axlIsVisibleLayer("ROUTE KEEPOUT/ALL"), axlLayerGet("ROUTE KEEPOUT/ALL") ->color, 'black))
        axlFormSetField(form "RteKoAll"  axlIsVisibleLayer("ROUTE KEEPOUT/ALL"))
        foreach(layer axlGetParam("paramLayerGroup:ETCH")->groupMembers
                fieldColor = strcat("RteKo" layer)
                colorLayer = strcat("ROUTE KEEPOUT/" layer)
                axlFormSetField(form fieldColor  if(axlIsVisibleLayer(colorLayer), axlLayerGet(colorLayer) ->color, 'black))
                axlFormSetField(form fieldColor  axlIsVisibleLayer(colorLayer))
        )
        axlFormDisplay(form)
)

defun(subColorAction (form)
case(form->curField
        ("RteKoAll"
                layer = "ROUTE KEEPOUT/ALL"
                axlVisibleLayer(layer, !axlIsVisibleLayer(layer))
                axlVisibleUpdate(t)
                axlFormSetField(form "RteKoAll"  axlIsVisibleLayer("ROUTE KEEPOUT/ALL"))
                axlFormSetField(form "RteKoAll"  if(axlIsVisibleLayer("ROUTE KEEPOUT/ALL"), axlLayerGet("ROUTE KEEPOUT/ALL") ->color, 'black))
        )

("Planecheck"


)



        (t
                ;axlUIConfirm("ttt")
                curField = form->curField
                foreach(layer axlGetParam("paramLayerGroup:ETCH")->groupMembers
                fieldColor = strcat("RteKo" layer)
                when(curField == fieldColor               
                colorLayer = strcat("ROUTE KEEPOUT/" layer)
                axlVisibleLayer(colorLayer, !axlIsVisibleLayer(colorLayer))
                axlVisibleUpdate(t)
                axlFormSetField(form fieldColor  if(axlIsVisibleLayer(colorLayer), axlLayerGet(colorLayer) ->color, 'black))
                axlFormSetField(form fieldColor  axlIsVisibleLayer(colorLayer))
                )
                );end when
        )
);end case
);end defun

defun( subColorformcreate ()
let((subColorPort)
        subColorPort = outfile("./subColor.form")
        fprintf(subColorPort "FILE_TYPE=FORM_DEFN VERSION=2\n")
        fprintf(subColorPort "FORM\n")
        fprintf(subColorPort "FIXED\n")
        fprintf(subColorPort "PORT 30 5\n")
        fprintf(subColorPort "HEADER \"SubColor Test\"\n")
        fprintf(subColorPort "TILE\n")
        
        fprintf(subColorPort "TEXT RteKo\n")
        fprintf(subColorPort "TLOC 1 0\n")
        fprintf(subColorPort "ENDTEXT\n")

        fprintf(subColorPort "FIELD Planecheck\n")
        fprintf(subColorPort "FLOC 10 0\n")
       fprintf(subColorPort "CHECKLIST\n")
        fprintf(subColorPort "ENDFIELD\n")
        Layers=(axlGetParam("paramLayerGroup:ETCH")->groupMembers)
        Tloc = 0
        foreach(layer Layers
         typelayer = strcat("ETCH/" layer)
         layertype=axlDBGetLayerType(typelayer)

if(layertype=="CONDUCTOR"
       then

                Tloc = Tloc + 2
                fprintf(subColorPort "TEXT %s\n" layer)
                fprintf(subColorPort "TLOC 1 %d\n" Tloc)
                fprintf(subColorPort "ENDTEXT\n")
               
                fprintf(subColorPort "FIELD RteKo%s\n" layer)
                fprintf(subColorPort "FLOC 10 %d\n" Tloc)
                fprintf(subColorPort "COLOR 2 1\n")
                fprintf(subColorPort "ENDFIELD\n")

);end else
        );end foreach
        
        fprintf(subColorPort "TEXT ALL\n")
        fprintf(subColorPort "TLOC 1 %d\n" Tloc + 2)
        fprintf(subColorPort "ENDTEXT\n")
        
        fprintf(subColorPort "FIELD RteKoAll\n")
        fprintf(subColorPort "FLOC 10 %d\n" Tloc + 2)
        fprintf(subColorPort "COLOR 2 1\n")
        fprintf(subColorPort "ENDFIELD\n")
        
        fprintf(subColorPort "ENDTILE\n")
        fprintf(subColorPort "ENDFORM\n")
        close(subColorPort)
        ;debug form file
        ;axlFormTest("./subColor.form")
);end let
);end defun  
特发出改了的skill, 请帮忙看下 "planecheck"怎么填写
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-4-26 10:23 , Processed in 0.153120 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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