pub struct WallPlate {
pub id: WallPlateId,
pub shape: WallPlateShape,
pub section: Option<SectionId>,
pub opening_area: f64,
pub opening_weight: f64,
pub openings: Vec<WallOpening>,
pub loads: Vec<AreaLoad>,
pub slit: WallSlit,
}Expand description
壁版。柱・梁が囲む鉛直構面内の版、または主架構・床領域に取り付く版 (パラペット・腰壁・垂れ壁・自立壁)ごとに 1 つ。
Fields§
§id: WallPlateId壁版 ID(Model::wall_plates の配列インデックスと一致すること)。
shape: WallPlateShape§section: Option<SectionId>断面(板厚・材料・開口低減の解決元)。None は未割当(自重 0。解析前
チェックが止める。モジュール doc 参照)。
opening_area: f64開口面積の合計 [mm²](super::WallAttr::opening_area の後継)。
openings(個別開口)が非空の場合はそちらの面積和を優先し、本フィールドは
無視される(WallPlate::total_opening_area 参照)。
opening_weight: f64開口部(サッシ等)の重量 [N](super::WallAttr::opening_weight の後継)。
開口面積控除後の自重に加算する。
openings: Vec<WallOpening>個別開口の寸法リスト(super::WallOpening)。自重控除・開口周比・
耐震壁検定の開口供給に使う。構造壁でない壁版(n倍法・重量のみ)でも、
自重控除には意味を持つため共通で持たせる。非空の場合は面積評価を
優先する(opening_area へのフォールバック規約は WallAttr と同じ)。
loads: Vec<AreaLoad>仕上げ・増打ち等の面荷重(super::AreaLoad)。版自身の躯体自重は
含まない(躯体は section から求める)。モジュール doc 参照。
slit: WallSlit耐震スリット(辺ごとの縁切り)。WallSlit 参照。
Implementations§
Source§impl WallPlate
impl WallPlate
Sourcepub fn is_attached(&self) -> bool
pub fn is_attached(&self) -> bool
取り付く壁版か。
Sourcepub fn has_quad_boundary(&self) -> bool
pub fn has_quad_boundary(&self) -> bool
柱・梁で囲まれた壁版(Enclosed)の境界が、壁エレメント(壁柱+剛梁変換に
よる4節点24自由度モデル。docs/calc_basis/04_要素剛性/05_壁エレメントモデル.md
参照)を組み立てられる形か。境界がちょうど4節点のときだけ true。
5節点以上(T字取り付き等。他の梁・壁が境界の辺の途中に接続することで
生じる)や3節点以下は要素を生成しない(Q6=C)。壁エレメントは下辺2節点・
上辺2節点を前提とした剛体変換の定式化であり、任意の多角形へ一般化する
ことは定式化そのものを崩すため行わない(実データによる検証ができないまま
「按分」等で無理に4節点へ落とし込むと、根拠不明な近似を耐力評価へ持ち込む
ことになる。dev_docs/handoff/床領域・壁領域の再設計_申し送り.md §9 参照)。
取り付く壁版(Attached)は境界を持たないため常に false。
解析要素生成(squid_n_load::wall_expand)・解析前診断
(squid-n-solver::precheck)・ST-Bridge 取り込み(squid-n-io)が
判定を共有する(重複実装の統合)。
Sourcepub fn column_face_nodes(&self, model: &Model) -> Option<[NodeId; 2]>
pub fn column_face_nodes(&self, model: &Model) -> Option<[NodeId; 2]>
柱際スリット WallSlit::column_face の添字に対応する境界節点。
柱際の鉛直辺は、境界のうち標高の低い 2 節点(下辺)から立ち上がる。
そこで下辺の 2 節点を境界の並び順で返し、column_face[0] を
1 つ目、[1] を 2 つ目の柱際に対応させる。
添字の対応規則はここ 1 か所に置く。 剛性算入
(squid_n_element::wall::misc_wall)が袖壁を辺ごとに評価するとき、および GUI が
どちらのスリットかを節点番号で示すときに、同じ並びを見る必要があるためである。
境界が 4 節点でない壁版・取り付く壁版・節点を引けない壁版は None。
Sourcepub fn boundary_nodes(&self) -> Option<&[NodeId]>
pub fn boundary_nodes(&self) -> Option<&[NodeId]>
境界の節点列。柱・梁が囲む壁版のみ(取り付く壁版は自由端に節点を
持たないため None)。
Sourcepub fn boundary_coords(&self, model: &Model) -> Option<Vec<[f64; 3]>>
pub fn boundary_coords(&self, model: &Model) -> Option<Vec<[f64; 3]>>
境界多角形の座標列 [mm](4 点)。取り付く壁版は取付き先と張り出し量
(鉛直上向きの高さ)から算出する。節点が引けない、または壁の取付き先として
使わない組み合わせ(RegionAnchor::Point)の場合は None。
Sourcepub fn boundary_coords_with(
&self,
model: &Model,
coord_of: impl Fn(NodeId) -> Option<[f64; 3]>,
) -> Option<Vec<[f64; 3]>>
pub fn boundary_coords_with( &self, model: &Model, coord_of: impl Fn(NodeId) -> Option<[f64; 3]>, ) -> Option<Vec<[f64; 3]>>
境界多角形の座標列 [mm] を、節点座標の引き方を差し替えて求める。
WallPlate::boundary_coords はモデルの節点座標をそのまま使うが、変形図・
モード形・時刻歴は変形後の節点座標で描く必要がある。形状の組み立て方
(取付き線の内挿・鉛直上向きへの立ち上げ)は同じなので、座標の引き方だけを
差し替えられるようにして実装を 1 つに保つ(床側の
super::Slab::boundary_coords_with と同じ規約)。
model は立ち上がり高さの解決(Model::wall_plate_extent。extent が
None の壁は階高いっぱい)にだけ使う。階レベルは変形しないので、変形後の
座標を渡す呼び出しでも元の model を渡してよい。
Sourcepub fn area(&self, model: &Model) -> f64
pub fn area(&self, model: &Model) -> f64
壁版の面積 [mm²]。囲まれた壁版は crate::geom::polygon::area_3d(ニューエル)。
取り付く壁版は底辺長 × ∫|立ち上がり高さ|(crate::geom::abs_lerp_integral)。
4 点多角形にすると、両端で高さが符号反転する壁は自己交差(蝶ネクタイ)になり、
Newell の面積が打ち消されて 0 近くになる(自重が黙って消える危険側)。
座標が引けない場合は 0。
Sourcepub fn total_opening_area(&self) -> f64
pub fn total_opening_area(&self) -> f64
開口の合計面積 [mm²]。個別開口 openings が非空ならその面積和、
空なら opening_area を返す(WallAttr::total_opening_area と同じ規約。
全消費側はこのメソッドを経由すること)。
Sourcepub fn finish_intensity(&self) -> f64
pub fn finish_intensity(&self) -> f64
仕上げ・増打ち等の面荷重強度 [N/mm²](loads の合算)。
版自身の躯体自重は含まない(super::SlabPlate::finish_intensity と同じ規約)。