C#ATIA

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

2022版 Fusion360 Pythonアドインテンプレートの入り口1

スクリプトが作れる様になると、呼び出しが不便な事に気が付くと思います。
そう感じるとアドインの開発への入り口まで辿り着いた証拠です。

実際にアドインを開発しようとし新規に作成した際、スクリプトと比べ出来上がる
ファイル数があまりに違い、愕然とします。

アドインを新規に作成した際に出来上がる雛形は、2022年の最初の頃のUpdateで
大きく変更されました。こちらにそれらに関しての記述があります。(英語です)
https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-DF32F126-366B-45C0-88B0-CEB46F5A9BE8

実の所、スクリプトとアドインは大きな違いはありません。
今回のシリーズでは、分かっている範囲でこの辺の説明を含めた上で簡単なアドインを
作成したいと思っています。

スクリプトとアドインとの違いやメリット

開発側にとっての違いは、こちらの"スクリプト/アドインを見分ける”-”コードを見る"に
記載しましたが、
https://kantoku.hatenablog.com/entry/2021/02/15/161734#%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%A6%8B%E3%82%8B
stop関数の存在とあとちょっとした事だけです。

アドインの最大のメリットは、自作したコマンドをメニューのボタンとして登録が
可能な事です。(=標準コマンドと同じように呼び出せる)

又、アドインは起動するとメモリに駐在した状態になる為、スクリプトでは不可能だった
処理を行う事が可能になります。

テンプレートの歴史

推測なのですが、現在のアドインを新作した際の雛形(テンプレート)は、
突然出来上がったものでは無く、幾つもの改良を経て出来上がったものだと思っています。

githubにはFusion360のアドイン向けのテンプレートやライブラリを公開して
いる方が数名いらしゃいますが、tapnairさん(Autodeskの方)が現在のアドイン
テンプレートを作成されたのではないかと感じています。

この方は過去に2個のテンプレートを公開しています。
・Fusion360AddinSkeleton
https://github.com/tapnair/Fusion360AddinSkeleton

・apper
https://github.com/tapnair/apper

幸い僕も両方とも利用しアドインを公開しています。
特にapperは人気が高く、現在のアドインテンプレートもapperで問題となっていた
部分の改良と行き過ぎていた部分の削除を行われた上で採用されたものと思っています。

実際の所どう?

正直な所、現在のアドインテンプレートに関してはかなり過剰な実装と感じています。
イヤ、安全性を考えると正しいです。しかし、自作コマンドを1個追加するだけの
アドインでは過剰かな?と。

アドインテンプレートが新たに切り替わっただけで、アドインが動く仕組み自体は何ら
変わっていないので、1個だけ自作コマンドを追加したいのであれば、こちらが参考に
なると思います。

・俺コマンドを作る
https://kantoku.hatenablog.com/search?q=%E4%BF%BA%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%9C%E3%82%8B
ちょっと古いので、もうちょっと書き直そうかな・・・。
但し一つだけ注意すべき部分があります。
addButtonDefinitionメソッドの第一引数で自作コマンドのコマンドIDを渡しますが、
コマンドIDのバッティングを避ける為、APIドキュメントに記載されているように

社名(ユーザー名等のユニークな名称)_コマンドID

の形にはすべきと思います。

現在のアドインテンプレートの話はいつするの?

次回します!!