Mal ein Denkanstoss für Formeln mit gelöschten Parametern (in der engl. Umgebung gelöscht durch deleted ersetzen) zu löschen oder aufzufinden (momentan auskommentiert):
Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim selection1 As Selection
Set selection1 = partDocument1.Selection
Dim relations1 As Relations
Set relations1 = part1.Relations
Dim formula1 As Formula
For I = relations1.Count To 1 Step -1
Set formula1 = relations1.Item(I)
If InStr(formula1.Value, "gelöscht") Then
' MsgBox "kaputte Formel gefunden: " & formula1.Name
'oder
selection1.Clear
selection1.Add formula1
selection1.Delete
End If
Next
End Sub
Dann noch eine Frage:
defekte Formeln sind bei mir "inaktiv", die kann man wieder mit .activated abfragen. Das gelbe Ausrufezeichen kenn ich nur in Verbindung mit Formeln, bei denen Bestandteile nicht vollständig interpretiert werden können (wie z.B. smartvolume, wenn die "Erweiterten Bibliotheken" in den CATSettings deaktiviert sind).
Ist es vielleicht nur die Aktivierung des Schalters, die du brauchst?
Nachtrag: ich habe jetzt so eine Formel mit gelbem Ausrufezeichen durch addieren eines nicht vorhandenen Parameternamens simuliert.
Diese würde auch gelöscht werden, wenn man .activated abfragt und wenn false zurückgegeben wird, diese dann löscht. Dann hättest du doch auch das was du suchst, oder?
For I = relations1.Count To 1 Step -1
Set formula1 = relations1.Item(I)
If formula1.Activated = False Then
'If InStr(formula1.Value, "gelöscht") Then
' MsgBox "kaputte Formel gefunden: " & formula1.Name
'oder
selection1.Clear
selection1.Add formula1
selection1.Delete
End If
Next
------------------
Grüße aus dem Thurgau
Thomas
+++++++++++++++++++++++++++++++++
CATIA - eine Laune der Natur ...
[Diese Nachricht wurde von tberger am 07. Jan. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP