"alive01" <
ali...@libero.it> ha scritto nel messaggio
news:3b01f390-f7ea-49f5...@j10g2000vbe.googlegroups.com
scannerizzi le coordinate e le trasformi in file txt separato da virgola o
punto e virgola basta che modifichi la variabile sep
Attenzione Autocad va aperto senza un DWT
Grazie a Maci
**********************************************************
;;; Restituisci un rilievo da un elenco di punti di un file TXT
************************************************************
; variabili generali di default
(setq ril:dx 0.15 ;offset X posizione testo
ril:dy 0.05 ;offset Y posizione testo
ril:ht 0.40 ;altezza testo
ril:sep "," ;separatore valori nel file
ril:rot 0.0 ;rotazione del testo
ril:lap "punti" ;layer su cui disegnare i punti
ril:lat "nomi" ;layer su cui scrivere i testi
)
(defun c:rest_ril ()
(if (null (tblsearch "layer" ril:lap)) (command ".-layer" "_n"
ril:lap ""))
(if (null (tblsearch "layer" ril:lat)) (command ".-layer" "_n"
ril:lat ""))
(setq ril:htt (cdr (assoc 40 (tblsearch "style" (getvar "TEXTSTYLE")))))
(setq ril:htt (if (= 0.0 ril:htt) T nil))
(if (null ril:htt) (command "_.style" "" "" ril:ht "" "" "" "" ""))
(setq ril:file (getfiled "Scegli file coordinate" "" "txt" 4))
(setq ril:desc (open ril:file "r"))
(setq ril:riga t)
(setq ril:con 0)
(while ril:riga
(setq ril:riga (read-line ril:desc))
(if ril:riga
(progn
(setq ril:pos 0
ril:lung (strlen ril:riga)
ril:pt (ril:val)
ril:N (atof (ril:val))
ril:E (atof (ril:val))
ril:con (1+ ril:con)
)
(setvar "CLAYER" ril:lap)
(command "_.point" "_non" (list ril:E ril:N))
(setvar "CLAYER" ril:lat)
(command "_.text" "_non" (list (+ ril:E ril:dx) (+ ril:N ril:dy)))
(if ril:htt (command ril:ht))
(command ril:rot ril:pt)
)
)
)
(alert (strcat "\nSono stati importati correttamente " (itoa ril:con)
" punti."))
(princ)
)
(defun ril:val ()
(setq ril:chr "")
(while (/= ril:chr ril:sep)
(setq ril:pos (1+ ril:pos)
ril:chr (substr ril:riga ril:pos 1)
)
(if (> ril:pos ril:lung)
(setq ril:chr ril:sep)
)
)
(setq ril:ret (substr ril:riga 1 (1- ril:pos ))
ril:riga (substr ril:riga (1+ ril:pos) ril:lung)
ril:pos 0
)
(eval ril:ret)
)
;(princ "\nUtility per ricostruire un rilievo da un elenco di coordinate
;caricata.\nby Maci 24.01.09\nDigita 'rest_ril' per avviare il comando")
(princ)
--
Ciao