| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung
|
Autor
|
Thema: CAA: CATICutAndPastable (1749 mal gelesen)
|
weissda Mitglied ingenieur

 Beiträge: 48 Registriert: 04.08.2006
|
erstellt am: 23. Nov. 2006 11:08 <-- editieren / zitieren --> Unities abgeben:         
Hi Wie kann ich auf ein kopiertes Objekt zugreifen? Ich paste ein Objekt (listObjectsToCopy enthält das zu kopierende feature) mit folgendem Befehl: CATICutAndPastable_var spEndCAPOnPrtCont(spPrtCont); CATLISTV(CATBaseUnknown_var) spFinalObject = spEndCAPOnPrtCont->Paste(listObjectsToCopy,&listTargets,NULL); Wie kann ich nun auf das NEUE, kopierte Objekt zugreifen?? spFinalObject ist ja nur der Pfad des ZU KOPIERENDEN objektes... Ich hätte gerne sowas wie: CATISpecObject_var copiedObject=...? Hoffe mein Problem ist rübergekommen ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dr Mitglied CAD-/PLM-Entwickler und -Berater

 Beiträge: 87 Registriert: 30.10.2001
|
erstellt am: 27. Nov. 2006 12:23 <-- editieren / zitieren --> Unities abgeben:          Nur für weissda
Moin, Ich habe mit dem CATICutAndPastable interface bisher nicht gearbeitet. Aber die Dokumentation sieht für mich so aus, dass die Kopien in der Liste iToCurObjects (zweiter Parameter) landen. Kannst ja mal prüfen, ob die Liste, die Du da angibst, durch die Operation größer wird. Sollte dann kein Problem sein, auf die Objekte zuzugreifen. Aber Achtung: Am Anfang der Interface-Beschreibung steht ja auch, dass lediglich Links erzeugt werden und keine echten Kopien. Kann wichtig sein, falls Du die Kopie verändern möchtest, das Original aber nicht...
------------------ -- Danny Reinhold Reinhold Software Services Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
weissda Mitglied ingenieur

 Beiträge: 48 Registriert: 04.08.2006
|
erstellt am: 27. Nov. 2006 15:59 <-- editieren / zitieren --> Unities abgeben:         
Hi Danny Danke für deine Antwort. Ja, jetzt wo du's erwähnst scheint das ganz einleuchtend *g* Allerdings ändert sich die Grösse der Liste nicht: vor dem paste enthält sie das zu kopierende Objekt aber es könnte sein, dass dieses dann durch das neue ersetzt wird...? Wie bring ich denn eine CATPathElement Variable dazu, mir den Pfad als Text auszugeben (CATIAlias) kann ich nicht anhängen. Dann könnte ich das Ganze mal überprüfen. Hier mal der ganze Code-Part, der zum paste gehört: // Create a path element containing the feature to be copied and its father CATICutAndPastable_var spStartCAPOnPrtCont(spPrtCont); CATLISTV(CATBaseUnknown_var) listTargets; CATPathElement *pathTarget = new CATPathElement(oProtoFeat); pathTarget->AddFatherElement (spPrtCont->GetPart()); // Append the path element to the list listTargets.Append(pathTarget); pathTarget->Release(); // Append the feature to be copied to a list CATLISTV(CATBaseUnknown_var) listObjectsToCopy; listObjectsToCopy.Append(oProtoFeat); CATICutAndPastable_var spEndCAPOnPrtCont(spPrtCont); // Paste the feature to the parent/target CATLISTV(CATBaseUnknown_var) spFinalObject = spEndCAPOnPrtCont->Paste(listObjectsToCopy,&listTargets,NULL); Greets, Daniel. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dr Mitglied CAD-/PLM-Entwickler und -Berater

 Beiträge: 87 Registriert: 30.10.2001
|
erstellt am: 28. Nov. 2006 09:35 <-- editieren / zitieren --> Unities abgeben:          Nur für weissda
Zitat: Original erstellt von weissda: [B]Allerdings ändert sich die Grösse der Liste nicht: vor dem paste enthält sie das zu kopierende Objekt aber es könnte sein, dass dieses dann durch das neue ersetzt wird...?... // Append the path element to the list listTargets.Append(pathTarget);
Wozu soll das gut sein? Ich würde es so probieren: - In die erste Liste kommt das zu kopierende Objekt. - Die zweite Liste bleibt leer - Die Funktion aufrufen - Dann mal prüfen, was sich in der zweiten Liste befindet.
------------------ -- Danny Reinhold Reinhold Software Services Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
weissda Mitglied ingenieur

 Beiträge: 48 Registriert: 04.08.2006
|
erstellt am: 28. Nov. 2006 10:00 <-- editieren / zitieren --> Unities abgeben:         
Hi Danny Ich habe auch nicht rausgefunden wozu das nötig ist (ev. um den Vater des zu kopierenden Objektes festzulegen...eben: z.B. im Pfad würde dann das zu kopierende durch das kopierte Objekt ersetzt...). Auf jeden Fall bleibt die Liste auch nach dem Aufruf leer. Ich habe die Code-Teile aus dem UseCase: C:\...\B16\CAADoc\CAAPartInterfaces.edu\CAAPriCutCopyPasteMain.m\src kopiert. Auch wenn ich das neue Objekt als CATPathElement bekäme: wie könnte ich dieses denn schlussendlich wieder als CATISpecObject editieren? Greets und danke, Daniel. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |