PDA

Visualizza Versione Completa : Associare dati tabella excel a dati oggetto autocad



marcod1983
19.01.2011, 16:59
Salve ragazzi, vorrei chiedervi una cosa:
esiste la possibilità con Autocad, Civil 3D o Autocad Map di associare i dati di una tabella Excel ad un oggetto DWG?
Per fare un esempio: ho una tabella in cui sono riportate coordinate WGS84 x e y e voglio associare tali coordinate a una serie di cerchi in autocad che ne individuino la posizione sul disegno...posso associare a tali cerchi le coordinate riportate in tabella ed evitarmi di selezionare cerchio per cerchio e andare a modificare le coordinate manualmente una per volta???
Grazie ;)

guido.bonin
20.01.2011, 13:09
Si può fare.
Però, dipendentemente da quello che devi fare, la cosa può diventare un po' più complessa da gestire (potrebbe servire fare un programmino - tipo una macro- in VBA o Lisp o .Net (che va per la maggiore con Autodesk..)
Ripeto la procedura che chiedi, per chiarezza:
1. su Excel hai una lista di coordinate (punti, X, Y)
2. ad ogni punto è associato un cerchio su AutoCAD (+ che Civil 3D: non credo ti servano funzioni di C3D qui)
3. se cambi le coordinate, i cerchi si spostano
(4. opzionale: se sposti i cerchi, cambiano le coordinate)

Il passaggio da 1 a 2 è quello che ti serve in realtà (qui sta il succo)
Il punto 3. può funzionare in due modi:
- statico: quando cambi le coordinate, "non succede niente" finchè non "premi un pulsante" che di atto richiama la procedura (il programmino/macro) che fa il passaggio 1-2
- dinamico: il programma sta sempre "all'erta", quindi se cambi i contenuti delle celle, si "genera un evento" (roba di programmazione..non ti preoccupare) che fa partire in automatico la procedura 1-2

Il punto 4 è una procedura "inversa" 2-1 (di fatto un altro programmino)

Ulteriori miglioramenti si possono fare per gestire l'eventuale immissione di nuovi punti (altri cerchi).

Per fare una cosa del genere ci vuole un po' di lavoro (programmandola) che ovviamente aumenta per la gestione del "doppio senso" 1->2 e 2->1, con ulteriore raffinamento per l'inserimento del dinamismo.
Il problema di un programma del genere (gestibile tranquillamente tutto in VBA) è avere pratica con la cosa in sè: io personalmente ho fatto qualcosa, ma non è il mio pane quotidiano e ogni volta che devo rifare qualche cosa ci metto una buona giornata a ricordare i comandi e le procedure.

Dipende insomma da quanto ti serve una cosa così: se lo devi fare per un numero piccolo di punti, una sola volta, lascia stare (a meno che non sei ferrato o vuoi imparare una cosa nuova)
Se la cosa è ricorrente e devi spesso fare modifiche (peggio se con tenti punti) allora vale senza dubbio la pena imprare la cosa nuova o chiedere a qualcuno di realizzartela: chi lo fa di mestiere ci mette penso "poche ore"

Se sono tantissimi punti in una volta sola, potresti valutare di crearti una procedura automatizzata semplice: uno SCRIPT.
Si tratta di una cosa molto semplice (specie se parti da Excel):

1. ti fai una tabella pulita con le due colonne delle x e delle Y
2. aggiungi una colonna prima della X e ci metti sempre il testo (compreso l'apostrofo, che serve per specificare una stringa) '_circle (il comando AutoCAD)
2. aggiungi una colonna prima delle X e ci metti ' (apostrofo seguito da spazio)
3. aggiungi una colonna tra le X e le Y e ci metti '* (apostrofo seguito da asterisco)
4. aggiungi una colonna dopo le Y e ci metti ' (apostrofo seguito da spazio)
5 aggiungi una colonna finale (dopo la precedente) e ci metti il valore del raggio

Dovresti avere una situazione del genere:
129

A questo punto salvi tutto (salva con nome) come "testo delimitato da separatore di elenco (.CSV)"
e dovresti ottenere questo file:
_circle ,12,*,12, ,25
_circle ,13,*,12, ,25
_circle ,14,*,12, ,25
_circle ,15,*,12, ,25

Sul blocco note devi
1. sostituire tutte le virgole con niente (le cancella)
2. sostituisci tutti gli asterischi "*" con una virgola ","
3. vai a riga nuova alla fine (a capo)
Il nuovo file è più o meno così:
_circle 12,12 25
_circle 13,12 25
_circle 14,12 25
_circle 15,12 25

A questo punto non devi far altro che salvare e rinominare il file da "nomefile.csv" a "nomefile.scr"
Dai il comando SCRIPT in AutoCAD (o C3D) e indichi il file, magari prima disattiva gli OSNAP su AutoCAD (F3).

Facci sapere come e se hai risolto

Ciao

Guido