Skip to main content

Module wall_region_rebuild

Module wall_region_rebuild 

Source
Expand description

壁領域の作り直し(取り込み後・解析前・荷重同期前)。region_rebuild.rs(床側)の 壁側版。

柱・梁が囲む鉛直構面内の閉領域(crate::region_gen::wall::WallRegionBoundary) から壁領域(WallRegion)を再生成し、既存の壁領域と構面・重心・面積で 対応付けて名前を引き継ぐ。構面判定は候補の全頂点で行い、内包判定には 局所座標の多角形重心を用いる。壁版([WallPlate])は畳まない。柱・梁で 囲まれた壁版(WallPlateShape::Enclosed)の帰属(どの壁領域に属すか)を、 壁版の重心が入る壁領域へ付け替えるだけである(rebuild_floor_regions と同じ方針)。 取り付く壁版(パラペット・腰壁・垂れ壁・自立壁)はどの壁領域からも参照されない 独立した壁版のまま、素通しする。

床側との違い: 床は「同じレベル Z」で新旧の床領域を対応付けるが、壁は構面 (直線)ごとに閉領域が現れるため、候補の全頂点が「同じ構面上にあるか」 (WallRegionBoundary::is_same_plane)で絞り込んでから、構面内の局所座標 (s, z) で多角形重心・内包を判定する。間柱は D7 により毎回入れ直す。

床側 D20 に相当する自動変換: どの壁領域にも収まらない、柱・梁で囲まれた 壁版(WallPlateShape::Enclosed)のうち、水平な辺(上辺・下辺)がちょうど 1 つ 同一レベルの大梁に全長覆われていれば、その辺を取付き線とする取り付く壁版 (AttachedRegionAnchor::Line)へ変換する(パラペット・腰壁・垂れ壁)。 判定対象は水平な辺のみで、鉛直な辺(柱沿い)は対象外とする(D13/D14 に 「柱だけに取り付く壁」の用例がないため)。張り出し量 extent は取付き辺からの 鉛直方向の高さ差で、符号つき(下方向が負)である。RegionAnchor::FloorRegion (自立壁)は自動検出しない。ST-Bridge から自立壁を判別できる情報源がなく、 手動作成専用とする(利用者との dig で確定。 dev_docs/handoff/床領域・壁領域の再設計_申し送り.md §9)。

変換で境界が取付き線 2 点だけに縮んだぶん、参照が 0 になった節点は削除する (D21。床側と同じ規約で、このリビルドが縮めた境界の先端節点だけを対象とし、 他の理由で未使用の既存節点は対象外とする)。 自由端は取付き辺上にない頂点が 1〜2 点のときに限り変換する。同じ高さでも 辺から外れた頂点は自由端に数える。変換後の取り付く壁版は解析要素にせず、 自重の自動分配(取付き線への分布)も行わない。

Structs§

WallRegionRebuildReport
rebuild_wall_regions の件数報告。

Constants§

CENTROID_MATCH_AREA_REL
重心照合で面積が近いとみなす相対許容(新旧の床領域の面積比)。 crate::region_rebuild::CENTROID_MATCH_AREA_REL と同じ値・同じ意味。

Functions§

rebuild_wall_regions
壁領域を柱・梁が囲む鉛直構面内の閉領域から作り直し、名前を引き継ぎ、 壁版の帰属を付け替える。
unassigned_post_count
現状の壁領域で、中点がちょうど 1 領域に厳密内包されない間柱の本数。