autolisp 输出文本坐标清单


;Export text with X Y Position
(defun C:exp    (/ ss str ent pt x y txt flnm fn)
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)           ;设为无捕捉方式

  (setq ss (ssget '((0 . "TEXT"))))
  (if (not ss)
    (progn (alert " 没有选中文本")
       (exit)
    )
    (progn
      (setq str "")
      (while (> (sslength ss) 0)
        (setq ent (entget (setq en (ssname ss 0)))) ;取出第一个数据
        (setq pt  (cdr (assoc 10 ent)))
        (setq x   (car  pt))
        (setq y   (cadr pt))
        (setq txt (cdr (assoc 1 ent))) 
        (setq str (strcat str (rtos x 2 2) "\t" (rtos y 2 2) "\t" txt "\n"))        
        (setq ss  (ssdel en ss)) ; 删除第一个数据
      )
    )
  )

  (setq flnm (getstring "\nInput Export file name:(D:\\list.txt):"))
  (if (= (ascii flnm) 0)                    
    (setq flnm "D:\\list.txt")
  )
  (setq fn (open flnm "w"))
  (write-line str fn)
  (close fn)
  (startapp "notepad" flnm)
  (SETVAR "CMDECHO" 1)
  (princ)
)


你可能感兴趣的:(autolisp 输出文本坐标清单)