pub enum RegionAnchor {
Line {
nodes: [NodeId; 2],
span: [f64; 2],
transfer: LoadTransfer,
},
Point(NodeId),
FloorRegion {
nodes: [NodeId; 2],
},
}Expand description
取り付く床板の取付き先。
節点で指すのは、節点を動かしても追随し、取付き先の大梁を分割しても外れないためである (区間は節点対の間の相対位置なので、間に節点が増えても変わらない)。
Variants§
Line
線に取り付く(片持ちスラブ・バルコニー)。
nodes は取付き線の両端、span はその線上の無次元区間 [t_i, t_j](0.0〜1.0、
全長は [0.0, 1.0])。梁の一部だけに載る場合に用いる。
張り出し量 extent は [d_i, d_j](区間の始端側・終端側)で、
符号は取付き線 nodes[0]→nodes[1] の左側を正とする。
荷重の出口(transfer)を選べるのはこの形だけである。点に取り付く床板は
その節点への集中しかありえないため、値を持たせると無意味な組み合わせを
表現できてしまう。
Point(NodeId)
点(柱)に取り付く(出隅の片持ちスラブ)。荷重はその節点へ集中する。
張り出し量 extent は全体座標の [X 方向, Y 方向] で、符号が向きを表す。
FloorRegion
床領域に取り付く(自立壁。床の上に立つ間仕切り等)。荷重は壁が載っている 床領域へ渡し、等価な面荷重へならして分配する(D17)。
nodes は壁の始点・終点(節点参照。Line と同じ理由で節点移動に追随させる)。
面積(=自重の計算)にはこの2点間の距離を使う。
荷重を渡す床領域は保存せず、壁の位置から都度求める
(Model::self_standing_wall_coverage)。床領域は主架構から作り直される
派生的な入力(D10)で、FloorRegionId は作り直しのたびに面走査順で振り直される。
ID を保存すると、モデルの位相が変わった瞬間に別の床領域を指すようになり、
自立壁の自重が黙って別の階へならされる。保存しなければこの陳腐化は起こりえない。
壁が複数の床領域にまたがる場合は、床領域の境界で内部的に分割して、 それぞれの床領域へ ∫|立ち上がり高さ| の比で重量を配る。矩形なら長さ比と一致する。 両端で高さが符号反転するときは高さ 0 で折る(端点絶対値の台形ではない)。 どの床領域にも載らない部分が残る壁は、荷重の行き先がないモデルの不備として 解析前チェックが止める。
面荷重へならす時点で、壁が床領域内のどこにあるかという位置情報は失われる (厳密に扱いたい場合は壁の直下に小梁を入れて主架構へ取り付ける運用とする)。 失われるのは位置であって長さではない。
床板(super::Slab)の取付き先としては使わない。床板が「床領域に取り付く」
構図は D13 の 2 種別(囲まれた領域・取り付き領域)のどちらにも該当せず生じない
(床は主架構またはほかの床板の辺に取り付くのであって、床領域そのものには
取り付かない)。壁側(super::WallPlate の Attached 形)専用のアンカーである。
Trait Implementations§
Source§impl Clone for RegionAnchor
impl Clone for RegionAnchor
Source§fn clone(&self) -> RegionAnchor
fn clone(&self) -> RegionAnchor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RegionAnchor
Source§impl Debug for RegionAnchor
impl Debug for RegionAnchor
Source§impl<'de> Deserialize<'de> for RegionAnchor
impl<'de> Deserialize<'de> for RegionAnchor
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for RegionAnchor
impl PartialEq for RegionAnchor
Source§fn eq(&self, other: &RegionAnchor) -> bool
fn eq(&self, other: &RegionAnchor) -> bool
self and other values to be equal, and is used by ==.