GrasshopperとExcelでデータを相互に出力する方法[Lunch boxプラグイン]

grasshopperでエクセルを使う方法 grasshopper

グラスホッパーを使用していると、エクセルにデータを書き出したり、逆にエクセルからグラスホッパーに出力したい場面があると思います。

そこで今回はグラスホッパー、エクセルのどちらにも相互に書き出す方法を解説します。

今回使用したグラスホッパー・ライノセラス・エクセルのデータダウンロードはこちら

Lunch boxプラグインをダウンロード

これを実行するためには下準備としてグラスホッパーのプラグインである「Lunch box」のインストールが必要になります。

Lunch boxダウンロードページはこちら

詳しいダウンロード方法は下のサイトで解説されているので是非参考にしてください。

Lunch boxのダウンロード方法の詳細解説はこちら

LuncnBoxのタブが追加されている

ダウンロードが完了すると、Grasshopper内にLunchBoxというタブが追加されています。

今回メインで使う2つのコンポーネント

今回主に使用するコンポーネントはExcel ReaderとExcel Writeです。

ここまでできたら下準備は完了です。

それでは順番に解説していきます。

グラスホッパーからエクセルに書き出し

複数の柱

今回はライノセラス上にある複数の柱のデータを例としてエクセルに書き出したいと思います。

エクセル上に体積と高さを書き出す

このように、エクセル上では1つずつ、柱の体積と高さをグラスホッパーを使い抽出します。

1つ目の全体コンポーネント

使用コンポーネント:①Brep ②Volume ③Deconstruct Brep ④List Item ⑤Deconstruct ⑥Entwine ⑦Boolean Toggle ⑧Excel Write

柱をBrepに格納

まずはライノセラス上の柱を全てBrepに格納してください。

柱を選択する順番

この際に、柱を選択する順番に気を付けてください。

選択した順番に最終的にはエクセルに書き出されます。

今回の場合には矢印の順番で選択しました。

Volumeで体積が分かる

その後、Volumeを使用することでV端子からそれぞれの柱の体積が抽出できます。

そしてDeconstruct Brepを使用することで、柱を点・線・面に分割することができます。

今回の場合、点を後ほど使用するのでV端子を使います。

List Itemで最も高い位置にある点を抽出

List Itemで最も高い位置にある点を抽出します。

この点の位置を利用することで、柱の高さが分かるようになります。

Flattenにする

現段階では点はxyzの3方向の情報を持っています。

そのため、Deconstructを使用することで高さの軸であるz軸の情報だけを抽出します。

その際に、z端子の右クリックしてFlattenにすることを忘れないでください。

Entwineの使用

Entwineを使用し、VolumeとDEconstructの結果を結合します。

上の画像のようにデータが結合されていれば大丈夫です。

Excel Writeを使用

Excel Writeを使用することでエクセルに体積と高さを書き出します。

Entwineの結果をData端子に接続します。

そして黄色のPanelを3つ用意します。

1つ目は出力したいエクセルの”パス”を入力してください。

パスを抽出

パスはファイルの上の部分をクリックすると青くなり、エクセルのファイル名まではコピーできます。

貼り付けた後に、エクセルの名前・拡張子を足してください。

そしてこのPanelをPath端子に繋げてください。

2つ目のPanelには”テスト”と入力します。

これにより、エクセル内でテストという名前のシートが作成され、そこに書き込まれます。

Worksheet端子に繋げてください。

Multiline Dataを選択

3つ目のPanelには体積と高さを入力します。

しかし、通常法方法では上の画像のように2段に分けて入力することができません。

そこでPanelを右クリックし、Multiline Dataを選択してください。

そうすると段落を作ることができるようになり、左の番号の0.1.・・・とすることができます。

これにより、Entwineで合体させたデータの中から、0番の体積、1番の高さにデータを連動することができ、エクセル上で数値の前に名前を出力することができます。

最後に、Boolean ToggleをClear端子に接続します。

これで完成です。

Boolean ToggleをダブルクリックすることでFalseがTrueに変わり、プログラムが実行されます。

エクセルに出力された結果

プログラム実行後はこのように新しくできた”テスト”という名前のシートに体積と高さのデータを出力することができました。

エクセルからグラスホッパーに書き出し

2つ目の全体コンポーネント

使用コンポーネント:⑨Excel Reader

2つ目にエクセルからグラスホッパーにデータを書き出す方法を紹介します。

使用するエクセルは、1つ目で作成したエクセルを使用します。

今回の場合は非常にシンプルです。

まずRead端子にスイッチの役割であるBoolean Toggleを繋げます。

その後、Path端子にエクセルファイルのパスを入力します。

そして、Worksheet端子に使用したいエクセルのシート名を入力します。

エクセルからデータを抽出

Boolean ToggleをTrueにするとスイッチが入り、データがグラスホッパー上に出力されます。

出力される順番として、1行目のデータ、2行目のデータ・・・という感じになります。

まとめ

grasshopperでエクセルを使う方法まとめ

今回はLunch boxプラグインを使用し、その中のExcel WriteとExcel Readerの2つのコンポーネントを使用しました。

そして、エクセルとグラスホッパー間のデータのやり取りの方法を解説しました。

是非ともこの方法を活用してみてください。

今回は以上になります。

コメント

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