cg-Cad

Lisp »Tips 'n Tricks »TXT »1 »2 »3

TXTLP

;|

  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

Lisp »Tips 'n Tricks

Ultimo Aggiornamento_Last Update: 13 Dicembre 2004