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