Grasshopper :: Dataの様々なCull方法

今回は、リスト内のデータを”Cull”する方法についてです。”Cull”をググってみると、「選び出す、間引く、摘む」などといった意味があるようです。

つまり”Cull○○”という名前のコンポーネントは、”○○で選んでリストから除く”という操作になるかと思います。

それではレシピを見てみましょう。

 

レシピ

“Cull○○”コンポーネントと、それらと同じような機能をもつコンポーネントを並べてみました。

以下、機能ごとに解説いたします。

 

インデックスでCull

[List Item]コンポーネントは、リストのアイテムをインデックスで選ぶ操作になります。

[Cull Index]コンポーネントはその逆で、指定されたインデックスのアイテムを取り除く操作になります。

これらは、インデックスを返すコンポーネントと併用することが多いかと思います。

【参考:リストをメンバーごとに分ける】

 

序数(順番)でCull

[Cull Nth]コンポーネントは、○番目ごとのアイテムを取り除く操作を行い、[Cull frequency]に繋いだ数字がその番号となります。

上図では、2番目ごとのアイテムが取り除かれるため、[1,3,5,7,9]のインデックスのアイテムが除かれています。

ちなみに、[Cull frequency]に入力する数字は“1”を入力するとエラーになり、複数の数字を入力すると、その序数ごとにパスとリストが生成されます。

 

真偽でCull

[Cull Pattern]コンポーネントは、真偽でリスト内のアイテムを取り除きます。上図では、入力側の[Cull Pattern]に真偽のデータが繋がれ、真(”1″)のアイテムが残るようになっています。

また、リストのアイテム数よりも真偽のデータ数が少ない場合は、真偽のデータは繰り返されます。上図では、[0,1,0]が繰り返され、[0,1,0,0,1,0,0,1,0,0]となっていますね。

 

さて、このコンポーネントとよく似た機能をもつ[Dispatch]コンポーネントもあります。

[Cull Pattern]コンポーネントは取り除かれた方のアイテムは出力されませんが、[Dispatch]コンポーネントを使うと、両方出力することができます

 

この[Cull Pattern][Dispatch]コンポーネントは、下図のように条件分岐させたい時などによく使います。

ここでは、リスト内の数値が10以上かどうかで分けています。

“<“(より大きい)や”<=”(以上)で真偽を返すには、[Larger Than]コンポーネントを使います。その返された真偽を、[Dispatch]コンポーネントの[Dispatch Pattern]に繋いで完了です。

 

終わりに

データを特定の条件で選び出す際は、これらのコンポーネントを活用して見てください。

他にもCull○○コンポーネントはあるので、また別の機会に紹介できればと思います。

 

使用した主なコンポーネント
  • [Cull Index] (Sets > Sequence > Cull Index)
  • [Cull Nth] (Sets > Sequence > Cull Nth)
  • [Cull Pattern] (Sets > Sequence > Cull Pattern)
  • [Dispatch] (Sets > List > Dispatch)
  • [List Item] (Sets > List > List Item)

コメントを残す