[Grasshopper]モデルを点群に変換・格納するPoint Cloudの使い方

[Grasshopper]モデルを点群に変換・格納するPoint Cloudの使い方 Grasshopperコンポーネント

モデルを点群に変換・格納する、Point Cloudの使い方について解説します。

見え方1
見え方2

グラスホッパー上では上の2つのどちらかで表されます。

本記事では、コンポーネントはアイコン表示になっています。

アイコン表示に変えたい場合、以下のリンク先の記事を参考にしてください。

モデルを点群に変換する

Point Cloudを使うことで、モデルを点群に変換することができます。

点群は、通常の点データとは異なり、複数の点の集合を1つのデータとして扱います。

点群を使うメリットとして、通常のオブジェクトよりもデータ軽くすることができることが挙げられます。

モデルを点群に変換する

使用コンポーネント:①Center Box ②Point Cloud

最初の例として、立方体を点群に変換してみます。

Center BoxのXとYとZ端子に、任意の辺の長さの数値を入力します。

今回は数値の100を入力しており、この数値は辺の中心から端までの距離なので、1辺の長さは200になります。

これにより、200×200×200の立方体が作成されます。

点群が作成される

その後、Center BoxをPoint Cloudにつなげます。

すると、立方体から点群が作成されます。

立方体を非表示

立方体を非表示にしてみると、点群で立方体が表現されていることが分かります。

通常の点と比較

追加コンポーネント:①Deconstruct Brep

通常の点データと点群のデータを比較して見ます。

Center BoxDeconstruct Brepにつなげることで、V端子から立方体の頂点の点データが出力されます。

Point Cloudと比較すると、通常の点データは1つ1つの点データに分かれています。

一方、Point Cloudは1つのデータにまとめられています。

このようにPoint Cloudは、複数の点の集合を1つのデータとして扱います。

球を点群に変換

使用コンポーネント:①Sphere ②Point Cloud

2つ目の例として、球を点群に変えてみます。

SphereのR端子に、半径の数値を入力します。

今回は、100を入力しています。

すると、球が作成されました。

点群が作成された

その後、SphereをPoint Cloudにつなげます。

すると、このように球から点群が作成されました。

球を非表示にしてみる

球を非表示にしてみます。

先程の立方体より点の数が多いため、点だけでも球だとより認識しやすいです。

離れてみる

離れてみると、より球だと認識できます。

使用する曲線

次は、より複雑な形態から点群を作成してみます。

ライノセラス上で作成した、上の画像のような曲線を使います。

使用例3

使用コンポーネント:①CurvePipeCap Holes ④Point Cloud

最初に、ライノセラス上の曲線を、Curveに格納します。

パイプが作成される

その後、CurvePipeのC端子につなげます。

さらに、PipeのR端子に、半径の数値を入力します。

今回は、10を入力しています。

すると、パイプが作成されます。

この状態だと開いているので、PipeCap Holesにつなげて、パイプを閉じます。

点群が作成される

その後、Cap HolesをPoint Cloudにつなげます。

すると、パイプから点群が作成されました。

パイプを非表示

パイプを非表示にしてみます。

このように、オブジェクトの形態が複雑であるほど、点群を構成する点の数は多くなります。

離れて見る

離れて見ると、より点群がパイプだと認識できます。

点群を格納する

点群を格納する

追加コンポーネント:①Reduce Point Cloud

Point Cloudに点群データを格納することもできます。

上の例は、Reduce Point Cloudで点群の点の数を減らし、再度Point Cloudに格納しています。

通常の点を格納してもまとまった点群データは作成できない

通常の点を格納する場合

使用コンポーネント:①Construct Point ②Point Cloud

通常の点を格納する場合を見てみましょう。

4点作成

今回は、4つのConstruct Pointを使い、4点作成しました。

1目は、数値を入力していないため、原点に点が作成されています。

2つ目は、X端子のみに数値の100を入力してるため、100,0,0の位置に点が作成されています。

3つ目は、XとY端子に数値の100を入力してるため、100,100,0の位置に点が作成されています。

4つ目は、Y端子のみに数値の100を入力してるため、0,100,0の位置に点が作成されています。

Point Cloudに格納

4つのConstruct Pointを、Point Cloudにつなげました。

すると、点群データに変わりますが、1つの点群データではなく、4つの点群データが生成されていることが分かります。

これは、4つの点が1つにまとまっているのではなく、1つの点から構成される点群データが4つ作成されているためです。

このように、通常の点を複数つなげても、まとまった点群データを作ることはできません。

ライノセラス上の点群データを格納する

ライノセラス上の点群データを、Point Cloudに格納することもできます。

使用するライノセラス上の点群データ

こちらが、今回使用するライノセラス上の点群データです。

ライノセラス上の点群データを格納する方法

まずは、ライノセラス上の点群データを格納する方法を見てみましょう。

メッシュ

ライノセラス上では、メッシュデータのみ点群データに変換して作成することができます。

PointCloud

コマンドに、PointCloudと入力します。

もしくは、上の画像のアイコンをクリックします。

メッシュを選択

その後、メッシュを選択します。

メッシュから点群が作成される

すると、このようにメッシュから点群が作成されます。

Point Cloudにライノセラス上の点群データを格納する

Set one Point Cloud

1つの点群を格納する場合、Point Cloudを右クリックし、Set one Point Cloudを選択します。

点群を選択

その後、ライノセラス上の画面に切り替わります。

格納したい点群を選択します。

点群が格納された

すると、点群が格納されました。

ライノセラス上の様子

ライノセラス上の様子です。

1つの点群を格納するということは、1つの点を格納することではないため、点群全体が格納されます。

複数の点群

次は、複数の点群を格納してみます。

Set Multiple Point Clouds

複数の点群を格納する場合、Point Cloudを右クリックし、Set Multiple Point Cloudsを選択します。

複数の点群を選択

その後、ライノセラス上で複数の点群を選択します。

複数の点群が格納された

すると、複数の点群が格納されました。

ライノセラス上の様子

ライノセラス上の様子です。

Point Cloudコンポーネントを使用しているグラスホッパー記事はこちら↓

コメント

タイトルとURLをコピーしました