dimanche 5 avril 2020

Engrenage et développante du cercle



La développante du cercle


Aujourd'hui nous allons explorer le monde des engrenages.

Dans Wikipédia, nous apprenons que la développante du cercle est une courbe mathématique ayant des propriétés géométriques qui font qu'elle est utilisée pour dessiner les engrenages. https://fr.wikipedia.org/wiki/D%C3%A9veloppante_du_cercle

Commençons donc par construire un cercle en deux dimensions. Cependant pour vous rappeler la construction de fonction nous allons utiliser les courbes paramétriques du cercle :

  • x=R.cos(t)
  • y=R.sin(t)
pour t variant de 0° à 360°



Maintenant, utilisons la formule donnée par Wikipédia pour la développante :
  • x = R.(cos(t)+t.sin(t))
  • y = R.(sint(t)-t.cos(t))

Voilà ce que cela donne.



Pas terrible ! en regardant le dessin on voit quelque point qui partent vers la gauche mais cela ne ressemble pas au dessin de Wikipedia.

Je montre cela car il y un truc : la courbe donnée par Wikipédia et sur tous les sites est une courbe ou (t) est en radian. Par contre blockScad utilise les degrés pour ses fonctions trigonométriques (la famille à laquelle sin et cos appartiennent).

il faut donc changer (t) en radian pour l'exprimer en degré avec une simple règle de trois car PI radian = 180 degré.

et voici le résultat, beaucoup plus compatible la référence du savoir mondial. 


Attention aux unités, elle sont souvent implicites, donc restons vigilant.

Quelques modifications sur le bloc de la développante pour rajouter deux paramètres, outre le diamètre du cercle de référence déjà présent :
  1. "neg" pour faire partir la courbe dans l'autre sens, c'est à dire un "-1" pour la variable "y"
  2. "haut" pour facilement faire varier la longueur de cette courbe spirale





Une roue dentée


Maintenant, passons aux engrenages sur la base d'un tutoriel utilisant un logiciel de dessin.


De notre coté, nous allons suivre ce tutoriel mais en utilisant que des formules mathématiques, dans la mesure du possible.

L'image ci-dessous, issu du tutoriel précédent,  reprend les différentes paramètres et les définitions.

Nous allons construire un engrenage de 20 dents (Z=20) et de module 3 mm (M=3) :
  1. un premier cercle de diamètre primitif (Dp = M.Z)
  2. un deuxième cercle de diamètre extérieur (De = (Z+2).M
  3. le cercle de base (Db = Dp.cos(alpha)). alpha est l'angle de la ligne d'action.


Pour l'instant, pas de souci particulier grâce à notre petite fonction "cercle" dont nous avons changé la variable d'entrée pour passer en diamètre.

Par contre, nous allons gagner du temps dans les phases suivantes car  en lieu et place d'une construction géométrique par succession d'arc de cercle nous allons utiliser notre formule magique de Wikipédia.



il faut régler manuellement le paramètre "haut". C'est fait en deux ou trois essais.


Hélas, nous ne pouvons pas compter sur des essais. il faut donc trouver ce paramètre par calcul. Le point d'intersection entre la développante et le cercle extérieur répond à deux équations : celle de la développante et celle du cercle.

Dans le dessin suivant, le récapitulatif.



Donc nous cherchons la valeur de (t) qui crée le point (A,B) avec pour la développante :
A = (ZMcos(alpha)/2).(cos(t)+t.sin(t))
B = (ZMcos(alpha)/2).(sint(t)-t.cos(t))

d'autre part, on sait que (A,B ) est sur le cercle extérieur donc A^2 + B^2 = ((Z+2)M/2)^2 (théorème de Pythagore)

on simplifie par /2 et M et on obtient :
  1. Z^2[cos(t)+t.sin(t)]^2 + [sin(t)-t.cos(t)]^2 = (Z+2)^2/cos2(alpha)
  2. cos2(t)+2tcos(t)sin(t))+t^2sin2(t) + sin2(t) - 2tsin(t)cos(t)+t^2cos2(t) = (Z+2)^2/(Z^2.cos2(alpha)) en développant
  3. 1+0+t^2.(1) = (Z+2)^2/Z^2cos2(alpha) par regroupement et application de cos2+sin2 = 1
  4. t= racine carrée ((Z+2)^2/Z^2cos2(alpha) - 1)
et voilà le travail. Faut reconnaitre que cela plus chic, une bonne formule !





Maintenant, nous traçons le cercle de pied dont le diamètre est Di = Dp -2,5.M soit Z-2.5M comme nous le demande le tutoriel.





