%&tex \documentclass{standalone} \usepackage{tikz} \usepackage{siltex} \usetikzlibrary {calc,arrows.meta,positioning,patterns,math} %\input{graphics/tics.tikz} \begin{document} \begin{tikzpicture}[on grid] % Define Drawing Box dimentions \def \boxheight {5}; \def \boxwidth {6}; \def \boxorigin {(-\boxwidth/2,-1)}; \def \boxsize {(\boxwidth,\boxheight)}; \def \armcolor {gray}; \def \width {0.3}; \def \length {5}; \def \holediameter {0.10}; \def \floorheight {0.5}; \pgfmathsetmacro{\floorwidth}{4}; \def \arm { \draw[fill=\armcolor] (0,0) ++(0,\width/2) arc[start angle=90, end angle=270, radius=\width/2] -- ++(\length,0) arc[start angle=-90, end angle=90, radius=\width/2] -- cycle; \draw[fill=white] (0,0) circle (\holediameter/2); \draw[fill=white] (\length,0) circle (\holediameter/2); } \def \doublescara { \pgfmathsetmacro{\C}{sqrt(pow(\A,2)+pow(\B,2)-2*\A*\B*cos(\c))}; \pgfmathsetmacro{\b}{acos((pow(\A,2) + pow(\C,2) - pow(\B,2))/(2*\A*\C))}; \pgfmathsetmacro{\d}{180-\h-\b}; \pgfmathsetmacro{\D}{sqrt(pow(\C,2)+pow(\B,2)-2*\B*\C*cos(\d))}; \pgfmathsetmacro{\g}{acos(\D/(2*\B))}; \pgfmathsetmacro{\f}{acos((pow(\D,2) + pow(\B,2) - pow(\C,2))/(2*\D*\B))}; \pgfmathsetmacro{\a}{180-\b-\c}; \pgfmathsetmacro{\e}{180-\d-\f}; \pgfmathsetmacro{\k}{180-\f-\g}; \pgfmathsetmacro{\m}{180-\g-\e-\a}; \begin{scope}[shift={(-\A/2,0)}, rotate=\c] \def \length{\B} \arm \begin{scope}[shift={(\B,0)}, rotate=-\m] \def \length{\B} \arm \end{scope} \end{scope} \begin{scope}[shift={(\A/2,0)}, rotate=\h] \def \length{\B} \arm \begin{scope}[shift={(\B,0)}, rotate=\k] \def \length{\B} \arm \end{scope} \end{scope} }; \tikzset{arm/.pic={ \def \length {#1} \draw[fill=gray] (0,0) ++(0,\width/2) arc[start angle=90, end angle=270, radius=\width/2] -- ++(\length,0) arc[start angle=-90, end angle=90, radius=\width/2] -- cycle; \draw[fill=white] (0,0) circle (\holediameter/2); \draw[fill=white] (\length,0) circle (\holediameter/2); }, floor/.pic={ \def \width {#1/2}; \draw (-\width,0) -- (\width,0); \fill[pattern=north west lines] (-\width,-\floorheight) rectangle (\width,0); }, box/.pic={ \draw \boxorigin rectangle ++\boxsize; } }; \pgfmathsetmacro{\B}{2}; \pgfmathsetmacro{\A}{1}; \begin{scope}[shift={(0,0)}] \draw (0,0) pic {box}; \draw (0,0) pic {floor=2}; \pgfmathsetmacro{\c}{90}; \pgfmathsetmacro{\h}{40}; \def \armcolor{lightgray}; \doublescara; \pgfmathsetmacro{\c}{130}; \pgfmathsetmacro{\h}{60}; \def \armcolor{gray}; \doublescara; \end{scope} \begin{scope}[shift={(0*\boxwidth,\boxheight)}] \draw (0,0) pic {box}; \draw (0,0) pic {floor=2}; \begin{scope}[shift={(0,0)}, rotate=120] \def \length{\B} \arm \begin{scope}[shift={(\B,0)}, rotate=-100] \def \length{\B} \arm \end{scope} \end{scope} \end{scope} \begin{scope}[shift={(\boxwidth,0*\boxheight)}] \draw (0,0) pic {box}; \draw (0,0) pic {floor=2}; \def \a {105}; \def \b {5}; \def \c {\b-\a}; \def \C {1}; \def \B {2.5}; \def \A {3}; \begin{scope}[shift={(0,0)}, rotate=180+\b] \def \length{\C} \begin{scope}[shift={(\length,0)}, rotate=-(180+\c)] \def \length{\A} \arm \begin{scope}[shift={(\length,0)}, rotate=\c] \def \length{\B+\C} \arm \end{scope} \end{scope} \arm \end{scope} \begin{scope}[shift={(0,0)}, rotate=\a] \def \length{\A} \arm \end{scope} \begin{scope}[shift={(\C,0)}, rotate=\a] \def \length{\C} \begin{scope}[shift={(\length,0)}, rotate=-180-\a] \def \length{\C} \arm \end{scope} \arm \end{scope} \end{scope} \begin{scope}[shift={(1*\boxwidth,1*\boxheight)}] \draw (0,0) pic {box}; \draw (0,0) pic {floor=2}; \def \a {105}; \def \b {5}; \def \c {\b-\a}; \def \C {1}; \def \B {2.5}; \def \A {3}; \begin{scope}[shift={(0,0)}, rotate=180+\b] \def \length{\C} \begin{scope}[shift={(\length,0)}, rotate=-(180+\c)] \def \length{\A} \arm \begin{scope}[shift={(\length,0)}, rotate=\c] \def \length{\B+\C} \arm \end{scope} \end{scope} \arm \end{scope} \begin{scope}[shift={(0,0)}, rotate=\a] \def \length{\A} \arm \end{scope} \end{scope} \end{tikzpicture} \end{document}