そう言えば、昨年の最後に "もっと初心者向けのコンテンツを書こう” って
書いたくせに1個も書いてません。(既に3月)
いや、1個だけありました。これは役立つと信じたい。
Fusion360のスクリプト/アドインの登録 - C#ATIA
探してみると、既にreisyuさんがキッチリ書かれたシリーズがあるんですよね。
Fusion 360 を Pythonで動かそう その1 スクリプトの新規作成 - Qiita
(2021/2/27現在 1~11まであります)
そうなると、何をネタにしようか迷ったのですが、何時もお世話になるAPIの
リファレンスマニュアルについて書いておくことにします。
念の為、動作環境は
・Fusion360 Ver2.0.9719
・OS Win10
・ブラウザ Google Chrome
で、pythonとしてお話進めます。
APIリファレンスマニュアル(以下APIリファレンス) アクセス/入手
Fusion360の場合、Microsoft社のOffice製品の "マクロの記録" のような操作を
コード化するような機能が有りません。残念な事にゴリゴリ書くしか方法がありません。
そうなると頼るものがAPIリファレンスとサンプルコードしかないのですが、
APIリファレンスは英語版しかありません。既にハードルを上げまくっている
のですが、現実なので仕方がありません。
実はAPIリファレンスは2種類あります。一つはオンライン版で、こちらです。
Fusion 360 Help
もう一つはオフライン版です。
Getting Offline Access to the Fusion 360 API Help - Ekins Solutions, LLC
(上記オンライン版のページにもオフライン版がダウンロード出来ます)
オフライン版はちょっと古いので、比較的新しい機能は記載されていないと思います。
(過去に何度かオンライン版のサーバーがダウンしていたことがあり、Ekins氏の好意で
Upされています。偶に更新したファイルに変更してくれているようです。)
情報量や使い勝手を考え、オンライン版でお話を進めます。
目的のオブジェクトを手っ取り早く見つけだす
MS Office等の場合は、目的の文字を選択状態にしF1キーを押すとHelpが表示されますが、
Fusion360の場合はその様な方法はありません。
APIに関しては、サイドバーの下の方はこのような感じです。まぁ見たままですが。
- Welcome to the Fusion 360 API:大まかな概要
- What's New in the Fusion 360 API:大きめのUpdateの際に追加された機能の説明
- Fusion 360 API User's Manual:Fusion360APIの考え方や機能の説明(かなり重要)
- Fusion 360 API Reference Manual:各オブジェクトや定数のリファレンスマニュアル
- Sample Programs:サンプルプログラム(確か殆どスクリプト)
主に利用する事になるのは、"Fusion 360 API Reference Manual" - "Objects" です。
例えば、みんな大好きSketchオブジェクトを調べたい時のおススメの方法です。
- まず "Objects" のTreeを開いて表示させます。
- Ctrl + F で文字の検索バーを表示させ "sketch" を検索。Hitしたら候補を順にさせると、比較的早く見つかるはずです。
各オブジェクトを知る
折角検索したので、Sketchオブジェクトを見てみましょう。
1:オブジェクト名です。
2:スーパークラスです。まぁあまり関係無いかも・・・。
3:オブジェクトの説明です。
4:メソッドです。表現として正しくないかも知れませんが、関数です。
5:プロパティです。表現として正しくないかも知れませんが、変数です。
6:このオブジェクトのアクセス元です。主にこのオブジェクトのコレクションや
このオブジェクトをプロパティとしているアクセス元です。
7:サンプルコードへのリンク。
8:このオブジェクトを導入した時期です。これもあまり関係無いです。
Sketchオブジェクトにはありませんが、イベントや派生先のオブジェクトも
記載されたりしているオブジェクトもあります。
実際に頻繁に利用するのは、メソッドとプロパティです。
それぞれの詳細はクリックする事で見れます。スケッチの原点を示す
originプロパティを見てみます。
A:プロパティ名です。
B:このプロパティの所有オブジェクトです。
C:プロパティの説明です。
D:説明の言語の切り替えタブです。
E:使い方です。
F:プロパティの値の説明と値の型です。型に関してはpythonの場合、動的型付け言語
の為、あまり大きな意味も無いように感じますが、プロパティが読み書き可能(read/write)
なものか、読み込み専用(read only)なのかが記載されており重要です。
G:このプロパティを導入した時期です。これもあまり関係無いです。
メソッドに関してもほぼ同様な感じですが、引数(パラメータ)や戻り値の説明等も有ります。
又、メソッドの場合は "E" も重要です。引数の数・種類や戻り値の受け方も知る必要が
有ります。
自分の場合、プロパティやメソッド名をクリックしてリンクを開くより、右クリックで
新たなタブを開く事の方が遥かに多いです。(行ったり来たりを避けたい)
新たなタブを開く方法ですが、サイドバー側で行うと100%リンク切れ(エラー404)に
なります。サイト側は極稀にリンク切れも有りますが、ほぼ大丈夫です。
と、ここまで書いたものの、薄い内容しか記載していないですね・・・。
逆に迷ってしまうだろうか?