Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  cut pastespecial

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:  cut pastespecial (3495 mal gelesen)
hasim
Mitglied



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

Beiträge: 14
Registriert: 06.05.2004

erstellt am: 27. Mai. 2004 13: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

Hallo zusammen,

ich hab ein Problem mit selection1.cut und selection1.PasteSpecial "CATSpecBreakLink"

Wenn ich anstatt cut copy einsetze funktioniert es. Bei cut kommt es mir so vor, als ob es gar nicht in den Zwischenspeicher geschrieben wird. Hat mit da jemand eine Lösung? Ich arbeite mit V5R12SP3 unter Windows

hier noch mein Programm:

Sub CATMain()

Dim selection1 As Selection
Set selection1 = CATIA.ActiveDocument.Selection
selection1.Clear

selection1.Search "Name=*uct2*,all"        ' Unterproduct selektieren, in dem die Bauteile drin sind

selection1.Search "(Name=*DECK*);sel" 'Bauteile selektieren

selection1.Copy ' selektierte Bauteile ausschneiden
selection1.Clear

selection1.Search "Name=*uct4*,all" ' Unterproduct  selektieren, in dieses Unterproduct sollen die Bauteile eingefügt werden

selection1.PasteSpecial "CATSpecBreakLink" 'Bauteile einfügen (aus Zwischenspeicher)

End Sub


Vielen Dank für eure Hilfe
hasim


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

3.1415926535
Mitglied



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

Beiträge: 59
Registriert: 20.02.2004

erstellt am: 28. Mai. 2004 10:58    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 hasim 10 Unities + Antwort hilfreich

Hallo,

zum Einen gibt es hier einen interessanten Thread zu dem Thema: http://ww3.cad.de/foren/ubb/Forum137/HTML/000237.shtml

Ansonsten denke ich, dass du vor dem PasteSpecial noch ein Add einbauen musst, damit es auch irgendwo eingefügt werden kann.

Viele Grüße

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

hasim
Mitglied



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

Beiträge: 14
Registriert: 06.05.2004

erstellt am: 28. Mai. 2004 14:08    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 PI,

danke für deine Antwort das mit Add habe ich auch schon ausprobiert funktioniert auch nicht.

Mein Test war gerade noch, das Makro bis einschliesslich selection1.cut laufen zu lassen und dann manuell über pastespecial/break link die Bauteile einzufügen, ging aber auch  nicht. Mit selction1.copy funktioniert es. Hab jetzt mein Macro auch auf copy umgeschrieben und lösche dann halt die Bauteile die ich nicht mehr brauche.

Gruß
Hasim

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

DuffM4nUS
Mitglied
Konstrukteur


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

Beiträge: 26
Registriert: 14.04.2016

@ WORK
CATIA V5 R19 SP9
Windows 7 x64 Professional SP1
i7-3740 @ 2.7GHz
16GB RAM
NVIDIA Quadro 3000M
500GB SHDD

erstellt am: 20. Jul. 2016 18:14    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 hasim 10 Unities + Antwort hilfreich

Ich habe eine thematisch ähnliche Frage:

Was möchte ich:
Ich möchte ein symmetrisches Einzelteil per Makro erzeugen lassen.

Was soll dabei gemacht werden:

Die FETT markierten Punkte habe ich noch nicht hinbekommen  (Punkt 3, 6 und 7)

1. publizierten PartBody des geöffneten Originalteils kopieren
2. neues Part erzeugen
3. aus der Zwischenablage mit Paste Special - As Result with Link einfügen
4. eingefügten Body mit Solid als PartBody setzen (da kein HybridDesign)
5. den nun obsoleten leeren Body löschen
6. das Symmetry-Feature anwählen
7. nach der vom Anwender zu selektiereneden Spiegelebene fragen
8. PartBody als Define in Work Object setzen
9. Publizierungen vornehmen

Was habe ich bereits:

Code:
Language="VBSCRIPT"

Sub CATMain()

'Kopieren des Original PartBody
'--------------------------

Set documents1 = CATIA.Documents

Set partDocument1 = CATIA.ActiveDocument
Set selection1 = partDocument1.Selection
selection1.Clear
selection1.Search "(Name=*PartBody* & CATPrtSearch.BodyFeature),all"
selection1.Copy


