マクロで「サブツリーを開く」を行いたい と御質問を頂きました。
結論を先に書くと出来なさそうです。が、その他調べた事を覚書しておきます。
今まで利用した事が無かったのですが、メニューの「表示」内に「サブツリー」が
あるのを知りませんでした。
試した所、ちょっと不思議な感じがしました。
CATIAを起動し新たにPartを作成した状態では、こんな感じでグレーアウトしてます。
これを利用する為には、一度コンテキストメニューの「サブツリーを開く」を実行すると
チェックが入った状態で利用できます。
クリックするとチェックが外れ、全てのサブツリーウィンドウが消えます。
続いて新たにPartを作ります。
最初は利用できない状態ですが、一度コンテキストメニューの「サブツリーを開く」を実行します。
ここでメニューからではなく、サブツリーウィンドウの×印をクリックし閉じます。
ここでメニューを見ると、グレーアウトしてます。
先程とは状態が異なります。
サブツリーウィンドウの×印をクリックした場合は、実際にウィンドウを閉じていて
メニューの「サブツリー」はサブツリーウィンドウ全てを表示/非表示操作しているのだろう
と思われます。
(最初とX印で閉じた場合、表示/非表示に関わらずサブツリーウィンドウが無い為
コマンド自体が利用できない)
こんな制限付きの「サブツリー」コマンドであれば、こちらで利用可能です。
'日本語 CATIA.StartCommand ("サブツリー") '英語 CATIA.StartCommand ("Sub-Trees")
但し、サブツリーウィンドウが開いていても、CATIA.Windows.Countは変化無く
実際に開かれているのか?開かれていないのか? はマクロで判断する事も
難しそうです。(WinAPIでゴリゴリなら出来そうですが)
この「サブツリー」コマンドの存在に気が付いたのは、「表示」-「コマンドリスト」です。
恐らくライセンスに関係無く、アクティブなワークベンチで利用可能なコマンドのリストを
表示してくれます。
ここで表示されるものであれば StartCommand で利用可能だと思います。
StartCommand は起動している言語に依存していますが、こちらに記載した
コマンドIDを利用すれば、言語依存しないマクロが作れます。
コマンドID - C#ATIA
但し、今回の「サブツリー」コマンドについては、GrabCADにUpしたリストには
入ってませんでした・・・。