![見出し画像](https://assets.st-note.com/production/uploads/images/138052175/rectangle_large_type_2_ca440b368b7ffb93dd0ddd993e551000.png?width=800)
Grasshopperで小屋をモデリング#3”柱頭の中心点を取得”
小さな小屋組をGrasshopperを使ってモデリングすることで、
Grasshopperに慣れる
モデリングでどんな場面でGrasshopperを使えるか考える
今のスキルで何ができて何ができないかを見つける
上記を目的として実践していく
前回は梁をモデル化した際にRhino上で引いた曲線を基に
梁をGrasshopperで生成したが
この方法だと以下の問題点があった
柱をベイクしてからの作業だから柱の高さ変更の際手戻りがある
梁芯はRhino上で作成したから柱の変更に追随しない
今回はこれらの問題を解決した
その手順は具体的には下記になる
柱頭の中心点を取得する
1.を基に梁断面の中心線をつくる
2.を基に梁の断面を生成する
梁の位置を調整する
3.と4.は前回の記事と同様の手順となる
今回は1.を書いていく
RhinoとGrasshopperは下記の記事の状態から始める
![](https://assets.st-note.com/img/1713709283920-BdRtfEhYEZ.png?width=800)
で、
すでに柱頭の中心点を取得するコンポーネントのセットが下図になる
![](https://assets.st-note.com/img/1713709432054-K5VpIVj0vz.png?width=800)
![](https://assets.st-note.com/img/1713709549454-FWhNA7Cxvg.png?width=800)
使用したコンポーネントは
・Area
・Deconstruct
・Construct Point
・Multiplication
・point
ちなみに上図のリスト内アイテム確認用はpointコンポーネントで出力した内容の確認用だ
List Itemを使うと指定したリスト内のインデックスを出力できる
![](https://assets.st-note.com/img/1713709897728-ByO6aJOWmU.png)
![](https://assets.st-note.com/img/1713709908944-6TBQVuCmUB.png?width=800)
本題だが
Areaコンポーネントを使うとオブジェクトの重心を得られる
![](https://assets.st-note.com/img/1713710088355-buyXc0tMLn.png?width=800)
ただ、これだけだとXY平面で見れば柱断面の中心を出力できているが
Z軸方向では柱高さの半分までの高さしか取得できない
そのため
Deconstructで重心の座標x,y,zを取得
このうちz座標の数値をMultiplicationで2倍にしてから
Construct Pointで柱頭高さに点を生成した
![](https://assets.st-note.com/img/1713710280271-5vMlJ7FBD9.png?width=800)
重心点を移動させるという考え方ならMoveコンポーネントでも
やりようによっては同じことができるかもしれない
ただ、Deconstructで一度座標をバラして
ほしいとこだけ重みづけする(倍率かけたり加算減算で調整する)方が
明瞭でシンプルだ
これにより
柱の高さとして使用しているNumber Sliderで
柱頭の中心点を調整できるようになった
![](https://assets.st-note.com/img/1713711018886-XWKqMdk0pi.png?width=800)
![](https://assets.st-note.com/img/1713711007683-KsbkOjjOAs.png?width=800)
この中心点を使って
次回は柱の高さに追随できる梁を生成する
この記事が気に入ったらサポートをしてみませんか?