C#ATIA

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

APIリファレンスマニュアル

そう言えば、昨年の最後に "もっと初心者向けのコンテンツを書こう” って
書いたくせに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に関しては、サイドバーの下の方はこのような感じです。まぁ見たままですが。
f:id:kandennti:20210301001139p:plain

  • 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を開いて表示させます。

f:id:kandennti:20210301001427p:plain

  • Ctrl + F で文字の検索バーを表示させ "sketch" を検索。Hitしたら候補を順にさせると、比較的早く見つかるはずです。

f:id:kandennti:20210301001440p:plain

各オブジェクトを知る

折角検索したので、Sketchオブジェクトを見てみましょう。
f:id:kandennti:20210301001530p:plain
1:オブジェクト名です。
2:スーパークラスです。まぁあまり関係無いかも・・・。
3:オブジェクトの説明です。
4:メソッドです。表現として正しくないかも知れませんが、関数です。

f:id:kandennti:20210301001557p:plain
5:プロパティです。表現として正しくないかも知れませんが、変数です。

f:id:kandennti:20210301001619p:plain
6:このオブジェクトのアクセス元です。主にこのオブジェクトのコレクションや
  このオブジェクトをプロパティとしているアクセス元です。
7:サンプルコードへのリンク。
8:このオブジェクトを導入した時期です。これもあまり関係無いです。

Sketchオブジェクトにはありませんが、イベントや派生先のオブジェクトも
記載されたりしているオブジェクトもあります。


実際に頻繁に利用するのは、メソッドとプロパティです。
それぞれの詳細はクリックする事で見れます。スケッチの原点を示す
originプロパティを見てみます。
f:id:kandennti:20210301001716p:plain
A:プロパティ名です。
B:このプロパティの所有オブジェクトです。
C:プロパティの説明です。
D:説明の言語の切り替えタブです。
E:使い方です。
F:プロパティの値の説明と値の型です。型に関してはpythonの場合、動的型付け言語
 の為、あまり大きな意味も無いように感じますが、プロパティが読み書き可能(read/write)
 なものか、読み込み専用(read only)なのかが記載されており重要です。
G:このプロパティを導入した時期です。これもあまり関係無いです。

メソッドに関してもほぼ同様な感じですが、引数(パラメータ)や戻り値の説明等も有ります。
又、メソッドの場合は "E" も重要です。引数の数・種類や戻り値の受け方も知る必要が
有ります。


自分の場合、プロパティやメソッド名をクリックしてリンクを開くより、右クリックで
新たなタブを開く事の方が遥かに多いです。(行ったり来たりを避けたい)
f:id:kandennti:20210301001956p:plain
新たなタブを開く方法ですが、サイドバー側で行うと100%リンク切れ(エラー404)に
なります。サイト側は極稀にリンク切れも有りますが、ほぼ大丈夫です。



と、ここまで書いたものの、薄い内容しか記載していないですね・・・。
逆に迷ってしまうだろうか?