Esportare più file dwg da un singolo disegno (da modello o layout)

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Buongiorno a tutti,
ho un quesito da porvi.

Ho un documento formato da circa una 70 di fogli in formato A3 che per praticità ho messo in sequenza, sempre alla stessa distanza l'uno dall'altro, ma una volta finiti di lavorare ho 2 necessità.

La prima è quella di poter stampare tutti i fogli in maniera rapida.
Per fare questo, ho creato un singolo layout per ogni foglio per permettermi di effettuare il publish e stampare così o i pdf od inviarli direttamente sulla stampante.

La seconda è quella di, alla fine del lavoro, avere un file dwg per ogni singolo foglio.
Il problema nasce qui. Non ho trovato un modo, tipo publish, per estrarre dal modello o dai singoli layout i fogli in formato dwg. L'unica cosa è esportare singolarmente ogni singolo layout (senza darmi alcuna opzione sull'esportazione), ma quando lo esporto mi crea un file che andrebbe comunque modificato. In pratica mi crea il "rettangolo" della vista del layout che dovrei poi cancellare manualmente e il blocco del cartiglio è come se fosse tagliato nella parte inferiore destra e gli mancassero dei pezzi. In sostanza inutile per il risultato al quale voglio arrivare.

L'unica cosa che posso fare, quindi, sarebbe quella di copiare ogni singolo foglio su un foglio nuovo e creare così i vari file a fine lavoro.

C'è qualcuno che sa indicarmi un sistema più rapido e pratico per poter "estrarre" tutti questi fogli in file dwg? che sia dallo spazio modello o dallo spazio carta. Oppure se sa indicarmi delle procedure migliori.

Lavoro con AutoCAD LT, ma nel caso ci fosse qualche comando che funziona con la versione completa mi piacerebbe comunque saperlo.

Grazie, in ogni caso, a tutti
 

Ch.giacomo

Utente poco attivo
Professione: Disegnatore Tecnico
Software: Autocad
Regione: Lombardia
Puoi usare il salvataggio con nome in DXF che nelle opzioni di da la possibilità di selezionare con il mouse gli elementi che vuoi.. su 70 file non è poi cosi lento come sistema e se li vuoi in DWG ti tocca riaprirli e risalvarli tutti in DWG.
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: solidworks 2019
Regione: Friuli Venezia Giulia
Puoi anche usare il comando MBLOCCO
Azzardo a dire che se, come scrivi, nel disegno hai già ordinato con distanza fissa i disegni, puoi creare uno script in excel che lanciato faccia l'esportazione MBLOCCO.
se li vuoi in DWG ti tocca riaprirli e risalvarli tutti in DWG.
Per questo sono sicuro che basta uno script che apra il disegno e faccia un salva con nome in formato dwg
 

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Intanto, grazie per le risposte :)

Avevo pensato che uno script potesse fare al caso mio, e di fatti volevo cercare di capire bene come funzionassero gli script, provando a leggere qui sul forum (anche se al momento mi risulta ancora poco chiaro il funzionamento, ma ci dovrò dedicare il giusto tempo).
Se mi poteste indicare dove venga ben esplicato il funzionamento degli script su AutoCAD ve ne sarei grato.

Puoi usare il salvataggio con nome in DXF che nelle opzioni di da la possibilità di selezionare con il mouse gli elementi che vuoi.. su 70 file non è poi cosi lento come sistema e se li vuoi in DWG ti tocca riaprirli e risalvarli tutti in DWG.
Ho provato a salvare il file in DXF, come suggeriva Ch.giacomo, ma non credo di aver capito come dovrei intervenire, visto che il risultato mi sembra identico se non per l'estensione. Non trovo alcun tipo di opzione per poter selezionare con il mouse gli elementi che mi interessano.
 

Ch.giacomo

