ナビゲータの解析結果ツリー
本節では、左ドックのナビゲータから解析結果と振動荷重ケースを切り替える操作を 説明します。 葉ノードをクリックすると結果タブへ移り、選んだ内容に対応する表示が開きます。
実装参照:ツリーの構築は sepika_app::app::nav_results::build_result_tree が、葉ノードのクリック時の画面切替は sepika_app::app::App::apply_result_tree_action(crates/sepika-app/src/app/nav_results.rs)が行います。
解析結果ツリー
結果が存在する解析種別だけがノードとして現れます。 並び順は右ドックの解析パネルと同じです (静的解析 → 固有値解析 → 増分解析 → 時刻歴応答解析 → 質点系)。 いずれの結果もないときは「(未実行)」と表示されます。
解析結果
├── 静的解析
│ ├── (荷重ケース名)
│ ├── EX / EY
│ ├── (組合せ名)
│ └── …
├── 固有値解析
│ ├── 1次 (T=0.52 s)
│ └── …
├── 増分解析
│ ├── X方向
│ └── Y方向
├── 時刻歴応答解析
│ ├── サンプル X (線形)
│ └── …
└── 質点系
├── 固有値
│ └── 1次 (T=… s)
└── 時刻歴
└── サンプル X (線形・2次元)
静的解析
静的解析の結果を順に並べたあと、荷重組合せを同列の葉として続けます。 ユーザー荷重ケースはケース名のみ、地震静的は EX / EY、組合せは組合せ名のみです。 プレフィックスを付けないのは、ナビの階層ですでに「静的解析」と分かっているためです。
実装参照:ユーザー荷重ケースのラベルは sepika_app::app::nav_results::user_static_label、地震静的(EX / EY)のラベルは sepika_app::app::nav_results::seismic_static_label(crates/sepika-app/src/app/nav_results.rs)が作ります。
失敗・除外時の旧結果
線形静的解析で失敗・除外された対象の旧結果は、現行の結果と誤認しないよう結果ツリーから削除します。 地震以外のケースにも適用し、単体・組合せ・一括と同期・バックグラウンド実行で同じ扱いです。
| 実行対象と失敗箇所 | 削除する旧結果 |
|---|---|
| 荷重ケース単体の失敗・除外 | 該当ケースと、そのケースに依存する組合せ(今回未実行の組合せを含む) |
| 組合せだけの失敗・除外 | 該当組合せのみ |
| 共通前処理の失敗 | 単体なら該当ケースと依存組合せ、組合せなら対象組合せのみ、一括なら今回実行対象すべて |
| 標準 EX/EY の Ai 再生成失敗 | 準備計算での検出時点から、失敗方向の単体結果と依存組合せ |
一括解析の部分成功では成功した結果を更新し、全失敗でも該当する旧結果は残しません。 無関係な結果と今回の対象外の結果は保持します。 削除対象を表示していた場合は選択と関連する応力・検定キャッシュを解除し、保持した組合せの添字は選択先が変わらないよう対応し直します。 失敗・除外の理由は画面の案内とログで確認してください。
実装参照:sepika_app::app::actions::linear_static(crates/sepika-app/src/app/actions/linear_static.rs)が失敗・除外対象の結果削除と選択の解除・添字対応を行います。
固有値解析(立体)
各モード次数を N次 (T=… s) 形式で子ノードに並べます。
クリックすると 3D ビューアが、その次数のモード形に切り替わります。
実装参照:sepika_app::app::nav_results::eigen_mode_label(crates/sepika-app/src/app/nav_results.rs)が N次 (T=… s) のラベルを作り、クリック時は 3D ビューアがその次数のモード形に切り替わります。
増分解析
結果がある方向だけを X方向 / Y方向 として並べます。 クリックすると結果タブの増分解析パネルがその方向を表示します。
実装参照:sepika_app::app::nav_results::pushover_dir_label(crates/sepika-app/src/app/nav_results.rs)が X方向/Y方向のラベルを作り、クリック時は増分解析パネルがその方向を表示します。
時刻歴応答解析
結果がある立体の振動ケース名を、1 ケース 1 葉で並べます。 クリックすると結果タブの時刻歴グラフが、そのケースの結果に切り替わります。
実装参照:sepika_app::app::nav_results::vibration_case_label(crates/sepika-app/src/app/nav_results.rs)がケース名のラベルを作り、クリック時は時刻歴グラフがそのケースの結果に切り替わります。
質点系
2 つの子グループを持ちます。
- 固有値: 表示中の質点系モデルの各次数。ラベルは立体固有値と同じ
N次 (T=… s)形式 - 時刻歴: 結果がある質点系の振動ケース名
固有値の次数をクリックすると、3D ビューアが 質点モード に切り替わり、選んだ次数の モード形を球とばねで表示します。 表とグラフの「質点系」パネルではなく 3D 側を開くのは、モード形を架構と重ねて見るためです。 表示の根拠は 質点系の 3D 表示 を参照してください。
時刻歴のケースをクリックすると、結果タブの質点系パネルがそのケースの時刻歴を表示します。
実装参照:sepika_app::app::nav_results::lumped_vibration_case_label(crates/sepika-app/src/app/nav_results.rs)が質点系時刻歴のラベルを作り、固有値のクリック時は sepika_app::app::App::select_lumped_eigen_mode(crates/sepika-app/src/app/actions/lumped_mass.rs)が質点モードへ切り替えます。
振動荷重ケース
荷重ケース(静的)の直後、部材一覧の前に 振動荷重ケース セクションがあります。 静的な荷重ケースとは別系統です。 節点荷重や部材荷重を載せる入れ物ではなく、時刻歴を実行したときの波形・加振方向・ 線形/非線形(質点系では次元も)を表します。
解析を実行したときにだけ登録されます。 未実行の空ケースは作りません。 プロジェクトへ保存するときは、解析結果が最新のときだけ振動荷重ケースも残します。 モデル編集後に未再実行のまま保存して開き直すと、ケースは「(なし)」に戻ります。
振動荷重ケース
├── 立体時刻歴
│ └── サンプル X (線形)
└── 質点系
└── サンプル X (線形・2次元)
空のときは「(なし)」と表示されます。
実装参照:sepika_app::app::App::nav_vibration_cases(crates/sepika-app/src/app/nav_vibration.rs)が立体時刻歴・質点系のケースをツリー表示し、保存時は sepika_app::app::App::save_project_to_opts(crates/sepika-app/src/app/actions/io.rs)が解析結果が最新でない場合に振動荷重ケースを保存から外します。
ケース名
立体時刻歴: {波形名} {X|Y|X+Y} ({線形|非線形})
- 例:
サンプル X (線形)、elcentro Y (非線形) - サンプル波の波形名は
サンプルです。ライブラリ波は選択中のファイル名です
質点系: {波形名} {X|Y} ({線形|非線形}・{2次元|3次元})
- 例:
サンプル X (線形・2次元)
同名のケースを再実行した場合は、同じケースとして結果だけ置き換えます。 別名(方向や波形が違う場合)は別ケースとして残ります。 静的解析・固有値・増分解析の結果は、時刻歴の再実行では消えません。
実装参照:sepika_core::model::{spatial_vibration_case_name, lumped_vibration_case_name}(crates/sepika-core/src/model/vibration.rs)が表示名を組み立て、同名ケースの結果置き換えは sepika_core::model::Model::{upsert_vibration_case, upsert_lumped_vibration_case}(crates/sepika-core/src/model/vibration.rs)が行います。
クリック時の動作
| 葉ノード | 結果タブの表示 |
|---|---|
| 静的ケース / 組合せ | 3D/応力図(空間表示) |
| 固有値モード(立体) | 3D/応力図の N 次モード形 |
| 増分解析(X/Y) | 増分解析パネル |
| 時刻歴応答(ケース名) | 時刻歴グラフ(該当ケースの結果) |
| 質点系・固有値 | 3D/応力図の質点モード(N 次) |
| 質点系・時刻歴 | 質点系パネル(時刻歴再生) |
振動荷重ケース の葉をクリックすると、インスペクタに設定(波形・方向・線形/非線形、 質点系なら次元)が読み取り専用で表示されます。 結果がある場合のみ結果タブへ切り替わり、表示がそのケースの結果になります。
結果タブ上部の「表示対象」ドロップダウンも残っており、静的ケース/荷重組合せの 切り替えに使えます。
実装参照:sepika_app::app::App::apply_result_tree_action(crates/sepika-app/src/app/nav_results.rs)が葉ノードごとの結果タブ表示を切り替え、振動荷重ケースの葉は sepika_app::app::App::{focus_spatial_vibration_case, focus_lumped_vibration_case}(crates/sepika-app/src/app/vibration.rs)がインスペクタの表示対象にします。