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

📄 place_symbols.il

📁 skill语言在Cadence平台二次开发中大量使用
💻 IL
📖 第 1 页 / 共 2 页
字号:
  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 + -