\documentclass[10pt]{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage{pst-gears,pst-plot}
\usepackage[colorlinks=true]{hyperref}
\title{Engrenages (v.06)}
\author{manuel.luque27@gmail.com}
\date{03/06/2013 - 24/04/2020 }
\begin{document}
\maketitle
La macro \verb+\pstgears[options](x,y)+ permet de dessiner un engrenage constitué de deux roues à denture extérieure dont le profil est un arc de développante de cercle. Elle respecte les conventions normalisées de ce type de denture. Les paramètres optionnels, dont les valeurs par défaut sont indiquées, sont les suivants~:
\begin{enumerate}
  \item \texttt{[Z1=20]} : nombre de dents de la roue n°1 ;
  \item \texttt{[Z2=10]} : nombre de dents de la roue n°2 ;
  \item \texttt{[m=0.5]} : module de l'engrenage ;
  \item \texttt{[ap=20]} : angle de pression en degrés.
  \item \texttt{[Rarct=0.1]} : permet de régler le rayon de raccordement entre les dents et le cercle de pied, en fraction du rayon de cercle de pied.
  \item \texttt{[drawWheels=1 1]} : dessine les 2 roues si l'argument est \texttt{[1 1]} (par défaut), ne dessine que la roue (1= si \texttt{[drawWheels=1 0]} et ne dessine que la roue (2) si \texttt{[drawWheels=0 1]}. Ce paramètre remplace  le booléen \texttt{[notdrawWheel1} des précédentes versions, qui ne permettait que de dessiner la roue 1.
\end{enumerate}
La macro comporte 4 booléens :
\begin{enumerate}
  \item  \texttt{[int=false]} : choix du type d'engrenage, \textbf{extérieur}(choix par défaut) ou intérieur, dans ce dernier cas écrire simplement \texttt{[int]} dans les options.
  \item \texttt{[circles=false]} : pour tracer les cercles de base et primitif.
  \item \texttt{[key=true]} : pour dessiner ou pas la clavette de chaque roue.
  \item \texttt{[clockwork=false]} : pour dessiner les engrenages dans le style horlogerie.
\end{enumerate}
Pour la rotation de l'engrenage, utile pour une animation (voir les fichiers correspondants) :
\begin{itemize}
  \item \texttt{[wheelrotation=0]} : valeur en degrés(positive ou négative) de la roue 1, l'angle de rotation de la roue 2 est déduit par la macro.
\end{itemize}
Pour le dessin, le choix des couleurs des roues peut se faire avec les paramètres :
\begin{enumerate}
  \item \texttt{[color1=\{[rgb]\{0.625 0.75 1\}\}]} ;
  \item \texttt{[color2=\{[rgb]\{0.75 1 0.75\}\}]}.
\end{enumerate}
Par défaut les roues ne sont pas remplies, pour colorier l'intérieur des roues à denture extérieure ou la couronne pour la roue à denture intérieure il faut activer l'option de PSTricks : \texttt{[fillstyle=solid]}.

Le choix de la couleur et de l'épaisseur du trait de contour des roues se fait avec les options usuelles de PSTricks : \texttt{linecolor} et \texttt{linewidth}. L'option de PSTricks \texttt{[linestyle=none]} reste valable.

Le dessin, en pointillés, des cercles de base et primitif peut-être affiné à l'aide de deux options :
\begin{enumerate}
  \item Le paramètre \texttt{[dash=...]} de PSTricks ;
  \item la couleur avec le paramètre : \texttt{[colorcircles=red]}.
\end{enumerate}
Le dessin est centré au point \texttt{(x,y)} sur l'axe du pignon(la première roue). Si cette précision est omise, la roue est centrée à l'origine. Pour positionner la deuxième roue par un angle, il y a deux façons :
\begin{enumerate}
  \item utiliser la commande PSTricks \verb+\rput{angle}{\pstgears[otions]}+ ;
  \item ou bien le paramètre optionnel \verb+[polarangle=valeur]+, en y indiquant la valeur en degrés de l'angle choisi.
\end{enumerate}
Ce qui permet de dessiner très facilement un train d'engrenages à 3 roues, comme dans l'exemple ci-dessous, en y indiquant de ne pas re-dessiner la roue 1 avec l'option \texttt{[drawWheels=1 0]} :
\begin{center}
\begin{pspicture}[showgrid](-5,-4)(8,7)
\pstgears[Z1=30,Z2=15,m=0.25,linewidth=0.025,fillstyle=solid,polarangle=120]%
\pstgears[Z1=30,Z2=18,m=0.25,linewidth=0.025,fillstyle=solid,polarangle=0,color2=red!50,drawWheels=0 1]%
\end{pspicture}
\end{center}
\begin{verbatim}
\begin{pspicture}[showgrid](-5,-4)(8,7)
\pstgears[Z1=30,Z2=15,m=0.25,linewidth=0.025,fillstyle=solid,polarangle=120]%
\pstgears[Z1=30,Z2=18,m=0.25,linewidth=0.025,fillstyle=solid,polarangle=0,
          color2=red!50,notdrawWheel1]%
\end{pspicture}
\end{verbatim}

\begin{center}
\begin{pspicture}[showgrid](-4,-4)(6,6)
\rput{45}{\pstgears[Z1=24,Z2=12,m=0.25,linewidth=0.025,circles,dash=10pt 2pt 1pt 2pt]}%
\end{pspicture}
\end{center}
\begin{verbatim}
\begin{pspicture}[showgrid](-4,-4)(6,6)
\rput{45}{\pstgears[Z1=24,Z2=12,m=0.25,linewidth=0.025,circles,dash=10pt 2pt 1pt 2pt]}%
\end{pspicture}
\end{verbatim}

\begin{center}
\begin{pspicture}[showgrid](-5,-5)(5,5)
\rput{-45}{\pstgears[Z1=36,Z2=18,m=0.2,wheelrotation=25,linewidth=0.0001,int,fillstyle=solid,circles]}
\end{pspicture}
\end{center}
\begin{verbatim}
\begin{pspicture}[showgrid](-6,-6)(6,6)
\rput{-45}{\pstgears[Z1=36,Z2=18,m=0.25,wheelrotation=25,linewidth=0.025,int]}
\end{pspicture}
\end{verbatim}

\begin{center}
\begin{pspicture}[showgrid](-5,-5)(5,5)
\pstgears[Z1=36,Z2=18,m=0.2,wheelrotation=25,linewidth=0.025,int,fillstyle=solid,circles,polarangle=120]
\end{pspicture}
\end{center}
\begin{verbatim}
\begin{pspicture}[showgrid](-5,-5)(5,5)
\pstgears[Z1=36,Z2=18,m=0.2,wheelrotation=25,linewidth=0.025,int,fillstyle=solid,
          circles,polarangle=120]
\end{pspicture}
\end{verbatim}

\begin{center}
\begin{pspicture}(-13,-3)(4,3)
\psset{m=0.08,linewidth=0.025,fillstyle=solid,ap=15,clockwork}
\pstgears[Z1=60,Z2=8,wheelrotation=0,color2={[rgb]{0.625 0.75 1}}]
\rput{180}{\pstgears[Z1=8,Z2=64,wheelrotation=0,color1={[rgb]{0.75 1 0.75}}]}
% entraxe1 = (8+64)*0.08/2 = 2.88
\rput{180}{\pstgears[Z1=20,Z2=60,wheelrotation=0,color2=gray,color1=gray](2.88,0)}
% entraxe2 = (20+60)*0.08/2 = 3.2 + entraxe1
\rput{180}{\pstgears[Z1=16,Z2=64,wheelrotation=0,color1=blue!50,color2=blue!50](6.08,0)}
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt]%
\end{pspicture}
\vspace{0.1cm}\newline
Étude d'un train d'engrenage pour une horloge, inspirée de la remarquable réalisation de Tavmjong Bah sur le site :

\url{http://tavmjong.free.fr/INKSCAPE/DRAWINGS/clock.svg}.
\end{center}
\begin{verbatim}
\psset{m=0.08,linewidth=0.025,fillstyle=solid,ap=15,clockwork}
\pstgears[Z1=60,Z2=8,wheelrotation=0,color2={[rgb]{0.625 0.75 1}}]
\rput{180}{\pstgears[Z1=8,Z2=64,wheelrotation=0,color1={[rgb]{0.75 1 0.75}}]}
% entraxe1 = (8+64)*0.08/2 = 2.88
\rput{180}{\pstgears[Z1=20,Z2=60,wheelrotation=0,color2=gray,color1=gray](2.88,0)}
% entraxe2 = (20+60)*0.08/2 = 3.2 + entraxe1
\rput{180}{\pstgears[Z1=16,Z2=64,wheelrotation=0,color1=blue!50,color2=blue!50](6.08,0)}
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt]%
\end{verbatim}
Une réalisation avec des engrenages plus adaptés à l'horlogerie a été réalisée, voir la page :

\url{http://pstricks.blogspot.fr/2013/05/horloge-pstricks-une-animation-au.html}.
\newpage
\begin{center}
Principe du spirographe
\begin{pspicture}[showgrid](-7,-7)(7,7)
\pstgears[Z1=120,Z2=24,m=0.1,wheelrotation=0,ap=20,linewidth=0.025,int,fillstyle=solid,polarangle=0]
\parametricplot[plotpoints=360,algebraic,linestyle=dotted,linecolor=red,linewidth=0.1]{0}{6.28}{1.2*(4*cos(t)+cos(4*t))|1.2*(4*sin(t)-sin(4*t))}
\end{pspicture}
\end{center}
\end{document}
