Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Copy Paste mit Catia Makro C#

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation - Der Schlüssel zur Einsparung von CAD-Lizenzen, eine Pressemitteilung
Autor Thema:  Copy Paste mit Catia Makro C# (182 / mal gelesen)
Flo-p1
Mitglied
Student

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

Beiträge: 2
Registriert: 29.04.2025

erstellt am: 29. Apr. 2025 18: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 kleine C# Anwendung die in Catia einige Flächen verarbeitet. Diese Flächen sortiere ich in ein Geometrisches Set und will diese dann in ein neues CatPart kopieren.

Mit der Referenz und der Aktivierung bei den Copy Paste Funktionen bin ich eigentlich vertraut. Ich bin mir aber unsicher, ob die Copy/ Paste Funktion global über die Parts so funktioniert wie die von Windows zB.

Problem ist, dass er zwar alles im alten Part kopiert, aber sobald ich das neue öffne und darauf referenziere, der Zwischenspeicher der C/P Funktion leer ist.

plyExportSet = Hybrid Body (GeoSet) wo meine Flächen gespeichert sind
Das soll in den neuen Part Body der erstellt wird.
Ich denke das mit der Selection irgendetwas nicht stimmt, leider weiß ich aber nicht genau was.

Mein Code:
private void ExportGeoSetToNewPart(HybridBody plyExportSet)
{
    // Aktuelles Dokument und Part holen
    PartDocument sourceDoc = (PartDocument)CATIA.ActiveDocument;
    sourceDoc.Activate(); // Sehr wichtig für gültiges Copy

    Part sourcePart = sourceDoc.Part;

   
    // Quelle selektieren und kopieren
    Selection sourceSel = sourceDoc.Selection;
    sourceSel.Clear();
    sourceSel.Add(plyExportSet); // HybridBody/GeoSet übergeben!
    sourceSel.Copy();

    //sourceSel.PasteSpecial("CATPrtResultWithOutLink"); ->Test, ob Copy funktioniert

    // Zielpart erzeugen und aktivieren
    Documents docs = CATIA.Documents;
    PartDocument targetDoc = (PartDocument)docs.Add("Part");
    targetDoc.Activate(); // Aktivierung

    // In Ziel einfügen
    Selection targetSel = targetDoc.Selection;
    targetSel.PasteSpecial("CATPrtResultWithOutLink");

    // Part aktualisieren und ggf. speichern
    targetDoc.Part.Update();

}

Ich hoffe ich habe mein Problem klar und verständlich beschrieben.

Ich danke euch schonmal für eure Hilfe und wünsche einen schönen Tag.

Gruß Flo

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: 12056
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 29. Apr. 2025 18:31    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 Flo-p1 10 Unities + Antwort hilfreich

Servus Flo

Versuch mal vor dem PasteSpecial im Zielpart das Part zu selektieren. zB

Code:
targetSel.Add(targetDoc.Part);
Gruß
Bernd

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

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

Flo-p1
Mitglied
Student

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

Beiträge: 2
Registriert: 29.04.2025

erstellt am: 30. Apr. 2025 08: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

Servus Bernd,

es ist so einfach wenn man die Antwort kennt ;D.
Ja klar man muss auch wenn man es manuell macht erstmal das CatPart auswählen.

Ich danke dir vielmals.

Gruß Flo

Hier der vollständige Code (falls jemand den mal braucht):
private void ExportGeoSetToNewPart(HybridBody plyExportSet)
{
    // Aktuelles Dokument und Part holen
    PartDocument sourceDoc = (PartDocument)CATIA.ActiveDocument;
    sourceDoc.Activate(); // Sehr wichtig für gültiges Copy

    Part sourcePart = sourceDoc.Part;

   
    // Quelle selektieren und kopieren
    Selection sourceSel = sourceDoc.Selection;
    sourceSel.Clear();
    sourceSel.Add(plyExportSet); // HybridBody/GeoSet übergeben!
    sourceSel.Copy();

    // Zielpart erzeugen und aktivieren
    Documents docs = CATIA.Documents;
    PartDocument targetDoc = (PartDocument)docs.Add("Part");
    targetDoc.Activate();

    // In Ziel einfügen
    Selection targetSel = targetDoc.Selection;
    targetSel.Add(targetDoc.Part);
    targetSel.PasteSpecial("CATPrtResultWithOutLink");

    // Part aktualisieren und ggf. speichern
    targetDoc.Part.Update();

}

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)2025 CAD.de | Impressum | Datenschutz