Edit and compile if you like:
% Author: Izaak Neutelings (March 2019)
\documentclass[border=3pt,tikz]{standalone}
\usetikzlibrary{calc}
\tikzset{>=latex} % for LaTeX arrow head
\colorlet{knob}{blue!20!black!40}
\colorlet{mylightblue}{blue!10}
\colorlet{mydarkblue}{blue!30!black}
\colorlet{mydarkred}{red!50!black}
\tikzstyle{gas}=[red!10]
\tikzstyle{rope}=[orange!60!black,line width=1.5]
% ANGLE
\newcommand{\getangle}[3]{%
\pgfmathanglebetweenpoints{\pgfpointanchor{#2}{center}}
{\pgfpointanchor{#3}{center}}
\global\let#1\pgfmathresult
}
% ENGINE
\def\engine#1{
\def\Pw{2} % piston width
\def\Pl{3} % piston length
\def\Pt{0.5} % piston thickness
\def\Cl{5}
\def\Ct{0.2}
\def\R{0.2}
\def\Sw{3} % platform S width
\def\St{.4} % platform S thickness
\def\Sh{1.5} % platform height
\def\hRP{1.32}
\def\hSR{3.5}
\coordinate (O) at (0,0);
\coordinate (R) at (\R,\hSR);
% PISTON
\begin{scope}[shift={(-2.7,\hSR+\hRP)}]
\coordinate (P) at (#1,0);
\fill[gas]
(-\Cl/2,-\Pw/2) rectangle (#1,\Pw/2);
\draw[mydarkblue,thick,fill=blue!10!black!50]
(\Cl/2,\Pw/2) --++ (0,\Ct) --++ (-\Cl-\Ct,0) coordinate (NE) --++ (0,-\Pw-2*\Ct)
--++ (\Cl+\Ct,0) --++ (0,\Ct) --++ (-\Cl,0) --++ (0,\Pw) -- cycle;
\draw[mydarkblue,thick,
top color=blue!20!black!70,bottom color=blue!20!black!60,middle color=blue!20!black!30,shading angle=0]
(P) ++ (0,\Pt/2) --++ (0,\Pw/2-\Pt/2) --++ (-\Pt,0) coordinate[midway] (PT)
--++ (0,-\Pw) --++ (\Pt,0) coordinate[midway] (PB) --++ (0,\Pw/2-\Pt/2)
--++ (\Pl,0) coordinate[below=1,left=4] (F) --++ (0,\Pt) coordinate[midway] (E) --++ (-\Pl,0) -- cycle;
\end{scope}
% PLATFORM (S) & ROPE
\getangle{\a}{R}{F}
\begin{scope}[shift={(0,{\hRP*(1/sin(\a)-1)})}]
\draw[blue!20!black!90,thick,top color=blue!20!black!40,bottom color=blue!20!black!60,shading angle=0]
(-\Sw/2,0) coordinate[above right=0.5] (SL)
--++ (\Sw,0) coordinate[above left=0.5] (SR) --++ (0,-\St) --++ (-\Sw,0) -- cycle;
\draw[rope]
(SR) -- (0,1.5) coordinate (ST) -- (SL);
\end{scope}
\draw[rope]
%(F) -- ($(R)+(90+\a:\R)$) -- ($(R)+(180:\R)$) -- (ST);
(F) -- ($(R)+(90+\a:\R)$) arc(90+\a:180:\R) -- (ST);
\fill[mydarkblue]
(SL) circle (.04) (SR) circle (.04) (F) circle (.04);
% PULLEY
\draw[very thick,mydarkblue,fill=blue!40!black!50] (R) circle (\R);
\draw[thick,mydarkblue,fill=blue!40!black!70] (R) circle (.3*\R);
% PLATFORM
\draw[blue!20!black!80,thick,
top color=blue!30!black!25,bottom color=blue!10!black!12,shading angle=10]
(-\Sw/2-0.04,0) --++ (0,-1) --++ (\Sw+0.08,0) --++ (0,1+\Sh) --++ (2.2,0) --++ (0,-2-\Sh) --++ (-\Sw-5.2,0) --++ (0,2) -- cycle;
}
\def\fix{
\node[rectangle,draw=mydarkred,inner xsep=3,inner ysep=5,
top color=red!90!black,bottom color=red!80!black,shading angle=20] at (PT) {};
\node[rectangle,draw=mydarkred,inner xsep=3,inner ysep=5,
top color=red!90!black,bottom color=red!80!black,shading angle=20] at (PB) {};
\fill[mydarkred] (PT) ++ (0, .1) circle (.02);
\fill[mydarkred] (PT) ++ (0,-.1) circle (.02);
\fill[mydarkred] (PB) ++ (0, .1) circle (.02);
\fill[mydarkred] (PB) ++ (0,-.1) circle (.02);
}
\def\mass#1{
\def\Maw{.8}
\def\Mbw{1.6}
\def\Mh{.8}
\begin{scope}[shift={(#1+.027)}]
\draw[thick,green!40!black,
top color=green!40!black!60,bottom color=green!40!black!70,shading angle=10]
(0,0) ++ (\Mbw/2,0) -- (\Maw/2,\Mh) -- (-\Maw/2,\Mh) -- (-\Mbw/2,0) -- cycle;
\node[scale=1.2] at (0,\Mh/2) {$m$};
\end{scope}
}
\def\fire{
\begin{scope}[shift={(-2.7-.3*\Cl,\hSR+\hRP-\Pw/2-1)}]
\draw[thin,red!80!black,fill=red]
(-.3,0) to[out=100,in=-80] (-.32,.8) to[out=-70,in=100] (-.14,.4)
to[out=70,in=-130] (0,.8) to[out=-80,in=90] (.15,.3)
to[out=80,in=-100] (.27,.7) to[out=-70,in=70] (.3,0)
to[out=-110,in=0] (0,-.09) to[out=180,in=-80] cycle;
\draw[thin,orange!80!black,fill=orange]
(-.28,0) to[out=100,in=-70] (-.26,.6) to[out=-70,in=100] (-.15,.3)
to[out=60,in=-130] (0,.65) to[out=-80,in=90] (.13,.2)
to[out=60,in=-120] (.28,.55) to[out=-80,in=70] (.27,0)
to[out=-110,in=0] (0,-.08) to[out=180,in=-80] cycle;
\draw[thin,yellow!90!black,fill=yellow]
(-.24,0) to[out=100,in=-80] (-.21,.32) to[out=-70,in=100] (-.17,.17)
to[out=50,in=-100] (-.02,.42) to[out=-90,in=90] (.09,.08)
to[out=55,in=-120] (.25,.3) to[out=-95,in=70] (.23,0)
to[out=-110,in=0] (0,-.07) to[out=180,in=-80] cycle;
\end{scope}
}
\begin{document}
% START
\begin{tikzpicture}[scale=0.7]
\engine{0};
%\node[right=14,above right=1,mydarkblue] at (NE) {$P_1$, $V_1$};
\node[below=7,below right=7,mydarkblue] at (NE) {$P_1$, $V_1$};
\fix
\mass{-3,0}
\fire
\end{tikzpicture}
% LIFT
\begin{tikzpicture}[scale=0.7]
\engine{0};
%\node[right=14,above right=1,mydarkblue] at (NE) {$P_1$, $V_1$};
\node[below=7,below right=7,mydarkblue] at (NE) {$P_1$, $V_1$};
\mass{0,0}
\draw[->,thick,mydarkblue] (E) ++ (0.4,0) --++ (1.4,0);
\draw[->,thick,mydarkblue] ($(ST)+(-.4,.3)$) --++ (0,1.2);
\fire
\end{tikzpicture}
% TOP
\tikzstyle{gas}=[blue!10]
\begin{tikzpicture}[scale=0.7]
\engine{2};
%\node[right=14,above right=1,mydarkblue] at (NE) {$P_2$, $V_2$};
\node[below=1,below right=13,mydarkblue] at (NE) {$P_2$, $V_2$};
\mass{0,\Sh}
\draw[<->,thick,scale=1.1,mydarkblue] (-.6*\Sw,0) --++ (0,.91*\Sh) node[midway,left] {$h$};
\end{tikzpicture}
% SLIDE
\begin{tikzpicture}[scale=0.7]
\engine{2};
%\node[right=14,above right=1,mydarkblue] at (NE) {$P_2$, $V_2$};
\node[below=1,below right=13,mydarkblue] at (NE) {$P_2$, $V_2$};
\fix
\mass{2.6,\Sh}
\end{tikzpicture}
\end{document}Click to download: engine_simple.tex • engine_simple.pdf
Open in Overleaf: engine_simple.tex



