kangarooでテンセグリティのシミュレーション

こんにちは。AMDlabの端山です。

今年の夏に、研究室の先輩や同期と一緒にkangarooを用いたシミュレーションの練習としてテンセグリティを扱ったので、今回はその個人的な復習もかねてgrasshopperを用いてテンセグリティをモデリングし、物理演算プラグインであるkangaroo2を用いて簡単にシミュレーションを行う方法を紹介致します。

※テンセグリティとは

バックミンスター・フラーによって提唱された構造システムで、圧縮材と引張材で構成されていますが圧縮材が互いに接続されておらず、浮遊感があることが特徴です。建築に活用された事例は少ないですが、パビリオンやインスタレーション、什器等に用いる試みもされています。

モデリング

今回は底面が三角形のテンセグリティを作っていきます。

まず、圧縮材を作成し、メッシュ分割まで行ってしまいます。メッシュ作成の際には隣り合う要素同士が同じ節点を共有するように注意しましょう。(これが出来ていないと要素が接続されていると判定されません。)

次に、圧縮材の端点を結んで引張材を作成します。その後圧縮材の時と同様にメッシュ分割を行います。

ここまで来たらモデリングは終了です。

計算条件の設定

ここからはシミュレーションに必要な計算条件を準備します。

まず材料特性と断面諸元を定義しましょう。ケーブル材には引張のみを負担させるため、メッシュ数を2以上として作成し、曲げ剛性を定義していません。

Kangarooでは線材の曲げ剛性の定義にはAngle、軸剛性にはLineコンポーネントを用います。それぞれ回転ばねと単純ばねを用いて定義されています。断面二次モーメントや断面積の計算には今回はGHPythonを用いていますが、演算コンポーネントを用いて計算しても構いません。

次に荷重と拘束条件を設定します。

RigidPointSetコンポーネントでは上面の三点間の相対的な位置を固定し、上面が崩壊することを防いでいます。拘束にはAnchorXYZコンポーネントを用いて変位を制限しています。Trueを入力した方向の変位を拘束することが出来ます。Strengthには入力荷重(Weighting)の1000倍の値を入力することで、常に十分な強度で拘束することが出来るようにしています。荷重はLoadコンポーネントを用いて作成し、Floorコンポーネントによって下底に地面を作成しています。

これまでに作成した条件をmergeによってまとめ、Solverコンポーネントに入力します。

メッシュ分割後のモデルはShowコンポーネントをかませてから入力するように注意しましょう。

ビジュアライズ

出力される結果は入力同様線データなので、pipeコンポーネント等を用いて断面を作成します。

シミュレーション結果の線データはSolverのOのうち、Showコンポーネントを入力したブランチに対応して出力されています。荷重定義の際のWeightingと名前を付けたNumberSliderを操作することで載荷し、シミュレーションを行うことが出来ます。

想定される荷重に対して耐えることが出来るかなどの見通しを立てるには役立つのではないのでしょうか。今回はモデルとしてテンセグリティを扱いましたが、線材作成⇒メッシュ作成⇒断面性能、荷重、拘束条件設定の手順を踏むことで他のモデルでもシミュレーションが可能です。他にも多くの便利な機能がkangarooにはありますのでぜひ試してみてください。

ARTICLES