考虑以下[未经测试的]代码:
- (defun c:slist ( / ctab file s1 s2 )
- (if
- (and
- (setq file (findfile (strcat (getvar 'DWGPREFIX) "Sheetlist.csv")))
- (setq file (open file "w"))
- )
- (progn
- (setq ctab (getvar 'CTAB))
- (write-line "SHEET NUMBER,SHEET NAME" file)
- (foreach layout (layoutlist)
- (setvar 'CTAB layout)
- (command "_.zoom" "_E")
- (if
- (and
- (setq s1 (ssget "_W" '(49 0) '(0 37) '((0 . "MTEXT") (-3 ("MMI-SHTNUM")))))
- (setq s2 (ssget "_W" '(49 0) '(0 37) '((0 . "MTEXT") (-3 ("MMI-SHTNAME")))))
- )
- (write-line
- (strcat
- (cdr (assoc 1 (entget (ssname s1 0)))) ","
- (cdr (assoc 1 (entget (ssname s2 0))))
- )
- file
- )
- (princ (strcat "\nMText not found in layout: " layout))
- )
- )
- (close file)
- (setvar 'CTAB ctab)
- )
- (princ "\nFile not found or could not be opened.")
- )
- (princ)
- )
|