勘違い。
過去にやったことがあったのは、CATPartをBody毎にした
CATProductにする逆の事でした。
1つのPartからBody毎にしたProductを作り出す - C#ATIA
で、本題の "プロダクトからCATPartを生成" ですが、結果的に
"CATIA.StartCommand" を使うしか方法が無さそうです。
'vba プロダクトからCATPartを生成 'この辺を参考にしました 'https://ww3.cad.de/foren/ubb/Forum137/HTML/005735.shtml 'https://www.scripting4v5.com/additional-articles/catia-macro-sendkeys/ Sub CATMain() 'Treeのトップを選択 Dim prodDoc As ProductDocument Set prodDoc = CATIA.ActiveDocument Dim prod As Product Set prod = prodDoc.Product Dim sel As Selection Set sel = prodDoc.Selection sel.Clear sel.Add prod 'プロダクトからCATPartを生成 CATIA.StartCommand "CATProductToPartCmdHeader" CATIA.RefreshDisplay = True SendKeys "{Enter}" End Sub
念の為お伝えすると、VBAエディタで実行すると、コマンドの
ダイアログが表示された状態で止まってしまいますが、
ツールバーに登録する等して実行すると、きっちり処理します。
又、"CATProductToPartCmdHeader"はコマンドIDの為、
CATIA V5の言語設定に依存せず、実行できます。