M42/docs: view doc:110/v2

두 타이밍 풀리를 잇는 타이밍 벨트의 길이의 계산법

v1Ossia
v2Ossia
요약

두 풀리의 반지름이 각각 RRrr이고 두 풀리의 중심 간 거리가 dd일 때 이들을 잇는 타이밍 벨트의 길이는

2(RarccosrRd+d2(Rr)2+rarccosRrd)2\left(R\arccos\frac{r-R}d + \sqrt{d^2 - (R-r)^2} + r\arccos\frac{R-r}d\right)

이다.

두 풀리의 반지름이 각각 RRrr (R>rR > r)이라 하고 두 풀리의 중심 C1C_1C2C_2 간 거리가 dd라 하자. 단 d>R+rd > R + r이다. 타이밍 벨트의 두께를 무시하고, C1C_1C2C_2를 이은 직선을 α\alpha라 하고, 두 풀리에 모두 접하는 직선 중 C1C2\overline{C_1C_2}를 지나지 않는 것 하나를 β\beta라 하자. 또 α\alphaβ\beta가 만나는 점을 AA라 하고, C1C_1 또는 C2C_2를 지나며 β\beta와 수직인 직선 γ1\gamma_1γ2\gamma_2β\beta와 만나는 점을 각각 B1B_1B2B_2라 하자. 이때 α\alphaγ1\gamma_1이 이루는 각 중 작은 것을 θ\theta라 하면 0<θ<π/20<\theta<\pi/2이며

cosθ=(Rr)/d,B1B2=d2(Rr)2\begin{aligned} \cos\theta &= (R-r)/d, \\ \overline{B_1B_2} &= \sqrt{d^2 - (R-r)^2} \end{aligned}

이다. 그러므로 타이밍 벨트의 길이 \ell에 대해

/2=R(πθ)+B1B2+rθ=R(πarccosRrd)+d2(Rr)2+rarccosRrd=RarccosrRd+d2(Rr)2+rarccosRrd\begin{aligned} \ell/2 &= R(\pi-\theta) + \overline{B_1B_2} + r\theta \\ &= R\left(\pi-\arccos\frac{R-r}d\right) + \sqrt{d^2 - (R-r)^2} + r\arccos\frac{R-r}d \\ &= R\arccos\frac{r-R}d + \sqrt{d^2 - (R-r)^2} + r\arccos\frac{R-r}d \\ \end{aligned}

이며, 이는 R=rR=r이거나 R<rR<r일 때도 성립함을 알 수 있다. R,r,dR, r, d로부터 \ell을 구하는 JavaScript 함수는 다음과 같다.

f = (R, r, d) => {
	return 2 * (
		R * Math.acos((r - R) / d)
		+ Math.sqrt(d ** 2 - (R - r) ** 2)
		+ r * Math.acos((R - r) / d)
	);
};