\begin{tikzpicture}[scale=0.5, font=\sffamily, >=Latex]

\definecolor{glassBorderColor}{RGB}{0,128,255}
\definecolor{glassFillColor}{RGB}{230,242,255}

\tikzset{
	holder cap/.style = {color = black, fill = black!20},%
	holder/.style = {color = black, fill = black!30},%
	holder background/.style = {color = black, fill = black!10},%
	thread/.style = {decoration = {zigzag, segment length = 1.5mm,%
		amplitude = 1mm}},%
	oring/.style = {color = black, fill = black},%
	glass/.style = {draw = none, fill = glassFillColor, fill opacity = 0.5},%
	cell wall/.style = {color = glassBorderColor, opacity = 0.4,%
		fill=glassFillColor, fill opacity = 0.9},%
	cell border/.style = {color = glassBorderColor, opacity = 0.4},%
	stopper/.style = {color = black!30, fill = white, rounded corners = 0.1cm,
		fill = black!10},%
	bar scale/.style = {<->, >=Bar[], line width=1.5*\pgflinewidth},%
	%rotation axis/.style = {color = black!70, line width=1.5*\pgflinewidth,
		%dash pattern = on 5pt off 5pt on 1.5*\pgflinewidth off 5pt}
}

%\clip (-.1,-.1) rectangle (17,20.2);

% cell
\draw [glass] (2.9,0) rectangle ++(11.0,7.0);
% wall
\draw [cell wall] (6.2,7.0) -- ++(-3.3,0) -- ++(0,-7.0) -- ++(11.0,0)
	-- ++(0,7.0) -- ++(-3.3,0) -- ++(0,-1.0) -- ++(1.8,0) -- ++(0,-5.0)
	-- ++(-8.0,0) -- ++(0,5.0) -- ++(1.8,0) -- cycle;
% stopper hole
\draw [cell border] (6.2,7.0) coordinate (lstopperhole)
	-- ++(4.4,0) coordinate (rstopperhole);
\draw [cell border] (6.2,6.0) -- ++(4.4,0);

% stopper
\newcommand{\stopperwidth}{4.8}
\coordinate (stoppercenter) at (8.4,4.0);
\path [name path = topstopper] ($ (stoppercenter)
		+ (-\stopperwidth - 1.0,5.0) $)
	-- ++(2*\stopperwidth + 2.0,0);
% left border
\coordinate (lbstopper) at ($ (stoppercenter) + (-2,0) $);
\path (lbstopper) -- (lstopperhole);
\mypgfextractangle{\lstopperangle}{lbstopper}{lstopperhole}
\path [name path = lstopper] (lbstopper) -- ++(\lstopperangle:6);
\path [name intersections = {of = topstopper and lstopper, by = ltstopper}];
\path [name path = louterstopper] ($ (stoppercenter) + (-3.5,7.0) $)
	-- ++(0,-3.0);
\path [name intersections = {of = topstopper and louterstopper,%
	by = loutertstopper}];
% right border
\coordinate (rbstopper) at ($ (stoppercenter) + (2,0) $);
\path (rbstopper) -- (rstopperhole);
\mypgfextractangle{\rstopperangle}{rbstopper}{rstopperhole}
\path [name path = rstopper] (rbstopper) -- ++(\rstopperangle:6);
\path [name intersections = {of = topstopper and rstopper, by = rtstopper}];
% draw the stopper
\draw [stopper] (lbstopper) -- (ltstopper) -- (loutertstopper)
	-- ++(0,2.0) -- ++(7.0,0) -- ++(0,-2.0) -- (rtstopper) -- (rbstopper)
	-- cycle;

% holder
\draw [holder] (1.3,5.5) -- ++(0.5,0) -- ++(0,0.7) -- ++(1.0,0) -- ++(0,0.8)
	-- ++(1.6,0) -- ++(0,7.0) -- ++(3.0,1.0) -- ++(0,5.0) -- ++(-3.0,0)
	-- ++(0,-5.0) -- ++(-3.1,-3.0) -- ++(-0.4,0) -- ++(0,-4.0) -- ++(0.4,0)
	-- cycle;
\draw [holder] (15.5,5.5) -- ++(-0.5,0) -- ++(0,0.7) -- ++(-1.0,0) -- ++(0,0.8)
	-- ++(-1.6,0) -- ++(0,7.0) -- ++(-3.0,1.0) -- ++(0,5.0) -- ++(3.0,0)
	-- ++(0,-5.0) -- ++(3.1,-3.0) -- ++(0.4,0) -- ++(0,-4.0) -- ++(-0.4,0)
	-- cycle;

% draw screw holes
\draw [holder background] (4.4,16.7) decorate[thread]{ -- ++(3.0,0) }
	-- ++(0,1.6) decorate[thread]{ -- ++(-3.0,0) } -- cycle;
\draw [holder background] (9.4,16.7) decorate[thread]{ -- ++(3.0,0) }
	-- ++(0,1.6) decorate[thread]{ -- ++(-3.0,0) } -- cycle;

% holder cap
\draw [holder cap] (0,4.7) -- ++(2.8,0) -- ++(0,0.5) -- ++(-1.7,0)
	decorate[thread]{ -- ++(0,6.8) } -- ++(-1.1,0) -- cycle;
\draw [holder cap] (16.8,4.7) -- ++(-2.8,0) -- ++(0,0.5) -- ++(1.7,0)
	decorate[thread, decoration = {mirror}]{ -- ++(0,6.8) } -- ++(1.1,0)
	-- cycle;

% O-rings
\draw[oring] (2.3,5.7) circle (0.5);
\draw[oring] (14.5,5.7) circle (0.5);

% rotation axis
%\draw[rotation axis] (8.4,-1.0) -- ++(0,22.0);

% bar scale
\draw[bar scale] (14.8,19) -- node[below] {1\,mm} ++(1.0,0);

\end{tikzpicture}