Utente poco attivo
Professione: Disegnatore Tecnico
Software: Autocad
Regione: Lombardia
Ti allego uno screen.
Il passaggio è:
SALVA CON NOME
in alto a destra trovi STRUMENTI
OPZIONI
OPZIONI DXF
spunti la casella SELEZIONA OGGETTI
cosi poi dai un nome al file che vuoi salvare es.. FOGLIO1 e selezioni la parte di DWG che vuoi.
se ripeti l'operazione la casella seleziona oggetti rimane attiva fino alla chiusa del file.
 

Allegati

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Ti allego uno screen.
Il passaggio è:
SALVA CON NOME
in alto a destra trovi STRUMENTI ...
Grazie, per la dettagliata spiegazione. Ho scoperto una nuova funzione che non conoscevo. Avevo dato per scontato che quella scheda Strumenti si riferisse a degli strumenti per il salvataggio in Windows. Molto interessante, anche se credo che dovrò riuscire ad integrarla con uno script ad hoc, altrimenti tanto varrebbe copiare ed incollarmi i singoli fogli salvandoli direttamente in DWG.

c'è una discussione recente con l'utente Marcoc in merito agli script in cui ci ono allegati e link rimandanti ad altre discussioni
Perfetto, grazie. Me la guardo bene e mi ci metterò a "giocare" un po' per capire come strutturare al meglio lo script per il mio caso ;)
 

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Ok, sono riuscito ad arrivare fino a questo punto completando lo script (utilizzando il primo file excel CreaFileScript.xls creato da rporr66, che con il secondo mi dava dei problemi)
OPEN​
FILE​
COPYCLIP​
BOX​
0,0​
@420,297​
" " (tra queste "" ho messo uno spazio, altrimenti mi si bloccava sul comando di copia)
_OPEN​
"Percorso del file dwg che ho già impostato con i parametri che mi servono, ma vuoto"​
_PASTECLIP​
0,0​
ZOOM​
E​
_SAVEAS​
"Percorso con il nome del nuovo file da salvare"​
_Close​
A questo punto, mi sono detto, è fatta!
Mi basterà far ripetere questo ciclo, modificando giusto la posizione di partenza per il copia ed inserire gli altri numeri in sequenza dei nuovi file... ma a quanto pare no.

Ho provato a ripetere i comandi per farne 2 in sequenza, ma non appena si concludono i comandi sul primo foglio e si chiude la scheda lo script mi si blocca nonostante la schermata si "fermi" sulla scheda del foglio del FILE dove sono tutti i disegni che dovrei esportare.

Sembra come se il comando si bloccasse perché la scheda non risultasse "selezionata".

Qualcuno sa darmi una mano per risolvere quest'ultimo passaggio e far continuare lo script per estrarre anche gli altri disegni dal modello? :unsure:

Grazie
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, CadWorx, Lisp, VBA. YouTube: roberto portuese
Regione: Sicilia
C'è un errore di fondo, se all'interno di uno script apri il file FILE e poi ne apri un'altro, il comando CLOSE chiuderà l'ultimo aperto, rimanendo aperto il file principale.
Personalmente non avrei seguito la strada del SaveAs, avrei preferito di gran lunga il WBLOCK, lo script sarebbe molto più semplice, con il file principale aperto, avviavi il comando:
(command "_wblock" "nomefile1" "" "0,0" "_W" "0,0" "420,297" "")
e poi
(command "_wblock" "nomefile2" "" "430,0" "_W" "430,0" "850,297" "")
premesso che i vari disegni siano distanziati di 10 e il formato sia A3

