Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Umbenennen von Parts

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 von Parts (2853 mal gelesen)
Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 27. Mai. 2010 12: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

Hallo

ich habe ein Makro wo die Namen der Parts (Instancename und Part Number) und der Produkte umgeschrieben werden. Beispiel:
aaa_ET001
aaa_ET002

Bei Suchen und Ersetzen gebe ich aaa_ an und kann z.B bbb_ dadurch ersetzen. Ergebnis:
bbb_ET001
bbb_ET002

Das funktioniert auch einwandfrei.

Habe ich aber diese Konstellation:
aaa_ET001
bbb_ET001

und ersetze die aaa_ in z.B. ccc_
bricht das Makro ab, da das Makro aaa_ET001 schon umgeschrieben ist in ccc_ET001 und das zweite Part kann nicht umgeschrieben werden in ccc_ET001 da es ja mittlerweile existiert.

Ich würde gerne diesen Fehler abfangen mit einer msgbox wo darauf verwiesen wird das dieses Part nicht unbenannt werden kann, da schon ein Part existiert mit dem gleichen Namen.
Ich bin nicht wirklich der Makroguru und habe auch schon in diesem Forum geschaut, aber leider nichts in dieser Richtung gefunden.
Für eure Hilfe bedanke ich mich schon im voraus.

------------------
Struppi

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

MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


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

Beiträge: 454
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 27. Mai. 2010 14:59    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 Struppi0909 10 Unities + Antwort hilfreich

Hallo,

eine Möglichkeit wäre z.B. nach dem "neuen" Namen zu suchen bevor Du die Instanzen umbenennst. Falls Du da einen Treffer hast, kannst Du eine Input-Box aufscheinen lassen, indem Du den Namen vorblendest und dem Anwender damit die Möglichkeit lässt selbst einen neuen Namen zu vergeben. Entweder den Kompletten Namen oder nur den Prefix. Das liegt dann bei Dir.
Allerdings mußt Du dann natürlich noch einmal prüfen ob der eingegebene Name schon in der Baugruppe existiert.

------------------
Gruß Michael B.

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 27. Mai. 2010 16:37    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

Hi Michael

die Antwort hört sich sehr gut an, nur habe ich nicht das Wissen das zu realisieren, da ich noch in den "Makrokinderschuhen" stecke und mir das alles selbst beibringe bzw. in Fachliteratur nachlese oder hier mich kundig mache.

Gruß

------------------
Struppi

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

EngineeredByRobberts
Mitglied
Ingenieur


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

Beiträge: 109
Registriert: 27.04.2010

Dell Precision 690
Windows XP
V5R19SP3 V5R17SP0

erstellt am: 27. Mai. 2010 16:54    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 Struppi0909 10 Unities + Antwort hilfreich

Quick & Dirty gehts es so:

On Error Resume Next
**Hier Umbenennen***
If Err.Number <> 0 Then
  MsgBox "Dein Text"
End iF

------------------
- Robert

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 27. Mai. 2010 18:29    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 stelle hier mal das Makro rein, da ich nicht weiß, wie ich das machen soll und wo ich diesen Befehl eintragen soll.


Option Explicit

