Wie ersetze ich ein Teil durch VBA?

Hallo

Ich möchte mit dem Makrowerkzeug einen automatischen Teileaustausch in SolidWorks durchführen. Konkret möchte ich pro Wertegruppe ein Teil ändern/ersetzen. Ich habe den Befehl unten gefunden, aber er funktioniert nicht .

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

Danke für Ihre Hilfe.

Hallo

Haben Sie das Beispiel in der SolidWorks Hilfe gesehen?

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

Wo bleibt Ihr Makro hängen?

Was ist die Fehlermeldung?

1 „Gefällt mir“

Die Debugger-Nachricht, ich werde versuchen, indem ich studiere, was Sie mir gegeben haben:)

1 „Gefällt mir“

Funktioniert es jetzt?

In der Tat habe ich nicht alles über Ihren Code verstanden , ich brauche nur die Anweisung, einen Teil durch einen anderen zu ersetzen , ich kenne den Weg von beiden! Ich muss so komplizierten Code erstellen?

Probieren Sie diesen Code aus:

 

Dimmen swApp als Objekt 


Teil als Objekt dimmen 


Pfad als String dimmen


Dim boolstatus als boolescher Wert


Sub main() 


Legen Sie swApp = Application.SldWorks fest


Set Part = swApp.ActiveDoc 


Part.ClearSelection2 Wahr 


Ersetzen Sie hier NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLAGE durch den Namen des zu ersetzenden Teils


boolstatus = Part.Extension.SelectByID2("NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLY", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0) 


path = "C:\Ordner\Name Ihres neuen Teils . SLDPRT"


boolstatus = Part.ReplaceComponents(Pfad, "", Falsch, Wahr) 


Ende Sub

1 „Gefällt mir“

Dieser Befehl funktioniert nicht, hier ist mein Code: (Debug öffnet sich für die letzte Zeile)

Sub main()

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc


Part.ClearSelection2 Wahr


boolstatus = Part.Extension.SelectByID2("Teilename-1@Assemblage", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)

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


Ende Sub

 

Ist es normal "C:\xxxxxxx\xxxx.sldprt"?

Und sind Sie sicher, dass Sie in "Name of the 1@Assemblage Piece" keinen Fehler gemacht haben?

Ja, ich habe gerade meine Links durch xxxx ersetzt, und ja für die zweite Frage , weil ich sie vorher mit dem Makroaufzeichnungstool gespeichert habe...  

Ich habe gerade den Fehler gefunden..... Ein bisschen 0 zu viel in meiner Reihenfolge: 

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

Vielen Dank:)

1 „Gefällt mir“

Und du hast den Fehler gemacht, das, was ich geschrieben habe, zusätzlich zu kopieren, denn was ich geschrieben habe, ist richtig!

:) Keine Sorge, bitte wählen Sie bitte meine Antwort als die beste:)