Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Versuch eines 'Neu aus' bei bereits geladenem Dokument

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:  Versuch eines 'Neu aus' bei bereits geladenem Dokument (614 mal gelesen)
Toube1994
Mitglied
Konstrukteur Vorrichtungsbau


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

Beiträge: 22
Registriert: 23.01.2018

erstellt am: 15. Jan. 2020 15:04    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 Community,
leider muss ich ein 2. mal kurz hintereinander nach hilfe frage. Da mir gerade eben erst weitergeholfen wurde zu dem Replace Problem habe ich nun folgendes Problem:
Mein Makro erstellt von jedem Kind der Hauptbaugruppe ein "Neu aus" und ersetzt diese. Wenn es sich bei dem Kind um eine Baugruppe handelt soll er die Methode rekursiv aufrufen und soll von den Kindern der Baugruppe ebenfalls ein Neu aus erstellen, an diesem Punkt tritt der oben genannte Fehler auf.
Ich habe bereits versucht die Methode vor dem Replace aufzurufen, der Versuch blieb aber ohne Erfolg.
Könnt ihr mir bitte noch einmal weiterhelfen?

Code:
Sub NewFromAssembly()
    Dim sOriginProductPath As String
        sOriginProductPath = "Pfad"
    Dim oNewRootProductDoc As ProductDocument
       
    Set oNewRootProductDoc = CATIA.Documents.NewFrom(sOriginProductPath) 'Neu aus vom Root Produkt
   
    Call NewFromChilds(oNewRootProductDoc)
End Sub

Private Sub NewFromChilds(ProductDoc As ProductDocument)
    Dim oCurrentProduct As Product
    Dim oNewFromDocPart As PartDocument
    Dim oNewFromDocAssembly As ProductDocument
   
    For Each oCurrentProduct In ProductDoc.Product.Products 'Schleife um alle Items durchzugehen
        If (TypeName(oCurrentProduct.ReferenceProduct.Parent) = "ProductDocument") Then 'Es handelt sich um ein Produkt oder einer Komponente
            If (oCurrentProduct.ReferenceProduct.Parent.Saved) Then  'Das Dokument ist gespeichert -> Neu aus und ersetzen
                Set oNewFromDocAssembly = CATIA.Documents.NewFrom(oCurrentProduct.ReferenceProduct.Parent.FullName)
               
                Set nothing1 = ProductDoc.Product.Products.ReplaceProduct(oCurrentProduct, oNewFromDocAssembly.Product, True)
                Call NewFromChilds(oNewFromDocAssembly)
                oNewFromDocAssembly.Close

            End If
        ElseIf (TypeName(oCurrentProduct.ReferenceProduct.Parent) = "PartDocument") Then 'Es handelt sich um ein Part
            If oCurrentProduct.ReferenceProduct.Parent.Saved Then  'Das Dokument ist gespeichert -> Neu aus und ersetzen
                Set oNewFromDocPart = CATIA.Documents.NewFrom(oCurrentProduct.ReferenceProduct.Parent.FullName)
 
                Set nothing1 = ProductDoc.Product.Products.ReplaceProduct(oCurrentProduct, oNewFromDocPart.Product, True)
                oNewFromDocPart.Close
            End If
        End If
    Next
   
End Sub


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: 15. Jan. 2020 15:16    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 Toube1994 10 Unities + Antwort hilfreich

Servus

Ich kann dein Fehler wieder nicht nachstellen.
Steigt das Makro es bei einem spezielle CATProduct aus?

Gruß
Bernd

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

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

Toube1994
Mitglied
Konstrukteur Vorrichtungsbau


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

Beiträge: 22
Registriert: 23.01.2018

erstellt am: 15. Jan. 2020 15: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


2020-01-1515_22_22-Einstellungen.png

 
Das Makro steigt nach dem ersten Rekursiven aufruf schon aus.
Hab mal einen Screenshot von der Baumstruktur angehängt.

[Diese Nachricht wurde von Toube1994 am 15. Jan. 2020 editiert.]

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