使用 circuitikz 绘制电气图!

使用 circuitikz 绘制电气图!

我查看了 CTAN 上的文档和示例,但是circuitikz很难掌握。 这个http://prntscr.com/f8s0pz

答案1

本着“帮助您自助”的精神,这里是该图的一部分,我认为其中包含您自己完成它所需的所有元素和代码片段。别忘了阅读代码中的注释。

结果

结果

代码

\documentclass[margin=2mm,tikz]{standalone}
\usepackage[american]{circuitikz}
\usetikzlibrary{calc}
\begin{document}
% I use a tikzpicture instead of a circuitikz here because
% the standalone package does weird things with the paper
% size when using a circuitikz environment. Feel free to
% change this in your document.
% We choose a base length of 3cm to simplify our coordinate
% calculations. Adjust as needed. Default is 1cm by the way.
%\begin{circuitikz}[x=3cm,y=3cm]
\begin{tikzpicture}[x=3cm,y=3cm]
    % Define all coordinates. Not strictly necessary, but it
    % makes for cleaner code, in my humble opinion.
    \coordinate[label=below:$+$]   (INP) at (0,0);
    \coordinate[label=$A_1$]       (A1)  at (1,0);
    \coordinate[label=$B_1$]       (B1)  at (2,0);
    \coordinate                    (C1)  at (1,-1);
    \coordinate                    (CE1) at (2,-1);
    \coordinate[label=above:$-$]   (INN) at (0,-1);
    \coordinate[label=$D_1$]       (D1)  at (3,0);
    \coordinate                    (L1)  at (3,-1);

    % Draw part of the circuit. You might need more than one
    % draw command, depending on how you do things.
    \draw 
        (INP) to[short,o-*,i_=$i_{ul}$]                (A1)
              to[R,l_=$R_1$,-*,i^>=$i_2$]              (B1)
              to[C,l_=$C_{E1}$,-*,i^>=$i_{e1}$]        (CE1)
              --                                       (C1)
              to[C,l_=$C_1$,*-*,i<^=$i_1$]             (A1)
        (INN) to[short,o-]                             (C1)
        (B1)  to[I,i_<=$gi_1$,color=orange]            (D1)
              to[L,l_=$L_1$,color=magenta,i=$i_4$,*-*] (L1)
              --                                       (CE1)
    ;

    % Some additional labelling...
    \node at (0,-0.5) {$u_{ul}$};

    % Helper lines
    % Remove the 'dashed' parameter for a normal line.
    % This part uses the 'calc' library from TikZ for
    % coordinate calculations.
    % NOTE: The corner radius has to be adjusted manually
    %       if you adjust the base x and y lengths in the
    %       optional argument for the tikzpicture/circuitikz
    %       environment.
    \draw[red,dashed,rounded corners=0.2cm,-latex]
           ($(INP) + ( 0.175,-0.5  )$) 
        -- ($(INP) + ( 0.175,-0.175)$) 
        -- ($(B1)  - ( 0.175, 0.175)$)
        -- ($(CE1) + (-0.175, 0.175)$) 
        -- ($(INN) + ( 0.175, 0.175)$)
    ;
\end{tikzpicture}
%\end{circuitikz}
\end{document}

语法备注

由于circuitikz的语法确实有点简洁,对于初学者来说可能看起来比较神秘,因此有几点说明:

to[short,o-*,i_=$i_{ul}$]

short只会画一条线(或者,顾名思义,是一条短路)。o-*表示在起点(在本例中,在元素的左侧)画一个非填充圆,在终点画一个填充圆。请注意,如果从左到右画,这显然会被翻转。在线i_=text中间放置一个表示电流的箭头,标记为text以下由于下划线,箭头会显示标签。默认情况下,标签会位于箭头上方 ( i=text),您也可以通过 明确地将某些内容放置在箭头上方i^=text

to[C,l_=$C_{E1}$,-*,i^>=$i_{e1}$]

绘制一个电容器,标有$C_{E1}$。默认情况下,标签将放在电容器的右侧(或者,对于TikZ,是“上方”),因为在这种情况下我们从上到下绘制。我们通过在 之前放置下划线将其放在左侧=,如上所示。还要注意,对于左侧电容器,我们也将标签放在元素的“下方”,但由于在这种情况下我们从下到上绘制,因此标签最终位于右侧。

与 相同short,我们添加一个电流通孔i^>=$i_{e1}$^将标签放在右侧(如上所述,但并非严格需要),>指示箭头的方向,顺序^>表示电流箭头应在电容器之后绘制(而>^在本例中将箭头放在电容器 CE1 上方)。另请参阅这个答案

如果你想知道这到底to[]是什么:这是一个 TikZ 操作符。它基本上是--路径操作符(只画一条线)的花哨版本,允许更多自定义。请参阅 PGF 手册中的第 14.13 节,其当前版本在第 157 页。

相关内容