So da hab ich mich wohl doch zu früh gefreut.
Hab es jetzt fast so wie ich mir das vorstelle. Allerdings ist es so das ich auch einige geöffnete Körper hab unter dennen sich auch wieder Körper befinden. Über den Makorecorder hab ich herausgefunden das diese als Hybridbodies definiert sind. Hab ich natürlich auch gleich ins Script eingebaut funktioniert auch soweit. Er liest mir aber immer nur die Übergeordneten Hybridbodies aus unter die darunter liegenden nicht. Hab mich auch die Hilfe geangelt aber auch nichts wirklich pasendes gefunden.
Hat jemand eine Idee wie ich das löse? Hier mein bisheriges Versuch:
Sub CATMain()
Dim myPartDocument As PartDocument
Set myPartDocument = CATIA.ActiveDocument
Dim Koerper As Bodies
Dim myKoerper As Body
Set Koerper = myPartDocument.Part.Bodies
Dim oFileOut As File
If CATIA.FileSystem.FileExists("c:\temp\Partstruktur.txt") Then
Set oFileOut = CATIA.FileSystem.GetFile("c:\temp\Partstruktur.txt")
Else
Set oFileOut = CATIA.FileSystem.CreateFile("c:\temp\Partstruktur.txt", False)
End If
Dim oStream As TextStream
Set oStream = oFileOut.OpenAsTextStream("ForAppending")
For Each myKoerper In Koerper
oStream.Write (CStr(myKoerper.Name & Chr(10)))
Next
oStream.Close
Set Koerper1 = myPartDocument.Part.HybridBodies
If CATIA.FileSystem.FileExists("c:\temp\Partstruktur.txt") Then
Set oFileOut = CATIA.FileSystem.GetFile("c:\temp\Partstruktur.txt")
Else
Set oFileOut = CATIA.FileSystem.CreateFile("c:\temp\Partstruktur.txt", False)
End If
Set oStream = oFileOut.OpenAsTextStream("ForAppending")
For Each myKoerper1 In Koerper1
oStream.Write (CStr(myKoerper1.Name & Chr(10)))
Next
oStream.Close
Dim HybridBodies As hybridBody
Set hybridBodyColl = myPartDocument.Part.HybridBodies
If CATIA.FileSystem.FileExists("c:\temp\Partstruktur.txt") Then
Set oFileOut = CATIA.FileSystem.GetFile("c:\temp\Partstruktur.txt")
Else
Set oFileOut = CATIA.FileSystem.CreateFile("c:\temp\Partstruktur.txt", False)
End If
Set oStream = oFileOut.OpenAsTextStream("ForAppending")
For Each hybridbody In hybridBodyColl
oStream.Write (CStr(hybridbody.Name & Chr(10)))
Next
oStream.Close
End Sub
Danke mal wieder im voraus für eure Hilfe.
Gruß Thomas
------------------
Das Glück bevorzugt den der vorbereitet ist!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP