C#ATIA

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

Fusion360のスクリプト/アドインの登録

気が付くと、比較的最近のバージョンでのスクリプト/アドインの設定やら何やらが、
しっかりと説明されているサイトが無い様な気がしています。(自分も書く事を避けていました)
自分のわかっている範囲で書き残したいと思っていますが、将来的には変更されるかも
知れません。念の為、記載内容の条件は
Fusion360 Ver2.0.9719
python
・OSはWin10
としています。




〇言葉の整合性

今回の説明をする際は、以下のような表現とします。
f:id:kandennti:20210215154601p:plain
スクリプト/アドインを利用する為には、"ツール"タブ - "スクリプトとアドイン"コマンド を
押した際に表示されるダイアログの "マイ スプリクト" 又は "マイ アドイン" に表示される
状態にする必要があります。 これを行う作業を便利上 "登録" すると表現します。
又、これらの項目を選択し "実行" ボタンを押す、項目自体をダブルクリックする事を
"実行" すると表現する事にします。

スクリプト/アドインのファイル構成ルール

基本的にフォルダ単位で管理されています。
登録する為には、”フォルダ名" "manifestファイル名" "pyファイル名" が一致した状態になっている
必要があります。 ・・・言葉だけではわかりにくいですよね?
仮に "hoge" と言うスクリプトの場合

"hoge" フォルダー
  ┗ "hoge.manifest"
  ┗ "hoge.py"

の状態になっている必要があります。"manifestファイル" "pyファイル" はフォルダの直下に
置いていなければなりません。

スクリプト/アドインの登録方法

インストーラ

こちらの "Fusion 360 App Store" にあるものの多くはこの様なタイプです。
Fusion 360 Store: Plugins, Add-ons and Extensions for Fusion 360 | Autodesk App Store
基本的にファイルをDLし、実行することで登録が完了するはずです。

・zip等のファイルで既にフォルダ構成が出来ているもの

githubで公開されているものの多くはこれが該当します。
f:id:kandennti:20210215155104p:plain
サイト内の緑の "Code" をクリックするとプルダウンメニューが表示されるので、
”Download ZIP” を選択するとリポジトリ全体がダウンロードされます。
このZIPファイルを展開すると "xxx-master" の様な名前となるはずです。
この場合、フォルダ名のみ "-master" が追加された状態となる為、ファイルの構成ルール
から外れてしまします。その為、フォルダ名の "-master" を削除した名前に変更する
必要があります。
これは展開する際の設定やアドイン開発者のgithub利用方法にも依存しており、
一概には "この様にすればOK" とは言い切れません。
ファイルの構成ルールに基づいた状態になっている事を必ず確認してください。

ファイルの構成ルールに基づいた状態を作ったのちに登録します。
スクリプト/アドイン共に "+" をクリックすると "新しいスクリプトを追加" ダイアログが
表示されます。
f:id:kandennti:20210215155244p:plain
基本的に表示されたダイアログは、以下のパスで開かれるはずです。

スクリプトの場合
C:\Users\<USER NAME>\AppData\Roaming\Autodesk\Autodesk Fusion 360\API\Scripts

アドインの場合
C:\Users\<USER NAME>\AppData\Roaming\Autodesk\Autodesk Fusion 360\API\AddIns

この位置にファイルの構成ルールを満たしたフォルダを置いておくと、自動的に登録されます。

但し、現在はスクリプト/アドインのフォルダをローカルの任意の場所に置いておいても
登録出来るように仕様に変更されています。
その為、先程のフォルダを指定すればOKです。
自分の場合はMicrosoft社のサービスOneDriveを利用しており、この位置にフォルダを
置いておくことで、勤務先・自宅で同一のスクリプト/アドインを利用出来る状態を
保っています。("Dropbox" ""Google Drive" 等のサービスでも大丈夫なはずです)
※この方法の場合 "キャッシュをクリア" を行った場合、登録が消えてしまいます。


念のため、自分が公開しているアドインの場合ですが、こちらで説明します。
GitHub - kantoku-code/Fusion360_Two-turn_Mobius_strip: Create a two-turn Möbius strip.
上記のフォルダ名の変更を避けるため、ダウンロード/展開後のフォルダ内に
アドイン名となるフォルダを作成し、この中にアドインファイル等を入れています。
f:id:kandennti:20210215155927p:plain
こちらのフォルダを登録すれば利用出来るようになります。

・素のコード

フォーラムに投稿されたものやHelpのサンプルコードがこの場合に該当します。
この様な場合、実質新規で作る事と同じ手順となります。
f:id:kandennti:20210215160123p:plain
"スクリプトとアドイン" ダイアログを表示させ、"作成" ボタンをクリックします。
"スクリプトまたはアドインを新規作成" ダイアログが表示されますが、
"スクリプト名またはアドイン名" 部分のみが入力されている状態と
なっていればOKです。
"作成" を押します。(この時点で登録は完了しています)
元のダイアログ上では、ファイル名が変更出来る状態となっていますが、変更せずにEnterを押します。
新たに作成した項目を選択した状態にし、"編集" をクリックすればエディタが
起動します。(インストールされていればですが・・・)
起動されたエディタの "xxx.py" の方のファイルには "Hello script(addin)" の
サンプルが記載されていますが、全て削除し、目的のコードをコピペする事で
目的のスクリプト/アドインが登録できた状態となります。

スクリプト/アドインを見分ける

スクリプトスクリプトとして、アドインはアドインとして登録しなければ
実行する事が出来ません。どちらかを記載していれば良いのですが、Helpのサンプルコード
ですら記載されていないのが実情です。その為、見分ける必要があります。

・manifestファイルを見る

manifestファイルを開くと以下の様になっています。
f:id:kandennti:20210215160430p:plain
"type" の横を見ると "script" "addin" の記載がある為、見分けることが出来ます。

・コードを見る

コードだけが存在している場合はmanifestファイルが無い為、上記の確認方法が出来ません。
最終的には直接コードを見て判断する事になりそうです。
f:id:kandennti:20210215160527p:plain
"def stop(context)" がある場合は、アドインです。
これだけで判断する事が可能です。

スクリプト/アドインのフォルダパスを知る

登録されたスクリプト/アドインのフォルダ位置を知る為には、"スクリプトとアドイン"
ダイアログの "詳細" を開くことで見る事が出来ます。
f:id:kandennti:20210215160954p:plain
直接フォルダを開きたい場合は、該当する項目上を右クリックする事で "ファイルの場所を開く"
が表示されるので、こちらの方が速いです。・・・開発者向けですが。

スクリプト/アドインの登録を解除する

以前は、上記の右クリックで表示される項目の中に "削除" が有ったのですが、紛らわしい
(実際にファイル類を削除するわけでは無く、登録を解除していた)と言う理由で
機能自体が廃止されました。
Mod the Machine: Un-remove Fusion 360 add-in
(個人的には復活してほしいです)

この方法が無くなったため、登録解除の方法は1つです。それはファイル構成ルールに
違反する事で勝手に解除されます。簡単な方法としては、
・登録時とは異なる位置にフォルダを移動する
・フォルダ名、又はファイル名を変更する
・フォルダ、又はファイルを削除する
等です。



想像していた以上に長くなりました。(逆にわかりにくいかも)