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

📄 ch_text_overlap.il

📁 Allegro常用skill
💻 IL
📖 第 1 页 / 共 2 页
字号:

axlCmdRegister( "ch_text_overlap" `check_text_overlap)

layer = "TOP"
clearance = 3
text_pad = t
text_testpoint = nil
text_text = nil
barcode_overlap = nil
refdes_component = nil
formname = nil
location = makeTable("loc" 0)
num = 0 
cnt = 0

(defun check_text_overlap ()
    axlVisibleDesign(nil)
    turn_on_layer( layer)
    formname = "./refdes_over.form" 
    biuld_form(formname)
)

(defun biuld_form (formname)
(prog ()  
   pform = outfile(formname "w")

   fprintf(pform "FILE_TYPE=FORM_DEFN VERSION=2\n")

   fprintf(pform "FORM\n")

   fprintf(pform "FIXED\n")

   fprintf(pform "PORT 26 10\n")

   fprintf(pform "HEADER \"Checking Text Overlap Form\"\n")

   fprintf(pform "POPUP <Layer_Names>")

   fprintf(pform "\"TOP\" \"TOP\",\"BOTTOM\" \"BOTTOM\".\n")

   fprintf(pform "TILE\n")

   
   fprintf(pform "TEXT \"Select Checking Layer:\"\n")

   fprintf(pform "TLOC 3 1\n")

   fprintf(pform "ENDTEXT\n")

   fprintf(pform "FIELD check_layer\n")

   fprintf(pform "FLOC 6 3\n")

   fprintf(pform "ENUMSET 11\n")

   fprintf(pform "POP \"Layer_Names\"\n")

   fprintf(pform "ENDFIELD\n")

   
   fprintf(pform "TEXT \"Clearance:\"\n")

   fprintf(pform "TLOC 3 6\n")

   fprintf(pform "ENDTEXT\n")

   fprintf(pform "FIELD clearance\n")

   fprintf(pform "FLOC 12 6\n")

   fprintf(pform "REALFILLIN 6 6\n")

   fprintf(pform "REALMIN -50.0\n")

   fprintf(pform "REALMAX 100.0\n")

   fprintf(pform "ENDFIELD\n")

 
   fprintf(pform "FIELD text_pad\n")

   fprintf(pform "FLOC 6 9\n")

   fprintf(pform "FGROUP \"Overlap\"\n")

   fprintf(pform "CHECKLIST \"Text to Pin\" \"overlap\"\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD text_testpoint\n")

   fprintf(pform "FLOC 6 11\n")

   fprintf(pform "FGROUP \"Overlap\"\n")

   fprintf(pform "CHECKLIST \"Text to Testpoint\" \"overlap\"\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD text_text\n")

   fprintf(pform "FLOC 6 13\n")

   fprintf(pform "FGROUP \"Overlap\"\n")

   fprintf(pform "CHECKLIST \"Text to Text\" \"overlap\"\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD refdes_component\n")

   fprintf(pform "FLOC 6 15\n")

   fprintf(pform "FGROUP \"Overlap\"\n")

   fprintf(pform "CHECKLIST \"Refdes to component\" \"overlap\"\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD barcode_overlap\n")

   fprintf(pform "FLOC 6 17\n")

   fprintf(pform "FGROUP \"Overlap\"\n")

   fprintf(pform "CHECKLIST \"Bar Code Overlap\" \"overlap\"\n")

   fprintf(pform "ENDFIELD\n")

      
   fprintf(pform "TEXT \"View error:\"\n")

   fprintf(pform "TLOC 3 20\n")

   fprintf(pform "ENDTEXT\n")
   
   fprintf(pform "FIELD next_view\n")

   fprintf(pform "FLOC 6 22\n")

   fprintf(pform "STRFILLIN 10 20\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD prv_ctl\n")
   
   fprintf(pform "FLOC 18 22\n")

   fprintf(pform "MENUBUTTON \"<<\" 3 3\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD next_ctl\n")
   
   fprintf(pform "FLOC 22 22\n")

   fprintf(pform "MENUBUTTON \">>\" 3 3\n")

   fprintf(pform "ENDFIELD\n")

   
   fprintf(pform "FIELD done\n")

   fprintf(pform "FLOC 2 26\n")

   fprintf(pform "MENUBUTTON \"Done\" 5 3\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD check\n")

   fprintf(pform "FLOC 8 26\n")

   fprintf(pform "MENUBUTTON \"Check\" 5 3\n")

   fprintf(pform "ENDFIELD\n")

   fprintf(pform "FIELD unselect\n")

   fprintf(pform "FLOC 15 26\n")

   fprintf(pform "MENUBUTTON \"unSelect\" 6 3\n")

   fprintf(pform "ENDFIELD\n")

   
   fprintf(pform "ENDTILE\n")

   fprintf(pform "ENDFORM\n")

   close(pform)

   
   form=axlFormCreate( (gensym) "refdes_over.form" 
   `(e inner) `pform_Action t)

   
   axlFormDisplay(form)

   axlFormSetField(form "check_layer" layer)

   axlFormSetField(form "clearance" clearance)

   axlFormSetField(form "text_pad" text_pad)

   axlFormSetField(form "text_testpoint" text_testpoint)

   axlFormSetField(form "text_text" text_text)

   axlFormSetField(form "barcode_overlap" barcode_overlap)

   axlFormSetField(form "refdes_component" refdes_component)

)) 

(defun pform_Action (form)

 
 axlDBRefreshId(axlDBGetDesign())
   (case form->curField
 

   	("done"

    	    axlFormClose(form)

    	    axlCancelEnterFun()

    	    deleteFile(formname)
   	    axlMsgPut("Done")
    	    nil

   	)

   	("check"
   	    init_loc_text()
   	    axlMsgPut("Cheching overlapping text .")
     	    turn_on_layer(layer)	 
   	    refdes_on_pad()
   	    axlFormSetField(form "next_view" sprintf(dummy "Tatol: %d" cnt))
   	    t
   	)
   	("unselect"
   	    axlMsgPut("unSelect all objects.")
   	    unselect_object()
   	    t
   	)
   	("next_ctl"
   	    axlMsgPut("Location the next position.")
   	    location_text(location)
   	    t
   	)
   	("prv_ctl"
   	    axlMsgPut("Location the previous position.")
   	    location_prv(location)
   	    t
   	)
   	
   	("check_layer"
   	    layer = form->curValue
     	    turn_on_layer(layer)	;turn on the layer etch : etch pin via 
   	    axlMsgPut("Select %s layer" layer)
   	    t
   	)
   	("clearance"

    	    clearance = form->curValue
   	    axlMsgPut("Set clearance : %f" clearance)
    	    t

   	)
   	("text_pad"
    	    text_pad = form->curValue

   	    if(text_pad then
   	     	axlMsgPut("Check text on pad." )
   	    else
   	     	axlMsgPut("Don't check text on pad." )   	    
   	    )
    	    t

   	)
   	("text_testpoint"
    	    text_testpoint = form->curValue 
    	    if(layer == "TOP" then 
    	        if(text_testpoint axlMsgPut("Top side hasn't testpointes." ))
    	    else
   	    	if(text_testpoint then 
  	    	    axlMsgPut("Check text on testpoint." )
   	    	else
   	    	    axlMsgPut("Don't check text on testpoint." )
   	        )    	    	
    	    )   	    
    	    t

   	)
  	("barcode_overlap"
    	    barcode_overlap = form->curValue 

   	    if(barcode_overlap then 
   	    	axlMsgPut("Check bar code ." )
   	    else
   	    	axlMsgPut("Don't check bar code ." )
   	    )
    	    t

   	)  

   	("refdes_component"
    	    refdes_component = form->curValue 

   	    if(refdes_component then 
   	    	axlMsgPut("Check refdes on component." )
   	    else
   	    	axlMsgPut("Don't check refdes on component." )
   	    )
    	    t

   	)  

 	("text_text"
    	    text_text = form->curValue 

   	    if(text_text then 
   	    	axlMsgPut("Check text on text." )
   	    else
   	    	axlMsgPut("Don't check text on text." )
   	    )
    	    t

   	)  

    )
)

(defun refdes_on_pad ()
	
    if(barcode_overlap then
    	Going_On=axlGetParam("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:SILKSCREEN_TOP")

    	Going_On->visible=t

    	axlSetParam(Going_On)  	
    	Going_On=axlGetParam("paramLayerGroup:PACKAGE GEOMETRY/paramLayer:SILKSCREEN_BOTTOM")

    	Going_On->visible=t

    	axlSetParam(Going_On)  	
    
    	axlUIWRedraw(nil)
    	axlClearSelSet()
 
    )  
    
    unselect_object()
    axlSetFindFilter(?enabled '(noall text) ?onButtons '(noall text))

    alltexts = axlGetSelSet(axlAddSelectAll())

        
    if(text_pad then
    	cnt = 0
    	if(layer == "TOP" then
  	    axlSetFindFilter(?enabled '(noall pins)

  	    ?onButtons '(noall pins))
    	else
  	    axlSetFindFilter(?enabled '(noall pins)

  	    ?onButtons '(noall pins))
    	)
    	foreach(txt alltexts text_on_pad(txt))
    	axlMsgPut("Total of text on %s pad : %d" layer cnt)
    )
    if(text_testpoint then
    	cnt = 0
    	if(layer == "TOP" then
  	    axlSetFindFilter(?enabled '(noall )

  	    ?onButtons '(noall ))
    	else
  	    axlSetFindFilter(?enabled '(noall vias)

  	    ?onButtons '(noall vias))
    	)
    	foreach(txt alltexts text_on_testpoints(txt))
    	axlMsgPut("Total of text on %s testpoint : %d" layer cnt)
    )
    if(text_text then    
    	cnt = 0
        allseltext = nil
    	axlSetFindFilter(?enabled '(noall text) ?onButtons '(noall text))

    	foreach(txt alltexts text_overlap_text(txt))
        axlHighlightObject( allseltext) 
    	axlMsgPut("Total of text on %s text : %d" layer cnt)
    )

⌨️ 快捷键说明

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