ExplodePolysurfaces関数でポリサーフェスを分解する方法|Grasshopper Python × RhinoScriptSyntax入門

RhinoScriptSyntax GHPython
ExplodePolysurfaces

ExplodePolysurfaces関数で、ポリサーフェスを分解することができます。

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

分解

今回は、上の画像のように、ボックスを分解します。

コード

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

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つの頂点を使って直方体を作成する

exploded_box = rs.ExplodePolysurfaces(box, delete_input=False)
# 直方体を面ごとに分解する
# delete_input=False にすることで、元のボックスを残したまま分解する

choose_surface = exploded_box[0]
# 分解された面のうち、最初の面を取得する

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つの頂点を使って、ボックスを作成します。

exploded_box = rs.ExplodePolysurfaces(box, delete_input=False)

ExplodePolysurfaces 関数で、ボックスを面ごとに分解し、リストにまとめてくれています。

delete_input=False にすることで、元のボックスを残したまま分解を行っています。

delete_input=True にすると、分解する前のボックスデータ(今回は変数名が box のボックスデータ)が削除されます。

choose_surface = exploded_box[0]

exploded_box[0] では、分解されてできたサーフェスのリスト exploded_box の中から、インデックス番号0(1番目)のサーフェスデータを取得しています。

Python 3 Script」の右側の端子名を「box」に設定すると分解する前のボックスデータ、「exploded_box」に設定すると分解されたサーフェスデータ、「choose_surface」に設定すると1つ目の分解されたサーフェスデータがGH上に出力されます。

Comment

Translate »