Antwort1
Dies soll Ihnen einen Anfang geben. Es ist kein Versuch, das Bild vollständig neu zu zeichnen. Es liefert Ihnen jedoch das meiste davon, der Rest ist meiner Meinung nach Wiederholung.
Ausführlicher,
- um die 3D-Ansicht zu installieren,
perspective
wird die Bibliothek verwendet. (IMHO macht die Anweisungisometric view
nur Sinn, wenn man zusätzlich die Ausrichtung des Zylinders im 3D-Raum angibt.) - Längen werden in „Funktionen“ über gespeichert
declare function
. - das ist TikZ, daher müssen wir die verschiedenen Flächen in der richtigen Reihenfolge zeichnen. Wenn Ihnen das nicht gefällt, wechseln Sie zu
asymptote
.
Code und Ergebnis:
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{perspective}
\begin{document}
\begin{tikzpicture}[>=stealth,semithick,line cap=round,
declare function={R=20;d=9;dd=1.5;rr=5;L=10;l=1;},%<- d/2efine some lengths
scale=0.15]
\begin{scope}[3d view={30}{10}]%<- install 3d view and set view angles
\path[fill=gray!80] plot[variable=\t,domain=60:110,smooth]
({R*cos(\t)},{d/2},{R*sin(\t)})
-- plot[variable=\t,domain=110:60,smooth]
({R*cos(\t)},{-d/2},{R*sin(\t)}) -- cycle;
\path[fill=gray!40] plot[variable=\t,domain=120:240,smooth]
({R*cos(\t)},{-d/2},{R*sin(\t)})
-- plot[variable=\t,domain=240:120,smooth]
({rr*cos(\t)},{-d/2},{rr*sin(\t)}) --cycle;
\path[fill=black] plot[variable=\t,domain=120:240,smooth]
({rr*cos(\t)},{-d/2},{rr*sin(\t)})
-- ({rr*cos(240)},{d/2},{rr*sin(240)})
-- ({(rr+dd)*cos(240)},{d/2},{(rr+dd)*sin(240)})
-- plot[variable=\t,domain=240:120,smooth]
({(rr+dd)*cos(\t)},{-d/2},{(rr+dd)*sin(\t)}) -- cycle;
\path[fill=brown!40] plot[variable=\t,domain=120:60,smooth]
({rr*cos(\t)},{d/2+l},{rr*sin(\t)}) --
plot[variable=\t,domain=60:120,smooth]
({rr*cos(\t)},{-d/2-L},{rr*sin(\t)}) --
cycle;
\path[fill=gray!40] plot[variable=\t,domain=60:120,smooth]
({R*cos(\t)},{-d/2},{R*sin(\t)})
-- plot[variable=\t,domain=120:60,smooth]
({rr*cos(\t)},{-d/2},{rr*sin(\t)}) --cycle;
\path[fill=black] plot[variable=\t,domain=120:60,smooth]
({rr*cos(\t)},{-d/2},{rr*sin(\t)})
-- ({rr*cos(60)},{d/2},{rr*sin(60)})
-- ({(rr+dd)*cos(60)},{d/2},{(rr+dd)*sin(60)})
-- plot[variable=\t,domain=60:120,smooth]
({(rr+dd)*cos(\t)},{-d/2},{(rr+dd)*sin(\t)}) -- cycle;
\path[fill=gray!60]
({(rr+dd)*cos(60)},{-d/2},{(rr+dd)*sin(60)})
-- ({(rr+dd)*cos(60)},{d/2},{(rr+dd)*sin(60)})
-- ({R*cos(60)},{d/2},{R*sin(60)})
-- ({R*cos(60)},{-d/2},{R*sin(60)}) -- cycle;
\path[fill=brown!60] plot[variable=\t,domain=240:60,smooth]
({rr*cos(\t)},{-d/2-L},{rr*sin(\t)}) --cycle;
\path[fill=brown]
({rr*cos(240)},{-d/2-L},{rr*sin(240)})
-- ({rr*cos(60)},{-d/2-L},{rr*sin(60)})
-- ({rr*cos(60)},{d/2+l},{rr*sin(60)})
-- ({rr*cos(240)},{d/2+l},{rr*sin(240)})
--cycle;
\path[fill=gray!60]
({(rr+dd)*cos(240)},{-d/2},{(rr+dd)*sin(240)})
-- ({(rr+dd)*cos(240)},{d/2},{(rr+dd)*sin(240)})
-- ({R*cos(240)},{d/2},{R*sin(240)})
-- ({R*cos(240)},{-d/2},{R*sin(240)}) -- cycle;
\end{scope}
%
\begin{scope}[xshift=35cm]
\draw (-d/2,-R) rectangle (d/2,-rr-dd) (-d/2,R) rectangle (d/2,rr+dd)
(-d/2-L,-rr) rectangle (d/2+l,rr);
\draw[fill] (-d/2,-rr) rectangle (d/2,-rr-dd)
(-d/2,rr) rectangle (d/2,rr+dd);
\draw[dashed] (d/2,R) -- ++ (5,0) coordinate (rt)
(d/2,-R) -- ++ (5,0) coordinate (rb);
\draw[<->] (rt) -- (rb) node[midway,rotate=90,anchor=north]
{\pgfmathparse{2*R}\pgfmathprintnumber\pgfmathresult\,mm};
\draw[<->] (-d/2,R+1) -- (d/2,R+1) node[midway,rotate=90,anchor=west]
{\pgfmathparse{d}\pgfmathprintnumber\pgfmathresult\,mm};
\end{scope}
\end{tikzpicture}
\end{document}