3

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

1 Answer 1

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
    Commented Oct 31, 2019 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
    Commented Nov 1, 2019 at 4:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .