将 CircuiTikZ 组件与其引脚对齐放置

将 CircuiTikZ 组件与其引脚对齐放置

我使用 LaTeX 和 CircuiTikZ 来创建电路图。使用 CircuiTikZ 文档和此社区中的许多问题和答案,我能够很好地浏览它。

我必须重新创建一个 8 针 DIP 芯片,其中包含一个内部连接到引脚的放大器符号。我可以使用以下代码创建它:

\begin{tikzpicture}
  % DIP chip
  \draw (0,0) node[dipchip,
        num pins=8,
        external pins width=0.3,
        external pad fraction=3,
        hide numbers](C){};
 
  % amplifier
  \draw (C) node[op amp, scale=0.571](OA){};
  % amplifier connection to the chip pins
  \draw (OA.-) |- (C.bpin 2)
        (OA.+) |- (C.bpin 3)
        (OA.out) |- (C.bpin 6);
\end{tikzpicture}

结果正是我想要的:

创建此图像的主要目的是将 dipchip 引脚与放大器 + 和 - 输入对齐。我通过手动调整放大器的大小(如scale=0.571代码中所示)来实现这一点,直到其输入完全对齐。由于这是一项非常繁琐的反复试验任务,我想知道是否有更简单(可能更优雅)的方法来实现相同的结果。
谢谢

答案1

Ti 中的维度Z 是相对于基本长度的(不容易获得,有点可惜),但每个元素通常都有不同的方式来使用各种参数。例如,芯片中引脚之间的距离是multipoles/dipchip/pin spacing;输入之间的距离op amptripoles/op amp/input height,但它是相对于组件的高度(tripoles/op amp/height);这基本上是历史性的。

然后,组件可以按以下方式缩放样式amplifiers/scalechips/scale)...

因此,这就是您可以让小型放大器输入之间的距离与芯片相匹配的方法:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
% \ctikzset{amplifiers/scale=1.5} % this will change the relative sizes
\begin{document}
\begin{tikzpicture}
    \pgfmathsetmacro{\myscale}{
        \ctikzvalof{multipoles/dipchip/pin spacing}*
        \ctikzvalof{chips/scale} /
        (\ctikzvalof{tripoles/op amp/height}*
        \ctikzvalof{tripoles/op amp/input height}*
        \ctikzvalof{amplifiers/scale})
    }
    \draw (0,2) node[]{\myscale}; % show the magic number
    % DIP chip
    \draw (0,0) node[dipchip,
        num pins=8,
        external pins width=0.3,
        external pad fraction=3,
        hide numbers](C){};

    % amplifier --- position it relative to the chip
    %(so I can move it around)
    \draw (C.bpin 2) node[op amp, scale=\myscale, anchor=-](OA){};
    % amplifier connection to the chip pins
    \draw (OA.-) |- (C.bpin 2)
        (OA.+) |- (C.bpin 3)
        (OA.out) |- (C.bpin 6);
\end{tikzpicture}

\end{document}

还要注意,我对内部运算放大器符号使用了相对定位,这样您就可以移动主芯片而不改变任何东西。

在此处输入图片描述

相关内容