C#ATIA

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

軽量版 ツールバー情報取得

Fusion360でアドインを作成する際、コマンドのアイコンを登録するために
こちらに記載したTabやらPanelやらのIDが必要なのですが、
そんな事イチイチ覚えてられません。
俺コマンドを作る2 - C#ATIA

その為、サンプルとの名目でそれらの情報を取得するための
フルスペックなスクリプトが公開されています。
Fusion 360 Help
(恐らく修正されていなければ、エラー出ると思うので・・・)

これ、フルスペック過ぎて結構処理時間が長いんです。
まぁ一度ファイルにしてしまえば良いだけではあるのですが。

あれの軽量で最低限な機能の物を、テキストコマンド経由で作れました。

#Fusion360API Python script
#Author-kantoku
#Description-CurrentCommandToolbarInfo

import adsk.core, traceback, json

def run(context):
    try:
        app = adsk.core.Application.get()
        info = app.executeTextCommand(u'UI.GetCurrentCommandToolbarInfo')
        data = json.loads(info)
        print(json.dumps(data, indent=2, ensure_ascii=False))
    except:
        print('Failed:\n{}'.format(traceback.format_exc()))

たったこれだけです。何なのこのコード量の差は。

フルスペックの物との違いは
・対象は、現在の表示されているツールバーのみ(逆に探さなくてよい)
デバッグコンソールに垂れ流し
・本当に最低限な情報
なので速いです。
f:id:kandennti:20200522003044p:plain