绘制 MOSFET 体二极管虚线

绘制 MOSFET 体二极管虚线

我需要绘制电路中的多级电流,这涉及 MOSFET,电流通过其通道或体二极管。当电流通过通道时,我希望用实线绘制 FET,用虚线绘制体二极管,反之亦然。

我知道我可以分别绘制 MOSFET 和二极管,但我认为这会花费更多时间。有没有办法让标签bodydiode拥有自己的线条样式?

说清楚一点,我想要这样的东西:

在此处输入图片描述

但是,上面的图片是用单独的组件制作的。我想要这种组件:

在此处输入图片描述

\documentclass[12pt]{report}
\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{circuitikz}
\draw (0,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_1$};
\end{circuitikz}

\end{document}

答案1

更新2022 年 9 月 9 日)我为下一个版本 1.5.4 添加了体二极管样式选项。您可以在此处预览:https://github.com/circuitikz/circuitikz/pull/651

对于 <1.5.4 的版本,您可以使用以下代码来修补体二极管绘图代码:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usepackage{etoolbox}
\def\bodydiodehook{\relax}
\tikzset{bodydiode hook/.store in=\bodydiodehook}
\patchcmd{\drawbodydiode}
    {\pgfscope}{\bodydiodehook\pgfscope}
    {}{\fail}
\begin{document}
\begin{tikzpicture}[]
    \draw (0,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_1$};
    \draw[densely dashed]  (2,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_2$};
    \draw (4,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_A$};
    \draw (0,-2) node (mosfet1) [nigfete,anchor=D,bodydiode, bodydiode hook={\pgfsetdash{{1pt}{1pt}}{0pt}}] {$Q_3$};
    \draw[densely dashed]  (2,-2) node (mosfet1) [nigfete,anchor=D,bodydiode, bodydiode hook={\pgfsetdash{}{0pt}}] {$Q_4$};
    \draw (4,-2) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_B$};
    \path (5,0);% for the bounding box
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容