Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  mehrfach vorhandene Parts werden alle verändert

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:  mehrfach vorhandene Parts werden alle verändert (1736 mal gelesen)
triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 31. Mai. 2008 20: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

Hallo!

ich habe eine Struktur wie unten. wenn ich mehrere identische Parts in in Product lade, und ein Exemplar von dem mehrfach vorkommenden Part in einem Unterproduct liegt, und ich mit beispielsweise mit "child.Definition = "sgfgdg" ein spezielles dieser Parts ändere, werden augenblicklich alle Parts geändert.
Ich kann keine getrennten(unterschiedlichen) Informationen reinscheiben.
Außer bei "child.name" da ändert es nur bei einem Exemplar den Namen, und wen ich das andere Exemplar anspreche, dann ändert es den Namen einfach nicht.
hat jemand eine Erklärung oder gar eine Lösung wie ich identische Parts einzeln "ansprechen" kann?

Gruß Christoph

Public Sub ID_set(ByRef prod)
Dim children
Set children = prod.products
For i = 1 To children.Count
    Set child = children.Item(i)
    child.Definition = "sgfgdg" & count
    child.name = "test_" & count
    child.Revision = "test_rev_" & count
    child.PartNumber = "test2_" & count
    count=count+1
    ID_set(child)
Next
End Function

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

M.Seidler
Mitglied
Dipl. Ing.


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

Beiträge: 600
Registriert: 08.01.2007

ABAQUS CAE 6.7-1
Ansys 12.1
Hyper Works 12

erstellt am: 01. Jun. 2008 08:44    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 triumvirn 10 Unities + Antwort hilfreich

Hallo Christoph,

ich bin zwar kein Programmierer, aber für mich klingt das nach einem Denkfehler .

Es ist logisch, wenn Du einen Vertreter ein und des selben Parts änderst, dass auch alle anderen geändert werden.

Stell Dir vor, Du hast eine Datei (sagen wir Hallo.txt). Zu dieser Datei gibt es verschiedene Verküpfungen (Eigene Dateien, Desktop, Temp). Egal welche der Verknüpfungen Du benutz, die Änderung ist wie nicht anders zu erwarten von allen Links aus einsehbar.

Ich hoffe, dass ich Dein Problem richtig verstanden habe und Dir helfen konnte.

------------------
***********************
Gruß

Der Markus

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 01. Jun. 2008 19: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 Markus!

Ganz so ist es leider nicht. Man kann ja eine Schraube mehrmals in ein Assembly Design einfügen, das heißt ja nicht, dass alle Schrauben die gleiche physische Representanz haben.
Wenn ich beispielsweise manuell in CATIA dem einen gleichen Part den Namen "xyz" und dem zweiten gleichen Part den Namen "abc" zuweise, gibt er mir (z.B. mit msgbox) auch sauber getrennt "xyz" bzw. "abc" aus, also unterscheiden kann er sie prinzipiell schon.
Bloß wenn ich diese Eigenschaften in einem Skript (Defintion, Revision, usw.) ändern will, macht er es entweder nur bei einem oder er macht es für alle.
Es kann doch nicht sein, dass ich bei mehreren Schrauben/Gleichteile keine unterschiedlichen Informationen ablegen kann?!

Gruß Christoph

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

M.Seidler
Mitglied
Dipl. Ing.


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

Beiträge: 600
Registriert: 08.01.2007

ABAQUS CAE 6.7-1
Ansys 12.1
Hyper Works 12

erstellt am: 01. Jun. 2008 19:38    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 triumvirn 10 Unities + Antwort hilfreich

Hallo Christoph,

wenn wir von ein und dem Selben Part sprechen, kannst Du natürlich keine unterschiedlichen Informationen einbringen. Die beiden Instances des Parts hingegen können Unterschiede aufweisen.

Oder habe ich Dich immer noch nicht verstanden?

------------------
***********************
Gruß

Der Markus

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 01. Jun. 2008 19:53    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 triumvirn 10 Unities + Antwort hilfreich

Hallo zusammen,

@M.Seidler:
Du hast recht. Die Eigenschaft Name speichert den Namen der Instanz. Der kann und muss unterschiedlich sein.

Alle anderen Informationen müssen gleich bleiben. Eine Schraube DIN EN ISO 4014 - M6x20 bleibt eine Schraube DIN EN ISO 4014 - M6x20, auch wenn die Instanz anders heißt.

@triumvirn:
Schau dir mal das Beispiel aus der Doku an.

Viele Grüße,

CEROG

<Installationspfad der Doku>\German\online\German\CAAScdBase\CAAScdAutomationHome.htm

------------------
Meine Firma

Wie stelle ich meine Fragen richtig?

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 00: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

Danke!

Ich schau mir sofort mal das Beispiel an.

Zitat:
Die Eigenschaft Name speichert den Namen der Instanz. Der kann und muss unterschiedlich sein.

Und genau das hab ich mir auch gedacht: Abfragen kann ich die Namen auch, sie sind logischerweise auch unterschiedlich, aber ändern kann ich nur eines davon. Beim anderen kann ich zwar child.name="veraendertxyz" aber es tut sich einfach nichts! Und das treibt mich halt in den Wahnsinn, weil ich nicht weiß warum.

Aber schau mer mal, vielleicht bin ich ja nach der Lektüre schlauer!

Gruß Christoph

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 00:44    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 weiß nicht ganz, welches Beispiel du meinst?

ich sehe da nur das: Screenshot

Gruß und gute Nacht Christoph

[Diese Nachricht wurde von triumvirn am 02. Jun. 2008 editiert.]

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 02. Jun. 2008 05: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 triumvirn 10 Unities + Antwort hilfreich

Hallo triumvirn,

Sorry.

Ich meinte dieses Beispiel:

<Pfad zur Doku>\German\online\German\CAAScdPstUseCases\CAAPstAddNewProduct.htm

Viele Grüße,

CEROG

------------------
Meine Firma

Wie stelle ich meine Fragen richtig?

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 08:26    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

Danke für das Beispiel.

Soweit ich das einschätzen kann, mache ich doch eigentlich das gleiche oder was könnte ich anders machen?

So wie ich es denke mache ich mit "Set child = children.Item(i)" doch das gleiche wie im Beispiel mit "Set oChildProduct1 = oRootChildren.AddNewProduct("Child_1_Type")" bloß will ich ja kein neues Product erzeugen, sondern will ein schon vorhandenes bearbeiten("child.name = "test_" & count"  <--> "oChildProduct1.Name = "1st_Child"")
Und genau das funktioniert bei mir ja dann nicht: "child.name = "test_" & count" führt beim zweiten baugleichen Teil zu keiner Änderung des Namens im Assembly obwohl es manuell ja funktioniert.

Gruß Christoph

übergeben wird "prod":
Set doc = CATIA.ActiveDocument
Set prod = doc.Product

rekursiver Aufruf:
Public Sub ID_set(ByRef prod as Product)
Dim children as Product
Set children = prod.products
For i = 1 To children.Count
    Set child = children.Item(i)
    child.Definition = "sgfgdg" & count
    child.name = "test_" & count
    child.Revision = "test_rev_" & count
    child.PartNumber = "test2_" & count
    count=count+1
    ID_set(child)
Next
End Function

[Diese Nachricht wurde von triumvirn am 02. Jun. 2008 editiert.]

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

M.Seidler
Mitglied
Dipl. Ing.


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

Beiträge: 600
Registriert: 08.01.2007

ABAQUS CAE 6.7-1
Ansys 12.1
Hyper Works 12

erstellt am: 02. Jun. 2008 08: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 triumvirn 10 Unities + Antwort hilfreich

Hallo triumvirn,

wie gesagt, ich bin kein Progammierer.
Aber müsste die Zeile "child.name = "test_" & count" nicht "set child.name = "test_" & count" lauten?

------------------
***********************
Gruß

Der Markus

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 02. Jun. 2008 11:33    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 triumvirn 10 Unities + Antwort hilfreich

Hallo triumvirn,

ich habe eben Deine Codezeilen bei mir getestet. Sie funktionieren bei mir ohne Probleme... Allerdings macht ja eigentlich nur

Code:
child.name = "test_" & count

darin einen Sinn. Den Rest kannst Du ja außerhalb definieren, da er ja für alle Instanzen gleich ist.
Hast Du im Baum eigentlich auch die Instanznamen eingeblendet oder nur die PartNumber?

Gruß, Alex

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 20:06    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!

@BigCheese: du hast Recht. nur child.Name macht Sinn, geht bei mir aber trotzdem nicht.
Ich hab das Problem jetzt glaube ich genauer erkannt. Das child.Name Kommando funktioniert unabhängig von Part/Product nur in der ersten Ebene. Unterproducts können zwar über child.Name den Namen ausgeben aber nicht überschrieben werden.

Selbst mit diesem popeligen Aufbau hier benennt CATIA nur die Teile auf der obersten Ebene um. Und ich weiß nicht warum.
Screenshot nach ausführung des Test-Scriptes

Code:
Dim counter As Integer

Dim counter As Integer

Public Sub Catmain()
    Dim doc
    Dim prod As Product
    counter = 0
    Set doc = CATIA.ActiveDocument
    Set prod = doc.Product
    search_and_select prod
End Sub

Sub search_and_select(ByRef prod As Product)
    'Dim children As Products
    Set children = prod.Products
    Dim i
    Dim child As Product
    bo1 = False
    For i = 1 To children.Count
        children.Item(i).Name = counter
        children.Item(i).PartNumber = counter
        counter = counter + 1
        search_and_select children.Item(i)
    Next
End Sub


[Diese Nachricht wurde von triumvirn am 02. Jun. 2008 editiert.]

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 02. Jun. 2008 20: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 triumvirn 10 Unities + Antwort hilfreich

Hallo triumvirn.

in dem Buch von Ziethen zur Makroprogrammierung unter CATIA V5 gibt es ein Beispiel, in dem alle Kindelemente eines Produktes ausgeben werden. Da solltest du mal reinschauen.

