C#ATIA

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

2D構成要素を配置する直前まで

"特定の2D構成要素を、配置する直前までをマクロで実行したい"
と、御質問を頂いたので、わかる範囲で挑戦してみました。

マクロで配置まで行うのではなく、直前で終了する為には
"CATIA.StartCommand" を利用するぐらいしか思いつきませんでした。

仮に、以下の様な状態のCATDrawingファイルを用意します。
f:id:kandennti:20151124184134p:plain
シート1が作業用で、シート2をディテールシートとしTreeの1個目のViewを
配置する2D構成要素とします。

コードはこちら

'vba
Sub CATMain()
    'ドキュメント取得
    Dim Doc As DrawingDocument
    Set Doc = CATIA.ActiveDocument
    
    'セレクション取得
    Dim Sel As Selection
    Set Sel = Doc.Selection
    
    '2D構成要素の選択
    Sel.Clear
    Sel.Add Doc.Sheets.Item(2).Views.Item(3)
    
    'インスタンス化
    CATIA.StartCommand "2D構成要素をインスタンス化" '日本語
    'CATIA.StartCommand "Instantiate 2D Component" '英語
End Sub

"CATIA.StartCommand" の場合は言語環境が影響する為、事前に
言語を調べておく必要が有ります。