Hallo zusammen,
ich arbeite mich ein wenig in die VBA-Welt ein, seit einiger Zeit hänge ich schon an einem Problem und finde trotz zahlreicher Suchen keinen passenden Lösungsansatz.
Ich würde gerne ein Makro mit folgendem Funktionsumfang erstellen. Kopieren von einem geometrischen Set und Körper, einfügen und umbennen der selbigen sowie eine Formel erstellen, die das neue geometrische Set sowie den neuen Körper verknüpft.
Leider scheitert das ganze schon recht früh und möchte mich an dieser Stelle erstmal auf ein Problem beschränken. Mithilfe des Makro Recordes habe ich den Kopier-/Einfügevorgang aufgezeichnet und entsprechend meinen Bedürfnissen angepasst. Das Makro läuft auch problemlos allerdings habe ich festgestellt, dass das geometrische Set bzw. der Körper erst eingefügt werden, wenn das Makro durchgelaufen ist. Alternativ werden die Bauteile auch eingefügt, wenn ich den Code mit einer msgbox unterbreche und den Mauszeiger in Catia bewege. Das Problem an der ganzen Sache ist, dass im Makro mit den neu eingefügten Komponenten weitergearbeitet werden soll. Diese allerdings nicht im Strukturbaum aufgeführt werden bis das Makro durchgelaufen bzw. manuell unterbrochen wurde.
Ich habe schon einiges probiert, bin aber leider noch auf keine Lösung gestoßen. Auch der Versuch die Einfügeoperation über eine Funktion durchzuführen, brachte keinen Erfolg.
Ich würde mich sehr freuen, wenn jmd eine Lösungsidee hätte. Vorab vielen Dank
Sub CATMain()
Dim Dokument As Document
Set Dokument = CATIA.ActiveDocument
Dim Bauteil As Part
Set Bauteil = Dokument.Part
Dim GeometrischesSets As HybridBodies
Set GeometrischesSets = Bauteil.HybridBodies
Dim Kopiervorlage As HybridBody
Set Kopiervorlage = GeometrischesSets.Item("Kopiervorlage")
Dim Koerper As Bodies
Set Koerper = Bauteil.Bodies
Dim Koerper_Kopiervorlage As Body
Set Koerper_Kopiervorlage = Koerper.Item("Koerper_Kopiervorlage")
Dim Auswahl_Vorlagen As Selection
Set Auswahl_Vorlagen = Dokument.Selection
Auswahl_Vorlagen.Clear
Auswahl_Vorlagen.Add Kopiervorlage
Auswahl_Vorlagen.Add Koerper_Kopiervorlage
Auswahl_Vorlagen.Copy
Auswahl_Vorlagen.Clear
Dim Auswahl_Bauteil As Selection
Set Auswahl_Bauteil = Dokument.Selection
Auswahl_Bauteil.Add Bauteil
Auswahl_Bauteil.Paste
Auswahl_Bauteil.Clear
Bauteil.Update
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP