Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Probleme beim Umbennen von untergeordneten Products

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:  Probleme beim Umbennen von untergeordneten Products (1242 mal gelesen)
BentelerBoy2
Mitglied
Ingenieur Maschinenbau

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

Beiträge: 7
Registriert: 12.10.2006

erstellt am: 12. Okt. 2006 19:24    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 zusammen,

ich schreibe zur Zeit meine Diplomarbeit. Dafür erstelle ich ein Startmodell für unsere CAD-Konstruktion. Das ganze wird über Parameter aus einer Exceltabelle gesteuert, was auch wunderbar funktioniert.

Das Vorgehen dabei ist so, dass ich ein Startmodell habe, dass ich über die Tabelle entsprechend einstelle, das speichere ich dann und erzeuge mit "Neu aus" eine neu Version davon.

Das ist mein erstes Problem, das "Neu aus" würde ich gerne von einem Makro ausführen lassen, aber da schein es keine Möglichkeit zu geben alle in der Haupzbaugruppe enthaltenen Products und Parts mitzunehmen, oder? Wenn ich das einezln mache funktioniert gar nichts mehr. Wenn ich nur die Parts mit "Neu aus" erzeuge und den Baum dann vom Macro neu zusammenbauen lasse gehen mit alle Veröffentlichungen verloren, das geht also auch nicht. Wenn einer doch eine Lösung hat bitte melden.

Mein zweites Problem sieht ähnlich aus. Nachdem ich das "Neu aus" manuell durchgeführt habe passen zwar die Dateinamen, aber die PartNumbers und Namen sind noch die vom alten Startmodell. Jetzt brauche ich ein Maktro, mit dem ich alle untergeordneten Parts und Producte umbennen kann. Ich kann aber nur auf die erste Ebene im Baum zugreifen, ich schätze ich hab da irgendwo einen Denkfehler:

Language = "CATScript"

Dim oDoc As Document
Set oDoc = CATIA.ActiveDocument

Dim oProduct As Product
Set oProduct = oDoc.Product

Dim oProducts As Products
Set oProducts = oProduct.Products

Dim oProduct_Ebene1 As Product
Set oProduct_Ebene1 = oProducts.Item(1)

Dim oProducts_Ebene1 As Products
Set oProducts_Ebene1 = oProduct_Ebene1.Products

Dim oProduct_Ebene2 As Product
Set oProduct_Ebene2 = oProducts_Ebene1.Item(1)

oProduct_Ebene2.PartNumber = "xxxxx"

Der Baum solle hier z.B. so aussehen:

Product
  |__Product
        |___Part

Dummerweise kriege ich aber schon bei der letzten Item-Anweisung eine Fehlermeldung und das Programm bricht ab. Wenn ich hier jedes Product einzeln öffne und nur die erste Ebene umbennen funktionieren wieder die Veröffentlichungen nicht mehr, das Umbennen geht aber.

Ich brauche dringen Hilfe, also wenn jemand was weiß bitte melden, schon mal danke, bis denn

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: 12. Okt. 2006 21:22    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 BentelerBoy2 10 Unities + Antwort hilfreich

Hallo BentelerBoy2,

bei Deinem ersten Problem kann ich Dir nicht helfen, damit habe ich mich noch nicht beschäftigt.
Dein zweites Problem wurde hier schon oft angesprochen, doch wirst Du hier kaum eine fertige Lösung finden, da dies in die Kategorie "Wettbewerbsvorteil von Unternehmen" fällt und keiner seinen Job oder seine Bezahlung aufs Spiel setzen wird.
Also auch hier nur Hilfestellungen. Dein "Denkfehler" besteht einfach darin, daß Du die "Ebene" "Instanzen" ignorierst.Die "Products" unter dem "Hauptprodukt" sind "Instanzen", unter denen liegt dann das jeweilige Produkt, unter dem die Instanz vom Part und unter der das Part selbst. Die Instanzen sind jeweils auch vom Typ "Product"!
Alles klar? Du kannst auch die "Suche" bemühen, da findest Du einige Beiträge zum Thema "Umbenennen"!


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

BentelerBoy2
Mitglied
Ingenieur Maschinenbau

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

Beiträge: 7
Registriert: 12.10.2006

erstellt am: 16. Okt. 2006 07:19    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 zusammen,
erst mal danke für die schnelle Hilfe, ich habs mittlerweile hinbekommen, wenn auch anders als du geschrieben hast. Bleibt noch das Problem mit dem neu aus, wenn da noch jemand hilfe weis bitte melden.

mfg

Jan

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 17. Okt. 2006 05:58    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 BentelerBoy2 10 Unities + Antwort hilfreich

Hallo,

Neu aus von Strukturen geht per Script nicht.
Ist aber auch gar nicht notwendig.
Wenn du deine Startmodell-Struktur öffnest und rekursiv alle Modelle unter einem neuen FileName/Path abspeicherst bekommst du genau das selbe Ergebnis. Funktioniert einwandfrei.

Gruss
TomTom

------------------
tomtom1972

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

BentelerBoy2
Mitglied
Ingenieur Maschinenbau

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

Beiträge: 7
Registriert: 12.10.2006

erstellt am: 17. Okt. 2006 12:02    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 tomtom,
ich hab vorhin mit meinem Chef gesprochen, der meine auch es würde reichen die Dateien unter einem neuen Namen abzuspeichern. Man kann dann halt auf Grund der UUID nur nicht zwei Projekte gleichzeitig geöffnet haben die aus dem Startmodell erzeugt wurden.

Mir ist nicht hanz klar, was du mit rekursiv meinst. Ich meine ich weiß was rekursiv heißt (Selbstaufruf einer Funktion oder Prozedur), aber wie soll ich das hier anwenden?

Könnte das eventuelle so funktionieren:

  CATIA.ActiveDocument.SaveAs (Dateiname)
   For i=2 To CatDocs.Count Step 1
    Set MainDoc = CatDocs.Item(i)
    MainDoc.SaveAS (Dateiname)
  Next

Wobei ich den Dateinamen aus dem Exemplarnamen auslesen würde.

Jan

[Diese Nachricht wurde von BentelerBoy2 am 17. Okt. 2006 editiert.]

[Diese Nachricht wurde von BentelerBoy2 am 17. Okt. 2006 editiert.]

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 18. Okt. 2006 08: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 Nur für BentelerBoy2 10 Unities + Antwort hilfreich

Hallo,

Ich würde den Strukturbaum durchlaufen und nicht die Dokumente. Über die Instanzen kommst du an das jeweilige zugehörige Dokument zum speichern. Bei mir ist immer der FileName massgeblich und der InstanceName und PartNumber werden nachgezogen. Reihenfolge also:
Speichern des zugehörigen Dokuments. Umbenennen der PartNumber. Diesen beiden Schritte sind bei instantierten Modellen (mehrfachverbaut) nur einmal notwendig. Dann IstanceName ändern, pro Instance.

Grundsätzlich ist Vorsicht geboten, wenn du MMLs in der Struktur hast:
* CATIA Bug bei Publikationen (gibts einen Treat von mir hier im Forum)
* Reihenfolge beim speichern, d.h. ein Part, welches die Referenzen für ein anderes stellt muss zu erst gespeichert werden, da sonst die "alte" Struktur (bzw. dort der Kontext der MMLs) kaputt gehen. Auch dazu gibts hier im Forum schon Beiträge.

Rekursiv ist auf deinen Anwendungsfall bezogen (primitiv Bsp.) folgendes:


Sub Main()
  Set oRoot = oCatia.ActiveDocument
  Set oProd = oRoot.Product
  Set oProducts = oRoot.Product.Products

  SUB_ProdScan oProducts
End Sub


Sub SUB_ProdScan(oProducts)
  For i = 1 To oProducts.Count
      If oProducts.Item(i).Products.Count = 0 Then
        ‘Save
        'PartNumber & InstanceName umbenennen
      Else
        Set oProductsUebergabe = oProducts.Item(i).Products
        SUB_ProdScan oProductsUebergabe
      End If
  Next
End Sub

End Sub

Gruss TomTom

------------------
tomtom1972

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

BentelerBoy2
Mitglied
Ingenieur Maschinenbau

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

Beiträge: 7
Registriert: 12.10.2006

erstellt am: 25. Okt. 2006 15: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


Meldung.JPG

 
Hallo TomTom,
danke für den heissen Tip, ich habs jetzt auch hinbekommen. Einen Fehler hattest allerdings drinn, die Products, die noch weitere untergeordnete Products oder Parts enthalten werden nicht gespeichert. Das war aber kein Problem, nach dem Rücksprung aus der Rekursion speichere ich einfach das übergeordnete Product,

Was mich jetzt nur noch nervt sind die ca. 50 Hinweise beim speichern (Meldung siehe Anhang). Ansonsten funktioniert alles, wenn noch jemand eine Idee hat immer raus damit.

Bis denne

Jan

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 25. Okt. 2006 15: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 BentelerBoy2 10 Unities + Antwort hilfreich

Hi BentelerBoy2,

mit
    ' Warnungen ausschalten
    CATIA.DisplayFileAlerts = False
     
      ...
      Dein Code
      ...

    ' wichtig Alarm wieder einschalten
    ' es werden solange keine Warnungen mehr angezeigt bis diese
    ' Eigenschaft wieder auf TRUE gesetzt wird
    ' auch nicht nach dem Beenden von CATIA
      CATIA.DisplayFileAlerts = True


sollten die Meldungen nicht mehr erscheinen.

Gruß
Proofin

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

BentelerBoy2
Mitglied
Ingenieur Maschinenbau

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

Beiträge: 7
Registriert: 12.10.2006

erstellt am: 31. Okt. 2006 13: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

Danke Profin, jetzt funktioniert alles wunderbar.

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