Circuitikz 三端线性稳压器

Circuitikz 三端线性稳压器

我一直在尝试使用三端线性稳压器绘制线性电源的原理图。如您所见,我已成功使用稳压器。大致如下:

在此处输入图片描述

但是,我使用的代码似乎不必要地复杂,我不禁觉得一定有更好的方法。这是一个最小的例子,请看一下:

\documentclass{article}

\usepackage{circuitikz}

\begin{document}

\begin{circuitikz}
  \draw (0,0) -- (1,0) ++(1,0) node[rectangle,draw,
    minimum width=2cm,minimum height=1.2cm,
    label={[below]north:LM317},
    label={[right]west:in},
    label={[above]south:adj},
    label={[left]east:out}]{} ++(1,0) -- (4,0);
\end{circuitikz}

\end{document}

特别要注意计算运算符坐标的笨拙方式++:为了使矩形的左侧与线相邻,我们必须将矩形宽度的一半向右移动。右侧也同样如此。

我理想中想要的是一个可以像在 circuitikz 中使用所有其他图形元素一样使用的东西,并带有适当的锚点。我查看了 circuitikz 手册,但没有找到任何看起来像我想要的图形元素,我也查看了 TikZ 手册,但不知道在哪里可以找到。有人能帮忙吗?

编辑添加了最小完整示例

答案1

如果你想重复使用该电路,我建议看一下手册关于muxdemuxes例如这里)以及子电路例如这里)。

我的看法是这样的(请参阅代码片段中的注释):

\documentclass{article}
\usepackage{circuitikz}
\begin{document}

% bare shape for the object.
\tikzset{regulatorshape/.style={muxdemux,
    muxdemux def={
        Lh=2, Rh=2, w=4,
        NL=1,NR=1,NT=0,NB=1,
    }
}}
% se manual section 3.4 "subcircuits"
\ctikzsubcircuitdef{lmTOS}{% TOS=three one seven, no numbers allowed here
    in, out, adj, center}{% anchors
    coordinate (#1-center)
    node [regulatorshape, anchor=center](#1-shape){} % main node
    % labels
    (#1-shape.north) node[font=\ttfamily\small, below]{LM317}
    (#1-shape.blpin 1)  node[font=\ttfamily\small, right]{in}
    (#1-shape.brpin 1)  node[font=\ttfamily\small, left]{out}
    (#1-shape.bbpin 1)  node[font=\ttfamily\small, above]{adj}
    % anchors
    (#1-shape.lpin 1) coordinate(#1-in)
    (#1-shape.bpin 1) coordinate(#1-adj)
    (#1-shape.rpin 1) coordinate(#1-out)
    % we are leaving the "current" position at the output
}

\ctikzsubcircuitactivate{lmTOS}
\begin{tikzpicture}[]
        \draw (0,0) -- ++(1,0) \lmTOS{myreg}{in} % position using anchor "-in"
            -- ++(1,0); % this work because the subcircuit
                        % "end" position is -out
        % otherwise you need
        % ... \lmTOS{myref}{in} (myreg-out) -- ++(1,0)
        \draw (myreg-adj) to[R] ++(0,-2) node[ground]{};
        % you can acces the internal anchors too:
        \draw [red, <-] (myreg-shape.brpin 1) -- ++(45:1);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容