Calcul de congés de raccordement en 2D

Le recours aux congés de raccordement est courant en mécanique, afin d’éviter les singularités et par là les concentrations de contraintes.

 

L’objectif est ici de « coucher par écrit » les méthodes que j’ai utilisées pour calculer analytiquement des congés de raccordement ; ces sont des solutions parmi d’autres (pas nécessairement les meilleures ou les plus simples), mais qui me conviennent et qui répondent à mes besoins (si d’aventure certains veulent en partager d’autres, je me ferai un plaisir d’y consacrer un chapitre en citant leur(s) auteur(s)).

 

Il existe plusieurs types de congés de raccordement ; le plus simple d’entre eux étant l’arc de cercle et qui répond à un besoin  pratique à savoir l’utilisation d’une fraise boule. Entre temps j’ai découvert d’autres méthodes de raccordement de courbes, utilisés notamment par les topographes dans le développement des réseaux routiers ou des chemin de fer par exemple (et faisant appel aux clothoïdes ou spirales de Cornu par exemple – les anglo-saxons parlent de spirales d’Euler).

 

1- Congé de raccordement en arc de cercle

1-1 La base

La figure ci-après présente un congé de raccordement en arc de cercle.

fillet

 

Il se caractérise ici par 2 demi-droites \left[ BA \right] et \left[ BC \right], par son rayon R et par son centre O et les points de tangences D et F qu’il nous faut calculer.

 

1-2 Le principe

Première propriété :

Le centre de l’arc de cercle O est nécessairement équidistant aux 2 demi-droites \left[ BA \right] et \left[ BC \right] : il se situe obligatoirement sur la bissectrice intérieure à  \widehat{ABC}

 

Deuxième propriété :

Dès lors que l’arc de cercle est tangent aux droites en D et F, alors les angles \widehat{ODA} et \widehat{OFC} sont droits ; sachant que B est le point d’intersection des 2 demi-droites, alors ODB et OFB forment un triangle rectangle dont hypoténuse n’est autre que \left[ OB \right] : les points B, O, D et F sont inscrits dans un cercle de diamètre \left[ OB \right] et de centre O' milieu de \left[ OB \right] (voir figure ci-dessous).

fillet_principle 

 

1-3 Vérification préalable

Nous aurons pris soin au préalable de vérifier que les 3 points A, B, et C ne sont ni confondus, ni alignés, et qu’ils appartiennent bien au même plan (2D) :

  • points confondus : \overrightarrow{BA} \ne \overrightarrow{0} et \overrightarrow{BC} \ne \overrightarrow{0} (en supposant que B est ici le point d’intersection des 2 demi-droites),
  • points alignés : le produit vectoriel  donne \overrightarrow{BA}  \wedge  \overrightarrow{BC}  = \overrightarrow{0}

 

 

1-3 Développement analytique (cas général)

Nous traiterons en premier lieu du cas général, pour lequel B n’est pas le point d’intersection des 2 demi-droites (il suffira par la suite de simplifier) :

fillet_principle2

(attention : pour le cas général, les notations des points ont été légèrement modifiées par rapport aux schémas précédents)

 

Nous avons besoin de calculer:

  • les équations des droites D_1 =\left( AB \right), D_2 =\left( DC \right) et et D_3 = \left( AC \right),
  • les coordonnées du point d’intersection E,
  • l’équation de la bissectrice à \widehat{AEC}  / \widehat{BED},
  • les coordonnées du point O, le centre de l’arc de cercle/congé de raccordement,
  • les coordonnées de O' milieu de \left[ E O \right],
  • l’équation du cercle \mathcal{C}, de centre O' et de rayon\left[ O' O \right],
  • les points d’intersection T_i de D_i avec \mathcal{C}T_i sont les extrémités de l’arc de cercle (i=1,2).

 

 

Posons A \left(x_A , y_A \right), B \left(x_B , y_B \right), C \left(x_C , y_C \right) et D \left(x_D , y_D \right).

 

Détermination de l’équation de \left( D_1 \right) :

(1)   \begin{equation*}\fbox{$- \left( y_B - y_A \right) x + \left( x_B - x_A \right) y + \left[ x_A \left( y_B - y_A \right) - y_A \left( x_B - x_A \right) \right] = 0$}\end{equation*}

 

