Grasshopper :: RhinoのGeometryを読み込む

RhinoにあるGeometryを読み込むには、[Params > Geometry]内にあるコンポーネントを右クリックして[Set 〇〇]で直接Rhinoで選ぶ必要があります。

【参考:様々なSet Point方法】

選択したいGeometryを直接選べる反面、数が多いと選択するのは面倒。。

そこで今回は、Geometryを自動で読み込む方法を紹介します。

 

レシピ

Geometryを読み込むには、通常[Geometry Pipeline]コンポーネントを使用しますが、レイヤー名やGeometryを細かく設定できません。

そこで、アドオンやPythonを使った他の方法についても紹介したいと思います。

 

[Geometry Pipeline]の場合

まずは通常の[Geometry Pipeline]です。

コンポーネントの[Layer][Name]をダブルクリックすると、テキストを直接入力できます。

また、[Type]のGeometryのアイコンをダブルクリックと、読み込むGeometryを指定できます。

シンプルに使える反面、複数のレイヤ名入力ができなかったり、4種類のタイプからしか選べなかったり、ちょっと不便です。

そこで、より便利なアドオンを使ってみました。

 

Human(アドオン)の場合

使用するアドオンは、「Human」です。

【ダウンロードサイト】

このHumanの[Dynamic Geometry Pipeline]を使うと、より設定が詳細にできます。

前回紹介した方法でレイヤを読み込み、[Layer Filter]に繋ぐと、複数のレイヤが選択できます。(ちなみにHumanにも、レイヤを読み込む[Layer Table]コンポーネントがあります。)

また、[Type Filter]には、Geometry名のテキストを入力します。”Hatch”や”Extrude”、”Block”など計9種類指定でき、”All”は全てを、”Default”では[Geometry Pipeline]コンポーネントと同じに設定できます。

注意点

[Geometry Pipeline]と[Dynamic Geometry Pipeline]コンポーネントは、常にRhinoを読み込んでいるため、Rhinoでの変更もリアルタイムで読み込みます。

これはこれで良いのですが、RhinoのGeometryの数が増えると、Rhinoで変更がある度に処理が行われ時間がかかってしまいます。[Lock Solver]で処理を止めておく手もありますが、やや面倒です。

そこでPythonでの方法を紹介します。

 

Pythonの場合

コードは以下の通りです。

入力側の[Layer]にはレイヤ名を、[x]には[Boolean Toggle]コンポーネントを繋ぎます。

Pythonを使った場合は

  • 何のGeometryを読むか細かく設定可能
  • 出力先をGeometryごとなど自由に設定可能
  • coerce○○で読み込むため、出力されるのは”Referenced”ではなくGrasshopper上に定義されたGeometryとなる。
  • 一度読み込むと、Recomputeするか[x]のTrue/Falseを切り替えるまで更新されない。

といった特徴があります。

 

シチュエーションによって、どの方法でGeometryを読むかは様々かと思うので、ケースに合わせて使い分けていただけたらと思います。

 

使用した主なコンポーネント
  • [Geometry Pipeline] (Params > Geometry > Geometry Pipeline)
  • [Dynamic Geometry Pipeline] (Human > Reference > Dynamic Geometry Pipeline)
  • [Python Script] (Maths > Script > Python Script)

コメントを残す