Stampa sequenziale secondo albero

cop1

Utente Junior
Professione: progettista
Software: solidedge
Regione: italia
#1
Salve,
sono un progettista meccanico e nella mia vita professionale ho utilizzato Autocad, Solidworks e Solidedge (adesso ST4).
Da alcuni anni mi occupo di gestione delle commesse e spesso mi capita di dover stampare tutti i disegni di un assieme, che poi però devo riordinare in quanto la stampa segue un ordine alfabetico.
La mia richiesta è la seguente:
devo stampare, di un assieme, tutti i dft ad esso collegato (sono circa 200 disegni), ma in maniera sequenziale (seguendo l'albero dell'assieme), in modo che risultino già ordinati per la consultazione cartacea.
I sottoassiemi ed i particolari si trovano sparsi in altre cartelle del computer, in quanto l'ufficio tecnico lavora con particolari codificati che possono essere utilizzati su più progetti.
Esiste un modo per eseguire questo tipo di stampa? Al limite è possibile creare una macro?
Utilizzo VB di excel: si possono generere macro anche per Solidedge da questo programma? Qualcuno può indicarmi come si fa?
Grazie
Cop1
 

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#2
Sulla ST4 mi sembra ci sia già la voce su applicazione "stampa disegno" .
Ti apre una finestra dove puoi scegliere i disegni da stampare. Nello specifico non ho mai avuto bisogno di utilizzare questa applicazione finora, ma prova a vedere se fa al caso tuo.

ciao
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#3
Salve,
sono un progettista meccanico e nella mia vita professionale ho utilizzato Autocad, Solidworks e Solidedge (adesso ST4).
Da alcuni anni mi occupo di gestione delle commesse e spesso mi capita di dover stampare tutti i disegni di un assieme, che poi però devo riordinare in quanto la stampa segue un ordine alfabetico.
La mia richiesta è la seguente:
devo stampare, di un assieme, tutti i dft ad esso collegato (sono circa 200 disegni), ma in maniera sequenziale (seguendo l'albero dell'assieme), in modo che risultino già ordinati per la consultazione cartacea.
I sottoassiemi ed i particolari si trovano sparsi in altre cartelle del computer, in quanto l'ufficio tecnico lavora con particolari codificati che possono essere utilizzati su più progetti.
Esiste un modo per eseguire questo tipo di stampa? Al limite è possibile creare una macro?
Utilizzo VB di excel: si possono generere macro anche per Solidedge da questo programma? Qualcuno può indicarmi come si fa?
Grazie
Cop1
La strada da seguire è quella della macro e si puoi utilizzare VBA di excel.

La prima cosa da fare è aprire il visual basic editor e nel menù "strumenti" selezionare "riferimenti" ed aggiungere la spunta alla librerie di Solid Edge che ti servono. Se hai dubbi su quali usare metti la spunta su tutte quelle che iniziano con "Solid Edge".

Fatto questo puoi iniziare a scrivere la tua macro. Ti consiglio di aprire il manuale della programmazione ci sono molti esempi. La sintassi del VBA è identica a VB6.

Ti allego un piccolo esempio per iniziare a muoverti. Con il seguente codice ti colleghi al draft correntemente aperto e stampo il nome del primo modello messo in vista.

Codice:
Dim objApp As SolidEdgeFramework.Application
Dim objDft As SolidEdgeDraft.DraftDocument

Set objApp = GetObject(, "SolidEdge.Application")
Set objDft = objApp.ActiveDocument

Debug.Print objDft.ModelLinks(1).FileName
 

cop1

Utente Junior
Professione: progettista
Software: solidedge
Regione: italia
#4
grazie per le risposte.
In effetti lo "stampa disegno" di solidedge non mi permette di ottenere il risultato che desidero.
lo spunto di Be_on_edge è interessante. ti chiedo di seguirmi ed indirizzarmi, se hai tempo.
in pratica adesso ho ottenuto la prima riga che potrei scrivere in un file *.Bat;
in questa riga potrei anteporre i comandi per aprire questo disegno;
di seguito dovrei estrarre il nome degli altri disegni (che si trovano nelle relative cartelle in cui si trovano i .Par), sperando che li estragga secondo l'ordine dell'albero;
a file concluso potrei lanciare il *.Bat, che dovrebbe aprirmi i disegni in questo ordine, e da lì lanciare la stampa (magari col comando stampa disegno).

alternativa: c'è un comando che può inviare direttamente in stampa (le stampanti sono in rete) il disegno (dal *.Bat o dalla macro)?
Se ci sono + fogli nel disegno, li stampa tutti?

ultima questione: per lanciare la macro devo sempre aprire excel?

Grazie
Cop1
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#5
grazie per le risposte.
In effetti lo "stampa disegno" di solidedge non mi permette di ottenere il risultato che desidero.
lo spunto di Be_on_edge è interessante. ti chiedo di seguirmi ed indirizzarmi, se hai tempo.
in pratica adesso ho ottenuto la prima riga che potrei scrivere in un file *.Bat;
in questa riga potrei anteporre i comandi per aprire questo disegno;
di seguito dovrei estrarre il nome degli altri disegni (che si trovano nelle relative cartelle in cui si trovano i .Par), sperando che li estragga secondo l'ordine dell'albero;
a file concluso potrei lanciare il *.Bat, che dovrebbe aprirmi i disegni in questo ordine, e da lì lanciare la stampa (magari col comando stampa disegno).

