Hot News:

Mit Unterstützung durch:

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

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(Link with Result) (1127 mal gelesen)
Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 15. Jun. 2005 11:15    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,

hab eine Frage. Ich habe mir ein Makro gebastelt mit dem ich einen Body1 erzeuge und einen Body2 als Copy/Paste(Link with Result) von einem selektierten Body3 erstelle. Nun möchte ich den kopierten Body2 mit Hilfe der Boolschen Operation "Add" in den Body1 einfügen.

Sub CATMain()

Dim part1 As Part
Set part1 = CATIA.ActiveDocument.Part

'----------Body1 erzeugen

Dim Bodies1 As Bodies
Dim body1 As Body

Set Bodies1 = part1.Bodies
Set body1 = Bodies1.Add
body1.Name = "Folge_xx"

'----------Body3 auswählen

Dim Selektion(0)
Dim Eingabe As CATBSTR
Dim UserSel As Selection

Set UserSel = CATIA.ActiveDocument.Selection
Selektion(0) = "Body"
Eingabe = UserSel.SelectElement(Selektion, "Folge selektieren!", false)

'----------Body3 kopieren und als Body2 einfügen

Dim body3 As Body
Set body3 = UserSel.Item(1).Value

UserSel.Clear
UserSel.Add (body3)
UserSel.Copy
UserSel.PasteSpecial ("CATPrtResult")

'----------Bodys 1 und 2 addieren

Dim body2 As Body
Set body2 = 

Dim Wzk3D As ShapeFactory
Set Wzk3D = part1.ShapeFactory

Part1.InWorkObject = Folge
Dim Operation As Add
Set Operation = Wzk3d.AddNewAdd (body2)

part1.Update

End Sub

Wie kann ich nun den eingefügten Body2 als Body deklarieren, bzw. eine Referenz von ihm erstellen, um ihn zum Body1 hinzuzufügen?

Gruß
Sven

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

u01dz
Mitglied



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

Beiträge: 76
Registriert: 12.07.2003

V5R15GA

erstellt am: 16. Jun. 2005 16:15    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 Zwenne12 10 Unities + Antwort hilfreich

Hi Zwenne,

das ist im Buch "Effiziente Konstruktion mit Makros" auf S. 68 mit einem Beispiel beschrieben. Wenn Du Dein Makro wie folgt änderst, werden body1 und body2 addiert, sofern body2 nicht der Hauptkörper ist:

...

Dim Wzk3D As ShapeFactory
Set Wzk3D = part1.ShapeFactory

part1.InWorkObject = body1
Dim Operation As Add
Set Operation = Wzk3d.AddNewAdd (body2)

...


Ich hoffe, das funktioniert so.

------------------
Tschüß, Dieter

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

Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 17. Jun. 2005 07: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

Hallo Dieter,

danke für Deine Antwort. Das Problem an der Sache ist, das ich nicht weiß wie ich body2, der ja als "Result with Link" eingefügt ist, nun deklarieren kann um damit das "Add" durchzuführen.

Gruß
Sven

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

u01dz
Mitglied



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

Beiträge: 76
Registriert: 12.07.2003

V5R15GA

erstellt am: 17. Jun. 2005 10:12    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 Zwenne12 10 Unities + Antwort hilfreich

Hi Zwenne,

hierzu zwei Ideen:

Idee 1:
=======
Ein neu eingefügter Körper sollte das letzte Item in der Liste der Bodies sein:

Set Body2 = MyPart.Bodies.Item(MyPart.Bodies.Count)

Idee 2:
=======
Falls diese Regel in Deinem Fall nicht aufgeht, dann könntest Du Dir die Liste vorher in einem Array speichern und anschließend den Körper suchen, der in dieser Liste nicht enthalten ist.

------------------
Tschüß, Dieter

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

Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 17. Jun. 2005 11: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

Hallo Dieter,

Deine 1. Idee ist voll aufgegangen  . Genau das habe ich gesucht. Aber was sagt jetzt die Eigenschaft "Count" eigentlich aus? Das immer das letzte Item in einer Liste genommen wird?

Danke nochmal für die Lösung 

Gruß
Sven

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

CTenschert
Mitglied
Wissenschaftlicher Mitarbeiter


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

Beiträge: 67
Registriert: 04.09.2000

erstellt am: 16. Nov. 2005 15: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 Zwenne12 10 Unities + Antwort hilfreich

Property count gibt anzahl der Elemente in deinem "Kontainer"

------------------
Mit freundlichem Gruß von Carl Tenschert

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