[MACRO] - Apri DFT

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#1
Per automatizzare alcune procedure d'ufficio ho iniziato a dilettarmi con la programmazione di Solid Edge. Niente di stupefacente, ma tante picccole cose che posso velocizzare le procedure più noiose.

Condivido con voi una di queste macro.

Utilizzatela in ambiente PAR, PSM e ASM, se sarà presente un DFT con lo stesso nome e posizione del file correntemente aperto, verrà aperto in solid edge.

Ciao


View attachment Apri DFT.rar NUOVA VERSIONE (20/03/2015)

Novità: Ora la macro cercherà per prima cosa una proprietà personalizzata di nome "DraftLink" se la trova utilizzerà il valore in essa contenuto come nome del draft da aprire. Se non la trova invece funziona come in precedenza, ovvero stesso nome file ma con estensione DFT.

Se utilizzate la macro da dentro al dft invece verrà creata/aggiornata la variabile "DraftLink" nel modello collegato al Draft. Purtroppo c'è un bug nelle API di SE che non mi permette di salvare il valore se la variabile non è presente in precedenza. Quindi, o create la variabile manualmente la prima volta, oppure dopo aver usato la macro fate doppio click su una vista per aprire il modello e poui salvatelo.

Ciao

PS.: nuova versione, tenendo premuto il tasto SHIFT il dft viene aperto con le viste attive.
 

Allegati

Ultima modifica:

Marco74

Utente Senior
Professione: Sviluppo lamiera per taglio laser, piegatura e assemblaggio
Software: Solid Edge ST9 - Autocad Mechanical 2017- Lantek
Regione: Veneto - Emilia
#2
Per automatizzare alcune procedure d'ufficio ho iniziato a dilettarmi con la programmazione di Solid Edge. Niente di stupefacente, ma tante picccole cose che posso velocizzare le procedure più noiose.

Condivido con voi una di queste macro.

Utilizzatela in ambiente PAR, PSM e ASM, se sarà presente un DFT con lo stesso nome e posizione del file correntemente aperto, verrà aperto in solid edge.

Ciao

View attachment 2000
Grande!!! Cosa chiesta all'assistenza, con implementazione chiesta ad Ugs, ma niente, l'unica cosa che non riesco a capire è il fatto delle viste non attive nel dft, ma come si fa per attivarle?

Ciao.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#3
Grande!!! Cosa chiesta all'assistenza, con implementazione chiesta ad Ugs, ma niente, l'unica cosa che non riesco a capire è il fatto delle viste non attive nel dft, ma come si fa per attivarle?

Ciao.
Si, viste inattive per velocizzare il caricamento della tavola, già così si possono fare tante belle cose. Se poi serve dal menù Applicazioni - Attiva viste di disegno.

Cmq per una macro del genere ci ho messo circa 10 minuti a farla, e io non sono un programmatore.

Ciao
 

Marco74

Utente Senior
Professione: Sviluppo lamiera per taglio laser, piegatura e assemblaggio
Software: Solid Edge ST9 - Autocad Mechanical 2017- Lantek
Regione: Veneto - Emilia
#4
Si, viste inattive per velocizzare il caricamento della tavola, già così si possono fare tante belle cose. Se poi serve dal menù Applicazioni - Attiva viste di disegno.

Cmq per una macro del genere ci ho messo circa 10 minuti a farla, e io non sono un programmatore.

Ciao
Ottimo, funziona perfettamente.

Ciao.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#5
Nuova versione aggiornata e migliorata.

Alle caratteristiche di prima si aggiunge, se in assembly ci sono uno o più file selezionati (non importa se par, psm o asm) verranno aperti i relativi dft.

Ciao

View attachment Apri DFT.rar
 

AlexOnWeb

Utente Standard
Professione: Progettista Meccanico
Software: Solid Edge, Autocad, ecc..
Regione: Prov. di TO
#6
Ciao, a parte i miei complimenti per il lavoro, può essere veramente utile ;)
Visti i problemi che si incontrano giornalmente utilizzando il programma è ormai da qualche tempo che pensavo di incominciare a dilettarmi con la creazione di qualche macro x velocizzare le operazioni, vedi specialmente in quotatura per inserire prefissi e suffissi di comune uso ecc.ecc.
Mi chiedevo però il punto migliore dal quale partire, un manuale ci Visual Basic? Altro? :confused:

Ciauz
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#7
Io mi sono installato visual basic 6 e poi con la guida di programmazione di solid edge, il forum americano e il forum di jeson e un pò di google sono riuscito fino ad ora a fare tutto quello che volevo.

Non sono a digiuno di programmazione, ma vb non l'avevo mai usato prima.

Ciao
 

sergio_moni

Utente Junior
Professione: Progettista (dicono...)
Software: icchè c'è c'è
Regione: Toscana
#8
Nuova versione aggiornata e migliorata.

Alle caratteristiche di prima si aggiunge, se in assembly ci sono uno o più file selezionati (non importa se par, psm o asm) verranno aperti i relativi dft.

Ciao

View attachment 2004
Mi interessa molto, ma non riesco a scaricare questa macro, il sito mi scarica un file .php che non apro.
cosa devo fare?
Vi ringrazio tutti per l'aiuto.
Sergio
 

zeigs