'Erzeugen eines neuen Parts
'--------------------------

Set partDocument1 = documents1.Add("Part")


'Einfuegen des kopierten Bodies As Result With Link
'--------------------------

Set partDocument2= CATIA.ActiveDocument
Set selection2 = CATIA.ActiveDocument.selection
Set part2 = partDocument2.Part
Set selection2 = partDocument2.selection
selection2.Add part2
selection2.PasteSpecial "CATPrtAsResult"
part2.Update

'Kopierten Body als PartBody setzen
'--------------------------

Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body2 = bodies1.Item("PartBody")
part1.MainBody = body2


'Symmetry anlegen
'--------------------------

'neuer PartBody in Work
'--------------------------

part1.InWorkObject = body2
part1.Update


'Publizierung wird gesetzt
'--------------------------

Set partDocument1 = CATIA.ActiveDocument
Set product1 = partDocument1.GetItem(fileName)
Set reference1 = product1.CreateReferenceFromName(fileName&"/!xy plane")
Set publications1 = product1.Publications
Set publication1 = publications1.Add("xy plane")
publications1.SetDirect "xy plane", reference1

Set reference2 = product1.CreateReferenceFromName(fileName&"/!yz plane")
Set publication2 = publications1.Add("yz plane")
publications1.SetDirect "yz plane", reference2

Set reference3 = product1.CreateReferenceFromName(fileName&"/!zx plane")
Set publication3 = publications1.Add("zx plane")
publications1.SetDirect "zx plane", reference3

Set reference4 = product1.CreateReferenceFromName(fileName&"/!Absolute Axis System")
Set publication4 = publications1.Add("Absolute Axis System")
publications1.SetDirect "Absolute Axis System", reference4

Set reference5 = product1.CreateReferenceFromName(fileName&"/!PartBody")
Set publication5 = publications1.Add("PartBody")
publications1.SetDirect "PartBody", reference5


'leeren Body löschen
'--------------------------

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

oSel.clear
for x = oPart.bodies.count to 1 step -1
  Set oBody = oPart.bodies.item(x)
  if oBody.shapes.count =0 then
        oSel.add oBody
        oSel.delete
        oSel.clear
  end if
next


'Elemente abwaehlen
'---------------------

Set oSel = CATIA.ActiveDocument.Selection
oSel.Clear
CATIA.StartCommand "Fit All In"
CATIA.RefreshDisplay = True


End Sub



Ich bin für jede Hilfe sehr dankbar!

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 20. Jul. 2016 18:47    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 hasim 10 Unities + Antwort hilfreich

Zitat:

Code:
Language="VBSCRIPT"

Sub CATMain()

'Kopieren des Original PartBody
Set documents1 = CATIA.Documents

Set partDocument1 = CATIA.ActiveDocument
Set selection1 = partDocument1.Selection
selection1.Clear
selection1.Search "(Name=*PartBody* & CATPrtSearch.BodyFeature),all"
selection1.Copy


'Erzeugen eines neuen Parts
'--------------------------

Set partDocument1 = documents1.Add("Part")



Aus der Doku:

Example:
The following example creates a PartDocument document in the collection retrieved in PartDoc.
Dim PartDoc As Document
Set PartDoc = Documents.Add("Part")

Müsste das dann nicht bei Dir heissen:

[CODE]
Set partDocument2 = documents1.Add("Part")


Sonst deklarierst den PartDoc1 zwei mal.

Dann kannst Dir auch weiter unter

Zitat:

'Einfuegen des kopierten Bodies As Result With Link
'--------------------------
Set partDocument2= CATIA.ActiveDocument


sparen.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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: 20. Jul. 2016 19:13    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 hasim 10 Unities + Antwort hilfreich

Servus
Einige weiter Verbesserungsvorschläge:
- nicht über den Namen auf den neu eingefügten Körper zugreifen sondern über den Zähler
- bei "PasteSpecial" hattest du dich verschrieben
- besser sprechende Variablennamen verwenden
- zum Spiegel sollte die Methode "AddNewSymmetry2" gehen
Anbei ein etwas angepasster Code (die Veröffentlichungen hab ich mal entfernt, für was benötigst du die?)
Code:
Language="VBSCRIPT"

Sub CATMain()

