avvio di una macro ogni nuovo file.prt

Professione: progettista junior
Software: solidworks , inventor
Regione: Bologna
#1
Buonasera a tutti,
come da oggetto mi interesserebbe sapere se è possibile(sicuramente lo è ,ma non ho il potere per scoprirlo) avviare una macro,nello specifico l'apertura delle proprietà personalizzate, dove andare a compilare i campi personalizzati e che senza compilarli non si possa procedere con la creazione della parte.Per adesso sono riuscito ad associare un bottone che mi apra le proprietà personalizzate ma a me serve che lo faccia in automatico.
Lo step sucessivo,mi piacerebbe, che ogni codice e descrizione che ho precedentemente compilato ,ad ogni salva me li vada a copiare in un foglio excel ...ma per il momento mi accontento del primo step.
Ringrazio tutti in anticipo!
Gianluca
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#2
Ciao,
è possibile fare ciò che ti serve utilizzando le "Notifications" (vedi manuale api), dove trovi un esempio all'eneto generato all'attivazione di un documento.
Fai alcune prove, al limite ti aiuto volenteri.
 
Professione: progettista junior
Software: solidworks , inventor
Regione: Bologna
#3
il manuale api,non capisco perchè ma lo vedo solo in inglese.
Già faccio fatica a capirlo in italiano..:)
comunque ho trovato qualcosa riguardante gli eventi (tipo evento initialize) nell'help di visual basic.
posso guardare da lì o devo fare riferimento esclusivamente ad API?!?!
Grazie per la disponibilità.
Gianluca.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#5
Le Api di Solidworks le trovi sul menu a tendina alla voce "?" --> Guida in linea Api.
Ciao
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#6
Ciao, ho imbastito questa macro.
Creati un bottone nuovo collegato alla macro, al suo click si deve creare una nuova parte e all'evento stesso ti deve apparire un messaggio a video con ilnome della parte.
Non prendere paura della parte di codice iniziale, che serve a inizializzare gli eventi di solidworks.
Dove devi modificare è:


Set swNewModel = swApp.NewDocument("C:\Programmi\SolidWorks Corp\SolidWorks\lang\italian\Tutorial\Part.prtdot", 0, 0, 0)

sostituendo il percorso con il tuo template e

Private Function msrcSldWorks_FileNewNotify2(ByVal newDoc As Object, ByVal DocType As Long, ByVal TemplateName As String) As Long

MsgBox " file = " & newDoc.GetTitle

End Function


sostituisci MsgBox " file = " & newDoc.GetTitle con l'inserimento delle tue proprietà.

Tutta la parte di inizializzazione ti permette ora intercettare quasi tutti gli eventi di Solidworks.
Per fare una cosa fatta per bene bisognerebbe creareuna add-in che ad ogni invio di solidworks viene automaticamente, così anzichè utilizzare la macro che punta ad un determinato template, si intercetta direttamente l'evento di creazione della parte.

E' fattibilissimo, basta lavorarci unpo dietro, ho già fatto una add-in che all'avviodi solidworks mimette il mio logo a video.

Fammi sapere
 

Allegati

gianlucax90

Utente Junior
Professione: progettista junior
Software: solidworks , inventor
Regione: Bologna
#7
ciao,
scusami ma era tanto che non entravo nel forum.
Comunque,non ho capito bene.
Apparte cambiare il percorso del file template, il passo sucessivo è cambiare msgbox con la proprietà che voglio modificare?come riconosco qual'è il codice?
sarebbe l'ideale ,come hai detto nel post precedente , che all'apertura della parte venisse fuori un menù a tendina dove compilare tutti i campi che mi interessano.
PS:visto che sei molto preparato su questo argomento ti faccio un'altra domanda:
-è possibile fare che ad ogni .sldrw che creo ,si generi autamaticamente un numero progressivo che aumenta ogni nuovo disegno?
in sintesi...vorrei linkare a una nota del cartiglio una colonna di excel dove ho già creato preventivamente le mie "note".
Ti ringrazio per la disponibilità.
Gian.