応力図(M 図)の曲線補間
解析結果の断面力は、危険断面(評価断面)でのみ値を持ちます。既定の評価断面は 節点芯・柱フェース位置・部材中央に、指定があればハンチ端・継手位置を加えた 数点です(梁要素内部の変位・断面力の内挿)。
評価断面の値を直線で結ぶだけでは、等分布荷重などで本来生じる曲げモーメントの 曲率や反曲点を正しく表せません。そのため M 図は、評価断面の値を保ったまま 区間内を 3 次エルミート補間で曲線表示します。補間の計算根拠は梁要素内部の変位・断面力の内挿を正本とします。
実装参照:評価断面の値を保ったまま 3 次エルミート補間で M 図を稠密化する処理は sepika_app::viewer::diagram::moment_curve_samples(crates/sepika-app/src/viewer/diagram.rs)が行います。
表示上の適用範囲
- 対象は M 図のみです。N 図は部材中間の軸荷重がなければ一定、Q 図は 等分布荷重下で 1 次となり、いずれも評価断面を直線で結べば厳密なため、 直線で描きます。
- 対象要素は曲げ内力場をもつ線材要素(梁・柱として扱う梁要素、 ファイバー梁要素、マルチスプリング梁要素)です。軸材(ブレース)・面要素・ ばね要素は曲げ分布をもたないため補間しません。
- 本処理は画面表示のための処理であり、解析結果(節点変位・断面力) そのものには影響しません。断面検定は評価断面の値のみを用います。
実装参照:勾配に用いるせん断成分の対応(\( M_z \)→\( Q_y \)、\( M_y \)→\( Q_z \))と補間対象の限定は sepika_app::viewer::ForceComponent::moment_gradient_source(crates/sepika-app/src/viewer/mod.rs)が定め、補間式は sepika_app::viewer::diagram::moment_curve_samples(crates/sepika-app/src/viewer/diagram.rs)が実装します。
CMQ 図の M 成分のサンプルと塗り
CMQ 図の M 成分は、部材荷重から求める節点変位0の梁の荷重込み曲げモーメントを折れ線で表示します。建物共通の剛域設定と材端解放を反映します。 解析結果の M 図に用いる上記のエルミート補間とは適用範囲が異なります。 材長の 32 等分点に、区間分布荷重の始終点と集中荷重の左右位置を加えて値を求めます。Q成分も同じ荷重込み断面力から各位置で評価し、集中荷重のジャンプを表します。 集中荷重位置を含むこれらのサンプルが、表示する曲線の基準です。
塗りは隣接サンプルを結ぶ線と材軸に囲まれた小領域ごとに行います。 隣接値の符号が反転する区間では、両値を直線で結んだゼロ交差位置で領域を分けます。 この交差位置は表示する折れ線に対するもので、荷重から得られる元の曲線の厳密な零点ではありません。 サンプルの値・表示倍率・張り出し方向は塗りの分割によって変わらず、全体の輪郭線は一続きに表示します。 全サンプルがゼロの場合、非有限の位置・値・投影座標を含む場合、材長がゼロの場合は塗りません。 材軸方向の長さや投影面積のない小領域も塗りません。
成分色は C が青、M が紫、Q が緑です。強軸・弱軸の不透明度は CMQ 図の表示仕様 に従います。 この分割は画面表示だけに適用し、入力荷重、CMQ の計算値・積分・端部モーメント、 モデル・Undo・保存内容・結果世代には影響しません。
実装参照:sepika_app::viewer::cmq::draw_cmq_diagram(crates/sepika-app/src/viewer/cmq.rs)と sepika_app::viewer::diagram::diagram_fill_polygons(crates/sepika-app/src/viewer/diagram.rs)が実装します。