Code:
Sub CATMain()
'Multi-Body CATIA-Part to STL+STP
'*********************************
'Voraussetzung für den korrekten Ablauf Catiav5 Macro
'Sprache: VBScript
'V5 Level V5R21
'Autor: H. Studer
'********************************
' erst alle Bodies ausblenden
'dann den ersten Body einblenden,
'diesen als stl mit dem Namen des Body als STL speichern
'diesen ausblenden
'den nächsten Body einblenden
'diesn auch speichern....usw.
'Meldung ausgeben "alle Bodys wurden gespeichert
'alle Bodys wieder einblenden
Dim Version, makroname, iErr
Version = "0.1"
makroname = "Multi-Body CATIA-Part to STL+STP"
'On Error Resume Next
'Meldung an den Anwender Schritte für korrekte Anwendung***********
'Zeilenumbruch durch '&CHR(13)
MsgBox "Export CATIA-Part Multi-Body zu STL+STP" & Chr(13) & "Speichert in Verzeichnis D:\CAD_Daten\Export_STL-STEP", vbInformation, makroname + " " + Version
'Ende Meldung*****************************************************
'Makro Hauptteil****************************
'V5 wird direkt durch CATIA angesprochen
'z.B. CATIA.ActiveDocument
Dim test As String
test = CATIA.Application.FullName
'**********************************************************************************************
'Schleife über alle Bodies
'--------------------------------------
Dim partDocument1
Dim part1
Dim bodies1
Dim bodyn
Dim n
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
For n = 1 To bodies1.Count - 0
Set bodyn = bodies1.Item(n + 0)
'Body auswaehlen, neues Part erzeugen und als STL speichern
'---------------------------------------------
Dim selection1
Dim Benennung
Dim documents1
Dim documents2
Dim partDocument2
Dim selection2
Dim part2
Dim bodies2
Dim body2
Dim visPropertySet1
'Dim bodies1
Set partDocument1 = CATIA.ActiveDocument
Set selection1 = partDocument1.Selection
selection1.Clear
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
selection1.Add bodyn
'alle Bodies ausblenden******************
'***************************************************
Set visPropertySet1 = selection1.VisProperties
selection1.Add bodyn
Set visPropertySet1 = visPropertySet1.Parent
visPropertySet1.SetShow 1
selection1.Clear
Next
'****************************************
' Bodies nacheinander einblenden Speichern STL und wieder ausblenden
'****Funktioniert noch nicht********************************
Set bodies1 = part1.Bodies
For n = 1 To bodies1.Count - 0
Set bodyn = bodies1.Item(n + 0)
Set visPropertySet1 = selection1.VisProperties
selection1.Add bodyn
Set visPropertySet1 = visPropertySet1.Parent
Set partDocument2 = CATIA.ActiveDocument
visPropertySet1.SetShow 0
Benennung = bodyn.Name
Set partDocument2 = CATIA.ActiveDocument
partDocument1.ExportData "D:\CAD_Daten\Export_STL-STEP\" & Benennung & ".stl", "stl"
partDocument1.ExportData "D:\CAD_Daten\Export_STL-STEP\" & Benennung & ".stp", "stp"
selection1.Add bodyn
Set visPropertySet1 = visPropertySet1.Parent
visPropertySet1.SetShow 1
selection1.Clear
Next
'****************************************
'Makro Hauptteil ende *****************
'Fehler Ausgabe***********************
iErr = Err.Number
If (iErr <> 0) Then
MsgBox (Err.Description)
Exit Sub
End If
'Ende Fehlerbehandlung***************************
'Abschlussmeldung an Anwender
MsgBox "Makro ist beendet", vbInformation, makroname + " " + Version
End Sub