架台設計で荷重の方向がバラバラ、断面力が手計算で追えなくなった日
プラント設備の架台設計を手がけていると、鉛直荷重だけでなく地震時の水平力、配管反力、モーメント荷重が同時に作用する場面に必ず出くわす。しかも荷重の作用点もバラバラで、評価したい断面も部材軸上の任意の位置になる。手計算で1本ずつベクトルの分解と外積を求めていると、どこかで符号ミスか成分の取り違えが発生して、検算に膨大な時間を食われる。
このツールは、そうした「空間上の複数荷重を1つの断面で整理したい」というピンポイントの需要に応えるために作った。
なぜ3Dベクトル合成ツールを作ったのか
Excelで力のモーメント計算シートを何度も作り直した経験がある。行方向に荷重ケース、列方向に6成分を並べ、外積の公式をセルに埋め込む。しかしExcelだと3次元ベクトルの外積は3セル×3行が必要で、1つの荷重を追加するたびにコピー&ペーストの嵐になる。しかも、作用点と断面位置の相対位置ベクトルを目視で確認する手段がない。
CAEやFEMソフトなら一発で解けるが、「この断面にかかる断面力だけ知りたい」という局所的な作業にFEMモデルを立ち上げるのは重い。メッシュ作成・境界条件設定・ポスト処理の工程が入る分、30分〜1時間はかかる。
欲しかったのは「荷重と断面位置を入れたら6成分が即出る」電卓のようなツール。加えて、3Dビューアで荷重ベクトルと断面の位置関係を目で確かめたかった。それがこのツールの出発点だ。
断面力とは何か — 構造物の「内臓」にかかる力
断面力 6成分 とは
構造部材の任意の断面を仮想的に切断したとき、切断面に作用する内力のことを断面力と呼ぶ。3次元空間では6つの成分に分解できる。
- 軸力 N — 断面法線方向(部材軸方向)の押し引き力。引張が正
- せん断力 Vy, Vz — 断面内2方向のずれ力
- ねじりモーメント Mx — 断面法線まわりの回転モーメント
- 曲げモーメント My, Mz — 断面内2軸まわりの曲げモーメント
イメージとしては、棒の途中を包丁でスパッと切った断面に「どんな力と回転が伝わっているか」を数字にしたもの。料理で例えると、長いフランスパンの途中を切ったときに、パンの繊維が「引っ張られている」「ねじれている」「曲がっている」といった状態を定量化する行為に近い。
断面力 と 外力の違い
混同されやすいが、外力と断面力は本質的に異なる概念だ。
| 外力 | 断面力 | |
|---|---|---|
| 定義 | 構造物の外部から作用する力 | 仮想切断面に伝わる内力 |
| 例 | 重力、風圧、地震力、機器荷重 | 軸力N、せん断力V、曲げM |
| 求め方 | 荷重条件として与えられる | 力の釣り合い・モーメントの釣り合いから計算 |
| 用途 | 荷重の入力データ | 応力度・安全率計算のインプット |
外力が「構造物を押す力」なら、断面力は「構造物が内部で耐えている力」。設計者が最終的に評価するのは断面力から算出される応力度であり、外力はその入口に過ぎない。
ベクトル合成 とは——複数の力を1つにまとめる
3次元空間で複数の力が異なる方向から同時に作用する場合、それらを成分ごとに足し合わせることで合力を求められる。これがベクトル合成だ。
F₁ = (F₁ₓ, F₁ᵧ, F₁ᵤ)
F₂ = (F₂ₓ, F₂ᵧ, F₂ᵤ)
合力 R = F₁ + F₂ = (F₁ₓ+F₂ₓ, F₁ᵧ+F₂ᵧ, F₁ᵤ+F₂ᵤ)
合力の大きさ |R| = √(Rₓ² + Rᵧ² + Rᵤ²)
力だけでなく、モーメントも同様に合成できる。ただしモーメントは作用点の位置に依存するため、「どの点まわりのモーメントか」を統一する必要がある。このツールでは評価断面の中心をモーメント基準点として、全荷重のモーメントを合成する。
ローカル座標系 とは
断面力を分解するには、その断面に固有の「ローカル座標系」が必要になる。
n: 断面法線(部材軸方向)→ 軸力 N の方向
t: 断面内ローカルY軸 → せん断力 Vy, 曲げモーメント Mz の方向
b: 断面内ローカルZ軸 → せん断力 Vz, 曲げモーメント My の方向
b = n × t(右手系)
グローバル座標系(X, Y, Z)とローカル座標系(n, t, b)の関係を正しく設定することが、断面力計算の第一歩だ。日常で例えると、「北向きに3歩、東に2歩」というのがグローバル座標での記述、「廊下の方に3歩、壁側に2歩」というのがローカル座標での記述に相当する。構造物の部材は任意の方向を向いているから、グローバル座標をローカル座標に変換する作業が不可欠になる。
このツールではグラム・シュミット直交化を使って、ユーザーが入力した法線ベクトルとローカルY軸の参照方向から、厳密な直交座標系を自動構築する。
外積(クロス積)とは——モーメントの計算に必須
断面力のうちモーメント成分は、位置ベクトル r と力ベクトル F の外積で求まる。
M = r × F = (rᵧFᵤ - rᵤFᵧ, rᵤFₓ - rₓFᵤ, rₓFᵧ - rᵧFₓ)
外積の結果は r と F の両方に垂直なベクトルになり、大きさは |r||F|sinθ(θ は r と F のなす角)。つまり力が作用点から断面までの距離に直交して作用するほどモーメントが大きくなり、平行に作用すると0になる。「テコの原理」を3次元に一般化したものだ。
参考: Wikipedia — 断面力
断面力を正しく求めないと何が起きるか
設計の根幹 — 断面力から応力度、応力度から安全率へ
構造設計のフローは「外力 → 断面力 → 応力度 → 許容応力度との比較(安全率)」という一直線の流れだ。断面力が間違っていれば、その下流の応力度・安全率もすべて間違う。
外力(荷重) → 断面力(N, V, M) → 応力度(σ, τ) → 安全率 S = σ_allow / σ
例えば曲げモーメント My を30%過小評価すると、曲げ応力度 σ = M/Z も30%小さくなり、安全率が1.43倍に水増しされる。本来 S=1.2(注意レベル)の部材が S=1.7(安全)と判定されてしまう。
見落としが事故に繋がる実例
JIS B 8501(圧力容器)やJIS B 2220(管フランジ)では、設計荷重の組み合わせと断面力の算出方法が規定されている。建築基準法施行令でも、地震力・風圧力・積載荷重の組み合わせに基づく応力度計算が義務付けられている(令第82条)。
複数荷重の合成を手計算でミスなく行うことは、法令遵守の観点からも重要だ。
こんな場面でベクトル合成ツールが活躍する
- 架台・フレーム設計 — 機器重量+配管反力+地震力が交差する柱脚・梁端の断面力整理
- 配管サポート設計 — 熱膨張力+自重+流体反力が作用するサポート部の荷重評価
- 機械フレーム — モーター荷重+ベルト張力+慣性力が複合する軸受支持部の断面力
- 教育用途 — 材料力学の授業で「空間荷重 → 断面力」の概念を3Dで可視化
基本の使い方 — 3ステップで断面力を算出
ステップ1: 荷重を登録する 「+力荷重」または「+モーメント荷重」ボタンで荷重を追加。名前を付けて、直交成分(Fx, Fy, Fz)か大きさ+方向ベクトルか球座標で値を入力する。作用点の座標も忘れずに。
ステップ2: 評価断面を設定する 断面中心の座標と法線ベクトル(部材軸方向)を入力。ローカルY軸の参照方向を指定すると、ツールが自動的に直交座標系を構築する。
ステップ3: 結果を確認する 計算結果テーブルで6成分の値と各荷重の寄与率を確認。3Dビューアで矢印の方向・大きさと断面の位置関係を視覚チェック。「結果をコピー」でTSV形式でクリップボードに取得できる。
使用例 — 6つのケースで計算過程を検証する
ケース1(基本): 鉛直荷重のみ — 片持ち梁の曲げ
評価断面の法線が X 方向(n = [1,0,0])、鉛直荷重 Fz = −500 N が作用点 (300, 0, 0) に作用する場合。
r = (300,0,0) - (0,0,0) = (300, 0, 0)
F = (0, 0, -500)
M_F = r × F = (0×(-500) - 0×0, 0×0 - 300×(-500), 300×0 - 0×0)
= (0, 150000, 0)
N = F · n = 0 N
Vy = F · t = 0 N
Vz = F · b = -500 N
Mx = M_F · n = 0 N·mm
My = M_F · t = 150,000 N·mm
Mz = M_F · b = 0 N·mm
結果: せん断力 Vz = −500 N、曲げモーメント My = 150,000 N·mm。これは「300mm先に鉛直荷重 → 根元で曲げ」という直感とも合致する。
→ 注意点: 軸力 N = 0 になるのは、荷重が法線方向に対して完全に直交しているため。斜め荷重の場合は法線方向成分が軸力として現れるので、荷重方向と法線の関係を必ず確認すること。
ケース2(基本): 水平荷重の追加 — ねじりの発生
Fy = 200 N を作用点 (300, 0, 100) に追加すると、r = (300, 0, 100) で M_F = r × (0, 200, 0) = (−20000, 0, 60000)。
Vy = 200 N(ローカルY方向のせん断力)、Mz = 60,000 N·mm(曲げ追加)、Mx = −20,000 N·mm(ねじり発生)。 → 注意: 力の作用点がZ方向にオフセット(z=100)しているため、ねじりモーメントが発生している。作用点が z=0 であればねじりは0になる。
ケース3(応用): 斜め荷重の合成 — 寄与率の活用
3つの力荷重を同時に有効にすると、合計6成分が表示される。各荷重の寄与率で「どの荷重が支配的か」が一目で分かる。 → 注意: 寄与率は絶対値ベースで計算される。符号が逆の荷重同士が打ち消し合う場合、寄与率の合計が100%を超えることがある。これは正常な挙動。
ケース4(応用): モーメント荷重の寄与 — フランジ締結トルク
締結トルク Mx = 50,000 N·mm を追加。これは法線方向のモーメント成分に直接寄与し、ねじりモーメント Mx の合計に加算される。 → 注意: モーメント荷重は作用点の位置に関係なく、ダイレクトにローカル座標系のモーメント成分に射影される。力荷重のように「距離×力」でモーメントを生むのではなく、そのまま加算される点が異なる。
ケース5(実務): 架台柱脚の複合荷重 — 機器重量+地震力
機器重量 Fz = −10,000 N が柱頂 (0, 0, 3000) に、地震時水平力 Fx = 3,000 N が同じ位置に作用。評価断面は柱脚 (0, 0, 0)、法線 n = [0, 0, 1](鉛直方向)。
r = (0, 0, 3000) - (0, 0, 0) = (0, 0, 3000)
機器重量: F₁ = (0, 0, -10000)
M₁ = (0,0,3000) × (0,0,-10000) = (0, 0, 0) → 法線方向と平行なのでモーメント発生せず
N = -10,000 N(圧縮)
地震力: F₂ = (3000, 0, 0)
M₂ = (0,0,3000) × (3000,0,0) = (0×0-3000×0, 3000×3000-0×0, 0×0-0×3000)
= (0, 9000000, 0)
Vy = 3,000 N, My = 9,000,000 N·mm
結果: 軸力 N = −10,000 N(圧縮)、せん断力 Vy = 3,000 N、曲げモーメント My = 9,000,000 N·mm。柱脚の安全率評価に使う。 → よくある間違い: 地震力の作用点を柱脚(断面位置と同じ)に設定してしまうケース。r = 0 になりモーメントが発生しない。作用点は力が実際に作用する位置(この場合は柱頂)を入力すること。
ケース6(実務): 配管サポート — 熱膨張+自重+流体反力
配管の自重 Fz = −3,000 N(作用点: サポート上面)、熱膨張力 Fx = 1,500 N(配管軸方向)、流体反力(エルボ部)Fy = −800 N を同時に評価。評価断面はサポート根元。
合計6成分のうち、曲げモーメントの合成値 M_bend = √(My² + Mz²) を確認し、自重による曲げが支配的か、熱膨張力による曲げが支配的かを寄与率で判断する。設計レビューでは「熱膨張ケースを除外したらどうなるか」をON/OFFで即検証できる。
→ 注意点: 配管サポートの設計では、運転時(常温→高温)と停止時(高温→常温)で熱膨張力の方向が逆転する。両方の荷重ケースを登録し、それぞれの断面力を評価すること。片方だけでは最大曲げモーメントを見逃す可能性がある。
仕組み — ベクトル射影法によるアルゴリズム
手法の比較
断面力の算出には大きく2つのアプローチがある。
| 手法 | 概要 | メリット | デメリット |
|---|---|---|---|
| ベクトル射影法 | 外力をローカル座標に射影 | 直感的、実装が軽量 | 大規模構造には不向き |
| FEM(有限要素法) | メッシュ分割+剛性行列 | 任意形状・分布荷重対応 | モデリング工数大 |
このツールは「剛体のフリーボディに集中荷重」というスコープに限定し、ベクトル射影法を採用した。FEMのようなメッシュ作成は不要で、入力即結果のリアルタイム性を実現している。
計算フロー
1. ローカル座標系の構築
n = normalize(法線ベクトル)
t = normalize(tRaw - dot(tRaw, n) × n) ← グラム・シュミット直交化
b = n × t
2. 各荷重の入力モードに応じた前処理
components: そのまま (fx, fy, fz)
vector: (mag × nx/|n|, mag × ny/|n|, mag × nz/|n|)
spherical: (mag × cos(φ) × cos(θ), mag × cos(φ) × sin(θ), mag × sin(φ))
3. 断面力6成分の算出(力荷重の場合)
r = 作用点 − 断面中心
M_F = r × F
N = F · n, Vy = F · t, Vz = F · b
Mx = M_F · n, My = M_F · t, Mz = M_F · b
4. 合計・合力・合成値の算出
合成せん断力 V = √(Vy² + Vz²)
合成曲げモーメント M_bend = √(My² + Mz²)
グラム・シュミット直交化とは
ユーザーが入力したローカルY軸の参照方向が法線と完全に直交していない場合(実務では頻繁に起きる)、グラム・シュミット直交化で自動補正する。
t' = tRaw - (tRaw · n) × n
t = t' / |t'|
これにより、法線 n と直交する成分だけを取り出して正規化する。直交ずれが5°を超えると警告を表示し、ユーザーに再確認を促す。
参考: Wikipedia — グラム・シュミットの正規直交化法
FEMソフトや手計算シートとの違い
vs FEMソフト(ANSYS, Abaqus等): FEMは分布荷重・非線形・動的応答も扱えるが、モデリングに時間がかかる。このツールは「集中荷重×剛体」に特化し、入力から結果まで数秒で完結する。
vs Excel手計算シート: Excelでも同じ計算は可能だが、3次元外積の数式管理が煩雑で、荷重追加時のメンテナンスコストが高い。3D可視化もない。
vs beam-strength(梁の安全審判員): beam-strengthは単一部材の曲げ・たわみに特化。このツールで断面力を算出し、beam-strengthに渡して応力度・安全率を評価する連携ワークフローが理想的。
断面力にまつわる豆知識
符号規約 — 引張正 vs 圧縮正
断面力の符号規約は分野によって異なる。建築構造では「圧縮正」が慣例の場合があるが、材料力学の教科書では「引張正」が一般的。このツールでは引張正(法線方向と同じ向きの力が正)を採用している。
右手系座標系の由来
ローカル座標系 (n, t, b) は右手系で定義される。右手の親指を n 方向、人差し指を t 方向に向けると、中指が b 方向を指す。これは物理学の慣例であり、ベクトル外積 b = n × t の定義と整合する。
モールの応力円との関係
断面力から応力度を求めた後、2軸応力状態の評価にはモールの応力円が役立つ。特に曲げ+ねじりの複合応力では、主応力と最大せん断応力をモールの応力円で視覚的に把握できる。
Tips — 効率的に使うための3つのコツ
法線方向の決め方: 部材軸方向(長手方向)を法線にするのが基本。柱なら鉛直方向、梁なら水平スパン方向。迷ったら「部材を切る包丁の刃に垂直な方向」と考えるとよい。
荷重ON/OFFの使い分け: 個別荷重の影響を確認したいときは、他の荷重をOFFにして1つずつ寄与を確認する。設計レビューで「この荷重がなかったらどうなるか」を即答できる。
単位系切替のコツ: 自動変換ONなら、N/mm で入力した後に kN/m に切り替えると値が自動換算される。構造計算書の単位系に合わせて最終結果を出力するときに便利。
FAQ — よくある質問
分布荷重(等分布荷重・三角荷重)は扱えるか?
現在のバージョンでは集中荷重のみに対応している。分布荷重は等価な集中荷重に置換して入力する方法がある。等分布荷重 w [N/mm] がスパン L [mm] に作用する場合、合力 F = w × L をスパン中央に作用させることで近似できる。
動的荷重(衝撃荷重・振動荷重)の計算に使えるか?
このツールは静的荷重の組み合わせを対象としている。動的荷重を扱う場合は、動的係数(衝撃係数)を乗じた等価静的荷重として入力する方法が一般的。ただし共振や疲労の評価には別途動的解析が必要。
曲面(パイプ等)の断面にも使えるか?
評価断面は平面として扱うため、パイプの任意断面にも適用可能。ただし法線方向(パイプ軸方向)とローカルY軸の設定を正確に行う必要がある。薄肉円筒のねじりに関しては、Mx から τ = Mx / (2πr²t) で応力度を算出できる。
計算データはどこに保存されるか?
すべての計算はブラウザ上で完結し、サーバーへのデータ送信は一切行わない。計算結果はlocalStorageに一時的に保存されるが、ブラウザの設定からいつでも削除可能。入力データの永続的な保存機能は今後の実装予定。
まとめ
3Dベクトル合成・断面力算出ツールは、空間上の複数荷重から評価断面の断面力6成分をリアルタイムに算出する。荷重の登録 → 断面設定 → 結果確認の3ステップで、手計算やExcelに比べて圧倒的に効率的かつミスの少ない荷重整理が可能になる。
算出した断面力は梁の安全審判員で応力度・安全率に変換したり、鋼材断面のコンシェルジュで断面性能と組み合わせて使うとさらに実用的。ベクトル合成の結果を次の設計ステップにそのまま活かしてほしい。
不具合報告や機能要望はX (@MahiroMemo)から気軽にどうぞ。