# A Unified Theory for 3D Gear and Thread Metrology
## 3 3D Model of Helical Machine Elements  
The basic idea in developing a common 3D model for a general class of helical machine elements is to describe the geometry in a transverse section (\(=xy\)-plane) and then helically wind this geometry upwards about the \(z\)-axis. Each point of the transverse profile generates a helix and the complete profile curve gives a generalized helicoid. Actually, both the gears and the thread flanks are _ruled_ generalized helicoids, i.e., surfaces that are generated by the screw motion of a straight line [11; 34]. Additionally, some kinds of worm gear drives can be described in this way [35]. In the following, we briefly show the construction of the gear or thread flanks by this method. Consider the line \(L\) in the \(yz\)-plane given by  
\[L(t)= \begin{pmatrix}r_{b}\\ 0\\ 0\end{pmatrix} +t \begin{pmatrix}0\\ 1\\ m\end{pmatrix} \quad\text{with }t\in\mathbb{R}. \tag{1}\]  
This line is tangent to a cylinder around the \(z\)-axis with radius \(r_{b}\geq 0\). By screw motion of \(L\) along the \(z\)-axis the surface  
\[\overline{S}(t,\psi)= \begin{pmatrix}r_{b}\cos\psi-t\sin\psi\\ r_{b}\sin\psi+t\cos\psi\\ tm+\texttt{hand}.\frac{1}{c}\psi\end{pmatrix} \quad\text{with }t,\psi\in\mathbb{R} \tag{2}\]  
Figure 2: Two of the most established strategies in screw thread metrology. The conventional line- and point-based measurements are divided into the categories of profile and combined pitch and diameter. is generated (Figure 3). The parameter \(c>0\) is called the helix coefficient. The direction of the rotation is given by the sign factor  
\[\texttt{hand}= \begin{cases}-1&:\text{left}\\ +1&:\text{right}.\end{cases} \]  
Additionally, we introduce the starting polar angle \(\varphi_{b}\) of the generating line \(L\) at \(z=0\) to allow a rotation around \(z\) of the complete surface. The parameters defining the surface are combined in the variable \(\mathcal{P}^{*}=(\texttt{hand},r_{b},m,c,\varphi_{b})\) and Equation (2) reads as  
\[\overline{S}_{\mathcal{P}^{*}}(t,\psi)= \begin{pmatrix}r_{b}\cos(\varphi_{b}+ \psi)-t\sin(\varphi_{b}+\psi)\\ r_{b}\sin(\varphi_{b}+\psi)+t\cos(\varphi_{b}+\psi)\\ tm+\texttt{hand}\cdot\frac{1}{c}\psi\end{pmatrix} . \tag{3}\]  
The coordinates \(t\) and \(\psi\) can mathematically take any value in \(\mathbb{R}\). For technically feasible surfaces, however, restrictions on the coordinates will be necessary. For practical applications in gear and thread metrology, it is more convenient to use the radius \(r\) instead of \(t\) as a coordinate. Since \(r^{2}=r_{b}^{2}+t^{2}\), this splits the surface into two flanks, depending on the sign of \(t\). More precisely, let  
\[t=-\texttt{flank}\cdot\sqrt{r^{2}-r_{b}^{2}}\quad\text{for }r\geq r_{b} \tag{4}\]  
with \(\texttt{flank}\in\{-1,1\}\), where the additional minus sign is necessary to meet the conventions in gear metrology [20], as will become clear later. This complements the set of geometry parameters uniquely defining the surface to  
\[\mathcal{P}=(\texttt{hand},\texttt{flank},r_{b},m,c,\varphi_{b}). \tag{5}\]  
Figure 3: The surface \(\overline{5}\) is generated by helically wrapping the line \(L\) around the base cylinder with the lead \(\texttt{hand}\cdot\frac{1}{c}\). A single flank \(S_{\mathcal{P}}\subset\overline{S}_{P^{*}}\) is hence given by  
\[S_{\mathcal{P}}(r,\psi)= \begin{pmatrix}r_{b}\cos(\varphi_{b}+\psi)+\mathtt{ flank}\cdot\sqrt{r^{2}-r_{b}^{2}}\cdot\sin(\varphi_{b}+\psi)\\ r_{b}\sin(\varphi_{b}+\psi)-\mathtt{flank}\cdot\sqrt{r^{2}-r_{b}^{2}}\cdot\cos (\varphi_{b}+\psi)\\ -\mathtt{flank}\cdot m\sqrt{r^{2}-r_{b}^{2}}+\mathtt{hand}\cdot\frac{1}{c}\psi \end{pmatrix}  \tag{6}\]  
or  
\[S_{\mathcal{P}}(r,\psi)= \begin{pmatrix}r\cos(\varphi_{b}+\psi-\mathtt{flank} \cdot\arccos(\frac{r_{b}}{r}))\\ r\sin(\varphi_{b}+\psi-\mathtt{flank}\cdot\arccos(\frac{r_{b}}{r}))\\ -\mathtt{flank}\cdot m\sqrt{r^{2}-r_{b}^{2}}+\mathtt{hand}\cdot\frac{1}{c}\psi \end{pmatrix} . \tag{7}\]  
with \(r\geq r_{b}\). (For \(r_{b}=0\), \(\frac{r_{b}}{r}\) is considered to be zero also for \(r=0\).)