Der Grund dafür, daß die unteren Ebenen nicht umbenannt werden ist einfach: Sie gehören nicht zu der Sammlung der Elemente, die du mit cildren.item aufrufst. Für die unteren Ebenen mußt du die Routine rekursiv aufrufen.

Programmier dir doch einfach mal nen Makro, das in einer Schleife alles Namen von children.Item ausgibt.

Viele Grüße,

CEROG 

------------------
Meine Firma

Wie stelle ich meine Fragen richtig?

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 20: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

Hallo CEROG!

das verstehe ich nicht ganz. Mit "search_and_select children.Item(i)" (3. letzte Zeile bei meinem Beispielcode) rufe ich doch die Funktion rekursiv auf?!
Ausgeben kann ichs ja: wenn ichs aber ändern will gehts nicht.

Code:
msgbox child.name
'AUSGABE: "alt"    geht ja wunderbar
child.name="neu"
'Überschreib(versuch)
msgbox child.name
'AUSGABE wieder: "alt"    hätte sich verändern sollen, tut es aber nicht

Sorry dass ich mich immer so Unprogrammiererhaft ausdrücke, mir fehlen einfach die Fachbegriffe. Deswegn versteht man mich manchmal schlecht.

Gruß Christoph

[Diese Nachricht wurde von triumvirn am 02. Jun. 2008 editiert.]

[Diese Nachricht wurde von triumvirn am 02. Jun. 2008 editiert.]

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 02. Jun. 2008 20:43    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 triumvirn 10 Unities + Antwort hilfreich

Mach dir nichts draus, ich stecke in der Programmierung auch nur oberflächlich drin.

Deshalb kann ich dir auch leider nicht weiterhelfen. Sorry.

Viele Grüße,

CEROG

------------------
Meine Firma

Wie stelle ich meine Fragen richtig?

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 02. Jun. 2008 20:46    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

trotzdem danke für deine Bemühungen!

Gruß Christoph

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 02. Jun. 2008 22:53    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 triumvirn 10 Unities + Antwort hilfreich

Hallo triumvirn,

meiner Erfahrung nach muss Deine Zeile so lautet, um die rekursive Schleife auszuführen:

Code:
search_and_select children.Item(i).ReferenceProduct
Zwecks Erklärung schau mal da nach: http://ww3.cad.de/foren/ubb/Forum137/HTML/002726.shtml

Eine andere Möglichkeit ist die Änderung folgender Zeile:
Code:
Set children = CATIA.ActiveDocument.GetItem(prod.PartNumber).Products



mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 03. Jun. 2008 13:43    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 triumvirn 10 Unities + Antwort hilfreich

Hallo nochmal,

ich denke, ich habe Dein Problem nun langsam verstanden 
Dein Code verändert auch in den Unterprodukten die Instanznamen (children.item(i).Name), allerdings nicht die PartNumber. Dies liegt meines Erachtens nach einfach nur an Deinem counter. Sobald search_and_select rekursiv aufgerufen wird, springt der counter erstmal wieder zurück auf '0'. Somit würde die nächste PartNumber den Wert einer bereits vorhandenen annehmen, was aber nich geht, da eben 2 verschiedene Parts/Products nicht die gleiche PartNumber haben können.
Du könntest z.B. den counter einfach mit übergeben, dann tut die ganze Sache.

Ich hoffe, das war einigermaßen verständlich...

Grüße, Alex

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

triumvirn
Mitglied



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

Beiträge: 15
Registriert: 09.01.2008

erstellt am: 03. Jun. 2008 23:32    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 fleißige Helfer! You made my day!!!

@BigCheese: das hatte ich auch schon mal falsch. aber ich hatte den "counter" als globale Variable. Der "Counter" wird schon ordentlich hochgezählt, das hab ich auch nachgeprüft. Aber sicherlich ein guter Hinweis! Vielen Dank für deine Bemühungen!

@Lusilnie: danke vielmals! "search_and_select children.Item(i).ReferenceProduct" hat mir genau weitergeholfen! Jetzt kann ich wirklich alle Namen umbenennen! Irgendwann werd ich hoffentlich auch mal verstehen warum, aber für den Moment bin ich einfach mal damit zufrieden!
Tausend Dank!

So zwecks Doku für die Nachwelt stell ich mal den berichtigten Code nochmal hier rein:

Code:
Dim counter As Integer

Public Sub CATMain()
    Dim doc
    Dim prod As Product
    counter = 0
    Set doc = CATIA.ActiveDocument
    Set prod = doc.Product
    search_and_select prod
End Sub


Sub search_and_select(ByRef prod As Product)
    Dim children As Products
    Set children = prod.Products
    Dim i
    Dim child As Product
    Dim Name1 As String
    bo1 = False
    For i = 1 To children.Count
        Set child = children.Item(i)
        Name1 = counter & "_irgenetwas" ' Exemplarnamen müssen eindeutig sein, deswegen der counter
        child.Name = Name1
        counter = counter + 1
        search_and_select children.Item(i).ReferenceProduct
    Next
End Sub


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