Private Sub cmdUmwandeln_Click()
   
   
    If (txtzuersetzenderString.Text = "") Then
        lblBeschreibung.ForeColor = vbBlue
        lblBeschreibung.Caption = "Bitte geben Sie den zu ersetzenden String ein!"
        Exit Sub
    End If
   
    If (txtzuschreibenderString.Text = "") Then
        lblBeschreibung.ForeColor = vbBlue
        lblBeschreibung.Caption = "Bitte geben Sie den zu schreibenden String ein!"
        Exit Sub
    End If
   
    If (CATIA.Documents.Count = 0) Then
        lblBeschreibung.Caption = "Umwandlung beendet!"
        Exit Sub
    End If
   
    lblBeschreibung.ForeColor = vbBlack
    lblBeschreibung.Caption = "Bitte warten - Umwandlung wird ausgeführt..."
   
    Dim Teilename_alt As String
    Dim Teilename_neu As String
   
    If TypeOf CATIA.ActiveDocument Is ProductDocument Then
        Teilename_alt = CATIA.ActiveDocument.Product.Name
        Teilename_neu = Replace(Teilename_alt, txtzuersetzenderString, txtzuschreibenderString)
        If Teilename_alt <> Teilename_neu Then CATIA.ActiveDocument.Product.PartNumber = Teilename_neu
    Else
        lblBeschreibung.Caption = "Dieses Programm sucht nach einem String in der" & Chr(13) _
        & "Aufbaustruktur des aktuell geöffneten Produktes" & Chr(13) _
        & "und ersetzt ihn durch einen Neuen."
   
        lblBeschreibung.ForeColor = vbRed
        MsgBox ("Das Makro funktioniert nur bei CATProducts!")
   
        cmdUmwandeln.Enabled = True
        cmdSchliessen.Enabled = True
        frmHauptformular.Repaint
        Exit Sub
    End If
   
    Call umbenennen(CATIA.ActiveDocument.Product)
   
    lblBeschreibung.Caption = "Umwandlung beendet!"
    lblBeschreibung.ForeColor = vbBlue

    frmHauptformular.Repaint
   
    cmdUmwandeln.Enabled = True
    cmdSchliessen.Enabled = True
    frmHauptformular.Repaint
    Exit Sub
   
Errorhandler:
    MsgBox ("Ein Fehler ist aufgetreten - Makroabbruch!")
    frmHauptformular.Repaint
   
    cmdUmwandeln.Enabled = True
    cmdSchliessen.Enabled = True
    frmHauptformular.Repaint
   
End Sub

Private Sub cmdSchliessen_Click()
    End
End Sub


Private Sub lblBeschreibung_Click()

End Sub

Private Sub UserForm_Activate()
    lblBeschreibung.Caption = "Dieses Programm sucht nach einem String in der" & Chr(13) _
    & "Aufbaustruktur des aktuell geöffneten Produktes" & Chr(13) _
    & "und ersetzt ihn durch einen Neuen."
   
    lblBeschreibung.ForeColor = vbRed
    frmHauptformular.Repaint
End Sub

Function umbenennen(Produktname)

    Dim myDocuments As Documents
    Dim Teilename_alt As String
    Dim Teilename_neu As String
    Dim Exemplarname_alt As String
    Dim Exemplarname_neu As String
    Dim i As Long
   
    For i = 1 To Produktname.Products.Count
       
       
        Teilename_alt = Produktname.Products.Item(i).PartNumber
        Teilename_neu = Replace(Teilename_alt, txtzuersetzenderString, txtzuschreibenderString)
        Exemplarname_alt = Produktname.Products.Item(i).Name
        Exemplarname_neu = Replace(Exemplarname_alt, txtzuersetzenderString, txtzuschreibenderString)
        If Teilename_alt <> Teilename_neu Then Produktname.Products.Item(i).PartNumber = Teilename_neu
        If Exemplarname_alt <> Exemplarname_neu Then Produktname.Products.Item(i).Name = Exemplarname_neu

        'R E K U R S I O N
        If TypeName(Produktname.Products.Item(i)) = "Product" Then
         
            Call umbenennen(Produktname.Products.Item(i).ReferenceProduct)
        End If
       
    Next
End Function


Gruß

------------------
Struppi

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

EngineeredByRobberts
Mitglied
Ingenieur


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

Beiträge: 109
Registriert: 27.04.2010

Dell Precision 690
Windows XP
V5R19SP3 V5R17SP0

erstellt am: 27. Mai. 2010 19:48    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 Struppi0909 10 Unities + Antwort hilfreich

Überall dort wo du Partnumber oder Instancename änderst, also auch ruhig mehrfach
ist aber, wie gesagt, quick & dirty

------------------
- Robert

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 11. Jun. 2010 10:00    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 Robert,

