Macro insertion d'un composant

Bonjour à tous,

 

Je travail sur Solidworks 2017.

J'aimerais me faciliter un peu la vie. j'insert régulièrement des vis dans mes assemblages.

Quelqu'un d'entre vous aurais-t-il en stock une macro qui permet d'insérer une pièce bien définis dans un assemblage?

Le but, est de pouvoir insérer mes vis à l'aide de ma souris 3d sans avoir à trop déplacer ma souris standard.

 

Un grand merci à vous!!

 

Fred

Bonjour, si vous voulez juste une simple macro qui ajoute une pièce : 

 

Dim swApp As SldWorks.SldWorks
Dim swPart As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim filePath As String


Sub main()

Set swApp = Application.SldWorks

Set swPart = swApp.ActiveDoc

'------ Entrer le chemin vers la pièce a ajouter -------

filePath = "  "

'--------------------------------------------------------

Dim swInsertedComponent As Component2

Set swInsertedComponent = swPart.AddComponent5(filePath, 0, "", False, "", 0, 0, 0)

End Sub

Edit: Faute de frappe corrigée

1 « J'aime »

Bonjour,

Merci pour ce coup de main.

Mais étant super nul en macro, je pense m'être loupé quelque part.

 

Dim swApp As SldWorks.SldWorks
Dim swPart As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim filePath As String


Sub main()

Set swApp = Application.SldWorks

Set swPart = swApp.ActiveDoc

filePath = "U:\PLANOTHEQUE\3D (SolidWorks)\Bibliothèque\visserie\vis\Vis H entièrement fileté\Vis H M12  "

Dim swInsertedComponent As Component2

Set swInsertedComponent = swPart.AddComponent5(filPath, 0, "", False, "", 0, 0, 0)

End Sub
 

 

J'ai entré ce code dans l'éditeur de macro. Quand je l'exécute j'ai bien une pièce qui est insérée, mais ce n'est pas la bonne, c'est le première de l'assemblage.

pourriez-vous m'indiquer ou est mon erreur?

Ah, il semble que j'ai fait une faute de frappe dans la ligne suivante, j'avais oublié un e :

Set swInsertedComponent = swPart.AddComponent5(filePath, 0, "", False, "", 0, 0, 0)

 

Essayez voir

1 « J'aime »

Cela ne fonctionne pas.

Par contre, dans l'éditeur de macro, j'ai maintenant une fenêtre qui apparaît (cf. pièce jointe)


macro.png

ça c'est normal, ça demande quelle fonction il doit lancer, or ici on n'a qu'une seule fonction (main) donc on clique juste sur "Executer". ça n'arrive que dans l'éditeur macro ça, quand vous aurez un bouton ou un raccourci il n'y aura pas de problème.

 

1 « J'aime »

Quand je la lance, il ne ce passe rien :( 

Quand vous avez votre assemblage ouvert, que vous faites "Outils -> Macro -> Exécuter..." et que vous lancez la macro ça ne marche pas? Chez moi aucun problème, ça doit donc venir du chemin que vous avez mis, essayez avec une autre pièce pour voir. 

 

Ah au fait, la pièce s'ajoute aux coordonnées 0,0,0 par rapport au référentiel de l'assemblage. Peut être quelle est cachée par l'assemblage.

1 « J'aime »

On progresse, j'arrive à avoir un écrou!

J'ai remarqué que j'avais oublié de rajouté l'extension du fichier (.sldprt).

Par contre, pour la vis ça ne fonctionne pas encore....

J'ai finalement réussi à faire fonctionner ma macro pour une vis, pas encore la bonne, mais j'y arriverai!

 

Merci beaucoup pour le coup de main.

1 « J'aime »

Donc l'erreur doit venir du chemin, peut être un caractère qui pose problème, je sais pas.

Par contre je pense qu'il y a mieux qu'une macro pour ajouter vos vis. Peut-être s'inspirer du principe de fonctionnement de la toolbox, avec des vis a glisser deposer dans l'assemblage qui se mettent en place avec des références de contraintes. J'en ai jamais fait mais vous devriez gagner un max de temps si c'est bien paramétré. 

Quelques pistes de recherche : 

http://help.solidworks.com/2013/french/solidworks/sldworks/c_Smart_Components.htm

https://www.youtube.com/watch?v=tkVG3dEWGQk

https://www.youtube.com/watch?v=zNM0_UUdN_M&t=3813s (la fonction intéressante est à partir de 44:50)

 

 

 

 

http://help.solidworks.com/2012/french/SolidWorks/sldworks/HIDD_DVE_POS_GROUP.htm?id=560a118e0a564df19e9f25d4bad8836b

http://help.solidworks.com/2016/french/solidworks/sldworks/c_example_mate_reference_multiple_entities.htm