DuplicateEdgeCurvesでエッジ(辺)の線を取得する方法|Grasshopper Python × RhinoScriptSyntax入門

RhinoScriptSyntax GHPython
DuplicateEdgeCurves

DuplicateEdgeCurves関数で、エッジ(辺)の線を取得することができます。

本記事のGrasshopperファイルのダウンロードはこちら

今回は、上の画像のように、ボックスのエッジ線を取得します。

コード

使用コンポーネント 1: Python 3 Script 2: Brep 3: Curve

import rhinoscriptsyntax as rs
# RhinoをPythonから操作するためのライブラリを読み込む

corner_pts = [(0,0,0),(10,0,0),(10,10,0),(0,10,0),(0,0,10),(10,0,10),(10,10,10),(0,10,10)]
# 直方体を構成する8つの頂点座標を定義

box = rs.AddBox(corner_pts)
# 8つの頂点を使って直方体を作成する

edge_curves = rs.DuplicateEdgeCurves(box)
# 直方体のエッジ(辺)を曲線として複製する

choose_edge_curve = edge_curves[0]
# 複製されたエッジ曲線のうち、最初の1本を取得する

Python 3 Script」には、上記のコードが記載されています。

順番に、コードの解説をしていきます。

corner_pts = [(0,0,0),(10,0,0),(10,10,0),(0,10,0),(0,0,10),(10,0,10),(10,10,10),(0,10,10)]

corner_pts = […] では、ボックスを構成する8つの頂点座標を、リストで定義しています。

リストに関してはこちら

下側4点と上側4点を指定することで、ボックスの形状を決めています。

box = rs.AddBox(corner_pts)

AddBox 関数で、定義した8つの頂点を使って、ボックスを作成します。

edge_curves = rs.DuplicateEdgeCurves(box)

DuplicateEdgeCurves 関数で、ボックスのエッジ(辺)を、線として複製して取得しています。

取得した複数の線データは、リスト形式で取得されます。

インデックス番号0(1番目)のエッジ線
choose_edge_curve = edge_curves[0]

edge_curves はリスト形式になっています。

そのため、edge_curves[0] では、[0] を指定することで、インデックス番号0(1番目)のエッジ線を取り出すことができます。

Python 3 Script」の右側の端子名を「box」に設定するとボックスデータ、「edge_curves」に設定するとエッジの線データ、「choose_edge_curve」に設定すると取得したエッジの線データがGH上に出力されます。

Comment

Translate »