Newsgroup: it.discussioni.geometri
Titolo: Maci: Perché il lisp non funziona piů?

Con autocad 2004?
 
Questo è il file txt:
PF02/1150/A271,4824489.043,2398974.579
PF09/1150/A271,4824879.954,2398956.652
PF03/115A/A271,4824880.187,2399271.995
70,4824840.883,2398918.790
499,4824745.290,2398902.819
501,4824757.665,2398902.742
502,4824771.733,2398899.327
503,4824777.602,2398895.570
504,4824778.115,2398895.241
505,4824780.100,2398893.509
506,4824783.156,2398890.406
507,4824797.893,2398872.149
508,4824804.124,2398876.519
522,4824732.739,2399039.279
528,4824698.035,2399038.106
69,4824839.590,2398869.812
500,4824706.335,2398739.144
400,4824791.423,2398660.378
2900,4624765.266,2398694.062
1100,4824821.037,2398824.454
2800,4624647.111,2398791.865
600,4824593.813,2398849.981
1700,4824537.368,2398912.123
5000,4824672.953,2398429.240
5100,4825715.834,2398918.361
300,4824843.602,2398704.007
700,4824405.337,2399149.590
5400,4824906.053,2396757.981
1200,4824640.227,2398896.581
1400,4824762.280,2398897.569
 
 
 
**********************************************************
 
;;; 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 
 
 

 2800,46(8)24647.111,2398791.865
 
caricato senza problemi

 caricato senza problemi
 
perché l'8 tra parentesi?
Mi puoi dire che procedura hai adottato?
 
Io apro autocad2004 con FILEDIA=0
creo nuovo disegno con file modello (.) punto
lancio il lisp: zero punti importati.
 
-- 
Ciao 
 
 

 
 
caricato con autocad2010