i vari (command "_wblock...... li puoi creare concatenando le parti fisse con quelle variabili tramite l'excel (vedi allegato), ottenuti tutti i vari comandi li incollavi nel file scr (incolla valori), con un solo script esegui tutti i salvataggi.
 

Allegati

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Grazie rpror66
si, sicuramente mi sono andato a intestardire con il metodo più complicato, anche se non mi è dispiaciuto sbatterci un po' la testa sopra per entrare un po' nella logica degli script 😅

Effettivamente, riflettendoci meglio, il tuo metodo risulterebbe più comodo (ed è forse questo che mi consigliava inizialmente anche Massi 🙏) ed il file excel che hai allegato sarebbe molto utile ma... io ho una versione LT 😢

Ho provato ad inserire i comandi da te scritti ma AutoCAD mi riporta che i comandi LISP non sono disponibili.

Anche avviando il comando WBLOCK mi apre in automatico la finestra per impostare i vari parametri (e questo interromperebbe lo script) nonostante la variabile FILEDIA sia "0". Cercando in rete mi è parso di capire che, forse, la variabile che mi servirebbe per poter disabilitare la finestra del WBLOCK sia BLOCKTESTWINDOW ma mi da il parametro bloccato in "sola lettura" su 0 (credo sempre per colpa della versione LT) anche se non sono sicuro si tratti della giusta variabile.

Continuerò la ricerca, nei limiti della versione LT, per trovare la soluzione migliore a questo problema 💪 sperando anche in qualche altro utile consiglio da parte del forum 😊

C'è un errore di fondo, se all'interno di uno script apri il file FILE e poi ne apri un'altro, il comando CLOSE chiuderà l'ultimo aperto, rimanendo aperto il file principale.
Quindi comunque mi confermi che non c'è modo di eludere questo tipo di problema in qualche modo provando sulla strada del (+ complicato) SAVEAS?
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: solidworks 2019
Regione: Friuli Venezia Giulia
perr impedire l'apertura della finestra devi inserire prima del comando il segno -; questo unito alla variabile FILEDIA permette di usare le opzioni da riga di comando.
Per quanto riguarda lo script devi inserire nell'excel la parte di esportazione tante volte quante fogli devi fare.
Quindi indicativamente per fare un esempio terra terra senza sapere se sono proprio i comandi corretti:
apri
nomefile
-mblocco
0,0
100,100
nomeblocco
-mblocco
0,150
100,250
nomeblocco
-mblocco
0,300
100,450
nomeblocco
.....

se poi hai tutto ben ordinato ti basta usare una formula sulla riga delle coordinate (tipo cella D30 è cella D25+30) per non dover scriverle a mano
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, CadWorx, Lisp, VBA. YouTube: roberto portuese
Regione: Sicilia
Nel foglio LT ho creato i primi 6 gruppi di wblock utili al tuo caso, puoi inserire le dimensioni del foglio e la distanza tra loro, ci sono le formule, quindi ti basta copiare il blocco, dal 2 in poi, e puoi ottenere tutti i comandi che ti servono, ti basterà copiare e incollare i valori nel tuo script.
Dovresti avere tutte le informazioni utili, buon lavoro.
 

Allegati

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Grazie mille a tutti per l'aiuto, ora così lo script lavora perfettamente e mi vengono creati in automatico tutti i singoli dwg 🤩

perr impedire l'apertura della finestra devi inserire prima del comando il segno -; questo unito alla variabile FILEDIA permette di usare le opzioni da riga di comando.
tra l'altro mi avete insegnato questa "variante" per la creazione dei blocchi davvero interessante 🙂

Spero che questo argomento possa risultare utile anche ad altri, con situazioni analoghe

Ne approfitto per chiedere un ultimissima cosa...

Ora lo script, creando i vari disegni, li posiziona, giustamente, nelle stesse coordinate del foglio dal quale sono stati estrapolati.
Ma se io volessi creare un ulteriore script per aprirli uno ad uno e muoverli tutti sempre al punto di origine 0,0 (cosa che altrimenti dovrei fare manualmente con CTRL+A - Sposta - selezionare il punto base nell'angolo in basso a sinistra e spostarlo a 0,0), esiste un comando adatto?

Perché non mi vengono in mente altri comandi se non Sposta ma così facendo, utilizzando lo script, dovrei per forza indicare sempre le coordinate di ogni singolo foglio in questione per dirgli di quanto si deve spostare sull'asse delle X per tornare al punto 0,0
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: solidworks 2019
Regione: Friuli Venezia Giulia
Perché non mi vengono in mente altri comandi se non Sposta ma così facendo, utilizzando lo script, dovrei per forza indicare sempre le coordinate di ogni singolo foglio in questione per dirgli di quanto si deve spostare sull'asse delle X per tornare al punto 0,0
Se fai uno script unico in cui programmi tutti gli spostamenti puoi usarlo su tutti i fogli; ad esempio hai due fogli in cui in uno hai le coordinate 0,0 e 100,100 mentre nell'altro hai le coordinate 200,200 e 300,300, se fai uno script unico in cui fai lo spostamento di entrambe le posizioni succederà che:
nel primo foglio sposterai gli oggetti al primo comando sposta mentre al secondo comando sposta non sposterai nulla in quanto la selezione con includerà nessun oggetto
nel secondo foglio al primo comando sposta non sposterai nulla perché la selezione non includerà nulla mentre al secondo comando sposta la selezione comprenderà gli oggetti interessati e quindi otterrai il risultato.
Tra l'altro potrai usare parte dello script precedente in cui hai già compilato le coordinate dei fogli

A mente fredda e senza aver modi di fare delle prove questa è la soluzione che mi viene in mente
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: solidworks 2019
Regione: Friuli Venezia Giulia
Ho scritto una minchiata... se non sono presenti oggetti il comando sposta non funziona.
pero puoi fare un unico script in cui ripeti n volte il codice per eseguire lo spostamento, solo che una volta caricati i file tramite l'apposito pulsante invece di usarli per creare il codice li userai per compilare la riga di comando.
ti allego un esempio
In pratica ho caricato i file tramite il pulsante seleziona file e poi anziché lasciarli nella colonna A li ho spostati in una colonna diversa per poterli usare per compilare lo script.
La differenza sta nel fatto che lasciandoli nella colonna A quando si preme il pulsante crea script il codice viene ripetuto identico, eccetto il nome file, dalla prima all'ultima riga quanti sono i file caricati; spostandoli invece il codice viene scritto una volta sola e le ripetizioni vengono gestite ripetendo il codice direttamente nell'excel.
Sfruttando le formule di excel si può automatizzare ulteriremente il sistema.
 

Allegati

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Ottimo, si più si conoscono le formule di excel e più possibilità si ha di automatizzare il tutto.

Non sono riuscito a rispondere prima, visto che alla fine dovevo anche consegnarli questi documenti 😅

Comunque si alla fine ho implementato nello stesso script (quello per estrarre i vari disegni) il comando MOVE per portarli così uno per uno, sfruttando le stesse coordinate utilizzate per WBLOCK, al punto di origine e far ripetere il comando WBLOCK sempre nello stesso punto.

Se dovesse servire, per salvare ogni disegno con lo "zoom estensione" o prima di far partire lo script si zooma sul primo disegno, oppure si utilizza l'excel "CreaFileScript" di rpor66 per selezionare tutti i file che si sono estratti e far effettuare questo semplice ciclo 🙂

Grazie ancora a tutti per l'aiuto ed il supporto
 

Lumix86

Utente poco attivo
Professione: Disegnatore CAD
Software: AutoCAD
Regione: Lazio
Se dovesse servire, per salvare ogni disegno con lo "zoom estensione" o prima di far partire lo script si zooma sul primo disegno...
Scusatemi, non riesco a modificare il messaggio inviato ma qui ho scritto una scemenza.

Per fare lo zoom tocca utilizzare più semplicemente l'excel visto che a quanto pare ad AutoCAD anche se gli si danno le coordinate corrette per fargli selezionare il disegno in questione, non lo seleziona se non risulta visibile nella schermata al momento dell'avvio dello script. Quindi per avviare correttamente lo script tocca per forza avviarlo con lo zoom estensione di tutti i disegni.
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: solidworks 2019
Regione: Friuli Venezia Giulia
ad AutoCAD anche se gli si danno le coordinate corrette per fargli selezionare il disegno in questione, non lo seleziona se non risulta visibile nella schermata al momento dell'avvio dello script.
E' un limite di auocad. Lo si può riscontrare anche facendo un banale stira facendo uscire il punto di partenza dallo schermo.