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:

enter image description here

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}

enter image description here

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}

enter image description here


enter image description here

\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}

Tags:

Circuitikz