Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  umbennen

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
Autor Thema:  umbennen (521 mal gelesen)
silverangel
Mitglied



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

Beiträge: 12
Registriert: 18.11.2009

Catia V5 R18

erstellt am: 09. Dez. 2009 09:15    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

Hei Leute,

möchte gerne über ein Skript den Instancename eines Part ändern.
Auf der 1. Ebene vom Baum kriege ich es auch hin.
Befindet sich das Part auf auf Ebene 2 kannn ich die Instance nicht änder.

Hier mein Codeversuch:

Sub catmain()


Set docc = CATIA.ActiveDocument
Set docp = docc.Product
Set docko = docp.Products.Item(2)

MsgBox docc.Product.Products.Item(2).Products.Item(2).Name
docko.Products.Item(2).Name = "AAAAAAAAAAAAAAAAAAA"
MsgBox docc.Product.Products.Item(2).Products.Item(2).Name


MsgBox docko.Count

End Sub

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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 09. Dez. 2009 09: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 silverangel 10 Unities + Antwort hilfreich

Hallo,

wie sieht dein Product-Struktur aus?

Stichwort zur Lösung lautet Rekursiv.

Passende Beiträge findest du über die Suche.

grüße Dominik

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

silverangel
Mitglied



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

Beiträge: 12
Registriert: 18.11.2009

Catia V5 R18

erstellt am: 09. Dez. 2009 10:10    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

Hei Danke für die schnelle antwort,

die Struktur sieht folgender massen aus ober Produkt und darunter befinden sich jeweil parts, products bzw komponeten, in den komponeten sollen die Partname + Instancenames gleich gesetzt werden.

Habe ich schon gesucht aber leider nichts passendes gefunden.

Für Partname gleich Instancename habe ich folgenden code gefunden greift aber jeweils nur auf die erste ebene.

Sub catmain()
   
    Dim oTopProductDoc As ProductDocument
    Dim oTopProduct As Product
    Dim ItemToRename As Product
    Dim ItemToRenamePartNumber As String
    Dim oDict1 'Dictionary Object
    Dim lNumberOfItems As Long
    Dim i As Integer
   
    On Error Resume Next
   
    Set oTopProductDoc = CATIA.ActiveDocument
    Set oTopProduct = oTopProductDoc.Product 'The top product containing the items to rename
    Set oDict1 = CreateObject("Scripting.Dictionary")
   
    lNumberOfItems = oTopProduct.Products.Count
   
  For i = 1 To lNumberOfItems
  Set ItemToRename = oTopProduct.Products.Item(i)
  ItemToRenamePartNumber = ItemToRename.PartNumber
  'See if the item is already in list, in that case increment the suffix number by 1 before renaming
      If oDict1.Exists(ItemToRenamePartNumber) Then
      oDict1.Item(ItemToRenamePartNumber) = oDict1.Item(ItemToRenamePartNumber) + 1
      Else: oDict1.Add (ItemToRenamePartNumber), "1"
      End If
  'Rename the items instance name like this: Part Number + "." + suffix number
  ItemToRename.Name = ItemToRenamePartNumber & "." & oDict1.Item(ItemToRenamePartNumber)
  Next
 
End Sub

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

silverangel
Mitglied



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

Beiträge: 12
Registriert: 18.11.2009

Catia V5 R18

erstellt am: 09. Dez. 2009 10:12    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

Hei Danke für die schnelle antwort,

die Struktur sieht folgender massen aus ober Produkt und darunter befinden sich jeweil parts, products bzw komponeten, in den komponeten sollen die Partname + Instancenames gleich gesetzt werden.

Habe ich schon gesucht aber leider nichts passendes gefunden.

Für Partname gleich Instancename habe ich folgenden code gefunden greift aber jeweils nur auf die erste ebene.

Sub catmain()
   
    Dim oTopProductDoc As ProductDocument
    Dim oTopProduct As Product
    Dim ItemToRename As Product
    Dim ItemToRenamePartNumber As String
    Dim oDict1 'Dictionary Object
    Dim lNumberOfItems As Long
    Dim i As Integer
   
    On Error Resume Next
   
    Set oTopProductDoc = CATIA.ActiveDocument
    Set oTopProduct = oTopProductDoc.Product 'The top product containing the items to rename
    Set oDict1 = CreateObject("Scripting.Dictionary")
   
    lNumberOfItems = oTopProduct.Products.Count
   
  For i = 1 To lNumberOfItems
  Set ItemToRename = oTopProduct.Products.Item(i)
  ItemToRenamePartNumber = ItemToRename.PartNumber
  'See if the item is already in list, in that case increment the suffix number by 1 before renaming
      If oDict1.Exists(ItemToRenamePartNumber) Then
      oDict1.Item(ItemToRenamePartNumber) = oDict1.Item(ItemToRenamePartNumber) + 1
      Else: oDict1.Add (ItemToRenamePartNumber), "1"
      End If
  'Rename the items instance name like this: Part Number + "." + suffix number
  ItemToRename.Name = ItemToRenamePartNumber & "." & oDict1.Item(ItemToRenamePartNumber)
  Next
 
End Sub

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

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 09. Dez. 2009 10:30    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 silverangel 10 Unities + Antwort hilfreich

Hallo,
was schonmal falsch ist ist, dass du das Programm in der CATMain hast. Du solltest eine eigene Prozedur (Objektorientiert) schreiben, an die das Produkt bzw. die Produktstruktur über eine Variable übergeben wird. Dann musst du das so umschreiben, dass das Programm bei jeder Komponente prüft, ob es sich um A (ein Produkt) oder B (ein Part) handelt. Bei einem Part soll es dann den Namen ändern und bei einem Produkt soll es den Namen ändern, die Produktstruktur in eine Variable lesen, das Programm in sich selbst (rekursiv) neu öffnen und dabei die Produktstruktur über die Variable übergeben. So wird das Programm für jede Stufe in sich neu geöffnet.

Ich hoffe es verständlich erklärt zu haben. 

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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)2025 CAD.de | Impressum | Datenschutz