16式機動戦闘車のマズルブレーキvsGrasshopper(後編)

 はい。前回はボディと9つの分割点まででしたがそれ以降をやります。

 前回作った鉛直の9段の座標をList itemという一つの値に対してリスト中のその行の値を抽出するコンポーネントと一つ一つの変数でそれぞれに分割していきます。

ウッ


 それを別に外周の円を7等分した点に合わせてz座標分移動させます。



中心軸の9つの点と円を7等分した点のz座標を一致させたょ

 こうなります。

  これらの点をそれぞれ円を56等分(n*π/28)した分だけ回転させていきます。Lineを引いた後にCircle、Extrude命令は座標の指定が面倒なのでPipe命令で処理していきます。


 Pipe処理する前の状態です。ねじった上でLineを引きました。


できました。Pipeはオプションでフラットなフタをしてソリッドにしています。(ブーリアンで処理するため)

 


 メインの円筒とは別に63個の円柱をブーリアンでぶっこ抜かないといけないのですが、データ形式としては「9つの穴を開ける7回の命令」を「63個の穴を開ける一つの命令」にするためにmerge(複数の変数を統合)し、Flatten tree(一つの数列の流れに統合)というコンポーネントにつないでまとめます。(まとまってないと未完成の円筒が7つできたりします)この辺は行列やテンソルがわからないとしんどいポイントです…

階層的なデータ構造が解体されてただの羅列になっています。


 先ほどの円柱を円筒にして、さらにブール演算をさせます。画像は間違えていて、BooleanDiffernceです。



できました。やったぜ。


あまり意味はないのですがパラメータが可変なのでいろいろ作ってみました。


 いろいろわかりにくいと思うので、全体の概観としてはこんな感じです。いやこれ伝わらないと思いますが、お疲れさまでした。


0 件のコメント:

コメントを投稿

C101告知

  お世話になっております。特に何もなければC101にサークル参加の予定です。 当日は対戦よろしくお願いいたします。plaxma_y