Compilazione automatica cartiglio

michelamik

Utente poco attivo
Professione: ing
Software: autocad 2018
Regione: trentino
Ciao a tutti.
Ho bisogno di un vostro aiuto cortesemente.
Devo creare una macro che compili in automatico il cartiglio di ogni tavola (ne ho 300!), con i dati inseriti in un Excel.
Ho organizzato il cartiglio con attributi e li devo compilare con i dati relativi presenti in un foglio Excel (elenco elaborati).
E' possibile creare una macro così? In modo che se cambiano i dati in Excel cambiano i cartigli.
Grazie molte !!!!
Ho allegato i file che uso e che si devono parlare.
 

Allegati

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
potrebbe bastare uno script.
all'interno del forum c'è un file excel che genera in automatico lo script per ogni file. è un argomento già trattato e spiegato
il funzionamento dello script è quello di lanciare in sequenza i comandi che si compilerebbe nella riga di comando.
di seguito uno specchietto di quello che dovresti compilare, ma prima un breve spiegazione dello specchietto:
in rosso i comandi da scrivere in ogni singola cella; dove presenti le virgolette vanno mantenute
(tra parentesi la spiegazione)
i comandi preceduti dall'underscore serve per dare le opzioni da riga di comando anziché aprire la finestra di selezione
-commento a margine di questo esempio-

apri (apre un file)
"percorso file.dwg" (nome del file da aprire; le virgolette servono per nomi lunghi e con spazi)
_attedit (edita il blocco)
_n (definisce se editare gli attributi singolaremente)
_n (definisce se editare solo gli attributi visibili)
"cartiglio" (nome del blocco contenente gli attributi da editare)
"etichetta" (nome dell'etichetta da editare)
* (Corrisponde a qualsiasi stringa e può essere utilizzato in qualunque punto della stringa di ricerca)
valore vecchio (stringa da cambiare)
valore nuovo (nuova stringa)
-ripetere da _attedit per ogni etichetta-
zoom (zoom)
e (zoom estensione)
_purge (pulisci il file)
tu (tutti gli oggetti)
* (qualsiasi oggetto)
_n (non verifica gli oggetti singolarmente)
-questi comandi sono opzionali-
_save (salva)
 

GiulianoGo

Utente poco attivo
Professione: Disegnatore progettista
Software: autocad
Regione: lazio
Grazie Massi per il suggerimento. Anche io ho lo stesso problema, cercherò di adattare le tue indicazioni al mio caso
 

GiulianoGo

Utente poco attivo
Professione: Disegnatore progettista
Software: autocad
Regione: lazio
potrebbe bastare uno script.
all'interno del forum c'è un file excel che genera in automatico lo script per ogni file. è un argomento già trattato e spiegato
il funzionamento dello script è quello di lanciare in sequenza i comandi che si compilerebbe nella riga di comando.
di seguito uno specchietto di quello che dovresti compilare, ma prima un breve spiegazione dello specchietto:
in rosso i comandi da scrivere in ogni singola cella; dove presenti le virgolette vanno mantenute
(tra parentesi la spiegazione)
i comandi preceduti dall'underscore serve per dare le opzioni da riga di comando anziché aprire la finestra di selezione
-commento a margine di questo esempio-

apri (apre un file)
"percorso file.dwg" (nome del file da aprire; le virgolette servono per nomi lunghi e con spazi)
_attedit (edita il blocco)
_n (definisce se editare gli attributi singolaremente)
_n (definisce se editare solo gli attributi visibili)
"cartiglio" (nome del blocco contenente gli attributi da editare)
"etichetta" (nome dell'etichetta da editare)
* (Corrisponde a qualsiasi stringa e può essere utilizzato in qualunque punto della stringa di ricerca)
valore vecchio (stringa da cambiare)
valore nuovo (nuova stringa)
-ripetere da _attedit per ogni etichetta-
zoom (zoom)
e (zoom estensione)
_purge (pulisci il file)
tu (tutti gli oggetti)
* (qualsiasi oggetto)
_n (non verifica gli oggetti singolarmente)
-questi comandi sono opzionali-
_save (salva)
Ciao Massi e grazie della tua disponibilità. Ho capito il senso e l'uso degli script, il problema è che lo script dovrebbe aprire il file excel dove leggere quale file aprire e per ognuno di questi leggere quali valori dare agli attributi del blocco. Io non so come fargli fare questa operazione. Potresti darmi qualche indicazione? Grazie
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
l'excel serve per creare lo script, non viceversa.
su autocad ti studi i comandi ed eventuali opzioni di questi da usare, ti fai la lista, apri il file creascript (lo metto per la 50esima volta...) e segui le istruzioni quindi crei il file scr che poi caricherai in autocad.
ti consiglio di provare sempre il codice con un disegno singolo di cui ti sei fatto una copia di sicurezza per verificare che funzioni come si desidera. se tutto funziona puoi lanciare anche 1000 disegni e metterti a fare qualcos'altro.

in questa discussione trovi un file pdf con spiegazione, esempi e consigli sullo script
 
Ultima modifica:

GiulianoGo

Utente poco attivo
Professione: Disegnatore progettista
Software: autocad
Regione: lazio
l'excel serve per creare lo script, non viceversa.
su autocad ti studi i comandi ed eventuali opzioni di questi da usare, ti fai la lista, apri il file creascript (lo metto per la 50esima volta...) e segui le istruzioni quindi crei il file scr che poi caricherai in autocad.
ti consiglio di provare sempre il codice con un disegno singolo di cui ti sei fatto una copia di sicurezza per verificare che funzioni come si desidera. se tutto funziona puoi lanciare anche 1000 disegni e metterti a fare qualcos'altro.
Certo questo lo avevo capito solo che trattandosi di centinaia di files preferirei non scrivere uno script con i nomi di tutti i files. Concettualmente immaginavo di usare uno strumento che mi leggesse da un file excel su ogni riga in ordine:
- nome del file da aprire
- valore dell'attributo 1
- valore dell'attributo 2
- ...
questo reiterato per un numero indefinito di righe.
Ora non so quale strada percorrere da poter sviluppare (script, VBA, lisp). Secondo la tua esperienza dovrei dovrei porre la mia attenzione?
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
e cosa ti cambia anche se sono 500 file? tu scrivi la lista dei comandi, carichi i file e lanci il comando e fa tutto l'excel.
se invece per ogni file dwg gli attributi cambiano senza una logica precisa che permetta di sfruttare le funzionalità di excel la situazione è diversa.
 

GiulianoGo

Utente poco attivo
Professione: Disegnatore progettista
Software: autocad
Regione: lazio
Cer
se invece per ogni file dwg gli attributi cambiano senza una logica precisa che permetta di sfruttare le funzionalità di excel la situazione è diversa.
Certo che cambiano, è proprio quella la difficoltà!
Per ogni file autocad nel cartiglio cambiano almeno:
- la codifica dell'elaborato
- il titolo e i sottotitoli
- la data di emissione
Spero di essermi spiegato.
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
se hai già un excel compilato con tutte le variabili degli attributi e vuoi interfacciarti a questo file mi sembra, non ne sono sicuro, che ti serva programmare in VBA.
io so fare a fatica solo gli script
 

GiulianoGo

Utente poco attivo
Professione: Disegnatore progettista
Software: autocad
Regione: lazio
se hai già un excel compilato con tutte le variabili degli attributi e vuoi interfacciarti a questo file mi sembra, non ne sono sicuro, che ti serva programmare in VBA.
io so fare a fatica solo gli script
Avevo il sospetto che l'unica strada era il VBA. Mi metterò a studiarlo. Grazie Massi