MACRO per disperdere i sottoassiemi.

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#1
Buongiorno,

mi occorre una macro che mi disperde tutti i sottoassiemi presenti in un assieme padre, qualcuno di voi ne sa qualcosa? o mi sa aiutare con il codice?

Grazie
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#2
Buongiorno,

mi occorre una macro che mi disperde tutti i sottoassiemi presenti in un assieme padre, qualcuno di voi ne sa qualcosa? o mi sa aiutare con il codice?

Grazie
Selezioni i sottoassiemi ed utilizzi il comando "Disperdi".
Non ricordo se sulla V17 c'era già, ma sulla V20 c'era di sicuro.

Ciao
 

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#3
Buongiorno,

mi occorre una macro che mi disperde tutti i sottoassiemi presenti in un assieme padre, qualcuno di voi ne sa qualcosa? o mi sa aiutare con il codice?

Grazie
se non lo conosci usa il comando "disperdi". Selezioni l'assieme e poi clicchi il comando e ti disperde i componenti portandoli sull'assieme principale, occhio che perdi i vincoli.
 

Allegati

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#4
se non lo conosci usa il comando "disperdi". Selezioni l'assieme e poi clicchi il comando e ti disperde i componenti portandoli sull'assieme principale, occhio che perdi i vincoli.
I vincoli tra le parti all'interno del sottoassieme rimangono, e anche quelli che può mantenere tra il sottoassieme e le altre parti. Perdi invece quelli ad esempio tra i piani del sottoassieme e l'assieme principale (venendo meno i piani del sottoassieme durante la dispersione.)

Ciao
 

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#5
I vincoli tra le parti all'interno del sottoassieme rimangono, e anche quelli che può mantenere tra il sottoassieme e le altre parti. Perdi invece quelli ad esempio tra i piani del sottoassieme e l'assieme principale (venendo meno i piani del sottoassieme durante la dispersione.)

Ciao
si infatti ... erano solo i vincoli dei i piani tra assieme/sottoassieme che si perdevano. :finger:
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#6
Ciao,

Sono d'accordo con voi ma posso parlo un file alla volta e la cosa viene troppo lunga.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#7
Ciao,

Sono d'accordo con voi ma posso parlo un file alla volta e la cosa viene troppo lunga.
Scusa ma quanto roba devi disperdere ?
Se poi lo stesso sottoassieme è montato su più assieme anche solo per una questione di gestione modifiche credo che convenga non disperderlo.

Ciao
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#8
Il primo problema e dato da una scheda elettronica creata con ALTIUM che per ogni componente crea un assieme nuovo e quindi hoi dentro 100 asm differenti con lo stesso PAR, il secondo problema e dato dal PDM Teamcenter che non mi consente di avanzare un ASM se non classifico tutto cio che ho dentro.
Quindi se disperdo tutto magari classifico solo 50 componenti, altrimenti devo classificare 50 componenti e 150-200 assiemi.
 

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#9
Il primo problema e dato da una scheda elettronica creata con ALTIUM che per ogni componente crea un assieme nuovo e quindi hoi dentro 100 asm differenti con lo stesso PAR, il secondo problema e dato dal PDM Teamcenter che non mi consente di avanzare un ASM se non classifico tutto cio che ho dentro.
Quindi se disperdo tutto magari classifico solo 50 componenti, altrimenti devo classificare 50 componenti e 150-200 assiemi.
hai provato a reimportare l'assieme della scheda elettronica per vedere se per caso non ti crea più i sottoassiemi? Il problema comunque potrebbe essere alla fonte, ossia che il file creato con altium sia effettivamente composto da molteplici sottoassiemi. Difatti anche se esporti in step/parasolid per reimportare in altri cad di solito le informazioni dei file di interscambio mantengono il criterio di creazione originale.
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#10
Ciao,

Con Altium ho fatto tutte le esportazioni possibili per evitare il problema.
Altium tira fuori l'assieme cosi un macroassieme e mille sottoassiemi.
la cosa migliore è disperderli tutti, il problema e che disperderli singolarmente e una cosa troppo lunga dato il gross o numero di assiemi.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#11
Ciao,

Con Altium ho fatto tutte le esportazioni possibili per evitare il problema.
Altium tira fuori l'assieme cosi un macroassieme e mille sottoassiemi.
la cosa migliore è disperderli tutti, il problema e che disperderli singolarmente e una cosa troppo lunga dato il gross o numero di assiemi.
Puoi sempre selezionare tutti i sottoassiemi e poi eseguire il comando "disperdi".

Ciao
 

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#12
Puoi sempre selezionare tutti i sottoassiemi e poi eseguire il comando "disperdi".

Ciao
il comando "disperdi" funziona solamente selezionando un sottoassieme alla volta, se ne selezioni più di uno il comando si disabilita, almeno in ST3 è cosi.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#13
il comando "disperdi" funziona solamente selezionando un sottoassieme alla volta, se ne selezioni più di uno il comando si disabilita, almeno in ST3 è cosi.
Opss, hai ragione ! Mi confondevo con il fatto che se lo stesso sottoassieme è contenuto più volte ti chiede se li vuoi disperdere tutti.

Allora si, si potrebbe fare una macro, dovrebbero essere poche righe di codice.

Ciao
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#15
Qualcuno che mastica VB mi può aiutare?

