床板・壁版の表示
本節では、3D ビューアが床板と壁版をどのような書式で描くかを紹介します。
床板と壁版は入力であって解析要素そのものではないため、実部材と一目で区別できる書式で描きます。 壁版のうち条件を満たすものは壁エレメントになりますが、床板は常に荷重を配るための版です。
実装参照:床板・要素にならない壁版の書式は sepika_app::viewer::scene(crates/sepika-app/src/viewer/scene.rs)が、壁エレメントの面は sepika_app::viewer::viewer_panel(crates/sepika-app/src/viewer/mod.rs)が描きます。
色が種別を、線種が解析要素かどうかを表す
書式は 2 つの軸で決まります。色は床板が暖色、壁版と壁エレメントが青で、線種は解析要素が実線、 解析要素でない入力が破線です。 つまり暖色の破線は床板、青の破線は解析要素にならない壁版、青の実線は壁エレメントを表します。
色のほうを種別に割り当てているのは、3D の斜め視点では面の向きが読み取りにくく、水平な床と 鉛直な壁を同じ色で描くと見分けが付かなくなるためです。
破線は 6 pt・隙間 4 pt、塗りは半透明(アルファ 28)で、輪郭のアルファは 220 です。 壁エレメントの塗り(アルファ 50)より薄くしてあるため、要素になる壁版とならない壁版が隣り 合って描かれても、荷重を配るだけの版が手前に出て架構を隠すことはありません。
実装参照:sepika_app::viewer::scene::draw_load_plate_polygon(crates/sepika-app/src/viewer/scene.rs)が破線(6 pt・隙間 4 pt)と半透明塗り(アルファ 28、輪郭 220)で描き、壁エレメントの面は sepika_app::viewer::viewer_panel(crates/sepika-app/src/viewer/mod.rs)が実線・アルファ 50 で描きます。
解析要素にならない壁版もすべて描く
壁版は入力なので、解析要素になるか否かにかかわらず描きます。 壁エレメントが生成されるのは、壁領域全体を覆う 4 節点で、かつ断面が割り当たっている壁版だけ ですが(壁エレメントモデル)、 それ以外の壁版も自重を配り、多くは周辺部材へ剛性算入されるため、入力したものが画面に出ないと 確認のしようがありません。
具体的には、次の壁版が破線で描かれます。
- 間柱で分割された壁版
- 壁領域の境界が 5 節点以上で、壁エレメントの定式化に載らない壁版
- 断面がまだ割り当たっていない壁版
- 取り付く壁版(腰壁・垂れ壁・パラペット・自立壁)
囲まれた壁版の境界は壁版割当領域(柱・梁・間柱から準備計算が導出)が持ちます。 割当領域の境界が 4 節点でない囲まれた壁版は、壁エレメントにも周辺部材への剛性算入にも 載らず、自重のみを境界辺へ配ります(剛性は算入しません)。間柱で分割された壁版は 壁エレメントにしませんが、フレーム内雑壁として周辺部材の剛性へ算入されることがあります。
この「荷重のみで剛性算入なし」の扱いは、壁の剛性と、壁が負担するはずの面内せん断を 周辺架構へ伝える経路を落とすため、剛性と応力を過小評価し得る危険側の近似です。 壁エレメントにならない壁版が意図したものか、剛性算入の対象から漏れていないかを 確認してください。
断面が未割当の壁版も描くのは、壁版タブの追加フォームでも 3D ビューアの壁作成モードでも断面は 後から選ぶ導線になっており、壁版を作った直後は必ず断面が未割当だからです。 ここで描かないでいると、壁を作ったのに画面に何も現れず、作成に失敗したように見えてしまいます。
なお、取付き先が点の取り付く壁版だけは描けません。 壁の取付き先として点は使わないため、境界の多角形を組み立てられないからです (壁の断面と自重)。
実装参照:sepika_app::viewer::scene::draw_wall_plates(crates/sepika-app/src/viewer/scene.rs)が sepika_core::model::Model::wall_plate_becomes_element でない壁版を描き、自己交差する取り付く壁版は plate_fill_is_valid が false となって輪郭のみになります。
取り付く壁版の立ち上がり高さが両端で符号反転している場合は、輪郭の破線だけを描いて内部を 塗りません。 境界の 4 点が自己交差する蝶ネクタイ形になり、塗りが輪郭からはみ出すためです。 この形は自重の算定でも扱えないので(壁の断面と自重)、 塗られていない壁版を見つけたら立ち上がり高さの符号を確認してください。
割当領域は状態別の色で描き、クリックで割り当てる
左パネル「作成」の「床板割当モード」「壁版割当モード」を ON にすると、3D ビューに床板割当領域・ 壁版割当領域を多角形で描きます。色は状態を表します。
- 未設定=赤(版が無く、荷重・剛性を過小評価し得る)
- 版なし=灰(利用者が明示的に版を置かないと決めた状態)
- 版あり=緑
クリック位置が最も手前の領域を選び(奥行きが重なるときはカメラ空間の深度で手前を優先)、 未設定・版なしならその場で版の仕様を入力して割り当てる画面を、版ありなら既存版の一覧 (編集画面)を開きます。版を二重に作ることはありません。マウスを重ねた領域は輪郭を太くして 強調します。
未設定の割当領域が残っている間は、結果画面の上部にも件数と対象 ID(床板・壁版別)を常時 表示します。解析前に示す確認ダイアログについては 準備計算を参照してください。
実装参照:sepika_app::viewer::scene::draw_assignment_regions(crates/sepika-app/src/viewer/scene.rs)が状態別の色で描き、sepika_app::viewer::pick::pick_assignment_region(crates/sepika-app/src/viewer/pick.rs)が投影と多角形内包判定・カメラ深度で領域を選びます。クリック時の割当画面は sepika_app::app::App::region_assign_window(crates/sepika-app/src/app/panels/draw_tools.rs)、結果画面の常時表示は sepika_app::app::App::unset_regions_banner(crates/sepika-app/src/app/panels/results.rs)です。
配置モードでは作業範囲と端部を強調する
左パネル「作成」の「小梁配置モード」「間柱配置モード」を ON にすると、3D ビューに親領域 (小梁は床領域、間柱は壁領域)を強調表示します。選択中の作業範囲は濃い塗りと太い輪郭で、 未選択の領域は淡い塗りで描きます。1 点目に選んだ支持部材アンカーは丸印で示します。 親領域の中へ小梁・間柱を配置すると、床板・壁版割当領域が再構築され、境界が変わった領域は 未設定(赤)として現れます。操作の流れは 立体グリッドとスナップ を参照してください。
実装参照:sepika_app::viewer::scene::draw_work_scope・draw_anchor_marker(crates/sepika-app/src/viewer/scene.rs)が描き、sepika_app::viewer::pick::{pick_parent_region, pick_support_anchor}(crates/sepika-app/src/viewer/pick.rs)が選びます。
変形図では変形後の位置へ載せる
変形図・モード形・時刻歴では、床板も壁版も変形後の節点座標から多角形を組み立てて描きます。 詳しくは床・二次部材の変形追従を参照してください。
実装参照:sepika_app::viewer::viewer_panel(crates/sepika-app/src/viewer/mod.rs)が節点の表示用 3D 座標(変形後)を作り、sepika_app::viewer::scene::draw_slabs・draw_wall_plates(crates/sepika-app/src/viewer/scene.rs)がその座標から多角形を組み立てます。
表示の切り替え
床板・小梁・間柱・壁版の表示は、ツールバーの「床壁・二次部材」トグルでまとめて切り替えます。 主架構だけを見たいときに、荷重を配るための入力を一度に隠せるようにするためです。 トグルと連動して非表示になる解析対象外の節点については、同じく 床・二次部材の変形追従を参照してください。
構面表示中は、囲まれた壁版の境界節点がすべてその構面にあるときだけ描きます。 境界の 1 点でも構面の外にあると、その頂点だけが構面から離れた位置へ投影され、多角形が構面から 飛び出して構面図として読めなくなるためです。 取り付く壁版のほうは、取付き先の節点が構面上にあれば描きます。
実装参照:sepika_app::viewer::controls::view_controls(crates/sepika-app/src/viewer/controls.rs)の「床壁・二次部材」トグルを sepika_app::viewer::viewer_panel(crates/sepika-app/src/viewer/mod.rs)が描画可否に使い、構面表示中の壁版の可否は wall_plate_visible_on_frame(crates/sepika-app/src/viewer/scene.rs)が判定します。
モデル化図では分類ごとの色で描く
モデル化図(モデル化の表示)だけは、本節の書式ではなく解析モデル 分類ごとの色で壁版を描きます。 要素にならない壁版が周辺部材へ剛性算入されているかどうかを、その図では読み取れる必要があるためです。
実装参照:sepika_app::viewer::modeling::draw_wall_plates_modeling(crates/sepika-app/src/viewer/modeling.rs)が要素にならない壁版を、sepika_element::wall::misc_wall::misc_stiffness_wall_plates(crates/sepika-element/src/wall/misc_wall.rs)が返す剛性算入の有無で分類して描き分けます。