C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

他Partとリンクした平面の作成2

こちらの続きです。
他Partとリンクした平面の作成1 - C#ATIA


質問者さんはCatVbsを使用しているようなのですが、
デバッグやりにくいので、VBAで進めていきます。

3つに分かれているので1つ目です。
恐らくマクロの記録で作成し、少し手直しした感じがします。

'vba
Dim ProdDoc As Document
Set ProdDoc = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = ProdDoc.Product

Dim products1 As Products
Set products1 = product1.Products

Dim product2 As Product
Set product2 = products1.AddNewComponent("Part", "NewPart1")'①

Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim partDocument1 As Document
Set partDocument1 = documents1.Item("NewPart1.CATPart")

Dim NewPart1 As Part
Set NewPart1 = partDocument1.Part

Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = NewPart1.HybridShapeFactory

Dim parameters1 As Parameters
Set parameters1 = NewPart1.Parameters

Dim oSel As Selection
Set oSel = prodDoc.Selection

Dim point_ref 
Dim line_ref 
Dim Point As Reference 
Dim Line As Reference 

①部分ですが、"Hoge.CATProduct" に新たなPartを追加している部分です。
CatVbsではエラーとならなかったのですが、VBAではエラーになります。
こちらにチラッと記載がありました。
COE : Forums : -
二番目のパラメータ(引数)は、空っぽにする必要がありそうです。

'vba
'Set product2 = products1.AddNewComponent("Part", "NewPart1")
Set product2 = products1.AddNewComponent("Part", "")
product2.PartNumber = "NewPart1"

PartNumberを決め付けてマクロを実行するのが、結構不便なんですけどね。