[Grasshopper]直方体の木材を長く増やしながら積み重ねた柱の作成方法を解説[データも配布]

grasshopper

今回は、グラスホッパーで直方体の木材を長く増やしながら積み重ねた柱の作成方法を解説します。


本記事では、コンポーネントはアイコン表示になっています。


全体の様子

全体の様子1
全体の様子2
全体の様子3
全体の様子4
全体の様子5

上5枚の画像は、グラスホッパーの様子です。

全体の様子6
全体の様子7
全体の様子8
全体の様子9
全体の様子10

上5枚の画像は、ライノセラス上に書き出した様子です。

レンダリング

上の画像は、最終的にレンダリングした様子です。

それでは、順番に解説していきます。

今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら

ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。

全体コンポーネント

全体コンポーネント:①Construct PointLineDivide CurveSeriesCull IndexList LengthDispatchPointUnit XUnit YMoveNegativeList ItemCurve MiddleMergeRotateVector 2Pt ⑱Extend Curve ⑲Perp FramesRectangleDistanceAreaLoftCap HolesGroup ㉖Square ㉗DivisionAdditionUnit ZSurfaceExtrudeDeconstruct Plane

画像をクリックして拡大して見る
画像をクリックして拡大して見る
画像をクリックして拡大して見る
画像をクリックして拡大して見る
画像をクリックして拡大して見る
画像をクリックして拡大して見る

基準線を作成する

まずは、基準となる線を作成していきます。

点

Construct Pointを、2つ用意します。

そして、1つのConstruct PointのZ端子に、高さの数値を入力します。

今回は、6000を入力しています。

すると、0,0,0の原点と0,0,6000の座標の位置に、点が作成されました。

線

その後、2つのConstruct Pointを、Lineにつなげます。

すると、上の画像のように、2つの点をつなぐ線が作成されます。

分割点

その後、Lineを、Divide CurveのC端子につなげます。

そして、Divide CurveのN端子に、分割数に数値を入力します。

今回は、40の数値を入力しています。

すると、上の画像のように、線を40に分割する位置に点が作成されました。

数値

その後、SeriesのN端子に、数値の1を入力します。

さらに、SeriesのC端子に、個数の数値を入力します。

今回は、20の数値を入力しています。

すると、0から始まり1ずつ増加する数値が、20個作成されました。

そして、Seriesを、Cull IndexのI端子につなげます。

さらに、Divide CurveのP端子を、Cull IndexのL端子につなげます。

点を削除

すると、上の画像のように、0~20番目の点が削除されました。

奇数偶数

その後、Cull Indexを、DispatchのL端子につなげます。

そして、DispatchのAとB端子に、それぞれPointをつなげます。

すると、上の画像のように、奇数番目と偶数番目の点をそれぞれ取得することができます。

点を移動

その後、Cull Indexを、List Lengthにつなげます。

すると、残っている点の個数の数値を取得することができます。

そして、List Lengthを、SeriesのC端子につなげます。

さらに、SeriesのSとN端子に、400の数値を入力します。

すると、400から始まり、400ずつ増加する数値が、点の個数分だけ作成されます。

その後、Seriesを、Unit XUnit Yにそれぞれつなげます。

そして、Unit XUnit Yを、それぞれDispatchにつなげます。

その後、Unit Xを、1つ目のMoveのT端子にはそのままつなげ、2つの目のMoveのT端子には、Negativeの途中に入れてつなげます。

Negativeにつなげると、数値にマイナスが掛け算されます。

さらに、Unit Yを、1つ目のMoveのT端子にはそのままつなげ、2つの目のMoveのT端子には、Negativeの途中に入れてつなげます。

すると、上の画像のように、各点が移動します。

点をつなぐ線

その後、1つ目のMoveNegativeを使った方のMoveを、それぞれLineにつなげます。

すると、点をつなぐ線が作成されます。

これで、基準となる線が作成できました。

直方体の木材の元となる線を作成する

次に、直方体の木材の元となる線を作成していきます。

直方体の木材の元となる線を作成する

2つのLineを、それぞれList itemCull IndexのL端子につなげます。

さらに、List itemCull Indexのi端子には、0の数値を入力します。

線をそれぞれ取得

すると、上の画像のように、List Itemでは1地番最初の線を、Cull Indexでは残りの線を取得できました。

分割

その後、Cull Indexを、List Lengthにつなげます。

すると、Cull Indexで取得した線の本数の数値を取得できます。

そして、List Lengthを、SeriesのC端子につなげます。

そして、1つのSeriesのSとN端子には、数値の2を入力します。

すると、2から始まり2ずつ増加する数値が、線の本数分だけ作成されます。

また、2つ目のSeriesのS端子には1、N端子には2の数値を入力します。

すると、1から始まり2ずつ増加する数値が、線の本数分だけ作成されます。

その後、Seriesを、Divide CurveのN端子につなげます。

さらに、Cull IndexのL端子を、Divide CurveのC端子につなげます。

すると、上の画像のように、線の分割点が作成されます。

中点

その後、List Itemを、Curve Middleにつなげます。

すると、上の画像のように、線の中点を取得できます。

データを結合

その後、Curve MiddleDivide CurveのP端子を、Mergeにつなげます。

すると、上の画像のように、点のデータが結合されます。

その後、Lineを、RotateのG端子につなげます。

さらに、90の数値を、RotateのA端子につなげます。

この際に、RotateのA端子を右クリックし、Degreesを選択してください。

これにより、入力した数値を、角度の度数で扱うことができます。

回転

すると、他の線と重なって分かりにくいですが、上の画像のように、線が90度回転します。

中点

その後、Rotateを、Curve Middleにつなげます。

