チェーン長さと弛み量を即座にシミュレーション
回転する部品にチェーンやワイヤーをつないで、「ここで止めたい」と思ったことはないだろうか。たとえば、回転式のフラップ、クレーンのブーム、展示台のストッパー。チェーンの長さが足りなければ止まらないし、長すぎれば意味がない。
チェーンチェッカーは、固定点A・回転点B・回転中心Cの3D座標を入力するだけで、チェーン長さから停止角度を自動計算する。逆に、「この角度で止めたい」と指定すれば必要なチェーン長さを逆算してくれる。SVGの2D投影図でポイントの位置関係を視覚的に確認できるのも特徴だ。
なぜチェーンチェッカーを作ったのか
開発のきっかけ
回転機構にチェーンストッパーを設計する場面があった。回転軸と固定点の位置から「チェーンが何ミリあれば何度で止まるか」を手計算していたのだが、これが地味に面倒だった。回転後の座標を三角関数で求めて、ユークリッド距離を計算して、逆にチェーン長さから角度を求めるには逆問題を解く必要がある。
スプレッドシートで組んでみたが、3D座標を扱うと式が複雑になり、回転軸を変えるたびに数式を書き直す羽目になった。既存のオンラインツールも探したが、「回転+チェーン長さ→停止角度」をピンポイントで解いてくれるものは見つからなかった。
こだわった設計判断
- スキャン+二分法: 距離関数は回転角に対して周期的で単調ではないため、単純な二分法では解が見つからない。0.5度刻みでスキャンして符号変化を検出し、各区間で二分法を適用する方式にした
- 3軸対応: X/Y/Z軸どれでも回転できるようにした。軸を切り替えるだけで異なる回転面での計算ができる
- SVG投影図: 回転軸に垂直な平面に自動投影するので、回転の様子が直感的にわかる
こんな設計・メンテナンスで活躍
フラップやゲートの開閉制限
回転式のフラップやゲートにチェーンを取り付けて、開く角度を制限したい場面。固定点(壁など)と回転点(フラップ端)の座標を入力すれば、必要なチェーン長さや停止角度がすぐにわかる。
クレーンブームの可動域確認
クレーンのブームがどの角度まで起きるか、ワイヤーの長さから確認したい場面。回転中心(ピン位置)と固定点の座標を入れるだけで、ワイヤー長さに対する停止角度を算出できる。
展示台や回転ディスプレイの設計
DIYで回転式の展示台を作るとき、チェーンで回転範囲を制限したい場合。3D座標の入力に対応しているので、上下にオフセットがある取り付け位置でも正確に計算できる。
教育・学習目的
大学や専門学校で回転運動と拘束条件を学ぶ際の教材として。座標を変えながらリアルタイムに結果が変わるので、パラメータの影響を直感的に理解できる。
基本の使い方
たった3ステップで計算が完了する。
Step 1: 座標を入力する
固定点A、回転点B、回転中心Cの座標をmm単位で入力する。回転軸(X/Y/Z)を選択する。
Step 2: モードを選ぶ
「角度を求める」モードではチェーン長さを入力する。「長さを求める」モードでは停止角度を入力する。
Step 3: 結果を確認する
計算結果がリアルタイムで表示される。SVG投影図でA, B, B'(回転後), Cの位置関係を視覚的に確認してみて。
具体的な使用例(検証データ)
ケース1: 基本的なZ軸回転
水平面上でフラップの停止角度を求める基本的なケース。
入力値:
- 固定点A: (0, 0, 0)
- 回転点B: (100, 0, 0)
- 回転中心C: (50, 0, 0)
- 回転軸: Z
- チェーン長さ: 120 mm
計算結果:
- 最小停止角度: 約73.74°
- 解の数: 2(対称解あり)
→ 解釈: B点はCを中心に半径50mmの円上を回転する。チェーン長さ120mmが張り切る角度が約73.74°。A-B間の初期距離は100mmなので、チェーンに20mmの余裕がある状態から回転を始め、約74度でピンと張る。
ケース2: 長さを求めるモード
指定した角度でフラップを停止させるために必要なチェーン長さを逆算する。
入力値:
- 固定点A: (0, 0, 0)
- 回転点B: (100, 0, 0)
- 回転中心C: (50, 0, 0)
- 回転軸: Z
- 停止角度: 90°
計算結果:
- 必要チェーン長さ: 約111.80 mm
→ 解釈: 90度で止めるには、チェーン長さを約112mmに設定すればよい。初期距離100mmより約12mm長いチェーンが必要。
ケース3: 3Dオフセットがある場合
固定点が回転面から外れている(Z座標が異なる)ケース。
入力値:
- 固定点A: (0, 0, 50)
- 回転点B: (100, 0, 0)
- 回転中心C: (50, 0, 0)
- 回転軸: Z
- チェーン長さ: 150 mm
計算結果:
- 初期距離 A-B: 約111.80 mm(3D距離)
- 最小停止角度: 結果はZ軸周りの回転で3D距離がチェーン長さに一致する角度
→ 解釈: Aが50mm上方にオフセットしている分、初期距離が2D計算より長くなる。3D座標を考慮した正確な計算ができるのがこのツールの強み。
ケース4: Y軸回転(縦方向の回転)
ブームの起伏運動のように、Y軸周りの回転を計算するケース。
入力値:
- 固定点A: (0, 0, 0)
- 回転点B: (200, 0, 0)
- 回転中心C: (0, 0, 0)(原点に回転中心)
- 回転軸: Y
- チェーン長さ: 250 mm
計算結果:
- 最小停止角度: 回転半径200mm、チェーン250mmの条件でXZ平面内の停止角度
→ 解釈: Y軸回転ではXZ平面内でBが回転する。SVG投影図はX-Z平面を表示するので、ブームの起伏運動を確認できる。
仕組み・アルゴリズム
採用しているアルゴリズム
チェーンチェッカーは、2D回転行列と二分法を組み合わせた数値解法を使っている。
回転は選択した座標軸に対する2D回転として処理する。たとえばZ軸回転の場合、XY平面内で回転中心Cを基準にB点を回す。回転行列は標準的な反時計回り正の定義を採用している。
具体的な計算の流れ
1. f(θ) = distance(A, rotate(B, C, axis, θ)) − chainLength を定義
2. θ = 0° ~ 360° を 0.5° 刻みでスキャンし、f(θ)の符号が変化する区間を検出
3. 各区間で二分法を適用し、f(θ) ≈ 0 となる角度を求める
4. 全解のうち最小の正角度を返す
なぜスキャン+二分法なのか
距離関数 d(θ) = |A − B'(θ)| は回転角に対して周期的で、一般には単調ではない。1周期内に0個、1個、または2個の解が存在しうる。単純な二分法は単調区間でしか使えないため、まずスキャンで符号変化を検出し、各単調区間で二分法を適用する方式を採用した。スキャン(720回の距離計算)+二分法(各区間で最大100回)で、合計1000回未満の浮動小数点演算で済むため、Web Workerを使わずとも十分高速だ。
手計算やCADとの違い
データを外部に送信しない
すべての計算はブラウザ内で完結する。座標データや計算結果はサーバーに送信されない。設計中の機密情報を扱う場面でも安心して使える。
3軸の回転に対応
X軸・Y軸・Z軸のどれでも回転軸として選択できる。回転軸を切り替えるだけで、水平回転(Z軸)、縦方向の起伏(Y軸)、横方向の傾斜(X軸)と異なる回転面での計算ができる。
複数解の検出
チェーン長さに対して複数の停止角度が存在する場合(たとえば往路と復路で2つの解がある場合)、すべての解を検出して表示する。
知っておくと便利なチェーン機構の豆知識
チェーンとワイヤーの使い分け
チェーンは引張にしか耐えられない「片方向拘束」要素だ。ワイヤーも同様だが、チェーンはリンク構造のため曲げに追従しやすく、ワイヤーは連続体なので滑車との相性が良い。回転ストッパーにはチェーンが使われることが多い。
安全チェーンの規格
産業用の安全チェーンにはJIS B 2801などの規格がある。使用荷重(SWL)は破断荷重の1/4〜1/5に設定されるのが一般的で、設計時にはチェーンの長さだけでなく強度も考慮する必要がある。
回転角度と弧長の関係
回転半径 r で角度 θ(ラジアン)だけ回転すると、弧の長さは s = rθ になる。チェーンの長さと弧長は異なる概念で、チェーンは直線距離(弦の長さ)で拘束するのに対し、弧長は実際の回転経路の長さだ。この違いを混同すると設計ミスにつながる。
使い方のコツ・Tips
座標系の選び方
回転軸と平行な方向の座標は回転に影響しない。たとえばZ軸回転なら、Z座標は距離計算にのみ関与する。まず回転面(2D)で考えて、オフセットを3番目の座標で追加するのがわかりやすい。
複数解がある場合の読み方
「角度を求める」モードで2つの解が表示された場合、小さい方が「チェーンが初めてピンと張る角度」、大きい方が「チェーンが再びピンと張る角度(戻り側)」に対応することが多い。SVG図で確認してみて。
回転中心と回転点が近い場合
回転半径(CからBまでの回転面内の距離)が小さいと、チェーンの長さの変化が小さくなり、解の精度が下がる場合がある。詳細設定で角度許容誤差を小さくすると改善できる。
疑問点まとめ
Q: データはどこに保存される?
すべてブラウザ内で処理される。サーバーにデータは送信されないし、ブラウザを閉じれば入力内容は残らない(「設定を保存」ボタンでlocalStorageに保存した場合を除く)。
Q: 解が見つからない場合は?
チェーン長さが短すぎて、回転しても到達できない場合は「解なし」と表示される。チェーン長さを長くするか、座標を見直してみて。
Q: 負の角度を入力できる?
「長さを求める」モードでは負の角度も入力可能だ。負の角度は反時計回り方向の回転を意味する(正の角度と逆方向)。
Q: 精度はどのくらい?
デフォルトの角度許容誤差は0.01度。実用的には十分な精度だが、詳細設定から調整もできる。
まとめ
チェーンチェッカーは、回転機構のチェーン長さと停止角度を相互に計算できる設計支援ツールだ。
3D座標を入力するだけで、スキャン+二分法による確実な数値解法が自動で走り、SVG投影図で結果を視覚的に確認できる。設計図面を引く前のサッとした検算に使ってみて。
構造系の計算が必要なら、梁の安全審判員で曲げ応力やたわみの計算もできる。ボルト接合の強度が気になる場合はボルト強度・破断モード診断も試してみて。
0.5°スキャン+二分法を採用した設計判断の全貌は開発秘話に詳しく書いた。数値例と二分法の収束証明は技術深掘り記事で確認できる。
不具合や要望があれば、お問い合わせページから気軽に教えて。