\def\pgfcircversion{0.8.3} \def\pgfcircversiondate{2017/05/28} \writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion} \usemodule[tikz] \startmodule[circuitikzgit-0.8.3] \usetikzlibrary[calc] \usetikzlibrary[arrows] \unprotect \edef\tikzatcode{\the\catcode`\@} \edef\tikzbarcode{\the\catcode`\|} \edef\tikzexclaimcode{\the\catcode`\!} \catcode`\@=11 \catcode`\|=12 \catcode`\!=12 %%%%%%%%%%% Springe nach tex/pgfcirc.defines %%%---------- open: tex/pgfcirc.defines.tex %% Options %%%%%%%%%%%% %% Dimensions % coordinates \newdimen\pgf@circ@res@up \newdimen\pgf@circ@res@down \newdimen\pgf@circ@res@zero \newdimen\pgf@circ@res@left \newdimen\pgf@circ@res@right \newdimen\pgf@circ@res@other \newdimen\pgf@circ@res@step \newdimen\pgf@circ@res@temp % inital thickness \newdimen \pgfstartlinewidth %% Keys \long\def\pgf@circ@comment#1{} \def\circuitikzbasekey{/tikz/circuitikz} \pgfkeys{\circuitikzbasekey/.is family} \def\circuitikzset#1{\pgfkeys{\circuitikzbasekey,#1}} \let\ctikzset\circuitikzset \def\ctikzvalof#1{\pgfkeysvalueof{\circuitikzbasekey/#1}} \def\ctikzsetvalof#1#2{\pgfkeyssetvalue{\circuitikzbasekey/#1}{#2}} \newif\ifpgf@circ@siunitx \newif\ifpgf@circuit@compat \newif\ifpgf@circ@oldvoltagedirection % Option ">" for twoports \newif\ifpgf@circuit@inputarrow \ctikzset{>/.add code={}{\pgf@circuit@inputarrowtrue}} \ctikzset{inputarrow/.is choice} \ctikzset{inputarrow/true/.code={\pgf@circuit@inputarrowtrue}} \ctikzset{inputarrow/false/.code={\pgf@circuit@inputarrowfalse}} % Option "boxed" for nodes and twoports \newif\ifpgf@circuit@boxed \pgfkeys{/tikz/boxed/.add code={}{\pgf@circuit@boxedtrue}} \ctikzset{boxed/.add code={}{\pgf@circuit@boxedtrue}} \pgfkeys{/tikz/box/.add code={}{\pgf@circuit@boxedtrue}} \ctikzset{box/.add code={}{\pgf@circuit@boxedtrue}} % Option "dashed" for nodes and twoports \newif\ifpgf@circuit@dashed \pgfkeys{/tikz/dashed/.add code={}{\pgf@circuit@dashedtrue}} \ctikzset{dashed/.add code={}{\pgf@circuit@dashedtrue}} % Option "t=*" for nodes \pgfkeys{/tikz/t/.add code={}{\ctikzset{text=#1}}} \ctikzset{bipoles/.is family} \ctikzset{bipoles/border margin/.initial=1.1} \ctikzset{bipoles/thickness/.initial=2} \ctikzset{nodes width/.initial=.04} \newdimen\pgf@circ@Rlen \ctikzset{bipoles/length/.code={\pgf@circ@Rlen = #1}} \pgf@circ@Rlen = 1.4cm \ctikzset{monopoles/.is family} \ctikzset{monopoles/ground/width/.initial=.25} \ctikzset{monopoles/tground/thickness/.initial=3} \ctikzset{monopoles/vcc/width/.initial=.2} \ctikzset{monopoles/match/width/.initial=.4} \ctikzset{monopoles/chassis/width/.initial=.25} \ctikzset{monopoles/alternative chassis/width/.initial=.25} \ctikzset{monopoles/equipotentiality/width/.initial=.25} \ctikzset{monopoles/tlinestub/width/.initial=.25} \ctikzset{monopoles/antenna/width/.initial=.25} \ctikzset{monopoles/antenna/label/xanchor/.initial=.4} \ctikzset{monopoles/antenna/label/yanchor/.initial=.75} \ctikzset{monopoles/txantenna/label/xanchor/.initial=.4} \ctikzset{monopoles/txantenna/label/yanchor/.initial=.75} \ctikzset{monopoles/txantenna/width/.initial=.25} \ctikzset{monopoles/rxantenna/label/xanchor/.initial=.4} \ctikzset{monopoles/rxantenna/label/yanchor/.initial=.75} \ctikzset{monopoles/rxantenna/width/.initial=.25} \ctikzset{bipoles/resistor/height/.initial=.3} \ctikzset{bipoles/resistor/width/.initial=.8} \ctikzset{bipoles/potentiometer/height/.initial=.8} \ctikzset{bipoles/potentiometer/height 2/.initial=.3} \ctikzset{bipoles/potentiometer/width/.initial=.8} \ctikzset{bipoles/photoresistor/height/.initial=.6} \ctikzset{bipoles/photoresistor/height 2/.initial=.3} \ctikzset{bipoles/photoresistor/width/.initial=.8} \ctikzset{bipoles/thermistor/main/.initial=.7} \ctikzset{bipoles/thermistor/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorntc/width/.initial=.8} \ctikzset{bipoles/thermistorntc/main/.initial=.7} \ctikzset{bipoles/thermistorntc/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorntc/height 2/.initial=.75}%.3/.7 \ctikzset{bipoles/thermistorptc/width/.initial=.8} \ctikzset{bipoles/thermistorptc/main/.initial=.7} \ctikzset{bipoles/thermistorptc/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorptc/height 2/.initial=.75}%.3/.7 \ctikzset{bipoles/thermistor/width/.initial=.8} \ctikzset{bipoles/varistor/main/.initial=.7} \ctikzset{bipoles/varistor/height/.initial=.428}%.3/.7 \ctikzset{bipoles/varistor/width/.initial=.8} \ctikzset{bipoles/vresistor/height/.initial=.6} \ctikzset{bipoles/vresistor/width/.initial=.8} \ctikzset{bipoles/cuteinductor/height/.initial=.3} \ctikzset{bipoles/cuteinductor/lower coil height/.initial=.15} \ctikzset{bipoles/cuteinductor/width/.initial=.6} \ctikzset{bipoles/cuteinductor/coils/.initial=5} \ctikzset{bipoles/cuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil \ctikzset{bipoles/americaninductor/height/.initial=.3} \ctikzset{bipoles/americaninductor/height 2/.initial=.1} \ctikzset{bipoles/americaninductor/width/.initial=.8} \ctikzset{bipoles/americaninductor/coils/.initial=4} \ctikzset{bipoles/americaninductor/coil height/.initial=.15} \ctikzset{bipoles/vcuteinductor/height/.initial=.6} \ctikzset{bipoles/vcuteinductor/lower coil height/.initial=.3} \ctikzset{bipoles/vcuteinductor/width/.initial=.6} \ctikzset{bipoles/vcuteinductor/coils/.initial=5} \ctikzset{bipoles/vcuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil \ctikzset{bipoles/vamericaninductor/height/.initial=.6} \ctikzset{bipoles/vamericaninductor/height 2/.initial=.2} \ctikzset{bipoles/vamericaninductor/width/.initial=.8} \ctikzset{bipoles/vamericaninductor/coils/.initial=4} \ctikzset{bipoles/vamericaninductor/coil height/.initial=.15} \ctikzset{bipoles/esource/height/.initial=.60} \ctikzset{bipoles/esource/width/.initial=.60} \ctikzset{bipoles/pvsource/height/.initial=.60} \ctikzset{bipoles/pvsource/width/.initial=.60} \ctikzset{bipoles/isource/height/.initial=.60} \ctikzset{bipoles/isource/width/.initial=.60} \ctikzset{bipoles/oosource/height/.initial=.60} \ctikzset{bipoles/oosource/width/.initial=.60} \ctikzset{bipoles/oosource/circlesize/.initial=.65}%circlesize+circleoffset should be =1 \ctikzset{bipoles/oosource/circleoffset/.initial=.35}%circlesize+circleoffset should be =1 \ctikzset{bipoles/dcisource/height/.initial=.60} \ctikzset{bipoles/dcisource/width/.initial=.60} \ctikzset{bipoles/dcvsource/height/.initial=.60} \ctikzset{bipoles/dcvsource/width/.initial=.60} \ctikzset{bipoles/vsourcetri/height/.initial=.60} \ctikzset{bipoles/vsourcetri/width/.initial=.60} \ctikzset{bipoles/isourceam/height/.initial=.60} \ctikzset{bipoles/isourceam/width/.initial=.60} \ctikzset{bipoles/vsource/height/.initial=.60} \ctikzset{bipoles/vsource/width/.initial=.60} \ctikzset{bipoles/vsourceam/height/.initial=.60} \ctikzset{bipoles/vsourceam/width/.initial=.60} \ctikzset{bipoles/vsourceam/margin/.initial=.7} \ctikzset{bipoles/isourcesin/height/.initial=.60} \ctikzset{bipoles/isourcesin/width/.initial=.60} \ctikzset{bipoles/vsourcesin/height/.initial=.60} \ctikzset{bipoles/vsourcesin/width/.initial=.60} \ctikzset{bipoles/vsourcesquare/height/.initial=.60} \ctikzset{bipoles/vsourcesquare/width/.initial=.60} \ctikzset{bipoles/cisource/height/.initial=.7} \ctikzset{bipoles/cisource/width/.initial=.7} \ctikzset{bipoles/cisourceam/height/.initial=.7} \ctikzset{bipoles/cisourceam/width/.initial=.7} \ctikzset{bipoles/cvsource/height/.initial=.7} \ctikzset{bipoles/cvsource/width/.initial=.7} \ctikzset{bipoles/cvsourceam/height/.initial=.7} \ctikzset{bipoles/cvsourceam/width/.initial=.7} \ctikzset{bipoles/cvsourceam/margin/.initial=.7} \ctikzset{bipoles/cvsourceam/text scale/.initial=1} \ctikzset{bipoles/cisourcesin/width/.initial=.7} \ctikzset{bipoles/cvsourcesin/height/.initial=.7} \ctikzset{bipoles/cvsourcesin/width/.initial=.7} \ctikzset{bipoles/capacitor/height/.initial=.6} \ctikzset{bipoles/capacitor/width/.initial=.2} \ctikzset{bipoles/ecapacitor/height/.initial=.5} \ctikzset{bipoles/ecapacitor/width/.initial=.2} \ctikzset{bipoles/ecapacitor/font/.initial= \fontsize{6}{0}\selectfont\boldmath} \ctikzset{bipoles/pcapacitor/height/.initial=.6} \ctikzset{bipoles/pcapacitor/width/.initial=.2} \ctikzset{bipoles/pcapacitor/bend width/.initial=1.1} \ctikzset{bipoles/vcapacitor/height/.initial=.6} \ctikzset{bipoles/vcapacitor/width/.initial=.5} \ctikzset{bipoles/vcapacitor/capacitor width/.initial=.4} \ctikzset{bipoles/piezoelectric/height/.initial=.7} \ctikzset{bipoles/piezoelectric/width/.initial=.5} \ctikzset{bipoles/battery/height/.initial=.6} \ctikzset{bipoles/battery/width/.initial=.3} \ctikzset{bipoles/battery1/height/.initial=.6} \ctikzset{bipoles/battery1/width/.initial=.3} \ctikzset{bipoles/battery2/height/.initial=.6} \ctikzset{bipoles/battery2/width/.initial=.3} \ctikzset{bipoles/diode/height/.initial=.50} \ctikzset{bipoles/diode/width/.initial=.40} \ctikzset{bipoles/varcap/height/.initial=.50} \ctikzset{bipoles/varcap/width/.initial=.45} \ctikzset{bipoles/spst/height/.initial=.35} \ctikzset{bipoles/spst/width/.initial=.35} \ctikzset{bipoles/spst/depth/.initial=.2} \ctikzset{bipoles/nos/height/.initial=.3} \ctikzset{bipoles/nos/width/.initial=.35} \ctikzset{bipoles/ncs/height/.initial=.35} \ctikzset{bipoles/ncs/width/.initial=.35} \ctikzset{bipoles/generic/height/.initial=.30} \ctikzset{bipoles/generic/width/.initial=.80} \ctikzset{bipoles/european gas filled surge arrester/height/.initial=.30} \ctikzset{bipoles/european gas filled surge arrester/width/.initial=.80} \ctikzset{bipoles/european gas filled surge arrester/inside/.initial=.30} \ctikzset{bipoles/american gas filled surge arrester/height/.initial=.60} \ctikzset{bipoles/american gas filled surge arrester/width/.initial=.60} \ctikzset{bipoles/american gas filled surge arrester/inside/.initial=.15} \ctikzset{bipoles/american gas filled surge arrester/dot x/.initial=.25} \ctikzset{bipoles/american gas filled surge arrester/dot y/.initial=.45} \ctikzset{bipoles/american gas filled surge arrester/size/.initial=.1} \ctikzset{bipoles/fuse/height/.initial=.20} \ctikzset{bipoles/fuse/width/.initial=.50} \ctikzset{bipoles/afuse/height/.initial=.20} \ctikzset{bipoles/afuse/width/.initial=.50} \ctikzset{bipoles/generic potentiometer/height/.initial=.80} \ctikzset{bipoles/generic potentiometer/height 2/.initial=.30} \ctikzset{bipoles/generic potentiometer/width/.initial=.80} \ctikzset{bipoles/ageneric/height/.initial=.30} \ctikzset{bipoles/ageneric/width/.initial=.80} \ctikzset{bipoles/memristor/height/.initial=.30} \ctikzset{bipoles/memristor/wave height/.initial=.5} \ctikzset{bipoles/memristor/width/.initial=.80} \ctikzset{bipoles/tgeneric/height/.initial=.70} \ctikzset{bipoles/tgeneric/width/.initial=.80} \ctikzset{bipoles/tfullgeneric/height/.initial=.70} \ctikzset{bipoles/tfullgeneric/width/.initial=.80} \ctikzset{bipoles/fullgeneric/height/.initial=.30} \ctikzset{bipoles/fullgeneric/width/.initial=.80} \ctikzset{bipoles/open/height/.initial=.3} %necessary for curly voltages \ctikzset{bipoles/open/width/.initial=.3} %necessary for curly voltages \ctikzset{bipoles/open/voltage/straight label distance/.initial=0} \ctikzset{bipoles/open/voltage/distance from node/.initial=.2} \ctikzset{bipoles/short/height/.initial=0} %dummy height for voltage positioning \ctikzset{bipoles/short/width/.initial=0} %dummy width for voltage positioning %\ctikzset{bipoles/short/voltage/straight label distance/.initial=.2} %\ctikzset{bipoles/short/voltage/distance from node/.initial=.5} \ctikzset{bipoles/ammeter/height/.initial=.60} \ctikzset{bipoles/ammeter/width/.initial=.60} \ctikzset{bipoles/ohmmeter/height/.initial=.60} \ctikzset{bipoles/ohmmeter/width/.initial=.60} \ctikzset{bipoles/voltmeter/height/.initial=.60} \ctikzset{bipoles/voltmeter/width/.initial=.60} \ctikzset{bipoles/buffer/height/.initial=1} \ctikzset{bipoles/buffer/width/.initial=1} \ctikzset{bipoles/not port/width/.initial=1} \ctikzset{bipoles/not port/height/.initial=.8} \ctikzset{bipoles/not port/circle width/.initial=.15} \ctikzset{bipoles/lamp/height/.initial=.60} \ctikzset{bipoles/lamp/width/.initial=.60} \ctikzset{bipoles/tline/height/.initial=.3} \ctikzset{bipoles/tline/width/.initial=.8} \ctikzset{bipoles/squid/height/.initial=.60} \ctikzset{bipoles/squid/width/.initial=.60} \ctikzset{bipoles/barrier/height/.initial=.60} \ctikzset{bipoles/barrier/width/.initial=.60} \ctikzset{bipoles/thermocouple/height/.initial=.250} \ctikzset{bipoles/thermocouple/height 2/.initial=.60} \ctikzset{bipoles/thermocouple/width/.initial=.140} \ctikzset{bipoles/pushbutton/height/.initial=.5} \ctikzset{bipoles/pushbutton/height 2/.initial=.0} \ctikzset{bipoles/pushbutton/width/.initial=.50} \ctikzset{bipoles/twoport/width/.initial=.7} \ctikzset{bipoles/twoport/height/.initial=.7} \ctikzset{bipoles/twoport/text/.initial=} \ctikzset{bipoles/vco/width/.initial=.7} \ctikzset{bipoles/bandpass/width/.initial=.7} \ctikzset{bipoles/bandstop/width/.initial=.7} \ctikzset{bipoles/highpass/width/.initial=.7} \ctikzset{bipoles/lowpass/width/.initial=.7} \ctikzset{bipoles/adc/width/.initial=.7} \ctikzset{bipoles/dac/width/.initial=.7} \ctikzset{bipoles/dsp/width/.initial=.7} \ctikzset{bipoles/fft/width/.initial=.7} \ctikzset{bipoles/amp/width/.initial=.7} \ctikzset{bipoles/vamp/width/.initial=.7} \ctikzset{bipoles/piattenuator/width/.initial=.7} \ctikzset{bipoles/vpiattenuator/width/.initial=.7} \ctikzset{bipoles/tattenuator/width/.initial=.7} \ctikzset{bipoles/vtattenuator/width/.initial=.7} \ctikzset{bipoles/phaseshifter/width/.initial=.7} \ctikzset{bipoles/vphaseshifter/width/.initial=.7} \ctikzset{bipoles/detector/width/.initial=.7} \newif\ifpgf@circuit@trans@depletiontype \pgf@circuit@trans@depletiontypefalse \newif\ifpgf@circuit@mos@arrows \ctikzset{tripoles/mos style/.is choice} \ctikzset{tripoles/mos style/no arrows/.code={\pgf@circuit@mos@arrowsfalse}} \ctikzset{tripoles/mos style/arrows/.code={\pgf@circuit@mos@arrowstrue}} % Option solderdot for fet \newif\ifpgf@circuit@fet@solderdot \pgfkeys{/tikz/solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}} \ctikzset{solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}} \pgfkeys{/tikz/nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}} \ctikzset{nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}} % Option bodydiode for fet \newif\ifpgf@circuit@fet@bodydiode \pgfkeys{/tikz/bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}} \ctikzset{bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}} \pgfkeys{/tikz/nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}} \ctikzset{nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}} % Option draw fet without gate connection \newif\ifpgf@circuit@bpt@drawgate \pgf@circuit@bpt@drawgatetrue \pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}} \ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}} \pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}} \ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}} % Option draw bpt without base connection \newif\ifpgf@circuit@bpt@drawbase \pgf@circuit@bpt@drawbasetrue \pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}} \ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}} \pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}} \ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}} % Option draw bpt with optical input \newif\ifpgf@circuit@bpt@drawphoto \pgf@circuit@bpt@drawphotofalse \pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}} \ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}} \pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}} \ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}} % Option draw pmos with empty circle \newif\ifpgf@circuit@pmos@emptycircle \newif\ifpgf@circuit@pmos@emptycircle \pgf@circuit@pmos@emptycirclefalse \pgfkeys{/tikz/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}} \ctikzset{tripoles/pmos style/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}} \newif\ifpgf@circuit@trans@ntype \pgf@circuit@trans@ntypetrue %default true %\newif\ifpgf@circuit@trans@ptype %\ctikzset{tripoles/nmos/.add code={\pgf@circuit@trans@ntypetrue}} \ctikzset{tripoles/nmos/width/.initial=.7} \ctikzset{tripoles/nmos/gate height/.initial=.35} \ctikzset{tripoles/nmos/base height/.initial=.5} \ctikzset{tripoles/nmos/conn height/.initial=0} \ctikzset{tripoles/nmos/height/.initial=1.1} \ctikzset{tripoles/nmos/base width/.initial=.5} \ctikzset{tripoles/nmos/gate width/.initial=.62} \ctikzset{tripoles/nmos/bodydiode scale/.initial=.3} \ctikzset{tripoles/nmos/bodydiode distance/.initial=.3} \ctikzset{tripoles/nmos/bodydiode conn/.initial=.6} \ctikzset{tripoles/nmos/curr direction/.initial=1} \ctikzset{tripoles/pmos/width/.initial=.7} \ctikzset{tripoles/pmos/gate height/.initial=.35} \ctikzset{tripoles/pmos/base height/.initial=.5} \ctikzset{tripoles/pmos/conn height/.initial=0} \ctikzset{tripoles/pmos/height/.initial=1.1} \ctikzset{tripoles/pmos/base width/.initial=.5} \ctikzset{tripoles/pmos/gate width/.initial=.62} \ctikzset{tripoles/pmos/bodydiode scale/.initial=.3} \ctikzset{tripoles/pmos/bodydiode distance/.initial=.3} \ctikzset{tripoles/pmos/bodydiode conn/.initial=.6} \ctikzset{tripoles/pmos/curr direction/.initial=-1} \ctikzset{tripoles/nfet/width/.initial=.7} \ctikzset{tripoles/nfet/gate height/.initial=.35} \ctikzset{tripoles/nfet/base height/.initial=.5} \ctikzset{tripoles/nfet/conn height/.initial=0} \ctikzset{tripoles/nfet/height/.initial=1.1} \ctikzset{tripoles/nfet/base width/.initial=.5} \ctikzset{tripoles/nfet/gate width/.initial=.62} \ctikzset{tripoles/nfet/bodydiode scale/.initial=.3} \ctikzset{tripoles/nfet/bodydiode distance/.initial=.3} \ctikzset{tripoles/nfet/bodydiode conn/.initial=.6} \ctikzset{tripoles/nfet/curr direction/.initial=1} \ctikzset{tripoles/pfet/width/.initial=.7} \ctikzset{tripoles/pfet/gate height/.initial=.35} \ctikzset{tripoles/pfet/base height/.initial=.5} \ctikzset{tripoles/pfet/conn height/.initial=0} \ctikzset{tripoles/pfet/height/.initial=1.1} \ctikzset{tripoles/pfet/base width/.initial=.5} \ctikzset{tripoles/pfet/gate width/.initial=.62} \ctikzset{tripoles/pfet/bodydiode scale/.initial=.3} \ctikzset{tripoles/pfet/bodydiode distance/.initial=.3} \ctikzset{tripoles/pfet/bodydiode conn/.initial=.6} \ctikzset{tripoles/pfet/curr direction/.initial=-1} \ctikzset{tripoles/nigfete/width/.initial=.7} \ctikzset{tripoles/nigfete/gate height/.initial=.35} \ctikzset{tripoles/nigfete/base height/.initial=.5} \ctikzset{tripoles/nigfete/conn height/.initial=.35} \ctikzset{tripoles/nigfete/height/.initial=1.1} \ctikzset{tripoles/nigfete/base width/.initial=.5} \ctikzset{tripoles/nigfete/gate width/.initial=.62} \ctikzset{tripoles/nigfete/bodydiode scale/.initial=.3} \ctikzset{tripoles/nigfete/bodydiode distance/.initial=.3} \ctikzset{tripoles/nigfete/bodydiode conn/.initial=.6} \ctikzset{tripoles/nigfete/curr direction/.initial=1} \ctikzset{tripoles/nigfetd/width/.initial=.7} \ctikzset{tripoles/nigfetd/gate height/.initial=.35} \ctikzset{tripoles/nigfetd/base height/.initial=.5} \ctikzset{tripoles/nigfetd/conn height/.initial=.35} \ctikzset{tripoles/nigfetd/height/.initial=1.1} \ctikzset{tripoles/nigfetd/base width/.initial=.5} \ctikzset{tripoles/nigfetd/gate width/.initial=.62} \ctikzset{tripoles/nigfetd/bodydiode scale/.initial=.3} \ctikzset{tripoles/nigfetd/bodydiode distance/.initial=.3} \ctikzset{tripoles/nigfetd/bodydiode conn/.initial=.6} \ctikzset{tripoles/nigfetd/curr direction/.initial=1} \ctikzset{tripoles/nigfetebulk/width/.initial=.7} \ctikzset{tripoles/nigfetebulk/gate height/.initial=.35} \ctikzset{tripoles/nigfetebulk/base height/.initial=.5} \ctikzset{tripoles/nigfetebulk/conn height/.initial=.35} \ctikzset{tripoles/nigfetebulk/height/.initial=1.1} \ctikzset{tripoles/nigfetebulk/base width/.initial=.5} \ctikzset{tripoles/nigfetebulk/gate width/.initial=.62} \ctikzset{tripoles/nigfetebulk/bodydiode scale/.initial=.3} \ctikzset{tripoles/nigfetebulk/bodydiode distance/.initial=.3} \ctikzset{tripoles/nigfetebulk/bodydiode conn/.initial=.6} \ctikzset{tripoles/nigfetebulk/curr direction/.initial=1} \ctikzset{tripoles/pigfete/width/.initial=.7} \ctikzset{tripoles/pigfete/gate height/.initial=.35} \ctikzset{tripoles/pigfete/base height/.initial=.5} \ctikzset{tripoles/pigfete/conn height/.initial=.35} \ctikzset{tripoles/pigfete/height/.initial=1.1} \ctikzset{tripoles/pigfete/base width/.initial=.5} \ctikzset{tripoles/pigfete/gate width/.initial=.62} \ctikzset{tripoles/pigfete/bodydiode scale/.initial=.3} \ctikzset{tripoles/pigfete/bodydiode distance/.initial=.3} \ctikzset{tripoles/pigfete/bodydiode conn/.initial=.6} \ctikzset{tripoles/pigfete/curr direction/.initial=-1} \ctikzset{tripoles/pigfetd/width/.initial=.7} \ctikzset{tripoles/pigfetd/gate height/.initial=.35} \ctikzset{tripoles/pigfetd/base height/.initial=.5} \ctikzset{tripoles/pigfetd/conn height/.initial=.35} \ctikzset{tripoles/pigfetd/height/.initial=1.1} \ctikzset{tripoles/pigfetd/base width/.initial=.5} \ctikzset{tripoles/pigfetd/gate width/.initial=.62} \ctikzset{tripoles/pigfetd/bodydiode scale/.initial=.3} \ctikzset{tripoles/pigfetd/bodydiode distance/.initial=.3} \ctikzset{tripoles/pigfetd/bodydiode conn/.initial=.6} \ctikzset{tripoles/pigfetd/curr direction/.initial=-1} \ctikzset{tripoles/pigfetebulk/width/.initial=.7} \ctikzset{tripoles/pigfetebulk/gate height/.initial=.35} \ctikzset{tripoles/pigfetebulk/conn height/.initial=.35} \ctikzset{tripoles/pigfetebulk/base height/.initial=.5} \ctikzset{tripoles/pigfetebulk/height/.initial=1.1} \ctikzset{tripoles/pigfetebulk/base width/.initial=.5} \ctikzset{tripoles/pigfetebulk/gate width/.initial=.62} \ctikzset{tripoles/pigfetebulk/bodydiode scale/.initial=.3} \ctikzset{tripoles/pigfetebulk/bodydiode distance/.initial=.3} \ctikzset{tripoles/pigfetebulk/bodydiode conn/.initial=.6} \ctikzset{tripoles/pigfetebulk/curr direction/.initial=-1} \ctikzset{tripoles/npn/width/.initial=.6} \ctikzset{tripoles/npn/base height/.initial=.45} \ctikzset{tripoles/npn/base height 2/.initial=.15} \ctikzset{tripoles/npn/base height/.initial=.4} \ctikzset{tripoles/npn/conn height/.initial=0} \ctikzset{tripoles/npn/height/.initial=1.1} \ctikzset{tripoles/npn/base width/.initial=.5} \ctikzset{tripoles/npn/bodydiode scale/.initial=.3} \ctikzset{tripoles/npn/bodydiode distance/.initial=.3} \ctikzset{tripoles/npn/bodydiode conn/.initial=.6} \ctikzset{tripoles/npn/curr direction/.initial=1} \ctikzset{tripoles/pnp/width/.initial=.6} \ctikzset{tripoles/pnp/base height/.initial=.45} \ctikzset{tripoles/pnp/base height 2/.initial=.15} \ctikzset{tripoles/pnp/base height/.initial=.4} \ctikzset{tripoles/pnp/conn height/.initial=0} \ctikzset{tripoles/pnp/height/.initial=1.1} \ctikzset{tripoles/pnp/base width/.initial=.5} \ctikzset{tripoles/pnp/bodydiode scale/.initial=.3} \ctikzset{tripoles/pnp/bodydiode distance/.initial=.3} \ctikzset{tripoles/pnp/bodydiode conn/.initial=.6} \ctikzset{tripoles/pnp/curr direction/.initial=-1} \ctikzset{tripoles/pigbt/width/.initial=.6} \ctikzset{tripoles/pigbt/gate height/.initial=.45} \ctikzset{tripoles/pigbt/gate height 2/.initial=.15} \ctikzset{tripoles/pigbt/base height/.initial=.4} \ctikzset{tripoles/pigbt/conn height/.initial=0} \ctikzset{tripoles/pigbt/height/.initial=1.1} \ctikzset{tripoles/pigbt/gate width/.initial=.62} \ctikzset{tripoles/pigbt/base width/.initial=.5} \ctikzset{tripoles/pigbt/bodydiode scale/.initial=.3} \ctikzset{tripoles/pigbt/bodydiode distance/.initial=.3} \ctikzset{tripoles/pigbt/bodydiode conn/.initial=.6} \ctikzset{tripoles/pigbt/curr direction/.initial=-1} \ctikzset{tripoles/nigbt/width/.initial=.6} \ctikzset{tripoles/nigbt/gate height/.initial=.45} \ctikzset{tripoles/nigbt/gate height 2/.initial=.15} \ctikzset{tripoles/nigbt/base height/.initial=.4} \ctikzset{tripoles/nigbt/conn height/.initial=0} \ctikzset{tripoles/nigbt/height/.initial=1.1} \ctikzset{tripoles/nigbt/gate width/.initial=.62} \ctikzset{tripoles/nigbt/base width/.initial=.5} \ctikzset{tripoles/nigbt/bodydiode scale/.initial=.3} \ctikzset{tripoles/nigbt/bodydiode distance/.initial=.3} \ctikzset{tripoles/nigbt/bodydiode conn/.initial=.6} \ctikzset{tripoles/nigbt/curr direction/.initial=1} \ctikzset{tripoles/Lpigbt/width/.initial=.6} \ctikzset{tripoles/Lpigbt/gate height/.initial=.45} \ctikzset{tripoles/Lpigbt/gate height 2/.initial=.15} \ctikzset{tripoles/Lpigbt/base height/.initial=.4} \ctikzset{tripoles/Lpigbt/conn height/.initial=.4} \ctikzset{tripoles/Lpigbt/height/.initial=1.1} \ctikzset{tripoles/Lpigbt/gate width/.initial=.62} \ctikzset{tripoles/Lpigbt/base width/.initial=.5} \ctikzset{tripoles/Lpigbt/bodydiode scale/.initial=.3} \ctikzset{tripoles/Lpigbt/bodydiode distance/.initial=.3} \ctikzset{tripoles/Lpigbt/bodydiode conn/.initial=.6} \ctikzset{tripoles/Lpigbt/curr direction/.initial=-1} \ctikzset{tripoles/Lnigbt/width/.initial=.6} \ctikzset{tripoles/Lnigbt/gate height/.initial=.45} \ctikzset{tripoles/Lnigbt/gate height 2/.initial=.15} \ctikzset{tripoles/Lnigbt/base height/.initial=.4} \ctikzset{tripoles/Lnigbt/conn height/.initial=.4} \ctikzset{tripoles/Lnigbt/height/.initial=1.1} \ctikzset{tripoles/Lnigbt/gate width/.initial=.62} \ctikzset{tripoles/Lnigbt/base width/.initial=.5} \ctikzset{tripoles/Lnigbt/bodydiode scale/.initial=.3} \ctikzset{tripoles/Lnigbt/bodydiode distance/.initial=.3} \ctikzset{tripoles/Lnigbt/bodydiode conn/.initial=.6} \ctikzset{tripoles/Lnigbt/curr direction/.initial=1} \ctikzset{tripoles/njfet/width/.initial=.7} \ctikzset{tripoles/njfet/gate height/.initial=.5} \ctikzset{tripoles/njfet/gate height 2/.initial=.35} \ctikzset{tripoles/njfet/gate width/.initial=.5} \ctikzset{tripoles/njfet/conn height/.initial=.35} \ctikzset{tripoles/njfet/height/.initial=1.1} \ctikzset{tripoles/njfet/bodydiode scale/.initial=.3} \ctikzset{tripoles/njfet/bodydiode distance/.initial=.3} \ctikzset{tripoles/njfet/bodydiode conn/.initial=.6} \ctikzset{tripoles/njfet/curr direction/.initial=1} \ctikzset{tripoles/pjfet/width/.initial=.7} \ctikzset{tripoles/pjfet/gate height/.initial=.5} \ctikzset{tripoles/pjfet/gate height 2/.initial=.35} \ctikzset{tripoles/pjfet/gate width/.initial=.5} \ctikzset{tripoles/pjfet/conn height/.initial=.35} \ctikzset{tripoles/pjfet/height/.initial=1.1} \ctikzset{tripoles/pjfet/bodydiode scale/.initial=.3} \ctikzset{tripoles/pjfet/bodydiode distance/.initial=.3} \ctikzset{tripoles/pjfet/bodydiode conn/.initial=.6} \ctikzset{tripoles/pjfet/curr direction/.initial=-1} \ctikzset{tripoles/isfet/width/.initial=1} \ctikzset{tripoles/isfet/gate height/.initial=.35} \ctikzset{tripoles/isfet/base height/.initial=.5} \ctikzset{tripoles/isfet/height/.initial=1.1} \ctikzset{tripoles/isfet/base width/.initial=.3} \ctikzset{tripoles/isfet/gate width/.initial=.5} \ctikzset{tripoles/isfet/conn height/.initial=0} \ctikzset{tripoles/isfet/wave width/.initial=.16} \ctikzset{tripoles/isfet/wave amp/.initial=.06} \ctikzset{tripoles/isfet/waves y sep/.initial=.22} \ctikzset{tripoles/isfet/waves x sep/.initial=.8} \ctikzset{tripoles/isfet/bodydiode scale/.initial=.3} \ctikzset{tripoles/isfet/bodydiode distance/.initial=.3} \ctikzset{tripoles/isfet/bodydiode conn/.initial=.6} \ctikzset{tripoles/isfet/curr direction/.initial=1} \newif\ifpgf@circuit@europeanlogicport \ctikzset{logic ports/.is choice} \ctikzset{logic ports/european/.code= {\pgf@circuit@europeanlogicporttrue } } \ctikzset{logic ports/american/.code= {\pgf@circuit@europeanlogicportfalse } } \ctikzset{tripoles/american and port/width/.initial=1.1} \ctikzset{tripoles/american and port/height/.initial=.8} \ctikzset{tripoles/american and port/port width/.initial=.7} \ctikzset{tripoles/american and port/input height/.initial=.5} \ctikzset{tripoles/american nand port/width/.initial=1.1} \ctikzset{tripoles/american nand port/height/.initial=.8} \ctikzset{tripoles/american nand port/port width/.initial=.7} \ctikzset{tripoles/american nand port/circle width/.initial=.15} \ctikzset{tripoles/american nand port/input height/.initial=.5} \ctikzset{tripoles/american or port/width/.initial=1.1} \ctikzset{tripoles/american or port/height/.initial=.8} \ctikzset{tripoles/american or port/port width/.initial=.7} \ctikzset{tripoles/american or port/input height/.initial=.5} \ctikzset{tripoles/american or port/input skip/.initial=.25} \ctikzset{tripoles/american or port/aaa/.initial=.6} \ctikzset{tripoles/american or port/bbb/.initial=.4} \ctikzset{tripoles/american or port/ccc/.initial=.5} \ctikzset{tripoles/american or port/ddd/.initial=.0} \ctikzset{tripoles/american nor port/width/.initial=1.1} \ctikzset{tripoles/american nor port/height/.initial=.8} \ctikzset{tripoles/american nor port/port width/.initial=.7} \ctikzset{tripoles/american nor port/input height/.initial=.5} \ctikzset{tripoles/american nor port/input skip/.initial=.25} \ctikzset{tripoles/american nor port/circle width/.initial=.15} \ctikzset{tripoles/american nor port/aaa/.initial=.6} \ctikzset{tripoles/american nor port/bbb/.initial=.4} \ctikzset{tripoles/american nor port/ccc/.initial=.5} \ctikzset{tripoles/american nor port/ddd/.initial=.0} \ctikzset{tripoles/american xor port/width/.initial=1.1} \ctikzset{tripoles/american xor port/height/.initial=.8} \ctikzset{tripoles/american xor port/port width/.initial=.7} \ctikzset{tripoles/american xor port/input height/.initial=.5} \ctikzset{tripoles/american xor port/input skip/.initial=.15} \ctikzset{tripoles/american xor port/distance/.initial=.1} \ctikzset{tripoles/american xor port/aaa/.initial=.6} \ctikzset{tripoles/american xor port/bbb/.initial=.4} \ctikzset{tripoles/american xor port/ccc/.initial=.5} \ctikzset{tripoles/american xor port/ddd/.initial=.0} \ctikzset{tripoles/american xnor port/width/.initial=1.1} \ctikzset{tripoles/american xnor port/height/.initial=.8} \ctikzset{tripoles/american xnor port/port width/.initial=.7} \ctikzset{tripoles/american xnor port/input height/.initial=.5} \ctikzset{tripoles/american xnor port/input skip/.initial=.15} \ctikzset{tripoles/american xnor port/distance/.initial=.1} \ctikzset{tripoles/american xnor port/aaa/.initial=.6} \ctikzset{tripoles/american xnor port/bbb/.initial=.4} \ctikzset{tripoles/american xnor port/ccc/.initial=.5} \ctikzset{tripoles/american xnor port/ddd/.initial=.0} \ctikzset{tripoles/american xnor port/circle width/.initial=.15} \ctikzset{tripoles/european and port/width/.initial=1.4} \ctikzset{tripoles/european and port/height/.initial=.65} \ctikzset{tripoles/european and port/reserved/.initial=.6} \ctikzset{tripoles/european and port/input height/.initial=.6} \ctikzset{tripoles/european or port/width/.initial=1.4} \ctikzset{tripoles/european or port/height/.initial=.65} \ctikzset{tripoles/european or port/reserved/.initial=.6} \ctikzset{tripoles/european or port/input height/.initial=.6} \ctikzset{tripoles/european xor port/width/.initial=1.4} \ctikzset{tripoles/european xor port/height/.initial=.65} \ctikzset{tripoles/european xor port/reserved/.initial=.6} \ctikzset{tripoles/european xor port/input height/.initial=.6} \ctikzset{tripoles/european nand port/width/.initial=1.4} \ctikzset{tripoles/european nand port/not height/.initial=.3} \ctikzset{tripoles/european nand port/not width/.initial=.8} \ctikzset{tripoles/european nand port/height/.initial=.65} \ctikzset{tripoles/european nand port/reserved/.initial=.6} \ctikzset{tripoles/european nand port/input height/.initial=.6} \ctikzset{tripoles/european not port/width/.initial=1.4} \ctikzset{tripoles/european not port/not height/.initial=.3} \ctikzset{tripoles/european not port/not width/.initial=.8} \ctikzset{tripoles/european not port/height/.initial=.65} \ctikzset{tripoles/european not port/reserved/.initial=.6} \ctikzset{tripoles/european not port/input height/.initial=0} \ctikzset{tripoles/european xnor port/width/.initial=1.4} \ctikzset{tripoles/european xnor port/not height/.initial=.3} \ctikzset{tripoles/european xnor port/not width/.initial=.8} \ctikzset{tripoles/european xnor port/height/.initial=.65} \ctikzset{tripoles/european xnor port/reserved/.initial=.6} \ctikzset{tripoles/european xnor port/input height/.initial=.6} \ctikzset{tripoles/european nor port/width/.initial=1.4} \ctikzset{tripoles/european nor port/not height/.initial=.3} \ctikzset{tripoles/european nor port/not width/.initial=.8} \ctikzset{tripoles/european nor port/height/.initial=.65} \ctikzset{tripoles/european nor port/reserved/.initial=.6} \ctikzset{tripoles/european nor port/input height/.initial=.6} \ctikzset{tripoles/op amp/width/.initial=1.7} \ctikzset{tripoles/op amp/port width/.initial=.7} \ctikzset{tripoles/op amp/height/.initial=1.4} \ctikzset{tripoles/op amp/input height/.initial=.5} \ctikzset{tripoles/op amp/up pos/.initial=.45} \ctikzset{tripoles/op amp/font/.initial= \fontsize{10}{0}\selectfont\boldmath}%absolut font size needed! \ctikzset{tripoles/en amp/width/.initial=1.7} \ctikzset{tripoles/en amp/port width/.initial=.7} \ctikzset{tripoles/en amp/height/.initial=1.6} \ctikzset{tripoles/en amp/input height/.initial=.3} \ctikzset{tripoles/en amp/up pos/.initial=.45} \ctikzset{tripoles/en amp/font/.initial= \fontsize{10}{0}\selectfont\boldmath}%absolut font size needed! \ctikzset{tripoles/en amp/font2/.initial= \fontsize{14}{0}\selectfont\boldmath}%absolut font size needed! \ctikzset{tripoles/gm amp/width/.initial=1.7} \ctikzset{tripoles/gm amp/port width/.initial=.7} \ctikzset{tripoles/gm amp/height/.initial=1.4} \ctikzset{tripoles/gm amp/input height/.initial=.5} \ctikzset{tripoles/gm amp/up pos/.initial=.45} \ctikzset{tripoles/plain amp/width/.initial=1.7} \ctikzset{tripoles/plain amp/port width/.initial=.7} \ctikzset{tripoles/plain amp/height/.initial=1.4} \ctikzset{tripoles/plain amp/input height/.initial=.5} \ctikzset{tripoles/plain amp/up pos/.initial=.45} \ctikzset{tripoles/thyristor/height/.initial=1.10} \ctikzset{tripoles/thyristor/height 2/.initial=.5} \ctikzset{tripoles/thyristor/width/.initial=1.0} \ctikzset{tripoles/thyristor/diode height/.initial=.5} \ctikzset{tripoles/thyristor/diode width left/.initial=.4} \ctikzset{tripoles/thyristor/diode width right/.initial=.3} \ctikzset{tripoles/triac/height/.initial=1.1} \ctikzset{tripoles/triac/width/.initial=1} \ctikzset{tripoles/triac/diode width left/.initial=.3} \ctikzset{tripoles/triac/diode width right/.initial=.3} \ctikzset{tripoles/spdt/width/.initial=.85} \ctikzset{tripoles/spdt/height/.initial=.45} \ctikzset{tripoles/spdt/margin/.initial=.45} \ctikzset{tripoles/toggleswitch/height/.initial=.8} \ctikzset{tripoles/toggleswitch/height 2/.initial=.0} \ctikzset{tripoles/toggleswitch/width/.initial=.80} \ctikzset{tripoles/mixer/width/.initial=0.7} \ctikzset{tripoles/adder/width/.initial=0.7} \ctikzset{tripoles/circulator/width/.initial=.7} \ctikzset{tripoles/oscillator/width/.initial=.7} \ctikzset{tripoles/wilkinson/height/.initial=1.3} \ctikzset{tripoles/wilkinson/width/.initial=1.3} \ctikzset{quadpoles/transformer/width/.initial=1.5} \ctikzset{quadpoles/transformer/width1/.initial=.4} \ctikzset{quadpoles/transformer/height/.initial=1.5} \ctikzset{quadpoles/transformer/height1/.initial=.8} \ctikzset{quadpoles/transformer core/width/.initial=1.5} \ctikzset{quadpoles/transformer core/height/.initial=1.5} \ctikzset{quadpoles/transformer core/core height/.initial=.5} \ctikzset{quadpoles/transformer core/core width/.initial=.05} \ctikzset{quadpoles/gyrator/width/.initial=1.5} \ctikzset{quadpoles/gyrator/height/.initial=1.5} \ctikzset{quadpoles/fourport/width/.initial=1.3} \ctikzset{quadpoles/fourport/height/.initial=1.3} \ctikzset{quadpoles/coupler/width/.initial=1.3} \ctikzset{quadpoles/coupler/height/.initial=1.3} \ctikzset{quadpoles/coupler2/width/.initial=1.3} \ctikzset{quadpoles/coupler2/height/.initial=1.3} \ctikzset{/tikz/circuitikz/tripoles/magnetron/width/.initial=1} % %Mechanical section \ctikzset{/tikz/circuitikz/tripoles/elmech/height/.initial=.8} \ctikzset{/tikz/circuitikz/tripoles/elmech/width/.initial=.6} \ctikzset{bipoles/spring/height/.initial=.5} \ctikzset{bipoles/spring/width/.initial=.5} \ctikzset{bipoles/mass/height/.initial=.55} \ctikzset{bipoles/mass/box height/.initial=.4} \ctikzset{bipoles/mass/width/.initial=.5} \ctikzset{bipoles/damper/height/.initial=.35} \ctikzset{bipoles/damper/length/.initial=.3} \ctikzset{bipoles/damper/width/.initial=.4} \ctikzset{bipole/.is family} \ctikzset{bipole/kind/.initial = } \ctikzset{bipole/name/.initial = } \newif\ifpgf@circuit@bipole@isvoltage \ctikzset{bipole/is voltage/.is if=pgf@circuit@bipole@isvoltage} \newif\ifpgf@circuit@bipole@voltageoutsideofsymbol \ctikzset{bipole/is voltageoutsideofsymbol/.is if=pgf@circuit@bipole@voltageoutsideofsymbol} \newif\ifpgf@circuit@bipole@strokedsymbol \ctikzset{bipole/is strokedsymbol/.is if=pgf@circuit@bipole@strokedsymbol} \newif\ifpgf@circuit@bipole@iscurrent \ctikzset{bipole/is current/.is if=pgf@circuit@bipole@iscurrent} \ctikzset{bipole/voltage/.is family} \newif\ifpgf@circuit@bipole@voltage@backward \ctikzset{bipole/voltage/direction/.is choice} \ctikzset{bipole/voltage/direction/forward/.code={\pgf@circuit@bipole@voltage@backwardfalse}} \ctikzset{bipole/voltage/direction/backward/.code={\pgf@circuit@bipole@voltage@backwardtrue}} \newif\ifpgf@circuit@bipole@voltage@below \ctikzset{bipole/voltage/position/.is choice} \ctikzset{bipole/voltage/position/above/.code={\pgf@circuit@bipole@voltage@belowfalse}} \ctikzset{bipole/voltage/position/below/.code={\pgf@circuit@bipole@voltage@belowtrue}} \ctikzset{bipole/voltage/label/unit/.initial=} \ctikzset{bipole/voltage/label/name/.initial=} \ctikzset{bipole/current/.is family} \newif\ifpgf@circuit@bipole@current@backward \ctikzset{bipole/current/direction/.is choice} \ctikzset{bipole/current/direction/forward/.code={\pgf@circuit@bipole@current@backwardfalse}} \ctikzset{bipole/current/direction/backward/.code={\pgf@circuit@bipole@current@backwardtrue}} \newif\ifpgf@circuit@bipole@current@before \ctikzset{bipole/current/x position/.is choice} \ctikzset{bipole/current/x position/after/.code={\pgf@circuit@bipole@current@beforefalse}} \ctikzset{bipole/current/x position/before/.code={\pgf@circuit@bipole@current@beforetrue}} \newif\ifpgf@circuit@bipole@current@below \ctikzset{bipole/current/y position/.is choice} \ctikzset{bipole/current/y position/above/.code={\pgf@circuit@bipole@current@belowfalse}} \ctikzset{bipole/current/y position/below/.code={\pgf@circuit@bipole@current@belowtrue}} \ctikzset{bipole/current/label/unit/.initial=} \ctikzset{bipole/current/label/name/.initial=} \ctikzset{bipole/flow/.is family} \newif\ifpgf@circuit@bipole@flow@backward \ctikzset{bipole/flow/direction/.is choice} \ctikzset{bipole/flow/direction/forward/.code={\pgf@circuit@bipole@flow@backwardfalse}} \ctikzset{bipole/flow/direction/backward/.code={\pgf@circuit@bipole@flow@backwardtrue}} \newif\ifpgf@circuit@bipole@flow@before \ctikzset{bipole/flow/x position/.is choice} \ctikzset{bipole/flow/x position/after/.code={\pgf@circuit@bipole@flow@beforefalse}} \ctikzset{bipole/flow/x position/before/.code={\pgf@circuit@bipole@flow@beforetrue}} \newif\ifpgf@circuit@bipole@flow@below \ctikzset{bipole/flow/y position/.is choice} \ctikzset{bipole/flow/y position/above/.code={\pgf@circuit@bipole@flow@belowfalse}} \ctikzset{bipole/flow/y position/below/.code={\pgf@circuit@bipole@flow@belowtrue}} \ctikzset{bipole/flow/label/unit/.initial=} \ctikzset{bipole/flow/label/name/.initial=} \ctikzset{flow/distance/.initial = .5} \ctikzset{flow/offset/.initial = .2}%distance between flow-arrow and conductor \ctikzset{bipole/label/.is family} \ctikzset{bipole/label/position/.initial=90} \ctikzset{bipole/label/unit/.initial=} \ctikzset{bipole/label/name/.initial=} \ctikzset{bipole/annotation/.is family} \ctikzset{bipole/annotation/position/.initial=-90} \ctikzset{bipole/annotation/unit/.initial=} \ctikzset{bipole/annotation/name/.initial=} \ctikzset{bipole/nodes/.is family} \ctikzset{bipole/nodes/left/.is choice} \ctikzset{bipole/nodes/left/none/.code={\ctikzsetvalof{bipole/nodes/left}{none}}} \ctikzset{bipole/nodes/left/empty/.code={\ctikzsetvalof{bipole/nodes/left}{empty}}} \ctikzset{bipole/nodes/left/full/.code={\ctikzsetvalof{bipole/nodes/left}{full}}} \ctikzset{bipole/nodes/left/diamond/.code={\ctikzsetvalof{bipole/nodes/left}{diamond}}} \ctikzset{bipole/nodes/left/rectjoinfill/.code={\ctikzsetvalof{bipole/nodes/left}{rectjoinfill}}} \ctikzset{bipole/nodes/right/.is choice} \ctikzset{bipole/nodes/right/none/.code={\ctikzsetvalof{bipole/nodes/right}{none}}} \ctikzset{bipole/nodes/right/empty/.code={\ctikzsetvalof{bipole/nodes/right}{empty}}} \ctikzset{bipole/nodes/right/full/.code={\ctikzsetvalof{bipole/nodes/right}{full}}} \ctikzset{bipole/nodes/right/diamond/.code={\ctikzsetvalof{bipole/nodes/right}{diamond}}} \ctikzset{bipole/nodes/right/rectjoinfill/.code={\ctikzsetvalof{bipole/nodes/right}{rectjoinfill}}} \newif\ifpgf@circuit@europeanresistor \ctikzset{resistor/.is choice} \ctikzset{resistor/american/.code = \pgf@circuit@europeanresistorfalse } \ctikzset{resistor/european/.code = \pgf@circuit@europeanresistortrue } \ctikzset{inductor/.is choice} \ctikzset{inductor/cute/.code={\ctikzsetvalof{inductor}{cute}}} \ctikzset{inductor/european/.code={\ctikzsetvalof{inductor}{european}}} \ctikzset{inductor/american/.code={\ctikzsetvalof{inductor}{american}}} \newif\ifpgf@circuit@strokediode \newif\ifpgf@circuit@fulldiode \pgf@circuit@strokediodefalse \pgf@circuit@fulldiodefalse \ctikzset{diode/.is choice} \ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodefalse}%default \ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue } \ctikzset{diode/stroke/.code = \pgf@circuit@strokediodetrue} \tikzset{full diodes/.style = { \circuitikzbasekey/diode = full }} \tikzset{empty diodes/.style = { \circuitikzbasekey/diode = empty }} \tikzset{stroke diodes/.style = { \circuitikzbasekey/diode = stroke }} \ctikzset{thickness/.initial=2} \ctikzset{color/.initial=black} \pgfkeys{/tikz/color/.add code={}{\ctikzset{color={#1}}}} \newif\ifpgf@circ@siunitx \newif\ifpgf@circ@siunitx@res \ctikzset{straight/.is choice} \ctikzset{straightvoltage value/.initial=true} \ctikzset{straight/true/.code = {\pgf@circuit@bipole@voltage@straighttrue}} \ctikzset{straight/false/.code = {\pgf@circuit@bipole@voltage@straightfalse}} \ctikzset{straightvoltage/.style = {/tikz/circuitikz/straight=true}} \newif\ifpgf@circuit@bipole@voltage@straight \ctikzset{bipole/straight/.is if=pgf@circuit@bipole@voltage@straight} \ctikzset{voltage/.is family} \ctikzset{voltage/distance from node/.initial=.5} %\pgf@circ@Rlen units \ctikzset{voltage/distance from line/.initial=.08} % pos, tra 0 e 1 \ctikzset{voltage/bump a/.initial=1.2} \ctikzset{voltage/bump b/.initial=1.5} \ctikzset{voltage/european label distance/.initial=1.4} \ctikzset{voltage/american label distance/.initial=1.1} % special cases \ctikzset{bipoles/generic/voltage/distance from node/.initial=.4} \ctikzset{bipoles/generic/voltage/bump b/.initial=2} \ctikzset{bipoles/generic/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/thermocouple/voltage/distance from node/.initial=.3} \ctikzset{bipoles/thermocouple/voltage/bump b/.initial=2.2} \ctikzset{bipoles/thermocouple/voltage/european label distance/.initial=1.5} \ctikzset{bipoles/ageneric/voltage/distance from node/.initial=.4} \ctikzset{bipoles/ageneric/voltage/bump b/.initial=2} \ctikzset{bipoles/ageneric/voltage/european label distance/.initial=1.8} \ctikzset{bipoles/fullgeneric/voltage/distance from node/.initial=.4} \ctikzset{bipoles/fullgeneric/voltage/bump b/.initial=2} \ctikzset{bipoles/fullgeneric/voltage/european label distance/.initial=1.8} \ctikzset{bipoles/memristor/voltage/distance from node/.initial=.4} \ctikzset{bipoles/memristor/voltage/bump b/.initial=2} \ctikzset{bipoles/memristor/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/tline/voltage/distance from node/.initial=.2} \ctikzset{bipoles/tline/voltage/bump b/.initial=2.4} \ctikzset{bipoles/tline/voltage/european label distance/.initial=2.1} %\ctikzset{bipoles/varistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/varistor/voltage/bump b/.initial=2.4} \ctikzset{bipoles/varistor/voltage/european label distance/.initial=2} %\ctikzset{bipoles/photoresistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/photoresistor/voltage/bump b/.initial=2} \ctikzset{bipoles/photoresistor/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/thermistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistor/voltage/bump b/.initial=2.4} \ctikzset{bipoles/thermistor/voltage/european label distance/.initial=2} %\ctikzset{bipoles/thermistorntc/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistorntc/voltage/bump b/.initial=1.6} %\ctikzset{bipoles/thermistorptc/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistorptc/voltage/bump b/.initial=1.6} \ctikzset{current/.is family} \ctikzset{current/distance/.initial = .5} \tikzset{american currents/.style = { \circuitikzbasekey/current = american } } \tikzset{european currents/.style = { \circuitikzbasekey/current = european } } \tikzset{american voltages/.style = { \circuitikzbasekey/voltage = american } } \tikzset{european voltages/.style = { \circuitikzbasekey/voltage = european } } \tikzset{american resistors/.style = { \circuitikzbasekey/resistor = american } } \tikzset{european resistors/.style = { \circuitikzbasekey/resistor = european } } \newif\ifpgf@circuit@europeangfsurgearrester \ctikzset{gas filled surge arrester choice/.is choice} \ctikzset{gas filled surge arrester choice/european/.code= {\pgf@circuit@europeangfsurgearrestertrue } } \ctikzset{gas filled surge arrester choice/american/.code= {\pgf@circuit@europeangfsurgearresterfalse } } \tikzset{american gas filled surge arrester set/.style = { \circuitikzbasekey/gas filled surge arrester choice=american } } \tikzset{european gas filled surge arrester set/.style = { \circuitikzbasekey/gas filled surge arrester choice=european } } \tikzset{american inductors/.style = { \circuitikzbasekey/inductor = american } } \tikzset{european inductors/.style = { \circuitikzbasekey/inductor = european } } \tikzset{cute inductors/.style = { \circuitikzbasekey/inductor = cute } } \tikzset{american ports/.style = { \circuitikzbasekey/logic ports = american } } \tikzset{european ports/.style = { \circuitikzbasekey/logic ports = european } } \tikzset{european/.style = { european currents, european voltages, european resistors, european inductors, european ports, european gas filled surge arrester set} } \tikzset{american/.style = { american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester set} } \tikzset{cute/.style = { european currents, european voltages, american resistors, cute inductors, american ports } } % I should try to make the tree clearer (this voltaege conflicts with the options above) \newif\ifpgf@circuit@europeanvoltage \ctikzset{voltage/.is choice} \ctikzset{voltage/american/.code = {\pgf@circuit@europeanvoltagefalse } } \ctikzset{voltage/european/.code = {\pgf@circuit@europeanvoltagetrue } } \newif\ifpgf@circuit@europeancurrent \ctikzset{current/.is choice} \ctikzset{current/american/.code = \pgf@circuit@europeancurrentfalse } \ctikzset{current/european/.code = \pgf@circuit@europeancurrenttrue } \ctikzset{label/align/.is choice} \ctikzset{label/align/straight/.code={\ctikzsetvalof{label/align}{straight}}} \ctikzset{label/align/rotate/.code={\ctikzsetvalof{label/align}{rotate}}} \ctikzset{label/align/smart/.code={\ctikzsetvalof{label/align}{smart}}} %%%%%%%%%% new \pgfkeys{\circuitikzbasekey/.search also={/tikz}} %%%---------- close: tex/pgfcirc.defines %%%%%%%%%%% Springe nach tex/pgfcircutils %%%---------- open: tex/pgfcircutils.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %\def\pgf@circ@handleSI#1{% % \pgf@circ@siunitx@resfalse % % \edef\len{\stringlength[e]{#1}} %\testmatchingchar[e]{#1}{\len}{>}% %\ifmatchingchar% % \ifnum\findchars{#1}{<}=0 % \def\pgf@circ@handleSI@val{\substring{#1}{1}{\findchars{#1}{<}-1}} %\def\pgf@circ@handleSI@unit{\substring{#1}{\findchars{#1}{<}-1}+1}{\stringlength{#1}} %\pgf@circ@siunitx@restrue % \else % \fi %\else %\fi %} \def\pgf@circ@handleSI#1{ \noexpandarg \def\pgf@temp{} \StrBetween{#1}{<}{>}[\pgf@circ@handleSI@unit] \StrLen{\pgf@circ@handleSI@unit}[\pgf@circ@handleSI@unit@len] \ifnum\pgf@circ@handleSI@unit@len=0 \pgf@circ@siunitx@resfalse \else \IfEndWith{#1}{>}{ \pgf@circ@siunitx@restrue \noexpandarg \StrBefore{#1}{<}[\pgf@circ@handleSI@val] %\typeout{si |#1|} }{ \pgf@circ@siunitx@resfalse %\typeout{no si |#1|} } \fi } \def\pgf@circ@ifkeyempty#1{ \pgfextra{ \ctikzset{#1/.get=\pgf@circ@temp} \edef\pgf@temp{} } \ifx\pgf@circ@temp\pgf@temp } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Math routines \def\pgf@circ@stripdecimals#1.#2\pgf@nil{#1} %%%---------- close: tex/pgfcircutils %%%%%%%%%%% Springe nach tex/pgfcircshapes %%%---------- open: tex/pgfcircshapes.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Other shapes %% Nothing \pgfdeclareshape{emptyshape}{ \savedanchor{\northeast}{% \pgf@x=.5\wd\pgfnodeparttextbox% \pgf@y=.5\ht\pgfnodeparttextbox% } \anchor{north}{ \northeast \pgf@x=0cm } \anchor{east}{% \northeast \pgf@y=0cm } \anchor{south}{% \northeast \pgf@y=-\pgf@y \pgf@x=0cm } \anchor{west}{ \northeast \pgf@y=0cm \pgf@x=-\pgf@x } \anchor{text}{% \pgfpointorigin } \anchor{center}{ \pgfpointorigin } } %% Full terminal \pgfdeclareshape{circ}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up} }{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen}} } \behindforegroundpath{ \pgfscope \pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Empty terminal \pgfdeclareshape{ocirc}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up} }{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen}} } \behindforegroundpath{ \pgfscope \pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetfillcolor{white} \pgfusepath{draw,fill} \endpgfscope } } %% Diamond terminal \pgfdeclareshape{diamondpole}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y } \behindforegroundpath{ \pgfscope \pgfmathsetlength{\pgf@circ@res@temp}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen} \pgftransformrotate{45} \pgfpathrectanglecorners {\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@temp}{\pgf@circ@res@up+\pgf@circ@res@temp}} {\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up-\pgf@circ@res@temp}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Fill for correct rectangular joins \pgfdeclareshape{rectjoinfill}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y } \behindforegroundpath{ \pgfscope \pgfpathrectanglecorners {\pgfpoint{0}{.5\pgflinewidth}} {\pgfpoint{0}{-.5\pgflinewidth}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Current arrow \pgfdeclareshape{currarrow}{ \anchor{center}{ \pgfpointorigin } \anchor{tip}{ \pgfpointorigin \pgf@circ@res@step = \pgf@circ@Rlen \divide \pgf@circ@res@step by 16 \pgf@x =\pgf@circ@res@step } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \pgf@circ@Rlen \divide \pgf@circ@res@step by 16 \pgfpathmoveto{\pgfpoint{-.7\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{0pt}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Flow arrow \pgfdeclareshape{flowarrow}{ \anchor{center}{ \pgfpointorigin } \anchor{tip}{ \pgfpointorigin \pgf@circ@res@step = \pgf@circ@Rlen \divide \pgf@circ@res@step by 16 \pgf@x =\pgf@circ@res@step } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \pgf@circ@Rlen \divide \pgf@circ@res@step by 4 \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw} \pgftransformshift{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfnode{currarrow}{tip}{}{}{\pgfusepath{fill}} \endpgfscope } } %% Input arrow \pgfdeclareshape{inputarrow}{ \savedanchor{\tip}{ \pgfpointorigin } \anchor{center}{ \tip } \anchor{tip}{ \tip } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \pgf@circ@Rlen \divide \pgf@circ@res@step by 16 \pgfpathmoveto{\pgfpoint{-1.7\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0pt}{0pt}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{0pt}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{fill} \endpgfscope } } %% box \pgfdeclareshape{box}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@Rlen \pgf@circ@res@step = 0.5\pgf@circ@res@step \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@step}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } %%%---------- close: tex/pgfcircshapes %%%%%%%%%%% Springe nach tex/pgfcircmonopoles %%%---------- open: tex/pgfcircmonopoles.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Monopoles %% Ground symbol \pgfdeclareshape{ground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{rground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{tground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} %\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/monopoles/tground/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{sground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}} \pgfpathclose \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % noiseless ground \pgfdeclareshape{nground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{1.3\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpatharc{0}{180}{1.3\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % protective ground \pgfdeclareshape{pground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathcircle{\pgfpoint{0pt}{-\pgf@circ@res@step}} {1.2\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % chassis ground \pgfdeclareshape{cground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/chassis/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-1.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } % Contributed by Leonardo Azzinnari \pgfdeclareshape{tlinestub}{ \anchor{center}{\pgfpointorigin} \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{bipoles/tline/width} \pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfscope \pgfpathellipse{\pgfpoint{0.5\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0.125\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpatharc{90}{-90}{0.125\pgf@circ@res@step and 0.25\pgf@circ@res@step} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-0.25\pgf@circ@res@step}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{antenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/antenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/antenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@Rlen % \pgfpathmoveto{\pgfpointorigin} % \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} % \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} % \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgftransformxshift{ -4\pgf@circ@res@step } \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} } } \pgfdeclareshape{txantenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/txantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/txantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{5.5\pgf@circ@res@step}{6\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{30}{-30}{2\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{30}{-30}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{7\pgf@circ@res@step}} \pgfpatharc{30}{-30}{4\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } \pgfdeclareshape{rxantenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/rxantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/rxantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{7\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{150}{210}{4\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{150}{210}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{150}{210}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{150}{210}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{8\pgf@circ@res@step}{6\pgf@circ@res@step}} \pgfpatharc{150}{210}{2\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } % Vcc \pgfdeclareshape{vcc}{ \anchor{center}{\pgfpointorigin} \anchor{text}{ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}} \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}} \pgf@x=0pt \pgf@y=2\pgf@circ@res@step \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{1.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % Vee \pgfdeclareshape{vee}{ \anchor{center}{\pgfpointorigin} \anchor{text}{ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}} \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}} \pgf@x=0pt \pgf@y=-2\pgf@circ@res@step \advance \pgf@y by -1.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{-1.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % match \pgfdeclareshape{match}{ \anchor{center}{ \pgfpointorigin } \anchor{text}{ \pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@Rlen \pgf@x=1.5\pgf@x \advance \pgf@x by -.5\wd\pgfnodeparttextbox \pgf@y=-1.5\ht\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0}} \pgfusepath{fill} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } %%%---------- close: tex/pgfcircmonopoles %%%%%%%%%%% Springe nach tex/pgfcircbipoles %%%---------- open: tex/pgfcircbipoles.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %% Generic macro for defining a bipole shape % #1 - additional anchors % #2 - lower y-size of the bipole (from the center). % #3 - #shape is the name of the shape % #4 - upper y-size of the bipole (from the center) % #5 - width of the bipole % #6 - macros drawing the bipole \long\def\pgfcircdeclarebipole#1#2#3#4#5#6{ \pgfdeclareshape{#3shape}{ \savedanchor{\northeast}{ \pgf@y=#4\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=#5\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor{\northeastborder}{ \pgf@y=#4\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y \pgf@x=#5\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x } \savedanchor{\southwestborder}{ \pgf@y=-#2\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y \pgf@x=-#5\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x } \savedanchor{\southwest}{ \pgf@y=-#2\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-#5\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor{\centerpoint}{ \pgf@circ@res@down=-#2\pgf@circ@Rlen \pgf@circ@res@up=#4\pgf@circ@Rlen \pgfpointorigin \pgf@y=\pgf@circ@res@up \advance\pgf@y by\pgf@circ@res@down \pgf@y=.5\pgf@y } \anchor{center}{\pgfpointorigin} \anchor{n}{ \northeast \pgf@x=0cm } \anchor{ne}{ \northeast } \anchor{nw}{ \northeast \pgf@x=-\pgf@x } \anchor{e}{% \northeast \pgf@y=0cm } \anchor{s}{% \southwest \pgf@x=0cm } \anchor{se}{% \southwest \pgf@x=-\pgf@x } \anchor{sw}{% \southwest } \anchor{w}{ \southwest \pgf@y=0cm } \anchor{north}{ \northeast \pgf@x=0cm } \anchor{east}{% \northeast \pgf@y=0cm } \anchor{south}{% \southwest \pgf@x=0cm } \anchor{west}{ \southwest \pgf@y=0cm } \anchor{right}{ \northeast \pgf@y=0cm } \anchor{above}{ \northeast \pgf@x=0cm } \anchor{left}{% \southwest \pgf@y=0cm } \anchor{below}{% \southwest \pgf@x=0cm } \anchor{a}{% \northeast \pgf@y=0cm } \anchor{b} { \southwest \pgf@y=0cm } \savedanchor{\textanchor}{% \pgf@y=\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \anchor{text}{% \textanchor } \anchorborder{% \ifpgf@circuit@bipole@inverted \pgf@circ@res@left=-\pgf@x \pgf@circ@res@right=-\pgf@y \else \pgf@circ@res@left=\pgf@x \pgf@circ@res@right=\pgf@y \fi \ifdim\pgf@circ@res@right>0cm \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@right}}{\northeastborder} \else \southwestborder \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@right}}{\pgfpoint{-\pgf@x}{-\pgf@y}} \fi } #1 \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northeast \pgf@circ@res@up = \pgf@y \pgf@circ@res@zero = 0cm \pgf@circ@res@left = -\pgf@x \pgf@circ@res@right = \pgf@x \southwest \pgf@circ@res@down = \pgf@y \pgfstartlinewidth=\pgflinewidth \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! #6 \pgfsetlinewidth{\pgfstartlinewidth} } } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Standard bipole shapes declarations %% Resistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/resistor/height}}{resistor}{\ctikzvalof{bipoles/resistor/height}}{\ctikzvalof{bipoles/resistor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} \divide \pgf@circ@res@step by 12 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfsetbeveljoin \pgfusepath{draw} } %% Variable resistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vresistor/height}}{vresistor}{\ctikzvalof{bipoles/vresistor/height}}{\ctikzvalof{bipoles/vresistor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} \divide \pgf@circ@res@step by 12 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfsetbeveljoin \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Capacitor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/capacitor/height}}{capacitor}{\ctikzvalof{bipoles/capacitor/height}}{\ctikzvalof{bipoles/capacitor/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/capacitor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 5 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Polar Capacitor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/pcapacitor/height}}{polarcapacitor}{\ctikzvalof{bipoles/pcapacitor/height}}{\ctikzvalof{bipoles/pcapacitor/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/pcapacitor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 5 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+ \ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}{\pgf@circ@res@up}} \pgftransformrotate{-90} \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}} \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Electrolytic Capacitor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ecapacitor/height}}{ecapacitor}{\ctikzvalof{bipoles/ecapacitor/height}}{\ctikzvalof{bipoles/ecapacitor/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/ecapacitor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 5 \pgfsetrectcap % % % Draw plus pole \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfsetfillcolor{white} \pgfusepath{draw,fill} % % Draw minus pole \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfsetfillcolor{black} \pgfusepath{draw,fill} \pgfsetfillcolor{black} % % plus pole annotation \pgftext[right,at=\pgfpoint{1.2\pgf@circ@res@left}{.6\pgf@circ@res@up}] {\pgfkeysvalueof{/tikz/circuitikz/bipoles/ecapacitor/font} $+$} } %% Battery \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery/height}}{battery}{\ctikzvalof{bipoles/battery/height}}{\ctikzvalof{bipoles/battery/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 6 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfusepath{draw} } %% Battery 1 % poles with equl thickness \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery1/height}}{battery1}{\ctikzvalof{bipoles/battery1/height}}{\ctikzvalof{bipoles/battery1/width}}{ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Battery 2 % negative pole thicker \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery2/height}}{battery2}{\ctikzvalof{bipoles/battery2/height}}{\ctikzvalof{bipoles/battery2/width}}{ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{3\pgflinewidth} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfusepath{draw} } %% cute inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cuteinductor/lower coil height}}{cuteinductor}{\ctikzvalof{bipoles/cuteinductor/height}}{\ctikzvalof{bipoles/cuteinductor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@other}%width of small coil {0.5*\ctikzvalof{bipoles/cuteinductor/coil aspect}*\ctikzvalof{bipoles/cuteinductor/width}*\pgf@circ@Rlen/(\ctikzvalof{bipoles/cuteinductor/coils}-1)} \pgfmathsetlength{\pgf@circ@res@step} {(\ctikzvalof{bipoles/cuteinductor/width}*\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cuteinductor/coils}/2} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases \foreach \x in {2,...,\ctikzvalof{bipoles/cuteinductor/coils}} { \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up} \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down} } \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up} \pgfsetbuttcap \pgfsetbeveljoin \pgfusepath{stroke} } %% variable cute inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vcuteinductor/lower coil height}}{vcuteinductor}{\ctikzvalof{bipoles/vcuteinductor/height}}{\ctikzvalof{bipoles/vcuteinductor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@other}%width of small coil {0.5*\ctikzvalof{bipoles/vcuteinductor/coil aspect}*\ctikzvalof{bipoles/vcuteinductor/width}*\pgf@circ@Rlen/(\ctikzvalof{bipoles/vcuteinductor/coils}-1)} \pgfmathsetlength{\pgf@circ@res@step} {(\ctikzvalof{bipoles/vcuteinductor/width}*\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/vcuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/vcuteinductor/coils}/2} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases \foreach \x in {2,...,\ctikzvalof{bipoles/vcuteinductor/coils}} { \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up} \pgfpatharc{0}{-180}{\pgf@circ@res@other and -.5\pgf@circ@res@down} } \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up} \pgfsetbuttcap \pgfsetbeveljoin \pgfusepath{stroke} } %% american inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/americaninductor/height 2}}{americaninductor}{\ctikzvalof{bipoles/americaninductor/height}}{\ctikzvalof{bipoles/americaninductor/width}}{ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@Rlen \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils} \divide \pgf@circ@res@step by 2 \pgf@circ@res@other = \ctikzvalof{bipoles/americaninductor/coil height}\pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases \foreach \x in {1,...,\ctikzvalof{bipoles/americaninductor/coils}} { \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other} } \pgfsetbuttcap \pgfsetbeveljoin \pgfusepath{stroke} } %% variable american inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vamericaninductor/height 2}}{vamericaninductor}{\ctikzvalof{bipoles/vamericaninductor/height}}{\ctikzvalof{bipoles/vamericaninductor/width}}{ \pgf@circ@res@step=\ctikzvalof{bipoles/vamericaninductor/width}\pgf@circ@Rlen \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vamericaninductor/coils} \divide \pgf@circ@res@step by 2 \pgf@circ@res@other = \ctikzvalof{bipoles/vamericaninductor/coil height}\pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases \foreach \x in {1,...,\ctikzvalof{bipoles/vamericaninductor/coils}} { \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other} } \pgfsetbuttcap \pgfsetbeveljoin \pgfusepath{stroke} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Independent voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsource/height}}{vsource}{\ctikzvalof{bipoles/vsource/height}}{\ctikzvalof{bipoles/vsource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} } %% Independent voltage source - American style \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourceam/height}}{vsourceAM}{\ctikzvalof{bipoles/vsourceam/height}}{\ctikzvalof{bipoles/vsourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \ifpgf@circ@oldvoltagedirection \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{$+$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{$-$} \else \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{$-$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{$+$} \fi } %% Independent sinusoidal voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcesin/height}}{vsourcesin}{\ctikzvalof{bipoles/vsourcesin/height}}{\ctikzvalof{bipoles/vsourcesin/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } % Triangle Voltage source - contributed by Ralf Farkas \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcetri/height}}{vsourcetri}{\ctikzvalof{bipoles/vsourcetri/height}}{\ctikzvalof{bipoles/vsourcetri/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@up}{0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@up}{-0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } % Square Voltage source - contributed by Alistair Kwan \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcesquare/height}}{vsourcesquare}{\ctikzvalof{bipoles/vsourcesquare/height}}{\ctikzvalof{bipoles/vsourcesquare/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}} \pgfpathlineto{\pgfpoint{-1\pgf@circ@res@up}{1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0\pgf@circ@res@up}{1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0\pgf@circ@res@up}{-1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{-1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } % Triangle Voltage source - contributed by Ralf Farkas \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcetri/height}}{vsourcetri}{\ctikzvalof{bipoles/vsourcetri/height}}{\ctikzvalof{bipoles/vsourcetri/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@up}{0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@up}{-0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty Source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/esource/height}}{esource}{\ctikzvalof{bipoles/esource/height}}{\ctikzvalof{bipoles/esource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfusepath{draw} } %% PV Source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/pvsource/height}}{pvsource}{\ctikzvalof{bipoles/pvsource/height}}{\ctikzvalof{bipoles/pvsource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@down}} \pgfusepath{draw} %Arrow Part \pgfscope \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}} \pgfpathlineto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}} \pgfusepath{draw} \pgfpathmoveto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}} \pgfpathlineto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}} \pgfusepath{draw} \endpgfscope } %% Empty Source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/esource/height}}{esource}{\ctikzvalof{bipoles/esource/height}}{\ctikzvalof{bipoles/esource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfusepath{draw} } %% DC Current Source with open shape \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dcisource/height}}{dcisource}{\ctikzvalof{bipoles/dcisource/height}}{\ctikzvalof{bipoles/dcisource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0}}\pgfpatharc{0}{90}{0.85\pgf@circ@res@right and \pgf@circ@res@up} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0}}\pgfpatharc{0}{-90}{0.85\pgf@circ@res@right and \pgf@circ@res@up} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}\pgfpatharc{180}{270}{0.85\pgf@circ@res@right and \pgf@circ@res@up} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}\pgfpatharc{180}{90}{0.85\pgf@circ@res@right and \pgf@circ@res@up} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{.5\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope } %% DC-Voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dcvsource/height}}{dcvsource}{\ctikzvalof{bipoles/dcvsource/height}}{\ctikzvalof{bipoles/dcvsource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@left}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@right}} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@left}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@right}} \pgfusepath{draw} } %% Independent current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isource/height}}{isource}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Independent double oo source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/oosource/height}}{oosource}{\ctikzvalof{bipoles/oosource/height}}{\ctikzvalof{bipoles/oosource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@left}{0}} {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@left} \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@right}{0}} {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@right} \pgfusepath{draw} } %% Independent current source - American \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isourceam/height}}{isourceAM}{\ctikzvalof{bipoles/isourceam/height}}{\ctikzvalof{bipoles/isourceam/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{.5\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope } %% Independent sinusoidal current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isource/height}}{isourcesin}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{ \pgfpointorigin \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsource/height}}{cvsource}{\ctikzvalof{bipoles/cvsource/height}}{\ctikzvalof{bipoles/cvsource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} } %% Controlled voltage source - American \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourceam/height}}{cvsourceAM}{\ctikzvalof{bipoles/cvsourceam/height}}{\ctikzvalof{bipoles/cvsourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \ifpgf@circ@oldvoltagedirection \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{$+$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{$-$} \else \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{$-$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{$+$} \fi } %% Controlled sinusoidal voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cvsourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled sinusoidal current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cisourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisource/height}}{cisource}{\ctikzvalof{bipoles/cisource/height}}{\ctikzvalof{bipoles/cisource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Controlled current source - American \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisourceam/height}}{cisourceAM}{\ctikzvalof{bipoles/cisourceam/height}}{\ctikzvalof{bipoles/cisourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{.5\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope } %% Black generic diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulldiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Black Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black alternative zigzag Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullzzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Black Schottky diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullsdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black tunnel diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulltdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black light emitting diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulllediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Black photodiode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullpdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Black varcap \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varcap/height}}{fullvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{ \pgf@circ@res@temp=\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgfsetlinewidth{\pgf@circ@res@temp} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}} \pgfusepath{draw,fill} % \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty generic diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptydiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptyzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-0.6\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty alternative zigzag Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptyzzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Empty Schottky diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptysdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty tunnel diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptytdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty light emitting diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptylediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty photodiode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptypdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty varcap \pgfcircdeclarebipole{ \anchor{strokepathstart}{ \northeast \pgf@y=0cm \advance\pgf@x by -\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth \advance\pgf@x by -\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth } \anchor{strokepathend}{ \northeast \pgf@y=0cm } }{\ctikzvalof{bipoles/varcap/height}}{emptyvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{ \pgf@circ@res@temp=\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgfsetlinewidth{\pgf@circ@res@temp} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}} \pgfusepath{draw} % \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% (Closing) SPST \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/spst/depth}}{cspst}{\ctikzvalof{bipoles/spst/height}}{\ctikzvalof{bipoles/spst/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0\pgf@circ@res@down}} \pgfpatharcto{1.2\pgf@circ@res@right}{1.2\pgf@circ@res@right}{0}{0}{1}{\pgfpoint{.9\pgf@circ@res@left}{.9\pgf@circ@res@up}} \pgfsetbeveljoin \pgfusepath{draw} } %% Opening SPST \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/spst/depth}}{ospst}{\ctikzvalof{bipoles/spst/height}}{\ctikzvalof{bipoles/spst/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfpatharcto{1.1\pgf@circ@res@right}{1.1\pgf@circ@res@right}{0}{0}{1}{\pgfpoint{.7\pgf@circ@res@left}{.9\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@left}{1\pgf@circ@res@up}} \pgfsetarrowsend{latex'} \pgfsetbeveljoin \pgfusepath{draw} } %% Normal open Switch \pgfcircdeclarebipole{}{0}{nos}{\ctikzvalof{bipoles/nos/height}}{\ctikzvalof{bipoles/nos/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfsetbuttcap \pgfusepath{draw} } %% Normal closed Switch \pgfcircdeclarebipole{}{0}{ncs}{\ctikzvalof{bipoles/ncs/height}}{\ctikzvalof{bipoles/ncs/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Push Button \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/pushbutton/height 2}}{pushbutton}{\ctikzvalof{bipoles/pushbutton/height}}{\ctikzvalof{bipoles/pushbutton/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}} \pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}} } % % METERINGSHAPE \long\def\drawmeteringcircle{ \def\pgf@circ@temp{right} \ifx\tikz@res@label@pos\pgf@circ@temp \pgf@circ@res@step=-1.2\pgf@circ@res@up \else \def\pgf@circ@temp{below} \ifx\tikz@res@label@pos\pgf@circ@temp \pgf@circ@res@step=-1.2\pgf@circ@res@up \else \pgf@circ@res@step=1.2\pgf@circ@res@up \fi \fi %draw connections to circle \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathmoveto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} %draw circle \pgfscope \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up} \pgfusepath{draw} \endpgfscope %draw arrow \pgfscope \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %AMPEREMETER \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ammeter/height}}{ammeter}{\ctikzvalof{bipoles/ammeter/height}}{\ctikzvalof{bipoles/ammeter/width}}{ \drawmeteringcircle \pgfnode{circle}{center}{\textbf{A}}{}{} } %OHMMETER \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ohmmeter/height}}{ohmmeter}{\ctikzvalof{bipoles/ohmmeter/height}}{\ctikzvalof{bipoles/ohmmeter/width}}{ \drawmeteringcircle \pgfnode{circle}{center}{\boldmath$\Omega$}{}{} } %VOLTMETER \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/voltmeter/height}}{voltmeter}{\ctikzvalof{bipoles/voltmeter/height}}{\ctikzvalof{bipoles/voltmeter/width}}{ \drawmeteringcircle \pgfnode{circle}{center}{\textbf{V}}{}{} } %% Short circuit \pgfcircdeclarebipole{}{0}{short}{0}{0}{ } %% Open circuit \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/open/height}}{open}{\ctikzvalof{bipoles/open/height}}{\ctikzvalof{bipoles/open/width}}{ } %% Generic bipole - used as resistor by some (bleah) \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/generic/height}}{generic}{\ctikzvalof{bipoles/generic/height}}{\ctikzvalof{bipoles/generic/width}}{ %\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen %\divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} } %% fuse \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fuse/height}}{fuse}{\ctikzvalof{bipoles/fuse/height}}{\ctikzvalof{bipoles/fuse/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} } %% Generic bipole, filled - used as inductor by some (bleah) \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fullgeneric/height}}{fullgeneric}{\ctikzvalof{bipoles/fullgeneric/height}}{\ctikzvalof{bipoles/fullgeneric/width}}{ %\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen %\divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw,fill} } %% Generic asymmetric bipole \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ageneric/height}}{ageneric}{\ctikzvalof{bipoles/ageneric/height}}{\ctikzvalof{bipoles/ageneric/width}}{ %\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen %\divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{stroke,fill} } %% asymmetric fuse \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/afuse/height}}{afuse}{\ctikzvalof{bipoles/afuse/height}}{\ctikzvalof{bipoles/afuse/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{stroke,fill} } %% Memristor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/memristor/height}}{memristor}{\ctikzvalof{bipoles/memristor/height}}{\ctikzvalof{bipoles/memristor/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.72*\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.72*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.35*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.35*\pgf@circ@res@left}{-\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.05*\pgf@circ@res@left}{-\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.05*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.42*\pgf@circ@res@right}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.42*\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.8*\pgf@circ@res@right}{0pt}} \pgfusepath{draw} \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{stroke,fill} } %% Generic empty tunable \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tgeneric/height}}{tgeneric}{\ctikzvalof{bipoles/tgeneric/height}}{\ctikzvalof{bipoles/tgeneric/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.4\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.4\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Photoresistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/photoresistor/height 2}}{photoresistor}{\ctikzvalof{bipoles/photoresistor/height}}{\ctikzvalof{bipoles/photoresistor/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.3\pgf@circ@res@right}{-1.2\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@right}{-1.2\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Thermistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistor/height}}{thermistor}{\ctikzvalof{bipoles/thermistor/height}}{\ctikzvalof{bipoles/thermistor/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistor/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} %\pgfscope \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} %\endpgfscope } %% Thermistor PTC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistorptc/height 2}}{thermistorptc}{\ctikzvalof{bipoles/thermistorptc/height}}{\ctikzvalof{bipoles/thermistorptc/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorptc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorptc/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\tiny$\vartheta$} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.62\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.62\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.45\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} } %% Thermistor NTC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistorntc/height 2}}{thermistorntc}{\ctikzvalof{bipoles/thermistorntc/height}}{\ctikzvalof{bipoles/thermistorntc/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorntc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorntc/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\tiny$\vartheta$} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.62\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.62\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.45\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} } %% thermocouple \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermocouple/height 2}}{thermocouple}{\ctikzvalof{bipoles/thermocouple/height}}{\ctikzvalof{bipoles/thermocouple/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} } %% Varistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varistor/height}}{varistor}{\ctikzvalof{bipoles/varistor/height}}{\ctikzvalof{bipoles/varistor/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/varistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/varistor/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \pgftext[top,x=.65\pgf@circ@res@left,y=1.2\pgf@circ@res@down]{{\tiny\textsf{U}}} } %% Generic full tunable \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tfullgeneric/height}}{tfullgeneric}{\ctikzvalof{bipoles/tfullgeneric/height}}{\ctikzvalof{bipoles/tfullgeneric/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.4\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.4\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw,fill} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Variable Capacitor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vcapacitor/height}}{vcapacitor}{\ctikzvalof{bipoles/vcapacitor/height}}{\ctikzvalof{bipoles/vcapacitor/width}}{ %\pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/width}\pgf@circ@Rlen \pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/capacitor width} \pgf@circ@res@right \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfsetlinewidth{\pgfstartlinewidth} \pgfusepath{draw} } %% Piezoelectric Element \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/piezoelectric/height}}{piezoelectric}{\ctikzvalof{bipoles/piezoelectric/height}}{\ctikzvalof{bipoles/piezoelectric/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/piezoelectric/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 5 %% Outer markings \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} %% Inner Box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left+4}{\pgf@circ@res@up-1}}{\pgfpoint{\pgf@circ@res@right-4}{\pgf@circ@res@down+1}} \pgfusepath{draw} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Handling of terminals %% Easily usable styles \ctikzset{o-o/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=empty}} \ctikzset{-o/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=empty}} \ctikzset{o-/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=none}} \ctikzset{*-o/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=empty}} \ctikzset{o-*/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=full}} \ctikzset{d-o/.style = {\circuitikzbasekey/bipole/nodes/left=diamond, \circuitikzbasekey/bipole/nodes/right=empty}} \ctikzset{o-d/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=diamond}} \ctikzset{*-/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=none}} \ctikzset{-*/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=full}} \ctikzset{d-/.style = {\circuitikzbasekey/bipole/nodes/left=diamond, \circuitikzbasekey/bipole/nodes/right=none}} \ctikzset{-d/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=diamond}} \ctikzset{*-*/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=full}} \ctikzset{d-*/.style = {\circuitikzbasekey/bipole/nodes/left=diamond, \circuitikzbasekey/bipole/nodes/right=full}} \ctikzset{*-d/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=diamond}} \ctikzset{d-d/.style = {\circuitikzbasekey/bipole/nodes/left=diamond, \circuitikzbasekey/bipole/nodes/right=diamond}} \ctikzset{.-/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=none}} \ctikzset{.-*/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=full}} \ctikzset{.-o/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=empty}} \ctikzset{.-d/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=diamond}} \ctikzset{-./.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}} \ctikzset{o-./.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}} \ctikzset{*-./.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}} \ctikzset{d-./.style = {\circuitikzbasekey/bipole/nodes/left=diamond, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}} \ctikzset{.-./.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}} \tikzset{reversed/.style = {\circuitikzbasekey/bipole/inverted=true}} %% The output routine \def\drawpoles{ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/left}} \def\pgf@temp{diamond} } \ifx\pgf@temp\pgf@circ@temp (\tikztostart) node[diamondpole] {} \else \pgfextra{ \def\pgf@temp{empty} } \ifx\pgf@temp\pgf@circ@temp (\tikztostart) node[ocirc] {} \else \pgfextra{ \def\pgf@temp{full} } \ifx\pgf@temp\pgf@circ@temp (\tikztostart) node[circ] {} \else \pgfextra{ \def\pgf@temp{rectjoinfill} } \ifx\pgf@temp\pgf@circ@temp (\tikztostart) node[rectjoinfill] {} \else \fi \fi \fi \fi \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/right}} \def\pgf@temp{diamond} } \ifx\pgf@temp\pgf@circ@temp (\tikztotarget) node[diamondpole] {} \else \pgfextra{ \def\pgf@temp{empty} } \ifx\pgf@temp\pgf@circ@temp (\tikztotarget) node[ocirc] {} \else \pgfextra{ \def\pgf@temp{full} } \ifx\pgf@temp\pgf@circ@temp (\tikztotarget) node[circ] {} \else \pgfextra{ \def\pgf@temp{rectjoinfill} } \ifx\pgf@temp\pgf@circ@temp (\tikztotarget) node[rectjoinfill] {} \else \fi \fi \fi \fi } %% Lamp \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/lamp/height}}{lamp}{\ctikzvalof{bipoles/lamp/height}}{\ctikzvalof{bipoles/lamp/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{.7071*\pgf@circ@res@left}{.7071*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.7071*\pgf@circ@res@right}{.7071*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{.7071*\pgf@circ@res@left}{.7071*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.7071*\pgf@circ@res@right}{.7071*\pgf@circ@res@up}} \pgfusepath{draw} } \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tline/height} }{tline}{\ctikzvalof{bipoles/tline/height} }{\ctikzvalof{bipoles/tline/width} } { \pgf@circ@res@step=.2\pgf@circ@res@right % half x axis \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0}} {\pgfpoint{\pgf@circ@res@step}{0}} {\pgfpoint{0}{-\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpatharc{-90}{90}{-\pgf@circ@res@step and -\pgf@circ@res@up} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfusepath{draw} } %% SQUID added by Cor Molenaar 5 March 2010 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/squid/height}}{squid}{\ctikzvalof{bipoles/squid/height}}{\ctikzvalof{bipoles/squid/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{1.35*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.65*\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.65*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{1.35*\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{1.35*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.65*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.65*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{1.35*\pgf@circ@res@down}} \pgfusepath{draw} } % Generic barrier added by Cor Molenaar 5 March 2010 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/barrier/height}}{barrier}{\ctikzvalof{bipoles/barrier/height}}{\ctikzvalof{bipoles/barrier/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.35*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.35*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.35*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.35*\pgf@circ@res@up}} \pgfusepath{draw} } % Contributed by Danilo Piazzalunga \pgfdeclareshape{buffer} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \savedanchor\left{% \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } } \pgfdeclareshape{plain amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope } } %% Generic two port box \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/twoport/height}}{twoport}{\ctikzvalof{bipoles/twoport/height}}{\ctikzvalof{bipoles/twoport/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\ctikzvalof{bipoles/twoport/text}} } %% voltage controled oscillator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vco/width}}{vco}{\ctikzvalof{bipoles/twoport/width}}{\ctikzvalof{bipoles/vco/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vco/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@step} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner sine waves \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.5\pgf@circ@res@step}{0\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} } %% bandpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/bandpass/width}}{bandpass}{\ctikzvalof{bipoles/bandpass/width}}{\ctikzvalof{bipoles/bandpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/bandpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{0.35\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.65\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.65\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{-0.35\pgf@circ@res@step}} \pgfusepath{draw} } %% bandstop filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/bandstop/width}}{bandstop}{\ctikzvalof{bipoles/bandstop/width}}{\ctikzvalof{bipoles/bandstop/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/bandstop/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225% 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt}% always draw solid line for inner symbol \pgfsetarrows{-}%never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.15\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.15\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} } %% highpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/highpass/width}}{highpass}{\ctikzvalof{bipoles/highpass/width}}{\ctikzvalof{bipoles/highpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.15\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.15\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.65\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{-0.35\pgf@circ@res@step}} \pgfusepath{draw} } %% lowpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/lowpass/width}}{lowpass}{\ctikzvalof{bipoles/lowpass/width}}{\ctikzvalof{bipoles/lowpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{0.35\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.65\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.15\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.15\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} } %% ADC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/adc/width}}{adc}{\ctikzvalof{bipoles/adc/width}}{\ctikzvalof{bipoles/adc/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/adc/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\texti{A} \def\textii{D} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \def\texti{D} \def\textii{A} \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \def\texti{D} \def\textii{A} \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \def\texti{A} \def\textii{D} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftext[center,x=0.45\pgf@circ@res@left,y=0.45\pgf@circ@res@up]{\textsf{\texti}} \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textsf{\textii}} } %% DAC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dac/width}}{dac}{\ctikzvalof{bipoles/dac/width}}{\ctikzvalof{bipoles/dac/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/dac/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\texti{D} \def\textii{A} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \def\texti{A} \def\textii{D} \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \def\texti{A} \def\textii{D} \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \def\texti{D} \def\textii{A} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftext[center,x=0.45\pgf@circ@res@left,y=0.45\pgf@circ@res@up]{\textsf{\texti}} \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textsf{\textii}} } %% DSP \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dsp/width}}{dsp}{\ctikzvalof{bipoles/dsp/width}}{\ctikzvalof{bipoles/dsp/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/dsp/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\textsf{DSP}} } %% FFT \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fft/width}}{fft}{\ctikzvalof{bipoles/fft/width}}{\ctikzvalof{bipoles/fft/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/fft/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\textsf{FFT}} } %% Amplifier \pgfcircdeclarebipole{}{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{amp}{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@Rlen \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \ifpgf@circuit@boxed \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw input arrow \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi \ifpgf@circuit@boxed \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}} \pgfpathclose \pgfusepath{draw} % draw inner text \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}} } %% variable amplifier \pgfcircdeclarebipole{}{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{vamp}{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{ \ifpgf@circuit@boxed \ctikzvalof{bipoles/twoport/width} \else \ctikzvalof{bipoles/amp/width} \fi }{ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@Rlen \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \ifpgf@circuit@boxed \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw input arrow \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi \ifpgf@circuit@boxed \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}} \pgfpathclose \pgfusepath{draw} % draw inner text \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}} % draw arrow \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{-0.8\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@step}{0.6\pgf@circ@res@step}} \pgfusepath{draw} } %% pi attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/piattenuator/width}}{piattenuator}{\ctikzvalof{bipoles/piattenuator/width}}{\ctikzvalof{bipoles/piattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/piattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} } %% variable pi attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vpiattenuator/width}}{vpiattenuator}{\ctikzvalof{bipoles/vpiattenuator/width}}{\ctikzvalof{bipoles/vpiattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vpiattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfusepath{draw} } %% T attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tattenuator/width}}{tattenuator}{\ctikzvalof{bipoles/tattenuator/width}}{\ctikzvalof{bipoles/tattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/tattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0pt}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} } %% variable T attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vtattenuator/width}}{vtattenuator}{\ctikzvalof{bipoles/vtattenuator/width}}{\ctikzvalof{bipoles/vtattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vtattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0pt}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfusepath{draw} } %% phase shifter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/phaseshifter/width}}{phaseshifter}{\ctikzvalof{bipoles/phaseshifter/width}}{\ctikzvalof{bipoles/phaseshifter/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/phaseshifter/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % inner symbol \pgftext[center,x=0,y=0]{\Large$\varphi$} } %% variable phase shifter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/phaseshifter/width}}{vphaseshifter}{\ctikzvalof{bipoles/vphaseshifter/width}}{\ctikzvalof{bipoles/vphaseshifter/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vphaseshifter/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % inner symbol \pgftext[center,x=0,y=0]{\Large$\varphi$} \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0.65\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.65\pgf@circ@res@up}} \pgfusepath{draw} } %% detector \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/detector/width}}{detector}{\ctikzvalof{bipoles/detector/width}}{\ctikzvalof{bipoles/detector/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/detector/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \ifpgf@circuit@dashed \pgfsetdash{{0.1cm}{0.1cm}}{0cm} \fi % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % draw inner stuff \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{0.8\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@right}{0}} \pgfusepath{draw} \ifpgf@circuit@fulldiode \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/generic/width}} \pgftransformscale{\pgfmathresult} \pgfnode{fulldiodeshape}{center}{}{pgf@fulldiode}{\pgfusepath{fill}} \else \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/resistor/width}} \pgftransformscale{\pgfmathresult} \pgfnode{emptydiodeshape}{center}{}{pgf@emptydiode}{\pgfusepath{fill}} \fi } %% european gas filled surge arrester \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/european gas filled surge arrester/height}}{european gas filled surge arrester}{\ctikzvalof{bipoles/european gas filled surge arrester/height}}{\ctikzvalof{bipoles/european gas filled surge arrester/width}}{ %\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen %\divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/european gas filled surge arrester/inside}\pgf@circ@res@left}{0pt}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope } %% american gas filled surge arrester \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/american gas filled surge arrester/height}}{american gas filled surge arrester}{\ctikzvalof{bipoles/american gas filled surge arrester/height}}{\ctikzvalof{bipoles/american gas filled surge arrester/width}}{ %\def\pgf@circ@temp{right} %\ifx\tikz@res@label@pos\pgf@circ@temp % \pgf@circ@res@step=-1.2\pgf@circ@res@up %\else % \def\pgf@circ@temp{below} % \ifx\tikz@res@label@pos\pgf@circ@temp % \pgf@circ@res@step=-1.2\pgf@circ@res@up % \else % \pgf@circ@res@step=1.2\pgf@circ@res@up % \fi % \fi \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfnode{circle}{center}{}{}{} \pgfscope \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/inside}\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/inside}\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope{} %\pgftransformshift{\pgfpoint{.25\pgf@circ@res@left}{.45\pgf@circ@res@down}} %\pgfnode{circ}{center}{}{}{} %\pgftransformshift{} \pgfcircle{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/size}\pgf@circ@res@down} \pgfusepath{fill} } % % MECHANICAL SYMBOLS %% mechanical capacitance - stiffness/spring \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/spring/height}}{spring}{\ctikzvalof{bipoles/spring/height}}{\ctikzvalof{bipoles/spring/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@step} {(\ctikzvalof{bipoles/spring/width}*\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth)/16} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} \pgfsetcornersarced{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfsetbuttcap \pgfsetbeveljoin \pgfusepath{stroke} } %% mechanical inductance - mass \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/mass/box height}}{mass}{\ctikzvalof{bipoles/mass/height}}{\ctikzvalof{bipoles/mass/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfpathrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{-2\pgf@circ@res@down}{-2\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfsetrectcap \pgfsetmiterjoin \pgfusepath{stroke} } %% mechanical resistor - damper \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/damper/height}}{damper}{\ctikzvalof{bipoles/damper/height}}{\ctikzvalof{bipoles/damper/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right} {\pgf@circ@res@zero}} \pgfusepath{stroke} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfsetrectcap \pgfsetmiterjoin \pgfusepath{stroke} \pgfpathmoveto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right} {.8\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right} {.8\pgf@circ@res@up}} \pgfsetbuttcap \pgfusepath{stroke} } %%%---------- close: tex/pgfcircbipoles %%%%%%%%%%% Springe nach tex/pgfcirctripoles %%%---------- open: tex/pgfcirctripoles.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Tripoles \pgfdeclareshape{spdt} { \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out 1}{ \northwest \pgf@x=-\pgf@x } \anchor{out 2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/margin}\pgf@circ@res@left \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfnode{ocirc}{center}{}{spdt1}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgftransformshift{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfnode{ocirc}{center}{}{spdt2}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgfpathmoveto{\pgfpointshapeborder{spdt2}{\pgfpointorigin}} \pgfpathlineto{ \pgfpointadd{\pgfpointshapeborder{spdt1}{\pgfpoint{-\pgf@circ@res@other}{-100pt}}} {\pgfpoint{-.05\pgf@circ@res@up}{-.05\pgf@circ@res@up}} } \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Logic ports %% \long\def\pgfcircdeclarelogicport#1#2{ \pgfdeclareshape{american #1 port} { \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{in 1}{ \inOne } \anchor{in}{ \inOne } \anchor{in 2}{ \inOne \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \northwest \pgf@y=0pt \pgf@x=-.8\pgf@x } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x #2 } } } \pgfcircdeclarelogicport{and}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right} {.5\pgf@circ@res@down}} {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right} {0pt}} \pgfpathcurveto {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right} {.5\pgf@circ@res@up}} {\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} \pgfusepath{draw} } \pgfcircdeclarelogicport{nand}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/circle width}\pgf@circ@res@right \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{.5\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{.5\pgf@circ@res@up}} {\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} \pgfpathellipse {\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \pgfcircdeclarelogicport{nor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}\pgf@circ@res@right \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/circle width}\pgf@circ@res@right \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathellipse {\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \pgfcircdeclarelogicport{or}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}\pgf@circ@res@right \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfusepath{draw} } \pgfcircdeclarelogicport{xor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}\pgf@circ@res@right \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/distance}\pgf@circ@res@right+} \pgfpathmoveto{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{.95*\pgf@circ@res@down}} \pgfusepath{draw} } \pgfcircdeclarelogicport{xnor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input skip})*\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}\pgf@circ@res@right \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/circle width}\pgf@circ@res@right \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathcurveto {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/distance}\pgf@circ@res@right+} \pgfpathmoveto{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathcurveto {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{0pt}} \pgfpathcurveto {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{.95*\pgf@circ@res@down}} \pgfpathellipse {\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \pgfdeclareshape{american not port} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/circle width}\pgf@circ@res@right \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfusepath{draw} \pgfpathellipse {\pgfpoint{\pgf@circ@res@step-.5\pgf@circ@res@other}{0pt}} {\pgfpoint{.5\pgf@circ@res@other}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@other}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } } \pgfdeclareshape{invschmitt} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/circle width}\pgf@circ@res@right \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} \pgfpathellipse {\pgfpoint{\pgf@circ@res@step-.5\pgf@circ@res@other}{0pt}} {\pgfpoint{.5\pgf@circ@res@other}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@other}} \pgfsetfillcolor{white} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} %draw inner shape \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfusepath{draw} } } \pgfdeclareshape{schmitt} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/circle width}\pgf@circ@res@right \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right-\pgf@circ@res@other}{0pt}} \pgfusepath{draw} %draw inner shape \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}} \pgfusepath{draw} } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % #1 - name % #2 - text inside % #3 - number of inputs % #4 - is it a not \long\def\pgfcircdeclareeurologicport#1#2#3#4{ \pgfdeclareshape{european #1 port} { \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{in}{ \inOne } \anchor{in 1}{ \inOne } \anchor{in 2}{ \inOne \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \northwest \pgf@y=0pt \pgf@x=-.8\pgf@x } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \def\pgf@temp{1} \def\pgf@circ@temp{#3} \ifx\pgftemp\pgf@circ@temp % one input \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}} \else % two inputs \pgfpathmoveto{ \pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@up}} \pgfpathlineto{ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@up}} % \pgfpathmoveto{ \pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@down}} \pgfpathlineto{ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@down}} \fi% % % \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}} % \edef\pgf@temp{not} \edef\pgf@circ@temp{#4} \ifx\pgf@temp\pgf@circ@temp % is a not \pgfpathmoveto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/not width}\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/not height}\pgf@circ@res@up}} \fi % \pgfusepath{draw} % \pgfpathmoveto{\pgfpointorigin} \pgftext{#2} % % % \pgfsetlinewidth{2\pgflinewidth} \pgfpathrectanglecorners {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}{\pgf@circ@res@up}} {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % % } } } \pgfcircdeclareeurologicport{and}{$\&$}{2}{} \pgfcircdeclareeurologicport{or}{$\ge 1$}{2}{} \pgfcircdeclareeurologicport{xor}{$=1$}{2}{} \pgfcircdeclareeurologicport{not}{$1$}{1}{not} \pgfcircdeclareeurologicport{nand}{$\&$}{2}{not} \pgfcircdeclareeurologicport{nor}{$\ge 1$}{2}{not} \pgfcircdeclareeurologicport{xnor}{$=1$}{2}{not} \long\def\pgfcircdeclaretransistor#1#2#3{ \pgfdeclareshape{#1} { \anchor{center}{ \pgfpointorigin } \savedanchor\northeast{% upper right \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=0pt } \savedanchor\left{%center left \pgf@y=0pt \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@circ@Rlen } \anchor{text}{ \northeast \pgf@y=.7\pgf@y \pgf@x= \pgf@circ@Rlen \pgf@x=0.1\pgf@x } \anchor{pathstart}{ % south \northeast \pgf@y=-\pgf@y } \anchor{pathend}{ \northeast } \anchor{north}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=\pgf@circ@res@step \pgf@x=.5\pgf@x } \anchor{west}{ \left } \anchor{east}{ \northeast \pgf@y=0pt } \anchor{south}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=-\pgf@circ@res@step \pgf@x=.5\pgf@x } \anchor{south west}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{north east}{ \northeast } \anchor{north west}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=\pgf@circ@res@step } \anchor{south east}{ \northeast \pgf@y=-\pgf@y } \anchor{B}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@y \left \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@circ@res@step } \anchor{base}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@y \left \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@circ@res@step } \anchor{G}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@y \left \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@circ@res@step } \anchor{gate}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@y \left \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@circ@res@step } \anchor{nobase}{ \left \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@x } \anchor{nogate}{ \left \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@x } \anchor{E}{ \northeast \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{emitter}{ \northeast \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{C}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{collector}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{S}{ \northeast \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{D}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } \anchor{drain}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction}\pgf@y } #2 \backgroundpath{ \pgftransformationadjustments \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} % \ifnum \pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/curr direction} > 0 \pgf@circuit@trans@ntypetrue \else \pgf@circuit@trans@ntypefalse \fi \northeast \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = \pgf@x \left \pgf@circ@res@left = \pgf@x % #3 % BODY DIODE \ifpgf@circuit@fet@bodydiode \drawbodydiode{#1} \fi % } } } \long\def\drawbodydiode#1{ \pgfscope \pgftransformshift{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}} \pgftransformrotate{90} \pgftransformscale{\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode scale}} \ifpgf@circuit@fulldiode \pgfnode{fulldiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}} \else \pgfnode{emptydiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}} \fi \endpgfscope %Draw upper connection to body diode \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode distance}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{east}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@up}} \pgftransformscale{0.5} \pgfnode{circ}{center}{}{}{\pgfusepath{fill}} \endpgfscope{} %Draw lower connection to body diode \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@down}} \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{west}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/bodydiode conn}\pgf@circ@res@down}} \pgftransformscale{0.5} \pgfnode{circ}{center}{}{}{\pgfusepath{fill}} \endpgfscope } \long\def\declarebpt#1{ \pgfcircdeclaretransistor{#1}{}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height 2}\pgf@circ@res@up}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} %draw arrow depending on type of transiytor \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \ifpgf@circuit@trans@ntype \pgftransformlineattime{.5}{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height 2}\pgf@circ@res@down}% }{% \pgfpoint{\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down}% } \else \pgftransformlineattime{.5}{% \pgfpoint{\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up}% }{% \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height 2}\pgf@circ@res@up}% } \fi \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \ifpgf@circuit@bpt@drawphoto \pgfscope \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpointadd{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} {\pgfpoint{0.05\pgf@circ@res@left}{0.1\pgf@circ@res@up}}} \pgfpathlineto{\pgfpointadd{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} {\pgfpoint{0.5\pgf@circ@res@left}{0.3\pgf@circ@res@up}}} \pgfusepath{draw} \pgfpathmoveto{\pgfpointadd{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} {\pgfpoint{0.05\pgf@circ@res@left}{-0.1\pgf@circ@res@up}}} \pgfpathlineto{\pgfpointadd{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} {\pgfpoint{0.5\pgf@circ@res@left}{0.1\pgf@circ@res@up}}} \pgfusepath{draw} \endpgfscope \else \ifpgf@circuit@bpt@drawbase \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}} \pgfusepath{draw} \fi \fi } } \declarebpt{npn} \declarebpt{pnp} \long\def\declareigbt#1{ \pgfcircdeclaretransistor{#1}{} { %draw upper connection \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height 2}\pgf@circ@res@up}} \pgfusepath{draw} %draw thicker gate lines \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope %draw lower connection \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} %draw arrow depending on type of transiytor \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \ifpgf@circuit@trans@ntype \pgftransformlineattime{.5}{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height 2}\pgf@circ@res@down}% }{% \pgfpoint{\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@down}% } \else \pgftransformlineattime{.5}{% \pgfpoint{\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@up}% }{% \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height 2}\pgf@circ@res@up}% } \fi \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope %draw gate \ifpgf@circuit@trans@ntype \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \else \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@up}} \fi \pgfusepath{draw} } } \declareigbt{pigbt} \declareigbt{nigbt} \declareigbt{Lnigbt} \declareigbt{Lpigbt} \pgfcircdeclaretransistor{nmos}{}{% \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \ifpgf@circuit@mos@arrows \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.6}{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% }{% \pgfpoint {\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \fi \ifpgf@circuit@bpt@drawgate \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}} \pgfusepath{draw} \fi } \pgfcircdeclaretransistor{pmos}{}{% \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}} \pgfusepath{draw} \ifpgf@circuit@mos@arrows \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.4}{% \pgfpoint% {\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% }{% \pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \fi \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} \ifpgf@circuit@bpt@drawgate \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}} \pgfusepath{draw} \fi \pgfpathcircle{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen} {\pgf@circ@res@up+\pgf@circ@res@down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf@circ@Rlen} \ifpgf@circuit@pmos@emptycircle \pgfsetfillcolor{white} \fi \pgfusepath{draw,fill} } \long\def\drawfetcore#1{ \pgftransformationadjustments %top connection \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@up}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up}} \ifpgf@circuit@trans@depletiontype \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down}} \else \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up*0.45}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@up*0.25}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down*0.25}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@down*0.45}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base height}\pgf@circ@res@down}} \fi \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope %Bulk connection line \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth} {\pgf@circ@res@up+\pgf@circ@res@down}} %bottom connection \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} %draw thick gate line \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.6}{% \pgfpoint {\pgf@circ@res@right}% {\pgf@circ@res@up+\pgf@circ@res@down}% }{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@circ@res@left}% {\pgf@circ@res@up+\pgf@circ@res@down}% } \ifpgf@circuit@trans@ntype \else \pgftransformrotate{180} \fi \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope % GATE CONNECTION \ifpgf@circuit@bpt@drawgate \ifpgf@circuit@trans@ntype \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \else \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left} {-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/conn height}\pgf@circ@res@down}} \fi \pgfusepath{draw} \fi } \long\def\pgfdeclaretransistorwrapperaddbulk#1#2#3 {\pgfcircdeclaretransistor{#1}{ \anchor{bulk}{\left\pgf@x=0pt} \anchor{B}{\left\pgf@x=0pt}%override Base anchor from npn&igbt #2 } {#3} } \pgfdeclaretransistorwrapperaddbulk{nfet}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{nfet} } \pgfdeclaretransistorwrapperaddbulk{pfet}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{pfet} } % N-CHANNEL IGFET ENHANCEMENT TYPE \pgfdeclaretransistorwrapperaddbulk{nigfete}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{nigfete} % SOURCE CONNECTION \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}} \pgfnode{circ}{center}{}{}{} \endpgfscope{} \fi } % N-CHANNEL IGFET ENHANCEMENT TYPE with Bulk connector \pgfdeclaretransistorwrapperaddbulk{nigfetebulk}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{nigfetebulk} % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetebulk/gate height}\pgf@circ@res@down}} \pgfnode{circ}{center}{}{}{} \endpgfscope{} \fi } % N-CHANNEL IGFET DEPLETION TYPE \pgfdeclaretransistorwrapperaddbulk{nigfetd}{}{% \pgf@circuit@trans@depletiontypetrue \drawfetcore{nigfetd} % SOURCE CONNECTION \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}} \pgfnode{circ}{center}{}{}{} \endpgfscope{} \fi } % P-CHANNEL IGFET ENHANCEMENT TYPE \pgfdeclaretransistorwrapperaddbulk{pigfete}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{pigfete} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} % SOURCE CONNECTION \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@up}} \pgfnode{circ}{center}{}{}{} \endpgfscope \fi } % P-CHANNEL IGFET ENHANCEMENT TYPE with bulk connector \pgfdeclaretransistorwrapperaddbulk{pigfetebulk}{}{% \pgf@circuit@trans@depletiontypefalse \drawfetcore{pigfetebulk} } % P-CHANNEL IGFET DEPLETION TYPE \pgfdeclaretransistorwrapperaddbulk{pigfetd}{}{% \pgf@circuit@trans@depletiontypetrue \drawfetcore{pigfetd} % SOURCE CONNECTION \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@up}} \pgfnode{circ}{center}{}{}{} \endpgfscope{} \fi } \pgfcircdeclaretransistor{njfet}{}{% \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.6}{% \pgfpoint{\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}% }{% \pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}} \pgfusepath{draw} } \pgfcircdeclaretransistor{pjfet}{}{% \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.4}{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}% }{% \pgfpoint{\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}} \pgfusepath{draw} } \pgfdeclaretransistorwrapperaddbulk{isfet}{}{% \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}} % DRAIN CONNECTION \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@up}} % DRAIN \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@up}} \pgfusepath{draw} % GATE, DEPLETION TYPE \pgfscope %% added \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} %% added \pgfusepath{draw} %% added \endpgfscope %% added % BULK \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgf@circ@res@up+\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+.5\pgflinewidth} {\pgf@circ@res@up+\pgf@circ@res@down}} % SOURCE \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@down}} % SOURCE CONNECTION \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}} \pgfusepath{draw} % GATE %\pgfscope %\pgfpathmoveto{\pgfpoint % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate width}\pgf@circ@res@left} % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@up}} %\pgfpathlineto{\pgfpoint % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate width}\pgf@circ@res@left} % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@down}} %\pgfsetlinewidth{2\pgflinewidth} %\pgfusepath{draw} %\endpgfscope % SOLDER DOT at source-bulk connection \ifpgf@circuit@fet@solderdot \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}} \pgfnode{circ}{center}{}{}{} \endpgfscope{} \fi % ARROW \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.6}{% \pgfpoint {\pgf@circ@res@right}% {\pgf@circ@res@up+\pgf@circ@res@down}% }{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left}% {\pgf@circ@res@up+\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfusepath{draw} % Wavy lines \pgfscope \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves y sep}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves y sep}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black thyristor \pgfcircdeclarebipole{ \anchor{gate}{ \northeast } \anchor{anode}{ \southwest \pgf@y=0cm } \anchor{G}{ \northeast } \anchor{cathode}{ \northeast \pgf@y=0cm } }{\ctikzvalof{tripoles/thyristor/height 2}}{fullthyristor}{\ctikzvalof{tripoles/thyristor/height}}{\ctikzvalof{tripoles/thyristor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgf@circ@res@other = \ctikzvalof{tripoles/thyristor/diode width left}\pgf@circ@res@left \pgf@circ@res@step = \ctikzvalof{tripoles/thyristor/diode width right}\pgf@circ@res@right \pgfscope \pgftransformxshift{\pgf@circ@res@other} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfusepath{draw,fill} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } %% Empty thyristor \pgfcircdeclarebipole{ \anchor{gate}{ \northeast } \anchor{anode}{ \southwest \pgf@y=0cm } \anchor{G}{ \northeast } \anchor{cathode}{ \northeast \pgf@y=0cm } }{\ctikzvalof{tripoles/thyristor/height 2}}{emptythyristor}{\ctikzvalof{tripoles/thyristor/height}}{\ctikzvalof{tripoles/thyristor/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgf@circ@res@other = \ctikzvalof{tripoles/thyristor/diode width left}\pgf@circ@res@left \pgf@circ@res@step = \ctikzvalof{tripoles/thyristor/diode width right}\pgf@circ@res@right \pgfscope \pgftransformxshift{\pgf@circ@res@other} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } %% Empty triac \pgfcircdeclarebipole{ \anchor{gate}{ \northeast } \anchor{G}{ \northeast } \anchor{anode}{ \southwest \pgf@y=0cm } \anchor{cathode}{ \northeast \pgf@y=0cm } }{\ctikzvalof{tripoles/triac/height}}{emptytriac}{\ctikzvalof{tripoles/triac/height}}{\ctikzvalof{tripoles/triac/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgf@circ@res@other = \ctikzvalof{tripoles/triac/diode width left}\pgf@circ@res@left \pgf@circ@res@step = \ctikzvalof{tripoles/triac/diode width right}\pgf@circ@res@right \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@step}{0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@other}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} % sqrt(1/2) \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } %% Empty triac \pgfcircdeclarebipole{ \anchor{gate}{ \northeast } \anchor{G}{ \northeast } \anchor{anode}{ \southwest \pgf@y=0cm } \anchor{cathode}{ \northeast \pgf@y=0cm } }{\ctikzvalof{tripoles/triac/height}}{fulltriac}{\ctikzvalof{tripoles/triac/height}}{\ctikzvalof{tripoles/triac/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgf@circ@res@other = \ctikzvalof{tripoles/triac/diode width left}\pgf@circ@res@left \pgf@circ@res@step = \ctikzvalof{tripoles/triac/diode width right}\pgf@circ@res@right \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@step}{0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@other}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} \pgfusepath{draw,fill} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2) \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} % sqrt(1/2) \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } \pgfcircdeclarebipole{ \anchor{out 1}{ \northeast \pgf@y=0cm } \anchor{out 2}{ \northeast \pgf@y=.8\pgf@y } }{\ctikzvalof{tripoles/toggleswitch/height 2}}{toggleswitch}{\ctikzvalof{tripoles/toggleswitch/height}}{\ctikzvalof{tripoles/toggleswitch/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.3\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{.3\pgf@circ@res@left}{0pt}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{.15\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetdash{{.08\pgf@circ@res@up}{.04\pgf@circ@res@up}{.7\pgf@circ@res@up}{.04\pgf@circ@res@up}{.8\pgf@circ@res@up}}{0cm} \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@left}{.6\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.2\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetdash{}{0cm} } \pgfdeclareshape{op amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{north}{ \northwest \pgf@x=0pt } \savedanchor\left{% \pgf@y=0pt } \anchor{leftedge} {\left \pgf@x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@x } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $-$} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $+$} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfsetrectcap \pgfusepath{draw} \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} \endpgfscope } } %op amp shape as in european standard en 60617 \pgfdeclareshape{en amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{north}{ \northwest \pgf@x=0pt } \savedanchor\left{% \pgf@y=0pt } \anchor{leftedge} { \left \pgf@x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf@x } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \anchor{up}{ \northwest \pgf@x=0pt } \anchor{down}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/font} $-$} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf@circ@res@down}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/font} $+$} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfsetrectcap \pgfusepath{draw} \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} \endpgfscope \pgftext[base,y=-3ex,at=\pgfpoint{.3\pgf@circ@res@left}{\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/font2} $\triangleright$} \pgftext[base,y=-3ex,at=\pgfpoint{.3\pgf@circ@res@right}{\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/font2} $\infty$} } } %%Transkonduktanzverstärker \pgfdeclareshape{gm amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \anchor{north}{ \northwest } \savedanchor\left{% \pgf@y=0pt } \anchor{leftedge} {\left \pgf@x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@x } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $-$} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf@circ@res@down}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $+$} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.3\pgf@circ@res@right}{0pt}} % \pgfsetrectcap \pgfusepath{draw} \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step %Umrandung: \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0}} %geändert startpunkt neu am ausgangsstrich \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@up}}%vom Ausgang nach oben \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} %neu ecke links oben nach rechts oben \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} %bei deneigängen runter \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}}%ecke links unten nach rechts unten \pgfpathclose \pgfusepath{draw} \endpgfscope } } %% Potentiometer \pgfcircdeclarebipole{ \anchor{wiper}{ \northeast \pgfpoint{0pt}{\pgf@y} } \anchor{W}{ \northeast \pgfpoint{0pt}{\pgf@y} } }{\ctikzvalof{bipoles/potentiometer/height 2}}{potentiometer}{\ctikzvalof{bipoles/potentiometer/height}}{\ctikzvalof{bipoles/potentiometer/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgftransformationadjustments \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} \divide \pgf@circ@res@step by 12 \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} \pgf@circ@res@other = \pgf@circ@res@left \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfsetbeveljoin \pgfusepath{draw} \pgfscope %\pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Generic tunable \pgfcircdeclarebipole{ \anchor{wiper}{ \northeast \pgfpoint{0pt}{\pgf@y} } }{\ctikzvalof{bipoles/generic potentiometer/height 2}}{genericpotentiometer}{\ctikzvalof{bipoles/generic potentiometer/height}}{\ctikzvalof{bipoles/generic potentiometer/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 14 \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfscope %\pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } \pgfdeclareshape{mixer} { \savedanchor\northwest{ \ifpgf@circuit@boxed \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \else \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \fi } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{1}{ \northwest \pgf@y=0pt } \anchor{2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{3}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{4}{ \northwest \pgf@y=\pgf@y \pgf@x=0pt } \anchor{in 1}{ \northwest \pgf@y=0pt } \anchor{in1}{ \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{in 2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{in2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/mixer/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer box \ifpgf@circuit@boxed \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw outer circle \ifpgf@circuit@boxed \pgf@circ@res@step=.7\pgf@circ@res@step \pgfsetdash{}{0pt} % draw solid circle if boxed \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % draw inner stuff \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{135}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{-45}{0.5\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{45}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{-135}{0.5\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{adder} { \savedanchor\northwest{ \ifpgf@circuit@boxed \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \else \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \fi } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{1}{ \northwest \pgf@y=0pt } \anchor{2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{3}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{4}{ \northwest \pgf@y=\pgf@y \pgf@x=0pt } \anchor{in 1}{ \northwest \pgf@y=0pt } \anchor{in1}{ \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{in 2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{in2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/adder/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer box \ifpgf@circuit@boxed \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw outer circle \ifpgf@circuit@boxed \pgf@circ@res@step=.7\pgf@circ@res@step{} \pgfsetdash{}{0pt} % draw solid circle if boxed \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % draw inner stuff \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{0}{0.3\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{180}{0.3\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{90}{0.3\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{270}{0.3\pgf@circ@res@step}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{oscillator} { \savedanchor\northwest{ \ifpgf@circuit@boxed \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \else \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf@circ@Rlen \fi } \anchor{center}{ \pgfpointorigin } \anchor{north}{ \northwest \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@x=.5\pgf@x \pgf@y=-\pgf@y } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=0pt } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{text}{ \pgf@x=-2\pgf@x \advance \pgf@x by -.5\wd\pgfnodeparttextbox \advance \pgf@y by -1.5\ht\pgfnodeparttextbox } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/oscillator/width}\pgf@circ@Rlen{} \pgfscope \pgfstartlinewidth=\pgflinewidth \pgftransformxshift{-0.5\pgf@circ@res@step} % The oscillator is shifted to the left, so a connection comes out of the anchor "east" % draw outer box \ifpgf@circuit@boxed{} \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw outer circle \ifpgf@circuit@boxed \pgf@circ@res@step=.7\pgf@circ@res@step{} \pgfsetdash{}{0pt} % draw solid circle if boxed \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % draw inner sine waves \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! \pgfpathmoveto{\pgfpoint{-0.3\pgf@circ@res@step}{0\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{circulator} { \savedanchor\northwest{ \ifpgf@circuit@boxed \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \else \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \fi } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{1}{ \northwest \pgf@y=0pt } \anchor{2}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{3}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/circulator/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer box \ifpgf@circuit@boxed \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} \fi % draw outer circle \ifpgf@circuit@boxed{} \pgf@circ@res@step=.7\pgf@circ@res@step{} \pgfsetdash{}{0pt} % draw solid circle if boxed \else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \fi \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % inner arrow \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{-0.25\pgf@circ@res@step}{0}} \pgfpatharc{180}{-90} {0.25\pgf@circ@res@step} \pgfpathlineto{\pgfpoint{-5pt}{-0.2\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } % Wilkinson divider \pgfdeclareshape{wilkinson}{ \anchor{center}{ \northwest \pgf@x=0pt \pgf@y=0pt } \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x= \pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/width}\pgf@x } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out1}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{out2}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{text}{ \northwest \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfstartlinewidth=\pgflinewidth % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw inner stuff \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetarrows{-} %never draw arrows \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetdash{}{0pt} % always draw solid line for inner symbol % draw inner resisitor - european or american style is recognised { \pgftransformshift{\pgfpoint{0.5\pgf@circ@res@right}{0pt}} \pgftransformrotate{90} % calculate size of resistor \ifpgf@circuit@europeanresistor \pgfmathparse{\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/generic/width} / 2} \pgftransformscale{\pgfmathresult} \pgfnode{genericshape}{center}{}{pgf@generic}{\pgfusepath{fill}} \else \pgfmathparse{\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/resistor/width} / 2} \pgftransformscale{\pgfmathresult} \pgfnode{resistorshape}{center}{}{pgf@resistor}{\pgfusepath{fill}} \fi } \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} } } % electromechanical device (motor/generator) \pgfdeclareshape{elmech} { \savedanchor\northwest{ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{text}{ \pgfpointorigin \advance \pgf@x by -.5\wd\pgfnodeparttextbox \advance \pgf@y by -.5\ht\pgfnodeparttextbox } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{right}{% \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{top}{ \northwest \pgf@x=0pt } \anchor{pathstart}{ \northwest \pgf@x=0pt } \anchor{pathend}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{bottom}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/elmech/width}\pgf@circ@Rlen \pgf@circ@res@up=\ctikzvalof{tripoles/elmech/height}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer box % \ifpgf@circuit@boxed % \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} % \fi % draw outer circle %\ifpgf@circuit@boxed % \pgf@circ@res@step=.7\pgf@circ@res@step % \pgfsetdash{}{0pt} % draw solid circle if boxed %\else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} %\fi \pgfpathrectangle{\pgfpoint{-.25\pgf@circ@res@step}{-.5\pgf@circ@res@up}}{\pgfpoint{.5\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfsetfillcolor{black} \pgfusepath{draw,fill} \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfsetfillcolor{white} \pgfusepath{draw,fill} \endpgfscope } } \pgfdeclareshape{magnetron} { \savedanchor\northwest{ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{anode}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{cathode1}{ \northwest \pgf@circ@res@step=\pgf@y \pgfmathparse{cos(105)} \pgf@x=\pgfmathresult\pgf@circ@res@step \pgfmathparse{sin(105)} \pgf@y=\pgfmathresult\pgf@circ@res@step %\pgfpointorigin %\pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@step}}%not working in a scaled tikzpicture } \anchor{cathode2}{ \northwest \pgf@circ@res@step=\pgf@y \pgfmathparse{cos(75)} \pgf@x=\pgfmathresult\pgf@circ@res@step \pgfmathparse{sin(75)} \pgf@y=\pgfmathresult\pgf@circ@res@step %\pgfpointorigin %\pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@step}}%not working in a scaled tikzpicture } \anchor{text}{ \pgfpointorigin \advance \pgf@x by -.5\wd\pgfnodeparttextbox \advance \pgf@y by -.5\ht\pgfnodeparttextbox } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{right}{% \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{top}{ \northwest \pgf@x=0pt } \anchor{pathstart}{ \northwest \pgf@x=0pt } \anchor{pathend}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{bottom}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/magnetron/width}\pgf@circ@Rlen \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfmathsetlength{\pgf@circ@res@other}{sin(15)*\pgf@circ@res@up} \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer box % \ifpgf@circuit@boxed % \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} % \fi % draw outer circle %\ifpgf@circuit@boxed % \pgf@circ@res@step=.7\pgf@circ@res@step % \pgfsetdash{}{0pt} % draw solid circle if boxed %\else \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} %\fi %create outer circle \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@right} \pgfsetfillcolor{white} \pgfusepath{draw} %create chambers \foreach \angle in {45,135,225,315}{ \pgfpathmoveto{ \pgfpointpolar{\angle}{0.6\pgf@circ@res@right}} \pgfpathlineto{ \pgfpointpolar{\angle}{\pgf@circ@res@right}} } \pgfsetroundcap \pgfusepath{draw} \pgfscope %draw connection from outside %anode \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0\pgf@circ@res@right}{.5\pgf@circ@res@down}} %cathodes \pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}} \pgfsetbuttcap \pgfusepath{draw} \endpgfscope %create cathode \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.15\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}} \pgfusepath{draw} %create anode \pgfpathmoveto{\pgfpoint{0.3\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfsetbuttcap \pgfusepath{draw} \endpgfscope } } %%%---------- close: tex/pgfcirctripoles %%%%%%%%%%% Springe nach tex/pgfcircquadpoles %%%---------- open: tex/pgfcircquadpoles.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Quadripoles \long\def\pgfcircdeclarequadpole#1#2#3{ \pgfdeclareshape{#1} { \anchor{center}{ \northwest \pgf@x=0pt } \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=.5\pgf@circ@Rlen \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf@x } \anchor{A2}{ \northwest \pgf@y=-\pgf@y } \anchor{B1}{ \northwest \pgf@x=-\pgf@x } \anchor{A1}{ \northwest } \anchor{B2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{base}{ \northwest \pgf@x=0pt } #3 \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x #2 } } } \def\pgf@circ@drawtransformerbasicanchor{ \pgfkeysvalueof{/tikz/circuitikz/quadpoles/trans/height} \anchor{AA2}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB1}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{AA1}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB2}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } } \def\pgf@circ@drawtransformerbasicbody{ \def\stretto{.4} \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@left}% {\pgf@circ@res@up}% }{% \pgfpoint {\stretto\pgf@circ@res@left}% {\pgf@circ@res@down}% } \edef\pgf@circ@temp{\ctikzvalof{inductor}}% \def\pgf@temp{european}% \ifx\pgf@temp\pgf@circ@temp% \pgfnode{fullgenericshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}} \else% \def\pgf@temp{cute} \ifx\pgf@temp\pgf@circ@temp% \pgfnode{cuteinductorshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}} \else% \pgfnode{americaninductorshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}} \fi% \fi% \endpgfscope \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@right}% {\pgf@circ@res@down}% }{% \pgfpoint {\stretto\pgf@circ@res@right}% {\pgf@circ@res@up}% } \edef\pgf@circ@temp{\ctikzvalof{inductor}}% \def\pgf@temp{european}% \ifx\pgf@temp\pgf@circ@temp% \pgfnode{fullgenericshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}} \else% \def\pgf@temp{cute} \ifx\pgf@temp\pgf@circ@temp% \pgfnode{cuteinductorshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}} \else% \pgfnode{americaninductorshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}} \fi% \fi% \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor1}{b}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor1}{a}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor2}{a}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor2}{b}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } % contrib Kristofer M. Monisit \pgfdeclareshape{fd op amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \anchor{north}{ \northwest } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out +}{ \northwest \pgf@y=.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{out -}{ \northwest \pgf@y=-.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \pgf@x=-\pgf@x } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x % Negative input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $-$} % Positive input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $+$} % Negative output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@down}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $-$} % Positive output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@up}]{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/font} $+$} \pgfsetrectcap % Draw them all! \pgfusepath{draw} % Triangle \pgfscope \pgfsetlinewidth{2\pgflinewidth} \pgftransformxshift{.7\pgf@circ@res@left} \pgf@circ@res@step=\pgf@circ@res@right \advance\pgf@circ@res@step by -\pgf@circ@res@left \pgf@circ@res@step=.7\pgf@circ@res@step \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathclose \pgfusepath{draw} \endpgfscope } } \pgfcircdeclarequadpole{transformer}{ \pgf@circ@drawtransformerbasicbody }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{transformer core}{ \pgf@circ@drawtransformerbasicbody \pgfmoveto{\pgfpoint% {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@right}% {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}% } \pgflineto{ \pgfpoint {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@right}% {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}% } \pgfmoveto{\pgfpoint% {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@left}% {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}% } \pgflineto{ \pgfpoint {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@left}% {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}% } \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth} \pgfusepath{draw} }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{gyrator}{ \def\stretto{.4} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@left}{.7*\stretto\pgf@circ@res@down}} \pgfpatharc{90}{270}{.7*\stretto\pgf@circ@res@down} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@right}{.7*\stretto\pgf@circ@res@up}} \pgfpatharc{-90}{90}{.7*\stretto\pgf@circ@res@down} \pgfusepath{draw} }{} %% four-port % defines a general outer box for four-ports % TikZ usage: % \draw (0,0) node[coupler](coup){\SI{-3}{dB}} % (coup.port1) to[short,-o] ++(-1,0) % \long\def\pgfcircdeclarefourport#1#2{ \pgfdeclareshape{#1}{ \anchor{center}{ \northwest \pgf@x=0pt \pgf@y=0pt } \savedanchor\northwest{% \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=.5\pgf@circ@Rlen \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf@x } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{port1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{port2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{port3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{port4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{text}{ \northwest \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northwest \pgf@circ@res@up = \pgf@y \pgf@circ@res@down = -\pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfstartlinewidth=\pgflinewidth % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw inner stuff #2 % draw inner text \pgftext[center,x=-0.15\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}} } } } % four-port \pgfcircdeclarefourport{fourport}{} % straight coupler \pgfcircdeclarefourport{coupler}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfsetarrows{latex-latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfsetarrows{latex-latex} \pgfusepath{draw} } % "bended" coupler \pgfcircdeclarefourport{coupler2}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{180}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{-180}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} } %%%---------- close: tex/pgfcircquadpoles %%%%%%%%%%% Springe nach tex/pgfcirclabel %%%---------- open: tex/pgfcirclabel.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Bipole label positioning %% Options \ctikzset{label/.style = { l=#1 } } \ctikzset{l/.code = { \pgfkeys{/tikz/circuitikz/bipole/label/name=#1} \ctikzsetvalof{bipole/label/unit}{} \ifpgf@circ@siunitx \pgf@circ@handleSI{#1} \ifpgf@circ@siunitx@res \edef\pgf@temp{\pgf@circ@handleSI@val} \pgfkeyslet{/tikz/circuitikz/bipole/label/name}{\pgf@temp} \edef\pgf@temp{\pgf@circ@handleSI@unit} \pgfkeyslet{/tikz/circuitikz/bipole/label/unit}{\pgf@temp} \else \fi \else \fi }} \ctikzset{label above/.code = { l=#1, \circuitikzbasekey/bipole/label/position=90 } } \ctikzset{l^/.style = { l=#1, \circuitikzbasekey/bipole/label/position=90 } } \ctikzset{label below/.code = { l=#1, \circuitikzbasekey/bipole/label/position=-90 } } \ctikzset{l_/.style = { l=#1, \circuitikzbasekey/bipole/label/position=-90 } } \ctikzset{annotation/.style = { a=#1 } } \ctikzset{a/.code = { \pgfkeys{/tikz/circuitikz/bipole/annotation/name=#1} \ctikzsetvalof{bipole/annotation/unit}{} \ifpgf@circ@siunitx \pgf@circ@handleSI{#1} \ifpgf@circ@siunitx@res \edef\pgf@temp{\pgf@circ@handleSI@val} \pgfkeyslet{/tikz/circuitikz/bipole/annotation/name}{\pgf@temp} \edef\pgf@temp{\pgf@circ@handleSI@unit} \pgfkeyslet{/tikz/circuitikz/bipole/annotation/unit}{\pgf@temp} \else \fi \else \fi }} \ctikzset{annotation above/.code = { a=#1, \circuitikzbasekey/bipole/annotation/position=90 } } \ctikzset{a^/.style = { a=#1, \circuitikzbasekey/bipole/annotation/position=90 } } \ctikzset{annotation below/.code = { a=#1, \circuitikzbasekey/bipole/annotation/position=-90 } } \ctikzset{a_/.style = { a=#1, \circuitikzbasekey/bipole/annotation/position=-90 } } \def\pgf@circ@drawlabels#1{ \pgfextra{ \pgfmathsubtract{\pgf@circ@direction}{90} \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/position}} \ifnum \pgf@circ@temp < 0 \pgfmathadd{\pgf@circ@labanc}{180} \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi \ifpgf@circuit@bipole@inverted \pgfmathadd{\pgf@circ@temp}{180} %If shape is inverted, use opposite anchor \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi \ifnum \ctikzvalof{mirror value} = -1 \pgfmathadd{\pgf@circ@temp}{180} %If shape is mirrored, use opposite anchor \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi } %Firstly, place a coodinate directly at the edge of the shape (\ctikzvalof{bipole/name}.\pgf@circ@temp) coordinate (labelcoor) %now decide, which labels should be drawn \pgfextra{ \edef\pgf@temp{\ctikzvalof{label/align}} \def\pgf@circ@temp{straight} } \ifx\pgf@temp\pgf@circ@temp %straight \pgf@circ@drawreglabels{#1} \else \pgfextra{\def\pgf@circ@temp{rotate}} \ifx\pgf@temp\pgf@circ@temp %rotate \pgf@circ@drawrotlabels{#1} \else% smart \pgf@circ@drawsmartlabels{#1} \fi \fi } \def\pgf@circ@drawsmartlabels#1{ \pgfextra{ \pgfmathmod{\pgf@circ@direction}{90} \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} } \ifnum \pgfcircmathresult > 20 \ifnum \pgfcircmathresult < 70 \pgf@circ@drawrotlabels{#1} \else \pgf@circ@drawreglabels{#1} \fi \else \pgf@circ@drawreglabels{#1} \fi } \def\pgf@circ@drawrotlabels#1{ \pgfextra{ \ifnum \ctikzvalof{bipole/#1/position}>0 %we need some more space for placement below, due to mid-anchor \def\pgf@circ@labposdistance{1.5ex} \else \def\pgf@circ@labposdistance{2ex} \fi %Calculate rotation of the label from direction and strip decimals \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} % rotate the label at second or third quadrant: \ifnum \pgfcirclabrot > 90 \ifnum \pgfcirclabrot < 270 \pgfmathsubtract{\pgf@circ@direction}{180} \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} %invert the space relationships due to rotatet strings \ifnum \ctikzvalof{bipole/#1/position}>0 \def\pgf@circ@labposdistance{2ex} \else \def\pgf@circ@labposdistance{1.5ex} \fi \fi\fi \pgfmathparse{\ctikzvalof{bipole/#1/position}>0?\pgf@circ@direction+90:\pgf@circ@direction-90} \edef\pgf@circ@labposangle{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} } (labelcoor)++(\pgf@circ@labposangle:\pgf@circ@labposdistance) coordinate(labelcoor) node[anchor=mid,rotate=\pgfcirclabrot](\ctikzvalof{bipole/name}#1){\pgf@circ@finallabels{#1}} } \def\pgf@circ@drawreglabels#1{ %Now calculate all shape positions %Use mid-anchor at x-axis and base-anchor at y-axis, respectively. %All points between will be addressed by angled-anchors: \pgfextra{ \pgfmathadd{\pgf@circ@labanc}{90} \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \pgfmathparse{mod(\pgf@circ@temp,180)>135?mod(\pgf@circ@temp,180)-180:mod(\pgf@circ@temp,180)} \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} } %Values between -5 and 5 are at pos /neg x-axis, values around 90 are at both y-axis \ifnum \pgfcircmathresult > 84 \ifnum \pgfcircmathresult< 96 \pgfextra{\edef\pgf@circ@labpos{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}} \ifnum \pgf@circ@labpos > 180 \ifnum \ctikzvalof{bipole/#1/position} > 0 \pgfextra{\def\pgf@circ@labanc{mid west}} \else \pgfextra{\def\pgf@circ@labanc{mid east}} \fi \else \ifnum \ctikzvalof{bipole/#1/position} > 0 \pgfextra{\def\pgf@circ@labanc{mid east}} \else \pgfextra{\def\pgf@circ@labanc{mid west}} \fi \fi \fi\fi \ifnum \pgfcircmathresult <6 \ifnum \ctikzvalof{bipole/#1/position} < 0 %we need some more space for placement below, due to mid-anchor (labelcoor)++(-\pgf@circ@labanc:2ex) coordinate(labelcoor) \else (labelcoor)++(-\pgf@circ@labanc:1.5ex) coordinate(labelcoor) \fi \pgfextra{\def\pgf@circ@labanc{mid}} \fi (labelcoor) node[anchor=\pgf@circ@labanc](\ctikzvalof{bipole/name}#1){\pgf@circ@finallabels{#1}} } \def\pgf@circ@finallabels#1{% \edef\pgf@temp{}% \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/unit}}% \ifx\pgf@temp\pgf@circ@temp% \ctikzvalof{bipole/#1/name}% \else% $\SI{\ctikzvalof{bipole/#1/name}}{\ctikzvalof{bipole/#1/unit}}$% \fi% } \ctikzset{text/.style = { t=#1 } } \ctikzset{t/.code = { \ctikzsetvalof{bipoles/twoport/text}{#1} }} %%%---------- close: tex/pgfcirclabel %%%%%%%%%%% Springe nach tex/pgfcircvoltage %%%---------- open: tex/pgfcircvoltage.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Voltage management \ctikzset{v^>/.style = { v = #1, \circuitikzbasekey/bipole/voltage/direction = forward, \circuitikzbasekey/bipole/voltage/position = above } } \ctikzset{v^/.style = { v = #1, \circuitikzbasekey/bipole/voltage/direction = forward, \circuitikzbasekey/bipole/voltage/position = below } } \ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} } \ctikzset{v4 \ifnum\pgfcircmathresult <86 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north west} \else \def\pgf@circ@bipole@voltage@label@anchor{south east} \fi \fi\fi \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{west} \else \def\pgf@circ@bipole@voltage@label@anchor{east} \fi \fi\fi \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south west} \else \def\pgf@circ@bipole@voltage@label@anchor{north east} \fi \fi\fi \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south} \else\def\pgf@circ@bipole@voltage@label@anchor{north} \fi \fi\fi \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south east} \else\def\pgf@circ@bipole@voltage@label@anchor{north west} \fi \fi\fi \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{east} \else \def\pgf@circ@bipole@voltage@label@anchor{west} \fi \fi\fi \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north east} \else\def\pgf@circ@bipole@voltage@label@anchor{south west} \fi \fi\fi \ifnum\pgfcircmathresult >-1 \ifnum\pgfcircmathresult <5 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north} \else\def\pgf@circ@bipole@voltage@label@anchor{south} \fi \fi\fi \ifnum\pgfcircmathresult >355 \ifnum\pgfcircmathresult <361 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north} \else\def\pgf@circ@bipole@voltage@label@anchor{south} \fi \fi\fi \ifnum \ctikzvalof{mirror value}=-1 \ifpgf@circuit@bipole@voltage@below \pgf@circuit@bipole@voltage@belowfalse \else \pgf@circuit@bipole@voltage@belowtrue \fi \fi \ifpgf@circuit@bipole@inverted \ifpgf@circuit@bipole@voltage@below \pgf@circuit@bipole@voltage@belowfalse \else \pgf@circuit@bipole@voltage@belowtrue \fi \fi \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@where{-90} \else \def\pgf@circ@bipole@voltage@label@where{90} \fi \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance} \pgfkeysifdefined{\pgf@temp} { \edef\eudist{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}} } { \edef\eudist{\ctikzvalof{voltage/european label distance}} } \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! }%end pgfextra \ifpgf@circuit@bipole@isvoltage \pgf@circ@drawvoltagegenerator \else \pgf@circ@drawvoltagegeneric \fi % (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where) %Zeile sinnlos!? \ifpgf@circuit@bipole@voltage@straight coordinate (Vlab) at ($(pgfcirc@Vto)!0.5!(pgfcirc@Vfrom) $) node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] at (Vlab) { \pgf@circ@finallabels{voltage/label} } \else coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) ! \ifpgf@circuit@europeanvoltage \eudist \else \ctikzvalof{voltage/american label distance} \fi ! (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where)$) node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] at (Vlab) { \pgf@circ@finallabels{voltage/label} } \fi }%end drawvoltages %%%---------- close: tex/pgfcircvoltage %%%%%%%%%%% Springe nach tex/pgfcirccurrent %%%---------- open: tex/pgfcirccurrent.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Current handling %% Options \ctikzset{i^>/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = after, \circuitikzbasekey/bipole/current/y position = above } } \ctikzset{i_>/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = after, \circuitikzbasekey/bipole/current/y position = below } } \ctikzset{i>^/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = before, \circuitikzbasekey/bipole/current/y position = above } } \ctikzset{i>_/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = before, \circuitikzbasekey/bipole/current/y position = below } } \ctikzset{i^/.style = {i = #1, \circuitikzbasekey/bipole/current/direction = forward } } \ctikzset{i^/.style = { i= #1, \circuitikzbasekey/bipole/current/y position = above } } %% Output routine \def\pgf@circ@drawcurrent{ \pgfextra{ \edef\pgf@circ@ffffff{\pgf@circ@direction} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@ffffff\pgf@nil} \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north west} \else \def\pgf@circ@dir{south east} \fi \fi\fi \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{west} \else \def\pgf@circ@dir{east} \fi \fi\fi \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south west}\else \def\pgf@circ@dir{north east} \fi \fi\fi \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south}\else\def\pgf@circ@dir{north} \fi \fi\fi \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south east}\else\def\pgf@circ@dir{north west} \fi \fi\fi \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{east}\else \def\pgf@circ@dir{west} \fi \fi\fi \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north east}\else\def\pgf@circ@dir{south west} \fi \fi\fi \ifnum\pgfcircmathresult <5 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifnum\pgfcircmathresult >355 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifpgf@circuit@bipole@current@below \def\pgf@circ@bipole@current@label@where{-90} \else \def\pgf@circ@bipole@current@label@where{+90} \fi } \pgfextra{\def\pgf@temp{short}\edef\pgf@circ@temp{\ctikzvalof{bipole/kind}}} \ifx\pgf@circ@temp\pgf@temp%draw current at a short at middle of the line (\tikztostart)--(\tikztotarget) \else% normal bipole or source \ifpgf@circuit@bipole@current@before (\tikztostart)--(anchorstartnode) \else (anchorendnode)--(\tikztotarget) \fi \fi \ifpgf@circuit@bipole@current@backward \pgfextra{ \pgfmathsubtract{\pgf@circ@ffffff}{180} \edef\pgf@circ@ffffff{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} } \fi coordinate[currarrow,pos=\ctikzvalof{current/distance},rotate=\pgf@circ@ffffff](Iarrow) (Iarrow.\pgf@circ@bipole@current@label@where) node[anchor=\pgf@circ@dir]{\pgf@circ@finallabels{current/label}} } %%%---------- close: tex/pgfcirccurrent %%%%%%%%%%% Springe nach tex/pgfcircflow %%%---------- open: tex/pgfcircflow.tex % Copyright 2007-2009 by Massimo Redaelli % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% flow handling %% Options \ctikzset{f^>/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward, \circuitikzbasekey/bipole/flow/x position = after, \circuitikzbasekey/bipole/curflowrent/y position = above } } \ctikzset{f_>/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward, \circuitikzbasekey/bipole/flow/x position = after, \circuitikzbasekey/bipole/flow/y position = below } } \ctikzset{f>^/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward, \circuitikzbasekey/bipole/flow/x position = before, \circuitikzbasekey/bipole/flow/y position = above } } \ctikzset{f>_/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward, \circuitikzbasekey/bipole/flow/x position = before, \circuitikzbasekey/bipole/flow/y position = below } } \ctikzset{f^/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward } } \ctikzset{f^/.style = { f = #1, \circuitikzbasekey/bipole/flow/y position = above } } \ctikzset{f/.code = { \pgfkeys{\circuitikzbasekey/bipole/flow/direction = forward, \circuitikzbasekey/bipole/flow/x position = after, \circuitikzbasekey/bipole/flow/y position = above } \pgfkeys{/tikz/circuitikz/bipole/flow/label/name=#1} \ctikzsetvalof{bipole/flow/label/unit}{} \ifpgf@circ@siunitx \pgf@circ@handleSI{#1} \ifpgf@circ@siunitx@res \edef\pgf@temp{\pgf@circ@handleSI@val} \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/name}{\pgf@temp} \edef\pgf@temp{\pgf@circ@handleSI@unit} \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/unit}{\pgf@temp} \else \fi \else \fi } } %% Output routine \def\pgf@circ@drawflow{ \pgfextra{ \edef\pgf@circ@ffffff{\pgf@circ@direction} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@ffffff\pgf@nil} \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{north west} \else \def\pgf@circ@dir{south east} \fi \fi\fi \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{west} \else \def\pgf@circ@dir{east} \fi \fi\fi \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{south west}\else \def\pgf@circ@dir{north east} \fi \fi\fi \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{south}\else\def\pgf@circ@dir{north} \fi \fi\fi \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{south east}\else\def\pgf@circ@dir{north west} \fi \fi\fi \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{east}\else \def\pgf@circ@dir{west} \fi \fi\fi \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{north east}\else\def\pgf@circ@dir{south west} \fi \fi\fi \ifnum\pgfcircmathresult <5 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifnum\pgfcircmathresult >355 \ifpgf@circuit@bipole@flow@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifpgf@circuit@bipole@flow@below \def\pgf@circ@bipole@flow@label@where{-90} \else \def\pgf@circ@bipole@flow@label@where{+90} \fi } \pgfextra{\def\pgf@temp{short}\edef\pgf@circ@temp{\ctikzvalof{bipole/kind}}} \ifx\pgf@circ@temp\pgf@temp%draw flow at a short at middle of the line (\tikztostart)--(\tikztotarget) \else% normal bipole or source \ifpgf@circuit@bipole@flow@before (\tikztostart)--(anchorstartnode) \else (anchorendnode)--(\tikztotarget) \fi \fi \pgfextra{ \ifpgf@circuit@bipole@flow@backward \ifpgf@circuit@bipole@flow@below \def\flow@offset{\ctikzvalof{flow/offset}\pgf@circ@Rlen} \else \def\flow@offset{-\ctikzvalof{flow/offset}\pgf@circ@Rlen} \fi \pgfmathsubtract{\pgf@circ@ffffff}{180} \edef\pgf@circ@ffffff{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \else \ifpgf@circuit@bipole@flow@below \def\flow@offset{-\ctikzvalof{flow/offset}\pgf@circ@Rlen} \else \def\flow@offset{\ctikzvalof{flow/offset}\pgf@circ@Rlen} \fi \fi } coordinate[flowarrow,pos=\ctikzvalof{flow/distance},rotate=\pgf@circ@ffffff,yshift=\flow@offset](Farrowpos) (Farrowpos.\pgf@circ@bipole@flow@label@where) node[anchor=\pgf@circ@dir]{ \pgf@circ@finallabels{flow/label}} } %%%---------- close: tex/pgfcircflow % defaults \setupmodule [current=european, voltage=european, resistor=american, inductor=cute, logic=american, siunitx=true, arrowmos=false] \processaction [\currentmoduleparameter{voltage}] [european=>\ctikzset{voltage=european}, american=>\ctikzset{voltage=american}] \processaction [\currentmoduleparameter{current}] [european=>\ctikzset{ current=european}, american=>\ctikzset{ current=american}] \processaction [\currentmoduleparameter{label}] [straight=>\ctikzset{label/align = straight}, align=>\ctikzset{label/align = rotate}, smart=>\ctikzset{label/align = smart}] \processaction [\currentmoduleparameter{resistor}] [european=>\ctikzset{ resistor=european}, american=>\ctikzset{ resistor=american}] \processaction [\currentmoduleparameter{inductor}] [european=>\ctikzset{ inductor=european}, american=>\ctikzset{ inductor=american}, cute=>\ctikzset{ inductor=cute}] \processaction [\currentmoduleparameter{diode}] [full=>\ctikzset{ diode=full}, empty=>\ctikzset{ diode=empty}] \processaction [\currentmoduleparameter{logic}] [european=>\ctikzset{ logic ports=european}, american=>\ctikzset{ logic ports=american}] \processaction [\currentmoduleparameter{siunitx}] [true=>\def\SI#1#2{#1\,#2} \def\ampere{\rm{A}} \def\volt{\rm{V}} \def\ohm{\Omega} \def\siemens{\rm{S}} \def\farad{\rm{F}} \def\henry{\rm{H}} \def\second{\rm{s}} \def\coulomb{\rm{C}} \def\siemens{\rm{S}} \def\radians{\rm{rad}} \def\milli{\rm{m}} \def\micro{\mu} \def\nano{\rm{n}} \def\pico{\rm{p}} \def\kilo{\rm{k}} \def\mega{\rm{M}} \def\giga{\rm{G}} \def\tera{\rm{T}}, false=>] % \s!default=>\pgf@circ@siunitxtrue, \processaction [\currentmoduleparameter{arrowmos}] [true=>\pgf@circuit@mos@arrowstrue, false=>\pgf@circuit@mos@arrowsfalse] % \s!default=>\pgf@circuit@mos@arrowstrue, \ifpgf@circ@siunitx % nothing! siunitx and xstrings don't work in context \fi % Context specific \ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]} %%%%%%%%%%% Springe nach tex/pgfcircpath %%%---------- open: tex/pgfcircpath.tex \def\pgf@circ@direction{0.0} % Names \ctikzset{name/.style = { n=#1 } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ \ctikzset{n/.code = { \pgfkeys{/tikz/circuitikz/bipole/name=#1} }} % Reflect the node along \ctikzset{mirrored/.is choice} \ctikzset{mirror value/.initial=1} \ctikzset{mirrored/true/.code = {\ctikzsetvalof{mirror value}{-1}} } \ctikzset{mirrored/false/.code = {\ctikzsetvalof{mirror value}{1}} } \ctikzset{mirror/.style = {/tikz/circuitikz/mirrored=true}} % Invert node along path \ctikzset{inverted/.is choice} \ctikzset{invert value/.initial=1} \ctikzset{inverted/true/.code = {\ctikzsetvalof{invert value}{-1}\pgf@circuit@bipole@invertedtrue}} \ctikzset{inverted/false/.code = {\ctikzsetvalof{invert value}{1}\pgf@circuit@bipole@invertedfalse}} \ctikzset{invert/.style = {/tikz/circuitikz/inverted=true}} \newif\ifpgf@circuit@bipole@inverted \ctikzset{bipole/inverted/.is if=pgf@circuit@bipole@inverted} \newif\ifpgf@circuit@bipole@voltage@backward \ctikzset{bipole/voltage/direction/.is choice} \ctikzset{bipole/voltage/direction/forward/.code={\pgf@circuit@bipole@voltage@backwardfalse}} \ctikzset{bipole/voltage/direction/backward/.code={\pgf@circuit@bipole@voltage@backwardtrue}} % Initialize paths \def\pgfcircresetpath{ \ctikzset{bipole/name=, bipole/label/name=, bipole/label/position=90, ,bipole/annotation/name=, bipole/annotation/position=-90, bipole/inverted=false, bipole/kind=, bipole/voltage/direction=backward, bipole/voltage/label/name=, bipole/voltage/position=below, bipole/nodes/left=none, bipole/nodes/right=none, bipole/is voltage=false,bipole/is voltageoutsideofsymbol=false,bipole/is strokedsymbol=false, bipole/is current=false, bipole/current/label/name=, bipole/current/x position=after, bipole/current/y position=above, bipole/current/direction=forward, mirrored=false } } %% Helper function for path-function to ensure using anchors between nodes \def\set@explicit@center@anchor#1{ \pgfutil@ifundefined{pgf@sh@ns@#1} { %This coordinate is no node(but a relative position or a coordinate), no further handling needed }{ \pgfutil@in@.{#1} \ifpgfutil@in@ % Anchor is used, do nothing! \else% \let\tikz@moveto@waiting=\relax \pgfpathmoveto{\tikz@last@position}%force movement, because tikz@moveto@waiting \edef#1{#1.center}%ensure using center anchor \fi } } %% Generic bipole path \def\pgf@circ@bipole@path#1#2{ \pgfextra{ \set@explicit@center@anchor{\tikztostart} \set@explicit@center@anchor{\tikztotarget} \pgfsyssoftpath@getcurrentpath{\myp@th}%% save current path to extend after calculation of correct start/end coordinates \ctikzset{bipole/kind = #1} \edef\pgf@temp{\ctikzvalof{bipole/name}} \def\pgf@circ@temp{} \ifx\pgf@temp\pgf@circ@temp % if it has not a name \pgfmathrandominteger{\pgf@circ@rand}{1000}{9999} \ctikzset{bipole/name = #2\pgf@circ@rand} % create it \fi } (\tikztostart) coordinate (\ctikzvalof{bipole/name}start)%necessary to get correct coordinates in the case of relativ start/end or constructions like ((node1)-|(node2)) (\tikztotarget) coordinate (\ctikzvalof{bipole/name}end) \pgfextra{ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}} {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}} \edef\pgf@circ@direction{\pgfmathresult}%Calculate direction(angle) of path \pgfsyssoftpath@setcurrentpath{\myp@th} } \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#1}} \ifx\pgf@temp\pgf@circ@temp % if it is an open \else --($(\ctikzvalof{bipole/name}start) ! .5\pgflinewidth ! (\ctikzvalof{bipole/name}end)$) %ugly workaround to get correct linejoins(node breaks path?) \fi ($(\tikztostart) ! .5 ! (\tikztotarget)$)%%positio of middle node node[#1shape, rotate=\pgf@circ@direction, yscale=\ctikzvalof{mirror value}, xscale=\ctikzvalof{invert value}] (\ctikzvalof{bipole/name}) {} \ifpgf@circuit@bipole@inverted \ifcsname pgf@anchor@#1shape@pathstart\endcsname%if special path-anchors are defined, use them! coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.pathend) coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.pathstart) \else coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.right) coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.left) \fi \else \ifcsname pgf@anchor@#1shape@pathstart\endcsname%if special path-anchors are defined, use them! coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.pathstart) coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.pathend) \else coordinate (anchorstartnode) at (\ctikzvalof{bipole/name}.left) coordinate (anchorendnode) at (\ctikzvalof{bipole/name}.right) \fi \fi \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#1}} \ifx\pgf@temp\pgf@circ@temp % if it is an open \else \ifpgf@circuit@bipole@strokedsymbol%draw line thrue symbol(e.g. diodes) \ifcsname pgf@anchor@#1shape@strokepathstart\endcsname%if special path-anchors are defined, use them! (\ctikzvalof{bipole/name}start.center) -- (\ctikzvalof{bipole/name}.strokepathstart) (\ctikzvalof{bipole/name}.strokepathend) -- (\ctikzvalof{bipole/name}end.center) \else (\ctikzvalof{bipole/name}start.center) -- (\ctikzvalof{bipole/name}end.center) \fi \else (\ctikzvalof{bipole/name}start.center) -- (anchorstartnode) (anchorendnode) -- (\ctikzvalof{bipole/name}end.center) \fi \fi \drawpoles \pgf@circ@ifkeyempty{bipole/label/name}\else\pgf@circ@drawlabels{label}\fi \pgf@circ@ifkeyempty{bipole/annotation/name}\else\pgf@circ@drawlabels{annotation}\fi \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else\pgf@circ@drawvoltage\fi \pgf@circ@ifkeyempty{bipole/current/label/name}\else\pgf@circ@drawcurrent\fi \pgf@circ@ifkeyempty{bipole/flow/label/name}\else\pgf@circ@drawflow\fi \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#1}} \ifx\pgf@temp\pgf@circ@temp % if it is an open (\ctikzvalof{bipole/name}end)%Move to end of path \else ($(\ctikzvalof{bipole/name}end) ! .5\pgflinewidth ! (\ctikzvalof{bipole/name}start)$) -- (\ctikzvalof{bipole/name}end)%ugly workaround to get correct linejoins(node breaks path?) %tikztostart and tikztotarget could not be used, because it would break if target coordinate is something like (node1-|node2) \fi % reset \pgfextra{ \pgfcircresetpath } \tikztonodes%draw pending nodes an path } %% Path definitions \def\pgf@circ@resistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{generic}{#1}\else\pgf@circ@bipole@path{resistor}{#1}\fi} \def\pgf@circ@vresistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{tgeneric}{#1}\else\pgf@circ@bipole@path{vresistor}{#1}\fi} \def\pgf@circ@potentiometer@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{genericpotentiometer}{#1}\else\pgf@circ@bipole@path{potentiometer}{#1}\fi} \def\pgf@circ@thermistor@path#1{\pgf@circ@bipole@path{thermistor}{#1}} \def\pgf@circ@thermistorptc@path#1{\pgf@circ@bipole@path{thermistorptc}{#1}} \def\pgf@circ@thermistorntc@path#1{\pgf@circ@bipole@path{thermistorntc}{#1}} \def\pgf@circ@varistor@path#1{\pgf@circ@bipole@path{varistor}{#1}} \def\pgf@circ@capacitor@path#1{\pgf@circ@bipole@path{capacitor}{#1}} \def\pgf@circ@ecapacitor@path#1{\pgf@circ@bipole@path{ecapacitor}{#1}} \def\pgf@circ@polarcapacitor@path#1{\pgf@circ@bipole@path{polarcapacitor}{#1}} \def\pgf@circ@vcapacitor@path#1{\pgf@circ@bipole@path{vcapacitor}{#1}} \def\pgf@circ@piezoelectric@path#1{\pgf@circ@bipole@path{piezoelectric}{#1}} \def\pgf@circ@battery@path#1{\pgf@circ@bipole@path{battery}{#1}} \def\pgf@circ@batteryone@path#1{\pgf@circ@bipole@path{battery1}{#1}} \def\pgf@circ@batterytwo@path#1{\pgf@circ@bipole@path{battery2}{#1}} \def\pgf@circ@europeaninductor@path#1{\pgf@circ@bipole@path{fullgeneric}{#1}} \def\pgf@circ@americaninductor@path#1{\pgf@circ@bipole@path{americaninductor}{#1}} \def\pgf@circ@cuteinductor@path#1{\pgf@circ@bipole@path{cuteinductor}{#1}} \def\pgf@circ@inductor@path#1{% \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{inductor}}% \def\pgf@temp{european}% } \ifx\pgf@temp\pgf@circ@temp% \pgf@circ@europeaninductor@path{#1}% \else% \pgfextra{ \def\pgf@temp{cute} }% \ifx\pgf@temp\pgf@circ@temp% \pgf@circ@cuteinductor@path{#1}% \else% \pgf@circ@americaninductor@path{#1}% \fi% \fi% } \def\pgf@circ@vinductor@path#1{ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{inductor}}% \def\pgf@temp{european}% } \ifx\pgf@temp\pgf@circ@temp% \pgf@circ@veuropeaninductor@path{#1}% \else% \pgfextra{ \def\pgf@temp{cute} }% \ifx\pgf@temp\pgf@circ@temp% \pgf@circ@vcuteinductor@path{#1}% \else% \pgf@circ@vamericaninductor@path{#1}% \fi% \fi% } \def\pgf@circ@veuropeaninductor@path#1{\pgf@circ@bipole@path{tfullgeneric}{#1}} \def\pgf@circ@vamericaninductor@path#1{\pgf@circ@bipole@path{vamericaninductor}{#1}} \def\pgf@circ@vcuteinductor@path#1{\pgf@circ@bipole@path{vcuteinductor}{#1}} \def\pgf@circ@lamp@path#1{\pgf@circ@bipole@path{lamp}{#1}} \def\pgf@circ@esource@path#1{\pgf@circ@bipole@path{esource}{#1}} \def\pgf@circ@pvsource@path#1{\pgf@circ@bipole@path{pvsource}{#1}} \def\pgf@circ@vsource@path#1{\pgf@circ@bipole@path{vsource}{#1}} \def\pgf@circ@dcvsource@path#1{\pgf@circ@bipole@path{dcvsource}{#1}} \def\pgf@circ@vsourceam@path#1{\pgf@circ@bipole@path{vsourceAM}{#1}} \def\pgf@circ@vsourcesin@path#1{\pgf@circ@bipole@path{vsourcesin}{#1}} \def\pgf@circ@isource@path#1{\pgf@circ@bipole@path{isource}{#1}} \def\pgf@circ@oosource@path#1{\pgf@circ@bipole@path{oosource}{#1}} \def\pgf@circ@dcisource@path#1{\pgf@circ@bipole@path{dcisource}{#1}} \def\pgf@circ@isourcesin@path#1{\pgf@circ@bipole@path{isourcesin}{#1}} \def\pgf@circ@vsourcesquare@path#1{\pgf@circ@bipole@path{vsourcesquare}{#1}} \def\pgf@circ@vsourcetri@path#1{\pgf@circ@bipole@path{vsourcetri}{#1}} \def\pgf@circ@isourceam@path#1{\pgf@circ@bipole@path{isourceAM}{#1}} \def\pgf@circ@cvsource@path#1{\pgf@circ@bipole@path{cvsource}{#1}} \def\pgf@circ@cvsourceam@path#1{\pgf@circ@bipole@path{cvsourceAM}{#1}} \def\pgf@circ@cvsourcesin@path#1{\pgf@circ@bipole@path{cvsourcesin}{#1}} \def\pgf@circ@cisource@path#1{\pgf@circ@bipole@path{cisource}{#1}} \def\pgf@circ@cisourceam@path#1{\pgf@circ@bipole@path{cisourceAM}{#1}} \def\pgf@circ@cisourcesin@path#1{\pgf@circ@bipole@path{cisourcesin}{#1}} \def\pgf@circ@short@path#1{\pgf@circ@bipole@path{short}{#1}} \def\pgf@circ@cspst@path#1{\pgf@circ@bipole@path{cspst}{#1}} \def\pgf@circ@ospst@path#1{\pgf@circ@bipole@path{ospst}{#1}} \def\pgf@circ@nos@path#1{\pgf@circ@bipole@path{nos}{#1}} \def\pgf@circ@ncs@path#1{\pgf@circ@bipole@path{ncs}{#1}} \def\pgf@circ@pushbutton@path#1{\pgf@circ@bipole@path{pushbutton}{#1}} \def\pgf@circ@open@path#1{\pgf@circ@bipole@path{open}{#1}} \def\pgf@circ@generic@path#1{\pgf@circ@bipole@path{generic}{#1}} \def\pgf@circ@ageneric@path#1{\pgf@circ@bipole@path{ageneric}{#1}} \def\pgf@circ@tgeneric@path#1{\pgf@circ@bipole@path{tgeneric}{#1}} \def\pgf@circ@fullgeneric@path#1{\pgf@circ@bipole@path{fullgeneric}{#1}} \def\pgf@circ@tfullgeneric@path#1{\pgf@circ@bipole@path{tfullgeneric}{#1}} \def\pgf@circ@ammeter@path#1{\pgf@circ@bipole@path{ammeter}{#1}} \def\pgf@circ@ohmmeter@path#1{\pgf@circ@bipole@path{ohmmeter}{#1}} \def\pgf@circ@voltmeter@path#1{\pgf@circ@bipole@path{voltmeter}{#1}} \def\pgf@circ@empty@path#1{} \def\pgf@circ@photoresistor@path#1{\pgf@circ@bipole@path{photoresistor}{#1}} \def\pgf@circ@emptythyristor@path#1{\pgf@circ@bipole@path{emptythyristor}{#1}} \def\pgf@circ@fullthyristor@path#1{\pgf@circ@bipole@path{fullthyristor}{#1}} \def\pgf@circ@toggleswitch@path#1{\pgf@circ@bipole@path{toggleswitch}{#1}} \def\pgf@circ@memristor@path#1{\pgf@circ@bipole@path{memristor}{#1}} \def\pgf@circ@emptytriac@path#1{\pgf@circ@bipole@path{emptytriac}{#1}} \def\pgf@circ@fulltriac@path#1{\pgf@circ@bipole@path{fulltriac}{#1}} \def\pgf@circ@tline@path#1{\pgf@circ@bipole@path{tline}{#1}} \def\pgf@circ@squid@path#1{\pgf@circ@bipole@path{squid}{#1}} \def\pgf@circ@barrier@path#1{\pgf@circ@bipole@path{barrier}{#1}} \def\pgf@circ@thermocouple@path#1{\pgf@circ@bipole@path{thermocouple}{#1}} \def\pgf@circ@fuse@path#1{\pgf@circ@bipole@path{fuse}{#1}} \def\pgf@circ@afuse@path#1{\pgf@circ@bipole@path{afuse}{#1}} \def\pgf@circ@gfsurgearrester@path#1{\ifpgf@circuit@europeangfsurgearrester\pgf@circ@europeangfsurgearrester@path{#1}\else\pgf@circ@americangfsurgearrester@path{#1}\fi} \def\pgf@circ@europeangfsurgearrester@path#1{\pgf@circ@bipole@path{european gas filled surge arrester}{#1}} \def\pgf@circ@americangfsurgearrester@path#1{\pgf@circ@bipole@path{american gas filled surge arrester}{#1}} \def\pgf@circ@twoport@path#1{\pgf@circ@bipole@path{twoport}{#1}} \def\pgf@circ@vco@path#1{\pgf@circ@bipole@path{vco}{#1}} \def\pgf@circ@bandpass@path#1{\pgf@circ@bipole@path{bandpass}{#1}} \def\pgf@circ@bandstop@path#1{\pgf@circ@bipole@path{bandstop}{#1}} \def\pgf@circ@highpass@path#1{\pgf@circ@bipole@path{highpass}{#1}} \def\pgf@circ@lowpass@path#1{\pgf@circ@bipole@path{lowpass}{#1}} \def\pgf@circ@adc@path#1{\pgf@circ@bipole@path{adc}{#1}} \def\pgf@circ@dac@path#1{\pgf@circ@bipole@path{dac}{#1}} \def\pgf@circ@dsp@path#1{\pgf@circ@bipole@path{dsp}{#1}} \def\pgf@circ@fft@path#1{\pgf@circ@bipole@path{fft}{#1}} \def\pgf@circ@amp@path#1{\pgf@circ@bipole@path{amp}{#1}} \def\pgf@circ@vamp@path#1{\pgf@circ@bipole@path{vamp}{#1}} \def\pgf@circ@piattenuator@path#1{\pgf@circ@bipole@path{piattenuator}{#1}} \def\pgf@circ@vpiattenuator@path#1{\pgf@circ@bipole@path{vpiattenuator}{#1}} \def\pgf@circ@tattenuator@path#1{\pgf@circ@bipole@path{tattenuator}{#1}} \def\pgf@circ@vtattenuator@path#1{\pgf@circ@bipole@path{vtattenuator}{#1}} \def\pgf@circ@phaseshifter@path#1{\pgf@circ@bipole@path{phaseshifter}{#1}} \def\pgf@circ@vphaseshifter@path#1{\pgf@circ@bipole@path{vphaseshifter}{#1}} \def\pgf@circ@detector@path#1{\pgf@circ@bipole@path{detector}{#1}} %%Mechanical \def\pgf@circ@spring@path#1{\pgf@circ@bipole@path{spring}{#1}} \def\pgf@circ@mass@path#1{\pgf@circ@bipole@path{mass}{#1}} \def\pgf@circ@damper@path#1{\pgf@circ@bipole@path{damper}{#1}} %% Styles \def\comnpatname{\ifpgf@circuit@compat *\else\fi} \def\compattikzset#1{\tikzset{\comnpatname#1}} %\def\ctikzsetbipole#1#2{% % \tikzset{#1/.style= {to path=#2, \circuitikzbasekey, l=##1}}% %} \compattikzset{spring/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@spring@path, l=#1}} \compattikzset{mass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@mass@path, l=#1}} \compattikzset{damper/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@damper@path, l=#1}} \compattikzset{resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l=#1}} \compattikzset{american resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{resistor}{#1}, l=#1}} \compattikzset{european resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{generic}{#1}, l=#1}} \compattikzset{potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@potentiometer@path, l=#1}} \compattikzset{varistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@varistor@path, l=#1}} \compattikzset{photoresistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@photoresistor@path, l=#1}} \compattikzset{thermistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistor@path, l=#1}} \compattikzset{thermistor ptc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistorptc@path, l=#1}} \compattikzset{thermistor ntc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistorntc@path, l=#1}} \compattikzset{american potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{potentiometer}{#1}, l=#1}} \compattikzset{european potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{genericpotentiometer}{#1}, l=#1}} \compattikzset{variable resistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vresistor@path, l=#1}} \compattikzset{variable american resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{vresistor}{#1}, l=#1}} \compattikzset{variable european resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{tgeneric}{#1}, l=#1}} \compattikzset{capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@capacitor@path, l=#1}} \compattikzset{elko/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ecapacitor@path, l=#1}} \compattikzset{ecapacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ecapacitor@path, l=#1}} \compattikzset{polar capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@polarcapacitor@path, l=#1}} \compattikzset{variable capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vcapacitor@path, l=#1}} \compattikzset{piezoelectric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@piezoelectric@path, l=#1}} \compattikzset{battery/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@battery@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{battery1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@batteryone@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{battery2/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@batterytwo@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@inductor@path, l=#1}} \compattikzset{gf surge arrester/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@gfsurgearrester@path, l=#1}} \compattikzset{american gas filled surge arrester/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@americangfsurgearrester@path, l=#1}} \compattikzset{european gas filled surge arrester/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@europeangfsurgearrester@path, l=#1}} \compattikzset{gas filled surge arrester/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@gfsurgearrester@path, l=#1}} \compattikzset{american inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@americaninductor@path, l=#1}} \compattikzset{cute inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cuteinductor@path, l=#1}} \compattikzset{european inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@europeaninductor@path, l=#1}} \compattikzset{variable inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vinductor@path, l=#1}} \compattikzset{variable european inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@veuropeaninductor@path, l=#1}} \compattikzset{variable american inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vamericaninductor@path, l=#1}} \compattikzset{variable cute inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vcuteinductor@path, l=#1}} \compattikzset{tline/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tline@path, l=#1}} \compattikzset{transmission line/.style = {tline = #1}} \compattikzset{TL/.style = {tline = #1}} \compattikzset{european voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsource@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{american voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}} \compattikzset{european current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isource@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{american current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{european controlled voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsource@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{american controlled voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}} \compattikzset{european controlled current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisource@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{american controlled current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{sinusoidal voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1 }} \compattikzset{square voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourcesquare@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1 }} \compattikzset{triangle voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourcetri@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1 }} \compattikzset{sinusoidal current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{controlled sinusoidal voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{controlled sinusoidal current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}} \compattikzset{voltage source/.style = {\comnpatname \ifpgf@circuit@europeanvoltage european \else american \fi voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}} \compattikzset{current source/.style = {\comnpatname \ifpgf@circuit@europeancurrent european \else american \fi current source = #1, \circuitikzbasekey/bipole/is current=true}} \compattikzset{controlled voltage source/.style = {\comnpatname \ifpgf@circuit@europeanvoltage european \else american \fi controlled voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}} \compattikzset{controlled current source/.style = {\comnpatname \ifpgf@circuit@europeancurrent european \else american \fi controlled current source = #1, \circuitikzbasekey/bipole/is current=true}} \compattikzset{generic/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@generic@path, l=#1}} \compattikzset{ageneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ageneric@path, l=#1}} \compattikzset{tgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tgeneric@path, l=#1}} \compattikzset{fullgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullgeneric@path, l=#1}} \compattikzset{tfullgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tfullgeneric@path, l=#1}} \compattikzset{short/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@short@path}} \compattikzset{open/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@open@path}} \compattikzset{lamp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@lamp@path}} \compattikzset{squid/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@squid@path}} \compattikzset{barrier/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@barrier@path}} \compattikzset{thermocouple/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermocouple@path}} \compattikzset{fuse/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fuse@path}} \compattikzset{asymmetric fuse/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@afuse@path}} \compattikzset{twoport/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@twoport@path}} \compattikzset{vco/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vco@path}} \compattikzset{bandpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bandpass@path}} \compattikzset{bandstop/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bandstop@path}} \compattikzset{highpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@highpass@path}} \compattikzset{lowpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@lowpass@path}} \compattikzset{adc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@adc@path}} \compattikzset{dac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dac@path}} \compattikzset{dsp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dsp@path}} \compattikzset{fft/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fft@path}} \compattikzset{amp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@amp@path}} \compattikzset{vamp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vamp@path}} \compattikzset{piattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@piattenuator@path}} \compattikzset{vpiattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vpiattenuator@path}} \compattikzset{tattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tattenuator@path}} \compattikzset{vtattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vtattenuator@path}} \compattikzset{phaseshifter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@phaseshifter@path}} \compattikzset{vphaseshifter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vphaseshifter@path}} \compattikzset{detector/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@detector@path}} % % % % % % % % Beginn of Diodes % % % % % % \def\pgf@circ@fulldiode@path#1{\pgf@circ@bipole@path{fulldiode}{#1}} \def\pgf@circ@fullzdiode@path#1{\pgf@circ@bipole@path{fullzdiode}{#1}} \def\pgf@circ@fullzzdiode@path#1{\pgf@circ@bipole@path{fullzzdiode}{#1}} \def\pgf@circ@fullsdiode@path#1{\pgf@circ@bipole@path{fullsdiode}{#1}} \def\pgf@circ@fulltdiode@path#1{\pgf@circ@bipole@path{fulltdiode}{#1}} \def\pgf@circ@fulllediode@path#1{\pgf@circ@bipole@path{fulllediode}{#1}} \def\pgf@circ@fullpdiode@path#1{\pgf@circ@bipole@path{fullpdiode}{#1}} \def\pgf@circ@fullvarcap@path#1{\pgf@circ@bipole@path{fullvarcap}{#1}} \def\pgf@circ@emptydiode@path#1{\pgf@circ@bipole@path{emptydiode}{#1}} \def\pgf@circ@emptyzdiode@path#1{\pgf@circ@bipole@path{emptyzdiode}{#1}} \def\pgf@circ@emptyzzdiode@path#1{\pgf@circ@bipole@path{emptyzzdiode}{#1}} \def\pgf@circ@emptysdiode@path#1{\pgf@circ@bipole@path{emptysdiode}{#1}} \def\pgf@circ@emptytdiode@path#1{\pgf@circ@bipole@path{emptytdiode}{#1}} \def\pgf@circ@emptylediode@path#1{\pgf@circ@bipole@path{emptylediode}{#1}} \def\pgf@circ@emptypdiode@path#1{\pgf@circ@bipole@path{emptypdiode}{#1}} \def\pgf@circ@emptyvarcap@path#1{\pgf@circ@bipole@path{emptyvarcap}{#1}} \compattikzset{full diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulldiode@path}} \compattikzset{full Schottky diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullsdiode@path}} \compattikzset{full Zener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullzdiode@path}} \compattikzset{full ZZener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullzzdiode@path}} \compattikzset{full tunnel diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulltdiode@path}} \compattikzset{full photodiode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullpdiode@path}} \compattikzset{full led/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulllediode@path}} \compattikzset{full varcap/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullvarcap@path}} \compattikzset{full thyristor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullthyristor@path}} \compattikzset{full triac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulltriac@path}} \compattikzset{empty diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptydiode@path}} \compattikzset{empty Schottky diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptysdiode@path}} \compattikzset{empty Zener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptyzdiode@path}} \compattikzset{empty ZZener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptyzzdiode@path}} \compattikzset{empty tunnel diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptytdiode@path}} \compattikzset{empty photodiode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptypdiode@path}} \compattikzset{empty led/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptylediode@path}} \compattikzset{empty varcap/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptyvarcap@path}} \compattikzset{empty thyristor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptythyristor@path}} \compattikzset{empty triac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptytriac@path}} \compattikzset{stroke diode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptydiode@path}} \compattikzset{stroke Schottky diode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptysdiode@path}} \compattikzset{stroke Zener diode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptyzdiode@path}} \compattikzset{stroke ZZener diode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptyzzdiode@path}} \compattikzset{stroke tunnel diode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptytdiode@path}} \compattikzset{stroke photodiode/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptypdiode@path}} \compattikzset{stroke led/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptylediode@path}} \compattikzset{stroke varcap/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptyvarcap@path}} \compattikzset{stroke thyristor/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptythyristor@path}} %\compattikzset{stroke triac/.style = {\circuitikzbasekey,\circuitikzbasekey/bipole/is strokedsymbol=true, /tikz/to path=\pgf@circ@emptytriac@path}} \def\pgfcircdiodestylemacro{\ifpgf@circuit@strokediode stroke \else\ifpgf@circuit@fulldiode full \else empty \fi\fi} \compattikzset{Schottky diode/.style = {\comnpatname \pgfcircdiodestylemacro Schottky diode}} \compattikzset{Zener diode/.style = {\comnpatname \pgfcircdiodestylemacro Zener diode}} \compattikzset{ZZener diode/.style = {\comnpatname \pgfcircdiodestylemacro ZZener diode}} \compattikzset{tunnel diode/.style = {\comnpatname \pgfcircdiodestylemacro tunnel diode}} \compattikzset{photodiode/.style = {\comnpatname \pgfcircdiodestylemacro photodiode}} \compattikzset{led/.style = {\comnpatname \pgfcircdiodestylemacro led}} \compattikzset{varcap/.style = {\comnpatname \pgfcircdiodestylemacro varcap}} \compattikzset{diode/.style = {\comnpatname \pgfcircdiodestylemacro diode}} \compattikzset{thyristor/.style = {\comnpatname \pgfcircdiodestylemacro thyristor}} \compattikzset{triac/.style = {\comnpatname \ifpgf@circuit@fulldiode full \else empty \fi triac}}%no stroke triac! %% Define Shortcuts \compattikzset{Do/.style = {\comnpatname empty diode}} \compattikzset{tDo/.style = {\comnpatname empty tunnel diode}} \compattikzset{zDo/.style = {\comnpatname empty Zener diode}} \compattikzset{zzDo/.style = {\comnpatname empty ZZener diode}} \compattikzset{sDo/.style = {\comnpatname empty Schottky diode}} \compattikzset{pDo/.style = {\comnpatname empty photodiode}} \compattikzset{leDo/.style = {\comnpatname empty led}} \compattikzset{VCo/.style = {\comnpatname empty varcap}} \compattikzset{Tyo/.style = {\comnpatname empty thyristor}} \compattikzset{Tro/.style = {\comnpatname empty triac}} \compattikzset{D*/.style = {\comnpatname full diode}} \compattikzset{tD*/.style = {\comnpatname full tunnel diode}} \compattikzset{zD*/.style = {\comnpatname full Zener diode}} \compattikzset{zzD*/.style = {\comnpatname full ZZener diode}} \compattikzset{sD*/.style = {\comnpatname full Schottky diode}} \compattikzset{pD*/.style = {\comnpatname full photodiode}} \compattikzset{leD*/.style = {\comnpatname full led}} \compattikzset{VC*/.style = {\comnpatname full varcap}} \compattikzset{Ty*/.style = {\comnpatname full thyristor}} \compattikzset{Tr*/.style = {\comnpatname full triac}} \compattikzset{D/.style = {\comnpatname diode}} \compattikzset{tD/.style = {\comnpatname tunnel diode}} \compattikzset{zD/.style = {\comnpatname Zener diode}} \compattikzset{zzD/.style = {\comnpatname ZZener diode}} \compattikzset{sD/.style = {\comnpatname Schottky diode}} \compattikzset{pD/.style = {\comnpatname photodiode}} \compattikzset{leD/.style = {\comnpatname led}} \compattikzset{VC/.style = {\comnpatname varcap}} \compattikzset{Ty/.style = {\comnpatname thyristor}} \compattikzset{Tr/.style = {\comnpatname triac}} \compattikzset{D-/.style = {\comnpatname stroke diode}} \compattikzset{tD-/.style = {\comnpatname stroke tunnel diode}} \compattikzset{zD-/.style = {\comnpatname stroke Zener diode}} \compattikzset{zzD-/.style = {\comnpatname stroke ZZener diode}} \compattikzset{sD-/.style = {\comnpatname stroke Schottky diode}} \compattikzset{pD-/.style = {\comnpatname stroke photodiode}} \compattikzset{leD-/.style = {\comnpatname stroke led}} \compattikzset{VC-/.style = {\comnpatname stroke varcap}} \compattikzset{Ty-/.style = {\comnpatname stroke thyristor}} \compattikzset{Tr-/.style = {\comnpatname empty triac}}%no stroke triac! % % % % % % % % End of Diodes % % % % % % \compattikzset{memristor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@memristor@path}} \compattikzset{closing switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cspst@path, l=#1}} \compattikzset{opening switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ospst@path, l=#1}} \compattikzset{ncs/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ncs@path, l=#1}} \compattikzset{nos/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@nos@path, l=#1}} \compattikzset{normal closed switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ncs@path, l=#1}} \compattikzset{normal open switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@nos@path, l=#1}} \compattikzset{switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cspst@path, l=#1}} \compattikzset{push button/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@pushbutton@path, l=#1}} \compattikzset{toggle switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@toggleswitch@path}} \compattikzset{ammeter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ammeter@path}} \compattikzset{voltmeter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@voltmeter@path}} \compattikzset{ohmmeter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ohmmeter@path}} % short forms \compattikzset{esource/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@esource@path, \circuitikzbasekey/bipole/is voltage=true,\circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{pvsource/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@pvsource@path, \circuitikzbasekey/bipole/is voltage=true,\circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{dcvsource/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dcvsource@path, \circuitikzbasekey/bipole/is voltage=true,\circuitikzbasekey/bipole/is voltageoutsideofsymbol=true, v=#1}} \compattikzset{dcisource/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dcisource@path, \circuitikzbasekey/bipole/is current=true, l=#1}} \compattikzset{ioosource/.style = {\circuitikzbasekey, \circuitikzbasekey/bipole/is current=true,/tikz/to path=\pgf@circ@oosource@path, i=#1}} \compattikzset{voosource/.style = {\circuitikzbasekey, \circuitikzbasekey/bipole/is voltage=true,/tikz/to path=\pgf@circ@oosource@path, v=#1}} \compattikzset{vsource/.style = {\comnpatname voltage source = #1}} \compattikzset{isource/.style = {\comnpatname current source = #1}} \compattikzset{cisource/.style = {\comnpatname controlled current source = #1}} \compattikzset{cvsource/.style = {\comnpatname controlled voltage source = #1}} \compattikzset{vsourcesin/.style = {\comnpatname sinusoidal voltage source = #1}} \compattikzset{vsourcesquare/.style = {\comnpatname square voltage source = #1}} \compattikzset{vsourcetri/.style = {triangle voltage source = #1}} \compattikzset{isourcesin/.style = {\comnpatname sinusoidal current source = #1}} \compattikzset{cisourcesin/.style = {\comnpatname controlled sinusoidal current source = #1}} \compattikzset{cvsourcesin/.style = {\comnpatname controlled sinusoidal voltage source = #1}} \compattikzset{controlled vsource/.style = {\comnpatname controlled voltage source = #1}} \compattikzset{controlled isource/.style = {\comnpatname controlled current source = #1}} \compattikzset{controlled vsourcesin/.style = {\comnpatname controlled sinusoidal voltage source = #1}} \compattikzset{controlled isourcesin/.style = {\comnpatname controlled sinusoidal current source = #1}} \compattikzset{R/.style= {\comnpatname resistor = #1}} %\ifpgf@circuit@compat\else\compattikzset{R/.style= {resistor = #1}}\fi \compattikzset{vR/.style= {\comnpatname variable resistor = #1}} \compattikzset{phR/.style= {\comnpatname photoresistor = #1}} \compattikzset{thR/.style= {\comnpatname thermistor = #1}} \compattikzset{thRp/.style= {\comnpatname thermistor ptc= #1}} \compattikzset{thRn/.style= {\comnpatname thermistor ntc= #1}} \compattikzset{pR/.style= {\comnpatname potentiometer = #1}} \compattikzset{C/.style = {\comnpatname capacitor = #1}} \compattikzset{eC/.style = {\comnpatname ecapacitor = #1}} \compattikzset{pC/.style = {\comnpatname polar capacitor = #1}} \compattikzset{vC/.style = {\comnpatname variable capacitor = #1}} \compattikzset{PZ/.style = {\comnpatname piezoelectric = #1}} \compattikzset{L/.style = {\comnpatname inductor = #1}} \compattikzset{vL/.style = {\comnpatname variable inductor = #1}} \compattikzset{V/.style = {\comnpatname voltage source = #1}} \compattikzset{cV/.style = {\comnpatname controlled voltage source = #1}} \compattikzset{sV/.style = {\comnpatname sinusoidal voltage source = #1}} \compattikzset{sqV/.style = {\comnpatname square voltage source = #1}} \compattikzset{tV/.style = {\comnpatname triangle voltage source = #1}} \compattikzset{csV/.style = {\comnpatname controlled sinusoidal voltage source = #1}} \def\pgf@temp#1{ \compattikzset{V#1/.style = {\comnpatname voltage source, v#1=##1} } \compattikzset{cV#1/.style = {\comnpatname controlled voltage source, v#1=##1} } \compattikzset{sV#1/.style = {\comnpatname sinusoidal voltage source, v#1=##1} } \compattikzset{csV#1/.style = {\comnpatname controlled sinusoidal voltage source, v#1=##1} } } \pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<} \pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_} %current sources \compattikzset{I/.style = {\comnpatname current source = #1}} \compattikzset{cI/.style = {\comnpatname controlled current source = #1}} \compattikzset{sI/.style = {\comnpatname sinusoidal current source = #1}} \compattikzset{csI/.style = {\comnpatname controlled sinusoidal current source = #1}} \def\pgf@temp#1{ \compattikzset{I#1/.style = {\comnpatname current source, i#1=##1} } \compattikzset{cI#1/.style = {\comnpatname controlled current source, i#1=##1} } \compattikzset{sI#1/.style = {\comnpatname sinusoidal current source, i#1=##1} } \compattikzset{csI#1/.style = {\comnpatname controlled sinusoidal current source, i#1=##1} } } \pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<} \pgf@temp{>_} \pgf@temp{<_} \pgf@temp{>^} \pgf@temp{<^} \pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_} \compattikzset{Mr/.style = {\comnpatname memristor}} \compattikzset{cspst/.style = {\comnpatname closing switch = #1}} \compattikzset{ospst/.style = {\comnpatname opening switch = #1}} \compattikzset{spst/.style = {\comnpatname switch = #1}} \compattikzset{afuse/.style = {\comnpatname asymmetric fuse=#1}} \compattikzset{vdd/.style = {\comnpatname vcc = #1}} \compattikzset{vss/.style = {\comnpatname vee = #1}} \def\inheritlogicport#1#2{ \pgfdeclareshape{#2 port}{ \inheritsavedanchors[from=#1 #2 port] \inheritbackgroundpath[from=#1 #2 port] \inheritanchor[from=#1 #2 port]{in} \inheritanchor[from=#1 #2 port]{in 1} \inheritanchor[from=#1 #2 port]{in 2} \inheritanchor[from=#1 #2 port]{out} \inheritanchor[from=#1 #2 port]{center} \inheritanchor[from=#1 #2 port]{left} } } \ifpgf@circuit@europeanlogicport \inheritlogicport{european}{and} \inheritlogicport{european}{or} \inheritlogicport{european}{xor} \inheritlogicport{european}{not} \inheritlogicport{european}{nand} \inheritlogicport{european}{nor} \inheritlogicport{european}{xnor} \else \inheritlogicport{american}{and} \inheritlogicport{american}{or} \inheritlogicport{american}{xor} \inheritlogicport{american}{not} \inheritlogicport{american}{nand} \inheritlogicport{american}{nor} \inheritlogicport{american}{xnor} \fi % Transistor like bipoles \def\pgf@circ@trans@path#1#2{ \pgfextra{ \edef\pgf@temp{\pgfkeysvalueof{/tikz/circuitikz/bipole/name}} \def\pgf@circ@temp{#2} \ifx\pgf@temp\pgf@circ@temp % if it has not a name \pgfmathrandominteger{\pgf@circ@rand}{1000}{9999} \ctikzset{bipole/name = trans\pgf@circ@rand} % create it \fi } \ifpgf@circuit@bipole@inverted (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}end) {} (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}start) {} \else (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}start) {} (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}end) {} \fi \pgfextra{ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}} {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}} \pgfmathadd{\pgfmathresult}{-90} \edef\pgf@circ@direction{\pgfmathresult} } ($(\tikztostart) ! .5 ! (\tikztotarget)$) node[#1, /tikz/rotate=\pgf@circ@direction, xscale=\ctikzvalof{mirror value}] (\ctikzvalof{bipole/name}) {} node {\ctikzvalof{bipole/label/name}} \ifcsname pgf@anchor@#1@pathstart\endcsname%if special path-anchors are defined, use them! (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.pathstart) (\ctikzvalof{bipole/name}.pathend) -- (\ctikzvalof{bipole/name}end.center) \else (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.left) (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center) \fi \pgfextra{ \pgfcircresetpath } (\tikztotarget) \tikztonodes % e si continua } \def\pgf@circ@definetranspath#1{ \compattikzset{T#1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@trans@path{#1}{}, l=##1}} } \pgf@circ@definetranspath{elmech} \pgf@circ@definetranspath{nmos} \pgf@circ@definetranspath{pmos} \pgf@circ@definetranspath{npn} \pgf@circ@definetranspath{pnp} \pgf@circ@definetranspath{nfet} \pgf@circ@definetranspath{nigfete} \pgf@circ@definetranspath{nigfetd} \pgf@circ@definetranspath{nigfetebulk} \pgf@circ@definetranspath{pfet} \pgf@circ@definetranspath{pigfete} \pgf@circ@definetranspath{pigfetd} \pgf@circ@definetranspath{pigfetebulk} \pgf@circ@definetranspath{njfet} \pgf@circ@definetranspath{pjfet} \pgf@circ@definetranspath{pigbt} \pgf@circ@definetranspath{nigbt} \pgf@circ@definetranspath{Lpigbt} \pgf@circ@definetranspath{Lnigbt} %%%---------- close: tex/pgfcircpath \catcode`\@=\tikzatcode \catcode`\|=\tikzbarcode \catcode`\!=\tikzexclaimcode % define the environment \long\def\startcircuitikz#1\stopcircuitikz{\starttikzpicture#1\stoptikzpicture} \protect \stopmodule \endinput