Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selection -> Copy -> Paste - Frage zum Ablauf

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:  Selection -> Copy -> Paste - Frage zum Ablauf (1231 mal gelesen)
zipdrive
Mitglied
Student Maschinenbau


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

Beiträge: 42
Registriert: 02.10.2007

Gentoo Linux
Intel Core2Duo E6750 @ 2.67GHz

erstellt am: 17. Dez. 2007 17:17    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 möchte ein wenig mit VBS unter Catiav5 programmieren. Fühle mich allerdings durch die Hilfe und die Unüberischtlichkeit dieser überfordert. Also meine Part-Document sieht so aus:

Part - Geometrisches Set.1
    - Geometrisches Set.2
    - Hauptkörper

Ich möchte nun das Geometrische Set.2 kopieren und unter diesem via PasteSpezial einfügen, sodass eine Verknüpfung zum ursprünglichen Objekt existiert, bis auf einen Wert. Bei diesem Wert handelt es sich um einen Winkel.

Kann mir da jemand helfen?

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 18. Dez. 2007 00:05    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 zipdrive 10 Unities + Antwort hilfreich

Hallo,
eine Kopie bekommt man nunr durch die Selection-Klasse. Um eine Kopie zu erstellen muss man:
1. Eine Selection deklarieren,
2. Ein Objekt ansprechen,
3. Das Objekt mittels Selection.Add(Objekt) in die aktuelle Seletion einfügen,
4. Eine 2. Seletion (natürlich mit anderen Namen) deklarieren,
5. Den Zielkörper (oder Geometr. Set) ansprechen,
6. Das Zielobjekt mittels Selection2.Add(Zielobjekt) in die 2. aktuelle Selektion einfügen,
7. Die ganzen Sachen mit Seletion2.PasteSpecial "CATPrtResult" zusammenfügen
>>> Es entsteht eine Verknüpfte Kopie ohne eigene Historie

Am besten auch hierzu mal die Hilfe nachschauen (nach "PasteSpecial" suchen)

Viel Erfolg

Jens Hansen

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

YellowDevil
Mitglied
PI, Makroentwicklung, NC Automatisierung


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

Beiträge: 67
Registriert: 21.12.2006

erstellt am: 18. Dez. 2007 12:35    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 zipdrive 10 Unities + Antwort hilfreich

Na das wird so nicht wirklich funktionieren.

Du fügst der Selektion ein Quellobjekt zu und dann willst du eine neue Selektion nehmen und der das Zielobjekt geben. Spätestens da hast du dann dein Quellobjekt wieder verloren.

CATIA kennt nur eine Selektion und nicht mehrere!

So sollte es klappen:

1.Selektion deklarieren
2.mit .Add das Quellobjekt zuweisen
3.mit .Copy das Quellobjekt kopieren
4.mit .Clear Selektion wieder freigeben
5.mit .Add das Zielobjekt zuweisen
6.mit .Paste oder .PasteSpecial das Quellobjekt einfügen

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

zipdrive
Mitglied
Student Maschinenbau


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

Beiträge: 42
Registriert: 02.10.2007

Gentoo Linux
Intel Core2Duo E6750 @ 2.67GHz

erstellt am: 18. Dez. 2007 18:27    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, danke erstmal für den ersten Ansatz. Könnt ihr mir auch den entsprechenden VBS-Quelltext dazu nennen. Bin wie gesagt Neuling mit Catia Programmierung und VBS.

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

YellowDevil
Mitglied
PI, Makroentwicklung, NC Automatisierung


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

Beiträge: 67
Registriert: 21.12.2006

erstellt am: 18. Dez. 2007 19:46    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 zipdrive 10 Unities + Antwort hilfreich

Sowas könnte dann so aussehen:


Dim oMySel

Set oMySel=CATIA.ActiveDocument.Selection

oMySel.Clear
oMySel.Add Quellobject
oMySel.Copy
oMySel.Clear
oMySel.Add Zielobject
oMySel.PasteSpecial "CATPrtResult"
oMySel.Clear

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

zipdrive
Mitglied
Student Maschinenbau


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

Beiträge: 42
Registriert: 02.10.2007

Gentoo Linux
Intel Core2Duo E6750 @ 2.67GHz

erstellt am: 18. Dez. 2007 20:10    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

Ok ich habs erstmal so gemacht:

Code:
Sub CATMain()

Dim ImpDoc As PartDocument

Set ImpDoc = CATIA.ActiveDocument

Dim ImpPart As Part

Set ImpPart = ImpDoc.Part

Dim Sel As Selection

Set Sel = ImpDoc.Selection

Dim Pattern As AnyObject

Set Pattern = ImpPart.Bodies.Item("Geometrisches Set.2")

Sel.Clear()

Sel.Add(Pattern)

Sel.Copy()

Sel.Clear()

Sel.PasteSpecial("CATPrtResult")

End Sub


Allerdings will der VBS Interpreter bei der ersten (DIM) Zeile nicht: "Anweisungsende erwartet". Habe darauf alle DIM's ge'REM't.

"CATPrtResult" funktioniert allerdings nicht.

Ich hab noch die Frage, welches Zielobjekt ich denn auswählen soll. Und das entscheidende, wie kann ich bei dem neu eingefügten den Winkel ändern.

Grüße

[Diese Nachricht wurde von zipdrive am 18. Dez. 2007 editiert.]

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 18. Dez. 2007 20:59    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 zipdrive 10 Unities + Antwort hilfreich

Hallo zipdrive,

ungetestet ein paar Anmerkungen:

1.) Wenn Du Dein Script als ".catvbs" abspeicherst, kannst Du die Dim-Anweisungen nicht mit "As ..." erweitern, Wenn Du dies willst, nutze ".CATScript"!

