TikZ-Spule mit verlängertem, senkrechtem Anfang und Ende

TikZ-Spule mit verlängertem, senkrechtem Anfang und Ende

Das Ziel besteht darin, eine Spule mit einer rechteckigen Biegung am Anfang und Ende zu zeichnen, und zwar mit nur einem pathBefehl draw, etwa so:

richtige Spule

Die Spule selbst ist ein horizontaler Pfad und die Enden verlaufen von beiden Enden vertikal nach unten, also in einem 90-Grad-Winkel.

Allerdings funktioniert der Anfang, das Ende jedoch nicht, obwohl der Basispfad (grün) die richtige Form hat:

krumme Spule

mit Code

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{
    decorations.pathmorphing,
    arrows
}

\begin{document}
    \begin{tikzpicture}[
        thiscoil/.style={%
            decorate,%
            decoration={%
                coil,
                aspect=0.3,
                segment length=0.5em,
                amplitude=0.5em,
                pre=lineto,
                post=lineto,
                pre length=1.5em,
                post length=1.5em,
            },
            o-o,
        },
        thick
    ]
        % Same path, without coil:
        \draw[transform canvas={yshift=3em}, green] (0,0) |- ++ (5em,1em) -| ++ (0.5em,-1em);
        % A coil with horizontal straight endings:
        \draw[thiscoil, blue] (0,0) |- ++ (5em,1em) -| ++ (0.5em,-1em);
        % A coild without horizontal endings, only vertical ones:
        \draw[thiscoil, transform canvas={yshift=-3em}, red] (0,0) |- ++ (5em,1.5em) -| ++ (0.5em,-1.5em);
    \end{tikzpicture}
\end{document}

Im besten Fall sollte die Spule wie links/Anfang des roten Beispiels aussehenan beiden Enden. Wenn es mit einer horizontalen Einkerbung in der Spule kommt, wie am Anfang/links des blauen und am Ende/rechts des roten Pfads, ist das auch ok.

Wie kann das erreicht werden?

Antwort1

Hier ist eine Lösung mit dem cuteinductorshape von circuitikz. Oben wird eine bestimmte Breite zwischen den Anschlüssen verwendet, während unten die „natürliche“ Breite des Knotens verwendet wird (die mit angepasst werden kann \ctikzset).

\documentclass[border=2pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}
  \draw (0,1) to[short,o-] ++(0,1em) to[cute inductor] ++(5em,0) to[short,-o] ++(0,-1em);
  \draw (0,0) node[ocirc]{} |- ++(0.5pt,1em) node[cuteinductorshape,anchor=west,name=coil]{}
    (coil.east) -| ++(0.5pt,-1em) node[ocirc]{};
\end{tikzpicture}
\end{document}

Demo

Antwort2

Nur zum Spaß: Es ist ein sehr kurzer Code mit pstricks. Einige Koordinatenwerte mussten durch Ausprobieren gefunden werden, da der \psCoilBefehl im Hintergrund die Projektion einer 3D-Helix auf eine Ebene verwendet und die Argumente der Start- und Endwinkel dieser Helix sind.

\documentclass{article}
\usepackage{pst-coil, auto-pst-pdf}

\begin{document}

\begin{pspicture}(-1,0.5)(4,3)
\psset{coilheight=0.6, coilwidth =1.5, dotsize=4pt}
\rput(2,0){\psCoil{-110}{1910}}
\psline{-o}(1.506,-0.25)(1.506,-1.25)\psline{-o}(5.675,-0.25)(5.675,-1.25)
\end{pspicture}

\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen