Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Copy/Paste

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:  Copy/Paste (2601 mal gelesen)
Erich
Mitglied
Senior Consultant selbstständig


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

Beiträge: 198
Registriert: 03.10.2000

i7-9850H
RAM 32,0 GB
Nvidia Quadro T2000
Windows 7 Professional 64Bit

erstellt am: 27. Aug. 2006 21:41    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 zusammen
in der Meinung Copy und Paste soweit verstanden zu haben, habe ich folgendes Script erzeugt, bzw. ergänzt:

Language="VBSCRIPT"
Sub CATMain()
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = productDocument1.Selection
selection1.Clear
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Item("ADAPTER_STUTZE_SCHWELLER_HINTEN.CATPart")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("Result of STUTZE_SCHWELLER_HINTEN")
selection1.Add body1
selection1.Copy
Dim partDocument2 As Document
Set partDocument2 = documents1.Item("Schnittemappe.CATPart")
Dim part2 As Part
Set part2 = partDocument2.Part
Set selection2 = partdocument2.selection
selection2.Add part2
selection2.PasteSpecial "CATPrtResult"
part2.Update
End Sub

Catia kann mein kopiertes Element nicht einfügen. Folgende Fehlermeldung:
Selected Element(s) not allowed for this operation.
Wo ist meine Fehler!
Bitte Unterstützung. Danke.

------------------

mfg
Erich

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 29. Aug. 2006 10: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 Erich 10 Unities + Antwort hilfreich

Hallo Erich,

Das einzige was mir jetzt so in den sinn kommt ist das du auf einer falschen ebene sein kannst. du kannst ja auch im interaktiven nicht immer etwas kopieren, besonders dann wenn du ein "falschen" objekt aktiv hast (InWorkObject).

Mein tipp setzt das aktive Objekt mal neu, resp eine ebene weiter oben

Code:

PartDocument1.Part.InWorkObject = PartDocument1.Part.MainBody

und dies vor dem PASTE einfügen... in hoffnung das es funktioniert


grüsse, mathias

------------------
In diesem Zeitalter der Massenkomunikation sind Verrücktheiten ansteckend.

[Diese Nachricht wurde von mathias.bergundthal am 01. Sep. 2006 editiert.]

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 01. Sep. 2006 10:53    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 Erich 10 Unities + Antwort hilfreich

moin,

das Problem liegt wohl darin, welches Objekt das Active Object (blau hinterlegtes Element in CATIA) ist, denn den Code hab ich gerade noch mal ausprobiert und an sich ist das ok. Der Fehler taucht nur dann auf,

wenn das Ziel-Part nicht Bestandteil des ProductDocuments ist, indem das Quell-Part liegt und das Ziel-Part das ActiveDocument ist

oder

wenn das Ziel-Part und Quell-Part zwar Bestandteil des selben ProductDocuments sind, aber das Ziel-Part (oder ein ganz aderes Part) das Active Object ist.

Am einfachsten bei einer Copy-Operation ist, wenn der Rootknoten des Quell-ProductDocuments das Active Object ist. Dann geht am wenigsten schief :-)

CUSee You
    tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

Erich
Mitglied
Senior Consultant selbstständig


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

Beiträge: 198
Registriert: 03.10.2000

i7-9850H
RAM 32,0 GB
Nvidia Quadro T2000
Windows 7 Professional 64Bit

erstellt am: 07. Sep. 2006 09:42    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 zusammen
Danke für die Infos. Ergänzend zu den Inhalten, kann ich noch ergänzen:
Die Aktivierung ist wichtig, in meinem Fall, wie ich aktiviert hatte, war alles richtig. Mein Lesefehler in meinem CATScript war - ich bin von Copy AS RESULT ausgegangen, geschrieben hatte ich - AS RESULT WITH LINK. Somit hat CATIA eine Publication benötigt und es war keine vorhanden. D.h. mit Publication funktioniert das Script einwandfrei. Ohne Publication füge ich noch den richtigen Code an (Kursiv verändert):

Language="VBSCRIPT"
Sub CATMain()
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = productDocument1.Selection
selection1.Clear
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Item("ADAPTER_STUTZE_SCHWELLER_HINTEN.CATPart")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("Result of STUTZE_SCHWELLER_HINTEN")
selection1.Add body1
selection1.Copy
Dim partDocument2 As Document
Set partDocument2 = documents1.Item("Schnittemappe.CATPart")
Dim part2 As Part
Set part2 = partDocument2.Part
Set selection2 = partdocument2.selection
selection2.Add part2
selection2.PasteSpecial "CATPrtResultWithOutLink"
part2.Update
End Sub

------------------

mfg
Erich

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

dr_quatsch
Mitglied
GF

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

Beiträge: 3
Registriert: 23.05.2004

erstellt am: 24. Okt. 2006 22:42    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 Erich 10 Unities + Antwort hilfreich

Hallo Erich,

ich kann ergänzend noch meine Erfahrung bezüglich der für das Copy/Paste aktiven Ebene beisteuern. Es macht in der Regel Sinn, die Selection immer auf die über den Parts liegenden Produkten zu beziehen. In Deinem Beispiel würde dann auch die zweite Auswahl auf das Produkt Referenzieren. Ansonsten kann es auch bei Verwendung des CATPrtResultWithOutLink zur Fehlermeldung kommen. Im folgenden Code ist es dann auch nicht mehr wichtig, welches Element vor dem Start des Makros aktiv war.

Dein Code würde danach wie folgt aussehen (Änderung kursiv):

Language="VBSCRIPT"
Sub CATMain()
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = productDocument1.Selection
selection1.Clear
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Item("ADAPTER_STUTZE_SCHWELLER_HINTEN.CATPart")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("Result of STUTZE_SCHWELLER_HINTEN")
selection1.Add body1
selection1.Copy
Dim partDocument2 As Document
Set partDocument2 = documents1.Item("Schnittemappe.CATPart")
Dim part2 As Part
Set part2 = productDocument1.Part
Set selection2 = partdocument2.selection
selection2.Add part2
selection2.PasteSpecial "CATPrtResultWithOutLink"
part2.Update
End Sub


**********
dr_quatsch

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