Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  ReplaceComponent ohne Selection

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:  ReplaceComponent ohne Selection (466 mal gelesen)
Lionel Hutz
Mitglied



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

Beiträge: 363
Registriert: 26.03.2014

CATIA V5 R20

erstellt am: 28. Aug. 2020 08:35    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 möchte das erste Part im ersten Unterprodukt (oOldPart) ersetzen durch ein Part dessen Dateipfad (sNewPArt) bekannt ist.
Ich habe oOldPart sowie das Oberprodukt bereits identifiziert, kriege das ReplaceComponent aber nicht richtig gefüttert.
Was von den Objekten entsprechenden Objekten muss ich verwenden?

Code:
Sub CATMain()
    Dim oDocs As Documents
    Dim oDoc As Document
Dim oProds As Products
Dim oOldPart 'As ?
Dim oOldPartReference As Product '?
Dim oParentProds As Products

    Set oDoc = CATIA.ActiveDocument
    Set oDocs = CATIA.Documents
    Set oProds = oDoc.Product.Products
   
'Pfad der neuen Parts
sNewPart = "D:\temp\PART1.CATPart"

Set oOldPart = oProds.Item(1).Products.Item(1)
Set oOldPartReference = oOldPart.ReferenceProduct

MsgBox oOldPart.Name 'Instanzname des Altteils
MsgBox oOldPartReference.Name ' des Altteils
MsgBox oOldPartReference.Parent.Name 'Dateiname des Altteils
'MsgBox oOldPartReference.Parent.Product.PartNumber

Set oParentProds = oOldPart.Parent.Parent
MsgBox oParentProds.Name 'Instanzname des Oberprodukts
'---------Hier kommt die Fehlermeldung
Set oNewPart = oParentProds.ReplaceComponent(oOldPartReference, sNewPart, False)
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: 28. Aug. 2020 08: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 Lionel Hutz 10 Unities + Antwort hilfreich

Servus

Du bist wohl per Parent eine Stufe zu hoch gegangen.

Code:
Set oOldPart = oProds.Item(1).Products.Item(1)
Set oParentProds = oOldPart.Parent.Parent
Set oNewPart = oParentProds.ReplaceComponent(oOldPartReference, sNewPart, False) 'vermutlich muss es hier die Instanz sein und nicht das ReferenceProduct
Gruß
Bernd

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

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

Lionel Hutz
Mitglied



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

Beiträge: 363
Registriert: 26.03.2014

CATIA V5 R20

erstellt am: 28. Aug. 2020 09: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

Wunderbar. Danke.

Code:
Sub CATMain()
    Dim oDocs As Documents
    Dim oDoc As Document
Dim oProds As Products
Dim oOldPart As Product
Dim oParentProds As Products
Dim sNewPart As String

    Set oDoc = CATIA.ActiveDocument
    Set oDocs = CATIA.Documents
    Set oProds = oDoc.Product.Products
   
'Pfad der neuen Parts
sNewPart = "D:\temp\PART1.CATPart"

Set oOldPart = oProds.Item(1).Products.Item(1)
Set oParentProds = oOldPart.Parent
oParentProds.ReplaceComponent oOldPart, sNewPart, False
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