C#ATIA

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

やっぱりスケッチ サポートを変更は出来ないと思う

また、よく読んでなかったので気が付いたのですが、これ。

How to use the StartCommand method | CATIA V5 Automation

"CATIA.StartCommand" についての記載なのですが、
サンプルコードをよく見ると、二番目の事例が "スケッチサポートの変更" に
なっているじゃないですか。

内容的は "事前選択して、StartCommand するんだよ" って
受け止めました。


早速、XY平面をサポートにする配置スケッチを作成し、YZ平面にサポートを
変更する為、こんな感じのコードを作成。

'vba
Sub Test_ChangeSketchSupport()
    Dim Sk As Sketch
    Set Sk = SelectItem("スケッチ選択", Array("Sketch"))
    
    Dim Pl As Plane
    Set Pl = SelectItem("平面選択", Array("Plane"))
    
    Dim Sel As Selection: Set Sel = CATIA.ActiveDocument.Selection
    Dim CmdTxt$: CmdTxt = "スケッチ サポートを変更" '"Change Sketch Support"
    Sel.Clear
    Sel.Add Sk
    Sel.Add Pl
    
    Call CATIA.StartCommand(CmdTxt)
    
    CATIA.ActiveDocument.Part.Update
End Sub

実行したところ・・・スケッチの選択待ち状態で待機されたままでした。
日本語が悪いのかと思い、英語にしてみたのですがやっぱりダメです。
配置スケッチが原因かと思い、スケッチにしてもダメ。
ん~ 色々と変更して試したのですが、やっぱり上手く行きません。

一番進展があったのがこんな感じのコード

'vba
Sub Test_ChangeSketchSupport()

    ・・・

    Sel.Clear
    Sel.Add Sk
    Call CATIA.StartCommand(CmdTxt) 'ここまでは出来ているっぽい

    Sel.Add Pl
    CATIA.ActiveDocument.Part.Update
End Sub

事前選択をスケッチのみに変更したところ、サポートを変更する為の
"スケッチを配置" のウィンドウが出るところまでは行きました。
f:id:kandennti:20160420191440p:plain

StartCommand後に、YZ平面をSelectionにAddしているので、
画像の様にオレンジ色にはなってくれるものの、マウスでクリックしたのとは
扱いがちょっと違うようです。 結論としては、無理そうです。