Hallo Zusammen,
ich möchte gerne nur 500-Bodies von dem Mainbody mit der Booleschen Operation „Remove“ abziehen. Bei dem nächsten Ausführen des Makros sollen die nächsten 500 Bodies (wenn die Anzahl der Bodies, die nicht mit der booleschen Operation "Remove" in MainBody sind, kleiner ist als 500, dann nur bis zu dieser Anzahl an Bodies) auch von dem Mainbody abgezogen werden. Das Problem liegt darin, dass mein Arbeitsspeicher voll wird und CATIA sehr langsam wird. Ich muss CATIA schließen und neu starten. Viele Grüße Estafanos
Sub RemoveBodies()
Dim oPartDoc As document
Dim oHybridBodies As HybridBodies
Dim oPart As Part
Dim hybridShapeFactory1 As Factory
Dim oHybridBody As HybridBody
Dim j As Integer
Dim oBodies As Bodies
Dim oBody As Body
Set oPartDoc = CATIA.ActiveDocument
Set oPart = oPartDoc.Part
Set hybridShapeFactory1 = oPart.HybridShapeFactory
Set oHybridBodies = oPart.HybridBodies
Set oBodies = oPart.Bodies
Set oShapeFactory = oPart.ShapeFactory
oPart.InWorkObject = oPart.MainBody
For j = 2 To 500
Set oBody = oBodies.Item(j)
If oBody.InBooleanOperation = False Then
Set oAdd = oShapeFactory.AddNewRemove(oBody)
On Error Resume Next
oPart.UpdateObject (oAdd)
iErr = Err.Number
If (iErr = 438) Then
oPart.Inactivate oAdd
End If
If (iErr = -2147467259) Then
oPart.Inactivate oAdd
End If
End If
On Error GoTo 0
Next
oPart.Update
CATIA.ActiveDocument.Save
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP