Pour le plus grand plaisir de mes amis profs de mécanique, je présente dans cet article une façon de réaliser des schémas pour la théorie des poutres sous TikZ.
Table des matières
Exemple
Code associé
Préambule
Le préambule du document doit contenir les lignes suivantes :
\usepackage{tikz} \usetikzlibrary{patterns} \newcommand*{\Rayon}{0.15} \newcommand*{\tailleTriangle}{0.5} \newcommand*{\largeurSol}{1} \newcommand*{\hauteurSol}{0.4} \pgfmathsetmacro{\basTriangle}{sin(60)*\tailleTriangle} \newcommand*{\nbFlechesCont}{10} \newcommand*{\rayonCouple}{0.1} \newcommand*{\angleCouple}{110} \tikzset{ sol/.pic ={ \draw[thick](-\largeurSol/2,0)--(\largeurSol/2,0); \fill[fill,pattern=north east lines] (-\largeurSol/2,0) rectangle++ (\largeurSol,-\hauteurSol); }, mur/.pic ={ \draw[thick](0,-\largeurSol/2)--(0,\largeurSol/2); \fill[fill,pattern=north east lines] (0,-\largeurSol/2) rectangle++ (\hauteurSol,\largeurSol); }, triangle/.pic ={ \draw(0,0)--++(-60:\tailleTriangle)--++(-\tailleTriangle,0)--cycle; \node[anchor=south]{ \tikzpictext}; }, pivot/.pic ={ \pic{triangle}; \pic at (0,-\basTriangle){sol}; }, ponctuelle/.pic ={ \pic{triangle}; \draw(-\Rayon,-\basTriangle-\Rayon) circle(\Rayon); \draw(\Rayon,-\basTriangle-\Rayon) circle(\Rayon); \pic at(0,-\basTriangle-2*\Rayon){sol}; }, encastrd/.pic ={ \pic{mur}; \node{ \tikzpictext}; }, encastrg/.pic ={ \pic[xscale=-1]{mur}; \node{ \tikzpictext}; } } \newcommand{\chargecont}[4][]{% #1 (optionnel) style, #2 point de départ, #3 longueur, #4 nom de la charge \pgfmathsetmacro{\pas}{#3/\nbFlechesCont} \foreach \x in {0,\pas,...,#3}{ \draw[latex-,#1] ([xshift=\x cm]C) --++(0,0.5); } \draw[#1]([yshift=0.5 cm]#2)--++(#3,0) node[midway,above]{#4}; } \newcommand{\couple}[3][]{% #1 (optionnel) style, #2 point d'application, #3 nom du couple \draw[->,#1] (#2) +(\angleCouple:\rayonCouple) arc(\angleCouple:-\angleCouple:\rayonCouple) node[anchor=north] {$\mathcal{C}$}; } |
Exemple d’utilisation
Pour réaliser l’exemple illustré plus haut, il suffit d’utiliser le code suivant :
\begin{tikzpicture}[scale=2] \coordinate(A) at (0,0); \coordinate(B) at (1,0); \coordinate(C) at (2,0); \coordinate(D) at (3,0); \coordinate(E) at (4,0); \coordinate(F) at (5,0); \draw[ultra thick,anchor=south west,blue] (A) node[anchor=south west]{A} --(B) node[anchor=north]{B} --(C) node[anchor=south east]{C} --(D) node[anchor=south west]{D} --(E) node[anchor=south east]{E} --(F) node[anchor=south east]{F}; \pic at (A) {encastrg}; \draw[very thick,red,latex-] (B) --++(0,1) node[anchor=east]{$F$}; \chargecont[green,thick]{C}{1}{$p$} \pic at (2,0) {pivot}; \pic at (3,0) {ponctuelle}; \pic at (F) {encastrd}; \couple[red,thick]{E}{$\mathcal{C}$}; \end{tikzpicture} |
Explications
Les liaisons sont dessinées à l’aide de la commande \pic
. Celle-ci s’utilise comme la commande \node
, sauf qu’il faut remplacer le contenu du nœud par le nom de la liaison que l’on souhaite dessiner : pivot
, ponctuelle
, encastrg
(encastrement à gauche) ou encastrd
(encastrement à droite).
Les forces ponctuelles se dessinent simplement avec la commande \draw
(voir exemple). Les forces réparties de façon homogène se définissent ainsi :
\chargecont[<style (optionnel)>]{<point de départ>}{<longueur d'application>}{<nom de la charge>} |
Les couples sont définis à l’aide de la commande suivante :
\couple[<style (optionnel)>]{<point d'application>}{<nom du couple>}; |
Pour aller plus loin
Si vous avez des schémas plus complexes (poutre non rectiligne, ensemble de solides etc.), vous pouvez regarder du côté de la librairie Structural Analysis.