Comment enregistrer via une macro Excel une pièce solidworks?

Bonjour à tous, 

Je suis en mémoire à l'ICAM de Lille et je travaille sur Solidworks. J'utilise les familles de pièces pour des assemblages de portes et par soucis de simplification, je souhaiterais utiliser une macro Excel. Cette dernière doit permettre l'enregistrement des fichiers Excel lié aux pièces et assemblages Solidworks et l'enregistrement des pièces et assemblages sur Solidworks (ce qui me pose problème à l'heure d'aujourd'hui).

Pour vous expliquer la manière dont j'ai procédé, voici un schéma explicatif.

 

Dans l'attente de vous lire.

Cordialement
Arnaud Duhame


explication.pdf

Hello,

Je ne vais te répondre que partiellement, mais tu devrais pouvoir dans les références (Outils -> Références) ajouté les références pour SolidWorks.

  Tip: "SOLIDWORKS 2016 Commands type library / SOLIDWORKS 2016 Constant type library", etc.

Et ensuite travailler dessus.
C'est de cette même manière que j'effectue des actions sur le coffre depuis Excel (Par contre je n'ai pas testé avec SolidWorks donc je ne sais pas du tout si ce que je dis est faisable).

KVuilleumier.

Bon et bien j'avais peu d'espoir mais après quelques essai, j'ai réussi.

 

Dim swApp As SldWorks.SldWorks

Sub TestSW()
    Set swApp = New SldWorks.SldWorks
    swApp.SendMsgToUser "Salut"
   
    swApp.NewPart

End Sub

 

Cette macro (Executé depuis Excel) m'envoie bien le message "Salut" et ouvre un nouveau document 3D.

Voici les références à ajouter:

  - SldWorks 2016 Type Library
  - SolidWorks 2016 Exensibility Type Library
  - SOLIDWORKS Utilities 2015 Type Library
  - SOLIDWORKS 2016 Constant type library
  - SOLIDWORKS 2016 Commands type library

 

Edit: As-tu besoin d'autre chose ?

Bonjour KVuileumier,

Merci de ta réponse, j'ai vérifié les références pour solidworks et je les avais bien activées.

Pour ouvrir les fichiers solidworks, j'utilise cette macro (depuis Excel) :

Sub Macro1()

Dim Software As String
Dim File As String
Dim ToLaunch
Dim RetVal


Software = """C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe"""

File2 = """C:\Users\MSI\Desktop\test\rond.SLDPRT"""

ToLaunch2 = Software & " " & File2
RetVal = Shell(ToLaunch2, 1)
End Sub

Mon problème est surtout comment enregistrer ce fichier qui est ouvert ?

Merci de votre aide

Cordialement

Arnaud

Et bien imaginons que c'est le fichier actif que nous souhaitons enregistrer, il faudrait faire une manip du style:

 

//Dans les définitions de variables:

Dim swModel As SldWorks.ModelDoc2

 

//Dans la fonction (Pour autant que swApp soit défini, voir ma réponse précédente si nécessaire):

Set swModel = swApp.ActiveDoc

swModel.Save3 swSaveAsOptions_Silent, 0, 0

 

Il te faudrait autre chose ? Ou ne comprend tu pas quelque chose ?
KVuilleumier

Malheureusement j'ai l'impression de ne pas comprendre. Je vous joint la macro modifiée avec vos propositions ainsi que le fichier de commande et la pièce solidworks.

Merci d'avance de votre aide.

 

Cordialement

Arnaud Duhamel

 

 


teste.zip