| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
| KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: Doppelte Namen im Assembly Design automatisch ändern (596 / mal gelesen)
|
83SchuWa Mitglied Methodenplaner - Konstrukteur
Beiträge: 3 Registriert: 21.03.2024
|
erstellt am: 21. Mrz. 2024 08:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, zur Zeit habe ich einige WKZ von externen Lieferanten, die wohl nicht im Catia konstruiert wurden und "nur" umgewandelt wurden... Leider gibt es viele umlaute im Namen, die ich aber mit einem "Search and Replace" Makro beheben konnte. Es gibt aber zusätzlich viele Namen die mehrfach vergeben sind. Gibt es da eine Möglichkeit einen "Zähler" einzubauen? So das die Parts einfach "gezählt" werden und das im Namen dazu kommt? Wäre super wenn ihr mir helfen könntet.... ------------------ ###83SchuWa### Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lionel Hutz Mitglied
Beiträge: 451 Registriert: 26.03.2014 CATIA V5 R26
|
erstellt am: 21. Mrz. 2024 15:23 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
Ja, die Möglichkeit gibt es. Code: i=0 For Each oProduct in oPProductsToRename i = 1+1 oProduct.PartNumber= oProduct.PartNumber & i Next
Welche Products möchtest du denn umbenennen? Wie findet dein Makro sie? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
83SchuWa Mitglied Methodenplaner - Konstrukteur
Beiträge: 3 Registriert: 21.03.2024
|
erstellt am: 22. Mrz. 2024 06:49 <-- editieren / zitieren --> Unities abgeben:
Super Danke. Werde es gleich mal probieren.... Code: 'Product: Macro replaces strings in Instance name / Part: Macro is searching for string and replaces itSub CATMain() on error resume next Set actProd = CATIA.ActiveDocument.Product DName = CATIA.ActiveDocument.FullName origstr = Inputbox ("Insert string to replace", "Search and Replace (old string)") If origstr <> "" then Fehler = 0 else Fehler = 1 msgbox ("Please enter valid string and try again!") Exit Sub End If newstr = Inputbox ("Insert new string", "Search and Replace (new string)") If Fehler = 0 then If InStr(DName, "CATProduct") Then traverse actProd, origstr, newstr else If InStr(DName, "CATDrawing") Then msgbox ("In Drawing Workbench only names in tree will be replaced!"&Chr(10)& "Text inside views can be replaced by edit --> replace!") End If SearchCatPart origstr, newstr End If End IF End Sub '******************************************************************************************************* Sub traverse(Prod, origstr, newstr) set refp = Prod.ReferenceProduct if instr(refp.Name, origstr) then newpname = Replace(refp.Name, origstr, newstr) on error resume next refp.Name = newpname fehler=Err.Number On Error Goto 0 If fehler <> 0 then Box = MsgBox("file:" + Chr(10) + (refp.Name) + Chr(10) + "is causing the error!" + Chr(10) + "special characters in name?" + Chr(10) + "please correct first!", vbInformation, "error!!!") Exit Sub end if end if if instr(refp.PartNumber, origstr) then newpnum = Replace(refp.PartNumber, origstr, newstr) refp.PartNumber = newpnum end if Set prods = Prod.Products pc = prods.Count If pc > 0 then For i = 1 to pc traverse prods.Item(i), origstr, newstr Next End If End Sub '******************************************************************************************************* Sub SearchCatPart(origstr, newstr) Set activePart = CATIA.ActiveDocument Set selection1 = activePart.Selection selection1.Clear selection1.Search "Name=*"&(origstr)&"*,all" For n=1 to selection1.count set selection2 = selection1.Item(n).value selection2.name = replace(selection2.name, origstr, newstr) Next selection1.Clear End Sub '******************************************************************************************************* Sub SearchCatDrawing(origstr, newstr) Set activePart = CATIA.ActiveDocument Set selection1 = activePart.Selection selection1.Clear selection1.Search "CATDrwSearch.DrwText.TextString='"&origstr&"',all" For n=1 to selection1.count set selection2 = selection1.Item(n).value.text selection2 = replace(selection2, origstr, newstr) Next selection1.Clear End Sub
###83SchuWa### [Diese Nachricht wurde von 83SchuWa am 22. Mrz. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 22. Mrz. 2024 07:53 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
Servus Was möchtest du alles umbenennen? Alle Feature (Bodies, GeoStes, Geometrie, ...)? Ist der "Zähler" der Feature davor nicht eindeutig? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
83SchuWa Mitglied Methodenplaner - Konstrukteur
Beiträge: 3 Registriert: 21.03.2024
|
erstellt am: 22. Mrz. 2024 08:23 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 22. Mrz. 2024 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
|
eckhaard Mitglied Dipl.Ing.
Beiträge: 140 Registriert: 02.11.2003
|
erstellt am: 09. Sep. 2024 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
Moin! Ich hab vermutlich das gleiche Problem. Ich hab in einem Produkt mehrere Parts, die einen unterschiedlichen Dateiname und einen unterschiedlichen Instanzenname haben, die Teilenummer ist aber die Gleiche. Das gefällt Catia nicht und man kann das Produkt nicht weiter bearbeiten. Ich bräuchte ein Makro, was die Teilenummer aller Parts gleich dem Dateiname ändert. Leider bin ich selbst zu blöd dazu. Ich nehme an, dem TS würde das so ebenfalls helfen? Gruß, David Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Trilemma Mitglied staatl. gepr. Techniker
Beiträge: 257 Registriert: 20.08.2010 Catia V5 R19 SP8 Windows7 64bit 12GB 2,93GHz Dell Precision T3500
|
erstellt am: 09. Sep. 2024 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
|
eckhaard Mitglied Dipl.Ing.
Beiträge: 140 Registriert: 02.11.2003
|
erstellt am: 09. Sep. 2024 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
|
Trilemma Mitglied staatl. gepr. Techniker
Beiträge: 257 Registriert: 20.08.2010 Catia V5 R19 SP8 Windows7 64bit 12GB 2,93GHz Dell Precision T3500
|
erstellt am: 10. Sep. 2024 07:15 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
|
eckhaard Mitglied Dipl.Ing.
Beiträge: 140 Registriert: 02.11.2003
|
erstellt am: 10. Sep. 2024 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für 83SchuWa
Moin! nachdem ich Dein Tool mittlerweile auch bei größeren Projekten angewendet habe, kann ich nur sagen es funktioniert problemlos. Vielen Dank noch mal, das erleichtert mir die Arbeit sehr. Gruß, David Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |