📄 place_symbols.il
字号:
foreach(one l_unplaced
axlFormSetField(Form "Unplaced_List" one)
); endforeach
); end defun
;##################################
;# End Of _loadRefDes #
;##################################
;##################################
;# _createForm #
;##################################
(defun _createForm ()
Form = outfile("Place_symbols.form" "w")
fprintf(Form "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(Form "FORM\n")
fprintf(Form "FIXED\n")
fprintf(Form "PORT 87 23\n")
fprintf(Form "HEADER \"Place Symbols\"\n")
fprintf(Form "TILE\n")
fprintf(Form "TEXT \"################################################################################\"\n")
fprintf(Form "TLOC 2 2\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"# #\"\n")
fprintf(Form "TLOC 2 3\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"# Place Allegro symbols by selecting them from the Menus below. #\"\n")
fprintf(Form "TLOC 2 4\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"# #\"\n")
fprintf(Form "TLOC 2 5\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"################################################################################\"\n")
fprintf(Form "TLOC 2 6\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"MECHANICAL (.bsm)\"\n")
fprintf(Form "TLOC 2 8\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"FORMAT (.osm)\"\n")
fprintf(Form "TLOC 44 8\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"Total MECHANICAL Symbols:\"\n")
fprintf(Form "TLOC 2 20\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"Total FORMAT Symbols:\"\n")
fprintf(Form "TLOC 44 20\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"PACKAGE (.psm)\"\n")
fprintf(Form "TLOC 2 25\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"REF DES\"\n")
fprintf(Form "TLOC 44 25\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"Total PACKAGE Symbols:\"\n")
fprintf(Form "TLOC 2 37\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"There are\"\n")
fprintf(Form "TLOC 44 37\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "TEXT \"unplaced components.\"\n")
fprintf(Form "TLOC 61 37\n")
fprintf(Form "ENDTEXT\n")
fprintf(Form "FIELD Mechanical_List\n")
fprintf(Form "FLOC 2 10\n")
fprintf(Form "LIST \"\" 40 5\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD Format_List\n")
fprintf(Form "FLOC 44 10\n")
fprintf(Form "LIST \"\" 40 5\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD mechtot\n")
fprintf(Form "FLOC 28 20\n")
fprintf(Form "INFO_ONLY\n")
fprintf(Form "INTFILLIN 10 1\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD formattot\n")
fprintf(Form "FLOC 66 20\n")
fprintf(Form "INFO_ONLY\n")
fprintf(Form "INTFILLIN 10 1\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD Package_List\n")
fprintf(Form "FLOC 2 27\n")
fprintf(Form "LIST \"\" 40 5\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD Unplaced_List\n")
fprintf(Form "FLOC 44 27\n")
fprintf(Form "LIST \"\" 40 5\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD psmtot\n")
fprintf(Form "FLOC 25 37\n")
fprintf(Form "INFO_ONLY\n")
fprintf(Form "INTFILLIN 10 1\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD refdestot\n")
fprintf(Form "FLOC 54 37\n")
fprintf(Form "INTFILLIN 4 1\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD Refresh_List\n")
fprintf(Form "FLOC 45 40\n")
fprintf(Form "MENUBUTTON \"Refresh RefDes\" 16 3\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD cancel\n")
fprintf(Form "FLOC 2 41\n")
fprintf(Form "MENUBUTTON \"CANCEL\" 10 3\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "FIELD close\n")
fprintf(Form "FLOC 14 41\n")
fprintf(Form "MENUBUTTON \"CLOSE\" 10 3\n")
fprintf(Form "ENDFIELD\n")
fprintf(Form "ENDTILE\n")
fprintf(Form "ENDFORM\n")
close(Form)
); end defun
;##################################
;# End of _createForm #
;##################################
;##################################
;# _getSymbols #
;##################################
(defun _getSymbols (symext)
l_symbols = ()
symext = strcat(symext "$")
foreach( dir symdirs
if( (isDir dir) then
l_symbols = append( l_symbols setof(x (getDirFiles dir) (rexMatchp symext x)) )
); endif
); end foreach
); end defun
;##################################
;# End of _getSymbols #
;##################################
;**************************************************
;* End of Function Subroutines *
;**************************************************
;######################################################################
;# Main Program #
;######################################################################
; Check the Skill path to make sure the current working directory(.)
; is set in the path. Otherwise set it to the current working directory
; so the Form will work.
firstone = car(parseString(car(getSkillPath())))
if(firstone != "./" && firstone != "." then
axlUIWPrint(nil "** ERROR - Skill Path does not include the working directory%s.%s **" "(" ")")
axlUIWPrint(nil "** Setting Skill Path to include %s.%s - Please Correct! **" "(" ")")
curSkillPath = getSkillPath()
setSkillPath(cons("." curSkillPath))
; remove form file if it is there
if(isFile(strcat(firstone "/Place_symbols.form"))
deleteFile(strcat(firstone "/Place_symbols.form"))
); endif
);endif
; Create the file, "Place_symbols.form"
_createForm()
; ======= Get ALL the MECHANICAL, FORMAT, and PACKAGE symbols ========
sympath = axlGetVariable("psmpath")
symdirs = parseString(sympath)
; ======= Display the Place Symbols form =========================================
Form=axlFormCreate( (gensym) "Place_symbols.form" nil 'Form_Action t)
axlFormDisplay(Form)
;#########################################################################
;# Get All the symbols (.bsm, .osm, and .psm) #
;#########################################################################
mechlist = list()
formatlist = list()
psmlist = list()
axlUIWPrint(nil "** Gathering symbols from PSMPATH, please wait. **")
l_exts = list(".bsm" ".osm" ".psm")
foreach(ext l_exts
_getSymbols(ext)
case(ext
(".bsm" if(length(l_symbols) == 0 then
mechlist = list("No Symbols Found")
axlFormSetField(Form "Mechanical_List" car(mechlist))
axlFormSetField(Form "mechtot" 0)
else
foreach(onesym l_symbols
axlFormSetField(Form "Mechanical_List" onesym)
); endforeach
axlFormSetField(Form "mechtot" length(l_symbols))
)); endif
(".osm" if(length(l_symbols) == 0 then
formatlist = list("No Symbols Found")
axlFormSetField(Form "Format_List" car(formatlist))
axlFormSetField(Form "formattot" 0)
else
foreach(onesym l_symbols
axlFormSetField(Form "Format_List" onesym)
); endforeach
axlFormSetField(Form "formattot" length(l_symbols))
)); endif
(".psm" if(length(l_symbols) == 0 then
psmlist = list("No Symbols Found")
axlFormSetField(Form "Package_List" car(psmlist))
axlFormSetField(Form "psmtot" 0)
else
foreach(onesym l_symbols
axlFormSetField(Form "Package_List" onesym)
); endforeach
axlFormSetField(Form "psmtot" length(l_symbols))
)); endif
); endcase
); end foreach
axlUIWPrint(nil " - Done - " )
; ======= Get the Reference Designators ==========================================
; Get all the unplaced components (Refdes)
l_unplaced = _getUnplacedRefDes()
; ===== Load the Place Symbols form with the Reference Designators. ===============
; Enter the Refdes into the form
_loadRefDes()
; ===== Print message to the Place Symbols form. ==================================
axlUIWPrint(Form ">> Select Symbol/RefDes")
; ===== Remove the unix files created by this program. ============================
; remove Place_symbols.form
deleteFile("Place_symbols.form")
;######################################################################
;# End of Main Program #
;######################################################################
); enddefun place_sym
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -