The code adds some completely useless invisible (or rather white) stuff. The lines
\clip(0pt,403pt) -- (389.957pt,403pt) -- (389.957pt,99.6166pt) -- (0pt,99.6166pt) -- (0pt,403pt);
\color[rgb]{1,1,1}
\fill(3.76406pt,399.236pt) -- (380.923pt,399.236pt) -- (380.923pt,253.19pt) -- (3.76406pt,253.19pt) -- (3.76406pt,399.236pt);
\fill(53.4497pt,394.719pt) -- (374.901pt,394.719pt) -- (374.901pt,289.325pt) -- (53.4497pt,289.325pt) -- (53.4497pt,394.719pt);
draw a white background that is larger than the actual picture. TikZ sees that and thinks it is part of the picture. Simply removing/uncommenting these lines removes most of the whitespace.
Near the end of the first scope,
\color[rgb]{1,1,1}
\fill(3.76406pt,249.426pt) -- (386.193pt,249.426pt) -- (386.193pt,103.381pt) -- (3.76406pt,103.381pt) -- (3.76406pt,249.426pt);
does the same.
Additionally (near the end of the second scope
),
\pgftext[center, base, at={\pgfpoint{220.95pt}{106.392pt}}]{\sffamily\fontsize{9}{0}\selectfont{\textbf{ }}}
adds a blank node below the picture, again enlarging the bounding box.
Removing all those lines gives a tight bounding box.
As far as I know, TikZ cannot do the cropping for you, as it can't know whether the white stuff is intentional or not (there might for example be a dark background behind the image so that white is visible).
A different approach would be to append code after the resistor
node, similar to the light emitting
and direction info
styles:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.ee.IEC}
\begin{document}
\tikzset{
fuse graphic/.style={
append after command={% At the end of the \draw command, do the following
\bgroup % Start a new group
[current point is local=true, % Do not influence the current point on the path
every fuse/.try, % If `every fuse` has been defined, use it
#1] % Apply options supplied by user
(\tikzlastnode.west) edge [line to] (\tikzlastnode.east) % An edge, i.e. an independent path, from the west to the east of the resistor node
\egroup% End the group
}
},
fuse/.style={resistor={fuse graphic=#1}} % The fuse is just a resistor node with the `fuse graphics` key
}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [fuse] (2,0) to [fuse] (0,-2) to [fuse] (0,0);
\end{tikzpicture}
\end{document}
Best Answer
You just have to add another line to your self drawn symbol. The middle of your cup is at the x-coordinate 0 and you must go from
-.5*\h
to.5*\h
: