見出し画像

Vectorworks版Ladybugツール 風配図・太陽軌跡・日射解析

RhinoのGrasshopperでLadybugツールを利用して環境シミュレーションをいろいろ試していました。

このツールはベースはpythonで作られており、おそらく他のCADでの利用も見越して、Rhinoの図形を扱う部分とメインの計算部分が明確に切り分けれられています。

Vectorworksにもマリオネットが搭載されており、pythonも扱えることからこちらでも使えるようにできないかと試行錯誤中です。

まだ試作段階ですが、とりあえずは動くようになった風配図・太陽軌跡・日射解析の3つを公開してみます。

(かなりバグに苦しめられたので、他のパソコンでの動作保証はできませんが、興味のある方は試してみていただければ。)

以下に簡単な使い方を書いておきますが、順次アップデートしていますので参考程度にお考えください。


風配図

風配図について。

北直線name・・・方位を示す直線を配置し、任意の名前をつけ、この欄にその名前を入力しておくとその向きを北とします。(空欄もしくはオブジェクトなしの場合は画面上側が北)

センター基準点name・・・3D基準点を配置し、任意の名前をつけ、この欄にその名前を入力しておくとそこに描画されます。(空欄もしくはオブジェクトなしの場合は原点に描画)

スケール・・・風配図のサイズ。1だと大きすぎるので適宜入力

データ・・・入力データの組み合わせ。例えばどの温度の風が各方位に吹いているか等の確認ができます。

開始月・終了月・・・描画するデータの月を指定。例えば、夏の風向を調べたりとか。

条件式・・・詳しくはノードの説明を見てください。例えばデータを「風速&外気温」、条件式を「20<b<25」とすると、通風に適した外気温20~25℃の風がどちらからどの程度の風速で吹くことが多いかを確認できます。

設定をして実行で風配図が描画されます。(色は要レンダリング)

太陽軌跡

期間・・・太陽を描画する期間

太陽半径・・・描画する太陽の半径

気温表示・・・太陽の位置に対応する外気温を色で表現します

以下略

日射解析

期間・・・積算日射量を計算する期間

グリッドサイズ・・・解析面をグリッドに分割するサイズ。現状では小さすぎると不安定になりクラッシュする可能性がありますので適宜調整(速度と安定性は今後の課題)

オフセット・・・計算上解析面から若干オフセットしたポイントで日射量を計算します。デフォルト値は100

センター基準点name・・・この3D基準点は原点からの移動距離になりますので、この位置に描画されるとは限りません。空欄にすると(0,0,0)となり、もとのオブジェクトの位置に重ねて表示されます。

解析オブジェクト・・・日射量を計算する面をもつ図形を条件指定で取得します。名前やクラスでまとめると良いかと。図形はメッシュにする際に三角形に分割されたりすることもあったり、不要な面が含まれて負荷が大きくなったりするため、図形の作り方は工夫したほうが良い場合がありそう。

遮蔽オブジェクト・・・日射量は計算しないが、日射を遮るもの(庇や周囲の建物など)の図形。地面もオフセット値以上の厚みで作成していないと、オブジェクトの底面が環境光を拾って日射量に算入されるっぽいです。

数値表示・・・解析ポイントの日射量をテキスト表示するかどうか。(レコードフォーマット書き出し機能を追加したのであまり使わないかも)

遮蔽オブジェクト複製・・・遮蔽オブジェクトを複製して描画するかどうか。入力用のオブジェクトを非表示にしていたり、位置をずらして表示したりする際に使えるかと。

レコードフォーマット書き出し・・・各解析面の結果をレッコードフォーマットに書き出すかどうか(添付ファイルと同じladybugレコードフォーマットを準備する必要あり)。書き出したものは「ladybug dataを表示」ノードで文字図形にできます。(解析グリッド図形のレコードフォーマットでwriteをFalseにすればその図形のデータは書き出されません。)

トータル文字サイズ・・・積算日射量のトータルもデフォルトで表示するようにしたのでそのサイズ(位置も基準点で指定)。

面をまとめる・・・grasshopperのMergeFacesに似たノードを追加。これをオンにすると、同じ面を三角形や四角形に分割せずにひとつにまとめるとともに、除外面高さにある下向きの面を除外します。


左が面をまとめるオフ、右がオン。オフが39秒、オンが31秒かかりました。
オフだと三角形で分割されたところに隙間が生じています。逆にオンだと、大小の長方形面が一つになり、その幅と高さで等分割されるため、凹部に隙間が生じています。

負荷が大きくまだ不安定ですが、うまくいけば描画ができます。もう少しグリッド小さくしたい・・・ バグを見つけてだいぶ早くなりました。

(描画されたら、保存後一旦ファイルを閉じて開き直したほうが軽くなります。)

終わりに

マリオネットが少しわかればノードをいじって出力した図形の色なんかを調整したりもできるかと思います。

まだまだ試作段階ですが、図面内にノードを配置できたり、レコードフォーマットを使えたり、Vectorworksならではの可能性を感じたところです。

他の2つは大丈夫かと思いますが、日射解析は負荷が大きく課題が残っていそうです。(grasshopperだともっとさくっと動いてます。)
具体的には、

・pythonの並列処理(並行処理?)がうまくいってるか分からない。速度を早められないか。
速度が上がらずともフリーズ・クラッシュしないようにするにはどうすればいいか。(データ形式に問題があるのか、負荷の大きい機能を削除すればいいのか)
メッシュへの変換方法が最適か分からない。もっとうまい方法がありそう。
・解析後不要なメモリを開放できないか。
・風配図でwindorose.pyかlegend.pyあたりでインポートエラーが出る場合の解決策


など解決できればと思いますが、これ以上できる自信がなかったりします。

もし、解決できそうなことがあれば、ぜひアドバイスもしくはご協力いただけると非常にありがたいです。(使ってみての感想やバグ報告などもいただけると嬉しい)

時間を掛けすぎたのでしばらくは他の仕事にウェイトを移したいと思いますが、grasshopperでやってた風環境解析、光環境解析、エネルギー解析もなんとかVectorworksで使えるようにしたいと思っています。

そうなれば、同一CAD上で環境シミュレーションもできるようになり、フットワークがかなり良くなるはず。

この記事が気に入ったらサポートをしてみませんか?