2022年9月19日月曜日

【Grasshopper_69】Grasshopperの「ネットワークサーフェス」機能について

今回は自由曲面作成でおなじみのネットワークサーフェス機能について調べてみました。

結論から先に述べると、Grasshopper上で連続性を指定するサーフェスを作成するのは困難であることがわかりました。いつかは実装してもらいたい機能の一つではありますね。


1. Network Surfaceとは

Rhinocerosに実装されているNetwork Surface機能は、接する4つのサーフェスに対し連続性を指定してサーフェスを作成する機能になります。滑らかな自由局面を作成する際に有効な機能ですね。

ひとまず、上の図のように高さ違いのサーフェス2枚と接続する2本の曲線をサンプルとして用意しました。

ネットワークサーフェス機能を使って、4つのエッジを選択します。サーフェスに接続する箇所は曲率連続、曲線に接続する箇所は位置連続を選択します。

※サーフェスエッジと曲線がダブっているときは、選択するときにどちらを選ぶか指定するためのウィンドウが表示されますので、サーフェスエッジの方を選択します。

ゼブラマッピングを確認。サーフェスの接続部分が滑らかにつながっていることがわかります。

2. GrasshopperのNetwork Surfaceコンポーネント

Grasshopper上にもNetwork Surfaceという名称のコンポーネントは存在します。Rhinoと同じ機能なのかと思われますが、実際は異なります。

Helpを表示すると、U方向とV方向のエッジを入力する部分がCurve指定となっています。つまり、Surfaceの情報を入力することができないので、サーフェスの法線方向などの情報が入らず、位置連続のみしか設定されないということになります。

お試しで、冒頭のサンプルを使ってNetwork Surfaceコンポーネントを呼び出してサーフェスを張ってみます。

ゼブラマッピングで確認。サーフェス接続個所のゼブラが左右でずれており、位置連続になっていることがわかります。

ちなみに、C入力は連続性を指定する個所かなと思われますが、この部分は、Network Surfaceコンポーネントの出力結果が2枚以上になった際の、互いの連続性を決めるものとなっており、内側の連続性を決める項目になります。

3. 代替手段

Webで調べてみると、Grasshopper上でスクリプトを組み、RhinoのNetwork Surface機能にアクセスして使う方法があるみたいです。

以下のmcneel公式掲示板に掲載されているnetSrf2.ghです。
既にコンポーネント化されてるので、そのままダウンロードして使用可能です。

エッジの入力はBrep形式となっており、曲線を入力する場合はExtendコンポーネント等を使って仮のサーフェスを作る必要がありますが、Grasshopper上でもお手軽にネットワークサーフェスを利用することができそうです。

ただし、使用する上での注意点ですが、隣接する4つのサーフェスのエッジ番号を指定する必要があります。これが適当だと形が崩れた状態になってしまいます。

枚数が数枚程度ならそれほど苦ではありませんが、大量にサーフェスを生成する場合は1枚ずつ別個にサーフェスのエッジ番号を指定する必要があるため、かなり使い勝手が厳しいなという印象です。

Rhinocerosの次期アップデートでさらに使い勝手の良いコンポーネントが追加されることを期待したいです。

0 件のコメント:

コメントを投稿

【Grasshopper_105】三角形の中に円を敷き詰める方法

今年もいよいよ残すところあと1カ月を切りました。今年最後の投稿となりますが、三角形の枠の中に円を敷き詰めるサンプルの作り方を書いてみたいと思います。三角形が正三角形に近いほどドットの間隔が一定になります。面積がバラバラだと密度の濃淡が出てしまうので調整が難しいかもしれません。