Reg_Coor_2D_Cont_Textos_Csv.lsp

;;; Início Reg_Coor_2D_Cont_Textos_Csv.lsp
;;; VER 1.1

;;; J.A.
;;; www.cadtom.com

;;; VER 1.0 - 1995-12-05
;;; VER 1.1 - 2009-01-14

;;; Início Reg_Coor_2D_Cont_Textos_Csv.lsp - Aplicação para registar coordenadas 2D (insert) de textos (pontos topográficos)
;;; e o conteúdo em ficheiro de texto tipo CSV

(defun c:RCCPV (/ ACMDCH ADZIN VALLPRC UNPRC SSET
 NMFILE FILETX VIRG SSLEN TEMPS TEXTIT
 CORDX CORDY CORDZ TXCORDX TXCORDY TXCORDZ
 )


 (defun SETVRS ()
 (setq ACMDCH (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (setq ADZIN (getvar "dimzin"))
 (setvar "dimzin" 0)
 (setq VALLPRC (getvar "luprec"))
 (command "_.undo" "begin")
 (setq AERR *error*)
 )

 (defun RESETVRS ()

 (setq *error* AERR)
 (setvar "dimzin" ADZIN)
 (command "_.undo" "end")
 (setvar "cmdecho" ACMDCH)
 )

 (SETVRS)
 (princ
 "\n»» Quantas casas decimais para a informação numérica? (0/8) "
 )
 (princ "<")
 (princ VALLPRC)
 (princ ">")
 (setq UNPRC (getint))
 (princ "\n»» Seleccione textos:\n")
 (setq SSET (ssget '((0 . "TEXT"))))
 (if SSET
 (progn
 (if (= UNPRC nil)
 (setq UNPRC VALLPRC)
 )
 (setq NMFILE (getfiled
 "Ficheiro para registo das coordenadas e conteúdo do texto"
 ""
 "csv"
 1
 )
 FILETX (open NMFILE "a")
 VIRG ","
 SSLEN (sslength SSET)
 )
 (while (> SSLEN 0)
 (setq TEMPS (ssname SSET (setq SSLEN (1- SSLEN)))
 TEXTIT (cdr (assoc 1 (entget TEMPS)))
 CORDX (nth 1 (assoc 10 (entget TEMPS)))
 CORDY (nth 2 (assoc 10 (entget TEMPS)))
 TXCORDX (rtos CORDX 2 UNPRC)
 TXCORDY (rtos CORDY 2 UNPRC)
 )
 (write-line
 (strcat "" TXCORDX "" VIRG "" TXCORDY "" VIRG "" TEXTIT "")
 FILETX
 )
 )
 (close FILETX)
 )
 (princ "\n»» Nenhum texto seleccionado... \n")
 )
 (RESETVRS)
)

;;;
;;;
;;;

(defun *error* (msg)

 (setq *error* AERR)
 (if FILETX
 (close FILETX)
 )
 (setvar "cmdecho" ACMDCH)
 (setvar "dimzin" ADZIN)
 (command "_.undo" "end")
 (princ (strcat "»» Aplicação interrompida com erro: " msg))
)

(terpri)
(princ "\n»» Inicie aplicação digitando RCCPV \n")
Top