Esporta testi in un file ordinato

Questo programma serve ad esportare in modo ordinato i testi da un file autocad in modo tale da poterli modificare ed in seguito riposizionarli nel disegno (vedi programma di importazione FILE2TX).

;;Define the function (the program).
(defun c:TXT2FILE ( / FL1 SS1 OBJ I HNDL TXTSTR OLDCE OLDERR OLDTE)
  ;;Save the current value of cmdecho then redefine it.
  (setq OLDCE (getvar "cmdecho"))
  (setvar "cmdecho" 1)
  ;;Save the current value of texteval then set it to 1
  (setq OLDTE (getvar "texteval"))
  (setvar "texteval" 1)
  ;;Save the current value of the error handling subroutine then redefine it.
  (setq OLDERR *error*)
  (defun *error* (errmes)
    (princ (strcat "\nExecution of TXT2FILE halted by the following error: " ERRMES))
    (setvar "cmdecho" OLDCE)
    (setq *error* OLDERR)
    (prin1)
  )
  ;;(setq *error* nil)
  ;;NOTE: to turn error handling off, erase the semicolon in the line above.
  ;;GET a FILE from the user and store it in FN1.
  (setq FN1 (getfiled "Output file" "textout.txt" "" 5))
  ;;OPEN file FN1 for overwriting as FL1.
  (setq FL1 (open FN1 "w"))
  ;;QUERY the drawing and store the resulting selection set in SS1. 
  (setq SS1 (SSGET "X" (QUOTE ((0 . "TEXT")))))
  ;;BEGIN LOOP loop1.
  ;;LOOP by STEPPING THROUGH the OBJECTS of SELECTION-SET SS1, reading them into OBJ.
  (setq I -1)
  (while (setq OBJ (ssname SS1 (setq I (1+ I))))
    ;;EXTRACT the Handle from the entity OBJ and store it in HNDL.
    (setq HNDL (cdr (assoc 5 (entget OBJ))))
    ;;EXTRACT the Text string from the entity OBJ and store it in TXTSTR.
    (setq TXTSTR (cdr (assoc 1 (entget OBJ))))
    ;;WRITE  to file FL1.
    (princ HNDL FL1)
    (princ "\n" FL1)
    (princ TXTSTR FL1)
    (princ "\n" FL1)
  ) ;;END LOOP loop1.
  ;;CLOSE file FL1.
  (close FL1)
  ;;Reset "cmdecho" to previous value.
  (setvar "cmdecho" OLDCE)
  ;;Reset "texteval" to previous value.
  (setvar "texteval" OLDTE)
  ;;Reset *error* to previous definition.
  (setq *error* OLDERR)
  ;;Exit quietly (no return value.)
  (prin1)
)
Compago