En suivant le tutoriel, il faut tracer un trait entre le cercle de pied et la développante.
Ceci se fait avec une boucle qui va entre le rayon du cercle de pied et le rayon du cercle de base.


Ensuite, le tutoriel demande de voir l'angle entre la droite initiale de départ de la développante (en orange sur le dessin du dessous) et la droite qui intersecte la développante au niveau du cercle primitif (le trait en pointillé sur le dessin). En effet, c'est à cet endroit précis que la dent touche la dent de l'autre pignon.



Comme nous n'avons pas de possibilité de voir sur le logiciel, il nous faut à nouveau faire un calcul.
Dans un premier temps, trouvons la variable (t). Même principe que précédemment mais ce n'est pas le même cercle.


Donc nous cherchons la valeur de (p) qui crée le point (C,D) avec pour la développante :
C = (ZMcos(alpha)/2).(cos(p)+p.sin(p))
D = (ZMcos(alpha)/2).(sint(p)-p.cos(p))

d'autre part, on sait que (C,D) est sur le cercle primitif donc C^2 + D^2 = (ZM/2)^2 (théorème de Pythagore)

on simplifie par /2, Z et M et on obtient :
  1. [cos(p)+t.sin(p)]^2 + [sin(t)-t.cos(p)]^2 = 1/cos2(alpha)
  2. cos2(p)+2p.cos(p)sin(p))+t^2sin2(p) + sin2(p) - 2p.sin(p)cos(p)+t^2cos2(p) = 1/(cos2(alpha) en développant
  3. 1+0+t^2.(1) = 1/cos2(alpha) par regroupement et application de cos2+sin2 = 1
  4. t= racine carrée (1/cos2(alpha) - 1) = tangente(alpha) après petits calculs pas bien compliqués (trop horrible, diraient mes filles !)
Ce serait trop simple si c'était fini. Il faut trouver l'angle de ces deux droites. Hors nous savons que la tangente de cet angle est D/C, et donc l'angle est ATAN (D/C), ATAN étant la fonction ArcTangente que Blockscad a la bonne idée de mettre à disposition.

En simplifiant D/C et en appliquant notre résultat pour (p), nous obtenons :




Ce qui est assez proche du 0.90° trouvé dans le tutoriel. Regardez le code, il ne faut pas oublier de rajouter notre conversion d'angle dans les fonctions SIN et COS.
Pour contrôler, nous avons utilisé la fonction text 2D pour afficher le résultat. 

Ce n'est pas fini ! Il faut tracer la droite qui représente l'axe de la dent (360/4Z)+notre précédent décalage.


Continuons en traçant la droite avec le décalage d'ans l'autre sens.


Avant d'aller plus loin, nous allons fabriquer une évolution de notre block "cercle" pour faire des arcs de cercle. J'ai le plaisir de vous présenter "cercle2" :


 Ce n'est pas non plus, l'invention du siècle, mais cela va être bien pratique.

Le tutoriel nous demande de supprimer le cercle de pied et de ne garder que la distance entre le bas de la dent et la droite à décalage négatif.

Nous allons utiliser simplement notre nouveau module de cercle, le démarrer à zéro et le terminer à l'angle de rotation de la droite.


et bien sûr, l'ancien module qui traçait le pied de cercle est désactivé. Continuons pour le cercle extérieur.

Le diamètre sera celui du cercle extérieur (nous l'avons déjà), l'angle de départ est l'angle de rotation que nous avons tracé (il faudra peut être voir  à changer le signe). Concentrons nous donc sur l'ange d'arrivé, qui correspond à l'intersection entre la développante et le cercle extérieur.

Nous avons déjà calculé ce point : (A,B). Donc l'angle se calcule par l'arcTangente avec des commentaires sous le dessin.


Le calcul avait déjà été fait et se matérialise par le paramètre "haut" de la développante. Se paramètre a été nommé variable "EE" pour plus de lisibilité.

Ensuite on retrouve se paramètre dans notre formule avec ATAN (sint(t)-tcos(t))/(cost(t)-tsin(t)).

A ce stade, le tutoriel n'utilise que les fonctions de miroir et de boucle pour réaliser les Z dents.

Ramenons la dent sur l'axe des X et supprimons les cercles initiaux. Il suffit d'utiliser la fonction rotation suivant Z de la droite tracée.


un petit coup de miroir et une boucle plus loin.





et nous avons notre engrenage pour Z=20.
et pour Z=11


Effectivement, cela vaut le coup de faire les calculs au moins une fois. ces blocs sont en partage libre de droit sur le site de Blockscad.

 
Je ne résiste pas au plaisir d'un dernier dessin avec une extrusion.


En conclusion, il faudrait une bonne âme pour vérifier les calculs ;-) 

Aucun commentaire: