Fusion360でのプログラミングについて

Fusion360でのプログラミングについて

Anonymous
適用対象外
1,612件の閲覧回数
3件の返信
メッセージ1/4

Fusion360でのプログラミングについて

Anonymous
適用対象外

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を使う意味がなくなるので、なるべく標準機能でやりたいと考えています。

 

0 件のいいね
1,613件の閲覧回数
3件の返信
返信 (3)
メッセージ2/4

kandennti
Mentor
Mentor

gtofujiさん こんにちは

詳しくは無いので、知っている範囲で。

 

>1. Fusion360にエクスプレッション機能はありますか?

エクスプレッション機能に該当するものは恐らく無いと思います。

近いものはアセンブリの機能で、ジョイントを作成しモーションリンクを利用することで

可能かと思われます。[Fusion360 モーションリンク] で検索されると色々と動画が見つかると

思うので、一度参照されることをお勧めします。

https://www.youtube.com/watch?v=dYqJDNqw0nw

https://www.youtube.com/watch?v=FEBsiJy4RGU

 

>また、羽の枚数を変える場合、~

羽の枚数を変える場合は、エクスプレッション機能程の柔軟性はなく

ジョイント・モーションリンクの修正が必要なります。(作り方次第かも)

 

>2. Fusion360にはカスタムのUIを作る機能はありますか?

スプリクトを利用することで可能です。

こちらの動画の0:25頃に出現するダイアログは、任意で作成された

ダイアログです。(多分)

https://www.youtube.com/watch?v=2Nr0FTBc2As

 

>この相関を無視すると、羽の間に隙間が空いたり、干渉して動かなくなります。

干渉に関しては、接触セットと言う機能で可能です。

http://help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-1E4006FA-3270-4748-AA7E-48CCF141FFD8

隙間を押さえることは、ジョイント機能を工夫すれば可能かと思われます。

 

>この相関をスクリプトなりエクスプレッションなりで表現したいのですが、

任意の曲線を始点と終戦を0~1のパラメータとして、ジョイント・モーションリンク

として作成可能だったような気がしてます。

 

単に動画を作成するだけなのであれば、アニメーション作業スペースを利用することで

可能かと思われますが(チマチマ作業)、ご説明の内容からしてちょっと違う印象です。

 

又、スプリクトですが個人的な印象としてはかなり強力に感じています。

ここまでAPIをユーザーに公開しているCADソフトもナカナカ無いと思っています。

 

・・・最後に、Autodeskの回し者ではありません(端っこの方のユーザーです)

0 件のいいね
メッセージ3/4

Anonymous
適用対象外

丁寧な返信ありがとうございます。
質問する前にもざっと調べていて、返信後もう一度調べてみたんですが、やっぱりFusion360ではこうした作業はできないと感じました。

 

理由は「面倒くさすぎる」からです。質問メールの最後に書いたように、C++で大量のコードを書いてアプリケーションに入れれば、なんでもできます。
Fusion360自体(おそらく)C++で書かれているわけだし、私が使っているCINEMA 4DもC++で書かれているからです。
しかしそれだと、普通の人には使えないし、プロのプログラマーでもそれなりの時間と労力を要します。

 

エクスプレッションやカスタムUIの目的は、「自由度や機能を増やすこと」ではなく、「速く簡単にすること」です。
そのため、オブジェクトの下に置くことで標準機能をうまく利用し、必要なプログラムを最小化し、さらにプログラム自体も基本的な機能はGUI化されています。

 

具体的に説明しましょう。
まず、「https://www.youtube.com/watch?v=2Nr0FTBc2As」を見て一番頭にきたのは、解説者が概念説明しかしておらず、
全くプログラムを書いていない点です。これは、少なくともチュートリアルではありません。
チュートリアルというのは、0から始めて機能を一個づつ足して、ある程度まとまったものを作る過程(作業の流れ)を説明するものです。
長い場合は、ムービーを分割したり、途中を切ったり、早回しにしたりしますが、いきなり完成したプログラムを出して「これで理解しろ」というのはバカです。
言い換えると、いかにFusion360のスクリプト機能が使いにくいかをあらわしています。

 

CINEMA 4Dで簡単なチュートリアルを作ったので、比較してみてください。
解説ムービー
http://www.11moon.com/m200/Iris_Box/fin_expression.mp4

また、羽のSTLファイルも出すので、興味がある人は自分で作ってみてください。
http://www.11moon.com/m200/Iris_Box/fin4.zip

 

---

 

モーションリンクに関しては、まずムービーに解説音声が入っていません。これだと初心者はいろいろハマるでしょうね。
また、モーションリンクは「出来合い」のエクスプレッションです。
出来合いなので、多数のオブジェクトをリンクしたり、関係を非線形にすることができません。
おそらくスクリプト書けばできるのでしょうが、作りが古すぎて辛いです。

プログラム言語は、言語自体は50年前のC言語が今でも使われていて、その後進化したのはオブジェクト化やGUI化の部分だけです。
それも既に30年以上前のSmallTalkやHyperTalkで完成しているわけで、未だにそれさえ実装していないというのは、遅れてるなあと思います。

 

カスタムUIに関しては、自分のスクリプトで出したウインドウにスライダーを作ることはできるものの、
既存の機能やオブジェクトに追加することはできないようです(本家の掲示板によると)。
また、自分で作ったスライダーにアニメーションのキーを打つのもダメそうな気がします。

 

隙間や接触に関しては、基本的にモデリング段階で決まることです。
エクスプレッションやアニメーションはあくまで確認用で、問題があればモデリングまで戻ります。

 

それからアニメーションに関しては論外ですね。角度の制限が360度までしかできない。ネジとかどうやって打つんだろう。

 

Fusion360のスクリプト機能が強力というのは、おそらくCAD業界ではそうなんだろうけど、同時にCAD業界全体がえらく遅れているということでもあります。

 

メッセージ4/4

kandennti
Mentor
Mentor

CINEMA 4Dの素晴らしさを伝えてくださってありがとう。

ポリゴンなデータで多くの設計・開発が効率化され、

毎日定時退社出来る日を僕も夢見てますよ。

0 件のいいね