ExtrudeSurfaceExtrudeSurface関数で、サーフェスを押し出すことができます。
本記事のGrasshopperファイルのダウンロードはこちら

今回は、上の画像のようにmサーフェスを押し出して、厚みのあるBrepモデルを作成します。

使用コンポーネント 1: Python 3 Script 2: Curve 3: Surface 4: Brep
import rhinoscriptsyntax as rs
# RhinoをPythonから操作するためのライブラリを読み込む
center_pt = (10,10,0)
# 四角形を作成する位置(基準となる座標)を定義
path_pts = ((10,10,0), (10,10,50))
# 押し出し方向を決めるための2点(開始点と終了点)を定義
rectangle = rs.AddRectangle(center_pt, 50, 50)
# 指定した位置に、幅50・高さ50の四角形(曲線)を作成
surface = rs.AddPlanarSrf(rectangle)
# 四角形から平面のサーフェス(面)を作成
path = rs.AddLine(path_pts[0], path_pts[1])
# 押し出しに使用する直線(パス)を作成
brep = rs.ExtrudeSurface(surface, path, cap=True)
# サーフェスを直線方向に押し出して立体を作成(cap=Trueで上下にフタをする)「Python 3 Script」には、上記のコードが記載されています。
順番に、コードの解説をしていきます。
center_pt = (10,10,0)center_pt = (10,10,0) では、四角形を作成する位置を座標で定義しています。
今回は、座標 10,10,0 を基準に、四角形を作成します。
path_pts = ((10,10,0), (10,10,50))path_pts = ((10,10,0), (10,10,50)) では、押し出し方向を決めるための2つの座標を、タプルで定義しています。
後ほど、指定した2つの座標をつなぐ線を作成し、作成した線を押し出しのパスとして使います。
rectangle = rs.AddRectangle(center_pt, 50, 50)AddRectangle 関数を使い、指定した座標を基準に、幅50・高さ50の四角形の線を作成します。
surface = rs.AddPlanarSrf(rectangle)AddPlanarSrf 関数で、閉じた四角形の曲線から、平面のサーフェス(面)を作成します。
path = rs.AddLine(path_pts[0], path_pts[1])AddLine 関数で、指定した2つの座標をつなぐ直線を作成します。
path_pts[0] では、path_pts のタプル内の1つ目の座標を取得し、path_pts[1] では、2つ目の座標を取得しています。
これにより、取得した2つの座標をつなぐ直線が作成されます。
この直線が、押し出しの方向(パス)として使われます。
brep = rs.ExtrudeSurface(surface, path, cap=True)ExtrudeSurface 関数で、作成したサーフェスを、直線方向に押し出します。
1つ目の引数ではサーフェス、2つ目の引数にはパスの線を指定します。
cap=True とすることで、閉じたモデルになります(指定しなくても、初期値は True)。

cap=False にすると、上の画像のように、モデルは開いた状態になります。
「Python 3 Script」の右側の端子名を「surface」に設定すると押し出しに使うサーフェスデータ、「path」に設定するとパスの線データ、「brep」に設定すると押し出されたBrepデータが、GH上に出力されます。




Comment