| |
| KISTERS 3DViewStation: Mehr CAD Lizenzen durch 3D-Viewer ersetzen und Geld sparen, eine Pressemitteilung
|
Autor
|
Thema: Parts umbenennen (10587 mal gelesen)
|
Mamelba83 Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 15 Registriert: 24.07.2006
|
erstellt am: 26. Jul. 2006 10:53 <-- editieren / zitieren --> Unities abgeben:
Hallo alle miteinander. Ich hab folgendes Problem: Ich habe ein Product, dessen Baum ich als Bild mit geschickt hab. Ich möchte nun mit Hilfe eines Makros die Partnamen und Productnamen der Unterprodukte ändern. Es soll ein Eingabefenster erscheinen, so dass ich anstatt der 000000 eine andere beliebige Zahl eingeben kann, die dann die 000000 in allen Namen ersetzt. Kann mir jemand weiterhelfen? Dnke im Voraus! ------------------ Wenn du sie nicht überzeugen kannst, verwirre sie! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 26. Jul. 2006 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
Hallo hast Du schonmal die Suche benutzt??? Das wurde schon des öfteren hier besprochen, glaub ich. Ansonsten schau mal ob das hier weiterhilft Sub CATMain() String5 = Inputbox ("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Test") String3 = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Test")
Set productDocument1 = CATIA.ActiveDocument Set selection1 = productDocument1.Selection selection1.Search "(CATAsmSearch.Part),all" For i = 1 To selection1.Count Set productDocument1 = CATIA.ActiveDocument Set product1 = productDocument1.Product Set products1 = product1.Products Set product2 = products1.Item(selection1.Item(i).Value.Name) String2=product2.partnumber String4=product2.name Dim Text1, Text2, Text3, Vergleich, Text4 Text1 = String2 Text2 = String5 Text3 = String3 Text4 = String4 Vergleich = Replace(Text1, Text2, Text3) product2.partnumber=vergleich Vergleich2 = Replace(Text4, Text2, Text3) product2.name=Vergleich2 Next End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mamelba83 Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 15 Registriert: 24.07.2006
|
erstellt am: 27. Jul. 2006 08:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Augustiner, zunächst mal vielen Dank für deine schnelle Antwort! Also wenn ich das Makro so schreibe kann ich nur die ersten drei Parts umbenennen, dann wird mir eine Fehlermeldung gezeigt. Ich hab sie mal beigefügt. Wenn ich anschließend das Makro editiere, wird mir gezeigt, wo der Fehler liegt, allerdings weiß ich nicht, wie ich ihn korrigieren kann... Kannst du mir nochmal helfen? Bin Anfänger was Makros angeht... Danke! ------------------ Wenn du sie nicht überzeugen kannst, verwirre sie! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 27. Jul. 2006 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
|
Mamelba83 Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 15 Registriert: 24.07.2006
|
erstellt am: 27. Jul. 2006 09:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, muss meinen letzten Beitrag korrigieren, er benennt alle Parts um und steigt beim ersten Unterprodukt aus. Wie kann ich diese Schleife für alle offenen Dokumente realisieren? Gruß ------------------ Wenn du sie nicht überzeugen kannst, verwirre sie! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 27. Jul. 2006 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
|
Tapani. Mitglied
Beiträge: 56 Registriert: 12.05.2006
|
erstellt am: 27. Jul. 2006 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
moin, ich würde den ganzen Strukturbaum des gewünschten Documents traversieren und dabei alle Namen und Partnumbers ändern: Code: Sub traverse(Prod, origstr, newstr) set refp = Prod.ReferenceProduct if instr(refp.Name, origstr) then newpname = Replace(refp.Name, origstr, newstr) refp.Name = newpname 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 CATMain() Set actProd = CATIA.ActiveDocument.Product origstr = Inputbox ("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Test") newstr = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Test") traverse actProd, origstr, newstr End Sub
Das hat den Charme, das mehrere unterschiedliche CATProducts offen sein dürfen und du nur das ActiveDocument änderst. CU Tapani ------------------ Don't take life so seriously.... it's not a permanent condition Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mamelba83 Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 15 Registriert: 24.07.2006
|
erstellt am: 27. Jul. 2006 11:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Tapani. Vielen Dank für den Tipp. Jetzt funktioniert es! Danke nochmal an alle! Hoff ich kann mich mal revanchieren und euch helfen ------------------ Wenn du sie nicht überzeugen kannst, verwirre sie! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
prosper Mitglied Dipl.-Ing. -- Methoden und Prozessentwicklung Catia V5
Beiträge: 86 Registriert: 05.05.2004
|
erstellt am: 01. Aug. 2006 22:36 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
|
lukas304 Mitglied Konstrukteur
Beiträge: 150 Registriert: 26.01.2010 Intel Core i7-4790 CPU @3.60GHz RAM 16GB 4GB Quadro K2200 GDDR5 Windows 7 Professional x64 Edition 2x 22" Widescreen Catia V5 R19/R24/R26 SpaceMouse Explorer
|
erstellt am: 18. Feb. 2010 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für Mamelba83
|