STUDIO TAMA

Rhinoceros & Grasshopper Utilities

© 2025 STUDIO TAMA

Day 3

Z方向に並ぶSin変位ルーバー

#grid#wave#structure#box
Z方向に並ぶSin変位ルーバー

✅ Inputs

count      : int型     複製数(例:20)
spacing    : float型   Z方向の間隔(例:2.0)
width      : float型   Boxの幅(Xサイズ)(例:5.0)
height     : float型   Boxの高さ(Yサイズ)(例:1.0)
depth      : float型   Boxの厚み(Zサイズ)(例:0.3)
amplitude  : float型   Sin波の振幅(例:2.0)
frequency  : float型   Sin波の周波数(例:0.3)

✅ Outputs

results    : List[Box] Z方向に波打つように配置されたルーバーBoxのリスト

✅ Code

import Rhino.Geometry as rg
import math

boxes = []

hx = width / 2.0
hy = height / 2.0
hz = depth / 2.0

interval_x = rg.Interval(-hx, hx)
interval_y = rg.Interval(-hy, hy)
interval_z = rg.Interval(-hz, hz)

for i in range(count):
    z = i * (height + spacing)

    y_offset = math.sin(z * frequency) * amplitude
    center = rg.Point3d(0, y_offset, z)

    plane = rg.Plane(center, rg.Vector3d.XAxis, rg.Vector3d.YAxis)
    box = rg.Box(plane, interval_x, interval_y, interval_z)
    boxes.append(box)

results = boxes

ライセンス・利用規約

項目可否説明
自身のプロジェクトへの組み込み個人・商用問わず、スクリプトや作品の一部として自由に使えます。
コードの改変・学習利用自身の学習や、目的に合わせたカスタマイズは大歓迎です。
SNSへのシェア・紹介作品の画像やURLのシェアは許可不要です。ぜひご紹介ください!
再配布・転載×コードやファイルを丸ごと自身のサイト等でコンテンツとして公開しないでください。
素材・プログラムとしての転売×本サイトの内容をそのまま、あるいは微調整のみで有料販売しないでください。
著作権表示・リンク任意必須ではありませんが、引用元としてリンクを貼っていただけると励みになります。
Day Day 3 - Z方向に並ぶSin変位ルーバー | Grasshopper Python 入門チュートリアル | STUDIO TAMA - Rhinoceros & Grasshopper Utilities