見出し画像

GELサマーインターン日記 DAY3

【Rhino×Grasshopper】パラメトリックに変化するモデルを作る

こんにちは。GELインターンの矢吹です。

石津さんにお題を与えていただき、画像からロジックを読み解き再現するというトレーニングをさせていただいています。

3日目スタート

今日は2つ目の課題に挑戦!

課題はこちら

画像1

おお、素敵なオブジェ!

これは、、いけそう!

今日は1日で完成させるぞ~

まずロジックの読み解きから

XY面でスライスしてみると、以下のことが分かる

- 各層の形、大きさ、メッシュの密度が変化している
- 形は中心が△、末端に行くほど〇に近づく→Fillet問題
- 大きさは中心から離れるほど小さくなる→中心からの距離でScaleか
- メッシュはベースの線の数は変わらない→各層でほしい点の数は同じ

順序を考えると、真ん中の一番太い部分から作っていくのがよさそう

作戦1のステップ図

1. Plane0に中心の三角形を作る(Filletできるもので)
2. Plane0から伸ばして、モデルの軸を作る
3. 軸を一定の距離で分割
4. 軸上の分割点で各層のPlaneを作る
5. 各層の中心からの距離リストを作る
6. 4を回転(5をremap)して三角形をOrient
7. 各層の閉じた線のサイズを変える(5をremap)
8. 三角形のFillet率を変える(5をremap)
9. 各層の閉じた線をxコに分割
10. 各層ごとにnコある分割点を順番につなげる
11. 各層ごとにnコある分割点をn-1番目とつなげる(shift1?)
12. 10.11のラインをベースにパイプに(重そう...)

修正1

スケールの変更が終ったところで、気づく

「あ、Filletするタイミングが先か、、しかもOrientしなくてもPlaneにそのままPolygon作れば操作しやすいじゃん」

ということで、ステップ8と7を入れ替えることに

また、orientするのではなく各層に作っているPlaneにPolygonを作ることでFilletの変数が扱いやすくなる

Before

画像2


After

画像3


Flip Matrixできない

画像4

なんで??

画像5

フリップマトリックスでは、データツリーが2Dマトリックスと同義である必要があります。この場合、行と列を入れ替えることができます。データツリーがそれよりも複雑な場合、FlipMatrixは機能しません。

{0; 0; 0}
{0; 0; 1}
{0; 0; 2}
{0; 0; 3}

3番目の軌跡のみが異なるため、問題ありません。ツリーがより複雑な場合:

{0; 0; 0}
{0; 0; 1}
{0; 1; 0}
{0; 1; 1}

その場合、Flip Matrixは、どの行と列を反転するかを理解しません。

この問題を解決するには、パスマッパーを使用する必要があると思います。

なるほど、今まで平面上でしか使ってなかったから問題なかったのか

修正2

**Flip Matrix→Path Mapper**

Path Mapperの使い方

チュートリアルサイト

画像6

画像7

修正3

いや、そもそも分割する前に、各層の三角形を作ったときにリストを整理しておけばいい

すると

Fllip Matrix を使えるように!階層問題は解決。

線のつなぎ方が??

画像8

せっかくできたと思ったら、なんだこれは!

点のリストを色々変えてみたけど、効率が悪いので明日は一からやり直し。中心から作るのは良い案だと思ったんだけどな、、、

Day04に続く

この記事が気に入ったらサポートをしてみませんか?