Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ヒンジ図の表示

表示モード「ヒンジ」では、増分解析(プッシュオーバー解析)で発生したヒンジの 位置を 3D ビュー上にマーカーで可視化します。どの部材のどちら側の材端から 塑性化が進んだか、どの端が終局に達したかを一目で確認できます。

増分解析の実行が前提です。増分解析が未実行の場合は、ヒンジ図の代わりに 解析の実行を促す案内のみを表示します。

実装参照:sepika_app::viewer::hinge::draw_hinge(crates/sepika-app/src/viewer/hinge.rs)がマーカーと未実行時の案内を描き、sepika_app::viewer::hinge::show_hinge_detail_window がクリック時の詳細ウィンドウを表示します。

ヒンジの集約

増分解析の結果は、閾値(ひび割れ・降伏・終局)を超過している間、同じ 部材・材端のヒンジ発生を毎ステップ記録します (曲げヒンジ判定(Mc・My・終局))。 ヒンジ図では、部材・材端(i端/j端)ごとにこれらを 1 件へまとめたうえで マーカーを表示します。集約後の1件は次を保持します。

  • 最高レベル: 記録されたレベルのうち最も進行したもの (ひび割れ < 降伏 < 終局)。
  • 最大塑性率: 記録された中での最大の塑性率 \( \mu \)。
  • 初出ステップ: そのヒンジが最初に記録された増分ステップ。

実装参照:sepika_app::viewer::hinge::aggregate_hinges(crates/sepika-app/src/viewer/hinge.rs)が部材・材端ごとに最高レベル・最大塑性率・初出ステップを保持する 1 件へ集約します。

マーカーの表示位置と色

マーカーは各部材端(i端=elem.nodes[0] 側、j端=elem.nodes[1] 側)の近く に描きます。節点の直上に描くと同一節点に集まる複数部材のヒンジが重なって 判別できなくなるため、材軸に沿って材端から中点側へ 10% だけ寄せた位置に 塗りつぶし円で表示します。

色はヒンジレベルを表します。

  • ひび割れ: アンバー系の色の塗りつぶし円。
  • 降伏: 赤系の色の塗りつぶし円。
  • 終局: 紫系の色の塗りつぶし円。目立たせるため外周にリングを重ねて描く。

実装参照:sepika_app::viewer::hinge::hinge_marker_screen_pos(crates/sepika-app/src/viewer/hinge.rs)が材端から材軸方向へ 10% 内側の位置を求め、sepika_app::viewer::hinge::draw_hinge がレベル別の色と終局の外周リングを描きます。

凡例とホバー詳細

ビュー左上に、レベルごとの色見本と件数(集約後の件数。ステップ間の重複は 含まない)を表示します。

部材の近く(8 px の許容距離)へポインタを重ねると、その部材にヒンジが 記録されていれば、i端・j端それぞれについて「i端: 降伏 (μ=2.31, step 12)」 のように、レベル・最大塑性率・初出ステップをツールチップで表示します。 ヒンジが記録されていない部材にはツールチップを表示しません。

実装参照:sepika_app::viewer::hinge::draw_hinge_legend(crates/sepika-app/src/viewer/hinge.rs)がレベル別の件数付き凡例を描き、sepika_app::viewer::hinge::show_hinge_tooltip が i端・j端の集約情報をツールチップ表示します。

ヒンジ詳細ウィンドウ

ヒンジが記録された部材をクリックすると、「ヒンジ詳細: 部材 #N」ウィンドウ (開閉・リサイズ可能)が開き、その部材のヒンジ状態を詳しく確認できます。 ウィンドウは他の表示モードへ切り替えても、閉じるまで表示されたままです。

ウィンドウの先頭には、上記と同じ i端・j端の集約ヒンジ情報(レベル・最大 塑性率・初出ステップ)に加えて、使用した解析モデル(材端集中ばね/ファイバー/ マルチスプリング/その他)と履歴則(集中ばね)を示します。続けて採用する 曲げ面と、表示中のステップを示します。材端集中ばねは非線形ばねが強軸(局所 z) のみに作用し弱軸は弾性のため、表示を強軸(Mz)に固定します。ファイバー・ マルチスプリングは最終ステップで i端・j端のうち絶対値が大きい成分の軸を 採用します。

表示ステップはスライダーで選べます。対象は増分解析が確定したステップ列で、 既定は最終ステップです。選んだステップの軸力(圧縮正、引張は負値)は材端集中ばねの M-θ 骨格へ反映し、N-M 図ではそのステップの応答点をマーカーで強調します。

実装参照:sepika_app::viewer::hinge::show_hinge_detail_window(crates/sepika-app/src/viewer/hinge.rs)がウィンドウを開き、sepika_app::viewer::hinge::effective_bend_dir_z が解析モデルに応じて採用する曲げ面を決め(集中ばねは強軸固定)、sepika_app::viewer::hinge::dominant_bend_axis_z がファイバー系の最終ステップの支配軸を判定し、sepika_app::viewer::hinge::hinge_step_selector が表示ステップのスライダーを表示します。骨格・曲面は sepika_element::factory::build_hinge_view で解析と同じ計算経路から取得し、sepika_app::viewer::hinge::ensure_hinge_view がキー一致の間キャッシュします。

M-θ カーブ(荷重変形カーブ)

ヒンジが記録された部材であれば常に表示します。縦軸はその材端の曲げモーメント \( |M| \)(採用した曲げ面の成分、絶対値)で、増分解析の全ステップに渡る i端・j端それぞれの応答を折れ線で示します(ヒンジが記録されている端のみ)。 選択ステップの点をマーカーで強調します。

横軸は解析モデルで異なります。

  • 材端集中ばね: 解析が端ばねに対して実際に使う端ばね変形 \( |\theta_s| \)(= 弦からの材端回転 − 可撓梁の材端回転)。骨格がこの 変形に対して定義されるため、応答経路と骨格で基準を揃えます。
  • ファイバー/マルチスプリング: 弦からの材端回転 \( |\theta| \)。

材端集中ばねの部材では、背景に解析で使用した M-θ 骨格(バイリニア/ トリリニア等)を重ねます。この骨格は解析要素が初期載荷時にたどる包絡線 (初期・降伏・降伏後枝)であり、除荷・再載荷を含む履歴ループそのものでは ありません。このとき応答経路と骨格は、非線形ばねが作用する強軸 (\( M_z \)・\( \theta_z \))で統一します。ファイバー・マルチスプリングの 部材は固定の骨格を持たないため、応答経路のみを表示します。

実装参照:sepika_app::viewer::hinge::m_theta_series(crates/sepika-app/src/viewer/hinge.rs)が全ステップの材端応答を抽出し、sepika_app::viewer::hinge::draw_m_theta_plot がヒンジが記録された端の折れ線・集中ばねの骨格・選択ステップのマーカーを描きます。

N-M 相関図

N-M 相関図は、解析モデルに応じて内容が変わります。

  • 材端集中ばね: N-M 線形相関 \( M = M_{y0}\,(1 - |N|/N_{\text{許容}}) \) を 2D で表示し(横軸 \( M \) [kN・m]、縦軸 \( N \) [kN] 圧縮正、引張は負値)、応答経路を 重ねます。応答経路は非線形ばねが作用する強軸(\( M_z \))で表示します。 N-M 相関を用いない履歴材料(武田型等)の場合は、その旨を表示して N-M 図を出しません。非線形化は強軸(局所 z)のみで、弱軸は弾性です。
  • ファイバー/マルチスプリング: 上段に N-My-Mz 相関曲面(軸力と 2 軸の曲げ モーメントがなす 3 次元の耐力曲面)の 3D ワイヤーフレームを格子線で表示し、 下段に採用曲げ面での 2D スライス(正曲げ側・負曲げ側の 2 本の曲線)を表示 します。3D 曲面の軸は My・Mz・N(引張を正)、2D スライスの縦軸 \( N \) は圧縮正・引張負(3D 曲面の \( N \) は引張正)です。応答経路(各ステップで i端・j端のうち合成曲げ \( \sqrt{M\_y^2+M\_z^2} \) が大きい方の端の \( (M\_y, M\_z, N) \))を、無載荷状態(原点)を始点として折れ線で重ねます。 マウス操作は左ドラッグで回転、 右ドラッグで平行移動、スクロール(ピンチ)でズームです。
  • その他(壁・ブレース・線形・側柱等): N-M 図を表示しません。

ファイバー/マルチスプリングの 3D 曲面は、解析要素が実際に生成するファイバー 配置に、解析と同じ経路で解決した実効降伏強度を与えて算定した全塑性曲面です。 ファイバー分割は、断面形状が未定義(壁断面を含む)の場合は幅方向×せい方向の 格子(ファイバー梁は 12×20、マルチスプリングは 2×5)を、形状が定義されている 場合はその形状に応じた板・円環分割(nw×nd には依らない)を用います。 解析本体は非線形のファイバー積分で応答を決めるため、この曲面が解析の全塑性挙動 そのものではなく、同じ断面・材料・強度の入力を可視化したものです。硬化は考慮 しません(初期耐力としては安全側)。劣化は考慮しないため、劣化後の耐力はこの 曲面より低下しうる点に注意してください。

断面または材料の情報が不足して曲面を算定できない場合は、表示できない旨を案内します。

実装参照:sepika_element::factory::build_hinge_view(crates/sepika-element/src/factory/hinge_view.rs)が解析と同じファイバー分割・材料解決で骨格・N-M 相関・曲面を算定し、sepika_app::viewer::hinge::draw_mn_linear_plot/sepika_app::viewer::hinge::draw_mn_plot(crates/sepika-app/src/viewer/hinge.rs)が応答経路を重ねます。

ファイバー断面の塑性化マップ

ファイバー定式化の部材(ファイバー梁・マルチスプリング梁)で、ヒンジが記録された ものにのみ表示します。マルチスプリング梁は端部塑性化域を粗く分割したファイバー梁と 同じ定式化のため、ファイバー梁と同様に断面内の状態を表示できます。ヒンジのある端 (i端・j端)ごとに、終局(最終確定ステップ)時点のその端に最も近いガウス点 断面を選び、断面内のファイバーを位置 (y, z) の散布図として表示します。両端に ヒンジがあれば 2 断面を横に並べます。

  • 色は材料区分を表します: コンクリート(母材格子)はグレー系、主筋 (鉄筋)は赤系、鋼材(形鋼・鋼管・内蔵鉄骨)は青系です。プロット下に色見本 の凡例を表示します。
  • 降伏状態は明度と形状で重ねて表します: 降伏比 \( |\varepsilon|/\varepsilon_{\text{ref}} \) が 1 未満のファイバーは 材料色を淡くした色(未降伏)、1 以上のファイバーは材料色そのまま+外周 リングで強調し(降伏)、さらに引張ひずみは丸、圧縮ひずみはひし形で区別 します。
  • 主筋・鋼材(点ファイバー)は、母材格子のファイバーよりやや大きい円・ ひし形で描き、視認性を高めています。
  • 見出しに断面位置(材軸位置 \( \xi \)。−1 側が i端、+1 側が j端)と、 「降伏ファイバー n/全 m」を表示します。
  • 断面の外形線を、ファイバー点より目立たない中間色の細線でファイバーの背後 に重ねて表示します。角形鋼管・鋼管・CFT など中空断面は、外側輪郭に加えて 内側輪郭(中空部の境界)も描くため、ファイバー配置が断面形状(中空か中実 か、外形寸法)と対応しているかを目視で確認できます。

実装参照:sepika_app::viewer::hinge::draw_fiber_maps(crates/sepika-app/src/viewer/hinge.rs)が端ごとに最も近いガウス点断面を選んで散布図を並べ、sepika_app::viewer::hinge::draw_fiber_scatter が材料区分の色と降伏状態の明度・形状を描き分けます。

データがない場合

増分解析結果に部材応答履歴(M-θ・N-M 応答経路のもとになるデータ)がない 場合(結果ファイルが本機能の追加前に生成されたものである場合など)は、 再解析すると詳細を表示できる旨を案内します。

実装参照:sepika_app::viewer::hinge::draw_hinge_detail_content(crates/sepika-app/src/viewer/hinge.rs)が応答履歴の有無を判定し、ない場合は再解析を案内します。