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.
pl
Juillet 21, 2016, 8:05
2
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 »
pl
Juillet 25, 2016, 9:54
4
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é ?
pl
Juillet 25, 2016, 2:03
6
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
pl
Juillet 26, 2016, 7:34
8
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 »
pl
Juillet 26, 2016, 7:51
11
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 :)