| |
| KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
|
Autor
|
Thema: Copy / Paste in einer Produkt-Part-Struktur (3808 mal gelesen)
|
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 31. Jul. 2007 10:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich probiere nun schon seit Stunden, doch ich bekomme es nicht hin. Ausgangssituation: Produkt (A.CATProduct) |- Part (B.CATPart) |- Part (C.CATPart) Aktiviert ist A.CATProdukt Was ich möchte: Aus dem Part (B.CATPart) einen Körper (Körper.1) kopieren und in Part (C.CATPart) mit Link einfügen. Diesen Körper mit Link wieder kopieren in in Part (B.CATPart) einfügen. Meine Probleme: - Ich kann den Körper (Körper.1) kopieren und im selben Part einfügen. Was ich nicht kann ist Ihn im Part (C.CATPart) einfügen. Wenn jemand das Problem schon mal gelöst hat, dann wäre ich über Hilfe dankbar. Danke Physi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mörchen Ehrenmitglied V.I.P. h.c. CAD-Trainerin (CATIA V5)
Beiträge: 3830 Registriert: 14.03.2007 Release 19 SP2
|
erstellt am: 31. Jul. 2007 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für Physimathi
Hallo Physimathi, ob Einfügen mit Link ( Einfügen spezial)gelingt, hängt davon ab, ob in den Optionen / Infrastruktur die Einstellung "externe Auswhal..."aktiviert ist oder nicht. Falls das aktiv ist, müssen die zu kopierenden Elemente erst veröffentlicht werden (Publish). Ob man den verlinkten Körper verlinkt zurückkopieren kann, weiß ich nicht. Könnte einen Zirkelbezug erzeugen, muss man ausprobieren. Gruß Mörchen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 31. Jul. 2007 11:50 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja, den Körper.1 habe ich so im Part (B.CATPart) veröffentlicht. Dim ProduktDokument As Documents Dim AnyPart As Document Dim AProdukt As Product Dim APart As Part Set ProduktDokument = CATIA.Documents Set AnyPart = ProduktDokument.Item("B.CATPart") Set AProdukt = AnyPart.GetItem("B") Set APart = AnyPart.Part Dim body1 As Body Set body1 = APart.FindObjectByName("Körper.1") Dim refPub As Reference Dim publications As publications Dim publication As publication Set refPub = AProdukt.CreateReferenceFromName("B/!Körper.1") Set publications = AProdukt.publications Set publication = publications.Add("Körper.1") publications.SetDirect "Körper.1", refPub Das klappt schon super. Dann habe ich eine Veröffentlichung, doch weiter klappt es nicht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 31. Jul. 2007 11:57 <-- editieren / zitieren --> Unities abgeben:
Und so dachte ich mir die Selection des Körpers, doch bei "selection.Copy" ist dann eine Fehlermeldung. Dim selection As selection Set selection = AnyPart.selection selection.Clear selection.Add body1 selection.Copy selection.PasteSpecial ("CATPrtResult") Ich vermute, die ist deshalb, weil zwar das Part "B" geladen ist, doch ich nicht in Ihm arbeite. Gruß Physi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 31. Jul. 2007 14:42 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin nun schon einen Schritt weiter. Wenn ich in CATIA das Produkt aktiv habe, dann kann ich in den Part nichts kopieren. So ich aber auf das Part (B.CATPart) - RMT - "Objekt B -> bearbeiten", dann wechsel ich in die Partworkbench und dann kann ich kopieren. Danach klicke ich auf Part (C.CATPart) - RMT - ""Objekt C -> bearbeiten". Dann Einfügen mit Link und fertig. Jetzt bleibt mir die Frage, wie kann man in Automation einzelne Partobjekte aktivieren. Ich kann schon die Workbench ändern: CATIA.StartWorkbench "PrtCfg", doch da legt er mir immer ein neues Part an. Hm, das ist verzwickt, hat jemand eine Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 608 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 02. Aug. 2007 06:24 <-- editieren / zitieren --> Unities abgeben: Nur für Physimathi
Hallo, Versuche das was du ganz oben beschreibst doch mal manuell durchzuführen, das funktioniert ja schon nur, wenn du CATIA "austrickts"; das Problem ist doch ein ganze anderes, wie Mörchen in seiner/ihrer ersten Antwort schon schreibt: Du erzeugst einen Loop, wenn du aus B ein Object in C kopierts (mit Link) und dann von C wieder in B (ebenfalls mit Link). Wer ist den dann die Referenz von wem (auf Part-Ebene)? Wenn "meine" User so was machen bekommen sie eine auf die Finger Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 02. Aug. 2007 09:05 <-- editieren / zitieren --> Unities abgeben:
Hallo TomTom, ja ich verstehe das mit dem Loop. mein Problem ist aber ja ein ganz anderes. Mein Problem ist ja, dass ich nicht kopieren kann, trotz Veröffentlichung. Um das zu verstehen, erstelle dir eine Partstruktur wie im Bild. Dann aktiviere das Produkt und dann versuche mal trotz Veröffentlichung zu kopieren. Das geht klar nicht, da ja das Produkt und nicht das Part aktiv ist. Also geht auch die copy/paste Funktion im Makro nicht. Nun gehe mit der Maus auf Part B + RMT und ObjektB - bearbeiten Das Part B ist nun in Bearbeitung und ich kann kopieren. Nun mache ich das gleiche mit Part C + RMT ... und Part C ist in Bearbeitung und ich kann einfügen. Mein Problem ist, wie kann ich im Makro diese Funktion des "bearbeitens" automatisieren und zwischen Part B und C springen? Der Makrorecorder zeichnet das nicht auf. Wie aktiviere ich aus der Produktebene, das Part wie auf dem Bild dargestellt? Danke für die Hilfe und viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lidef Mitglied
Beiträge: 11 Registriert: 04.07.2007
|
erstellt am: 02. Aug. 2007 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für Physimathi
Hallo Physimathi, es kann sein, dass deine Selektion falsch ist. Die Namensgebung "selection" würde ich lieber meiden, da die Klasse ja schon so heißt. Außerdem gibst du kein Ziel vor. Probiers doch mal so: Dim Selektion As Selection Set Selektion = CATIA.ActiveDocument.Selection Selektion.Clear Selektion.Add body1 selection.Copy Selektion.Clear Selektion.Add C ' Wenn "C" der Name des Zielparts ist. "C" muss der Klasse "Part" sein Selektion.PasteSpecial ("CATPrtResult") Selektion.Clear Vielleicht hilft das dir weiter.
Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Physimathi Mitglied Student
Beiträge: 88 Registriert: 07.09.2005
|
erstellt am: 02. Aug. 2007 15:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke, das mit dem Einfügeziel kann stimmen, doch ich kann es nicht versuchen, da ich ja auf Produktebene bin und überhaupt nicht copy angenommen wird. Die Frage stellt sich mir, wie kann ich wenn ich in der Produktebene bin ein Part in "bearbeiten" setzen, so dass das blaue Auswahlfeld von Produkt A auf Part B wechselt. Erst wenn die blaue Auswahl von A auf B gewechslet ist, bin ich in der Partebene und kann zwischen Part copy / paste zwischen verschiedenen Part durchführen. Ich weis auch nicht wie ich das anders beschreiben soll. Sorry Gruß Physi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 02. Aug. 2007 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für Physimathi
Hallo versuchs mal damit keine Ahnung ob das was bringt habs nur auf die schnelle in der Doku gefunden Zitat: Sub Activate( ) Activates the document. Activating a document means that this document is the one on which the end user is now working on. This document possibly reconfigures the menu bar and toolbars with its own commands if its type is different from the type of the previous active document. The first window in the window collection which contains this document becomes the active one. Example: This example activates the Doc document. Doc.Activate()
Gruß Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lidef Mitglied
Beiträge: 11 Registriert: 04.07.2007
|
erstellt am: 02. Aug. 2007 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für Physimathi
Hallo Physi, also ich kopiere Publikationen von Part zu Part immer während mein Wurzelprodukt aktiviert ist und es klappt (wie in meinem vorherigen Beitrag beschrieben). Ich bekomme auch keine Fehlermeldung bei der Copy-Operation. Wenn es bei dir tatsächlich nicht geht, dann verstehe ich es nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |