Buonasera a tutti,
riporto un esempio completo della soluzione che ho adottato alla fine così può essere riutilizzata da qualcun altro in futuro:
`\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns,calc}
%
\def\carrello(#1,#2,#3){%
\begin{scope}[shift={(#1,#2)}]
\node[draw,circle,fill=#3,minimum width=0.4cm] (S) at (0,0){};
\draw (S) — (-0.4,-0.8) — (+0.4,-0.8) — (S);
\draw (0.25,-0.9) circle[radius = 0.1];
\draw (-0.25,-0.9) circle[radius = 0.1];
\node (g1) at (0,-1) [ground,anchor=north]{};
\draw (g1.north west) — (g1.north east);
\end{scope}
}
%
\def\cerniera(#1,#2,#3){%
\begin{scope}[shift={(#1,#2)}]
\node[draw,circle,fill=#3,minimum width=0.4cm] (S) at (0,0){};
\draw (S) — (-0.4,-1) — (+0.4,-1) — (S);
\node (g1) at (0,-1) [ground,anchor=north]{};
\draw (g1.north west) — (g1.north east);
\end{scope}
}
%
\begin{document}
\begin{tikzpicture}[>=latex]
\tikzstyle{ground}=[fill,pattern=north east lines,draw=none,%
minimum width=1.2cm,minimum height=0.3cm]
% struttura – schema
\coordinate (A) at (0,0); \coordinate (B) at (2,0);
\coordinate (C) at (4,0); \coordinate (D) at (6,0);
\coordinate (E) at ($(B)!2cm!90:(C)$); \coordinate (F) at ($(D)!2cm!-90:(C)$);
\draw[very thick] (A) — (B) — (C) — (D) — (F);
\draw[very thick] (B) — (E);
% Sistema di riferimento
\coordinate (O) at ($(A) – (2,0)$);
\draw[help lines,->] (O) — ($(O) – (0.5,0.5)$) node
{$x$};
\draw[help lines,->] (O) — ($(O) – (0,1)$) node
{$y$};
\draw[help lines,->] (O) — ($(O) + (1,0)$) node[above] {$z$};
% vincoli
\carrello(0,0,white) \cerniera(4,0,none)
% carichi – in F
\coordinate (fmx) at ($(F) – (.5,.5)$);
\coordinate (fmy) at ($(D)!1.5!(F)$);
\coordinate (fmz) at ($(F) + (1,0)$);
\draw[->] (fmx) — (F) node[pos=0,left]{$F_{mx}$};
\draw [->] (fmy) — (F) node[pos=0,left]{$F_{my}$};
\draw[->] (fmz) — (F) node[pos=0,below]{$F_{mz}$};
% in E
\coordinate (fix) at ($(E) + (0.8,0.8)$);
\draw[->] (fix) — (E) node[pos=0,right]{$F_i$};
\end{tikzpicture}
\end{document}`
Rispetto al codice di Robitex ho modificato un po’ la geometria dei vincoli ed ho aggiunto un terzo parametro che permette di riempire o meno il cerchio in punta ai vincoli così da poter disegnare sia vincoli che dividono due corpi, sia vincoli che non lo fanno. Inoltre ho aggiunto un nuovo stile di nodo (trovato in rete) per disegnare il telaio alla base dei vincoli stessi.
Grazie ancora a Robitex
Ciao
Fra
P.S. la libreria calc serve solo per come ho definito le forze e le coordinate nel disegno, ma non dovrebbe essere necessaria per disegnare i soli vincoli