以下を選択するマクロをプログラムしたいと思います。
- 「name_1」という名前のすべてのボディを、「新しいグループ 1」という名前の新しいボディに追加します
- 「name_2」という名前のすべてのボディを、「新しいグループ 2」という名前の新しいボディに追加します
- 「name_3」という名前のすべてのボディを、「新しいグループ 3」という名前の新しいボディに追加します
CATIA R20 でこのコードを書き、正常に動作しました。すべてのボディを新しいボディに追加します。しかし、CATIA R19 と R24 でマクロを実行しようとしましたが、うまくいきません! R19/R24 では、「name_1」という名前のすべてのボディを追加するのではなく、新しいボディに 1 つのボディのみを追加します!
Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Set objSel = partDocument1.Selection
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Set shapeFactory1 = part1.ShapeFactory
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("PartBody")
Dim shapes1 As Shapes
Set shapes1 = body1.Shapes
objSel.Clear
'******************name_1*********************
objSel.Search ("Name=name_1,all")
objcount = objSel.Count
Set body1 = bodies1.Add()
body1.Name = "new_name_1"
Set body1 = bodies1.Item("new_name_1")
part1.InWorkObject = body1
For i = 1 To objcount
Set body11 = bodies1.Item("name_1")
Set add1 = shapeFactory1.AddNewAdd(body11)
Next
objSel.Clear
End Sub