Fusion 360 API のご紹介

Fusion 360 API のご紹介
伊勢崎 俊明
オートデスク 株式会社
Fusion 360 とは ?
 A360 ベースの次世代コラボレーション型 CAD/CAM ツール
 個人事業主や中小デザイン事務所をターゲット
 フルレンジのデザイン モデリング機能
 強力で直観的なインタラクティブ モデリング
 柔軟なアセンブリ モデリングとシミュレーション
 数時間から数日で習得可能な容易さ
 現時点で英語版と簡体中国語版のみ
Fusion 360 のアクセス ポイント
モデリング
無償利用の登録
30日間のトライアル
期間終了後に表示
学生、教員、スタートアップは
申告により無償利用が可能 !!
© 2015 Autodesk
図面作成
図面作成
レンダリング
レンダリング
CAM 3~5軸加工
Fusion 360 全機能+
CAM 3~5軸加工
アニメーション作成
アニメーション作成
CAM 2.5 軸加工
¥35,640/1年
¥4,320/1ヶ月
¥----/1年
¥----/1ヶ月
旧 Python API
新しい Fusion API
 2014年9月に API プレビュー として導入
 導入当初は JavaScript を用いる スクリプト のみ
 2014年11月に Python スクリプト を追加
 2015年3月に アドイン のサポートを追加
 将来バージョンで C++ アドイン をサポート予定
新しい Fusion API
 単一 API で複数の開発言語の利用が可能
 初期版 API は開発言語に依存しない
 各開発言語用にラッパーを作成
 オブジェクト モデル階層 API 構造を使用
 オブジェクト モデルはオーナーシップを表現(継承ではなく)
 オブジェクト
 Fusion オブジェクトと API 固有オブジェクトを表現
 コレクション
 関連オブジェクト セットへのアクセスと
新しいオブジェクト作成のサポートを提供
API オブジェクト モデル
押し出しの作成(Python)
app = adsk.core.Application.get()
design = app.activeProduct
# アクティブ デザインのルート コンポーネントを取得
rootComp = design.rootComponent
# XY 平面上に新しいスケッチを作成
sketch = rootComp.sketches.add(rootComp.xYConstructionPlane)
# 円を作図
circles = sketch.sketchCurves.sketchCircles
circle1 = circles.addByCenterRadius(adsk.core.Point3D.create(0, 0, 0), 2)
# 円によって定義されたプロファイル(外形線)を取得
prof = sketch.profiles.item(0)
#プロファイル時に新しいコンポーネントの作成を入力値として用意
extrudes = rootComp.features.extrudeFeatures
extInput = extrudes.createInput(prof, adsk.fusion.FeatureOperations.NewComponentFeatureOperation)
#距離範囲 5 cm を定義
extInput.setDistanceExtent(False, adsk.core.ValueInput.createByReal(5))
# 押し出しを作成
ext = extrudes.add(extInput)
API で可能な処理
 ユーザ インタフェース操作で可能な処理のほとんど
 Gear サンプル
 アセンブリとパーツの詳細なクエリ(照会)
 コマンドの作成
 ボタン(メニュー)の追加/削除による UI の編集
 コマンド ダイアログ
 コマンド プレビュー
 トランザクション
3月リリース時点の API 機能(グリーン箇所)
 フィーチャとタイムライン
 スケッチ
 構築ジオメトリ
 パラメータ
 材料
 外観
 A360 アクセス
3月リリース時点の API 機能
 アセンブリ構造(コンポーネントとオカレンス)
 B-Rep とジオメトリの照会(メッシュ抽出を含む)
 ユーザ設定
 カメラ関連機能
 コマンドと UI アクセス
 アドイン
将来予定している API 機能








C++ サポート
アセンブリ ジョイントと他のアセンブリ機能
残りのフィーチャ
T-スプライン
カスタム グラフィックス
図面
CAM
その他 …
開発言語の選択:JavaScript
 JavaScript
 一般的な用途でも使用される
 GUI 用への HTML 使用は不可
 組み込みファイル システム アクセスはなし
 コード記述に各種テキスト エディタが利用可能
 Fusion 360 は Brackets エディタを同梱
 Google Chrome か Webkit ブラウザでのデバッグが可能
 非表示のブラウザ インスタンス内で外部プロセスとして実行
 外部の JavaScript ライブラリの使用が可能
