RhinoやGrasshopperで3Dモデルを作成する際に、ジオメトリを自由に操作するための強力なツールがRhino.Geometryです。しかし、「名前は聞いたことがあるけど、よく分からない…」という初心者も多いのではないでしょうか?本記事では、Rhino.Geometryの基本的な概念と使い方を、分かりやすく解説します!
Rhino.Geometryとは?
Rhino.Geometryは、RhinoおよびGrasshopperのPythonスクリプト内で3Dジオメトリ(点、線、面、立体など)を扱うためのモジュールです。
これを使えば、プログラミングを通じてジオメトリを生成したり、変更したり、分析したりできます。
なぜRhino.Geometryが重要なのか?
- 柔軟なジオメトリ操作: スクリプトを使って複雑な形状を生成・制御できるため、手動では難しい作業が可能です。
- 自動化: 同じ処理を繰り返す場合、スクリプトを使えば一瞬で完了します。
- パラメトリックデザイン: 入力値を変更するだけでジオメトリを動的に変更できます。
Rhino.Geometryの基本クラス
Rhino.Geometryには、さまざまなジオメトリを表現するためのクラスが用意されています。以下に代表的なものを紹介します:
1. Point3d(点)
3D空間の点を表現します。
import Rhino.Geometry as rg
point = rg.Point3d(1, 2, 3) # 座標 (1, 2, 3) の点を作成
2. Line(線)
2点間を結ぶ線を作成します。
start = rg.Point3d(0, 0, 0)
end = rg.Point3d(5, 5, 0)
line = rg.Line(start, end)
3. Box(ボックス)
直方体を定義します。
corner1 = rg.Point3d(0, 0, 0)
corner2 = rg.Point3d(10, 5, 8)
box = rg.Box(rg.BoundingBox(corner1, corner2))
4. Curve(曲線)
様々な曲線を作成・操作します。
curve = rg.NurbsCurve.Create(False, 3, [rg.Point3d(0,0,0), rg.Point3d(5,5,0), rg.Point3d(10,0,0)])
Rhino.GeometryをGrasshopperで使う手順
- Grasshopperを開く: Rhino内でGrasshopperを起動します。
- Pythonコンポーネントを追加:
Mathタブ →Script→Python Scriptコンポーネントを配置します。 - スクリプトを記述: 上記のコードをPythonコンポーネントに貼り付け、入力・出力を設定します。
まとめ
Rhino.Geometryは、RhinoやGrasshopperの強力なジオメトリ操作モジュールです。
基本的なクラスを理解することで、点や線、ボックスなどを自由に作成し、複雑な3Dモデルを制御できます。
最初はシンプルなスクリプトから始め、徐々に複雑な操作に挑戦してみてください!