Hallo.
Ich stehe mal wieder vor einem Rätsel.
Ich möchte ein Makro erstellen, das in einem Vorrichtungsordner alle Parts rauslöscht, die nicht im Produkt genutzt werden.
Vom Aufbau her, dachte ihr mir das folgendermaßen:
- Die benutzen Parts werden kurzzeitig umgespeichert --> mit "_" vor dem Namen
- Alle Parts, die kein "_" als 1.Zeichen im Dateinamen haben, werden gelöscht
- Die Dateien mit "_" als 1.Zeichen werden wieder in die ursprüngliche Form umgespeichert und die "_"-Dateien gelöscht.
Soweit vom Prinzip her.
Sicherlich habt ihr hier Verbesserungsvorschläge.
Wenn ja, dann nur her damit. Bin für jeden Ratschlag dankbar.
Hier mal mein Code.
Noch eine reine Baustelle.
Code:
Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set oProducts = productDocument1.Product.Products Path = CATIA.ActiveDocument.Path
ActPath = Path & "\"
For i = 1 To oProducts.Count
Dim product1 As Product
Set product1 = oProducts.Item(i)
Dim pPart, TempRename As String
pPart = product1.ReferenceProduct.Parent.Name
'MsgBox pPart
TempRename = "_" & pPart
product1.ReferenceProduct.Parent.SaveAs Filename:=ActPath & TempRename
Next
Dim Zeichen As String
Zeichen = [!_] 'Negation von "_" ---> Wie?!
Do While Dir$(ActPath & Zeichen & "*.CATPart") <> 0 'Gesucht: Alle Parts, die nicht mit _ anfangen!
Dim UnusedFile As String
UnusedFile = Dir$(ActPath & Zeichen & "*.CATPart")
Kill ActPath & UnusedFile
Loop
'Nun sind alle unbenutzen Parts herausgelöscht und die umbenannten Dateien werden wieder in die ursprüngliche Form gebracht.
End Sub
Im Internet habe ich mich mal durchgelesen, dass z.B die Negation von etwas mit "!" davor ist.
Und das [a-z] bedeutet, dass nur Buchstaben von a-z vorkommen dürfen. Dies gilt wohl nur bei Boolschen Operationen oder?
BTW
:
Dass das mit dem "SaveAs" keineswegs gut ist, da man alles bestätigen muss, weiß ich auch, jedoch weiß ich nicht, wie ich sonst die benutzen und unbenutzen Parts im Ordner unterscheiden kann.
Wenn es möglich ist, bitte kein API-Code (falls er so heißt; dh. Win-Code), da ich noch ein VB-Einsteiger bin.
Also, nun dürft ich mich steinigen
[Diese Nachricht wurde von AndreasNilli am 14. Sep. 2009 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP