⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setlayout.il

📁 cadence 自动增加层和删除层的程序
💻 IL
📖 第 1 页 / 共 4 页
字号:
                fprintf(rpt "(axlfcreate \"adb\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"REF DES/SILKSCREEN_BOTTOM\" \"PIN/BOTTOM\" \"PACKAGE GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"all\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"PIN/TOP\" \"PIN/BOTTOM\" \"PACKAGE GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/SILKSCREEN_TOP\" \"PACKAGE GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)                
                fprintf(rpt "(axlfcreate \"silktop\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"REF DES/SILKSCREEN_TOP\" \"PACKAGE GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"silkbotm\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"REF DES/SILKSCREEN_BOTTOM\" \"PACKAGE GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"soldtop\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"VIA CLASS/SOLDERMASK_TOP\" \"PIN/SOLDERMASK_TOP\" \"PACKAGE GEOMETRY/SOLDERMASK_TOP\" \"BOARD GEOMETRY/OUTLINE\" \"BOARD GEOMETRY/SOLDERMASK_TOP\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"soldbotm\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"VIA CLASS/SOLDERMASK_BOTTOM\" \"PIN/SOLDERMASK_BOTTOM\" \"PACKAGE GEOMETRY/SOLDERMASK_BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" \"BOARD GEOMETRY/SOLDERMASK_BOTTOM\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"pasttop\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"PIN/PASTEMASK_TOP\" \"PACKAGE GEOMETRY/DISPLAY_TOP\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"pastbotm\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"PIN/PASTEMASK_BOTTOM\" \"PACKAGE GEOMETRY/DISPLAY_BOTTOM\" \"BOARD GEOMETRY/OUTLINE\" ))\n",ExtraAccuracy)
              if( axlVersion('version) < 15.0 then
                fprintf(rpt "(axlfcreate \"drill\" '(0 0 0 %d 0 1 0 0 0 0 0 1 1) '(\"MANUFACTURING/NCDRILL_LEGEND\" \"MANUFACTURING/NCDRILL_FIGURE\" \"BOARD GEOMETRY/OUTLINE\" \"BOARD GEOMETRY/DIMENSION\" ))\n",ExtraAccuracy)
              else
               if( axlVersion('version) > 15.0 then
                fprintf(rpt "(axlfcreate \"drill\" '(0 0 0 %d 0 1 0 0 0 0 0 1 1) '(\"MANUFACTURING/NCLEGEND-1-%d\" \"BOARD GEOMETRY/OUTLINE\" \"BOARD GEOMETRY/DIMENSION\" ))\n",ExtraAccuracy length( layername))
                sprintf( nc_layer "MANUFACTURING/NCLEGEND-1-%d" length( layername))
                 unless( axlIsLayer( nc_layer)
		              axlMsgPut("Creating Layer %s" nc_layer)
		              axlLayerCreateNonConductor( nc_layer)
		              )
		            )
		          )
                fprintf(rpt "(axlfcreate \"xsilk2sold_top\" '(0 0 0 %d 0 1 0 0 0 0 0 0 0) '(\"BOARD GEOMETRY/OUTLINE\" \"REF DES/SILKSCREEN_TOP\" \"PIN/SOLDERMASK_TOP\" \"PACKAGE GEOMETRY/SOLDERMASK_TOP\" \"BOARD GEOMETRY/SILKSCREEN_TOP\" \"BOARD GEOMETRY/SOLDERMASK_TOP\" \"PACKAGE GEOMETRY/SILKSCREEN_TOP\"))\n",ExtraAccuracy)
                fprintf(rpt "(axlfcreate \"xsilk2sold_botm\" '(0 0 0 %d 0 1 1 0 0 0 0 0 0) '(\"BOARD GEOMETRY/OUTLINE\" \"REF DES/SILKSCREEN_BOTTOM\" \"PIN/SOLDERMASK_BOTTOM\" \"PACKAGE GEOMETRY/SILKSCREEN_BOTTOM\" \"PACKAGE GEOMETRY/SOLDERMASK_BOTTOM\" \"BOARD GEOMETRY/SILKSCREEN_BOTTOM\" \"BOARD GEOMETRY/SOLDERMASK_BOTTOM\"))\n",ExtraAccuracy)
                close(rpt) 
            else
                axlMsgPut("Please set accuracy with 0 1 2 3 4") 
           );end_if
     );end_if
));end_defun _LX_CreatCamtxt  
;===================================================================
;           _LX_CreatClp
;===================================================================
(defun _LX_CreatClp () 
prog( ()  
     board_name=axlCurrentDesign()
     boardname=upperCase(board_name)
;     vers="1"
     sprintf(clptxt,"./%s.clp",boardname)
     rpt=outfile(clptxt)
     fprintf(rpt "(setq _clp_lay_drw (axlDesignType nil))                                                             \n")
     fprintf(rpt "(setq _clp_sym nil)                                                                                 \n")
     fprintf(rpt "(setq _clp_pbuf nil)                                                                                \n")
     fprintf(rpt "(setq _clp_cinfo (make_clp_coord_info))                                                             \n")
     fprintf(rpt "(putprop _clp_cinfo 0.0 'f_rotation)                                                                \n")
     fprintf(rpt "(putprop _clp_cinfo '(0.0 0.0) 'l_origin)                                                           \n")
     fprintf(rpt "(setq _clp_text_orient (make_axlTextOrientation))                                                   \n")
     fprintf(rpt "(setq _clp_pin_text (make_axlPinText))                                                              \n")
     fprintf(rpt "(putprop _clp_cinfo  \"mils\" 't_from_units)                                                        \n")
     fprintf(rpt "(putprop _clp_cinfo (car (axlDBGetDesignUnits)) 't_to_units)                                        \n")
     fprintf(rpt "(setq _clp_group_info (make_clp_group_info))                                                        \n")
     fprintf(rpt "(putprop _clp_cinfo _clp_group_info 'group_info)                                                    \n")
     fprintf(rpt "(setq _clp_accuracy 1)                                                                              \n")
     fprintf(rpt "(_clpCheckAccuracy _clp_accuracy (get _clp_cinfo 't_from_units)	 (get _clp_cinfo 't_to_units))\n")
     fprintf(rpt "(putprop _clp_cinfo (list (_clpAdjustPt -2275:-948.3 _clp_cinfo)                                \n")
     fprintf(rpt "	(_clpAdjustPt 2175:600 _clp_cinfo)) 'l_extents)                                         \n")
     fprintf(rpt "(putprop _clp_cinfo (_clpAdjustPt '(0 -1118.25) _clp_cinfo) 'l_zeropt)                              \n")
     fprintf(rpt "(unless (_clpSelectRotOrg _clp_cinfo)                                                               \n")
     fprintf(rpt " (error \"CANCEL\"))                                                                                  \n")

     fprintf(rpt " (setq _clp_clip_prop_value (_clpGetClipPropValue))                                                 \n")
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s\"                                                           \n",boardname)
     fprintf(rpt "(_clpAdjustPt 100:300 _clp_cinfo)  _clp_text_orient                                                \n")
     fprintf(rpt "\"PACKAGE GEOMETRY/SILKSCREEN_TOP\" _clp_sym))                                                        \n")
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")

     _LX_Getlayer();_LX_layername
     i=0 
     j=300
     foreach(everylayer _LX_layername 
            i=i+1                
             j=j-200
             if(car(parseString(everylayer ""))=="T"
                then 
                   fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                   fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s ARTWORK TOP\"                                               \n",boardname)
                   fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                   \n",j)
                   fprintf(rpt "\"ETCH/TOP\" _clp_sym))                                                                               \n")
               );end_if
               
             if(car(parseString(everylayer ""))=="A" 
                then 
                  fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","LAYER0",i)  
                     else
                       sprintf(camlayer,"%s%d","LAYER",i)  
                    );end_if
                  fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s ARTWORK %s\"                                             \n",boardname, camlayer)
                   fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                   \n",j)
                  fprintf(rpt "\"ETCH/%s\" _clp_sym))                                                                             \n",everylayer)
                );end_if
                
             if(car(parseString(everylayer ""))=="P"
                then 
                  fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","PLANE0",i)  
                     else
                       sprintf(camlayer,"%s%d","PLANE",i)  
                    );end_if
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s POWER %s\"                                             \n",boardname, camlayer)
                   fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                   \n",j)
                   fprintf(rpt "\"ETCH/%s\" _clp_sym))                                                                           \n",everylayer)
                );end_if
                
             if(car(parseString(everylayer ""))=="G"
                then 
                  fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","PLANE0",i)  
                     else
                       sprintf(camlayer,"%s%d","PLANE",i)  
                    );end_if
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s GROUND %s\"                                              \n",boardname, camlayer)
                   fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                   \n",j)
                   fprintf(rpt "\"ETCH/%s\" _clp_sym))                                                                             \n",everylayer)
                );end_if
                
             if(car(parseString(everylayer ""))=="B" 
                then                
                   fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" t (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s ARTWORK BOTTOM\"                                            \n",boardname)
                   fprintf(rpt "(_clpAdjustPt -100:%d _clp_cinfo)  _clp_text_orient                                                   \n",j)
                   fprintf(rpt "\"ETCH/BOTTOM\" _clp_sym))                                                                            \n")
                );end_if
           );end_foreach

     j=j-200
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s SOLDMASK TOP\"                                              \n",boardname)
     fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/SOLDERMASK_TOP\" _clp_sym))                                                        \n")

     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" t (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )    \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s SOLDMASK BOTTOM\"                                           \n",boardname)
     fprintf(rpt "(_clpAdjustPt -100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/SOLDERMASK_BOTTOM\" _clp_sym))                                                     \n")

     j=j-200
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s PASTEMASK TOP\"                                             \n",boardname)
     fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/DISPLAY_TOP\" _clp_sym))                                                           \n")

     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" t (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )    \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s PASTEMASK BOTTOM\"                                          \n",boardname)
     fprintf(rpt "(_clpAdjustPt -100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/DISPLAY_BOTTOM\" _clp_sym))                                                      \n")

     j=j-200
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s SILKSCREEN TOP\"                                            \n",boardname)
     fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/SILKSCREEN_TOP\" _clp_sym))                                                        \n")

     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" t (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )    \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s SILKSCREEN BOTTOM\"                                         \n",boardname)
     fprintf(rpt "(_clpAdjustPt -100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"PACKAGE GEOMETRY/SILKSCREEN_BOTTOM\" _clp_sym))                                                     \n")

     j=j-200
     fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
     fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%s DRILL CHART\"                                        \n",boardname)
     fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                                 \n",j)
     fprintf(rpt "\"BOARD GEOMETRY/DIMENSION\" _clp_sym))                                                             \n")                                 
     
     i=0 
     foreach(everylayer _LX_layername 
             i=i+1
             j=j-200
             fprintf(rpt "(_clpInitTextOrientation _clp_text_orient \"LEFT\" nil (get _clp_cinfo 'f_rotation) + 0.000000 \"8\" )  \n")
             when(car(parseString(everylayer ""))=="T"
                fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%d--ARTWORK TOP\"                                                  \n",i)
                );end_when
             when(car(parseString(everylayer ""))=="A"
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","LAYER0",i)  
                     else
                       sprintf(camlayer,"%s%d","LAYER",i)  
                    );end_if
                fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%d--ARTWORK %s\"                                                  \n",i,camlayer)
                );end_when    
             when(car(parseString(everylayer ""))=="P"
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","PLANE0",i)  
                     else
                       sprintf(camlayer,"%s%d","PLANE",i)  
                    );end_if
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%d--POWER %s\"                                                  \n",i,camlayer)
                );end_when
             when(car(parseString(everylayer ""))=="G"
                  if(i<10
                     then 
                       sprintf(camlayer,"%s%d","PLANE0",i)  
                     else
                       sprintf(camlayer,"%s%d","PLANE",i)  
                    );end_if
                   fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%d--GROUND %s\"                                                  \n",i,camlayer)
                );end_when
             when(car(parseString(everylayer ""))=="B"
                fprintf(rpt "(setq _clp_dbid (_clpDBCreateText \"%d--ARTWORK BOTTOM\"                                                  \n",i)
                );end_when
             fprintf(rpt "(_clpAdjustPt 100:%d _clp_cinfo)  _clp_text_orient                                               \n",j)
             fprintf(rpt "\"BOARD GEOMETRY/DIMENSION\" _clp_sym))                                                               \n")
             );end_foreach        
   fprintf(rpt "(axlMsgPut (list \"Text pasted without CLIP_DRAWING property.\" _clpAxlMsg.classWarn))                \n")
   fprintf(rpt "(_clpDisplayMessage)                                                                                \n")
   fprintf(rpt "(axlFlushDisplay)                                                                                    \n")
   close(rpt)                                                                                            
));end_defun_LX_CreatClp     
;====================================================================================
                      ;_LX_Changname()
;====================================================================================
(defun _LX_Changname ()                                                               
prog( ()                                                                               
   layerlist=axlGetParam("paramLayerGroup:etch")->groupMembers                         
   i=0                                                                                 
   dislayer_listtemp=nil                                                               
   dislayer_list=nil                                                                   
   foreach(dislayer layerlist                                                          
           i=i+1                                                               
           if(i<10                                                             
              then                                                             
                sprintf(dis_layer "0%d--%s",i,dislayer)                        
                dislayer_listtemp=cons(dis_layer dislayer_listtemp)            
              else                                                             
                sprintf(dis_layer "%d--%s",i,dislayer)                         
                dislayer_listtemp=cons(dis_layer dislayer_listtemp)            
             );end_if                                                          
           );end_foreach                                                               
   dislayer_list=reverse(dislayer_listtemp)                                    
));end_defun                                                                           

;====================================================================================
                      ;_LX_SL_ADD()
;====================================================================================
(defun _LX_SL_ADD (statepara)
prog( ()  
    alllayer = parseString(statepara "") 
    foreach(eachletter alllayer 
          if(eachletter!=" "&&eachletter!="p"&&eachletter!="s"&&eachletter!="g"
             then
                _LX_SL_ERROR()
                return(1)
             );end_if    
          );end_foreach 
    if(nthelem(1 alllayer)!="s"
       then 
         _LX_SL_ERROR()
         return(1)
       );end_if
    ERR_BOTTOM=reverse(alllayer)
    if(nthelem(1 ERR_BOTTOM)!="s"
       then 
         _LX_SL_ERROR()
         return(1)
       );end_if
;-----------------end pd_inputerr-----------    
    layernum=0
    new_layer_list=nil

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -