Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Verlinkung zwischen Parts aktivieren

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:  Verlinkung zwischen Parts aktivieren (2754 mal gelesen)
joneta
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 04.10.2011

Win XP
CatiaV5R19x64
HD2-Lizenz
VBA6.0V1053

erstellt am: 31. Okt. 2011 16:14    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 ein Produkt mit 3 Parts:
1 Grundmodell von dem die Elemente (Linien, Flächen) in die 2 Arbeitsparts verlinkt sind. Die Konstruktion baut also auf den verlinkten  Linien und Flächen aus Part 1 auf.

Part 1 mit der Konstruktion wird zum Teil über das VBA-Macro erstellt.
Wenn ich nun die weiteren Parts über das Macro öffne erkennt Catia die Verlinkungen nicht mehr richtig (rotes Fragezeichen im Strukturbaum). Da hilft auch kein PartDocument.Update, welches zwar ausgeführt wird aber die Links nicht aktualisiert.

Code:
Dim par2 As PartDocument
Set par2 = d1.Open(qpfad & "PROFIL_WORK.CATPart")
    Set par2 = CATIA.ActiveDocument
    Dim pd2 As Part
    Set pd2 = par2.Part
    pd2.Update

Wie kann die Verlinkung aktiviert werden, bzw. wie erkennt Catia die Zusammengehörigkeit der geöffneten Dateien an?

joneta

------------------
Mit freundlichen Grüßen

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: 31. Okt. 2011 16: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 Nur für joneta 10 Unities + Antwort hilfreich

Servus
Wie hast d die Verlinkung erzeugt? Im Bagruppenkontext? Dann musst du zum aktualisieren die Baugruppe öffnen.

Gruß
Bernd

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

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

joneta
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 04.10.2011

Win XP
CatiaV5R19x64
HD2-Lizenz
VBA6.0V1053

erstellt am: 02. Nov. 2011 11:07    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!

Die Verlinkung erfolgt von Part zu Part (CCP).

In der Zwischenzeit habe ich schon mal folgende Variante probiert, und damit ein neues weiteres Problem:

Code:
product1.ApplyWorkMode DESIGN_MODE     'Die Verlinkung ist aktiv!

UselLine.Copy                ’funktioniert -> Linie in ZWA

Set par1 = CATIA.Documents.Item("Datei")
’open(Datei) funktioniert nicht mehr; aber Zuweisung über .Documents

ziel.Add hb              '## container der selektion hinzufügen -> funktioniert auch!
ziel.PasteSpecial "CATPrtResultWithOutLink"    ’funktioniert nicht;
Copy-Fehler: Selected element(s) not allowed for this operation.

Auch im aktuellen CATIA-Fenster ist der Befehl ausgegraut, da das Part nicht im Edit-Modus ist.
Wie bekomme ich das Part in den Edit-Modus? ODER wie gelange ich innerhalb des Products zum Part?
Code:
Dim par1 As PartDocument
Set par1 = CATIA.Documents.Item("Datei")
par1.Activate
...
Dim ziel As Selection
Set ziel = par1.Selection 'par1
ziel.Clear
zeigt keine Wirkung, die Datei wird nicht zum aktiven Dokument.

joneta

------------------
Mit freundlichen Grüßen

[Diese Nachricht wurde von joneta am 02. Nov. 2011 editiert.]

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: 03. Nov. 2011 00: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 Nur für joneta 10 Unities + Antwort hilfreich

Hallo joneta,

um Dir hier wirklich helfen zu können, wäre der gesamte Code wichtig. Nur so lassen sich Fehler erkennen. Ansonsten ist das ein Raten mit der "Glaskugel".

Also: Für die Probleme "Synchronisieren" und "Copy-Paste" ist mehr Code erforderlich.

Für das Problem "...die Datei wird nicht zum aktiven Dokument." stelle ich mal die Gegenfrage: Woher weißt Du das? Die Aktivierung eines Parts in einer Product-Struktur per Makro kannst Du interaktiv nur in Sonderfällen erkennen. Prüfen kannst Du dies im Makro allerdings schon, z.B. mit "MsgBox CATIA.ActiveDocument.Name".


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

joneta
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 04.10.2011

Win XP
CatiaV5R19x64
HD2-Lizenz
VBA6.0V1053

erstellt am: 03. Nov. 2011 08: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


mehr_code.txt

 
Hallo!

"...die Datei wird nicht zum aktiven Dokument." ist natürlich eine Vermutung:
Laut Watchfenster ist und bleibt das Product das aktive Dokument für CATIA.
Clicke ich mit der rechten Maustaste an die Stelle zum Einfügen ist der Paste-Befehl ausgegraut und
bei Macro-Ausführung erfolgt eine Fehlermeldung "Copy-Error : Einfügen nicht möglich/nicht erlaubt"
Übrigens kann ich die Linie manuell, aus der ZWA, nach doppelclick auf das Part, ordnungsgemäß einfügen.

d.h. entweder muß ich über das Product einen Weg zum Part definieren oder ich muß für die einzelnen Parts die Synchronisierung einschalten.

Mehr Code versuche ich mal anzuhängen...

joneta

------------------
Mit freundlichen Grüßen

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: 04. Nov. 2011 02:09    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 joneta 10 Unities + Antwort hilfreich

Hallo joneta,

o.k., führen wir die Fehlersuche mal weiter:

Dass das Dokument "aktiv" sein muss, um damit zu arbeiten, ist bei der Makro-Abarbeitung ein Trugschluss! Der Weg per Makro ist hier völlig anders als interaktiv. Sorry, aber da war meine Aussage nicht korrekt. (Da bin ich wohl etwas eingerostet!!!)
Bei der Makroabarbeitung ist normalerweise der oberste Knoten des aktiven Fensters das aktive Dokument. Um mit einem Part oder Product irgendwo im Baum zu arbeiten, muss ich dieses nur ansprechen. D.h. ich muss die entsprechenden Operationen nur auf dem entsprechenden Dokument ausführen.

Aber nun wieder zum konkreten Code: Dein Problem liegt aus meiner Sicht in der Deklaration der 2. Selektion. Es gibt pro "Fenster" nur eine Selektion. Daher sollte es wie folgt lauten:

Code:
Set ziel = prod1.Selection
Die doppelte Zuweisung von "Ziel" und das doppelte Bereinigen der Selektion solltest Du natürlich noch korrigieren. Auch bin ich mir nicht sicher, ob Deine Deklarationen stimmen. Ein "Dim hyb3, hyb2, hyb1, hyb As HybridBodies" bedeutet nach meinem Verständnis, dass hyb3, hyb2, hyb1 ohne Typ deklariert sind und nur hyb vom Typ PartBodies ist.


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

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