2

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?

enter image description here

\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}
5
  • 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? – Zarko Oct 31 '19 at 18:40
  • @Zarko I just wondered why it accepted pos=0.25 without considering its effect. – Diaa Oct 31 '19 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. – Zarko Oct 31 '19 at 18:46
  • 1
    I was surprised it didn't rotate the contacts to match leads. See tex.stackexchange.com/questions/132076/… – John Kormylo Oct 31 '19 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. – Rmano Nov 1 '19 at 0:16
3

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); 

enter image description here

\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}
2
  • 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 '19 at 21:38
  • 1
    @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. – nidhin Nov 1 '19 at 4:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.