📄 ch_text_overlap.il
字号:
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 + -