Autor
|
Thema: Unbenutzte Parts löschen (1178 mal gelesen)
|
AndreasNilli Mitglied MaschBau, 6.Sem
Beiträge: 22 Registriert: 09.09.2009
|
erstellt am: 14. Sep. 2009 15:18 <-- editieren / zitieren --> Unities abgeben:
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 |
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 14. Sep. 2009 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasNilli
|
Cad-Stranger Mitglied Konstrukteur
Beiträge: 23 Registriert: 09.01.2008
|
erstellt am: 14. Sep. 2009 17:30 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasNilli
Hallo Andreas, das ist vielleicht nicht ganz das, was du dir vorgestellt hast, aber hier mal ein kleiner work arround: 1: sep. Ordner erstellen 2: Produkt laden 3: über send to directory alles (dabei werden nur die verwendeten Parts genommen) in den seop. Ordner kopieren. 4: anschließend die Parts im original Ordner löschen 5: alles zurück kopieren Gruß Stranger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasNilli Mitglied MaschBau, 6.Sem
Beiträge: 22 Registriert: 09.09.2009
|
erstellt am: 15. Sep. 2009 07:51 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 18. Sep. 2009 23:33 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasNilli
Hallo, bezgl: Dass das mit dem "SaveAs" keineswegs gut ist, da man alles bestätigen muss Du kannst am Anfang deines Makros die Meldungen des Savemanagement deaktivieren mit Catia.DisplayFileAlerts = False Du solltest aber am Ende und bei Fehlerbhandllungen wieder auf True stellen. Ansonsten ist das doch ein smarter Code. Wenn du nur einstufige (Keine Unterbaugruppen) Baugruppen hast, ist dass doch OK. Ich würde vielleicht noch ein Backup einbauen. Am Ende sollte man Catia auch mal schließen und die Baugruppe nochmal öffnen. Wenn dann keine Fehlermeldungen auftreten, kann das Backup auch gelöscht werden. Außerdem muss vielleicht auch noch der Ladestatus/Design- oder Visumode berücksichtigen werden. ------------------ MfG Randle ! It's not a bug, it's a feature ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|