2.) Du hast nichts gewählt, wohin Du einfügen willst. Es müsste zwischen "Sel.Clear" und "Sel.PasteSpecial..." noch ein "Sel.Add", z.B. "Sel.Add(ImpPart.Bodies)"

3.) Ich programmiere nur mit ".CATScript" und ".catvba", doch dort würde ich mit den Klammern etwas vorsichtiger sein. ".catvba" nimmt die schon mal krumm, wenn in der Zeile kein "=" für eine Zuweisung ist!


Die Änderung des Winkels wird wahrscheinlich nicht funktionieren, da ich im CATIA entweder eine 100%-Abhängigkeit erhalte oder eine von 0%, also keine! 80% geht halt nicht!!! Da muss ich dann hinterher nachbessern bzw. weiter bearbeiten.


mfg,
Lusilnie

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

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

zipdrive
Mitglied
Student Maschinenbau


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

Beiträge: 42
Registriert: 02.10.2007

Gentoo Linux
Intel Core2Duo E6750 @ 2.67GHz

erstellt am: 18. Dez. 2007 21:05    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

Ok, ich hab in der Hilfe gelesen, dass man eine geometrische Set nicht verknüpfen kann. Man kan das Eingefügte also ändern. Das eingefügte Set ist nach dem Paste weiter selektiert. Nun müsste ich nur noch das erste Kindelement ansprechen (eine Ebene) und dort den Winkel-Wert ändern. Nur wie man das macht weiß ich nicht, ich find dazu auch nichts in der Hilfe oder hier im Forum.

[Diese Nachricht wurde von zipdrive am 18. Dez. 2007 editiert.]

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 21. Dez. 2021 12:17    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 zipdrive 10 Unities + Antwort hilfreich

Werte Catia-Programmierer,

Das Makro funktioniert, wenn ich kopieren möchte:
Language="VBSCRIPT"

Sub CATMain()

Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument
Dim uSelect As Selection
Set uSelect = partDocument1.Selection
Dim HKoerper As HybridBodies
Set HKoerper =partDocument1.Part.HybridBodies
Dim effekt_Flaechen As HybridBody
Set effekt_Flaechen = HKoerper.Item("0_bearbeitet")

Dim oMySel
Set oMySel=CATIA.ActiveDocument.Selection
'oMySel.Clear
'oMySel.Add Quellobject
oMySel.Copy
oMySel.Clear
oMySel.Add effekt_Flaechen
oMySel.PasteSpecial "CATPrtResult"
oMySel.Clear

Dim part1 As Part
Set part1 = partDocument1.Part
part1.Update

End Sub

Ich möchte die markierten Elemente automatisch einem anderen Geometrischen Set zuweisen (analog Befehl "Geometrisches Set ändern").
Dafür finde ich keinen Zugang.
Sicher habt Ihr das schon so oder ähnlich gemeistert und könnt mit helfen!

Mit freundlichen Grüßen
Pietzonka

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

CATIA V5R19

erstellt am: 21. Dez. 2021 12:55    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 zipdrive 10 Unities + Antwort hilfreich

Servus Pietzonka

Das Elemente nachträglich einem anderen GeoSet zuordnen scheint nicht direkt zu gehen.
Bleibt nur noch Cut&Paste oder ggf noch die Tastendrücke zum Aufrufen des "Change GeoSet" nachzubilden.
Per Cut&Paste geht es zB so (Elemente zuvor selektiert, müssen alles HybridShapes sein)

Code:
Sub CATMain()

Dim oDoc As Document
Dim oPart As Part
Dim oSel as Selection
Dim oTargetHybridBody as HybridBody

Set oDoc = CATIA.ActiveDocument
Set oPart = oDoc.Part
Set oSel = oDoc.Selection

Set oTargetHybridBody = oPart.HybridBodies.Item("Target Set")

if oSel.Count2 <> 0 then
    oSel.Cut
    oSel.Clear
    oSel.add oTargetHybridBody
    oSel.Paste
end if

End Sub


Gruß
Bernd

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

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 21. Dez. 2021 13:44    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 zipdrive 10 Unities + Antwort hilfreich


1.JPG


2.JPG

 
Vielen Dank für Deine Hilfe, Bernd!

Bei der Zeile
    oSel.Paste
erhalte ich folgende Fehlermeldungen:
1 und nach dem Bestätigen 2. (siehe Anhang)
(Die selektierten Elemente sind aber schon gelöscht worden.)
Wenn ich es richtig verstehe, geht der Einfügebefehl nicht.

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

CATIA V5R19

erstellt am: 21. Dez. 2021 13: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 zipdrive 10 Unities + Antwort hilfreich

Servus

Was hast du alles selektiert? Um was für Geometrie handelt es sich? (ggf Screenshot)
(ich kann dein Fehler nicht nachstellen)
ggf statt Paste mal PasteSpecial "CATPrtCont" probieren.

Gruß
Bernd

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

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 21. Dez. 2021 13:59    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 zipdrive 10 Unities + Antwort hilfreich


3.JPG

 
Es wurden 3 Flächen ausgewählt.

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

CATIA V5R19

erstellt am: 21. Dez. 2021 14:10    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 zipdrive 10 Unities + Antwort hilfreich

Servus

OK, das wusste ich nicht dass man isolierte Flächen nicht ausschneiden und einfügen kann.

Dann musst du wohl:

  • Selektierte Elemente in einem Array/Colletion zwischen speichern
  • Copy & Paste ausführen
  • Elemente aus Zwischenspeicher wieder selektieren und löschen (oder direkt über DeleteObjectForDatum)

Gruß
Bernd

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

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 21. Dez. 2021 14:34    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 zipdrive 10 Unities + Antwort hilfreich

Das werde ich probieren.
Bisher vielen Dank an Dich!

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