Grasshopper :: 数字か文字か判別する
今回は、Textが数字か文字か判別する方法についてです。ここでは、Grasshopperのコンポーネントを組み合わせる方法と、Pythonを使った場合を紹介します。
レシピ
はじめに、コンポーネントを組み合わせた場合です。
まず、[Text]コンポーネントにTextを格納し、[Number]コンポーネントに接続します。
すると、数字以外のTextは全て“<null>”が返されます。
これを[Null Item]コンポーネントに繋ぐと、出力側の[Null Flags]から真偽が返され、”<null>”のアイテムは”真”となります。
最後に、前回紹介した[Dispatch]コンポーネントに、[List]には元のTextを、[Dispatch Pattern]には真偽を繋ぐと、数字と文字でリストが分かれて完了です。
Pythonの場合
コードは以下の通りです。
方法は色々あるかと思いますが、今回は、try exceptを使ってみました。
tryでTextをint型にした際、数字ならば”num”に追加され、数字以外ならばエラーとなりexceptで処理され、”text”に追加されます。
また別の機会に他の分け方もしてみたいと思います。
使用した主なコンポーネント
- [Dispatch] (Sets > List > Dispatch)
- [Null Item] (Sets > List > Null Item)
- [Number] (Params > Primitive > Number)
- [Text] (Params > Primitive > Text)