# CircuiTikZ: Understanding the placement options of to[...]

Following-up this answer, for the following MWE, why does to[short, name=motor1, pos=0.25] draw the motor midway and not place it at the end of the first 1/4 of the path ?

Additionally, is there an option of to[...] to control the placement of the motor instead of doing it manually as I did twice below?

\documentclass[border=5mm]{standalone}

\usepackage{circuitikz}

\begin{document}
\begin{circuitikz}
\draw (0,0) to[short, name=motor1, pos=0.25] ++(4,0);
\draw (motor1) node[elmech](M1){M};

\draw (0,-2) to[short, name=motor2] ++(4,0);
\draw ([xshift=-1cm]motor2) node[elmech](M2){M};

\draw (1,-4) node[elmech](motor3){M};
\draw (0,-4) to[short] (motor3.west);
\draw (motor3.east) to[short] (4,-4);
\end{circuitikz}
\end{document}

• What you like to do should be exception. So if you like to have them, than you set this exception manually. All dipoles are in middle of path between coordinates. Why you like to change this? Oct 31, 2019 at 18:40
• @Zarko I just wondered why it accepted pos=0.25 without considering its effect.
– Diaa
Oct 31, 2019 at 18:43
• This can say authors of package. It seems that dipoles positions are hard coded to be in the middle of the path. Oct 31, 2019 at 18:46
• I was surprised it didn't rotate the contacts to match leads. See tex.stackexchange.com/questions/132076/… Oct 31, 2019 at 20:51
• @JohnKormylo the element elmech is a node-type element, so you have to rotate it manually. Telmech is a bipole-type. And no, pos is not useful here; the name is assigned to the bipoles short which is always placed in the center of the subpath. Nov 1, 2019 at 0:16

I don't think pos is supposed to decide the placement of the component. The bipoles are drawn at the middle. Alternate way is using

    \draw (0,-2) -- ++(4,0)node[pos=0.25](motor2){};


Yes. Motor can be placed with to[Telmech]. Note that the name starts with T.

    \draw (0,-4) to[Telmech=M, name=M3] ++(4,0);


\documentclass[border=5mm]{standalone}

\usepackage{circuitikz}

\begin{document}
\begin{circuitikz}

\draw (0,0) to[short, name=motor1, pos=0.25] ++(4,0);
\draw (motor1) node[elmech](M1){M};

\draw (0,-2) -- ++(4,0)node[pos=0.25](motor2){};
\draw (motor2) node[elmech](M2){M};

\draw (0,-4) to[Telmech=M, name=M3] ++(4,0) to[Telmech=M] ++(0,-3);
\draw (M3.east) -- ++(0,-1);

\end{circuitikz}
\end{document}

• Could you please explain to me why the motor terminals weren't rotated properly to match the wires in the first two examples unlike the third one?
– Diaa
Oct 31, 2019 at 21:38
• @Diaa in first two examples, the motor is placed as a node without rotation. But when it is done with to[...], the node is rotated to align with the direction of the path. Nov 1, 2019 at 4:38