Code:
Dim iSel
Dim iStatus
Dim sfilter(0)
Dim Bodyname ' zur Kontrolle
Dim oPart As Part
Dim oDoc As PartDocumentSub CATMain()
Set oDoc = CATIA.ActiveDocument
Set oPart = oDoc.Part
CATIA.ActiveDocument.Selection.Clear
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = oPart.HybridBodies
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()
oPart.Update
hybridBody1.Name = "Surfaces" 'erstellt HybridBody "Surface"
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = oPart.HybridShapeFactory
Dim reference1 As Reference
Set iSel = oDoc.Selection
sfilter(0) = "Body"
Selection
Set reference1 = oPart.CreateReferenceFromObject(iSel.Item(1).Value)
CATIA.ActiveDocument.Selection.Clear
Dim bodies1 As Bodies
Set bodies1 = oPart.Bodies
Dim body2 As Body
Set body2 = bodies1.Item("Hauptkörper")
Dim shapes1 As Shapes
Set shapes1 = body2.Shapes
Dim assemble1 As Assemble
Set assemble1 = shapes1.Item("Zusammenbauen.2")
Dim reference2 As Reference
sfilter(0) = "Edge"
Selection
Set reference2 = oPart.CreateReferenceFromObject(iSel.Item(1).Value) 'ungültiger Prozeduraufruf oder ungültiges Argument
'Set reference2 = oPart.CreateReferenceFromObject(Bodyname)
'Set reference2 = oPart.CreateReferenceFromBRepName(Bodyname)
'Set reference2 = oPart.CreateReferenceFromBRepName(iSel.Item(1).Value)
CATIA.ActiveDocument.Selection.Clear
Dim hybridShapeSplit1 As hybridShapeSplit
Set hybridShapeSplit1 = hybridShapeFactory1.AddNewHybridSplit(reference1, reference2, 1)
hybridShapeFactory1.GSMVisibility reference1, 0
Set hybridBody1 = hybridBodies1.Item("Surfaces")
hybridBody1.AppendHybridShape hybridShapeSplit1
oPart.InWorkObject = hybridShapeSplit1
oPart.Update
End Sub
Sub Selection()
MsgBox (sfilter(0) & " bitte Auswählen")
iStatus = iSel.SelectElement3(sfilter, "sfilter(0) / ESC bei keine Auswahl", False, CATMultiSelTriggWhenSelPerf, False)
If iStatus = "Normal" Then
Else
MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, " Abbruch "
Exit Sub
End If
Bodyname = iSel.Item(1).Value.Name
End Sub