mmmmyuitian 发表于 2014-11-29 10:56:15

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

如题,如何实现form里面根据层面分别显示routekeepout 和constriant region,用什么语句

mmmmyuitian 发表于 2014-11-30 12:30:53

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

代码如上 如何分层显示%s_Control 对应的routekeepout

mmmmyuitian 发表于 2014-11-30 12:53:05

比如点击top 后面 KO下方的框 显示route keepout top ,并且显示他的颜色

mmmmyuitian 发表于 2014-11-30 13:19:16

(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)
)
)
请问哪里有问题 或者怎么改一下

vivienluo 发表于 2014-12-1 13:00:50

你的%s没法传递值啊。

mmmmyuitian 发表于 2014-12-2 13:26:49

要如何實現傳遞指,我就是想如圖片, 點擊對應的層面顯示對應層面的routekeepout

mmmmyuitian 发表于 2014-12-2 13:30:30

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)
   ) 這樣 要如果改正

mmmmyuitian 发表于 2014-12-2 13:32:44


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)
   )

mmmmyuitian 发表于 2014-12-2 21:58:30


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)
)

)
)


))

      
      

mmmmyuitian 发表于 2014-12-2 21:59:34

请帮忙看怎么传递函数的值 , 实现layer 分层控制
页: [1] 2 3
查看完整版本: 如何实现form里面根据层面分别显示routekeepout 和constriant region