Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Ersetzen Body

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:  Ersetzen Body (542 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: 04. Jul. 2005 11:30    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,

habe mal wieder ein Problem.

Ich habe ein Part in dem mehrere Bodys und OpenBodys enthalten sind.
Die Bodys Folge_01 bis Folge_08 sind wie folgt aufgebaut:

...

|
-Folge_02
| |
|  -Add.2
|  |
|    -Result of Folge_01
|
-Folge_03
| |
|  -Add.3
|  |
|    -Result of Folge_02

...

Nun möchte ich eine Folge zwischen 02 und 03 einfügen. Dazu erzeuge ich einen neuen Body(Folge_XX), kopiere Folge_02(ausgewählt durch Selektion), füge sie als "Result with Link" ein und hänge sie mit der boolschen Operation "Add" an die Folge_XX.
Als nächstes erzeuge ich mir eine Kopie von Folge_XX und füge sie wiederum als "Result with Link" ein.
Das klappt auch soweit:

Language="VBSCRIPT"

Sub CATMain()

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

'----------FolgeXX erzeugen

Dim body1 As Body
Set body1 = part1.Bodies.Add
body1.Name = "Folge_xx"

'----------Folge_02 auswählen

Dim Selektion(0)
Dim Eingabe As CATBSTR

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

'----------Folge_02 kopieren und als Result of Folge_02 einfügen

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

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

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

'----------Bodys 02 mit Folge_XX addieren

Dim Wzk3D As ShapeFactory
Dim Operation As Add

Set Wzk3D = part1.ShapeFactory

Part1.InWorkObject = body1

Set Operation = Wzk3d.AddNewAdd (body2)

'---------FolgeXX kopieren und als Result of Folge_XX einfügen

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

Set Body4 = part1.Bodies.Item(part1.Bodies.Count)

part1.Update

End Sub


Ich möchte nun von Folge_03 den Result of Folge_02 mit dem "Result of Folge_XX" ersetzen und die Folge_XX zwischen Folge_02 und Folge_03 schieben.

...
|
-Folge_02
| |
|  -Add.2
|  |
|    -Result of Folge_01
|
-Folge_XX
| |
|  -Add.3
|  |
|    -Result of Folge_02
|
-Folge_03
| |
|  -Add.3
|  |
|    -Result of Folge_XX (vorher Result of Folge_02)

...

Ist dies überhaupt möglich? Hab über die Replace-Funktion nämlich nichts gefunden.
Danke

Gruß Sven

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

MaxZ
Mitglied
Computer Aided Designer


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

Beiträge: 125
Registriert: 24.05.2005

V5 R16

erstellt am: 05. Jul. 2005 17: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

Kannst dus vielleicht so machen, dass du statt den einen durch den
anderen zu ersetzen einfachen den alten löschst und den neuen
einfügst?
Umsortieren hab ich noch nicht gemacht, manuell würds ja per "reorder
children" im übergeordneten element gehen.
Vielleicht hilfts dir bissl weiter...
Ciao
Max

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