Utente Standard
Professione: Progettista
Software: Solid Edge
Regione: Emilia-Romagna
#9
è colpa della struttura del sito del forum, che è scritto in php. in pratica quando provi a salvare in realtà ti salva la pagina web (se lo rinomini .html vedrai che te la visualizza). ci devi cliccare sopra, allora dopo il login ti permette di salvarlo
 

sergio_moni

Utente Junior
Professione: Progettista (dicono...)
Software: icchè c'è c'è
Regione: Toscana
#11
hai ragione, avevo aperto DAP, l'ho disattivato e ho potuto scaricare senza problemi.
Non sapevo che questo programma dava problemi.
Grazie a tutti
Sergio
 

tiusalessio

Utente poco attivo
Professione: progettista
Software: solid edge
Regione: friuli v.g.
#13
Qualcuno mi sa dire dove posso trovare la guida di programmazione di solid edge.
vorrei capire come creare delle macro.
A me servirebbe una che mi apre i vari solidi e mi aggiorna il pezzo in modo da poterlo visualizzare nelle anteprime nelle cartelle di windows, per una rapida ricerca.
Al max qualcuno mi può dare qualche consiglio per iniziare lo sviluppo di una macro
in modo da capire come si fanno.
 

maveric

Utente Junior
Professione: disegnatore
Software: solid edge
Regione: abruzzo
#15
ciao be on edge, la macro è una figata
però per come abbiamo strutturato le cartelle non me lo apre il dft
ti spiego:
cartelle principale dove risiedono i .par con sottocartelle disegni2d(dft), gruppi(.asm) che a sua volta ha una sottocartella con sottogruppi(.asm).
hai una soluzione?
grazie
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#16
ciao be on edge, la macro è una figata
però per come abbiamo strutturato le cartelle non me lo apre il dft
ti spiego:
cartelle principale dove risiedono i .par con sottocartelle disegni2d(dft), gruppi(.asm) che a sua volta ha una sottocartella con sottogruppi(.asm).
hai una soluzione?
grazie
Si dovrebbe modificare la macro per cercare i dft ad un livello superiore e se non lo trova a due livelli superiori. Una gestione delle cartelle come la tua è molto anomala comunque.

Ciao
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#17
Si dovrebbe modificare la macro per cercare i dft ad un livello superiore e se non lo trova a due livelli superiori. Una gestione delle cartelle come la tua è molto anomala comunque.

Ciao
Ti allego il codice sorgente:

Private Sub Main()
Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgePart.PartDocument
Dim objPar As SolidEdgePart.PartDocument
Dim objPsm As SolidEdgePart.SheetMetalDocument
Dim objAsm As SolidEdgeAssembly.AssemblyDocument
Dim objDft As SolidEdgeDraft.DraftDocument

Dim objSelectSet As SolidEdgeFramework.SelectSet

Dim strActEnv As String
Dim name As String
' Report errors
Const PI = 3.14159265358979
' Create/get the application with specific settings
On Error Resume Next
Set objApp = GetObject(, "SolidEdge.Application")

If Err Then
Err.Clear
Set objApp = CreateObject("SolidEdge.Application")
Set objDoc = objApp.Documents.Add("SolidEdge.PartDocument")
objApp.Visible = True
Else
Set objDoc = objApp.ActiveDocument
Set objAsm = objApp.ActiveDocument
Set objPar = objApp.ActiveDocument
Set objPsm = objApp.ActiveDocument
End If

strActEnv = objApp.ActiveEnvironment

If strActEnv = "Assembly" Then
Count = objAsm.SelectSet.Count
If Count = 0 Then
name = objAsm.FullName
Else
For i = 1 To Count
name = objAsm.SelectSet(i).OccurrenceFileName
If name = "" Then name = objAsm.SelectSet(i).Object.OccurrenceDocument.FullName
l = Len(name)
dftname = Left(name, l - 3) + "dft"
Set objDft = objApp.Documents.Open(dftname)
objDft.InactiveDrawingViewMode = True
name = ""
Next
End
End If
Else

If strActEnv = "Part" Then
name = objPar.FullName
Else
If strActEnv = "SheetMetal" Then
name = objPsm.FullName
End If
End If
End If

l = Len(name)
dftname = Left(name, l - 3) + "dft"

Set objDft = objApp.Documents.Open(dftname)
objDft.InactiveDrawingViewMode = True

Set objApp = Nothing
Set objDoc = Nothing

End Sub
 

maveric

Utente Junior
Professione: disegnatore
Software: solid edge
Regione: abruzzo
#18
ti ringrazio be_on_edge ma purtroppo non capisco nulla di visual basic,
da quello che ho capito bisogna modificarla in base alle mie esigenze.
giusto?
 

fabiovello

Utente Junior
Professione: Progettista
Software: Visi - Cocreate - Solid Edge v20 & ST - OSM - SolidWorks 2016 - Inventor
Regione: Piemonte
#19
Bellissima e utilissima macro, ma la mia domanda è questa:

E' normale non riuscire ad aggiornare il dft quando si usa il comando?

Grazie!
 

Marco74

Utente Senior
Professione: Sviluppo lamiera per taglio laser, piegatura e assemblaggio
Software: Solid Edge ST9 - Autocad Mechanical 2017- Lantek
Regione: Veneto - Emilia
#20
Bellissima e utilissima macro, ma la mia domanda è questa:

E' normale non riuscire ad aggiornare il dft quando si usa il comando?

Grazie!
Intendi aggiornare automaticamente il dft alla sua apertura con la macro?
Ciao.