Fusion360でのプログラミングについて
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- パーマリンクを表示
- 印刷
- 報告
Fusion360に関して質問です。
まず、以下のムービーにあるような機械を作る場合を考えます。
http://www.11moon.com/m200/Iris_Box/Iris_Box_1.mp4
http://www.11moon.com/m200/Iris_Box/Iris_Box_2.mp4
1. Fusion360にエクスプレッション機能はありますか?
エクスプレッションというのは、プログラムという点ではスクリプトと同じですが、
スクリプトがアプリケーションの下に置くのに対して、オブジェクトの下に置きます。
その結果、例えば上のムービーの羽を動かす場合、スクリプトでは「ハンドラー(実行のきっかけやルール)」、「オブジェクトの指定(リンク、検索)」、
「マトリックスを取り出す」、「計算」、「マトリックスを戻す」、「5回ループ」などの処理を書く必要がありますが、
エクスプレッションでは「マトリックスを取り出す」、「計算」、「マトリックスを戻す」だけでよく処理が簡単になります。
また、羽の枚数を変える場合、スクリプトはオブジェクトの指定やループ部分を書きなおす必要がありますが、エクスプレッションにはありません。羽の枚数を変えるという処理の過程で、プログラムも自動的に変更されるからです。
また、羽を新規シーンにコピーペーストする場合。スクリプトはまずスクリプト自体を移植し、オブジェクトの指定をやり直す必要がありますが、エクスプレッションにはありません。羽をコピーペーストする処理の過程で、プログラムも自動的にコピーペーストされ、オブジェクトの指定も維持されるからです。
2. Fusion360にはカスタムのUIを作る機能はありますか?
上のムービーで羽には、「羽の枚数」と「開いた状態」、「閉じた状態」に相関(ルール)があり、
それによって「羽の形状」や「軸の位置」、「開口部の位置」等が一意に決まります。
この相関を無視すると、羽の間に隙間が空いたり、干渉して動かなくなります。
この相関をスクリプトなりエクスプレッションなりで表現したいのですが、その過程でカスタムのUIを使います。
カスタムのUIというのは、パラメーターとかスライダーとも呼ばれ、基本的にはスクリプトの中の「変数」と同じものですが、
UIの外(表面)に出ているのでアニメーションのキーを打ったり、他のスクリプトから参照したりできます。
変数が線形、もしくは簡単な関数に沿って変化する場合はスクリプト内部の変数で構いませんが、上の羽の回転は非線形なのでカスタムのUIを使っています。
カスタムのUI自体の変化は手描きのスプライン曲線で近似しています。
言い換えると、スクリプトの中である変数を、数式で表現できない形に動かしたいということです。
まあ、厳密に言えばスプラインも数式で表現されているし、カスタムのUIを作る機能自体を自分でプログラムすればできるわけですが、
そこまで言うとFusion360を使う意味がなくなるので、なるべく標準機能でやりたいと考えています。