JavaScript 開発環境
コード編集:Brackets
デバッグ:Google Chrome
スクリプト例(JavaScript)
var app = adsk.core.Application.get();
var product = app.activeProduct;
var design = adsk.fusion.Design(product);
// アクティブ デザインのルート コンポーネントを取得
var rootComp = design.rootComponent;
// XY 平面上に新しいスケッチを作成
var sketches = rootComp.sketches;
var xyPlane = rootComp.xYConstructionPlane;
var sketch = sketches.add(xyPlane);
// 円を作成
var circles = sketch.sketchCurves.sketchCircles;
var circle1 = circles.addByCenterRadius(adsk.core.Point3D.create(0, 0, 0), 2);
// 円サイズを拘束
sketch.sketchDimensions.addDiameterDimension(circle1, adsk.core.Point3D.create(3, 3, 0));
開発言語の選択:Python
 Python
 Fusion 内の Python インタプリタで内部プロセスとして実行
 JavaScript よりも処理が高速
(275x、23x)
 ファイル システムへのフル アクセスが可能
 コード記述に各種テキスト エディタが利用可能
 Fusion 360 は Spyder エディタを同梱
 デバッグには Spyder を使用
 GUI 開発用に Tkinter ライブラリを使用(Windows のみ)
 外部の Python ライブラリの使用が可能
Python 開発環境
コード編集 & デバッグ:Spyder
スクリプト例(Python)
app = adsk.core.Application.get()
design = app.activeProduct
# アクティブ デザインのルート コンポーネントを取得
rootComp = design.rootComponent
# XY 平面上に新しいスケッチを作成
sketches = rootComp.sketches
xyPlane = rootComp.xYConstructionPlane
sketch = sketches.add(xyPlane)
# 円を作成
circles = sketch.sketchCurves.sketchCircles
circle1 = circles.addByCenterRadius(adsk.core.Point3D.create(0, 0, 0), 2)
# 円サイズを拘束
sketch.sketchDimensions.addDiameterDimension(circle1, adsk.core.Point3D.create(3, 3, 0))
スクリプト vs. アドイン
 スクリプト
 セッション内で “実行と終了”
 オプションでマニフェストの使用が可能
 アドイン
 起動時の実行や実行中の処理を保持する目的で利用
 マニフェスト ファイルの追加が必要
 Fusion 360 はマニフェストが実装されていることを前提
[Scripts and Add-Ins] ダイアログ
 既存のスクリプトとアドインにアクセス
 スクリプトの実行
 アドインの開始
 新しいスクリプト/アドインの作成
 既存のスクリプト/アドインの編集
 JavaScript スクリプト/アドインの実行
 多くのサンプルへのアクセス
Fusion コマンド
 スクリプトとアドインから使用可能
 Fusion 360 は明確な “コマンド” コンセプトを指向







CommandDefinition はボタン作成に必要な情報を定義
コマンドはコマンド ボタンがクリックされた際に作成される
イベント ドリブン
ダイアログに入力と結果の表示が可能
ユーザ対話で入力した値を利用可能
結果プレビューの表示が可能
トランザクション(アンドゥ)は自動的に処理される
ドキュメント
Fusion 360 API フォーラム
Fusion 360 API をはじめましょう
 Fusion 360 のインストール(http://fusion360.autodesk.com)
 Fusion 360 の使用
 API ドキュメント(英語)を参照
 サンプル プログラムの評価
 API フォーラムの使用
 ご要望をお聞かせください
開発時の参照サイト
 フォーラム
http://forums.autodesk.com/t5/api-and-scripts/bd-p/22
 GitHub(サンプル)
http://autodeskfusion360.github.io/
 Mod the Machine ブログ
http://modthemachine.typepad.com/
Fuison 360 API 利用のコストと利点
 コスト
 プログラム開発と配布は無償
 ADN 加入義務は特にありません
 利点
 コミュニティ/プロジェクト内で効率化を共有
 Autodesk Exchange Apps ストアでの提供、販売も可能
https://apps.exchange.autodesk.com/ja
Autodesk University Japan 2015 開催のお知らせ
1. 開催日時
2. 開催会場
3.
4.
5.
6.
7.
8.
集客目標
テーマ
対象
主催
協賛
参加費
詳細は
2015年10月9日 金曜日
ホテル グランパシフィック LE DAIBA
東京都港区台場2-6-1
ご来場者 1,100名
The Future of Making Things
さまざまな業界において設計、デザインにかかわる方
オートデスク株式会社
協賛パートナー企業様
10,800円(税込)(事前登録制)
http://au.autodesk.co.jp まで



ADN トラック 4 セッション
View and Data API ハンズオン 1 セッション
ADN パートナー ソリューション展示
Autodesk is a registered trademark of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear
in this document. © 2014 Autodesk, Inc. All rights reserved.