确实如此。这是我今天工作的全部代码。你的帮助为我想要的行为画上了句号。
- (defun _layoutlist (/ layouts)
- ;; List of layouts (VLA-Objects) in drawing (in correct order)
- ;; Alan J. Thompson, 10.05.09
- (setq layouts (vla-get-layouts
- (cond (*AcadDoc*)
- ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
- )
- )
- )
- (vl-sort (layoutlist)
- (function (lambda (a b)
- (< (vla-get-taborder (vla-item layouts a))
- (vla-get-taborder (vla-item layouts b))
- )
- )
- )
- )
- )
- (defun C:DIRECTORY()
- (setq sheetcount (length (layoutlist))) ;Gives count of paper space sheets
- (setq directorysheetcount (itoa sheetcount))
- (setq location (list -1.75 )
- (command "-table" "2" sheetcount location) ;Creates table.
- ; Note that the variable sheetcount corresponds with the number of data rows
- ; a title and header row will be created above the data rows.
- (setq EN (entlast))
- (setq table (vlax-ename->vla-object EN))
- (setq column 0)
- (setq row 0)
- (vla-setCellValue table column row "Contents")
- (setq column 1)
- (setq row 0)
- (vla-setCellValue table column row "Sheet")
- (setq column 1)
- (setq row 1)
- (vla-setCellValue table column row "Description")
- (setq sheetnumber 1)
- (foreach tab (_layoutlist)
- (setq row 0)
- (setq column (+ column 1))
- (princ "Test 1\n")
- (cond
- ((> sheetnumber 99)
- (setq sheetnumber (itoa sheetnumber)))
- ((> sheetnumber 9)
- (setq sheetnumber (strcat "0" (itoa sheetnumber))))
- ((> sheetnumber 0)
- (setq sheetnumber (strcat "00" (itoa sheetnumber))))
- )
- (vla-setCellValue table column row sheetnumber)
- (setq newname (strcat sheetnumber "-" (substr tab 5 50)))
- (setq sheetnumber (atoi sheetnumber))
- (setq sheetnumber (+ sheetnumber 1))
- (setq row 1)
- (setvar 'ctab tab)
- (setq tab (substr tab 5 50))
- (vla-setCellValue table column row tab)
- (command "-layout" "R" "" newname)
- )
- (setq titlepage (car (_layoutlist)))
- (setvar 'ctab (car (_layoutlist)))
- (princ)
- ) ;End defun DIRECTORY
|