Complicated node shapes

I am trying to make a diagram of a mobile network. For this purpose I have created a base station/cell tower drawing in tikz.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}

\foreach \x in {-0.75, -0.25, 0.25, 0.75} {
\draw[thick] (\x,0) -- (\x,0.5);
}

\draw[thick] (-0.75,0) -- (0.75,0);

\path[name path=left, draw, thick] (-0.75, -3) -- (-0.0625, 0);
\path[name path=right, draw, thick] (0.75, -3) -- (0.0625, 0);

\path[name path=int1] (-1, -0.625) -- (1, -0.625);
\path[name path=int2] (-1, -1.5) -- (1, -1.5);
\path[name path=int3] (-1, -2.5) -- (1, -2.5);

\path[name intersections={of=int1 and left,by=li1}];
\path[name intersections={of=int2 and left,by=li2}];
\path[name intersections={of=int3 and left,by=li3}];

\path[name intersections={of=int1 and right,by=ri1}];
\path[name intersections={of=int2 and right,by=ri2}];
\path[name intersections={of=int3 and right,by=ri3}];

\draw (li1) -- (ri1);
\draw (li2) -- (ri2);
\draw (li3) -- (ri3);
\draw (li1) -- (ri2);
\draw (li2) -- (ri1);
\draw (li2) -- (ri3);
\draw (li3) -- (ri2);

\end{tikzpicture}
\end{document}


Is there a way to use a tikz picture as a shape for a node so I can place it easily in a bigger diagram?

• You can nest a tikzpicture inside a node in another tikzpicture using \node {\begin{tikzpicture} ... \end{tikzpicture}}; Nov 16 '19 at 11:40
• @vipa I wouldn't generally recommend that. While it can work, it can also cause unexpected problems due to inheritance of options. It's also usually unnecessary. Searching for nesting tikzpictures here on the site will lead to several questions about this. Nov 16 '19 at 13:26
• @TorbjørnT. I must admit that is not an elegant solution. The Schr.'s cat solution is better. Nov 16 '19 at 20:44

Welcome! Yes, of course you can make this a pic. You do not need intersections for this either.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[pics/power pole/.style={code={
\draw[thick] \foreach \X in {0.25, 0.75} {(-\X,0.5) |- (\X,0) -- (\X,0.5)}
(-0.75, -3) -- (-0.0625, 0) coordinate[pos=0.175] (l3)
coordinate[pos=0.5] (l2) coordinate[pos=0.775] (l1)
(0.75, -3) -- (0.0625, 0) coordinate[pos=0.175] (r3)
coordinate[pos=0.5] (r2) coordinate[pos=0.775] (r1);
\draw (l1) -- (r1) (l2) -- (r2) (l3) -- (r3)
(l1) -- (r2) (l2) -- (r3) (l3) -- (r2) (l2) -- (r1);
}}]

\path  pic{power pole};
\end{tikzpicture}
\end{document}


• Thank you for this simple solution, as a beginner I sometimes can't see the forest for the trees! Nov 19 '19 at 12:38