试试这个:
 - (defun c:tt (/ *error* en en-lst fil n path pt-lst ss ssn)
- (defun *error* ( msg )
- (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
- (progn (princ (strcat "\n错误:" msg)) (close fil))
- )
- (princ)
- )
- (setq ss (ssget '((0 . "CIRCLE")))
- ssn (sslength ss)
- n 0
- )
- (while (setq en (ssname ss (setq ssn (1- ssn))))
- (setq en-lst (cons en en-lst))
- )
- (mapcar '(lambda (x) (progn (setq pt (cdr (assoc 10 (entget x))))
- (setq pt-lst (append pt-lst (list (list (strcat (itoa (setq n (1+ n))) "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3))))))
- )
- )
- en-lst
- )
- (setq pt-lst (cons '("序号\tX\tY") pt-lst))
- (setq path (getfiled "指定输出文件路径" "" "xls" 1)
- fil (open path "w")
- )
- (mapcar '(lambda (x) (write-line (car x) fil)) pt-lst)
- (close fil)
- (vlax-invoke (vlax-create-object "Shell.Application") 'open path)
- (princ)
- )
|