Regular Tetragonal Toroid

Edit and compile if you like:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{0.125pt}
%
% File name: regular-tetragonal-toroid.tex
% Description:
% A geometric representation of the
% regular tetragonal toroid with 18 faces is shown.
%
% Date of last modification: October, 9th, 2022.
% Author: Efraín Soto Apolinar.
% https://www.aprendematematicas.org.mx/author/efrain-soto-apolinar/instructing-courses/
% Source: page 477 of the
% Glosario Ilustrado de Matem\'aticas Escolares.
% https://tinyurl.com/5udm2ufy
%
% According to TikZ.net
%
\begin{document}
\tdplotsetmaincoords{50}{115}
%
\begin{tikzpicture}[tdplot_main_coords]
% Change the value of the number at {\escala}{##} to scale the figure up or down
\pgfmathsetmacro{\escala}{2.0}
\pgfmathsetmacro{\cero}{sqrt(3.0) / 2.0}
\pgfmathsetmacro{\uno}{(2.0 + sqrt(3.0)) / 4.0}
\pgfmathsetmacro{\dos}{(3.0 + 2.0 * sqrt(3.0)) / 4.0}
\pgfmathsetmacro{\tres}{(2.0 + sqrt(3.0)) / 2.0}
% coordinates of the vertices
\coordinate(0) at (\escala*1.0, \escala*0.0, \escala*0.5);
\coordinate(1) at (\escala*1.0, \escala*0.0, -\escala*0.5);
\coordinate(2) at (\escala*\tres, \escala*0.0, \escala*0.0);
\coordinate(3) at (\escala*0.5, \escala*\cero, \escala*0.5);
\coordinate(4) at (\escala*0.5, \escala*\cero, -\escala*0.5);
\coordinate(5) at (\escala*\uno, \escala*\dos, \escala*0.0);
\coordinate(6) at (\escala*0.5, -\escala*\cero, \escala*0.5);
\coordinate(7) at (\escala*0.5, -\escala*\cero, -\escala*0.5);
\coordinate(8) at (\escala*\uno, -\escala*\dos, \escala*0.0);
\coordinate(9) at (-\escala*0.5, \escala*\cero, \escala*0.5);
\coordinate(10) at (-\escala*0.5, \escala*\cero, -\escala*0.5);
%
\coordinate(11) at (-\escala*\uno, \escala*\dos, \escala*0.0);
\coordinate(12) at (-\escala*0.5, -\escala*\cero, \escala*0.5);
\coordinate(13) at (-\escala*0.5, -\escala*\cero, -\escala*0.5);
\coordinate(14) at (-\escala*\uno, -\escala*\dos, \escala*0.0);
\coordinate(15) at (-\escala*1.0, \escala*0.0, \escala*0.5);
\coordinate(16) at (-\escala*1.0, \escala*0.0, -\escala*0.5);
\coordinate(17) at (-\escala*\tres, \escala*0.0, \escala*0.0);
% Faces of the polyhedron
\draw[red,thick,fill=cyan!35,opacity=0.75]  (0) -- (3) -- (4) -- (1) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (0) -- (1) -- (7) -- (6) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (1) -- (4) -- (5) -- (2) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (1) -- (2) -- (8) -- (7) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (9) -- (10) -- (4) -- (3) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (10) -- (16) -- (17) -- (11) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (10) -- (11) -- (5) -- (4) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (12) -- (13) -- (16) -- (15) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (13) -- (7) -- (8) -- (14) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (13) -- (14) -- (17) -- (16) -- cycle;
%
\draw[red,thick,fill=cyan!35,opacity=0.75]  (2) -- (5) -- (3) -- (0) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (12) -- (6) -- (7) -- (13) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (9) -- (15) -- (16) -- (10) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (14) -- (12) -- (15) -- (17) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (14) -- (8) -- (6) -- (12) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (11) -- (17) -- (15) -- (9) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (2) -- (0) -- (6) -- (8) -- cycle;
\draw[red,thick,fill=cyan!35,opacity=0.75]  (11) -- (9) -- (3) -- (5) -- cycle;
%
\end{tikzpicture}
%
\end{document}