Faisons de même pour l’équation de \left( D_2 \right) :

(2)   \begin{equation*}\fbox{$- \left( y_D - y_C \right) x + \left( x_D - x_C \right) y + \left[ x_C \left( y_D - y_C \right) - y_C \left( x_D - x_C \right) \right] = 0$}\end{equation*}

 

D_1 \cap D_2 :

Soit E(x_E,y_E) le point tel que D_1 \cap D_2  ; en posant m_1 = \left( \frac{y_B - y_A}{x_B - x_A} \right) et m_2 = \left( \frac{y_D - y_C}{x_D - x_C} \right), alors :

(3)   \begin{equation*}\fbox{$E = \left[\begin{array}{l}\left( \frac{m_1 \cdot x_A + y_C - m_2 \cdot x_C - y_A}{m_1 - m_2} \right) \\y_A + m_1 \left( x_E - x_A \right)\end{array}\right]$}\end{equation*}

 

 Calcul de la droite (AC) :

Nous avons besoin de \left( D_3 \right) (droite \left[ AC \right]) pour calculer la bissectrice :

(4)   \begin{equation*}- \left( y_C - y_A \right) x + \left( x_C - x_A \right) y + \left[ x_A \left( y_C - y_A \right) - y_A \left( x_C - x_A \right) \right] = 0\end{equation*}

 

 Détermination de la bissectrice intérieure :

Le système d’équations décrivant le triangle (ABC) est donc :
\\\left\lbrace\begin{array}{rl}D_1(x,y) : & - \left( y_B - y_A \right) x + \left( x_B - x_A \right) y + \left[ x_A \left( y_B - y_A \right) - y_A \left( x_B - x_A \right) \right] = 0 \\D_2(x,y) : & - \left( y_D - y_C \right) x + \left( x_D - x_C \right) y + \left[ x_C \left( y_D - y_C \right) - y_C \left( x_D - x_C \right) \right] = 0 \\D_3(x,y) : & - \left( y_C - y_A \right) x + \left( x_C - x_A \right) y + \left[ x_A \left( y_C - y_A \right) - y_A \left( x_C - x_A \right) \right] = 0\end{array}\right.

 

Posons :