danke für deine Unterstützung, leider wird bei deinem Befehl das Makro abgebrochen und ich weiß immer noch nicht als Benutzer woran der Fehler lag. Ich hätte gerne eine Lösung indem ein MsgBox aufgeht und dem Benutzer sagt: Teil kann nicht unbenannt werden da es schon existiert.Und dann müßte für den Benutzer die Partnumber bzw Instancename angezeigt bekommen woran es gescheitert ist. So in etwa habe ich mir das vorgestellt

------------------
Gruß
Struppi

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

EngineeredByRobberts
Mitglied
Ingenieur


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

Beiträge: 109
Registriert: 27.04.2010

Dell Precision 690
Windows XP
V5R19SP3 V5R17SP0

erstellt am: 11. Jun. 2010 11: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 Nur für Struppi0909 10 Unities + Antwort hilfreich


NameCheck2.zip

 
'On Error Resume Next' sollte eigentlich den Abbruch verhindern?
Ich habe mal ein Beispiel beigefügt (CATScript), allerdings mit ein Textfile als Ausgabe anstatt von ein Messagebox

------------------
- Robert

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 14. Jun. 2010 12: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

Hi Robert

dein Script ist OK. Nur leider prüft dein Script über den Dateinamen die Part Number bzw.den Instancename und gleicht in mit dem Dateiname ab.
Die Part Number bzw.den Instancename werden abgeglichen und notfalls ersetzt und als text-File heraus geschrieben. Das ist auch OK.

Nach deinem script haben die Dateien dieses Format(Soweit OK)

Beispiel:

Dateiname/ Part Number/ Instancename
aaa_ET001/aaa_ET001/aaa_ET001
bbb_ET001/bbb_ET001/bbb_ET001

Wenn ich aber jetzt mein script darüber laufen lasse, das die Part Number verändert bekomme ich weiterhin eine Fehlermeldung.
Beispiel: aus aaa wird bbb


Dateiname/Part Number/ Instancename
aaa_ET001/aaa_ET001(bbb_ET001)/aaa_ET001        <---Fehlermeldung da die Part Number schon existiert, (kann nicht umbenannt werden)
bbb_ET001/bbb_ET001/bbb_ET001

Ich hätte jetzt für mein Script eine msgbox die aufgeht und sagt
"aaa_ET001 kann nicht in bbb_ET001 umbenannt werden da sie schon existiert."
Mir würde es schon reichen wenn das script mir im Strukturbaum zeigt welches Bauteil es nicht umbenennen kann.

Im Moment hält das Script an und ich weiß nicht welches Bauteil den Fehler verursacht!!!

Bei mir existieren ca 150 Bauteile, mit diversen Unterprodukten. Wenn das Script abbricht, muß ich im Moment alles händisch durchsuchen, welche Part Number den Fehler verursacht hat.

Ich stelle das Script "suchen und ersetzen" einmal rein:


Sub traverse(Prod, origstr, newstr)
  set refp = Prod.ReferenceProduct
  if instr(refp.Name, origstr) then
    newpname = Replace(refp.Name, origstr, newstr)
    refp.Name = newpname                                      <----------- hier entsteht immer die Fehlermeldung
  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!!! ", "Suche und Ersetze (Suche)")
  newstr = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")

  traverse actProd, origstr, newstr

End Sub


Wie gesagt mir würde es schon reichen wenn im Strukturbaum das Part "leuchten" würde das nicht umbenannt werden konnte!!!!

Ich hoffe ich habe mein Problem soweit ich konnte richtig erklärt.

------------------
Gruß
Struppi

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 14. Jun. 2010 12:40    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 Struppi0909 10 Unities + Antwort hilfreich

Hallo Struppi,

du kannst ja bei einem Fehler das entsprechende Part in einer Selection reinhauen und ein center graph draufmachen. Ich gebe sowas auch gern in einer listbox aus und schreibe die Fehlerhaften Producte in ein Array dan kannst du alle fehlerhaften elemente Auflisten und Click im Listeneintrag das passende Product abrufen musst das Array bloss Global Dimen. Der Möglichkeiten gibts da viele.
z.B.

