📄 setlayout.il
字号:
; );end_when
; when(next2_layer=="p"
; if(layernum<10
; then
; sprintf(need_layer_name,"%s%d","power0",layernum)
; else
; sprintf(need_layer_name,"%s%d","power",layernum)
; );end_if
; );end_when
; );end_if
; creat_layer_list=reverse(new_layer_list)
; ;foreach(layer_list new_layer_list
; ; creat_layer_list=cons(layer_list creat_layer_list)
; ; );end_foreach
;
; foreach(new_Layer_name creat_layer_list
; if(getchar(new_Layer_name 1)=='a
; then
; axlLayerCreateCrossSection(need_layer_name "Conductor" "Copper" new_Layer_name "Positive")
; ;axlShell("replay ./FR4.scr")
; rpt = outfile("./FR4.scr")
; fprintf(rpt "version 14.2\n\nscriptmode +invisible\n\nsetwindow pcb\n\ndefine xsection\n")
; fprintf(rpt "setwindow form.xsection \n")
; fprintf(rpt "FORM xsection %s edit Insert \n" need_layer_name)
; fprintf(rpt "FORM xsection done \n")
; close(rpt)
; axlShell("replay ./FR4.scr")
; deleteFile("FR4.scr")
;
; else
; axlLayerCreateCrossSection(need_layer_name "Plane" "Copper" new_Layer_name "Negative")
; ;axlSell("replay ./FR4.scr")
; rpt = outfile("./FR4.scr")
; fprintf(rpt "version 14.2\n\nscriptmode +invisible\n\nsetwindow pcb\n\ndefine xsection\n")
; fprintf(rpt "setwindow form.xsection \n")
; fprintf(rpt "FORM xsection %s edit Insert \n" need_layer_name)
; fprintf(rpt "FORM xsection done \n")
; close(rpt)
; axlShell("replay ./FR4.scr")
; deleteFile("FR4.scr")
;
; );end_"p"||"g"
; );endach
; for(j 1 i-1
; all_layer=cdr(all_layer)
; j++
; );end_for
; );end_if next2_layer
; );end_while loop
; );end_if next_layer
; );end_while isbottom
;);end-prog
;);end-defun _LX_SL_ADD
;============================================================================
;_LX_PDGETC_ERR
;============================================================================
(defun _LX_PDGETC_ERR ()
prog( ()
if(statepara == "ss"||statepara == nil then
;_LX_SL_ERROR()
axlMsgPut("Don't have the demand of CREATE NEW LAYR") ;输出“没有新建层的要求”
return(nil)
);end_if
alllayer = parseString(statepara "")
all_layer=cdr(alllayer)
;---------------------have or not " "-----------------------------------------------------
Err_slash=0
foreach(Err_letter all_layer
if(Err_letter==" "
then
Err_slash=Err_slash+1
if(Err_slash>1
then
_LX_SL_ERROR()
);end_if
else
Err_slash=0
);end_if
);end_foreach
;----------------------have or not " s(bottom)"---------------------------------------------------
if(nthelem(1 alllayer)!="s"
then
_LX_SL_ERROR()
);end_if
Err_bottom=nil
foreach(letter all_layer
Err_bottom=cons(letter Err_bottom)
);end_foreach
if(nthelem(2 Err_bottom)==" "
then
_LX_SL_ERROR()
);end_if
if(nthelem(1 Err_bottom)!="s"
then
_LX_SL_ERROR()
);end_if
;--------------------------------------------------------------------------------------------
foreach(eachletter all_layer
if(eachletter!=" "&&eachletter!="p"&&eachletter!="s"&&eachletter!="g"
then
_LX_SL_ERROR()
);end_if
);end_foreach
;---------------ERR END--------------------------------
));end_defun
;==================================================================
; _LX_SL_ERROR Function
;==================================================================
(defun _LX_SL_ERROR ()
prog( ()
axlMsgPut("The format of INPUT isn't right") ;输出“输入格式不对”
return(nil)
);end-prog
);end-defun
;==================================================================
; _LX_SL_delete()
;==================================================================
(defun _LX_SL_delete (statepara)
prog( ()
para1 = nthelem(2 parseString(statepara "-"))
alllayer = parseString(para1 "")
all_layer=cdr(alllayer)
;----------get del_layer_list and del_fr4_list-------------
layernum=0
del_fr4_list=nil
layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers
foreach(del_fr4 layerlist
layernum=layernum+1
if(del_fr4==para1
then
sprintf(del_fr4_name,"%s%d","unnamed",layernum*2)
);end_if
);end_foreach
delete_now_layer=para1
rpt = outfile("./dellayer.scr")
fprintf(rpt "version 14.2\n\nscriptmode +invisible\n\nsetwindow pcb\n\ntrapsize 1497\ndefine xsection\n")
fprintf(rpt "setwindow form.xsection \n")
fprintf(rpt "FORM xsection %s edit Delete\n" del_fr4_name)
axlVisibleDesign(nil)
sprintf(vpin "PIN/%s" delete_now_layer)
sprintf(vvia "VIA/%s" delete_now_layer)
sprintf(vetch "ETCH/%s" delete_now_layer)
sprintf(vantietch "ANTI ETCH/%s" delete_now_layer)
axlVisibleLayer( vpin t )
axlVisibleLayer( vetch t )
axlVisibleLayer( vantietch t )
axlSetFindFilter(?enabled list("noall" "pins" "vias" "clines" "lines" "Shapes" "text") ?onButtons list("noall" "pins" "vias" "clines" "lines" "Shapes" "text"))
axlDeleteObject(axlGetSelSet(axlAddSelectAll()))
fprintf(rpt "FORM xsection %s edit Delete\n" delete_now_layer)
fprintf(rpt "FORM xsection done \n")
close(rpt)
axlShell("replay ./dellayer.scr")
deleteFile("dellayer.scr")
;axlFormListDeleteAll(form "current_layer")
;layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers
;foreach( selectlayer layerlist (axlFormSetField form "current_layer" selectlayer))
);end_prog
);end-defunction _LX_SL_delete()
;====================================================================
;_LX_CreatCam
;====================================================================
(defun _LX_CreatCam ()
prog( ()
_LX_Getlayer()
_LX_CreatCamtxt(_LX_layername)
));end__LX_CreatCam
;=============================================================================
;_LX_Getlayer
;=============================================================================
(defun _LX_Getlayer ()
prog( ()
_LX_layername=nil
_LX_layername=axlGetParam("paramLayerGroup:etch")->groupMembers
));end__LX_Getlayer
;=============================================================================
;_LX_CreatCamtxt
;=============================================================================
(defun _LX_CreatCamtxt (layername)
prog( ()
deleteFile("./cam.txt")
if(layername==nil
then
axlMsgPut("have not *.teach file.")
else
design_unit=nthelem(1 axlDBGetDesignUnits())
extrac_accuracy=nthelem(2 axlDBGetDesignUnits())
if(extrac_accuracy==0||extrac_accuracy==1||extrac_accuracy==2||extrac_accuracy==3 ||extrac_accuracy==4
then
case(extrac_accuracy
(0
ExtraAccuracy=6
)
(1
ExtraAccuracy=60
t)
(2
ExtraAccuracy=600
t)
(3
ExtraAccuracy=6000
t)
(4
ExtraAccuracy=60000
t)
);end_case
if( design_unit == "millimeters" then ExtraAccuracy=ExtraAccuracy/40)
if( design_unit == "inches" then ExtraAccuracy=ExtraAccuracy/1000)
rpt=outfile("./cam.txt")
i=0
foreach(eachname layername
case(car(parseString(eachname ""))
("T"
i=i+1
fprintf(rpt "(axlfcreate \"art01\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"VIA CLASS/TOP\" \"PIN/TOP\" \"ETCH/TOP\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
t)
("B"
i=i+1
if(i<10
then
sprintf(camlayer,"%s%d","art0",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"VIA CLASS/BOTTOM\" \"PIN/BOTTOM\" \"ETCH/BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",camlayer,ExtraAccuracy)
else
sprintf(camlayer,"%s%d","art",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"VIA CLASS/BOTTOM\" \"PIN/BOTTOM\" \"ETCH/BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",camlayer,ExtraAccuracy)
);end_if
t)
("A"
i=i+1
if(i<10
then
sprintf(camlayer,"%s%d","art0",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
else
sprintf(camlayer,"%s%d","art",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
);end_if
t)
("P"
i=i+1
if(i<10
then
sprintf(camlayer,"%s%d","pgp0",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 0 0 0 0 0 0 0 0) '(\"ANTI ETCH/%s\" \"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" \"ANTI ETCH/ALL\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
else
sprintf(camlayer,"%s%d","pgp",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 0 0 0 0 0 0 0 0) '(\"ANTI ETCH/%s\" \"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" \"ANTI ETCH/ALL\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
);end_if
t)
("G"
i=i+1
if(i<10
then
sprintf(camlayer,"%s%d","pgp0",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 0 0 0 0 0 0 0 0) '(\"ANTI ETCH/%s\" \"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" \"ANTI ETCH/ALL\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
else
sprintf(camlayer,"%s%d","pgp",i)
fprintf(rpt "(axlfcreate \"%s\" '(0 0 0 %d 0 0 0 0 0 0 0 0 0) '(\"ANTI ETCH/%s\" \"VIA CLASS/%s\" \"PIN/%s\" \"ETCH/%s\" \"BOARD GEOMETRY/OUTLINE\" \"ANTI ETCH/ALL\" ))\n",camlayer,ExtraAccuracy,eachname,eachname,eachname,eachname)
);end_if
t)
);end_case
);end_foreach
fprintf(rpt "(axlfcreate \"adt\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"REF DES/SILKSCREEN_TOP\" \"PIN/TOP\" \"PACKAGE GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -