Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Umbenennen Products auf allen Ebenen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Umbenennen Products auf allen Ebenen (914 / mal gelesen)
Tweety79
Mitglied
Entwicklung Automotive


Sehen Sie sich das Profil von Tweety79 an!   Senden Sie eine Private Message an Tweety79  Schreiben Sie einen Gästebucheintrag für Tweety79

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 25. Nov. 2016 17:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte in einem PRoduct ALLE darin enthaltenen Products auf ALLEN Ebenen so umbenennen, dass der ursprüngliche Name duch Datum erweitert wird.

Mit meinem Code werden ALLE Products gefunden, in der Schleife auch deren Namen, aber umbenannt wird zum Schluss nur der Name des obersten Products.

Was ist in meinem Code falsch?

Hier mein Code:

        Dim myCatiaApp As INFITF.Application
        Dim myProduct As ProductStructureTypeLib.Product
        Dim myProductDoc As ProductStructureTypeLib.ProductDocument
        Dim myPartNumber As String

        myCatiaApp = GetObject("", "CATIA.Application")
        myProductDoc = myCatiaApp.ActiveDocument
        myProduct = myProductDoc.Product

        myCatiaApp.StartCommand("Expand All Levels")

        myProductDoc.Selection.Search("CATProductSearch.Assembly,all")

        For j = 1 To myProductDoc.Selection.Count()

            myPartNumber = myProductDoc.Product.Products.Item(j).Name

            myProduct = myProductDoc.Selection.Item(j).Value
            myProduct.PartNumber = myPartNumber & "-" & Now.Date()
        Next

End Sub

THX

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 25. Nov. 2016 17:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tweety79 10 Unities + Antwort hilfreich

Servus
Willst du alle CATProducts umbenennen und alle Products? (im CATPart ist auch ein Product enthalten das in ein CATProduct dann eingehängt wird).
Warum machst du eine Schleife über die Selection sprichst dann aber die Products-Collection an?

zB (ungetestet, bzw willst du nun die PartNumber oder den Name anpassen?)

Code:
For j = 1 To myProductDoc.Selection.Count()       
    mySubProduct = myProductDoc.Selection.Item2(j).Value 'ggf noch .ReferenceProduct
    myPartNumber = mySubProduct.myPartNumber
    mySubProduct.PartNumber = myPartNumber & "-" & Now.Date() 'kann das Product auch mehrfach vorkommen?
Next
Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Tweety79
Mitglied
Entwicklung Automotive


Sehen Sie sich das Profil von Tweety79 an!   Senden Sie eine Private Message an Tweety79  Schreiben Sie einen Gästebucheintrag für Tweety79

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 25. Nov. 2016 18:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

danke inzwischen hatte ich es ( wohl mehr durch Zufall ) raus.

Das funktioniert gut mit umbenennen von PartNumber. Ich möchte zusätzlich auch für alle auch Instance Name ändern, weil die Änderung von PartNumber bei mir nur unter Properties nachvollziehbar ist, aber im Baum nicht sichtbar.

Für das Umbenennen von Instance Name habe ich in die Schleife dann eingebaut:
mySubProduct.Name = myPartNumber & "_" & Now.Date()

Die Umbenennung erfolgt, aber nur in der ersten Ebene. Ich erkenne den Unterschied nicht, warum PartNumber für alle geändert wird und Instance Name nur für die erste Ebene, wenn es doch in derselben Schleife passiert.

Danke.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 25. Nov. 2016 19:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tweety79 10 Unities + Antwort hilfreich

Servus
Was hast du selektiert? Die Instanzen oder das Product selbst (bitte mit Watch-Fester prüfen (was ist das Parent?))
Auf catia.cad.de findest du ein Makro zum abgleichen der Instance-Names, schau dir das mal an.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Tweety79
Mitglied
Entwicklung Automotive


Sehen Sie sich das Profil von Tweety79 an!   Senden Sie eine Private Message an Tweety79  Schreiben Sie einen Gästebucheintrag für Tweety79

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 26. Nov. 2016 19:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe es nicht herausgefunden.
Habe schon alles durchprobiert :-(

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 26. Nov. 2016 19:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tweety79 10 Unities + Antwort hilfreich

Servus
Da der Exemplarename ja einzigartig sein muss, musst du IMHO sowieso mit einer Schleife die Products-Collection jedes Products (also CATProduct und Componente) abarbeiten.
ggf kannst du dann auch das von mir verlinkte Makro anpassen dass es die Benennung entsprechend deinen Wünschen anpasst.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz