3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Fusion 360 を Pythonで動かそう その5 最初と最後のおまじないを読んでみる

Last updated at Posted at 2020-07-24

#はじめに
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

image.png

#まとめ
Applicationオブジェクトを取得して、その中のアクティブプロダクトを取得して、その中のルートコンポーネントを取得して、その中にあるXY平面をつかってスケッチを作って・・・といった感じでつながっているということですね

前の記事 Fusion 360 を Pythonで動かそう その4 スケッチにいろんな方法で線を描く
次の記事 Fusion 360 を Pythonで動かそう その6 スケッチポイントを描く

参考

Fusion 360 API Reference Manual

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?