EDA365电子论坛网

标题: 求助 不同层面 [打印本页]

作者: mmyutian    时间: 2014-11-30 14:40
标题: 求助 不同层面
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



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

请问哪里有问题 或者怎么改一下
作者: kevin890505    时间: 2014-12-1 23:06
axlVisibleLayer("route keepout/%s Item" t)   ORZ  这是什么函数          先用打印或者strcat合并”route keepout/“ 和item  然后在axlVisibleLayer
作者: mmyutian    时间: 2014-12-2 21:55

axlCmdRegister("alColor" 'PalColor)
defun( PalColor ()
Etch_Layers=(axlGetParam("paramLayerGroup:ETCH")->groupMembers)

  formFileName = "./PalColor.form"
  PalColor_form_create()
  
  alColor_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 "ORT 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)
)

)
)


))

        
         请大神帮忙 看看 这个是用其他人的程序修改的,




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2