Circuitikz wrongfully intersects node
As ever, @js bibra answer is ok. Just to explain a bit more what happens in the following (you can read a quite lengthy and full explication in the manual of circuitikz
, section 5.1).
\draw (0,0) -- ++(0,0.75) to[short,i_=$a_1$] ++(0,0.5)
to[short,-o] ++(0,0.5) node[right]{$b_1$} coordinate(b1);
When you use -o
, circuitikz
will add a node with the shape ocirc
to the path. Nodes are drawn after the path is stroked; and the node is designed so that is filled with white. The coordinate b1
is then set at the point where you arrived (the node you added with $b_1$
has not moved it). Now
\draw [thick, dotted] (b1) -- ++(0,1);
will draw the dotted line starting from b1
, which is at the center of the ocirc
node.
A different solution is to position the ocirc
node after having drawn the dashed line.
\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\begin{document}
\begin{tikzpicture}[arrowmos]
\draw (0,0) -- ++(0,0.75) to[short,i_=$a_1$] ++(0,0.5)
to[short] ++(0,0.5) node[right]{$b_1$} coordinate(b1);
\draw [thick, dotted] (b1) -- ++(0,1);
\node [ocirc] at (b1){};
\end{tikzpicture}
\end{document}
(BTW, notice that this is a real MWE).
A very similar problem is explained around page 174, in the FAQ:
Finally, as you comment, if you want to use the north
coordinate of the pole, you have to put it explicitly so that you can name it:
\begin{tikzpicture}[arrowmos]
\draw (0,0) -- ++(0,0.75) to[short,i_=$a_1$] ++(0,0.5)
to[short] ++(0,0.5) node[ocirc](b1){} node[right]{$b_1$};
\draw [thick, dotted] (b1.norht) -- ++(0,1);
\end{tikzpicture}
Moreover, as noticed by John Kormylo, now b1
is a node
reference, so the lines going out will start from the border anchor automatically:
\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\begin{document}
\begin{tikzpicture}[arrowmos]
\draw (0,0) -- ++(0,0.75) to[short,i_=$a_1$] ++(0,0.5)
to[short] ++(0,0.5) node[ocirc](b1){} node[right]{$b_1$};
\draw [thin, red] (b1) -- ++(0,1);
\draw [thin, blue] (b1) -- ++(1,1);
\draw [thin, dashed] (b1) -- ++(-1,1);
\draw [thin, dotted] (b1) -- ++(0.5,1);
\end{tikzpicture}
\end{document}
\begin{tikzpicture}[arrowmos]
\draw (0,0) -- ++(0,0.75) to[short,i_=$a_1$] ++(0,0.5) to[short,-o] ++(0,0.5) node[right]{$b_1$} node[inner sep=1pt](b1){};
\draw [thick, dotted] (b1) -- ++(0,1);
\end{tikzpicture}