広告
公式ドキュメントの和訳です。
あなたの最初のスクリプトを作成し、デバッグする
Creating and Debugging Your First Script
技術的には、スクリプトとアドインの間には、大きな違いはありません。それらを作成、そして、デバッグする手順の大部分は同じもので、下記の説明は、両方に当てはまります。詳細に入る前に、ここに、Pythonスクリプトやアドインを作成し、デバッグする基本的な手順があります。
以下に示すように、ツールバーから、「スクリプトとアドイン」コマンドを実行します。
-
スクリプトとアドイン・ダイアログで、以下に示すように「作成」ボタンをクリックします。
-
「スクリプトやアドインを新規作成」ダイアログでは、「スクリプト」を、そして、プログラミング言語に「Python」を選択します。スクリプト名のための名前を入力します。そして、必要に応じて、「説明」と「作成者」領域に、いくつかの情報を入力し、「作成」をクリックします。これによりダイアログを閉じ、あなたは、「スクリプトとアドイン」ダイアログに戻ります。
あなたは、以下のメッセージ・ボックスが、表示されるのを見るはずです。新しいスクリプトは、それだけを行います。
あなたのスクリプトを編集、あるいは、デバッグするために、「スクリプトとアドイン」コマンドを実行し、あなたのスクリプトをリストから選択し、続いて、「編集」をクリックします。あるいは、以下に示すように、「実行」ボタンのドロップダウンから「デバッグ」を選択します。
Pythonスクリプトをデバッグするとき、Spyder開発環境をインストールして、開きます。
VS Codeが、利用できるとき、以下に示すように、Fusion 360は、開発環境で、あなたのプログラムを開きます。あなたのPythonとC++プログラムのデバッグの詳細については、言語に固有の話題で提供されています。VS Codeが、利用できるとき、以下に示すように、Fusion 360は、開発環境で、あなたのプログラムを開きます。あなたのPythonとC++プログラムのデバッグの詳細については、言語に固有の話題で提供されています。
スクリプトとアドインの詳細
Script and Add-In Details
あなたは、現在、スクリプトの作成とデバッグの基本操作を確認しました。ここに、スクリプトとアドインの詳細に関するいくつかの詳細な情報があります。
「スクリプトとアドイン」ダイアログは、ユーザーとプログラマの双方のためのスクリプトとアドインへの主要なアクセスポイントです。それには、2つのタブが含まれています。;1つは、利用できるスクリプトの一覧、そして、もう一方は、利用できるアドインの一覧。これらのリストから、あなたは、スクリプトやアドインを選択することができます。続いて、それを実行、編集、デバッグします。
新しいスクリプトやアドインを作成するとき、あなたが、スクリプトやアドインに関する情報を入力する「スクリプトまたはアドインを新規作成」ダイアログが、表示されます。
ダイアログのいろいろな設定は、以下で説明されます。
- プログラミング言語
あなたが「[基本設定]の内容を保存します。」にチェックする場合、あなたが、PythonやC++スクリプトやアドインを作成したいかどうかを選択します。続いて、これは、次回、あなたが、新しいスクリプトやアドインを作成するとき、記憶され、自動的に設定されます。
- 起動時に実行
この設定は、アドイン固有です。そして、Fusion 360が起動するとき、アドインを自動的に実行する必要がある場合、指定します。ほとんどのアドインは、この機能を利用するため、Fusion 360が、起動するとすぐに、ユーザーが、それらを定義するコマンドを利用できます。
- スクリプト名またはアドイン名
これは、あなたのスクリプトやアドインの名前です。「フォルダ場所」で指定された場所に、新しいフォルダを作成するために、この名前が、使用されます。そして、これは、スクリプトやアドイン・コード・ファイルの名前にも使用されます。
- 説明
スクリプトやアドインの説明(オプション)。
- 作成者
スクリプトやアドインの作成者の名前(オプション)。
- バージョン
これは、アドイン特有で、アドインのバージョンの選択可能な設定です。これは文字列で、すなわち「1.0.0」、「2016」、「R1」、「V2」など、バージョン・ラベルのどんなフォ-ムあってもよいです。
- ターゲットのオペレーティングシステム
スクリプトやアドインが、どのOSで、利用する必要があるかを示します。例えば、あなたのスクリプトやアドインが、Windowsの特有のライブラリを使用する場合、あなたは、これを「Windows」に設定するでしょう。それで、Fusionは、Mac上で、それを表示したり、読み込んだりしません。
- フォルダの場所
スクリプトやアドインが、作成される場所。あなたが、ダイアログを使用して、新しいスクリプトやアドインを作成するとき、スクリプトやアドインの名前を持つ、新しいフォルダが作成されます。そして、アドイン・ファイルは、そのフォルダに作成されます。アドインとスクリプトのデフォルトの場所を以下に示します。:
アドイン
Add-Ins
- Windows
%appdata%\Autodesk\Autodesk Fusion 360\API\AddIns
- Mac
$HOME/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns
スクリプト
Scripts
- Windows
%appdata%\Autodesk\Autodesk Fusion 360\API\Scripts
- Mac
$HOME/Library/Application Support/Autodesk/Autodesk Fusion 360/API/Scripts
スクリプトとアドインは、コンピュータ上のどの場所にあっても問題ありませんが、Fusion 360が、起動するとき、アドインを自動的に検索するのは、上記の場所のみです。他の場所にあるスクリプトやアドインは、「スクリプトとアドイン」ダイアログで「+」アイコンを使用して、明示的に配置する必要があります。あなたが、別のコンピューターに、アドインをコピーやインストールする場合、上記で指定した場所に、コピーする必要があります。そのため、Fusion 360は、自動的に、それを捜し出します。
- Windows
スクリプトとアドインのファイル
Script and Add-In Files
新しいスクリプトやアドインが、作成されるとき、指定した名前と作成されたコード・ファイル(Pythonの.pyファイルとC++のための.cppと他の関連するファイル)を使用して、新しいフォルダが、作成されます。コード・ファイルに加えて、スクリプトやアドインに関する追加の情報が含まれている.manifestファイルも、作成されます。たとえば、あなたが、MyAddInと呼ばれるPythonアドインを作成する場合、下に示すファイルを持つMyAddInフォルダが、"…/Autodesk/Autodesk Fusion 360/API/AddIns"に作成されます。このフォルダに追加する必要がある(たとえば、アイコン)追加ファイルは、スクリプトやアドインと関連付けられています。そのため、アドインは、完全に自己完結型です。そして、このフォルダを正しい場所に、コピーするだけで「インストール」できます。
CドライブにWindowsがインストールしている場合の例
C:\Users\[アカウント名]\AppData\Roaming\Autodesk\Autodesk Fusion 360\API\AddIns
マニフェスト・ファイル
The Manifest File
あなたが、スクリプトやアドインが、最初に作成したとき、.manifestファイルは、あなたが、「新しいスクリプトやアドインを作成する」ダイアログで指定する、情報が含まれています。表示、そして、読み込む必要がある場合、とき、Fusion 360が、判断するために使用する追加情報も含まれています。 マニフェスト・ファイルの名前は、アドインと同じですが、.manifest拡張子を持っています。ファイルは、JSON形式のテキスト・ファイルです。以下に、アドインの典型的なマニフェスト・ファイルの例を示します。
{
"autodeskProduct": "Fusion360",
"type": "addin",
"id": "62a9e55a-dbe4-408d-ad8b-cb802473725e",
"author": "Brian Ekins",
"description": {
"": "This is a test add-in."
},
"version": "V1",
"runOnStartup": true,
"supportedOS": "windows|mac"
}
下記は、マニフェストのそれぞれの項目の説明です。
- autodeskProduct
このプロパティは、常に、値 "Fusion360"を持っています。
- type
このプログラムが、アドインやスクリプトの場合、このプロパティは、"addin"や"script"で指定できます。
- id
このプロパティは、このアドインを一意に識別するGUIDです。既存のアドインやスクリプトをコピーすることによって、あなたが、新しいアドインやスクリプトを作成する場合、あなたは、このIDを、新しいGUIDに置き換える必要があるため、それぞれのIDは、一意です。これは、現在、Fusion 360で使用されていませんが、将来的に使用される可能性があります。
- author
このプロパティは、作成者の名前を含む文字列です。これは、「スクリプトとアドイン」ダイアログで表示されます。
- description
これは、アドインの説明を定義する、プロパティを持つJSONオブジェクトです。JSON形式を使用すると、1つ以上のプロパティを持つオブジェクトとして定義されるため、説明は、複数の言語で指定できます。次の例には、デフォルトの説明の空の名前を持つ、1つのプロパティがあり、固有の説明がない、すべての言語に使用されます。業界標準の言語コードを使用して、言語が指定されている他の3つのプロパティは、英語、イタリア語、中国語に使用するテキストを定義します。
"Description":{ "":"Default description", "1033": "Description in English" "1040": "Descrizione in Italiano" "1028": "說明在中國" }
- version
このプロパティは、アドインのバージョンを定義し、「1.0.0」、「2016」、「R1」、「V2」など、どんな文字列でも使用できます。
- runOnStartup
Fusion 360が起動するとき、このアドインが、自動的に、Fusion 360で開始される場合、このプロパティは、trueやfalseを指定することができます。
- supportedOS
このプロパティは、"windows"、"mac"、"windows|mac"です。これは、アドインが、どのオペレーティング・システムで読み込まれるかを定義します。これが使用される1つの例は、アドインが、OS固有のライブラリを使用する場合です。そのため、アドインは、他のどのOSでも動作しません。たとえば、私が、Windows固有のライブラリを使用するアドインを記述する場合、私は、supportedOSを、"windows"に設定することができます。そのため、Macでは、Fusion 360は「スクリプトとアドイン」ダイアログでアドインを表示しません。そして、起動時にも実行しようとしません。ほとんどのPythonスクリプトとアドインは、MacとWindowsの両方と互換性を持つ必要があるため、これは、「windows | mac」に設定して、両方のオペレーティングシステムでアドインを読み込むことができることを示す必要があります。開発者が、WindowsとMacの両方のマシンに、アクセスしてコンパイルできない場合、C++スクリプトとアドインは、プラットフォームごとに、別々にコンパイルする必要があるため、このオプションを使用する可能性が高いです。
- sourcewindowsとsourcemac
C++スクリプトやアドインは、WindowsとMacのプロジェクト・ファイルのファイル名を識別する、2つの追加のプロパティを持っています。あなたが、「スクリプトとアドイン」ダイアログで「編集」オプションを選択するとき、Fusion 360は、そのファイル・タイプに関連付けられているアプリケーションを使用して、関連したプロジェクト・ファイルを開きます。たとえば、例では、以下の.vcxprojファイルは、sourcewindowsプロパティに指定されています。そのため、以後、Windows内で、.vcxprojファイルの関連アプリケーションとして定義されているVisual Studioが、呼び出されます。このファイルを変更することによって、あなたは、あなたが望むコード・エディタを使用することを選択できます。
"sourcewindows": "NewCPPTest.vcxproj", "sourcemac": "NewCPPTest.xcodeproj"
また、これらのプロパティは、JavaScriptエディタとして、Bracketを使用して、既定の動作を上書きするために、JavaScriptスクリプトとアドインのために使用することができます。この場合、ソースファイルは、プロジェクトの.jsファイルです。そして、あなたが、システム上で設定したものは何でも、.jsファイルに関連付けられたアプリケーションとして使用されます。
"sourcewindows": "AssemblyTree.js", "sourcemac": "AssemblyTree.js"
sourcewindowsとsourcemacプロパティを除いて、スクリプトやアドインの名前は、マニフェスト・ファイルで指定されていないことに注意してください。名前は、メイン・ディレクトリとファイルに使用される名前によって定義されています。スクリプトやアドインの名前を変更するために、ディレクトリとファイルの名前を新しい名前に変更します。
スクリプト・コード
Script Code
以下は、新しいPythonスクリプトが、作成されるとき、自動的に、記述されるコードです。"run"関数に、注意してください。スクリプトが、最初に実行されるとき、Fusion 360は、自動的に、run関数を呼び出します。それは、また、Fusion 360の起動時にスクリプトが実行されているかどうか、"context"引数を通じて情報を渡します。あるいは、セッション中に、読み込まれます。スクリプトの場合、これは、無視することができます。なぜなら、スクリプトの場合、Fusion 360セッション中に、常に、実行され、起動時に実行されることはありません。run関数は、あなたのアドインへのエントリ・ポイントです。
Import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
ui.messageBox('Hello script')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
アドイン・コード
Add-In Code
下記のコードは、新しいPythonアドインが、作成されるとき、記述されています。"stop"関数が含まれていることを除いて、新しいスクリプトとまったく同じであることに注意してください。
import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
ui.messageBox('Hello addin')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
def stop(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
ui.messageBox('Stop addin')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
アドインが、停止、および、アンロードされるたびに、"stop"関数は、Fusion 360で呼び出されます。 これは、ユーザーが、「スクリプトとアドイン」ダイアログを使用して、停止しているため、あるいは、より一般的に、Fusion 360が、シャットダウンしている、そして、すべてのアドインが停止されているため、発生する可能性があります。stop関数は、それが作成したユーザー・インターフェイス要素を削除するような、アドインが必要なクリーンアップを実行できる場所です。
runとstop関数の両方には、"context"と呼ばれる一つの引数があります。これは、runやstop関数が、呼び出されている理由のコンテキストを示す追加情報をアドインに渡すために使用されます。言語に応じて、この情報は、いろいろな種類を使用して渡されますが、すべての場合で、name:valueペアの設定を示します。Pythonは、Dictionaryオブジェクトとして、これを渡します。そして、C++は、JSON形式の文字列として、それを渡します。以下のname:valueペアが、現在サポートされています。
名前 | 値 | 解説 |
---|---|---|
IsApplicationStartup | Trueまたはfalse | Fusion 360の起動中に、自動読み込みの結果として、アドインが起動されていることを示します。(true)あるいは、「スクリプトとアドイン」ダイアログによって、ユーザーによって読み込まれます。(false) |
名前 | 値 | 解説 |
---|---|---|
IsApplicationClosing | Trueまたはfalse | Fusion 360が、シャットダウンされる結果(true)として、あるいは、ユーザーが「スクリプトとアドイン」ダイアログで停止したため(false)、アドインが、シャットダウンされることを示します |
スクリプトとアドインとの比較
Scripts vs. Add-Ins
先に述べたように、スクリプトとアドインの技術的な違いは、ほとんどありません。主な違いは、それらをどのように実行するかと寿命です。スクリプトは、「スクリプトとアドイン」コマンドを介してユーザーによって実行されます。そして、run関数が、実行を完了した直後に停止します。 スクリプトは、実行され、続いて、完了します。
Fusion 360では、アドインは、一般的に、Fusion 360が開始されるとき、自動的に読み込みこまれます。アドインは、通常、1つ以上のカスタム・コマンドを作成し、ユーザー・インターフェイスに追加します。アドインは、Fusion 360セッション全体を通じて、引き続き実行されます。そのため、ユーザーが、コマンドを実行するたびに反応します。Fusion 360が、シャット・ダウンされるまで、アドインは、実行されたままです。あるいは、ユーザーは、「スクリプトとアドイン」ダイアログによって、それを明示的に停止します。それが、停止するとき、それは、stop関数で、それが作成する、ユーザー・インターフェイスのカスタマイズをクリンアップします。
アドインが、どのようにFusion 360 APIを使用するかは、スクリプトとまったく変わりません。それは、同じAPIであり、APIの呼び出しは、スクリプトやアドインに限定されていません。しかしながら、APIには、スクリプトよりもアドインに役に立つ、2つの領域があります。最初は、Fusion 360のユーザー・インターフェイス動作を扱うAPIの一部です。そして、ボタンやその他のコントロールを追加して、カスタム・コマンドにアクセスします。たとえば、あなたが、スケッチに、ジオメトリーを描く、カスタム・コマンドを作成する場合、あなたは、Sketchパネルに、新しいボタンを追加するため、ユーザーが、簡単に見つけることができます。アドインは、起動時に読み込むことができるため、Fusion 360を起動するたびに、カスタム・コマンドをユーザー・インターフェイスに追加できます。そのため、それらは、常に、ユーザーが利用できます。そして、標準のFusion 360コマンドとして、表示されます。これは、ユーザー・インターフェイスのトピックで、より詳細に説明されます。
アドインのために役に立つAPIの2つ目の領域は、コマンドです。コマンドの使用は、アドインに限定されていません。そして、時々、スクリプト内で、コマンド機能を使用する理由がありますが、それは、一般的に、使用され、アドイン内で、意味があります。これは、Commandの話題で説明されます。
編集とデバッグ
広告