'Kopieren des Original PartBody
'--------------------------

Set documents1 = CATIA.Documents

Set SourcePartDocument = CATIA.ActiveDocument
Set SourceSelection = SourcePartDocument.Selection
SourceSelection.Clear
SourceSelection.Add SourcePartDocument.part.mainbody
SourceSelection.Copy


'Erzeugen eines neuen Parts
'--------------------------

Set TartgetPartDocument = documents1.Add("Part")

'Einfuegen des kopierten Bodies As Result With Link
'--------------------------

Set TargetSelection = TartgetPartDocument.selection
Set TargetPart = TartgetPartDocument.Part
TargetSelection.clear
TargetSelection.Add TargetPart
TargetSelection.PasteSpecial "CATPrtResult"
TargetPart.Update

'Kopierten Body als PartBody setzen
'--------------------------

Set bodies1 = TargetPart.Bodies
Set body2 = bodies1.Item(bodies1.count)
TargetPart.MainBody = body2

'Symmetry anlegen
'--------------------------

'neuer PartBody in Work
'--------------------------

TargetPart.InWorkObject = body2
TargetPart.Update

'leeren Body löschen
'--------------------------

TargetSelection.clear
for x = TargetPart.bodies.count to 1 step -1
  Set oBody = TargetPart.bodies.item(x)
  if oBody.shapes.count =0 then
        TargetSelection.add oBody
        TargetSelection.delete
        TargetSelection.clear
  end if
next


'Elemente abwaehlen
'---------------------

TargetSelection.Clear
CATIA.StartCommand "Fit All In"
CATIA.RefreshDisplay = True

End Sub


Gruß
Bernd

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

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

DuffM4nUS
Mitglied
Konstrukteur


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

Beiträge: 26
Registriert: 14.04.2016

@ WORK
CATIA V5 R19 SP9
Windows 7 x64 Professional SP1
i7-3740 @ 2.7GHz
16GB RAM
NVIDIA Quadro 3000M
500GB SHDD

erstellt am: 21. Jul. 2016 10: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 hasim 10 Unities + Antwort hilfreich

Vielen Dank für eure schnellen Antworten!

Die Methodik für Symmetry werde ich mir anschauen! Legen wir das zur Seite 
Die Publizierung wird lediglich für den Q-Checker benötigt, der meckert sonst meine Teile aus.
Aber die Publizierung kann ich selbst einfügen, das Codeschnipsel dafür funktioniert ja prinzipiell.

Ich habe Bernds Code eingepflegt.
Das Skript stoppt leider jetzt bei der Erzeugung des neuen Parts. Ich nehme an, es handelt sich dabei um einen Tippfehler?

Code:
'Erzeugen eines neuen Parts
'---------------------------------------------------------------------------------------------
Set TartgetPartDocument = documents1.Add("Part")

Ich habe diesen mal korrigiert. Kam noch in weiteren Passagen vor, ich nehme an, das kommt von der STRG-H Funktion. Falls ich damit falsch liege, bitte korrigiert mich! Leider stoppt das Skript immer noch an exakt dieser Stelle.

Danke und Grüße

Steve

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. Jul. 2016 11:03    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 hasim 10 Unities + Antwort hilfreich

Servus
Da es überall gleich falsch geschrieben ist, dürfte das nicht das Problem sein.
Bei mir läuft der Code. Hast du ggf die Zeile "Set documents1 = CATIA.Documents" geändert/gelöscht?

Gruß
Bernd

PS: Manchmal hilft auch die Fehlermeldung zu lesen.

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

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

DuffM4nUS
Mitglied
Konstrukteur


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

Beiträge: 26
Registriert: 14.04.2016

@ WORK
CATIA V5 R19 SP9
Windows 7 x64 Professional SP1
i7-3740 @ 2.7GHz
16GB RAM
NVIDIA Quadro 3000M
500GB SHDD

erstellt am: 21. Jul. 2016 12:56    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 hasim 10 Unities + Antwort hilfreich

Genau das war es!

Mal wieder den Wald vor lauter Bäumen nicht gesehen.
Was für ein absoluter Anfängerfehler.
Tut mir Leid!

Vielen Dank für deine Hilfe!

Vielleicht werde ich diese später für die Symmetry nochmals benötigen 

Steve

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