HomeArticlesModelViewerContact

構造xIT まだ間に合う、パラメトリックに構造計算を行う基本のキ その1

08 November, 2023 - 3 min read - Tags: Grasshopper

はじめに

この記事は、構造解析の中でも、パラメトリックな構造解析に興味のある人の入門になることを意図しています。 特に Rhinoceros とそのプラグインである Grasshopper を使用を想定としています。

単純梁などの部材単体をとってみると各入門書に理論式の記載があり、比較的理解しやすいものですが、部材が増えたり不静定次数が上がるとパラメーターが増えなかなかすぐには応力状態がつかみづらいことがあります。

これまではそういった静力学の問題は手計算で固定モーメント法やたわみ角法などで解く、または有限要素法などを用いたソフトを使用して解いてきたと思いますがそれぞれ一度検討するモデルをセットしてしまうとそのパラメータを変更することはなかなか手間のかかる作業です。

一方でパラメトリックに解析を行うことができるツールを用いることによって、容易に複数モデルに対して解析を行うことが可能になり、それにより、多くのモデルに触れることで力学への理解、モデルへの理解が進むことを私は期待しています。

Rhino + GH つかったパラメトリックデザインと聞くと、難しいことに感じられるかもしれませんが、形と力の関係を簡単にスタディできるツールとしてこの機会にぜひさわってみてください。

パラメトリックデザインとは

そもそもパラメトリックデザインとはどのようなものでしょうか。

パラメトリックデザインされたものといえば ザハ・ハディド・アーキテクツによるものが想起されるかもしれません。パラメトリックデザインについては、すでに様々な詳しい記事が存在するため、ここでは割愛し、代わりにこちらの記事が詳しかった t ため紹介します。

建築 パラメトリックデザイン| Parametric Design

実際にパラメトリックに構造解析する際には、どんな値をパラメーターにするかが重要になります。スパンなのか、断面なのか、自分が値を変化させて確認したいものが何なのかを意識してデータを作成しましょう。

Rhino と Grasshopper について

この記事では、Rhino と Grasshopper を使ったパラメトリックな構造解析について書いていきます。そもそも Rhino と Grasshopper とは何でしょうか。

Rhinoceros は Robert McNeel & Associates によって開発されている 3DCAD ソフトです。Wikipedia によると以下のように幅広い分野で使用されています。

このソフトウェアは、一般的にインダストリアルデザイン、建築、造船、ジュエリーデザイン、カーデザイン、CAD / CAM、ラピッドプロトタイピング、リバースエンジニアリング、プロダクトデザインに使われているだけでなく、マルチメディアデザインやグラフィックデザインの業界でも使われている。

Rhinoceros の機能の一つであるビジュアルプログラミング言語の Grasshopper もパラメトリックデザインの文脈で聞いたことがあると思います。以下は Wikipedia からの引用です。

ビジュアルプログラミング言語である Grasshopper は Rhinoceros 上でジェネラティブアルゴリズムを構築するために重要な機能である。建築意匠の分野ではこのコンピューテーショナルデザインを容易に可能にする機能が最近の建築意匠の大きな潮流のひとつであるパラメトリックモデリングの発展の一端を担っている。

特徴として公式で作成されている Food4Rhino というサイトで有償無償問わず、様々なプラグインが公開されており、それを使うことにより Rhino や Grasshopper 単体ではできない様々な機能を使うことができるようになります。

構造解析や環境解析、幾何計算の補助になるプラグインなど様々あるので興味があれば検索してみると面白いです。

インストール方法

Rhinoceros の最新版は Rhino6 です。こちらのバージョンをインストールしてください。Rhino6 では、Grasshopper がプラグインとして初めからインストールされていますので別途インストールする必要はありません。もし Rhino5 でやられる方は、初めからインストールされていませんので、インストールする必要があります。

インストールするためには、開発元の McNeel のサイトまたは、日本の販売代理店の アプリクラフト さんのサイトからダウンロードしてください。体験版もありますので、もしライセンスをお持ちでない方は体験版を使用してください。

McNeel 公式サイト

アプリクラフト 公式サイト(こちらはセミナー等の日本での情報も多いです)

Karamba について

karamba は Grasshopper 上で動作する FEM 解析のプラグインです。この記事で扱う構造解析はこちらのプラグインを使って構造解析を行っていきます。

開発の目的を開発者である Clemens Preisinger が出している karamba についての論文の Abstract の記述の翻訳したものを以下に示します。解析モデルと意匠モデルをシームレスにつなげることを目指して開発されており、Rhino で作成されたモデルをシームレスに構造解析に持って行くことができるツールになっています。

Clemens Preisinger が Bollinger + Grohmann Engineers と共同で開発した Karamba プラグインは、外からの荷重下での構造物の挙動を想定するために開発されました。エンジニアリング環境に限定されるのではなく、建築家が使用することを意図しており、構造モデルと幾何学モデル間のデータのシームレスな流れを可能にしています。