alternativa: c'è un comando che può inviare direttamente in stampa (le stampanti sono in rete) il disegno (dal *.Bat o dalla macro)?
Se ci sono + fogli nel disegno, li stampa tutti?

ultima questione: per lanciare la macro devo sempre aprire excel?

Grazie
Cop1
Il codice scritto da me è VBA con i file bat fai altre cose.
Lo spunto che ti ho dato è solo per iniziare ad esplorare il mondo della programmazione.
La logica del programma è la seguente:

- Mi collego al draft aperto.
- Estraggo il link dell'assieme in tavola.
- Dal quale estraggo l'elenco parti nell'ordine del pathfinder.
- Dal quale risalgo al dft e mi creo un elenco.
- Stampo l'elenco.

Tutto ciò è fattibile con un livello di programmazione intermedio.

Ti do un'altro spunto.

Crea un report dall'assieme o un elenco parti dal draft mostrando anche la colonna (nome file percorso completo).
Esporta la tabella o il report in excel
Elimina l'estensione dal nome file ed inserisci l'estensione .DFT

A questo punto hai l'elenco dei file da stampare che con una piccola macro puoi lanciare in automatico

Ciao
 

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#6

cop1

Utente Junior
Professione: progettista
Software: solidedge
Regione: italia
#7
Ecco come ho risolto, girando per la rete (e tenendo presente che i dft sono nella stessa cartella in cui si trovano i .PAR, oppure i .ASM):

1) ho creato un file "stampa in ordine.xlsm", che allego (nella colonna A va inserito il percorso del file, nella colonna B il nome del file)

2) apro il dft dell'assieme di cui mi interessa ottenere la stampa di tutti i sottoassiemi e dei relativi particolari, ordinati

3) vado alla voce PROPRIETA' -> GESTIONE PROPRIETA'->attivo il pulsante VISTA BOM

4) sul nome del disegno, col tasto dx del mosue, "Espandi tutto"

5) seleziono la colonna "Cartella" che contiene il percorso dei files e la incollo nella colonna A del file "stampa in ordine.xlsm".

6) torno in S.E, seleziono la colonna "Nome documento" che contiene il nome dei files e la incollo nella colonna B del file "stampa in ordine.xlsm".

7) clicco il pulsante "AVVIA LA STAMPA" ed i disegni vengono stampati secondo sequenza alla stampante predefinita

Note:
A- il tempo per eseguire la procedura è di circa un minuto.
B- come stampante viene utilizzata quella predefinita
C- attenzione! Alla fine S.E. viene chiuso. Conviene chiudere tutti i disegni prima di lanciare la stampa

Saluti
cop1
 

Allegati

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#8
Potresti fare anche così:

fai un elenco parti con la sola colonna NOME FILE CON PERCORSO COMPLETO e come ordinamento metti ORDINE ASSIEME, quindi copi i contenuti e li incolli in EXCEL, qui cambi l'estensione al file come già fai, questo ti evita un paio di passaggi.
 

cop1

Utente Junior
Professione: progettista
Software: solidedge
Regione: italia
#9
Potresti fare anche così:

fai un elenco parti con la sola colonna NOME FILE CON PERCORSO COMPLETO e come ordinamento metti ORDINE ASSIEME, quindi copi i contenuti e li incolli in EXCEL, qui cambi l'estensione al file come già fai, questo ti evita un paio di passaggi.
Dove trovo questo elenco?
ho provato a visualizzare le colonne, ma questa non l'ho trovata.

Saluti
cop1
 

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#10
In ELENCO PARTI, vedi immagine:
Immagine.png
 

cop1

Utente Junior
Professione: progettista
Software: solidedge
Regione: italia
#11
Grazie Delki,
ho provato questo metodo, ma in questo modo non ho i particolari dei sottoassiemi in ordine sequenziale (se non manipolando ulteriormente la distinta, però a quel punto il vantagigo è perso).
Più interessante sarebbe riuscire ad ottenere la lista con una macro che esporti il nome dei documenti da "GESTIONE PROPRIETA'".
Saluti
cop1
 

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#12
Grazie Delki,
ho provato questo metodo, ma in questo modo non ho i particolari dei sottoassiemi in ordine sequenziale (se non manipolando ulteriormente la distinta, però a quel punto il vantagigo è perso).
Più interessante sarebbe riuscire ad ottenere la lista con una macro che esporti il nome dei documenti da "GESTIONE PROPRIETA'".
Saluti
cop1

Usa il tipo ordinamento ORDINE ASSIEME, te li elenca in base all'ordine di inserimento in assembly
 

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#14
a questo punto non lo trovo più tanto conveniente.
Grazie comunque.
cop1
Ma non è quello che volevi? Tanto più che la definizione della tabella la puoi salvare e richiamare velocemente
 

delki

Utente Standard
Professione: Tecnical Support e Formazione su Solid Edge e SolidRules
Software: Solid Edge, Visual Basic .NET, SolidRules: InCentro, Desk, Configurator Manufactoring, Studio
Regione: Veneto
#15
Grazie Delki,
ho provato questo metodo, ma in questo modo non ho i particolari dei sottoassiemi in ordine sequenziale (se non manipolando ulteriormente la distinta, però a quel punto il vantagigo è perso).
Più interessante sarebbe riuscire ad ottenere la lista con una macro che esporti il nome dei documenti da "GESTIONE PROPRIETA'".
Saluti
cop1
Per fare questo devi generare un tipo elenco ESPLOSO (Tutte le parti e gli assiemi).