見出し画像

RhinoのモデルとGH構造解析の同期ー平面モデルー

Rhinoのレイヤーから、平面の骨組みモデルを自動で読み込んで、断面力を算出します。

※この記事はシリーズになっておりますので、初めての方は下の記事をご覧ください。

使用方法

問題設定

以下の問題を解いてみましょう。

レイヤー生成

ghファイルを開くと、左上にレイヤー作成ボタンがあります。
クリックすると、Rhinoにレイヤーが生成されます。

モデリング

Rhinoでモデリングしていきます。
まず骨組みです。
等分布荷重がかからない骨組みの部分は「骨組み(荷重なし)」
等分布荷重がかかる箇所は「等分布荷重部材1」に入力します。
等分布荷重がかかる部材が増える場合は、「等分布荷重部材2,3」とレイヤーを変えて入力していきます。

ピン接点がある場合は、「ピン接点」レイヤーにPointを入力します。

次に境界条件です。
今回はピン支持なので、「ピン支持」レイヤーにPointを打ちます。
他の支持条件の場合も同様にしてください。
ローラー指示の場合は、左右の変位が自由の場合は「ローラー左右」上下の変位が自由の場合は、「ローラー上下」のレイヤーに入力してください。

最後に集中荷重を入力します。
集中荷重が加わる点にPointを打ちます。
集中荷重ごとにレイヤーを変えてください。

荷重条件設定

grasshopperの画面に戻って、集中荷重と等分布荷重の大きさ向きをそれぞれ入力していきます。
今回は、
集中荷重1レイヤーに入力した加力点は、右向き5kN
等分布荷重1レイヤーに入力した等分布荷重は、下向き3kN/mとなります。

結果の表示

最後に、下にある断面力ケースを選択することで、モーメント、軸力、剪断力をそれぞれ表示することができます。

ghの解説

それではこれから、ghの組み方を説明してきます。

レイヤー作成

レイヤー読み込みクラスターの中身を説明します。

LunchBoxにある「CreateLayers」コンポーネントを使用することで、レイヤー作成が行えます。

オブジェクト読み込み

Rhinoのオブジェクトを、humanにある「Dynamic Geometry pipeline」で読み込みます。
レイヤーごとにツリー分けされるので、「Explode Tree」で、分割して出力しています。

梁要素作成

まずは骨組みを構成していきます。
それぞれのLineを「Line To Beam」で梁要素に変換します。
レイヤーごとにIdという、グループ分けをしておきます。

それぞれ読み込んだLineを入れていくのですが、載荷点や部材交点は、部材が分割されている必要があります。
そこで、点線分割クラスターを使用して分割します。
Line同士は、Karamba3Dの「Line Line intersection」を使用して分割できるのですが、Pointでは分割できません。
そこで、載荷点などのPointは、Y方向に伸ばしたLineに変換することで組み合わせています。

トラスレイヤーは、両端ピンの梁要素として模擬しています。
Joint-Agentコンポーネントを使用し、idを「truss」、回転をJoint definitionのRy(Y軸の回転)をチェックします。
チェックした箇所が自由になるのですが、この後紹介する「Support」コンポーネントは逆にチェックした箇所が拘束されるのでご注意ください。

節点は、「joint-Ageet」のToGeom端子に回転自由にしたい点を入力することで入力できます。

支持条件

「Support」コンポーネントに、それぞれ入力していきます。
ConditionsのTは変位、Rは回転を扱います。
x,y,zはグローバル座標を示します。
黒丸をつけると、拘束します。

集中荷重

集中荷重は、載荷点ベクトルで指定します。
載荷点を「pos|Ind」に、ベクトルを「Force」に入力します。
number sliderからX方向のベクトルとしてまず指定し、Rotateで力の向きに回転させています。

Rotateは反時計回りに回転させます。Value Listで、矢印の方向ごとに回転角を出力させます。

等分布荷重

等分布荷重は、「Beam Loads」コンポーネントに入力します。
荷重を入力する梁部材のIdを「Beam|Id」端子に
荷重ベクトルは集中荷重と同じようにベクトルを「Force」に入力します。

解析の実行

ここまでのデータを、Assembleコンポーネントのそれぞれの端子に入力します。
この時、データがツリー状になっていると別の解析になってしまうので、全てFlattenしましょう。
それをAnalyzeコンポーネントにつなぐと解析が回ります。

結果の表示

「model view」にanalyzeからのmodelをつなぐ事で、解析条件を可視化することができます。
それぞれ、何を表示するか示しますが、一部わからないところがあるので詳しい人は教えてください…

いよいよ断面力を可視化します。
「Beam View」コンポーネントに、analyzeからのmodelを繋ぎます。
それぞれ何を表示するか示します。
断面力は、M=モーメント N=軸力 V=剪断力
右下のxyzは要素の座標系で、x=材軸 y=せい方向 z=幅方向です。

モーメント、軸力、せん断力をそれぞれ表示するBeam Viewコンポーネントを並べて、Valu listを使ってどのBeam Viewに入力するか指定します。

まとめ

構造力学の問題が色々解けるようになりますね
材料と断面をうまく指定すれば、変位の問題や剛比の問題も解けるようになると思います。
ぜひ色々と改良してみてください。