インストール方法

food4Rhino で ”karamba” と検索するとすぐに出てきますので、それを選択してダウンロードしてください。ダウンロードには food4Rhino への登録が必要なので合わせて登録してください。

ダウンロード後、インストールを行ってください。インストール時にライセンスを確認されます。ライセンスは、Free 版と Full/Trial 版、Education 版、PRO 版の 4 つがあります。

Free 版は要素数の上限などの機能制限がかかりますが、期限なしで使用することができます。Full/Trial 版では機能制限はありませんが、使用可能な期間に制限がかかります。ここでは制限にかかるものは扱わないので Free 版で問題ありません。

商用利用にはライセンスが必要になりますので注意してください。単年度版で 450 ユーロなので約 55000 円くらいになります。

Grasshopper と Karamba の起動方法

この記事では windows10、Rhino6 での環境を対象に使い方を説明します。ほかの環境の方は異なる部分がありますので注意してください。

まず Rhinoceros を起動してください。起動すると以下のような画面になります。バーの右の方に緑のバッタマークがありますので、そのボタンを押すと Grasshopper を起動させることができます。AutoCAD のコマンドのように Command の欄に Grasshopper と入力することでも起動することができます。

Grasshopper が起動した際、以下のようにリボンの中に "Karamba3D" があれば問題なく Karamba が使用可能な状態でインストールされています。

では以降では実際に Karamba を使用してパラメトリックな構造解析のやり方について説明していきます。

Rhino+GH+Karamba で 山型屋根の簡単なパラメトリック構造解析

はじめに

簡単な例題として、山形屋根の形状についてパラメトリックに構造解析を行っていきましょう。

ライズが変わったら?棟の位置が変わったら?境界条件が変わったら? 実際の設計においては様々な制約の中での変更が考えられます。

基本計画時にそういったパラメータについてどうなるかざっくり見ておくことが役に立つかもしれないので、こういったパラメトリックに解析できることは参考になります。

ではこれから Grasshopper で山形梁をパラメトリックに解析できるモデルを作ってみます。ここでは前章で紹介した以下のものを使用していきます。

  • Rhinoceros
  • Grasshopper
  • Karamba

完成した gh のデータは本記事の最後のリンク先にアップしてありますので必要に応じて使用してください。

パラメトリックにやる際に重要なことは、何をパラメーターにするべきかを決めることです。ここでは、山形の形状および境界条件をパラメーターとします。

では実際に作っていきましょう。まず Rhino を起動します。右側にある緑のバッタのボタンをおすと別のウインドウで Grasshopper を起動させることができます。

次に上部の File から NewDocument を選んで新しいドキュメントを作成します。

解析の元となるモデルの作成

karamba に対するモデリングは通常の FEM 解析ソフトで行うものに近いものになります。まずノードを作り、それを使い解析対象のラインやサーフェスを作りそれを用いて解析することができます。では作成していきます。

まずノードになるポイントを作成してきます。Vector カテゴリの Point サブカテゴリの中にある Construct Point をキャンバスにドラック&ドロップすることで配置することができます。Alt を押しながらコンポーネントを移動させると複製することもできます。

またキャンバスをダブルクリックすると窓がポップアップし、そこでコンポーネントの検索ができるようになります。そこで Construct Point と打つことでもポイントを作成することができます。始点、終点、棟になる点 の 3 点を作成しましょう。

Grasshopper のコンポーネントは左側が入力、右側が出力になります。

Construct Point に値を設定していきます。入力は X、Y、Z になっていますがこれらはそれぞれの座標の値になりますので、ここの値を変更することでポイントの位置を変えることができます。デフォルトでは (0, 0, 0)の座標となっています。

ここでは数値は NumberSlider を使って数値を変えていきます。NumberSlider は Params カテゴリの Input サブカテゴリに入っています。棟となる点を(5, 0, 2.5)、終点となる点を(10, 0, 0)に設定します。

NumberSlider コンポーネントはデフォルトで 0.000 ~ 1.000 の値の範囲のスライダーになっています。コンポーネントを右クリックし Values の値を変更することで値の max 値を min 値を変更することができます。値そのものをダブルクリックすることでスライダーの数値を直接入力することもできます。

Grasshopper で作成したものは Rhino のビューに反映されるのでそちらで設定があっているかの確認もできます。

ポイントが作成できたら次にライン作成します。ラインは Line コンポーネントを使って作成します。Curve カテゴリの Primitive サブカテゴリの中にあります。

A と B に入力する 2 つのポイントの入力になりますのでそれぞれを入力するとラインを作成されます。A が始点、B が終点になります。

Karamba 用に解析モデルを作成

モデルが作成されたので、ここから karamba に入力します。

