mercoledì, luglio 18, 2012

Spostare i punti di un rilievo 2D alla quota indicata in AutoCAD

Oggi vado leggermente fuori argomento e parlo un po' di AutoCAD, strumento che rimane spesso presente nel mio flusso di lavoro, vuoi per comunicare con i consulenti, vuoi per alcune operazioni fondamentali  di preparazione dei file da importare in Revit.

Da questa discussione su Revit Forum


ho deciso di pubblicare  un piccolo LISP che ho scritto per velocizzare delle operazioni noiose in CAD.
Tutto nasce dall'esigenza di avere un file in formato .CSV da utilizzare in Revit per generare una superficie topografica.

Un file CSV (Comma Separeted Values, ossia valori separati da virgola) si può ottenere facilmente grazie all'indispensabile xSurvey rilasciato da Gjiom, rimando alle pagine del forum o del suo Revit Landia dove se ne parla ampiamente.

Lo scenario tipico in cui mi trovo ad operare è quello di avere da un consulente esterno un DWG con i punti battuti nel rilievo, disegnati come oggetti punto con coordinata Z uguale a zero, e a lato un testo che ne riporta la quota assoluta in metri sul livello del mare.

Quello che fa questo LISP è creare una copia dei punti battuti su un layer (A-3D-POINTS) posizionandoli alla terna di coordinate (X,Y,Z) desunta dal punto a quota zero e dal testo accanto.
per motivi di praticità i punti originali vengono spostati su un layer che verrà automaticamente spento (HIDDEN) quindi sarebbe bene fare queste operazioni partendo da una copia di lavoro del vostro file di rilievo.

Quindi per ciascun punto battuto si deve selezionare prima il punto e immediatamente dopo la quota, ciclicamente fino ad esaurimento dei punti.
Inizialmente viene richiesto di esprimere il valore di un metro in unità di disegno (purtroppo capita di avere una pianta in centimetri e le quote accanto in metri se il rilievo è piccolo); in ogni caso di default viene considerato un disegno in metri.

Ho notato che su alcuni file lavorando dall'alto il LISP non funziona correttamente: crea la copia del punto ma la lascia a quota zero, probabilmente ha a che vedere con una variabile di snap che dovrei disattivare, indagherò appena posso.
Questo per dire che non ho nessuna pretesa di aver fatto un lavoro scevro da errori, anzi, è aperto a chi volesse migliorarlo, sarebbe utile poterne condividere su queste pagine gli eventuali sviluppi.

Tuttavia in una vista assonometrica il LISP funziona correttamente.

Ribadisco che è pensato per funzionare con degli oggetti punto e dei testi in testo multilinea, in caso di blocchi con attributi, ad esempio, si dovrà procedere diversamente.
Quindi nel caso non fosse possibile richiedere a chi fornisce il rilievo di averlo in 3D si può utilizzare, con pazienza, questo piccolo strumento.

Per visualizzare meglio i punti scegliete il contrassegno che vi piace di più digitando alla riga di comando "._ddptype".

Per caricare il LISP occorre digitare alla riga di comando APPLOAD e richiamare il comando digitando 3DP.

Lo potete trovare a questo link.