Hoe vervang ik een onderdeel door VBA?

Hallo

Ik ben op zoek naar een automatische vervanging van onderdelen op SolidWorks met behulp van de macrotool. Concreet zou ik per waardeschijf één onderdeel willen wijzigen/vervangen. Ik heb de opdracht hieronder gevonden, maar deze werkt niet ;

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

Dank u voor uw hulp.

Hallo

Heb je het voorbeeld gezien in de SolidWorks-help?

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

Waar loopt je macro vast?

Wat is de foutmelding?

1 like

Het debugger-bericht, ik zal het proberen door te bestuderen wat je me hebt gegeven:)

1 like

Werkt het nu?

In feite begreep ik niet alles van uw code, ik heb alleen de bestelling nodig om het ene onderdeel door het andere te vervangen , ik ken de weg van beide! Moet ik zulke ingewikkelde code maken?

Probeer deze code:

 

Dim swApp als object 


Deel dimmen als object 


Pad dimmen als tekenreeks


Dim boolstatus als Booleaanse 


Sub hoofd() 


Stel swApp = Toepassing.SldWorks in


Deel instellen = swApp.ActiveDoc 


Deel.ClearSelection2 Waar 


Vervang hier NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLAGE door de naam van het te vervangen onderdeel


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


path = "C:\map\naam van uw nieuwe onderdeel . SLDPRT"


boolstatus = Part.ReplaceComponents(pad, "", Onwaar, Waar) 


Einde Sub

1 like

Deze opdracht werkt niet, hier is mijn code: (debug opent voor de laatste regel)

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc


Deel.ClearSelection2 Waar


boolstatus = Part.Extension.SelectByID2("Onderdeelnaam-1@Assemblage", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

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


Einde Sub

 

Is het normaal "C:\xxxxxxx\xxxx.sldprt"?

En weet je zeker dat je geen fout hebt gemaakt in "Name of the 1@Assemblage Piece"?

Ja, ik heb zojuist mijn links vervangen door xxxx, en ja voor de tweede vraag omdat ik het opsla door de macro-opnametool voor...  

Ik heb zojuist de fout gevonden..... Een beetje 0 te veel in mijn bestelling: 

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

Heel erg bedankt:)

1 like

En je hebt de fout gemaakt om te kopiëren wat ik bovendien schreef, want wat ik schreef klopt!

:) Geen zorgen, kies alsjeblieft mijn antwoord als het beste:)