LinetoBeam(Karamba3D)コンポーネントを使って Grasshopper の Line を karamba で解析可能な梁要素に変換します。LinetoBeam(Karamba3D)は Karamba3D カテゴリの 1.Model サブカテゴリにあります。

LinetoBeam(Karamba3D)コンポーネントは作成された梁要素の断面情報もここで入力することができるため、その点も作成します。断面の作成は 3.CrossSection サブカテゴリの CrossSection(Karamba3D)コンポーネントを使用します。断面は H 形鋼の H-400x200x8x13 として各入力に値を入れます。断面サイズの入力の単位が cm なので気をつけてください。

なお材料定数の設定もここで行いますが、デフォルトで鋼材のデータが入力されているので、ここでは割愛します。CrossSection(Karamba3D)コンポーネントの Material の個所にマウスオーバーすると値を確認することができます。

Tips として、Shift キーを押しながらコンポーネントに接続すると今コンポーネントに接続されているものに追加する形で入力することができます。また、入力した位置で左クリックを押したまま右クリックを押すと続けて別の位置に入力することができます。

境界条件は Support(Karamba3D)コンポーネントを使って作成します。1.Model サブカテゴリ内にあります。

コンポーネントのラジオボタンを選択することで境界条件を設定することができます。片端ピン、片端ローラーにしたいので 2 つ作成し、一つを Tx, Ty, Tz, Rx、もう片方を Ty, Tz, Rx をオンにしてください。そして、始点と終点をそれぞれにつなぎます。

作成後、AssembleModel(Karamba3D)コンポーネントでモデルをくみ上げ、ModelVeiw(Karamba3D)コンポーネントで可視化することができます。これにより作成した境界条件や荷重条件が Rhino のビューで確認できます。

AssembleModel(Karamba3D)コンポーネントは、1.Model サブカテゴリ内、ModelVeiw(Karamba3D)コンポーネントは、6.Result サブカテゴリ内にあります。

荷重条件は Loads(Karamba3D)コンポーネントを使用して作成します。2.Load サブカテゴリ内にあります。今回は自重と鉛直荷重として 3kN/m2 を設定します。

荷重の方向については鉛直下向きにかけたいので、UnitZ コンポーネントを使用します。これは Z 方向への単位ベクトルを作成するコンポーネントになります。UnitZ コンポーネントは Vector カテゴリの Vector サブカテゴリ内にあります。

そのままでは上向きのベクトルなので、negative コンポーネントを使用して下向きに向きを変えます。negative コンポーネントは、Math カテゴリの Operators サブカテゴリ内にあります。

重力は Type of Load が Gravity、梁要素荷重は Uniform Line になります。梁要素荷重は特定の ID の梁に対して与えるため、ここでは "roof" という ID を作成して、荷重の個所および梁要素の個所に適応しておきましょう。梁要素荷重の荷重の向きは全体座標系の鉛直下向きなので Orientation は global にします。

これで解析モデルが完成したので、Analyze(Karamba3D)コンポーネントに入れることで解析が実行されます。これは 5.Algorithms サブカテゴリ内にあります。Grasshopper は「解析ボタン」のようなものはないので、つないだ瞬間に FEM 解析が流れます。

解析結果は BeamView(Karamba3D)コンポーネントで確認することができます。これは、6.Result サブカテゴリ内にあります。

応力図を見る場合は SectionFroces で見たい値を選択することで見ることができます。

カラーコンターで応力度等を確認する場合は RenderSettings の部分で設定することで Rhino 側で図化されます。凡例は Legend コンポーネントを使用することで確認ができます。これは、Disply カテゴリの Graphs サブカテゴリ内にあります。カラーコンターの色合いの設定などは以下の Karamba 初期設定に関する記事を参照してください。

パラメトリックスタディ

これでモデルが完成したので、このモデルを使用して山形屋根の応力状態の変化を見ていきます。

まずは棟の位置を変えてみます。オレンジが曲げモーメント、水色が軸力の応力図です。棟の位置が片側によると軸力が出始めるのがわかります。

次は境界条件を変えてみます。両端をピン支点にすると部材に軸力が入り、棟の位置で曲げモーメントも上がるようになっており応力状態が大きく変わっています。

軸力が大きくなる形状、曲げが大きくなる形状、形によってバランスが変わることがパラメトリックに形状を変化させることですぐにわかります。

これで山形屋根を使ったパラメトリックな構造解析は終わりです。

参考データ

ここで解説した gh のデータは以下にアップしてあります。必要に応じて使用してください。

まとめ

今回は Rhino、Grasshopper、Karamba の導入方法と簡単なモデル作成とパラメトリックな構造解析の例を示しましたがどうでしたでしょうか。

弊ブログや Youtube チャンネルでは、これらを発展させた形で Grasshopper を使ったさまざまなことにチャレンジしているので、今回は簡単なものでしたが、この先にどのようなことができるようになるのか、興味がある方は参考にしてください

© 2024 hrntsm / Built with

Gatsby