Guten Tag
Ich habe folgendes Problem: Ich habe eine über Globale Variablen gesteuerte Baugruppe erstellt.
Die Zahlenwerte holt sich die Baugruppe über ein verlinkte Text datei.
Dort werden über die Variablen verschiedene Größen des Bauteils gesteuert und Teile / Features ein oder ausgeblendet. Soweit funktioniert auch alles super.
Man muss lediglich nachdem man neue Daten eingespielt hat zweimal (SWX 2018) bzw viermal (SWX2021) die Ampel (rebuild) (Strg+B) drücken und alles ist so wie es sein muss. Man muss es mehrmals drücken da sich nicht alles beim ersten Mal aktualisiert.
Um jetzt Anwendungsfehler zu vermeiden wollte ich ein Makro schreiben was für einen die entsprechende Anzahl an Rebuilds ausführt. Dazu habe ich die Aufnahmefunktion verwendet um einen einzelnen rebuild aufzunehmen.
Makro:
Code:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As LongSub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.EditRebuild3()
End Sub
Leider kommt es dabei zu einem Laufzeitfehler. -2147417848 (80010108) der grund dafür ist wohl, dass ein „Pointer“ verloren geht. „Cause: The pointer to an object was lost. (In other words, you lost access to that object’s interface because the object reference no longer exists.) “
Im Anschluss ist auch die Baugruppe nicht sichtbar.
Wenn ich aber den ersten Neuaufbau per Hand mache und dann das Makro verwende funktioniert es.
Frage:
1) wie kann ich den Laufzeitfehler beheben?
2) Wäre es möglich mehrere Neuaufbauten hintereinander in einem einzigen Makro auszuführen?
Im Anhang sieht man die Ampeln AK1: vor dem ersten Neuaufbau
AK2. Vor dem zweiten Neuaufbau.
Vielen dank für eure Hilfe.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP