;|
TXTLP.LSP versione 1.0 [13.12.2004]
Copyright (C) 2004 Claudio Piccini. All rights reserved
www.cg-cad.com
* Legge dal file LINEE.TXT le coordinate x,y,z dei 2 punti estremi e disegna la linea
* Legge dal file PUNTI.TXT le coordinate x,y,z e disegna il punto
|;
(defun myerror (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(ripVar)
(princ)
)
(defun salVar ()
(setq orto (getvar "orthomode"))
(setq snapp (getvar "osmode"))
(setq snm (getvar "snapmode"))
(setq piano (getvar "clayer"))
(setq nomeDir (getvar "dwgprefix"))
)
(defun ripVar ()
(command "_redraw")
(setvar "cmdecho" 1)
(setvar "osmode" snapp)
(setvar "snapmode" snm)
(setvar "orthomode" orto)
(setvar "clayer" piano)
(setvar "cecolor" "BYLAYER")
(setq *error* olderr)
(princ)
)
(defun C:TXTLP (/ olderr snapp snm orto piano nomeDir
stringa lista nf1 nf2 f1 f2 p1 p2
)
(setq olderr *error* *error* myerror)
(setvar "cmdecho" 0)
(salVar)
(command "osnap" "_non")
(setq nf1 (strcat nomeDir "linee.txt"))
(setq nf2 (strcat nomeDir "punti.txt"))
(setq f1 (open nf1 "r")) ; apre e legge il file LINEE.TXT
(setq stringa " ")
(while (/= stringa nil)
(setq stringa (read-line f1))
(if (/= stringa nil)
(progn
(setq lista (strcat "(" stringa ")"))
(setq lista (read lista)) ; traduce il contenuto della lista in numeri
(setq p1 (list
(nth 0 lista) ; X
(nth 1 lista) ; Y
(nth 2 lista) ; Z
)
)
(setq p2 (list
(nth 3 lista) ; X
(nth 4 lista) ; Y
(nth 5 lista) ; Z
)
)
(command "_line" p1 p2 "") ; disegna la linea
)
)
)
(close f1)
(setq f2 (open nf2 "r")) ; apre e legge il file PUNTI.TXT
(setq stringa " ")
(while (/= stringa nil)
(setq stringa (read-line f2))
(if (/= stringa nil)
(progn
(setq lista (strcat "(" stringa ")"))
(setq lista (read lista))
(setq p1 (list
(nth 0 lista)
(nth 1 lista)
(nth 2 lista)
)
)
(command "_point" p1) ; disegna il punto
)
)
)
(close f2)
(ripVar) ; ripristina l'ambiente
)
;;;eof
|