systems.tex
\documentclass[tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[default]{opensans}
\usepackage{stix}
\usepackage{pgfplots}
\usepackage{tikzlings}
\usepackage{moeptikz}
\usepgfplotslibrary{statistics}
\pgfplotsset{compat=1.18}
\usetikzlibrary{positioning,fit,3d,decorations.markings,shapes}
\begin{document}
\begin{tikzpicture}
\tikzset{backwall/.style={fill=lightgray,fill opacity=0.5,draw=black,thin,line join=round}}
\tikzset{wall/.style={fill opacity=0,draw=black,thin,line join=round}}
\newcommand{\tstar}[5]{% inner radius, outer radius, tips, rot angle, options
\pgfmathsetmacro{\starangle}{360/#3}
\draw[#5] (#4:#1)
\foreach \x in {1,...,#3}
{ -- (#4+\x*\starangle-\starangle/2:#2) -- (#4+\x*\starangle:#1)
}
-- cycle;
}
\begin{scope}[x = {(-0.6cm,-0.5cm)},
y = {(0.9659cm,-0.18cm)},
z = {(0cm,1cm)},
scale = 1]
%\draw[green] (0,0) -- (1,0) node[above] {x};
%\draw[blue] (0,0) -- (0,1) node[above] {y};
%\draw[red] (0,0) -- (0,0,1) node[above] {z};
\begin{scope}[canvas is zy plane at x=0]
\path[backwall] (0,0) rectangle (2,4);
\path[draw=black,fill=black,thin] (0.1,0.8) rectangle (1.9,3.2) node[above, xshift=-30, yshift=8] {d};
\begin{scope}[xshift=20, yshift=40,scale=0.1]
\tstar{2}{4}{3}{59}{thick,fill=white}
\end{scope}
\begin{scope}[xshift=22, yshift=70,scale=0.1]
\tstar{2}{4}{5}{36}{thick,fill=white}
\end{scope}
\end{scope}
\begin{scope}[canvas is zx plane at y=0]
\path[backwall] (0,0) rectangle (2,3);
% ----- leds ------
\draw[black,fill=green] (1.0,1.2) circle (0.1);
\draw[black,fill=green] (1.0,1.5) circle (0.1) node[left, above] {b};
\draw[black,fill=green] (1.0,1.8) circle (0.1);
% ----- pellet magazine ------
\path[fill=white,draw=black,thin] (0.2,1.2) node[right,xshift=-1.4,yshift=4] {a} rectangle (0.6,1.8) ;
\end{scope}
% ---- speaker ----
\begin{scope}[canvas is yz plane at x=1.5]
\begin{scope}[scale=0.5,yshift=85]
\draw[thick,rounded corners=1pt, fill=black] (0,0.25) -- (0,0.45) -- (0.25,0.45) -- (0.5,0.7) node[above] {c} -- (0.5,0) -- (0.25,0.25) -- cycle;
\draw[line width=0.5pt,line cap=round] (0.6,0.25) arc (-30:30:2mm);
\draw[line width=0.5pt,line cap=round] (0.7,0.15) arc (-30:30:4mm);
\draw[line width=0.5pt,line cap=round] (0.8,0.05) arc (-30:30:6mm);
\end{scope}
\end{scope}
\begin{scope}[canvas is xy plane at z=0]
\path[wall] (0,0) rectangle (3,4);
\foreach \x in {0.25,0.5,...,4} {
\draw[black] (0,\x) -- (3,\x);
}
\end{scope}
\begin{scope}[canvas is xy plane at z=2]
\path[wall] (0,0) rectangle (3,4);
\end{scope}
\begin{scope}[canvas is zx plane at y=4]
\path[wall] (0,0) rectangle (2,3);
\end{scope}
\end{scope}
\mouse[scale=0.45, xshift=2.8cm, yshift=-4cm]
% ---------------------------------------------------------------------------
\begin{scope}[xshift=11.0cm]
\begin{scope}[x = {(-0.6cm,-0.5cm)},
y = {(0.9659cm,-0.18cm)},
z = {(0cm,1cm)},
scale = 1]
\begin{scope}[canvas is xz plane at y=0.8]
\path[backwall,fill=darkgray] (1.6,0) rectangle (0,-1.5);
\node at (0.8,-0.75) {f};
\end{scope}
% ---boden ---
\begin{scope}[canvas is xy plane at z=0]
\draw[backwall,fill opacity=1] (5,-0.8) -- (5,0.8) -- (1.6,0.8) -- (1.6,4) -- (0,4) -- (0,-4) -- (1.6,-4)-- (1.6,-0.8) -- cycle;
\path[fill=cyan] (5,-0.8) rectangle (3.5,0.8);
\node at (4.25,0) {e};
\end{scope}
% --hintere wand ----
\begin{scope}[canvas is zy plane at x=0]
\path[backwall] (0,-4) rectangle (1.2,4);
\end{scope}
\end{scope}
\mouse[scale=0.45, xshift=4cm, yshift=-2.25cm, body=darkgray, rotatearms=65]
\begin{scope}[x = {(-0.6cm,-0.5cm)},
y = {(0.9659cm,-0.18cm)},
z = {(0cm,1cm)},
scale = 1]
% --- wand am gangende, links -----
\begin{scope}[canvas is xz plane at y=-4]
\path[backwall] (1.6,0) rectangle (0,1.2);
\path[fill=white,draw=black,thin] (0.5,0.2) rectangle (1.1,0.6) node[right,xshift=7.5] {a};
\draw[black,fill=green] (0.8,0.85) circle (0.1) node[left, above] {b};
\end{scope}
% --- wand am gangende, rechts -----
\begin{scope}[canvas is xz plane at y=4]
\path[backwall] (1.6,0) rectangle (0,1.2);
\path[fill=white,draw=black,thin] (0.5,0.2) rectangle (1.1,0.6) node[right,xshift=7.5] {a};
\draw[black,fill=green] (0.8,0.85) circle (0.1) node[left, above] {b};
\end{scope}
% --- vorderwand -----
\begin{scope}[canvas is zy plane at x=1.6]
\path[backwall] (0,-4) rectangle (1.2,-0.8);
\path[wall] (0,4) rectangle (1.2,0.8);
\end{scope}
% --- linke wand ----
\begin{scope}[canvas is xz plane at y=-0.8]
\path[backwall,fill=darkgray] (1.6,0) rectangle (0,1.5);
\node at (0.8,0.75) {f};
\path[backwall] (5,0) rectangle (1.6,1.2);
\end{scope}
% --- rechte wand ----
\begin{scope}[canvas is xz plane at y=0.8]
\draw[thin] (1.6,0) -- (0,0);
\path[wall] (5,0) rectangle (1.6,1.2);
\end{scope}
\begin{scope}[canvas is yz plane at x=5]
\path[wall] (-0.8,0) rectangle (0.8,1.2);
\end{scope}
\end{scope}
\end{scope}
\draw[gray] (-2cm,2.2cm) -- (4.2cm,2.2cm) -- (4.2cm,-2.8cm) node[above left,black] (box) {Skinner-Box} -- (-2cm,-2.8cm) -- cycle;% node[above left,black] {Skinner-Box} (box);
\path[draw,gray] (5.9cm,2.2cm) rectangle (15.2cm,-2.8cm) node[above left,black] {T-Maze};
\node[client,label=left:PC] (c) at (5.05cm,-3.7cm) {};
\draw[gray,thick] (4.2cm,-1.0cm) -- (5.9cm,-1.0cm);
\draw[->,>=stealth,thick,gray] (5.05cm,-1.0cm) -- (c);
%\node[switch] (s) at (5.05cm,-1.5cm) {};
%\path[draw] (s) -- (c);
\end{tikzpicture}
\end{document}