画面構成と工程タブ
SEPIKA の画面は、上部の工程タブ、左右のアイコン列とドック、中央のビュー、下部のドックと ステータスバーからなります。工程タブは解析の流れ(モデル→荷重→解析→結果→設計→レポート)に 沿って並びますが、進行をロックしません。構造設計は断面変更と再計算を繰り返すため、 いつでも前の工程へ戻ってモデルを編集できます。
本節では、画面の構成と、ドック・ログ・stale(要再計算)・断面編集の現行挙動を紹介します。 準備計算の内容とモデル整合性チェック(診断)は 準備計算、結果の表示は 結果の表示を参照してください。
実装参照:工程タブは sepika_app::app::Tab(crates/sepika-app/src/app/mod.rs)が表し、タブ切替時のドック配置は sepika_app::app::App::apply_tab_preset(crates/sepika-app/src/app/actions/mod.rs)が設定します。
工程タブとドックの初期配置
上部ツールバーに、ファイル操作、工程タブ、Undo/Redo のボタンを置きます。工程タブは モデル・荷重・解析・結果・設計・レポートの 6 つです。
工程タブのクリックは、その工程に適したドック配置へ切り替えるプリセットとして働きます。 以後のドック開閉・パネル切替の手動変更は妨げません。
| タブ | 切替時の初期配置 |
|---|---|
| モデル | 左ドックにナビゲータ、下ドックにモデル表、右ドックにインスペクタ |
| 荷重 | 左ドックにナビゲータ、下ドックに荷重表、右ドックにインスペクタ |
| 解析 | 右ドックに ① 準備計算、下ドックにログ |
| 結果 | 左ドックにナビゲータ、右ドックにインスペクタ |
| 設計 | 右ドックにインスペクタ |
| レポート | 変更なし |
結果が陳腐化しているときは、結果タブ・設計タブの見出しに「⚠」を付けます(stale)。
実装参照:タブ見出しの stale マークは sepika_app::app::App のツールバー描画(crates/sepika-app/src/app/mod.rs)が Staleness::results_stale を見て付けます。
左右のアイコン列(ドック)
左右の端に、ドックを開閉するアイコン列を常時表示します。対象のドックが開いていてそのパネルが アクティブならクリックで閉じ、それ以外は開いてそのパネルをアクティブにします。
- 左アイコン列:ナビゲータ、作成パレット
- 右アイコン列:インスペクタ、① 準備計算、静的解析、固有値、増分解析、時刻歴応答、質点系
右アイコン列は、ウィンドウが低いときに縦スクロールして質点系まで操作できます。パネルの切替時や Tab / Shift+Tab でフォーカスを移したときは対象アイコンが見える位置へ移動します。選択したまま 手動でスクロールした位置は保持します。Enter / Space でもフォーカス中のアイコンを操作できます。
右ドック本体の内容も、アイコン列とは独立して縦スクロールできます。① の番号は準備計算の 見出しにだけ付けます。各解析パネルの先頭には 最終実行時刻と stale 表示を出します。左右ドックは境界をドラッグして幅を変えられます。
実装参照:左右のアイコン列は sepika_app::app::panels::activity_bar(crates/sepika-app/src/app/panels/activity_bar.rs)が描き、アイコンは assets/icons/ の SVG です。
中央の 3D ビューの操作
中央の 3D ビューは、左ドラッグで回転、右ドラッグで平行移動(パン)、スクロール(ピンチ)で ズームします。回転は水平ドラッグが鉛直軸まわり、垂直ドラッグが俯仰のターンテーブル方式で、 ロールしないため建物の鉛直軸は常に画面で縦に保たれます。回転・パン・ズームの操作割り当ては 3D を描く全てのビューで共通です。ズームは、ポインタがそのビューの描画領域にあるときだけ 反応します(重なったポップアップの手前側だけが反応します)。
実装参照:回転・パン・ズームの入力は sepika_app::viewer::camera::CameraState::apply_pointer_input(crates/sepika-app/src/viewer/camera.rs)が担います。
下ドックとステータスバー
下ドックのタブは、ログ・モデル・荷重・準備計算・診断です。
- ログの見出しには件数を付けます。
- 準備計算は陳腐化しているとき「準備計算 *」と表示します。
- 診断は最新で不備があるとき「診断 (E…/W…)」とエラー・警告の件数を表示します。
ステータスバーのアイコンでも下ドックを開けます。ファイル名には未保存の変更があるとき 「●」を付け、実行中はジョブ名と経過秒を表示します。解析結果の状態は ✓ 最新 / ⚠ stale / ▷ 未実行 の 3 つです。直近のエラーは 1 行で表示し、クリックすると 下ドックを開いてログタブへ切り替えます。右端には部材・節点・断面の件数を表示します。
実装参照:下ドックのタブとステータスバーは sepika_app::app::panels::status_bar(crates/sepika-app/src/app/panels/status_bar.rs)が描きます。
イベントログ
イベントログは、セッション内の出来事(エラー・注意・ジョブの開始と完了など)を時系列で 保持し、下ドックに表示します。レベルは 情報・注意・エラーの 3 段階で、時刻は アプリ起動からの経過時間です。保持件数の上限は 1000 件で、超えたものは古い順に捨てます。
- エラーはステータスバーの 1 行表示とログの両方へ反映し、下ドックを自動で開きます。 エラーが埋もれると解析結果を誤って信頼しかねないためです。
- 注意はステータスバーとログへ反映しますが、自動では開きません。
- 情報はログのみに残します。
実装参照:ログは sepika_app::app::{LogLevel, LogEntry, EventLog}(crates/sepika-app/src/app/mod.rs)が保持し、発行は sepika_app::app::App::{report_error, report_notice, report_info}(crates/sepika-app/src/app/actions/mod.rs)に集約しています。
ナビゲータと選択の連動
左ドックのナビゲータは、階・部材グループ・断面・材料・荷重ケース・結果ケースなどのツリーです。 ナビゲータの選択と、3D ビューのピック、下ドックのテーブル行は双方向に連動します。 解析結果ツリーの操作はナビゲータの解析結果ツリー、 荷重ケースのツリーは荷重の入力を参照してください。
3D ビューの部材選択
通常の部材選択では、現在表示している部材本体を対象にします。線材表示では線、断面表示では 塗られた面と輪郭を選べます。断面が未定義などで線だけを表示する部材は、その線が対象です。 断面の補助中心線、結果図、注記や強調表示は、選択対象を広げません。
- 面内・境界や、線・輪郭の描画幅内にある部材を優先します。複数の本体に重なる位置では、 最後に描かれた本体を選びます。
- 本体に直接重ならない位置では、線・輪郭から 8 px 以内の最も近い部材が候補になります。 同じ距離では、最後に描かれた本体を優先します。
- H 形などの塗られていない空隙は面として選べません。輪郭から 8 px 以内なら近傍候補になります。
ポインタを重ねたときの通常の部材強調とクリックは、同じ候補に対応します。モデル化図・検定比図・ ヒンジ図の部材情報もこの候補に対応します。検定比図の節点情報や免震支点の専用情報が優先される 位置では、通常の部材強調を重ねません。ViewCube や手前のウィンドウ・ポップアップの上では、 背後の部材を選択しません。部材の作成・割当・荷重対象指定中は、それぞれの専用操作が優先されます。
構面・表示設定・表示モードの変更で本体が非表示になった部材は、候補と 3D ビューの強調から外れます。 選択状態は保持され、インスペクタ・表・ナビゲータとの連動も維持します。選択中の部材を再び表示すると、 選択強調が戻ります。空白のクリックで選択を解除できます。選択のみでは模型・Undo 履歴・解析結果を変更しません。
実装参照:部材候補は sepika_app::viewer::pick::MemberBodies(crates/sepika-app/src/viewer/pick.rs)、
表示対象との連動は sepika_app::viewer::viewer_panel(crates/sepika-app/src/viewer/mod.rs)が担います。
3D 選択から断面編集(共有編集と複製)
3D ビュー・ナビゲータ・テーブルで部材を選ぶと、右ドックのインスペクタにその断面と 算定プロパティを表示します。
- 編集はその断面を参照する全部材へ波及します。インスペクタには 「この断面を使う N 部材に影響」と影響する部材数を常時表示し、意図しない部材まで 変わることを防ぎます。
- 並びの**「複製してこの部材だけ別断面に」**は、新しい断面を作って選択中の部材だけを 割り当て直します。
いずれも編集トランザクションとして適用するため Undo でき、断面の作成・符号と階の操作は 断面の符号と階を参照してください。
実装参照:インスペクタの断面表示と波及は sepika_app::app::panels::inspector(crates/sepika-app/src/app/panels/inspector.rs)が担い、波及の編集は sepika_edit::EditSectionShape、複製は sepika_edit::DuplicateSectionForMember を用います。
配筋の径の表示と選択
断面編集の主筋径・せん断補強筋径は、選択肢にある標準呼び名なら D25・D29 のように
表示します。それ以外の保持値は 28.6 mm のように数値と単位で表示します。
径の欄を表示したり選択肢を開いたりするだけでは、保持値は変わりません。
選択肢から標準呼び名を選ぶと、その呼び名の数値へ変更します(例:D29 を選ぶと 29)。
任意の数値径をこの欄から直接入力することはできません。
実装参照:sepika_app::section_editor::size_field(crates/sepika-app/src/section_editor.rs)が径の表示と選択を担います。
共通参照と固定対象
インスペクタの「共通参照・固定対象」から、本案のプロジェクト・案・編集世代を確認できます。 「画面選択を固定対象にする」は、その時点の対象集合を保持します。以後の画面選択、階・通りの 切替、単位や視点の変更では固定対象は変わりません。選択がない場合は開いている断面・材料・ 荷重ケースや階・通りを対象にできます。
固定対象の「図へ」「表へ」「詳細へ」は同じ対象を表示します。階・通りの絞込みで見えない対象は 「非表示」と示し、「対象を表示」で絞込みを解除できます。非表示の対象を固定集合から除外しません。 表示操作は入力・Undo・計算結果の有効性を変更しません。共有断面の既存の影響部材表示も維持します。 階・振動ケースの共通入口からの表表示、材料・荷重ケース・組合せの図表示には未対応です。 未対応の組合せは表示を変更せず理由を通知します。「詳細へ」では参照した対象を名前・識別とともに インスペクタ上部へ表示し、別の部材の選択詳細を混在させません。
参照はプロジェクト・案・入力版・対象の存続を照合します。別プロジェクト・別案・古い入力版・ 削除済みの対象は理由を示して拒否し、同じ番号や名前の別対象で代用しません。編集後のUndoでも 編集世代は進むため、過去の固定対象を現在版へ自動的に読み替えません。異なる案への対応を推測しません。 解析設定と現在受理している元波形も入力版に含めます。波形や設定が異なる場合は、同じ部材番号や 節点番号でも別の入力版として参照を拒否します。振動ケースそのものも保存内容で照合し、同番号の 別ケースへ読み替えません。波形や実効条件の異なる結果は、実行と生成入力の識別でも区別します。 解析設定の編集を確定する場合も編集世代が進み、元の設定値へ戻しても過去の世代を再使用しません。 新しい元波形を受理すると編集世代が進み、過去の波形へ戻しても古い世代を再使用しません。 同じ波形・設定の再計算では入力版を変えず、計算実行を区別します。受理前に拒否した要求では 入力版を変更せず、受理後の計算失敗では受理した入力版を残します。
準備計算だけで明示入力と保存IDが変わらない場合は、固定対象の入力版を維持します。 自動荷重ケース・仕口パネル・剛域等の再生成を、利用者の入力編集と混同しません。人がUndo/Redoした 場合や、対象の保存IDが実際に再配置された場合は旧参照を拒否します。 新規に追加した荷重ケースは明示入力です。明示ケースへの種別の自動適用では元の明示種別を保持し、 ケース名・種別等の利用者編集を識別から除外しません。自動ケースを編集したり手入力荷重を加えたり した場合も明示入力となり、最後の手入力荷重を削除しても空の明示ケースを保持します。
結果と計算時入力
結果の参照は生成時の案・入力版、実行、解析/検定種別、計算契約、実効入力を保持します。 解析/検定条件やケース・組合せ定義が異なる結果を、同じモデルの結果として置き換えません。 方向・成分・単位・位置・モード・ステップ・階/通りは表示条件として分離し、未指定の表示条件を 結果の計算条件へ補いません。
「固定対象・結果参照を保存」は固定対象の結果参照を保持します。古い版の対象や生成元不明の成果は 固定できず、理由を通知します。同じ入力を保存・再読込すると、案・入力版と保存された固定参照を 保持します。欠落した対象や結果は取得不能とし、計算や外部AIの実行許可を再開しません。 比較案を含む検討全体の保存とは別の機能です。 質量方式を変更してまだ準備計算していない場合も、その設定と固定参照を保存・復元します。 保存候補だけを設定へ合わせ、編集中モデルとUndoは変更しません。旧質量設定の準備・解析成果は 同梱せず、読込後の準備計算で再生成します。
固定した結果の「図へ戻る」は、保存した図種・応力成分・階/通り・モード・ステップを復元します。 形状・変形・応力・モード・ヒンジ・時刻歴の図を対象とし、その他の図種や位置指定は未対応と 通知します。取得できないモード・ステップ・表示単位を現在の表示値で代用しません。 固定した時刻歴ステップへ移動すると再生を停止し、参照した結果の記録時刻とフレームを復元します。 グラフ画面からの表示条件固定には未対応です。固定した立体図へ戻ると、立体図の結果表示へ切り替わります。
「計算時入力を開く」は、保持された計算用入力だけを読み取り専用で表示します。 ここで表示するのは計算へ渡したモデルであり、通り・数量・保存波形設定等を含む完全な編集モデルは 保存していないため取得不能です。計算時の案識別または入力記録のない成果も、取得不能と表示します。 現在のモデルから欠落を補完しません。現在案を編集する場合は、明示した「閲覧を閉じて現在の本案を 編集する」を選び、現在案の図・入力表を使用します。過去入力の閲覧は現在案の編集やUndoを変更しません。 記録された標準せん断力係数・地域係数・地盤・採用周期等と、検定の継続時間・損傷制御・付着・ 設計用せん断力方式も読み取り専用で確認できます。検定が使った応力の条件は、その生成記録から 表示します。記録されていない条件や実波形列は取得不能とし、現在設定や現在の波形で補いません。
実装参照:共通参照の照合・表示・固定と計算用入力の閲覧は sepika_app::app::references(crates/sepika-app/src/app/references.rs)、生成入力と有効性照合は sepika_app::app::result_validity(crates/sepika-app/src/app/result_validity.rs)が担います。
stale(要再計算)
モデル・荷重・断面などを編集すると、依存する結果や設計が古くなり(stale)、 利用者へ再計算が必要であることを示します。重い解析を勝手に走らせない方針のため、 再計算は手動です。
- 結果タブ・設計タブの見出しに「⚠」、ステータスバーに「⚠ stale」を表示します。
- 再計算は解析タブの実行ボタンで行います。
- 準備計算・診断にも、それぞれの陳腐化表示(「準備計算 *」・診断件数)があります。
- 通り芯のように解析結果へ影響しないデータの編集では、結果を stale にしません。
実装参照:陳腐化は sepika_app::app::Staleness(crates/sepika-app/src/app/mod.rs)が保持します。解析へ影響する編集は Staleness::mark_edited、影響しない編集は Staleness::mark_non_calc_edited が更新します。