| |
| KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: Parts in Struktur umbenennen (5763 mal gelesen)
|
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: 15. Feb. 2006 09:46 <-- editieren / zitieren --> Unities abgeben:
Hallo hab mal wieder probleme.Hab mir ein makro zusammengebastelt mit dem ich Parts in einer Struktur umbenennen möchte Instance namen und Partnumber.Es soll String xxx durch einen eingegebenen String ersetzt werden.Wäre für einen Lösungsvorchlag oder ansatz sehr dankbar. Gruß Andi Language="VBSCRIPT" Sub CATMain() StringToReplace="XXX" StringToReplace=InputBox("Welche Namensendung soll ersetzt werden?","Ersetzen von Namensendung",StringToReplace) LenStringToReplace = Len(StringToReplace) NewString=".001"
NewString = InputBox ("Ersetze " & StringToReplace & " durch folgendes: ", "Namensänderung", NewString) If NewString = "" then exit sub Set partDocument1 = CATIA.ActiveDocument Set part = partDocument.Part for i = 1 to part.count Set part1 =part.Item(i) reName = part.Name LenreName = Len(reName) If Right(reName, LenStringToReplace) = StringToReplace then part1.Rename Left(reName, Len(reName)-LenStringToReplace) & NewString reName = part.Name LenreName = Len(reName) if Left(reName, Lenpart1Name) = partName then part1.Rename Right(reName, LenreName -1 - Lenpart1Name) End If End If Next End Sub 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: 15. Feb. 2006 17:21 <-- editieren / zitieren --> Unities abgeben:
So das Problem habe ich jetzt gelöst.Dafür ein neues.Hier das Script mit dem ich eine Struktur umbenennen kann. 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 Nun möchte ich die umbenannte Struktur in ein neues verzeichnis abspeichern, (mit den neuen Partnamen usw.)nur hab ich noch keinen Lösungsansatz dazu kann mir jemand bitte weiterhelfen. Oder gibt es eine Möglichkeit den Pfadnamen im Part zu ändern so das wenn ich auf Savemanagment geh die neuen Namen da stehen und ich nur das übergeordnete Product neu abspeichere und den Rest mit propagateDirectory nachziehe. Benötige da wirklich Hilfe blick da mit dem Abspeichern hinten und vorne nicht durch! Vielen Dank schonmal im Voraus Gruß Andi [Diese Nachricht wurde von Augustiner am 15. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 608 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 22. Feb. 2006 19:32 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
|
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: 23. Feb. 2006 12:10 <-- editieren / zitieren --> Unities abgeben:
Hi Tomtom das Problem ist das beim abspeichern mit saveas der neue Partname nicht übernommen wird. Gruß P.S.: Angebot usw. erhalten sieht ganz gut aus, nur die Mühlen der Bürokratie mahlen ziemlich langsam hier.Wunder Dich deshalb nicht wenns noch a bisserl dauert. 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: 23. Feb. 2006 12:53 <-- editieren / zitieren --> Unities abgeben:
|
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 23. Feb. 2006 22:01 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo Augustiner, das Speichern sollte mit folgenden (nicht besonders schönen) Zeilen gehen: Code:
Dim iDocument As String iDocument = product2.referenceProduct.Parent iDocument.SaveAs "C:\Temp" & CATIA.FieSystem.FileSeparator & _ product2.partnumber & "." & _ Right(iDocument.name, Len(iDocument.name) - _ InStrRev(iDocument.name, "."))
mfg, Lusilnie
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shaitan80 Mitglied Konstrukteur
Beiträge: 12 Registriert: 08.12.2008 DELL Precission M6500, Intel Core i7 Q840, 12Gb RAM, NVidia Quattro FX2800M
|
erstellt am: 08. Dez. 2008 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo, zusammen das Macro Zitat: 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
funktioniert ganz gut, ich kann aber nicht hinkriegen dass das Macro auch mit Unterbaugruppen läuft (z.B. Schweissteile). Ich weiss dass es irgendwas mit Selection zu tun hat, habe aber keine Ahnung was Bitte euch um Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Ehrenmitglied V.I.P. h.c. Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 08. Dez. 2008 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo shaitan80, es liegt nicht wirklich an der Selection sondern eher an dieser Zeile Code: Set product2 = products1.Item(selection1.Item(i).Value.Name)
Sobald du nämlich ein Unterprodukt in deinem Main Produkt hast, gehören die Bauteile in deinem Unterprodukt nicht mehr zu den Items des products1 sondern zu den Items deines Unterprodukts. Ich versteh den Sinn dieser Zeile auch nicht den mit folgendem Code läuft es doch auch und s ist egal in welchem Produkt sich die Parts befinden. Code:
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 = selection1.Item(i).Value 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
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shaitan80 Mitglied Konstrukteur
Beiträge: 12 Registriert: 08.12.2008 DELL Precission M6500, Intel Core i7 Q840, 12Gb RAM, NVidia Quattro FX2800M
|
erstellt am: 20. Jan. 2009 08:06 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
|
ELudwig Mitglied Design Engineer
Beiträge: 15 Registriert: 14.08.2009
|
erstellt am: 30. Okt. 2012 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo, ich will in einem Produkt mit ca. 3000 Parts (darunter auch Unterprodukte) die in der "Part Number" und "Instance" einen bestimmten String durch einen anderen ersetzen. Beispiel: Alt: P000564AF350-35687-001 Neu:ZZ350-35687-001 der oben genannte Code stockt bei mir mit folgender Fehlermeldung: Unknown command: (CATAsmSearch.Part),all Weiss irgendeiner warum? Gruß, Bert 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: 30. Okt. 2012 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Servus Willkommen im Forum. Bitte Systeminfo ausfüllen Funktioniert der Code bei einer kleineren Baugruppe? Arbeitest du im Cache-Mode? Bei mir läuft der Code durch. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ELudwig Mitglied Design Engineer
Beiträge: 15 Registriert: 14.08.2009
|
erstellt am: 31. Okt. 2012 10:03 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo bgrittmann, danke für die schnelle Antwort und die herzlichen Willkommensgrüße. Ich bin ja schon eine Zeit lang hier registriert, aber bis jetzt bin ich mit den vorhandenen Beiträgen und der Suchfunktion zurecht gekommen. Deswegen muss ich an dieser Stelle ein großes Lob für die Qualität dieses Forums aussprechen! Systeminfo habe ich ergänzt und nun zu Deinen Fragen: Ich habe extra zum Schutz der eigentlichen Baugruppe und zum experimentieren eine Testbaugruppe (Product mit zwei Parts) erstellt. Ja ich arbeite im Cache-Mode, aber ohne Cache-Mode geht es auch nicht (schon probiert). Die oben gemeldete Fehlermeldung kommt bei R16 (die Baugruppe an der das Makro angewendet werden soll ist in R16). Komisch ist, dass in R18 eine andere Fehlermeldung kommt (siehe Anhang). Gruß, Bert 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: 31. Okt. 2012 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Servus Also bei läuft das Makro bei R19 (nicht im Cache-Mode) durch. Ersetze mal den Suchstring durch den einer Aufzeichnung des Makrorekorder (Suche nach Produkten) (vermutlich "'Assembly Design'.Product.all") Gruß Bernd EDIT: AFAIR kannst du statt auf den Design-Mode umzuschalten auch den Default-Mode (siehe hier) verwenden um auf die Partnummer zuzugreifen. ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 31. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tobi1205 Mitglied Konstrukteur
Beiträge: 10 Registriert: 06.09.2018
|
erstellt am: 28. Mai. 2019 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo, auf der Suche nach eine Möglichkeit die gesamte Baugruppe umzubenennen bin ich auf dieses Macro gestoßen. Die umbenennung der Parts funktioniert super. Leider werden die Produkte nicht berücksichtigt. Weiß eventuell jemand von euch ob das umsetzbar ist? Grüße Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tobi1205 Mitglied Konstrukteur
Beiträge: 10 Registriert: 06.09.2018
|
erstellt am: 28. Mai. 2019 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Zitat: Original erstellt von Tobi1205: Hallo, auf der Suche nach eine Möglichkeit die gesamte Baugruppe umzubenennen bin ich auf dieses Macro gestoßen. Die umbenennung der Parts funktioniert super. Leider werden die Produkte nicht berücksichtigt. Weiß eventuell jemand von euch ob das umsetzbar ist?Grüße Tobi
Habs mit dem Makrorecorder rausgefunden. Die Lösung ist wie folgt: 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 "(CATPcsSearch.Product) + (CATAsmSearch.Part),all" For i = 1 To selection1.Count Set productDocument1 = CATIA.ActiveDocument Set product1 = productDocument1.Product Set products1 = product1.Products Set product2 = selection1.Item(i).Value 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 |