Newsgroup: it.comp.software.cad
Titolo: AutoCad e Excel

Ciao,
vi pongo un quesito a cui ancora non sono riuscito adare risposta.
E' possibile passare in una tabella di excel le lunghezze delle linee che
seleziono in Autocad?
Spero in un aiuto.
Grazie e ciao,
Stefano.
--
~~~~~~~~~~~~~~~
Per rispondere togli @
~~~~~~~~~~~~~~~

 wrote in message
xCl9a.9997$zo2.3...@news2.tin.it...


 ..... maggiori spiegazioni su cosa vuoi fare... :~)
Allora...ecco quello che vorrei fare.
Ho disegnato una capriata. Essa ovviamente ha delle aste e dei nodi.
Le aste sono rapresentate tramite linee e i nodi sono individuati da numeri.
Vorrei mettere le lunghezze delle linee in una tabella Excel, dove saranno
poste in questo modo:
- nella prima colonna il nome delle aste, che sara' una coppia di numeri (ad
es. l'asta che si trova tra il nodo 1 il nodo 2 si chiamera' 12);
- nella seconda colonna la lunghezza.
 E in piu' (l'appetito vien mangiando :-)), se ci fosse il modo di mettere
anche gli angoli di inclinazione delle varie aste, non sarebbe male.
Grazie e ciao,
Stefano.

Ciao Stefano
L'esportazione diretta in EXCEL richiede qualcosa di più complicato
(VisualLisp).
Se ti può andare bene il seguente codice esegue l'esportazione dei valori in
un file CSV apribile direttamente con Excel (consiglio: lancia prima Excel e
poi con "Apri" seleziona il file CSV creato; infatti, cliccando due volte
sul file CSV da esplora risorse viene comunque aperto con Excel ma non
vengono riconosciuti i separatori ; di colonna).
Fammi sapere.
Ciao Claudio
;;;---------------------------------------------------
(defun c:Waste ()
(setvar "cmdecho" 0)
(if (not NomeFile) (c:File))
(setq Separatore ";")
(setq N1(entsel "\n Seleziona il I NODO (testo): "))
(while (/= (cdr(assoc 0 (entget(car N1)))) "TEXT")
 (setq N1(entsel "\r Seleziona il I NODO (testo): "))
)
(setq N2(entsel "\n Seleziona il II NODO (testo): "))
(while (/= (cdr(assoc 0 (entget(car N2)))) "TEXT")
 (setq N2(entsel "\r Seleziona il II NODO (testo): "))
)
(setq N1 (cdr(assoc 1 (entget(car N1)))) N2 (cdr(assoc 1 (entget(car N2)))))
(setq Asta(entsel "\n Seleziona l'ASTA (linea): "))
(while (/= (cdr(assoc 0 (entget(car Asta)))) "LINE")
 (setq Asta(entsel "\r Seleziona l'ASTA (linea): "))
)
(setq P1 (cdr(assoc 10 (entget(car Asta)))) P2 (cdr(assoc 11 (entget(car
Asta)))))
(setq Lunghezza(distance P1 P2))
(setq AngoloRad(angle P1 P2))
(setq AngoloSessaD(* AngoloRad (/ 360 (* 2 pi))))
(setq FF(open NomeFile "a"))
(write-line (setq riga(strcat N1 N2 Separatore (rtos Lunghezza 2 2)
Separatore (rtos AngoloSessaD 2 4))) FF)
(close FF)
(princ "\n Aggiunta al file:")(princ NomeFile)(princ " la riga: ")(princ
riga)
(princ)
)
(defun c:File ()
(setq NomeFile (getfiled "Salva file con Nodi-Lunghezze-Inclinazioni" ""
"csv" 1))
  (princ "\n Nome file corrente: ")(princ NomeFile)(princ)
)
(princ "\n <Copyright: ing. Claudio Granuzzo>")
(princ "\n  Digitare WASTE per scrivere i dati!")
(princ "\n  Digitare FILE per cambiare file!")
(princ)
;;;---------------------------------------------------

Ciao Claudio,
grazie per l'aiuto.
Direi che e' semplicamente perfetta.
Quello che cercavo.
Ancora grazie.
Ciao, Stefano.

con le vecchie versioni di acad (12win) io importavo-esportavo con OLE tra
ucad ed Excel le entità che mi interessavano, modificandole in Excel e
reimportandole in autocad (era carino vedere le entità che cambiavano mentre
aggiornavo il collegamento OLE.....
ora non so se sia possibile farlo, forse sì, ma in modo forse più complesso
con VB.
alla faccia della semplificazione....
mauro