\left\lbrace\begin{array}{l}a_1 = - \left( y_B - y_A \right) \\b_1 = \left( x_B - x_A \right) \\c_1 = x_A \left( y_B - y_A \right) - y_A \left( x_B - x_A \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_2 = - \left( y_D - y_C \right) \\b_2 = \left( x_D - x_C \right) \\c_2 = x_C \left( y_D - y_C \right) - y_C \left( x_D - x_C \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_3 = - \left( y_C - y_A \right) \\b_3 = \left( x_C - x_A \right) \\c_3 = x_A \left( y_C - y_A \right) - y_A \left( x_C - x_A \right)\end{array}\right.

 

Le système se réécrit :
\\\left\lbrace\begin{array}{rl}D_1(x,y) : & a_1 x + b_1 y + c_1 = 0 \\D_2(x,y) : & a_2 x + b_2 y + c_2 = 0 \\D_3(x,y) : & a_3 x + b_3 y + c_3 = 0\end{array}\right.

 

L’équation générale de la bissectrice intérieure en E à D_1(x,y) et D_2(x,y) se calcule avec:

(5)   \begin{equation*}sgn \left|\begin{array}{cc}a_1 & b_1 \\a_3 & b_3\end{array}\right|\frac{D_1(x,y)}{\sqrt{a_1^2 + b_1^2}}+sgn \left|\begin{array}{cc}a_2 & b_2 \\a_3 & b_3\end{array}\right|\frac{D_2(x,y)}{\sqrt{a_2^2 + b_2^2}}=0\end{equation*}

 

sgn fait référence au signe tel que  sgn \left|\begin{array}{cc}a_1 & b_1 \\a_3 & b_3\end{array}\right|= sgn \left( det\left[\begin{array}{cc}a_1 & b_1 \\a_3 & b_3\end{array}\right] \right)= sgn \left( a_1 a_3 - a_3 b_3 \right)

 

En posant k_1 = sgn \left( a_1 a_3 - a_3 b_3 \right), alors si \left\lbrace\begin{array}{c}\left( a_1 a_3 - a_3 b_3 \right) > 0 \rightarrow k_1 = +1 \\\left( a_1 a_3 - a_3 b_3 \right) < 0 \rightarrow k_1 = -1\end{array}\right.

 

Idem pour k_2 tel que k_2 = sgn \left( a_2 b_3 - a_3 b_2 \right)

 

L’équation (5) se réécrit :
\frac{k_1}{\sqrt{a_1^2 + b_1^2}} \left( a_1 x + b_1 y + c_1 \right) + \frac{k_2}{\sqrt{a_2^2 + b_2^2}} \left( a_2 x + b_2 y + c_2 \right)

 

Pour des facilités de lecture, posons \alpha = \frac{k_1}{\sqrt{a_1^2 + b_1^2}} et \beta = \frac{k_2}{\sqrt{a_2^2 + b_2^2}}, développons et  alors

\left( \alpha a_1 + \beta a_2 \right) x + \left( \alpha b_1 + \beta b_2 \right) y + \left[ \alpha c_1 + \beta c_2 \right] = 0

 

L’équation précédente se réécrit :

(6)   \begin{equation*}x = \frac{- \left( \alpha b_1 + \beta b_2 \right) y - \left( \alpha c_1 + \beta c_2 \right)}{\left( \alpha a_1 + \beta a_2 \right)}\end{equation*}

 

Calcul de l’origine de l’arc de cercle :

Sachant que l’origine de l’arc de cercle O(x_O,y_O) est sur la bissectrice, c’est-à-dire à une distance \pm R de D_1 (ou D_2), alors :

\pm R = \frac{a_1 x_O + b_1 y_O + c_1}{\sqrt{a_1^2 + b_1^2}}   ou encore

 

k_r R = \frac{a_1 x_O + b_1 y_O + c_1}{\sqrt{a_1^2 + b_1^2}}   en posant k_r = \pm 1.

 

Le système devient alors
\left\lbrace\begin{array}{c}k_r R = \frac{a_1 x_O + b_1 y_O + c_1}{\sqrt{a_1^2 + b_1^2}} \\x_O = \frac{- \left( \alpha b_1 + \beta b_2 \right) y_O - \left( \alpha c_1 + \beta c_2 \right)}{\left( \alpha a_1 + \beta a_2 \right)}\end{array}\right.

 

Après résolution, nous trouvons

(7)   \begin{equation*}\fbox{$\left\lbrace\begin{array}{l}y_O = \frac{ \left(\frac{\alpha c_1 + \beta c_2}{\alpha a_1 + \beta a_2} \right)a_1 - c_1 + R \frac{k_r k_1}{\alpha}}{ b_1 - \left( \frac{\alpha b_1 + \beta b_2}{\alpha a_1 + \beta a_2} \right) a_1} \\ \\x_O = \frac{- \left( \alpha b_1 + \beta b_2 \right) y_O - \left( \alpha c_1 + \beta c_2 \right)}{\left( \alpha a_1 + \beta a_2 \right)} \\ \\avec \quad \alpha = \frac{k_1}{\sqrt{a_1^2 + b_1^2}} \quad et \quad \beta = \frac{k_2}{\sqrt{a_2^2 + b_2^2}}\end{array}\right.$}\end{equation*}

 

NB1: le signe de k_r dépend du signe de \sin\left( \widehat{AEC} \right) :

  • k_r = 1 si \sin\left( \widehat{AEC} \right) > 0
  • k_r = -1 si \sin\left( \widehat{AEC} \right) < 0
  • rappelons que k_r = 0 si \sin\left( \widehat{AEC} \right) = 0, c’est-à-dire si les points sont alignés.

 

NB2: calcul de \sin\left( \widehat{AEC} \right)

  • \left( \overrightarrow{EA}  \wedge \overrightarrow{EC} \right) = \left\| \overrightarrow{EA} \right\| \cdot \left\| \overrightarrow{EC} \right\| \cdot \sin \left( \overrightarrow{EA} , \overrightarrow{EC}\right) \cdot \overrightarrow{k},
  • en multipliant par \overrightarrow{k}, elle est réécrite \left( \overrightarrow{EA}  \wedge \overrightarrow{EC} \right) \cdot \overrightarrow{k} = \left\| \overrightarrow{EA} \right\| \cdot \left\| \overrightarrow{EC} \right\| \cdot \sin \left( \overrightarrow{EA} , \overrightarrow{EC}\right) \cdot \overrightarrow{k} \cdot \overrightarrow{k}
  • sachant que \overrightarrow{k} \cdot \overrightarrow{k} = 1, l’égalité devient \frac{\left( \overrightarrow{EA}  \wedge \overrightarrow{EC} \right) \cdot \overrightarrow{k} }{\left\| \overrightarrow{EA} \right\| \cdot \left\| \overrightarrow{EC} \right\|} = \sin \left( \overrightarrow{EA} , \overrightarrow{EC}\right)

 

 

Calcul des coordonnées des extrémités de l’arc de cercle – points de raccord aux courbes D_1 et D_2 :

Calculons enfin les coordonnées des points de tangence entre l’arc de cercle et les 2 droites : \mathcal{C} \cap D_1 et \mathcal{C} \cap D_2.

 

Premier point T_1 :
\left\lbrace\begin{array}{ll}D_1 : & a_1 x + b_1 y + c_1 = 0 \\\mathcal{C} : & \left( x - x_O \right)^2 + \left( y - y_O \right)^2 = R^2\end{array}\right.

 

En injectant y = - \left[ \frac{a_1}{b_1}x + \frac{c_1}{b_1} \right] dans l’équation du cercle et en développant, on aboutit à :

 

\left[ 1 + \left( \frac{a_1}{b_1} \right)^2 \right] x^2 + 2 \left[ \left( \frac{a_1 c_1}{b_1^2}  \right)+ y_O \left( \frac{a_1}{b_1} \right) -y_O \right] x + \left[ x_O^2 + \left( \frac{c_1}{b_1} \right)^2 + 2y_O \left( \frac{c_1}{b_1}  \right) + y_O^2 - R^2 \right]=0

 

Équivalente à A x^2 + B x + C = 0 en posant
\left\lbrace\begin{array}{l}A = \left[ 1 + \left( \frac{a_1}{b_1} \right)^2 \right] \\B =2 \left[ \left( \frac{a_1 c_1}{b_1^2} \right)+ y_O \left( \frac{a_1}{b_1} \right) -y_O \right] \\C =\left[ x_O^2 + \left( \frac{c_1}{b_1} \right)^2 + 2y_O \left( \frac{c_1}{b_1} \right) + y_O^2 - R^2 \right]\end{array}\right.

 

Avec la condition de tangence, un seul point existe et donc l’équation n’admet qu’une seule racine (\Delta = 0) ; la solution est donc x_{T_1} = - \frac{B}{2A}.

 

Alors

(8)   \begin{equation*}\fbox{$T_1 = \left\lbrace\begin{array}{l}\left( \frac{y_O - \left(\frac{a_1}{b_1}\right)y_O - \left(\frac{a_1 c_1}{b_1^2}\right) }{1 + \left(\frac{a_1}{b_1}\right)^2} \right) \\- \left[ \left(\frac{a_1}{b_1}\right) x_{T_1} + \left(\frac{c_1}{b_1} \right)\right]\end{array}\right\rbrace$}\end{equation*}

 

Second point T_2 :

On procède de même pour T_2 :

(9)   \begin{equation*}\fbox{$T_2 = \left\lbrace\begin{array}{l}\left( \frac{y_O - \left(\frac{a_2}{b_2}\right)y_O - \left(\frac{a_2 c_2}{b_1^2}\right) }{1 + \left(\frac{a_2}{b_2}\right)^2} \right) \\- \left[ \left(\frac{a_2}{b_2}\right) x_{T_2} + \left(\frac{c_2}{b_2} \right)\right]\end{array}\right\rbrace$}\end{equation*}

 

 

De façon générale, les extrémités de l’arc de cercle s’expriment comme suit :

(10)   \begin{equation*}\fbox{$T_i = \left\lbrace\begin{array}{l}\left( \frac{y_O - \left(\frac{a_i}{b_i}y_O - \frac{a_i c_i}{b_i^2}\right) }{1 + \left(\frac{a_i}{b_i}\right)^2} \right) \\- \left[ \left(\frac{a_i}{b_i} \right)x_{T_i} + \left(\frac{c_i}{b_i} \right)\right]\end{array}\right\rbrace_{i=1,2}$}\end{equation*}

 

Nous pouvons noter d’ors et déjà un cas particulier, à savoir lorsque 2 points sont verticaux (les grandeurs b_i sont en effet nulles alors que nous les retrouvons au dénominateur). Ce point sera abordé dans un des chapitres suivants.

 

 

1-4 Cas où B, D et donc E sont confondus

 Lorsque les droites D_1 et D_2 se coupent en B, il devient inutile de calculer E ; seules les constantes a_i, b_i et c_i (i=1,2,3) s’en trouvent affectées :

\left\lbrace\begin{array}{l}a_1 = - \left( y_B - y_A \right) \\b_1 = \left( x_B - x_A \right) \\c_1 = x_A \left( y_B - y_A \right) - y_A \left( x_B - x_A \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_2 = - \left( y_B - y_C \right) \\b_2 = \left( x_B - x_C \right) \\c_2 = x_C \left( y_B - y_C \right) - y_C \left( x_B - x_C \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_3 = - \left( y_C - y_A \right) \\b_3 = \left( x_C - x_A \right) \\c_3 = x_A \left( y_C - y_A \right) - y_A \left( x_C - x_A \right)\end{array}\right.

 

 Le reste demeurant inchangé.

 

1-5 Cas particulier où 2 points sont verticaux

 Les équations précédentes restent valables jusqu’au calcul du point O (ce dernier compris). Seul le calcul de T_1 demande un traitement particulier.

fillet_3points - verif6

Soit le cas ci-dessus. Les constantes s’écrivent :

\left\lbrace\begin{array}{l}a_1 = - \left( y_B - y_A \right) \\b_1 = 0 \\c_1 = x_A \left( y_B - y_A \right) - y_A \left( x_B - x_A \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_2 = - \left( y_B - y_C \right) \\b_2 = \left( x_B - x_C \right) \\c_2 = x_C \left( y_B - y_C \right) - y_C \left( x_B - x_C \right)\end{array}\right.

\left\lbrace\begin{array}{l}a_3 = - \left( y_C - y_A \right) \\b_3 = \left( x_C - x_A \right) \\c_3 = x_A \left( y_C - y_A \right) - y_A \left( x_C - x_A \right)\end{array}\right.

 

Assez simplement pour T_1, on peut voir que son abscisse est égale à celle du point A (ou B), et son ordonnée à celle du point O.

 

Donc

(11)   \begin{equation*} \fbox{$T_1 = \left\lbrace\begin{array}{l} x_A = x_B \\y_O\end{array}\right\rbrace$}\end{equation*}

 

 Le calcul de T_2 reste inchangé aux cas précédents.

 

 De même dans le cas suivant : le calcul de T_1 reste inchangé, et celui de T_2 devient :

(12)   \begin{equation*} \fbox{$T_2 = \left\lbrace\begin{array}{l} x_B = x_C \\y_O\end{array}\right\rbrace$}\end{equation*}

fillet_3points - verif6ter

 

 

 

1-6 Dernier cas particulier : toutes les droites sont verticales et horizontales et forment un angle droit

Dans ce cas particulier, le plus simple, il est inutile de passer par ces équations.

 

 

1-7 Vérifications

 Ci-dessous quelques exemples de raccordement qui ont été testés ; un fichier Excel (compressé avec 7zip) joint ici (fillet) regroupe tous les cas test.

fillet_3points fillet_3points - verif10 fillet_3points - verif9
fillet_3points - verif8 fillet_3points - verif7 fillet_3points - verif5
fillet_3points - verif6 fillet_3points - verif4 fillet_3points - verif3
fillet_3points - verif2 fillet_3points - verif1 fillet_generality_screenshot

 

Les courbes ont été dessinées sous geogebra ; à noter :

  • que les points bleus sont ceux saisi manuellement
  • que les points gris sont le résultats de l’intersection entre le cercle \mathca{C} (centre O' et rayon \left[OO' \right]) et les droites D_1 et D_2.

 

NB: les fichiers geogebra ont été compressés et insérés dans chaque feuille.

 

Nous vérifions que les coordonnées des points d’intersection correspondent bien à celles des T_i calculées.

 

 

1-7 Code sous Scilab

 A venir

 

 

2- Courbes de transition utilisant des clothoïdes

En développement.

This work is licensed under a