STUDIO TAMA

Rhinoceros & Grasshopper Utilities

© 2025 STUDIO TAMA

Day 16

レンガを積み上げる

#pattern#grid#transform#structure
レンガを積み上げる

✅ Inputs

- brick_w: float – レンガの幅(X方向)
- brick_h: float – レンガの高さ(Z方向)
- brick_d: float – レンガの奥行き(Y方向)
- num_x: int – X方向のレンガ数
- num_z: int – Z方向の段数
- gap_x: float – レンガ間のX方向隙間(横の目地)
- gap_z: float – レンガ間のZ方向隙間(縦の目地)

✅ Outputs

- results: list of Box – レンガブロックの集合体

✅ Code

import Rhino.Geometry as rg

# === 🔧 パラメータ例 ===
# brick_w = 200.0    # レンガの幅(X方向)
# brick_h = 60.0     # レンガの高さ(Z方向)
# brick_d = 100.0    # レンガの奥行き(Y方向)

# num_x = 20         # X方向のレンガ数
# num_z = 40         # Z方向の段数

# gap_x = 4.0        # レンガ間のX方向隙間(横の目地)
# gap_z = 4.0        # レンガ間のZ方向隙間(縦の目地)

# === 🧱 レンガ配置処理 ===
results = []

for z in range(num_z):
    z_pos = z * (brick_h + gap_z)
    is_odd = z % 2 == 1
    x_offset = - (brick_w + gap_x) / 2 if is_odd else 0

    for x in range(num_x):
        x_pos = x * (brick_w + gap_x) + x_offset
        base_pt = rg.Point3d(x_pos, 0, z_pos)

        box = rg.Box(
            rg.Plane(base_pt, rg.Vector3d.XAxis, rg.Vector3d.YAxis),
            rg.Interval(0, brick_w),
            rg.Interval(0, brick_d),
            rg.Interval(0, brick_h)
        )

        results.append(box)

ライセンス・利用規約

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