如何实现form里面根据层面分别显示routekeepout 和constriant region
如题,如何实现form里面根据层面分别显示routekeepout 和constriant region,用什么语句 Text_Loc=9Nun_lay=0
(foreach Item Etch_Layers
Nun_lay=Nun_lay+1
fprintf(lstForm "TEXT \"%d\"\n" Nun_lay)
fprintf(lstForm "TLOC 2 %d\n" Text_Loc)
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "TEXT \"%s\"\n" Item)
fprintf(lstForm "TLOC 5 %d\n" Text_Loc)
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD %s_Control\n" Item)
fprintf(lstForm "FLOC 12 %d\n" Text_Loc)
fprintf(lstForm "COLOR 2 1\n")
fprintf(lstForm "ENDFIELD\n")
Text_Loc=Text_Loc + 2
); end foreach Item Etch_Layers
代码如上 如何分层显示%s_Control 对应的routekeepout 比如点击top 后面 KO下方的框 显示route keepout top ,并且显示他的颜色 (foreach Item Etch_Layers
("%s_control" Item)
if(PalColor_form->curValue then
axlVisibleLayer("route keepout/%s Item" t)
axlVisibleUpdate(t)
else
axlVisibleLayer("route keepout/%s Item" nil)
axlVisibleUpdate(nil)
)
)
请问哪里有问题 或者怎么改一下 你的%s没法传递值啊。 要如何實現傳遞指,我就是想如圖片, 點擊對應的層面顯示對應層面的routekeepout mm= stract(Item "_control")
("mm"
if(PalColor_form->curValue then
axlVisibleLayer("route keepout/Item" t)
axlVisibleUpdate(t)
else
axlVisibleLayer("route keepout/Item" nil)
axlVisibleUpdate(nil)
) 這樣 要如果改正
mm= stract(Item "_control")
("mm"
if(PalColor_form->curValue then
mn=stract(route keepout/ "Item")
axlVisibleLayer("mn" t)
axlVisibleUpdate(t)
else
axlVisibleLayer("mn" nil)
axlVisibleUpdate(nil)
)
axlCmdRegister("PalColor" 'PalColor)
defun( PalColor ()
Etch_Layers=(axlGetParam("paramLayerGroup:ETCH")->groupMembers)
formFileName = "./PalColor.form"
PalColor_form_create()
;PalColor_form = axlMiniStatusLoad('form, formFileName 'PalColor_action t)
PalColor_form = axlFormCreate( (gensym) formFileName `(ne inner "msglines" 2) `PalColor_action t nil)
axlFormDisplay(PalColor_form)
deleteFile(formFileName)
axlControlRaise('options)
)
procedure(PalColor_form_create()
Num_Lay=0
(foreach Item Etch_Layers
Num_Lay=Num_Lay + 1
); end foreach Item Etch_Layers
Port_Size=Num_Lay + 15
lstForm = outfile( formFileName "w")
fprintf(lstForm "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(lstForm "FORM\n")
fprintf(lstForm "FIXED\n")
fprintf(lstForm "PORT 40 10\n")
fprintf(lstForm "HEADER \"Change Block\"\n")
fprintf(lstForm "TILE\n")
fprintf(lstForm "TEXT \"Global Visibility:\"\n")
fprintf(lstForm "FLOC 2 1\n")
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD btnVisAllOn\n")
fprintf(lstForm "FLOC 10 1\n")
fprintf(lstForm "MENUBUTTON \"On\" 5 3\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "FIELD btnVisAllOff\n")
fprintf(lstForm "FLOC 16 1\n")
fprintf(lstForm "MENUBUTTON \"Off\" 5 3\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "TEXT \"Outline\"\n")
fprintf(lstForm "FLOC 2 4\n")
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD clrOutline\n")
fprintf(lstForm "FLOC 10 4\n")
fprintf(lstForm "COLOR 3 1\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "GROUP \"Etch Layers\"\n")
fprintf(lstForm "GLOC 1 5\n")
fprintf(lstForm "GSIZE 20 %d\n" Num_Lay * 2 + 4 )
fprintf(lstForm "ENDGROUP\n")
fprintf(lstForm "TEXT \"KO\"\n")
fprintf(lstForm "OPTIONS underline\n")
fprintf(lstForm "FLOC 12 7\n")
fprintf(lstForm "ENDTEXT\n")
;-------------------------------;
; Set the layer toggle buttons;
;-------------------------------;
Text_Loc=9
Nun_lay=0
(foreach Item Etch_Layers
Nun_lay=Nun_lay+1
fprintf(lstForm "TEXT \"%d\"\n" Nun_lay)
fprintf(lstForm "TLOC 2 %d\n" Text_Loc)
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "TEXT \"%s\"\n" Item)
fprintf(lstForm "TLOC 5 %d\n" Text_Loc)
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD %s_control\n" Item)
fprintf(lstForm "FLOC 12 %d\n" Text_Loc)
fprintf(lstForm "COLOR 2 1\n")
fprintf(lstForm "ENDFIELD\n")
Text_Loc=Text_Loc + 2
); end foreach Item Etch_Layers
fprintf(lstForm "ENDTILE\n")
fprintf(lstForm "ENDFORM\n")
close(lstForm)
)
defun(PalColor_action (PalColor_form)
case(PalColor_form->curField
("clrOutline"
if(PalColor_form->curValue then
axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
axlVisibleUpdate(t)
else
axlVisibleLayer("BOARD GEOMETRY/OUTLINE" nil)
axlVisibleUpdate(nil)
)
if(axlIsVisibleLayer("BOARD GEOMETRY/OUTLINE") then
clrlayer=axlLayerGet("BOARD GEOMETRY/OUTLINE")
axlFormSetField( PalColor_form "clrOutline" clrlayer->color )
axlVisibleUpdate(nil)
else
axlFormSetField( PalColor_form "clrOutline" 'black)
)
)
("btnVisAllOff"
axlVisibleDesign(nil)
axlVisibleUpdate(nil)
;Button Field
;Enter Action Here
)
("btnVisAllOn"
axlVisibleDesign(t)
axlVisibleUpdate(t)
;Button Field
;Enter Action Here
)
(foreach Item Etch_Layers
mm=strcat(etch/ "Item")
mn=strcat(Item "_control")
("mn"
if(PalColor_form->curValue then
axlVisibleLayer("mm" t)
axlVisibleUpdate(t)
else
axlVisibleLayer("mm" nil)
axlVisibleUpdate(nil)
)
)
)
))
请帮忙看怎么传递函数的值 , 实现layer 分层控制