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