すると、上の画像のように、回転した線の中点を取得することができました。

Graft

この際に、Curve MiddleのM端子を右クリックし、Graftに設定してください。

その後、Curve Middleを、Vector 2PtのA端子につなげます。

さらに、Mergeを、Vector 2PtのB端子につなげます。

すると、回転した点の中点から各分割点までのベクトルを取得できます。

その後、Vector 2PtのV端子を、MoveのT端子につなげます。

この際に、MoveのG端子を右クリックし、Graftに設定してください。

そして、Rotateを、MoveのG端子につなげます。

線を移動

すると、上の画像のように、回転した線が分割点に移動しました。

線を延長

その後、2つのMoveのG端子を、Mergeにつなげます。

すると、各線データが結合されます。

そして、Mergeを、Extend CurveのC端子につなげます。

さらに、Extend CurveのL0とL1端子に、延長する線の長さの数値を入力します。

今回は、どちらにも1000の数値を入力しています。

すると、上の画像のように、線の長さを延長することができました。

線データを結合

その後、Extend Curveと、一番最初に使用した縦向きである線のLineを、Mergeにつなげます。

これで、直方体の木材の元となる線を作成することができました。

直方体の木材を作成する

次に、直方体の木材を作成していきます。

直方体の木材を作成する

まず、先程のMergeを、Perp FramesのC端子につなげます。

さらに、1の数値を、Perp FramesのN端子につなげます。

すると、各線の両端に作業平面が作成されます。

直方体の木材の厚みの数値

直方体の木材の厚みの数値を取得します。

上の画像のように、Divide CurveのP端子を、2つのList ItemのL端子につなげます。

1つ目のList Itemのi端子には0、2つ目には1の数値を入力します。

2つの点

すると、上の画像のように、最初の2つの点を取得できました。

この2つの点の間の距離が、直方体の木材の厚みの数値になります。

2つのList Itemを、Distanceにつなげます。

これにより、2つの点の間の距離の数値を取得できました。

正方形

そして、Distanceを、RectangleのXとY端子につなげます。

さらに、Perp FramesのF端子を、RectangleのP端子につなげます。

すると、上の画像のように、線の両端に正方形の線データが作成されました。

線の中心に移動

正方形を、線の中心に移動させます。

RectangleのR端子を、Areaにつなげます。

すると、正方形の中心点を取得できます。

さらに、Perp FramesのF端子を、Deconstruct Planeにつなげます。

すると、設定した作業平面の原点を取得できます。

そして、AreaのC端子を、Vector 2PtのA端子につなげます。

さらに、Deconstruct PlaneのO端子を、Vector 2PtのB端子につなげます。

すると、正方形の中点から線の端までのベクトルを取得できます。

そして、RectangleのR端子を、MoveのG端子につなげます。

さらに、Vector 2PtのV端子を、MoveのT端子につなげます。

すると、上の画像のように、正方形の中心が線の端に移動しました。

直方体の木材

その後、Moveを、LoftのC端子につなげます。

すると、2つの正方形の線データをつなぐサーフェスが作成されます。

そして、Loftを、Cap Holesにつなげます。

すると、サーフェスが閉じ、直方体の木材が完成しました。

Flatten

この際に、Cap Holesを右クリックし、Flattenに設定してください。

そして、Cap Holesを、Groupにつなげて、直方体の木材をグループ化します。

これで、1つの直方体の木材を長く増やしながら積み重ねた柱の完成です。

各グリッドの中心に配置する

次に、作成した直方体の木材の柱を、各グリッドの中心に配置していきます。

各グリッドの中心に配置する

SquareのS端子に、1つのグリッドの1辺の長さの数値を入力します。

今回は、20000を入力しています。

さらに、SquareのExとEy端子に、XとY方向のグリッド数の数値を入力します。

今回は、どちらにも5の数値を入力しています。

グリッド

すると、上の画像のように、5×5のグリッドが作成されました。

グリッドの中心点

その後、SquareのC端子を、Areaにつなげます。

すると、上の画像のように、各グリッドの中心点を取得できました。

Flatten

この際に、AreaのC端子を右クリックし、Flattenに設定してください。

各グリッドの中心に配置できた

その後、AreaのC端子を、Vector 2PtのB端子につなげます。

さらに、一番最初に使用した原点0,0,0の位置の点データのConstruct Pointを、Vector 2PtのA端子につなげます。

屋根の厚みを付ける

最後に、屋根の厚みを付けます。

グリッドを移動

Distanceを、DivisionのA端子につなげます。

さらに、2の数値を、DivisionのB端子につなげます。

すると、木材の厚みの半分の数値を取得できます。

そして、最初の方に使用した高さの数値である6000を、AdditionのA端子につなげます。

さらに、Divisionを、AdditionのB端子につなげます。

すると、一番上の木材の上側までの高さの数値を取得できます。

そして、Additionを、Unit Zにつなげます。

さらに、Unit Zを、MoveのT端子につなげます。

また、SquareのC端子を、MoveのG端子につなげます。

すると、上の画像のように、グリッドが一番上の木材の上側の高さまで移動しました。

サーフェス

その後、Moveを、Surfaceにつなげます。

すると、上の画像のように、グリッドからサーフェスを作成できました。

屋根の厚み

その後、屋根の厚みの数値を、Unit Zにつなげます。

今回は、200の数値を入力しています。

そして、Unit Zを、ExtrudeのD端子につなげます。

さらに、Surfaceを、ExtrudeのB端子につなげます。

これで、屋根に厚みを付けることができました。

これで完成なので、今回は以上になります。

コメント

Translate »
タイトルとURLをコピーしました