物体を転倒させる力の計算ツール
この計算ツールは、剛体の長方形ブロックが転倒を始める限界の水平力を求めます。力としての重量、水平力を加える高さ、転倒方向に測った底面全体の幅を入力してください。結果は、支点となる底面の縁まわりの静的なモーメントの釣り合いに基づきます。工学上の概算、安定性の確認、力学の演習、初期設計案の比較に利用できます。滑り、衝撃、固定具、偏った質量分布は別途検討が必要です。
無料で実行
物体と転倒軸をモデル化します
物体を水平面上の剛体ブロックとみなし、重心が入力した底面幅の中央にあると仮定します。水平力が増えると、接触圧は転倒側の縁へ移動します。反対側が床から離れ、残った縁が支点になる瞬間が転倒開始です。このとき重量の水平腕長は底面幅の半分です。重量はキログラム単位の質量ではなく、newton単位の力で入力してください。質量しか分からない場合は、適切な重力加速度を掛けて重量に変換します。底面幅は実際に回転する方向に沿って測ります。質量が中央にある単純な形状を前提とするため、重心が偏る場合は、実際の重心位置を使った詳細なモーメント計算が必要です。
モーメントの釣り合いを確認します
転倒限界では、外力による転倒モーメントと重量による抵抗モーメントが等しくなります。水平力のモーメントは力と作用高さの積で、重量の抵抗モーメントは重量と底面幅の半分の積です。したがって水平力は、重量と底面幅の積を作用高さの2倍で割って求めます。途中の計算を確認できるよう、抵抗モーメントと重量の腕長も返します。単位は統一してください。重量をnewton、両方の長さをmeterにすると、力はnewton、モーメントはnewton-meterになります。高さが0では水平力に転倒用の腕長がなく、0除算になるため、誤解を招く値ではなく入力エラーを返します。
工学的な判断と併せて使用します
実際の挙動を判断する前に、この転倒限界をほかの限界と比較してください。摩擦が小さい場合は転倒より先に滑ることがあり、その判定には摩擦係数と垂直抗力が必要です。アンカー、キャスター、柔らかい脚、傾いた床、引き出し、液体、外部拘束は支点や重心を変える場合があります。動的な押力や衝撃では、加速度、変形、エネルギーも考慮します。設計では保守的な寸法、最も不利な作用高さ、対象に適した安全率と規格を使用してください。結果は配置案の比較、手計算の検算、理想化したモーメント釣り合いの記録に適しています。APIリクエストの料金は$0.002です。ブラウザー計算では素早く条件を比較できます。
活用例
家具の安定性を確認します
キャビネットや棚が理想的な転倒限界に達する静的な水平力を概算します。
機器配置を比較します
底面の拡大、重量の増加、作用点の低下が安定性へ与える影響を比較します。
力学問題を検算します
モーメントの釣り合いを確認し、抵抗モーメントと重心の腕長を調べます。
よくある質問
どの式を使用しますか?
水平力 = 重量 × 底面幅 ÷ (2 × 作用高さ) を使用し、転倒軸まわりのモーメントを釣り合わせます。
質量と重量のどちらを入力しますか?
newton単位の重量を入力してください。質量はキログラム値に適切な重力加速度を掛けて変換します。
作用高さが0だとエラーになるのはなぜですか?
支点と同じ高さの水平力には転倒用の腕長がなく、式が0除算になるためです。
先に滑るかどうかも分かりますか?
分かりません。滑りは摩擦と表面状態に依存するため、別の計算が必要です。
重心はどこにあると仮定しますか?
底面中央にあると仮定し、転倒する縁からの水平距離を底面幅の半分とします。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/mech/toppling-force \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":980,"height":1.2,"base_width":0.6}'const res = await fetch("https://api.kit.forhosting.com/mech/toppling-force", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 980,
"height": 1.2,
"base_width": 0.6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/toppling-force",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 980,
"height": 1.2,
"base_width": 0.6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/toppling-force", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":980,"height":1.2,"base_width":0.6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":980,"height":1.2,"base_width":0.6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/toppling-force", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"weight": 980,
"height": 1.2,
"base_width": 0.6
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.toppling_force",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |