Reg_Coor_Pontos_CSV.lsp

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

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

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

;;; Início Reg_Coor_Pontos_CSV.lsp - Aplicação para registar coordenadas de pontos (points) em ficheiro de texto tipo CSV

(defun c:RCPV (/ ACMDCH ADZIN VALLPRC UNPRC SSET
 NMFILE FILETX VIRG SSLEN TEMPS 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? (0/8) ")
 (princ "<")
 (princ VALLPRC)
 (princ ">")
 (setq UNPRC (getint))
 (princ "\n»» Seleccione pontos:\n")
 (setq SSET (ssget '((0 . "POINT"))))
 (if SSET
 (progn
 (if (= UNPRC nil)
 (setq UNPRC VALLPRC)
 )
 (setq NMFILE (getfiled "Ficheiro para registo das coordenadas"
 ""
 "csv"
 1
 )
 FILETX (open NMFILE "a")
 VIRG ","
 SSLEN (sslength SSET)
 )
 (while (> SSLEN 0)
 (setq TEMPS (ssname SSET (setq SSLEN (1- SSLEN)))
 CORDX (nth 1 (assoc 10 (entget TEMPS)))
 CORDY (nth 2 (assoc 10 (entget TEMPS)))
 CORDZ (nth 3 (assoc 10 (entget TEMPS)))
 TXCORDX (rtos CORDX 2 UNPRC)
 TXCORDY (rtos CORDY 2 UNPRC)
 TXCORDZ (rtos CORDZ 2 UNPRC)
 )
 (write-line
 (strcat "" TXCORDX "" VIRG "" TXCORDY "" VIRG "" TXCORDZ "")
 FILETX
 )
 )
 (close FILETX)
 )
 (princ "\n»» Nenhum ponto 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 RCPV \n")

Top