Function traverse(Prod, origstr, newstr)
Dim MyDocument As Document
Dim MySelection As Selection

Set MyDocument = CATIA.ActiveDocument
Set MySelection = MyDocument.Selection

On Error GoTo Errorhandler
  Set refp = Prod.ReferenceProduct
  If InStr(refp.Name, origstr) Then
    newpname = Replace(refp.Name, origstr, newstr)
    refp.Name = newpname                                      '<----------- hier entsteht immer die Fehlermeldung
  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
 
Errorhandler:
MySelection.Clear
MySelection.Add Prod
CATIA.StartCommand "Center graph"
End

End Function

Sub CATMain()
  Set actProd = CATIA.ActiveDocument.Product
  origstr = InputBox("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Suche und Ersetze (Suche)")
  newstr = InputBox("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")

  traverse actProd, origstr, newstr

End Sub

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 14. Jun. 2010 13:40    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

Hi roccat

danke für deine Hilfe, aber ich kann das mit meinen Programmierkenntnissen leider nicht verwirklichen.
Desweitern habe ich ein *.catscript und leider nicht ein *catvba.
Das Makro  bricht bei "On Error GoTo Errorhandler" ab!!!
Kopiere ich dein Script in ein *.catvba, dann läuft es zwar aber es wird nichts umbenannt (Das wäre ein gutes Ergebnis) und mein oberstes Prudukt "leuchtet" auf, wenn man  das so sagen kann, aber deswegen sehe ich immer noch nicht welches Part den Fehler verursacht. Sorry!!!

------------------
Gruß
Struppi

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 14. Jun. 2010 14:13    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 Struppi0909 10 Unities + Antwort hilfreich

Sry Catscript, das hab ich nicht gesehen.
bei der Error abfrage kannst du dann reinschreiben was du willst, das "exit function" kannst du auch weglassen dann überspringt er den Fehler und arbeitet alles weitere ab. Dann wäre es aber sinnvoll alle Fehlerhaften Dokumente zum Schluss aufzulisten.

dann versuchs mal so:

Function traverse(Prod, origstr, newstr)

Set MyDocument = CATIA.ActiveDocument
Set MySelection = MyDocument.Selection

Err.Clear
On Error Resume Next
  Set refp = Prod.ReferenceProduct
  If InStr(refp.Name, origstr) Then
    newpname = Replace(refp.Name, origstr, newstr)
    refp.Name = newpname                                      '<----------- hier entsteht immer die Fehlermeldung
  End If
  If InStr(refp.PartNumber, origstr) Then
    newpnum = Replace(refp.PartNumber, origstr, newstr)
    refp.PartNumber = newpnum
  End If
  If Err.Number <> 0 Then
    MsgBox "Fehler bei : " & Prod.PartNumber & "  [" & Prod.Name & "]", vbOKOnly, "Fehler"
    MySelection.Clear
    MySelection.Add Prod
    CATIA.StartCommand "Center graph"
    Exit Function
  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
 
On Error GoTo 0

End Function

Sub CATMain()
  Set actProd = CATIA.ActiveDocument.Product
  origstr = InputBox("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Suche und Ersetze (Suche)")
  newstr = InputBox("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")

  traverse actProd, origstr, newstr

End Sub

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

Struppi0909
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 27.05.2010

Win XP Pro SP3
P4; 2,40GHz; 4GB
GeForce 9800GT;512MB
CatiaV5R19SP3

erstellt am: 14. Jun. 2010 16:03    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 roccat

Das ist das was ich gesucht bzw. gebraucht habe.
Jetzt sehe ich im Baum ein Part "leuchten" + Text und ich weiß das dort der Fehler versteckt ist.
Dankeschön an alle die mir geholfen habe, besonders roccat.Danke.

------------------
Gruß
Struppi

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