Se volessi aggiungere delle righe alla macro open save per disattivare i piani zoomare ad estensione e spegnere i riferimenti degli assi? E poi salvare?
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#16
E' un problema contigente? (hai 50 asm da trasformare e non la userai più), oppure hai un flusso di lavoro dove devi mettere insieme vari sottoassiemi e poi disperdi ?

Non siamo in molti a scriver le macro, tu hai già scritto qualcosa?
se vuoi essere aiutato prima di tutto descrivi esattamente:
- il tuo metodo di lavoro e in che condizioni sono i tuoi asm
- che cosa dovrebbe fare la macro (passi principali, e magari anche secondari)
- che operazioni vuoi fare te (cosa vuoi cliccare e come vuoi lanciare la macro: esempio: selezioni a mano determinati sub-assiemi e poi lanci la macro, vuoi lanciare un batch con un elenco di file da aprire su excel, vuoi un tastino da usare al posto del salva....
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#17
ehm, ho riletto tutto il post, qualche info c'è già, ma fai un bel riassunto.
Ciao,

Con Altium ho fatto tutte le esportazioni possibili per evitare il problema.
Altium tira fuori l'assieme cosi un macroassieme e mille sottoassiemi.
la cosa migliore è disperderli tutti, il problema e che disperderli singolarmente e una cosa troppo lunga dato il gross o numero di assiemi.
Altium ti esporta nativamente asm e par per soliedge oppure li importi?
Immagino che importi i file in SolidEdge, durante l'importazione scegli il template/modello.
Valuta questa prova: crea un Templare AsmDaDisperdere.asm,
Lo apri, in Opzioni SolidEdge / Assieme /
imposta: Disperdi Assieme durante l'inserisci parte,
controlla le altre opzioni.

questo è utilizzato solitamente per le librerie di parti/asm
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#18
Ciao Vespa e a tutti,
Dato che di recente in ditta abbiamo acquistato un gestionale pdm oggi,i trovo costretto a dover semplificare determinati assimi che, una volta avrei preso in considerazione solo l'assieme principale mentre oggi mi tocca codificare e classificare tutto.
Per far ciò mi tocca semplificare gli assieme di ALTIUM che genera file solo di tipo step.
Dato che non sono in grado di generare una macro, mi andrebbe bene il più semplice possibile del tipo apri l'assieme, lanci la macro con un bottone e poi lei ti apre tutti i sotto assieme e li disperde dentro l'assieme principale...
Secondo te l'open save di Solid edge e esitabile in modo che esegua queste operazioni?
- apri l'assieme
- disattiva tutti i piani
- togli il simbolo degli assi
- togli il simbolo del baricentro
- e salvarli nella vista standard 3D quella che crei premendo Ctrl+I

L'ultima cosa che ti chiedo come trovi la corrispondenza tra i vari comandi di SE e il linguaggio Visual BASIC?
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#19
non sono un programmatore esperto , ma fai da te, quindi cerco soluzioni passo-passo.
Visto che hai asm nuovi e asm dello storico , prima si fa la funzione che successivamente diventerà un bottone, poi per processare tutto lo storico, si fa un una funzione che legge un elenco (ad esempio in excel) dove in ogni riga c'è il percorso assieme.
L'elenco dei file puoi ricavarlo o dal pdm o da un comando dos del tipo:
Codice:
dir E:\Archivio\*.asm /s /b /o:n >List.txt
per ogni riga leggi percorso ,apri file, lancia macro, salva, chiudi, passa alla riga successiva. <- questo ce l'ho già fatto.

posterò un file xls con le mie mie macro.

In generale:
per passare a VBA : Alt+F11
Per usare l'aiuto compilazione è necessario da Strumenti / Riferimenti aggiungere tutte le librerie SolidEdge (già fatto nel mio allegato) e dei programmi con cui si vuole vedere le classi (proprietà e metodi)

accortezze:
Visualizza / Finestra* variabili, eccetera... => attivare tutte
Il codice si scrive in Moduli.
Per lanciare una sub, dare un clic dentro il testo poi Lancia

Nomi e riferimenti, non è facile: oltre a esser tutto in inglese, per mostrare/nascondere spesso non si può cambiare la proprietà (in read-only) ma si lancia un comando del tipo
objApp.StartCommand (32876) 'Refresh F5

il numero del comando è scritto da qualche parte nella guida SDK di solidEdge.

sviluppa la tua Sub in Moduli/AsmModule, cerca i nomi funzioni dal Visualizzatore oggetti (F2), poi ci si va su dietro.

Allego una buona parte delle mie Macro, fatene buon uso, nella prossima vita quando avrò più tempo, copierò questo thread per scriver una mini guida di primi passi di programmazione SolidEdge.
 

Allegati

Tequila

Utente Senior
Professione: teorico del paleocontatto
Software: Solid Edge ST7, scarabocchi su carta
Regione: Veneto (PD)
#20
Allego una buona parte delle mie Macro, fatene buon uso, nella prossima vita quando avrò più tempo, copierò questo thread per scriver una mini guida di primi passi di programmazione SolidEdge.
:finger: bravo a me piacerebbe imparare a smanettare un pochetto per crearmi qualche macro ma non trovo mai il tempo di iniziare... anche se ho il mio fratellone che è programmatore.