波形ライブラリ
時刻歴応答解析の入力波形(CSV)を、プロジェクト(.ovika)をまたいで使い回すための置き場です。
実装参照:sepika_io::wave_library::{wave_library_dir, list_wave_library, register_wave, wave_sha256}(crates/sepika-io/src/wave_library.rs)が保管先の解決・一覧・登録・ハッシュ算定を担います。
位置づけ
.ovika にはモデル・解析結果・解析タブの設定値(時刻歴の波形パラメータ・減衰モデル等)を保存しますが、時刻歴の入力波形(CSV)そのものは含めません。波形ライブラリは、OS 標準のユーザーデータディレクトリ配下の専用フォルダに波形 CSV をコピーして保管し、全プロジェクトから共通の置き場として参照します。立体時刻歴と質点系は、同じライブラリから独立した選択を持ちます。
- ディレクトリ: OS 標準のユーザーデータディレクトリ配下の
sepika/waves(Windows は%APPDATA%\sepika\waves、macOS は~/Library/Application Support/sepika/waves、Linux は~/.local/share/sepika/waves相当)。 - 対応拡張子:
.csv/.txt/.dat。
注意(機械ローカル): ライブラリはこのマシンのユーザーデータディレクトリに置かれます。別のマシンで .ovika を開いた場合や、プロジェクトファイルを他者へ渡した場合、そのマシンのライブラリに同名の波形がなければ波形を解決できません。
実装参照:保存先は sepika_io::wave_library::wave_library_dir、一覧は同 list_wave_library(crates/sepika-io/src/wave_library.rs)が持ち、一覧とファイル選択ダイアログは .csv・.txt・.dat の拡張子でフィルタします。
GUI からの操作
波形の登録
ファイルメニューの「🌊 波形を保存…」から、波形 CSV を選んでライブラリへコピーします(この操作では解析は実行しません)。ライブラリに同名の波形が既にある場合は、上書き確認ダイアログを表示します。
実装参照:sepika_app::app::App::{register_wave_to_library_dialog, confirm_register_wave}(crates/sepika-app/src/app/actions/wave_library.rs)が受け付け、コピーは sepika_io::wave_library::register_wave が行います。
波形を選んで実行
工程タブ「解析」を開き、右のアイコン列から「時刻歴応答」パネルを出すと、「波形ライブラリ」のドロップダウンがあります。登録済みの波形ファイル名を一覧表示します(他のプロジェクトで登録したものも同じ一覧に表示されます)。選んで「▶ 選択した波形で実行」を押すと、時刻歴応答解析をジョブ実行します。方向(X/Y/X+Y)・dt の解釈は「📂 波形CSVを開いて実行…」(一回限りのファイル選択)と同じです。
右バー「質点系」にも同じドロップダウンがあります。ここでの選択は立体時刻歴とは独立で、.ovika にも別フィールドとして保存します。質点系パネルから波形 CSV を直接開いて実行する操作はありません。
実装参照:ドロップダウンは sepika_app の解析パネル(crates/sepika-app/src/app/panels/analysis.rs)が表示し、実行は sepika_app::app::App::run_time_history_from_library と App::start_lumped_mass_library_th_job(crates/sepika-app/src/app/actions/)が担います。
.ovika との連携
「▶ 選択した波形で実行」で実行した波形のファイル名と、実行時点のファイル内容の SHA-256 は、解析タブの設定値(analysis_settings.msgpack)に同梱して保存します。プロジェクトを開き直すと、ライブラリに同名のファイルが存在する限り、この選択を自動的に復元します。
- ライブラリにファイルが見つからない場合(削除された等)は、通知したうえで選択を解除します。
- ファイルは見つかるが内容(SHA-256)が保存時と異なる場合(ライブラリ側で上書きされた等)は、選択は維持したうえで内容が変わっている旨を通知します。
実装参照:保存は sepika_app::app::App::save_project_to_opts が波形名と SHA-256 を SavedAnalysisSettings に同梱し、復元は App::{restore_wave_library_selection, restore_lumped_wave_library_selection}(crates/sepika-app/src/app/actions/wave_library.rs)が行います。
開発者向け: ライブラリ API(Rust)
Rust コード例(開発者向け)
#![allow(unused)] fn main() { use sepika_io::wave_library::{wave_library_dir, list_wave_library, register_wave, wave_sha256}; let dir = wave_library_dir().expect("ユーザーデータディレクトリを特定できません"); let names = list_wave_library(&dir)?; // 登録済みの波形ファイル名一覧 let name = register_wave(&dir, src_path)?; // 波形 CSV をライブラリへコピー(同名は上書き) let hash = wave_sha256(&dir, &name)?; // 内容の SHA-256(16進小文字) }