为007编一个 (defun c:ttt ( / ss pt ss1 out n fid x y h) (if (and (setq ss (ssget '((0 . "CIRCLE")))) (setq pt (getpoint "起点:")) (setq h (getdist pt "文字高度:")) ) (progn (setq ss1 nil out nil) (setq n -1) (repeat (sslength ss) (setq ss1 (cons (ssname ss (setq n (+ n 1)) ) ss1))) (setq ss1 (mapcar '(lambda (x) (cdr (assoc 10 (entget x)))) ss1)) (setq out (list (cons 0 pt)) n 0) (while ss1 (setq ss1 (vl-sort ss1 '(lambda (x y) (< (distance (cdr (car out)) (list (car x)(cadr x) 0)) (distance (cdr (car out)) (list (car y)(cadr y) 0))))) out (cons (cons (setq n (+ n 1)) (car ss1)) out) ss1 (cdr ss1) ) ) (setq out (cdr (reverse out))) (setq fid (open "c:\\test.txt" "w")) (foreach x out (entmake (list '(0 . "TEXT") (cons 10 (cdr x)) (cons 1 (itoa (car x))) (cons 40 h))) (write-line (strcat (itoa (car x)) "," (rtos (cadr x) 2 3) "," (rtos (caddr x) 2 3) "," (rtos (cadddr x) 2 3)) fid) ) (close fid) ) ) ) |