📄 setlayout.il
字号:
; Add/Sub layeout Designators auto crossection
; -------------------------------------------
;==================================================================
; Main Function
;==================================================================
axlCmdRegister("auto crossection" 'LX_Set_layout)
defun( LX_Set_layout ()
SL_SetState_Form_Ptr = nil
SL_SetState_Form_Data = nil
when(axlOKToProceed()
when( _SL_SetState_Form_Creat()
_SL_SetState_Form_Display()
);end-when
);end-when
);end-defun LX_Set_layout
;==================================================================
; _SL_SetState_Form_Creat ()
;==================================================================
(defun _SL_SetState_Form_Creat ()
prog( ()
form_file = outfile("sl_cn.form")
fprintf( form_file "FILE_TYPE = FORM_DEFN VERSION=2\nFORM\nFIXED\n")
fprintf( form_file "PORT 48 28 \n")
fprintf( form_file "HEADER \"Set Layout Cross Section\" \n")
fprintf( form_file "TILE \n")
fprintf( form_file "TEXT \"s--signal g--ground p--power For example:The 4 layers input s g p s\" \n")
fprintf( form_file "TLOC 1 0 \n")
fprintf( form_file "ENDTEXT \n")
fprintf( form_file "TEXT \"Please Input Layer_state:\" \n")
fprintf( form_file "TLOC 2 2 \n")
fprintf( form_file "ENDTEXT \n")
fprintf( form_file "FIELD laystate \n")
fprintf( form_file "FLOC 21 2 \n")
fprintf( form_file "STRFILLIN 23 28 \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "TEXT \"Current layer:\" \n")
fprintf( form_file "TLOC 2 4 \n")
fprintf( form_file "ENDTEXT \n")
fprintf( form_file "FIELD current_layer \n")
fprintf( form_file "FLOC 4 6 \n")
fprintf( form_file "LIST \"\" 42 8 \n")
fprintf( form_file "OPTIONS sort \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "FIELD rename_on \n")
fprintf( form_file "FLOC 4 22 \n")
fprintf( form_file "CHECKLIST \"Selected ,will rename\" \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "FIELD add \n")
fprintf( form_file "FLOC 5 24 \n")
fprintf( form_file "MENUBUTTON \"Add\" 8 4 \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "FIELD del \n")
fprintf( form_file "FLOC 20 24 \n")
fprintf( form_file "MENUBUTTON \"Delete\" 8 4 \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "FIELD cancel \n")
fprintf( form_file "FLOC 35 24 \n")
fprintf( form_file "MENUBUTTON \"Exit\" 8 4 \n")
fprintf( form_file "ENDFIELD \n")
fprintf( form_file "ENDFIELD\n")
fprintf( form_file "ENDTILE \n")
fprintf( form_file "ENDFORM \n")
close( form_file )
if( isFile("sl_cn.form") then
return( t )
else
axlMsgPut("ERROR 01: Unable to Open .form file")
return( nil )
);end-if
);end_prog
) ; end _SL_SetState_Form_Creat
;==================================================================
; _SL_SetState_Form_Display ()
;==================================================================
defun( _SL_SetState_Form_Display ()
prog( ()
let( ( form )
form = axlFormCreate( (gensym) "sl_cn.form" '(se outer) '_SL_State_CallBack t)
SL_SetState_Form_Ptr = form
if( (SL_SetState_Form_Data == nil) then
setq( SL_SetState_Form_Data t)
laystate = strcat("")
rename_on = nil
axlFormSetField( form "laystate" laystate)
putprop( SL_SetState_Form_Data laystate 'laystate)
_LX_Changname()
axlFormSetField(form "current_layer" dislayer_list)
axlFormDisplay( form )
);end-if
);end-let
);end-prog
);end-defun _SL_SetState_Form_Display
;==================================================================
; _SL_State_CallBack()
;==================================================================
defun( _SL_State_CallBack (form)
prog( ()
case( form->curField
("laystate"
axlMsgPut("Enter setup of layer .")
laystate = form->curValue
t)
("rename_on"
axlMsgPut("Enter setup of layer .")
rename_on = form->curValue
if(rename_on==t
then
_LX_del_rename()
);end_if
axlFormListDeleteAll(form "current_layer")
_LX_Changname()
axlFormSetField(form "current_layer" dislayer_list)
axlFormSetField(form "current_layer" nil)
_LX_CreatCam()
_LX_CreatClp()
t)
("add"
plag=0
plag=_LX_SL_ADD(laystate)
if(plag!=1
then
axlFormListDeleteAll(form "current_layer")
;layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers
;foreach( selectlayer layerlist (axlFormSetField form "current_layer" selectlayer))
_LX_Changname()
axlFormSetField(form "current_layer" dislayer_list)
axlFormSetField(form "current_layer" nil)
laystate=""
laystate = form->curValue
_LX_CreatCam()
_LX_CreatClp()
;_LX_SL_Cancel()
_LX_cancel_caminit()
axlMsgPut("Add Done")
);end_if
t)
("current_layer"
axlMsgPut("selected layer can be delete.")
del_layer = form->curValue
t)
("del"
_LX_SL_delete(del_layer)
if(rename_on==t
then
_LX_del_rename()
);end_if
_LX_CreatCam()
axlFormListDeleteAll(form "current_layer")
;layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers
;foreach( selectlayer layerlist (axlFormSetField form "current_layer" selectlayer))
_LX_Changname()
axlFormSetField(form "current_layer" dislayer_list)
axlFormSetField(form "current_layer" nil)
_LX_CreatCam()
_LX_CreatClp()
;_LX_SL_Cancel()
axlMsgPut("Delete Done")
t)
("cancel"
_LX_CreatCam()
_LX_CreatClp()
_LX_SL_Cancel()
nil)
);end-case
);end_prog
);end-defunction _SL_State_CallBack()
;==================================================================
; _LX_SL_Cancel()
;==========================================================================
defun( _LX_SL_Cancel ()
when( isFile( "sl_cn.form" ) deleteFile("sl_cn.form"))
when( SL_SetState_Form_Ptr axlFormClose( SL_SetState_Form_Ptr ))
axlClearSelSet()
axlCancelEnterFun()
);end-defun _LX_SL_Cancel
;==========================================================================
; _LX_SL_ADD()
;==========================================================================
;defun( _LX_SL_ADD (statepara)
;prog( ()
; _LX_PDGETC_ERR()
;;-------------add layer---------------------
; layernum=1
; IsBottom=0
; while(IsBottom==0
; i=1
; if(next_layer=car(all_layer)!=" "
; then
; layernum=layernum+1
; all_layer=cdr(all_layer)
; if(all_layer==nil
; then
; IsBottom=1
; );end_if
; else
; loop=1
; new_Layer_name=nil
; new_layer_list=nil
; while(loop==1
; i=i+1
; next1_layer=nthelem(i all_layer)
; layernum=layernum+1
; when(next1_layer=="s"
; if(layernum<10
; then
; sprintf(new_Layer_name,"%s%d",layernum,"is0",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; else
; sprintf(new_Layer_name,"%s%d",layernum,"is",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; );end_if
; );end_when
; when(next1_layer=="g"
; if(layernum<10
; then
; sprintf(new_Layer_name,"%s%d","gnd0",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; else
; sprintf(new_Layer_name,"%s%d","gnd",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; );end_if
; );end_when
; when(next1_layer=="p"
; if(layernum<10
; then
; sprintf(new_Layer_name,"%s%d","power0",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; else
; sprintf(new_Layer_name,"%s%d","power",layernum)
; new_layer_list=cons(new_Layer_name new_layer_list)
; );end_if
; );end_when
; ;把new_layer放入new_layer_list用when语句
; i=i+1
; next2_layer=nthelem(i all_layer)
; if(next2_layer!=" "
; then
; loop=0
; layernum=layernum+1
; i=i+1
; next3_layer=nthelem(i all_layer)
; if(next3_layer==nil
; then
; need_layer_name="BOTTOM"
; IsBottom=1
; else
; when(next2_layer=="s"
; if(layernum<10
; then
; sprintf(need_layer_name,"%s%d","art0",layernum)
; else
; sprintf(need_layer_name,"%s%d","art",layernum)
; );end_if
; );end_when
; when(next2_layer=="g"
; if(layernum<10
; then
; sprintf(need_layer_name,"%s%d","gnd0",layernum)
; else
; sprintf(need_layer_name,"%s%d","gnd",layernum)
; );end_if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -