Comment faire un remplacement de pièce par VBA?

Bonjour,

Je cherche à réaliser sur SolidWorks un remplacement automatique de pièce à l’aide de l’outil macro. Concrètement, j’aimerais changer/remplacé une pièce par tranche de valeur. J’ai trouvé la commande ci-dessous mais elle ne fonctionne pas ;

boolstatus = Part.ReplaceComponents("\\xxxxxxxx.SLDPRT", "", True, 0, True)

Merci pour votre aide.

Salut,

Tu as vu l'exemple dans l'aide de SolidWorks ?

http://help.solidworks.com/2012/English/api/sldworksapi/Replace_Component_Example_VB.htm

Où est-ce que ta macro bloque ?

Quel est le message d'erreur ?

1 « J'aime »

Le message du débogueur, je vais essayer en étudiant ce que tu m'as donné :)

1 « J'aime »

Ca fonctionne maintenant ?

En fait j'ai pas tout compris à ton code, il me faut juste la commande pour remplacer un pièce par une autre, je connais le chemin des deux ! Je suis obligé de créer un code aussi compliqué ?

Essaye ce code :

 

Dim swApp As Object 


Dim Part As Object 


Dim chemin as string


Dim boolstatus As Boolean 


Sub main() 


Set swApp = Application.SldWorks 


Set Part = swApp.ActiveDoc 


Part.ClearSelection2 True 


'remplacer ici NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLAGE par le nom de la pièce à remplacer


boolstatus = Part.Extension.SelectByID2("NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLAGE", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) 


chemin = "C:\dossier\nom de ta nouvelle pièce .SLDPRT"


boolstatus = Part.ReplaceComponents(chemin, "", False, True) 


End Sub

1 « J'aime »

Cette commande ne fonctionne pas, voici mon code : (débogage s'ouvre pour la dernière ligne)

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc


Part.ClearSelection2 True


boolstatus = Part.Extension.SelectByID2("Nom de la pièce-1@Assemblage", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

boolstatus = Part.ReplaceComponents("C:\xxxxxxx\xxxx.sldprt", "", False, 0, True)


End Sub

 

C'est normal "C:\xxxxxxx\xxxx.sldprt" ?

Et tu es sûr que tu n'as pas fait de faute dans "Nom de la pièce-1@Assemblage" ?

Oui, j'ai juste remplacé mon liens par des xxxx, et oui pour la deuxième question car je l'enregistre par l'outil d'enregistrement de macro avant ... 

Je viens de trouver l'erreur ..... Un petit 0 de trop dans ma commande : 

boolstatus = Part.ReplaceComponents("C:\xxxxxxx\xxxx.sldprt", "", False, 0, True)

Merci beaucoup :)

1 « J'aime »

Et tu as fait l'erreur en recopiant ce que j'ai écrit en plus, car ce que j'ai écrit est juste !

:) Pas de soucis, merci de choisir ma réponse comme la meilleure stp :)