床荷重の分配(スラブ → 梁・柱)
床荷重の分配は、負担面積法と 45° 振り分けによる三角形・台形分布の力学に基づいて算定します(一貫構造計算の標準的な床荷重分配法)。 総和保存(\( \sum \text{梁・小梁・柱荷重} = w \times \text{面積} \))を全経路で満たします。
床領域は、水平な大梁が作る閉路ごとに 1 つです。床領域そのものは版の仕様を持たず、 名前と、床領域内の小梁・床板(スラブ)をまとめる単位です。 床板(スラブ)は、大梁または小梁で囲まれた版、または主架構に取り付く版(片持ち・バルコニー・ 出隅)ごとに 1 つで、断面(板厚・材料)・仕上げ荷重・室用途・分配方法を持ちます。 1 つの床領域は、床領域内が小梁でさらに細かい打設単位に分かれていれば複数の床板を持ちえます。 取り付く床板はどの床領域からも参照されない独立した床板です。
囲まれた床板の境界は、床板自身ではなく床板割当領域(FloorPlateAssignmentRegion)が
保持します(ADR 0020)。床板割当領域は、水平な大梁と、両端が支持された小梁とを面走査して
レベルごとに分割した閉領域です。囲まれた床板は 1 つの割当領域へ 1 枚だけ割り当て、境界はその
割当領域の境界をそのまま使います。境界の 1 辺は 1 つの支持部材(大梁または小梁)と、その材軸上の
無次元区間に対応します。境界の頂点にモデル節点が無くても(小梁の端が大梁の材軸中間にある場合
など)支持先と荷重を取り落としません。
同じ境界辺の位置に支持部材が重なる場合は、異種(大梁と小梁)なら主架構(大梁)を支持部材と して採用し、同種(大梁どうし、小梁どうし)なら荷重の受け手が一意に決まらないため解析前 チェックのエラーとして止めます(ADR 0021)。平行に並ぶだけ(材軸が一致しない)の部材は、同じ位置に重なったものではないため重なり検出と主架構優先の対象にしません(別の辺の支持部材や、領域を分割する間柱にはなり得ます)。
ST-Bridge の取り込み直後と、準備計算が荷重ケースを同期する前に、二次部材の端を支持部材アンカーへ
解決したうえで、大梁と両端支持の小梁から床板割当領域を再構築します。同じ境界の割当領域は ID と
割当状態を維持し、境界が変わった割当領域だけを新しい ID の未設定領域へ置き換えます。面走査へ
入れる小梁は両端が支持されたものだけで、片持ちの自由端と支持が決まらない端(Detached)は
境界に使いません。あわせて主架構から大梁の閉路を検出し、既存の床領域を作り直します。囲まれた
床板は、割り当てられた床板割当領域の境界多角形の重心の XY が床領域の内部に入り、かつレベルが
一致する床領域へ結び付けます(FloorRegion.slab_ids)。同じレベルとみなす Z の差は 1 mm 以内です。
内部判定は辺上 1 mm 以内を含めません。重心が複数の床領域に入るとき(中庭の内側閉路と、穴を無視
した外側多角形など)は、面積が小さい方へ付けます。面積が同じ場合は、検出順が先の床領域とします。
旧床領域と新しい床領域の面積の相対差が \( 10^{-3} \) 未満なら照合できたものとして数えます。
中庭のように床板のない閉路は、床板を持たない床領域として残します。
どの床領域にも入らない床板は、水平大梁にちょうど 1 辺が全長載り、かつ自由端が 1 点または 2 点の ときに限り、ST-Bridge の取り込みで取り付く床板へ変換します。辺の全長を覆う判定のずれは 10 mm 以内です。張り出し量の正の向きは、取付き線の始点から終点を見て左側です。変換した取付き線の区間は 全長(無次元位置 \( [0, 1] \))です。荷重の出口は取付き線への分布です。 大梁に載る辺が 0 本または 2 本以上のとき、および自由端が 3 点以上のとき(出隅・L 形など)は、 囲まれた床板のまま残します。断面が割り当たった床板がどの床領域にも載らない場合は、 取り込み報告と診断に警告を出します。床板をモデルから落とすことはしません。 既存の取り付く床板は消しません(支持部材の間ごとの分割・統合は後述します)。 取付き線は、無次元位置 \( [t_i, t_j] \)(\( 0.0 \le t_i \lt t_j \le 1.0 \)、既定は全長 \( [0.0, 1.0] \))で表す区間だけを覆うことができます。腰壁の開口、パラペットの 途切れ、バルコニーが梁スパンの途中までしか出ていない、といった形を表すためです。 区間の範囲外は \( 0.0 \le t_i \lt t_j \le 1.0 \) を満たさないため、モデル検証が エラーとして止めます。
実装参照:大梁と両端支持の小梁からの床板割当領域の再構築は Model::rebuild_floor_assignment_regions(crates/sepika-core/src/model/assignment_region.rs)が行います。大梁の閉路の再検出による床領域の作り直しと、床板の帰属の付け替え・支持部材の間の床板の分割と統合は sepika_core::region_rebuild::rebuild_floor_regions(crates/sepika-core/src/region_rebuild.rs)が行います。ST-Bridge 取り込みでのスラブの割当領域への分割割当・面積按分と、どの割当領域にも入らない版の取り付く床板への変換は sepika_io::stbridge::import::assemble::assign_imported_slabs(crates/sepika-io/src/stbridge/import/assemble.rs)が行います。
取り付く床板の入力検査
GUI 編集・MCP の作成更新・プロジェクト読込・ST-Bridge 取込・解析前は、同じ床板 ID と理由で不正な幾何や支持先を拒否します。編集は複数セルの貼付けも含めて全体を拒否し、元のモデルと undo/redo 履歴を保持し、解析結果と準備計算の有効状態も変えません。GUI のステータスバーと床板表、MCP のエラーで理由を確認できます。
取付き節点の参照と座標、線の無次元区間、張り出し量が有限で、生成境界の XY 投影面積が正でなければなりません。取付き線の XY ゼロ長、両端ともゼロの張り出し量、逆符号による自己交差は拒否します。同符号の台形・反対側への張出し・正当な部分区間は許可します。一端だけゼロの張出しは連続重複頂点を除いた三角形として扱います。点取付きは全体 X/Y の張り出し量がそれぞれ非ゼロなら、正負の組合せによらず矩形として許可します。点取付きへの自動変換や L 形分割は行いません。
区間には既存の無次元許容差 1e-9 を適用します。上下端にこの許容差以内ではみ出す位置は境界生成時に 0 または 1 に丸めます。ゼロ長と連続重複頂点は長さ 1e-9 mm、面積縮退は境界ボックスの最大辺長の二乗に対して 1e-12 以下と判定します。面積の単位は mm² です。支持梁材軸からの距離は既存の支持解決と同じ 10 mm を許容し、取付き区間内の欠落と正長の重複の判定は 1e-9 mm を用います。材軸の距離許容と幾何のゼロ長許容は別の用途です。
取付き線への分布は、その区間全体が主架構の梁に覆われ、各部分に荷重受け手が一つだけあることを検査します。連続する分割梁は許可し、重複する梁の先頭や最寄りの一つを黙って採用しません。別々の床板が同じ梁を使うことは許可します。点取付きと両端集中は指定節点を支持先とし、部材と未接続の幾何節点では、既存の集中荷重変換に対応する梁スパン内の候補が一つであることを検査します。欠落・複数候補は拒否します。
台形・三角形・点取付き・入力検査・許容差はSEPIKAの採用条件です。1 本の大梁に支持された長方形の全荷重をその梁へ等分布で伝える限定モデルとは、対象形状と支持条件を区別します。
実装参照:共通検査と取付き区間の支持解決は crates/sepika-core/src/model/attached_slab.rs、境界生成は Slab::boundary_coords_with、原子的編集は UndoStack::run と CompositeCommand::apply が担います。荷重支持への解決は crates/sepika-load/src/floor/mod.rs、実荷重への変換は crates/sepika-job/src/auto_loads.rs を参照してください。
取り付く床板の荷重の出口は 2 通りから選びます。
- 取付き線へ分布(既定): 区間の両端は取付き線上の座標であり、実節点とは限りません。 荷重は、その座標が載る大梁(複数の大梁にまたがっていれば、覆っているすべての大梁)へ、 区間の長さだけの分布荷重として幾何的に割り付けます。
- 両端の柱へ集中(出隅、および壁を柱で受ける納まり): 総荷重は、区間の中点(無次元位置 \( t_{\text{mid}} = (t_i + t_j)/2 \))に集中したものとみなします。 単純梁の集中荷重の反力公式(始端の柱 \( R_i = W(1-t_{\text{mid}}) \)、 終端の柱 \( R_j = W \cdot t_{\text{mid}} \))で両端の柱へ按分し、 全長(\( t_{\text{mid}} = 0.5 \))なら半分ずつです。
取り付く床板は、下の支持部材の間ごとに 1 枚です。床領域の付け直しのとき、取付き線に 直交して先端まで届く小梁または実梁の位置で床板を分割し、部材を消したときは同じ版仕様の隣り合う床板を 1 枚に統合します。この分割・統合の境界となる実梁は、同じ節点・材軸・断面用途なら Beam・Fiber・MultiSpring のいずれでも同じに扱います。一直線に連結した2節点材は連続する軸として扱います。解析表現だけを変更しても境界が消えて統合されることはありません。直交しない部材・先端まで届かない部材は分割境界にせず、その部材には床荷重が 載りません。辺の全長を覆わない実部材も支持辺にせず、その実部材には床荷重が載りません (いずれも診断に警告が出ます。二次部材は「分配が得られない」、実部材は覆われていない辺の件数)。 取付き線へ分布する床板は、側辺・先端辺の支持部材の有無や荷重伝達方向によらず、取付き線 (辺0)の取付き大梁だけへ全荷重を等分布で伝達します。面荷重を q、出し幅を d とすると 水平な矩形の線荷重は w_line = qd です。台形・三角形・Z 方向に傾いた取付き線では、XY 投影面積 A と取付き区間の実長 L によって w_line = qA/L とし、同じ等分布伝達で総荷重 q*A を保持します。取付き線が部分区間の場合も、実取付き長さに対して同じ線荷重を載せ、 総荷重 q×床板面積を保存します。側辺・先端辺の小梁や実梁へは分配しません。 点アンカー(出隅)と囲まれた床板はこの規則の対象外です。上記の取付き大梁への等分布が現行仕様であり、 側辺・先端辺への最近接負担面積分配は行いません。
この等分布伝達は合力を保存しますが、荷重点は床面から取付き線へ移ります。元の床面積の重心による位置一次と、取付き線に載せた後の荷重位置の一次は区別してください。取付き線からの偏心によるモーメントを追加する方式ではありません。
片持ちスラブの先端荷重
線取付きで「取付き線へ分布」を選んだ床板だけ、先端辺の実長あたりの線荷重を複数設定できます。 各設定には既存の荷重ケースと全体座標の ±X・±Y・±Z 方向、強度(入力 kN/m、内部 N/mm)を指定します。 「床」タブの床板一覧の下で、対象となる床板ごとに追加・変更・削除できます。 面荷重とは別に加算され、面荷重強度へ換算して重ねることはありません。 先端辺の実長を \(L_{\mathrm{tip}}\)、取付き区間の実長を \(L_{\mathrm{attach}}\)、先端荷重強度を \(p_{\mathrm{tip}}\) とすると、 先端辺は両端の張り出し位置を結ぶ辺です。張り出し方向が取付き線の XY 投影に直交するため、 両端の張り出し量を \(d_i,d_j\) とすると、\(L_{\mathrm{tip}}=\sqrt{L_{\mathrm{attach}}^2+(d_j-d_i)^2}\) です。 片端がゼロまたは重複頂点の正規化許容差内でも、この先端辺の実長を使い、側辺の長さに置き換えません。 総荷重 \(W=p_{\mathrm{tip}}L_{\mathrm{tip}}\) を取付き区間へ等分布荷重 \(w=W/L_{\mathrm{attach}}\) として載せます。たとえば取付き区間 4 m・先端辺 4 m・強度 2 kN/m なら 総荷重 8 kN、取付き区間の線荷重 2 kN/m です。面荷重 5 kN/m²・出し幅 1.5 m の場合、 先端荷重の方向を -Z とすると、同じ取付き梁への下向き荷重は面荷重分 7.5 kN/m と 先端荷重分 2 kN/m の合計 9.5 kN/m になります。
先端荷重は指定方向の力だけを伝え、先端での偏心モーメントを取付き部へ付加しません。 利用者は各方向について連続するスラブ等がモーメントを負担する条件を確認してください。 成立しなければ取付き部の応力を過小評価し得ます。床板の断面検定には先端荷重を含めません。 先端荷重も面荷重と同じ幾何・参照・支持区間の共通検査を使い、床板 ID と理由付きで拒否します。 共通検査で有効な短い部分区間も伝達し、先端荷重だけの最小区間長は設けません。 分割梁では全荷重を各支持区間が取付き線に占める長さの割合で分け、実梁区間の実長で除した等分布を載せます。 取付き区間を実梁で全長覆えない場合や支持が重複する場合は、先端荷重を節点集中荷重で代用せずエラーにします。 解析前の荷重同期がこのエラーに失敗した場合は、以前同期した先端荷重で解析を続けません。 面荷重も取付き線の支持が欠落または重複する場合は、床板 ID と理由付きで拒否します。 各設定はケース ID で追跡し、EX/EY・独自ケースへも既存の水平力や手入力を残したまま同期します。 ケース削除時にはそのケース向けの先端荷重設定も削除されます。床板の分割では設定を引き継ぎ、 設定の異なる床板は統合しません。
実装参照:sepika_job::auto_loads::compute_tip_loads(crates/sepika-job/src/auto_loads.rs)が取付き実梁へのケース別割付を行い、sepika_core::model::SlabTipLoad(crates/sepika-core/src/model/slab.rs)が入力を保持します。
片持ち小梁(基端が支持され、先端が自由な小梁)の荷重は、基端の鉛直反力として主架構へ 伝達します。基端に生じる曲げモーメントは伝達しません。曲げは考慮されないため、適切に 考慮してください。 片持ち小梁の自由端に他の二次部材が載る形(先端リブなど)は、自由端を 支持として扱い、その荷重を基端へ伝えます。
端部支持条件(支持/自由)は「床」タブの小梁一覧、編集コマンド、MCP で設定します。
既定は両端支持です。ST-Bridge の取り込みでは、節点が実部材に接続せず、大梁の材軸上にも
他の二次部材の内法にもない端(許容差 10 mm)を自由端として取り込みます。他の二次部材の端点と
一致する端は、自分の反対側の端が主架構に載り、かつ相手の材軸が連続していないときだけ自由端に
します。推定した端の件数と対象は取り込み報告に出ます。
なお、床板の内部を横切る部材は支持辺にも分割境界にもなりません。実部材化済みの小梁
(実 Beam 要素)は二次部材としては扱わず、境界辺の全長を覆う場合は実部材として支持辺に
なります。
二次部材と主架構の同一判定
小梁・間柱が主架構としても登録されているときは、同一部材と確認できる場合だけ、二次部材側の 荷重伝達・小梁検定・一覧表示から除きます。小梁は所属なしの解析前チェックからも除きますが、 未所属の間柱は同一判定にかかわらずエラーです。両端の基準位置がそれぞれ 10 mm 以内で一致し(材端反転可)、同じ断面が割り当てられ、解決した材料と断面用途も一致する 2節点の実梁要素が対象です。小梁は梁用途、間柱は柱用途を要求します。断面・材料が未割当または 参照不明の場合は、同一部材とは扱いません。形状が同じでも別に登録した断面は一致としません。
小梁では一律鉛直偏心の指定状態と値も一致する必要があります。主架構が -300 mm、小梁が 0 mm なら別部材として残し、未指定と明示した 0 mm も区別します。双方未指定の場合は同一判定を 許しますが、実配置が確定したことを意味しません。間柱には小梁の鉛直偏心比較を適用しません。 この判定は数量積算の集約条件とは 別です。また、主架構と二次部材の荷重支持関係や、偏心接続の剛性・内力を新たに定義するものではありません。 この同一判定を反映していない計算契約の保存済み解析・検定成果は再利用せず、再計算が必要です。
実装参照:Model::secondary_member_materialized(crates/sepika-core/src/model/secondary.rs)が共通の同一判定を行います。
実装参照:端部支持条件の編集は sepika_edit::SetSecondaryMemberEndSupport(crates/sepika-edit/src/secondary.rs)と「床」タブの小梁一覧(sepika_app::tables::slabs、crates/sepika-app/src/tables/slabs.rs)が担い、MCP の model_edit からも設定できます。取り込みの自由端推定と支持部材アンカーへの解決は sepika_core::model::Model::anchorize_secondary_members(crates/sepika-core/src/model/secondary.rs)が一括して行います。支持端のアンカーを解決できない二次部材は端点座標のまま保持し、重量・材軸長を欠落させず、解析前チェックでエラーにして解析を止めます(片持ちへの読み替えはしません)。
小梁は、3D の「小梁配置モード」または「床」タブの配置フォームで、親の床領域(作業範囲)と両端が取り付く支持部材(大梁または既存の小梁)・材軸位置(0〜1)を指定して追加します。両端が作業範囲の内側または境界上(許容差 10 mm)で支持部材の材軸へ解決できない場合は配置を拒否します(片持ちへの読み替えはしません)。この親領域内判定は配置・端部移動の編集コマンドでも行い、3D の候補表示に頼らずモデルの不変条件として守ります。配置すると床板割当領域を再構築するため、境界が変わって参照先を失った囲まれた床板は取り除かれ、新しい割当領域は未設定(赤)になります。配置・再構築・版の除去は 1 つの Undo 単位です。
並走する小梁への荷重分配
床の辺荷重について、大梁の材軸の方が近い場合は小梁へ配らず、大梁側へ残します。同じ節点・材軸・断面用途の主架構は Beam・Fiber・MultiSpring 共通で距離を比較します。小梁の材軸距離が大梁以下なら小梁を優先し、候補が複数なら辺の端点からの材軸距離が最小の1本へ配ります。材軸とみなす許容差は10 mmです。解析用の残り辺荷重と、小梁検定での期待床板・実際の分配荷重に同じ判断を用います。
たとえば幅5 mm・長さ4000 mmの一方向床が、y=0 mmの大梁とy=5 mmの両端支持小梁に挟まれ、面荷重が0.005 N/mm²なら、各辺の負担は50 Nです。大梁に近い辺の50 Nを小梁へ移さず、合力100 Nと荷重位置を保持します。この小幅帯は距離判定の限定例であり、一般寸法の床の精度保証を表すものではありません。
実装参照:sepika_load::floor::beam_design::secondary_beam_distribution_split(crates/sepika-load/src/floor/beam_design.rs)が小梁への寄与と残り荷重を分けます。
荷重ケース書込時の支持先解決
取り付く床板の取付き線への分布は、部分区間も含め、一意に全長を覆う実梁へ割り付けます。 支持が欠落する場合、覆いが全長に届かない場合、被覆区間が重なる場合は、床板 ID と理由付きで拒否します。 両端節点への集中荷重に置き換えません。指定した両端集中や点取付きは、指定節点への集中伝達規則に従います。
取付き線への分布以外の未解決区間荷重には、覆う梁へ割り付けられないとき、両端節点へ単純梁反力として 振り分ける既存の代替経路があります(総和は保存します)。この代替では分布が集中に変わるため、 梁のモーメントを過小評価し得る危険側の近似です(位置もわずかにずれます)。
取り付く床板への変換では、旧境界のうち取付き線の両端(大梁に載る辺の 2 点)を取付き線として 引き継ぎ、残りの自由端は床板の境界から外れます。
版があるとは、実体のある床板に断面が割り当てられていることです。版なしの明示と、 未設定・断面未割当・不正な板厚は区別します。矩形RC梁の協力剛性には床板群の実断面厚を取付長で左右別に加重平均して使い、 未解決の床板を版なしとして成功させません(床板協力剛性)。 取り付く床板の荷重は支持辺(または点)へ渡しますが、矩形RC梁の全長一定協力剛性の適用範囲外です。
囲まれた床板の分配は、境界の辺に対する三角形・台形(または一方向・負担面積)です。床領域内に複数の 床板があるときは、床板ごとに独立して分配します(境界辺は大梁または小梁のいずれか)。 小梁の辺へ渡った荷重は、後述の逐次伝達(二次部材の反力の逐次伝達)で 主架構へ運びます。 小梁の所属は、中点が床領域の内部にあり(辺上 1 mm 以内は含めない)、 かつレベルが 1 mm 以内で一致することで決めます。中点が 0 領域または 2 領域以上に入る小梁は 所属を付けず、取り込み報告と診断に警告を出します。
矩形の適用条件
囲まれた水平床では、4頂点の閉合に加え、隣接辺の直交と座標面積を確認して矩形の分配式を適用します。 辺ベクトルを \(u=p_1-p_0\)、\(v=p_3-p_0\)、辺長を \(l_x=|u|\)、\(l_y=|v|\)、局所座標の面積を \(A\) とすると、 閉合誤差 \(|(p_2-p_0)-u-v|/\max(l_x,l_y)\)、単位辺ベクトルの内積絶対値 \(|\hat u\cdot\hat v|\)、 面積差 \(|A-l_xl_y|/A\) がすべて \(10^{-6}\) 以下で、頂点・計算値が有限、\(A>0\)、隣接辺長が \(10^{-9}\) mmを超えることを条件とします。 これらは数値計算上の許容であり、施工寸法の許容や床荷重分配精度を示す値ではありません。 寸法の順序は境界の辺0→1、0→3で、短辺・長辺へ並べ替えません。XY平面内で回転した矩形も同じ条件で扱います。
斜めの平行四辺形では面積を隣接辺長の積に置換できません。例えば頂点[mm]が (0,0)、(1000,0)、(1500,1000)、(500,1000)なら、真面積は1 m²、辺長積は約1.118034 m²です。 この床は既存の多角形負担面積法で真面積を使い、3 kN/m²なら総荷重3 kNを分配します。 短辺指定の一方向分配は非矩形として拒否します。水平性・単純境界・全周支持などの入力条件は、矩形判定にかかわらず適用します。
実装参照:矩形寸法の共通判定は sepika_load::floor::slab_dimensions_of(crates/sepika-load/src/floor/geometry.rs)が行います。
算定式(主な経路)
- 三角形・台形(TriTrapezoid): 45°振り分け。正方形は各辺三角形分布 \( w_0 = w \cdot L/2 \)。 矩形は短辺三角形・長辺台形。
- 一方向(OneWay): 負担辺へ \( w_{\text{line}} = w \cdot \text{スパン}/2 \) の等分布。伝達方向は X、Y、短辺から選択できます。短辺指定は矩形床の X・Y スパンを評価時に比較して決め、同寸の正方形では X または Y の明示指定を求めるエラーとします。寸法変更後も短辺指定を保持して再判定します。
- 負担面積等分布換算(TributaryArea): 短辺 \( w \cdot \text{short}/4 \)、長辺 \( w \cdot (\text{short} \cdot \text{long}/2 - \text{short}^2/4)/\text{long} \)。
- 多角形負担面積法: 最大100 mmの格子と床の交差領域を凸片に分け、実面積と各片内の重心から有限線分最近接の負担面積を積分します。全同距離辺へ均等配分し、真面積との総和比較と辺別誤差上界を返します。適用条件と精度の読み方は多角形床の幾何分配を参照してください。
- 短辺指定は矩形床に限って対応します。非矩形床で短辺を指定した入力はエラーとし、多角形の負担面積法へフォールバックしません。
- 片持ち・出隅: 取付き線への分布は、版の XY 投影面積に面荷重強度を掛けた全荷重を、取付き区間の実長で除した等分布で取付き梁だけへ伝えます。側辺・先端辺へは分配しません。両端集中は取付き線の区間中点に応じた比率で指定節点へ、点取付きは矩形の全重量を指定節点へ伝えます。
- 小梁の辺へ渡った荷重: 小梁は解析要素ではないため、単純梁の両端反力に変えて支持相手へ渡します(二次部材の反力の逐次伝達)。
実装参照:線アンカーの取り付く床板の分配は sepika_load::floor::distribute_cantilever(crates/sepika-load/src/floor/cantilever.rs)、短辺指定の入力検証は sepika_load::floor::validate_one_way_directions、床板単体の算定と直接経路の検証は sepika_load::floor::distribute_slab_w
(crates/sepika-load/src/floor/mod.rs)が行います。床領域単位の入口は distribute_region
(床領域内の各床板を distribute_slab_w で分配する)、床板単体の入口は
distribute_slab/distribute_slab_w で、形状と手法によって経路を分岐します。正方形で
OneWayDir::Short を指定した場合は ShortDirectionOnSquare を返して停止し、荷重を空結果へ
置き換えません。自動荷重生成・解析前チェックもこのエラーを呼び出し元へ伝播します。
多角形床の幾何分配
対象は水平な、無開口・自己交差なし・全周支持の単純多角形です。境界は大梁または小梁の 支持部材IDと有向材軸区間で与え、座標はmm、面荷重強度はN/mm²です。 開口、自由辺、支持欠落をこの全周支持モデルへ流用しません。現在の床板には開口輪郭の入力欄がなく、 外周だけを入力して開口面積を控除する使い方も対象外です。支持参照不明、非有限座標・荷重、 退化辺、自己交差、閉じない支持境界は理由付きエラーとなり、ゼロ荷重でも入力異常を検査します。 囲まれた床の幾何入力検査は矩形分配・多角形分配のどちらにも適用します。
各床内点を、全境界辺の有限線分までの距離が最短になる辺へ帰属させます。 辺 \(e=[a,b]\) に対して
\[ u_e=\operatorname{clamp}\left(\frac{(p-a)\cdot(b-a)}{|b-a|^2},0,1\right),\qquad d_e=|p-(a+u_e(b-a))| \]
を用います。\(d_e-d_{\min}\le\varepsilon_d\) の全辺へ面積を等分します。 凹頂点が最近接となる領域でも、その端点へ達する隣接辺へ均分し、新たな節点集中荷重は作りません。 無限延長線への垂線とは異なるモデルです。全周支持の床内点から最近接境界点へ向かう線分が 途中で床外へ出るなら、先の境界交点のほうが近くなります。このため本適用範囲では可視性による 候補除外を行いません。支持辺を間引く床にはこの論証を適用できません。
これはSEPIKAで採用した幾何分配モデルです。床版の剛性・応力の厳密解ではなく、各辺荷重が 一律安全側になる保証もありません。凹形の処理を公開資料にない他者の仕様と同一とは扱いません。 辺別荷重は \(W_e=qA_e\)、辺長 \(L_e\) の等価等分布は \(w_e=W_e/L_e\) です。
凸台形の連続面積
凸床内では、辺の内向き単位法線への距離 \(d_e\) が最小となる半平面 \(d_e\le d_j\) の交差が、その辺の負担領域になります。領域の面積は 頂点を順に並べた座標法で求められます。例えば頂点[m]が (0,0),(6,0),(4,3),(1,3)の凸台形では、内向き距離は
\[ d_0=y,\quad d_1=\frac{18-3x-2y}{\sqrt{13}},\quad d_2=3-y,\quad d_3=\frac{3x-y}{\sqrt{10}} \]
です。辺番号は0始まりで、辺3は(1,3)→(0,0)です。各負担面積[m²]は \([(63-3\sqrt{13}-3\sqrt{10})/8,;3\sqrt{13}/4,;(45-3\sqrt{13}-3\sqrt{10})/8,;3\sqrt{10}/4]\) となり、和は13.5m²です。これは採用幾何モデルの連続解です。 100mm重心格子の出力そのものや、床剛性による実応力分配の精度保証を意味しません。
格子・同率・誤差
格子辺長は既定100 mm、指定時は100 mm以下です。床境界箱からの位相も指定できます。 境界セルは交差した凸片の実面積を使い、セル中心が床外でも床片を捨てません。 凹形または複数片を床外の単一重心で代表させず、各凸片内の面積重心で分配します。 各片の配分率和は1で、独立な多角形面積と配分総和を比較します。総荷重による後付け正規化は行いません。
距離は床の局所原点へ平行移動して評価します。床境界箱対角長 \(D\) に対し \(\varepsilon_d=64,\mathrm{EPSILON},\max(1\mathrm{mm},D)\) とし、倍精度の丸め用にのみ使用します。 格子幅に比例する同率帯へ拡張しません。採用したε、辺別面積、未配分面積(正の総和残差)、 格子寸法・位相、丸め許容幅、辺別絶対誤差上界を診断に含めます。 診断付き公開床分配APIでは取得できますが、通常GUI・解析ジョブ・MCPの結果には これらの積分診断を表示・保存しません。通常画面での精度確認には未対応です (追跡: Issue #555)。
各凸片の重心から全頂点への最大距離を \(r\) とすると、各辺への距離は片内で最大 \(r\) 変化するため、 他辺との差が \(2r+\varepsilon_d\) より大きければ帰属は変わりません。 全頂点で隣接辺への投影が同一共有端点側にある場合、線形な投影条件は片全域で成り立ち、 両辺は片全域で等距離です。この群を一つの等分候補群として認証します。 群内の同率を帰属誤差として数えず、候補群が変わり得る片の真面積を、可能性のある各辺の 絶対誤差上界へ加えます。したがって上界は保守的な数値積分誤差であり、構造設計上の安全率ではありません。 辺荷重の誤差上界は \(|q|\) 倍です。
100 mmは分割寸法の設定で、特定の精度保証ではありません。既定は要求誤差未指定で、算定した上界を報告します。 辺別要求誤差 [mm²] を指定した場合、上界が要求を超える結果を成功にせず、細分化を求める理由付き診断を返します。 一律2%は許容値に用いません。既定の格子資源上限は400万セル、凸分割片との走査上限は3200万回です。 上限時に格子を粗くしません。境界頂点数256超または数値精度不足も理由付き診断となります。
採用方式と適用限界
| 項目 | SEPIKAの採用条件 |
|---|---|
| 重心から最短の垂線・2/3/4等分 | 全同距離の支持辺へ等分。境界片ごとに実面積と片内重心を使用 |
| 格子最大辺長 | 既定100 mm以下、資源超過は診断。精度保証とは区別 |
| 凹角の辺延長・共有頂点 | 無開口・全周支持の有限線分最近接を採用 |
| 凹角の曲線境界と二等分線方式 | 異なる幾何モデルであり、その差を格子誤差へ吸収しない |
| ε・境界実面積・上界・要求精度 | SEPIKAの数値積分設定と距離の1-Lipschitz性による上界 |
| 剛性分配・実応力・規準上の精度限界 | 未確認。本幾何モデルの検証を実験Validationや法適合保証とはしない |
学会規準・技術基準解説書の原典に凹形分配の規定があることは未確認です。
実装参照:sepika_load::floor::integrate_polygon(crates/sepika-load/src/floor/polygon.rs)が面積・格子・誤差診断を返し、
sepika_load::floor::distribute_slab_w_with_diagnostics(crates/sepika-load/src/floor/mod.rs)が実床板の支持境界検査と荷重生成へ接続します。
固定端モーメント・せん断力(CMQ)
以下は剛域なし・両端固定梁の固定端モーメントとせん断力(CMQ)の基準式です。 V&Vで総和保存と固定端値を検証しています。
算定式
等分布:
\[ C = \pm w \cdot L^2/12 \]
\[ Q = w \cdot L/2 \]
三角形:
\[ C = \pm 5 \cdot w_0 \cdot L^2/96 \]
\[ Q = w_0 \cdot L/4 \]
台形(閉形式評価):
\[ \mathrm{FEM} = \frac{1}{L^2} \int_0^L w(x) \cdot x \cdot (L - x)^2 \ dx \]
一般(非対称荷重。剛域を考慮する場合は可撓区間の長さと可撓端からの座標を用いる):
\[ \mathrm{FEM}_i = \frac{1}{L^2} \int w(\xi) \xi (L - \xi)^2 \ d\xi \]
\[ \mathrm{FEM}_j = \frac{1}{L^2} \int w(\xi) \xi^2 (L - \xi) \ d\xi \]
\[ Q = R_0 \pm (\mathrm{FEM}_i - \mathrm{FEM}_j)/L \]
「剛域を考慮する」がON(既定)なら、両端の解決済み剛域長を \(\lambda_i,\lambda_j\) とし、可撓長 \(L_f=L-\lambda_i-\lambda_j\) の形状関数に可撓区間の荷重を積分します。線形分布は区間を切り分け、区間端の強度を元の分布から評価します。三点Gauss積分はこの多項式積分に対して厳密です。
可撓端の等価力は剛体アームを介して節点へ移し、i端では \(M_{zi}=M_{zi,f}+\lambda_i Q_{yi,f}\)、j端では \(M_{zj}=M_{zj,f}-\lambda_j Q_{yj,f}\) とします。剛域部分に直接載る荷重は、その合力と節点まわりの一次モーメントを別に加えます。境界上の点荷重は可撓側へ所属させ、一度だけ計上します。材端解放は同じ荷重を用いて内部回転を釣り合わせます。
OFFでは剛域長を控除せず、全長の剛性と荷重応答を用います。ただし仕口パネルのある接続では、その偏心による長さ・力の移送を反映します。手動剛域長と危険断面フェース位置は保存したままです。仕口パネルの偏心は別概念として保持します。可撓長が成立しない過大剛域は既存の長さ解決規則で剛域なしとして扱い、荷重をゼロにしません。荷重値・荷重位置の非有限値や不正な荷重区間はエラーです。
下向き荷重を正にとる強軸面では、等分布・両端固定のCはi端が正、j端が負です。荷重込み曲げMの端値は \(M(0)=-C_i\)、\(M(L)=C_j\) とし、せん断Qはi端側が正、j端側が負になります。
CMQ図は節点変位を0とした梁の荷重応答です。Cは端部固定値、Q・Mは全長座標で回復した荷重込み断面力で、単純梁の参考図とは区別します。建物全体を解いて得られる変位による応力は含みません。
記号・単位
| 記号 | 意味 | 単位 |
|---|---|---|
| \( w \) | 部材に作用する等分布荷重(線荷重) | N/mm |
| \( w_0 \) | 三角形分布荷重の最大荷重強度 | N/mm |
| \( L \) | 部材長(スパン) | mm |
| \( C \) | 節点変位0の端部モーメント(材端解放を反映) | N·mm |
| \( Q \) | 両端固定梁の固定端せん断力 | N |
| \( \mathrm{FEM} \) | 分布荷重の固定端モーメント | N·mm |
| \( R_0 \) | 単純梁の支点反力 | N |
| \( \xi \) | 材軸方向の無次元位置 | - |
実装参照:床分配時の固定端値は sepika_load::floor::fixed_end_moments(crates/sepika-load/src/floor/fem.rs)、解析と表示の梁荷重応答は sepika_element::frame::member_load::{FrameDeadLoadMap, cmq_with_rigid_zone}(crates/sepika-element/src/frame/member_load.rs)が扱います。
符号付き単純梁反力
支間 \(L\) [mm]、i端からの位置 \(a,b\) [mm]、点荷重 \(P\) [N]、線荷重 \(w_1,w_2\) [N/mm] を用います。有限入力・正支間の正常区間(点は \(0\le a\le L\)、分布は \(0\le a<b\le L\))では、符号付き合力 \(W\) [N] とi端まわりの一次モーメント \(S\) [N·mm]から反力を求めます。
\[ W=P,\quad S=Pa \qquad\text{(点荷重)} \] \[ h=b-a,\quad W=\frac{h(w_1+w_2)}{2},\quad S=aW+\frac{h^2(w_1+2w_2)}{6} \qquad\text{(線形分布)} \] \[ R_j=\frac{S}{L},\quad R_i=W-R_j \]
合力で割る重心比は用いず、反力比を0〜1へ制限しません。合力がゼロでも一次モーメントがゼロでなければ、正負の反力対が生じます。強度を全て反転すれば反力と曲げモーメントも反転します。単純梁の曲げは \(M(x)=R_ix-\int_a^{\min(x,b)}w(s)(x-s)ds\)(未載荷部分の積分は0)で、正常区間では両支持端で0になります。これは重量・質量への負荷重採用を承認する規則ではありません。
床の単純梁算定では、点位置は支間内に制限し、分布は指定した原区間を保持します。反力比や合力の近ゼロ判定で旧重心配分へ戻すことはありません。支間外の原区間を入力した場合も数値は変わります。例えば支間6000 mm、区間[7000,8000] mm、強度1/1 N/mmは、重心比を制限した配分の0/1000 Nから、W/Sによる−250/1250 Nになります。この域外結果の物理的妥当性や単純梁Mの端点閉合は保証しません。支間外荷重を妥当な梁モデルとして推奨するものではありません。区間の受理・原区間の扱いは変更せず、切断・端強度再評価・新入力拒否は追加していません。固定距離域外入力の扱いはIssue #635で別途調査します。分布長が1e−9 mm以下なら反力0、非負の支間が1e−9 mm以下なら合力を半分ずつとします。負支間の点荷重は計算できません。今回の正常域保証はこれらの極小判定に掛からない範囲です。域外・極小入力の数学的精度は保証しません。GUIの固定区間を超える座標編集は引き続き拒否します。範囲を切断する際の端強度再評価は今回の契約に含みません。
実装参照:sepika_load::floor::{simple_reactions, simple_beam_moment_at}(crates/sepika-load/src/floor/fem.rs)と simple_beam_extremes(crates/sepika-load/src/floor/beam_design.rs)が算定します。
二次部材の反力の逐次伝達
小梁・間柱(二次部材)は解析要素ではないため、受け持った荷重は単純梁の両端反力に変えて 支持相手へ渡し、支持相手が主架構(大梁)ならそこで終端して梁の中間集中荷重になります。 支持相手が別の二次部材のときは、その相手の集中荷重として渡し、主架構へ行き着くまで 同じ操作を繰り返します。 これを二次部材の反力の逐次伝達と呼びます。荷重を受けるのは あくまで大梁の側なので、大梁を交点で分割することはしません。
二次部材が受け持つ荷重は次の 4 つの重ね合わせです。
- 床板分配が二次部材の材軸へ出した辺荷重(本ページ冒頭の三角形・台形などの分配則による)
- 解析要素にならない壁版から間柱へ配られた自重(自重の長期応力解析への接続。 長期の固定荷重にのみ算入し、積載荷重のケースには載せない)
- 二次部材自身の自重(\( \rho \cdot A \cdot g \times \) 鉄骨重量割増。長期の固定荷重にのみ算入し、 積載荷重のケースには載せない)
- その二次部材に架かる別の二次部材から渡された集中荷重
交点は常にピン受け・架けとして扱い、剛接十字(交点で曲げが連続する接合)は扱いません。 両端ピンであれば各段が静定に決まるため、逐次伝達は近似ではなく厳密解になります。一律に ピンとみなすことは、交点の曲げ連続による低減を無視するぶん架け側のモーメントとたわみを 過大に見ることになるので、安全側の扱いです。
受け側と架け側は幾何から決まります。 二次部材 B の端点が二次部材 A の内法に載っていれば B が架け側・A が受け側で(許容差 10 mm)、どちらを受け側にするかを指定する入力欄はありません。
反力の分配則は、支点まわりのモーメントのつり合いによります。鉛直荷重に対する鉛直反力の てこの腕は水平投影の距離であり、荷重の材軸上の位置は水平投影へ線形に写ります。したがって 水平投影が 0 でない限り、鉛直反力は材軸上の按分(単純梁の反力)と一致します。傾斜した 二次部材でも、部材の向きで場合分けする必要はありません。
例外は水平投影が 0 になる部材、すなわち鉛直な間柱です。このときはモーメントのつり合いが
退化して荷重が軸力として流れるため、両端への配分が不静定になり、仮定を置く必要があります。
水平投影が 10 mm 以下の二次部材は、SecondaryMember::gravity_end_shares(Option<[f64; 2]>)に両端への負担率を明示します。並びは ends(SecondaryMemberEnds)の端の順で、各値は非負・有限、総和 1(許容差 1e-9)です。既定の None は未指定で、解析前チェックのエラーです。画面は端部の高さから上下端を表示し、下端 100%・上端 100%・上下各 50% または任意の比率を指定できます。間柱自身の自重、壁から受ける荷重、他の二次部材から受ける荷重に同じ比率を適用します。0% の端部には荷重伝達先を要求しません。
この比率は納まり・支持条件に基づく入力で、軸剛性や支持ばねから自動算定するものではありません。実際は下端だけで受ける部材に上下各50%を指定すると、下の梁の負担を過小評価する危険側のモデルになります。水平投影が 10 mm を超える傾斜材は、モーメントの釣合いによる単純梁反力を使い、この比率を使用しません。
片持ち小梁(基端が支持され、先端が自由な小梁)の荷重は、基端の鉛直反力としてのみ 伝達します。基端の曲げが考慮されない点と端部支持条件の設定方法は、本ページ前半の 「取り付く床板の荷重の出口」を参照してください。
荷重を流せない形は解析前チェックのエラーになります。端部がどの主架構にも二次部材にも 載っていない二次部材、支持関係が一巡している二次部材、節点を共有せずに交差している二次部材が これに当たります。いずれも荷重の行き先が決まらないため、モデル化を直す必要があります。 両端が自由端の二次部材も支持がなく不安定なためエラーです。 ただし端部の行き先が決まらない二次部材のうち、受け持つ荷重が実際に 0 のもの (断面が未割当で自重が出ず、床の分配も載らないもの)はエラーにしません。失う荷重がなく、 形だけ置かれた支持点で解析が止まるのを避けるためです。
実装参照:sepika_load::cascade が算定し、荷重の同期(sepika_job::auto_loads)と
小梁の断面検定(小梁・床の断面検定)は同じ経路を通ります
(面荷重強度は用途ごとに違うため、荷重の値そのものは一致しません)。
床の中の小梁・スラブの断面検定(設計タブの「小梁・床の設計」表)は、ここで述べた荷重の分配とは別の話題です。小梁・床の断面検定を参照してください。
外周スラブ
標準床荷重を設定した階では、大梁の一方の側だけに床組がある場合に、床組のない側へ外周スラブを
荷重計算上の派生形状として生成します。standard_floor_load が None の階は外周スラブを生成しません
(エラーにはしません)。両側に床組がある場合や、外周側に同じ大梁へ取り付く明示床板(片持ち・バルコニー等)が
ある場合も生成しません。
始端柱・終端柱の大梁直交方向寸法をそれぞれ \(d_{start}\)、\(d_{end}\) とすると、外周スラブの出は \(e=(d_{start}+d_{end})/4\) とします。標準床荷重 \(q\) [N/mm²] から大梁の等分布線荷重 \(w=qe\) [N/mm] を生成します。長期固定荷重・大梁用積載荷重・地震用重量は同じ派生形状を共有し、 用途別の標準床荷重強度だけを切り替えます。
この式は両端寸法の算術平均の 1/2 とする明示仕様です。両端寸法が異なる場合、実際の外周面積や荷重の 作用位置を表さず、局所荷重等を過小評価し得る危険側近似です。柱断面は、対象階の床レベルから直下の床レベルへ 鉛直材を下向きに辿り、当該層に属する最上側の柱セグメントから取得します。途中で柱が分岐する、直下床へ到達しない、 必要な柱断面・幾何情報が欠落する場合はエラーとして停止し、別部材や要素順依存の候補へフォールバックしません。
実装参照:sepika_core::model::perimeter_slabs(crates/sepika-core/src/model/perimeter_slab.rs)が
外周スラブの派生形状を算定し、sepika_job::auto_loads(crates/sepika-job/src/auto_loads.rs)が
その形状から荷重を生成します。3D 表示も同じ派生形状を参照します。