#はじめに
Fusion360 のAPIの理解を深めるために公式ドキュメント内のサンプルコードの内容からドキュメントを読み込んでみたメモ書きです。Fusion 360 を Pythonで動かそう その2、その3、その4で見て見ぬふりをしてきた「最初と最後のおまじない」の内容を見ていきます。
##「最初と最後のおまじない」はこちら
import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
design = app.activeProduct
# Get the root component of the active design.
rootComp = design.rootComponent
#
# ここにコードを追加していく
#
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
run関数
def run(context):
Fusion 360は、スクリプトが最初に実行されるときにrun関数を自動的に呼び出します。
##Application
最上位のApplicationオブジェクトは、Fusion 360のすべてを表します。Applicationオブジェクトは、アプリケーション全体のプロパティとその直接の子(Documents が最も重要です)へのアクセスを提供します。
参考:Getting Started with Fusion 360's API
app = adsk.core.Application.get()
ui = app.userInterface
Application.get メソッドでルートの Application オブジェクトにアクセスしてappに代入しています。
Application.userInterface プロパティ ユーザーインターフェースに固有の機能へのアクセスを提供します。
##Documents
Document オブジェクトは、Fusion 360データパネルのアイテムを表します。新しいデザインが作成されるか、既存のデザインが開かれると、そのファイルはAPIで Document オブジェクトとして表されます。
Product オブジェクトは、さまざまなプロダクトタイプを表す基本クラスです。デザインデータには、Product から派生する Design オブジェクトがあります。Document には、1つの Design オブジェクトのみを含めることができます。
参考:Documents, Products, Components, Occurrences, and Proxies
doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
design = app.activeProduct
Documents.add Method メソッド で新しいドキュメントを作成して開きdoc
に代入しています
Application.activeProduct プロパティ 現在のアクティブなプロダクトを返します。これを design
に代入しています
##Components
すべてのFusion 360ドキュメントには、ルートコンポーネントと呼ばれる単一のデフォルトコンポーネントが含まれています。ユーザーインターフェイスでは、ルートコンポーネントはブラウザーの最上位ノードで表されます。
参考:Documents, Products, Components, Occurrences, and Proxies
# Get the root component of the active design.
rootComp = design.rootComponent
#まとめ
Applicationオブジェクトを取得して、その中のアクティブプロダクトを取得して、その中のルートコンポーネントを取得して、その中にあるXY平面をつかってスケッチを作って・・・といった感じでつながっているということですね
前の記事 Fusion 360 を Pythonで動かそう その4 スケッチにいろんな方法で線を描く
次の記事 Fusion 360 を Pythonで動かそう その6 スケッチポイントを描く