Fusion 360 API では、JavaScript や Python でドキュメント内にボディやコンポーネント、アセンブリを構築、編集したり、パラメータ操作を自動化することが出来ます。以前の ブログ記事 でもご紹介しているとおり、簡単なサンプルは、Fusion 360 のインストールと同時にインストールされるので、[Script Manager] ダイアログからいつでも実行して試すことが出来ます。また、簡単なサンプルを含む、Fusion 360 API の概要やオブジェクトモデル等は、オンライン ヘルプの Programming Interface 章にも詳しく解説されています。
ただ、現時点で Fusion 360 のメニューを API でカスタマイズする方法について、詳細に紹介されたヘルプ トピックがありません。ここでは、簡単に Fusion 360 のメニューを API で操作する方法をご案内しておきます。まずは、Fusion 360 上での名称を確認しましょう。
Fusion 360 の画面左には、Data Panel と呼ばれる領域があり、これが A360 上にプロジェクト ベースで作成されたフォルダ内容を表示します。画面上部には、Quick Access Toolbar と呼ばれるドッキングされたツールバーがあります。
モデリングをおこなう編集画面に目を移すと、まず、ドキュメント タイトルの下に Toolbar Panel と呼ばれるメニューバーが表示されます。この Toolbar Panel は、左端の切り替えボタンで切り替え可能な Workspace 毎に異なる内容を表示します。
最初に、Fusion 360 API で Quick Access Toolbar の項目をリストアップしてみます。 オブジェクト指向である Fusion 360 API には オブジェクト モデル が用意されているので、すべての API アクセスの入口となる Application オブジェクトを取得してから、userInterface プロパティを介してユーザ インタフェースを現す UserInterface オブジェクトを取得します。こういった階層構造による作業は、Inventor API などの同じです。
Fusion 360 上のユーザ インタフェースは、すべて一意な ID(文字列)が与えられているので、この ID で取得したインタフェースを指定することが出来ます。Quick Access Toolbar には、"QAT" という ID が与えられているので、これを指定して Toolbar オブジェクトを取得します。Quick Access Toolbar には、複数のボタンが配置されていますが、各要素にアクセスするには Toolbar.controls プロパティにアクセスして、それぞれのメニュー要素となる ToolbarControl オブジェクトを取得することになります。
次の JavaScript コードは、Quick Access Toolbar に現在表示されているメニュー要素の ID を表示するものです。
//Author- "use strict"; |
ID の出力には JavaScript の console.log メソッドを利用しているので、Fusion 360 の [Script Manager] ダイアログから Debug モードでスクリプトを実行してください。Web ブラウザが起動したら、F12 キーを押してコンソール画面を表示させてると、次のように表示されるはずです。
DashboardModeCloseCommand
FileSubMenuCommand
PLM360SaveCommand
UndoDropDown
RedoDropDown
PublisherTechPreview
このコードを応用すると、既存のメニュー要素を消してしまうようなことも出来ます。具体的な内容については、次のドキュメントをご参照ください。
QA-9571 Share メニューを表示させないようにしたい(スクリプト)をダウンロード
なお、API で変更した内容はセッション間のみ有効です。Fusion 360 を再起動すると初期化されてしまうので、注意が必要です。 もし、Fusion 360 の起動と同時に処理を自動実行させたい場合には、Script ではなく Add-In としてアプリケーションを実装して、"Run on Startup" を指定する必要があります。
QA-9571 Share メニューを表示させないようにしたい(スクリプト) の内容をAdd-In として実装したドキュメントも用意していますので、併せてご参照ください。
QA-9574 Share メニューを表示させないようにしたい(アドイン)
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。