From 3231314ec3d2c2b3a225ad8511383f1a77287180 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 18 May 2020 20:40:09 +0000 Subject: circuitikz (18may20) git-svn-id: svn://tug.org/texlive/trunk@55203 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/generic/circuitikz/pgfcirc.defines.tex | 113 +++- .../tex/generic/circuitikz/pgfcircbipoles.tex | 709 +++++++++++++++++++++ .../tex/generic/circuitikz/pgfcircmultipoles.tex | 1 + .../tex/generic/circuitikz/pgfcircpath.tex | 17 + .../tex/generic/circuitikz/pgfcircquadpoles.tex | 136 ++++ .../tex/generic/circuitikz/pgfcirctripoles.tex | 8 +- .../tex/generic/circuitikz/pgfcircvoltage.tex | 108 +++- 7 files changed, 1044 insertions(+), 48 deletions(-) (limited to 'Master/texmf-dist/tex/generic/circuitikz') diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex index 49f73062195..a9499dd06aa 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex @@ -633,6 +633,46 @@ \ctikzset{bipoles/battery2/height/.initial=.6} \ctikzset{bipoles/battery2/width/.initial=.3} +% % % ootransformer +\ctikzset{bipoles/oosourcetrans/height/.initial=.6} +\ctikzset{bipoles/oosourcetrans/width/.initial=.6} +\ctikzset{bipoles/oosourcetrans/circlesize/.initial=.6}%circlesize+circleoffset should be =1 +\ctikzset{bipoles/oosourcetrans/circleoffset/.initial=.4}%circlesize+circleoffset should be =1 +\ctikzset{bipoles/oosourcetrans/vectorgroupscale/.initial=1} + +% % % oootransformer +\ctikzset{bipoles/ooosource/height/.initial=.6} +\ctikzset{bipoles/ooosource/circlesize/.initial=.55}%circlesize+circleoffset should be =1 +\ctikzset{bipoles/ooosource/circleoffset/.initial=.45}%circlesize+circleoffset should be =1 +\ctikzset{bipoles/ooosource/vectorgroupscale/.initial=1} + +% % % primary windings +\newif\ifpgf@circ@prim@delta +\newif\ifpgf@circ@prim@wye +\newif\ifpgf@circ@prim@zig +\pgfkeys{tikz/prim/.is choice} +\pgfkeys{tikz/prim/delta/.add code={}{\pgf@circ@prim@deltatrue}} +\pgfkeys{tikz/prim/wye/.add code={}{\pgf@circ@prim@wyetrue}} +\pgfkeys{tikz/prim/zig/.add code={}{\pgf@circ@prim@zigtrue}} + +% % % secondary windings +\newif\ifpgf@circ@sec@delta +\newif\ifpgf@circ@sec@wye +\newif\ifpgf@circ@sec@zig +\pgfkeys{tikz/sec/.is choice} +\pgfkeys{tikz/sec/delta/.add code={}{\pgf@circ@sec@deltatrue}} +\pgfkeys{tikz/sec/wye/.add code={}{\pgf@circ@sec@wyetrue}} +\pgfkeys{tikz/sec/zig/.add code={}{\pgf@circ@sec@zigtrue}} + +% % % tertiary windings (ooosource) +\newif\ifpgf@circ@tert@delta +\newif\ifpgf@circ@tert@wye +\newif\ifpgf@circ@tert@zig +\pgfkeys{tikz/tert/.is choice} +\pgfkeys{tikz/tert/delta/.add code={}{\pgf@circ@tert@deltatrue}} +\pgfkeys{tikz/tert/wye/.add code={}{\pgf@circ@tert@wyetrue}} +\pgfkeys{tikz/tert/zig/.add code={}{\pgf@circ@tert@zigtrue}} + % diodes \ctikzset{bipoles/diode/height/.initial=.50} @@ -1814,16 +1854,41 @@ \newif\ifpgf@circ@siunitx \newif\ifpgf@circ@siunitx@res +% +% voltage and current options +% + +\newif\ifpgf@circuit@europeancurrent +\newif\ifpgf@circuit@europeanvoltage +\newif\ifpgf@circuit@bipole@voltage@straight + +\ctikzset{voltage/.is choice} +% +% straight is expected to be a subset of european, so disable it in american style +% +\ctikzset{voltage/american/.code = {\pgf@circuit@europeanvoltagefalse\pgf@circuit@bipole@voltage@straightfalse}} +\ctikzset{voltage/european/.code = {\pgf@circuit@europeanvoltagetrue\pgf@circuit@bipole@voltage@straightfalse}} +\ctikzset{voltage/straight/.code = {\pgf@circuit@europeanvoltagetrue\pgf@circuit@bipole@voltage@straighttrue}} +\ctikzset{voltage/curved/.code = {\pgf@circuit@europeanvoltagetrue\pgf@circuit@bipole@voltage@straighttrue}} + +\ctikzset{current/.is choice} +\ctikzset{current/american/.code = \pgf@circuit@europeancurrentfalse} +\ctikzset{current/european/.code = \pgf@circuit@europeancurrenttrue} + +% this is left for backward compatibility... \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} +% never used, removed (RG 2020-05-17) +% \ctikzset{straightvoltage value/.initial=true} +% \ctikzset{straightvoltage/.style = {/tikz/circuitikz/straight=true}} +% +% voltage is used also to set parameters, apart for the /.is choice +% above. I hope it is ok --- would be a mess otherwise +% -\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} @@ -1838,7 +1903,7 @@ \ctikzset{voltage/american plus/.initial={$+$}} \ctikzset{voltage/american minus/.initial={$-$}} -% special cases +% special cases for voltage positions \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} @@ -1870,15 +1935,28 @@ \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} +% +% american open voltage adjusting +% +\newif\ifpgf@adjust@open@voltage\pgf@adjust@open@voltagetrue +\ctikzset{american open voltage/.is choice} +\ctikzset{american open voltage/center/.code={\pgf@adjust@open@voltagetrue}} +\ctikzset{american open voltage/legacy/.code={\pgf@adjust@open@voltagefalse}} -\ctikzset{current/.is family} +% +% currents +% \ctikzset{current/distance/.initial = .5} +% +% voltage and current styles +% \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{straight voltages/.style = {\circuitikzbasekey/voltage = straight}} \tikzset{american resistors/.style = {\circuitikzbasekey/resistor = american}} \tikzset{european resistors/.style = {\circuitikzbasekey/resistor = european}} @@ -1894,21 +1972,15 @@ \tikzset{cute inductors/.style = {\circuitikzbasekey/inductor = cute}} \tikzset{american ports/.style = {\circuitikzbasekey/logic ports = american}} \tikzset{european ports/.style = {\circuitikzbasekey/logic ports = european}} + +% +% general styles +% + \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 voltage 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} % noise sources \ctikzset{bipoles/noise sources/fillcolor/.initial=gray!50} @@ -2022,4 +2094,11 @@ \pgfkeys{/tikz/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}} \ctikzset{tubes/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}} +% powerelectronic blocks +\ctikzset{bipoles/sacdc/width/.initial=.7} +\ctikzset{bipoles/sdcac/width/.initial=.7} +\ctikzset{bipoles/tacdc/width/.initial=.7} +\ctikzset{bipoles/tdcac/width/.initial=.7} +\ctikzset{quadpoles/gridnode/width/.initial=.7} %not sure if quadpole? + \endinput diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex index dd62d7e9d8d..1e9ada97753 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex @@ -265,6 +265,28 @@ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfusepath{draw} } + +\pgfcircdeclarebipole +{} +{\ctikzvalof{bipoles/multiwire/height}} +{tmultiwire} +{\ctikzvalof{bipoles/multiwire/height}} +{\ctikzvalof{bipoles/multiwire/width}} +{ + \pgf@circ@res@other=\ctikzvalof{bipoles/multiwire/spacing}\pgf@circ@Rlen + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@other}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+2\pgf@circ@res@other}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{2\pgf@circ@res@other}{\pgf@circ@res@up}} + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} + \pgfusepath{draw} +} + +% +% %% Generic bipole - used as resistor by some (bleah) \pgfcircdeclarebipolescaled{resistors} {} @@ -1598,6 +1620,323 @@ \pgfusepath{draw} } +% % % winding symbols +% triangle +\def\pgf@circ@delta#1{ + \pgfscope + \pgftransformscale{-.01\pgf@circ@res@left*#1} + \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} + \pgftransformrotate{-\pgfcircmathresult} + + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{0}{.866\pgf@circ@res@up}} + \pgfpathclose + \pgfusepath{stroke} + \endpgfscope +} + +% star +\def\pgf@circ@wye#1{ + \pgfscope + \pgftransformscale{-.015\pgf@circ@res@left*#1} + \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} + \pgftransformrotate{-\pgfcircmathresult} + + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{-30}{\pgf@circ@res@down}} + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{-150}{\pgf@circ@res@down}} + \pgfusepath{stroke} + \endpgfscope +} + +% zigzag +\def\pgf@circ@zig#1{ + \pgfscope + \pgftransformscale{-.015\pgf@circ@res@left*#1} + \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} + \pgftransformrotate{-\pgfcircmathresult} + + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{90}{.5\pgf@circ@res@up}} + \pgfpathlineto{\pgfpointpolar{60}{\pgf@circ@res@up}} + + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{210}{.5\pgf@circ@res@up}} + \pgfpathlineto{\pgfpointpolar{0}{\pgf@circ@res@down}} + + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{330}{.5\pgf@circ@res@up}} + \pgfpathlineto{\pgfpointpolar{-60}{\pgf@circ@res@up}} + \pgfusepath{stroke} + \endpgfscope +} + +% % % % round three-phase transformer +\pgfcircdeclarebipolescaled{sources} +{} +{\ctikzvalof{bipoles/oosourcetrans/height}} +{oosourcetrans} +{\ctikzvalof{bipoles/oosourcetrans/height}} +{\ctikzvalof{bipoles/oosourcetrans/width}} +{ + + \pgfpointorigin + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}} + {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left} + \pgf@circ@maybefill + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@right}{0}} + {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right} + \pgf@circ@draworfill + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}} + {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left} + \pgfusepath{draw} + + +% % % % draw inner symbols + + %%primary winding + \ifpgf@circ@prim@delta + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left} + \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@prim@wye + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left} + \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@prim@zig + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left} + \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + \fi\fi\fi + + %%secondary winding + \ifpgf@circ@sec@delta + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right} + \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@sec@wye + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right} + \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@sec@zig + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right} + \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}} + \endpgfscope + \fi\fi\fi +} + + +% % % % ooosource for three phase transformer +\pgfcircdeclarebipolescaled{sources} +{ + \anchor{right}{ + \northeast + \pgf@y=0pt + \pgfmathparse{ + \ctikzvalof{bipoles/ooosource/circleoffset}* sin(30) + + %%the sqrt must be > 0, the circles have to intersect + sqrt( + pow(\ctikzvalof{bipoles/ooosource/circlesize},2) - + pow(\ctikzvalof{bipoles/ooosource/circleoffset}*cos(30),2) + ) + } + \pgf@x=\pgfmathresult\pgf@x + } + \anchor{east}{ + \northeast + \pgf@y=0pt + } + \savedanchor{\centerprim}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@scaled@Rlen + \pgf@y=0pt + \pgf@x=.5\pgf@circ@scaled@Rlen + } + \anchor{centerprim}{ + \centerprim + } + \savedanchor{\centersec}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@scaled@Rlen + \pgfpointpolar{60}{.5\pgf@circ@scaled@Rlen} + \pgf@y=-\pgf@y + \pgf@x=-\pgf@x + } + \anchor{centersec}{ + \centersec + } + \savedanchor{\centertert}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@scaled@Rlen + \pgfpointpolar{60}{.5\pgf@circ@scaled@Rlen} + \pgf@y=\pgf@y + \pgf@x=-\pgf@x + } + \anchor{centertert}{ + \centertert + } + + % add some anchors in case the are needed :) + \anchor{prim1}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centerprim}{\pgfpointpolar{135}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{prim2}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centerprim}{\pgfpointpolar{-135}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{sec1}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centersec}{\pgfpointpolar{0}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{sec2}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centersec}{\pgfpointpolar{45}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{sec3}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centersec}{\pgfpointpolar{90}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{tert1}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centertert}{\pgfpointpolar{0}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{tert2}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centertert}{\pgfpointpolar{-45}{.5\pgf@circ@scaled@Rlen}} + } + \anchor{tert3}{ + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@Rlen + \pgf@circ@scaled@Rlen=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@scaled@Rlen + \pgfpointadd{\centertert}{\pgfpointpolar{-90}{.5\pgf@circ@scaled@Rlen}} + } +} +{\ctikzvalof{bipoles/ooosource/height}} +{ooosource} +{\ctikzvalof{bipoles/ooosource/height}} +{\ctikzvalof{bipoles/ooosource/height}} +{ +% \pgf@circ@res@other = \ctikzvalof{bipoles/ooosource/vectorgroup} \pgf@circ@scaled@Rlen + +% % filling +% left + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left} + \pgf@circ@maybefill + + % up + \pgfscope + \pgfpointorigin + \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right} + \pgf@circ@maybefill + \endpgfscope +% down + \pgfscope + \pgfpointorigin + \pgfpathcircle{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right} + \pgf@circ@draworfill + \endpgfscope + +% drawing + % left + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left} + \pgfusepath{draw} + + % up + \pgfscope + \pgfpointorigin + \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right} + \pgfusepath{draw} + \endpgfscope + +% % % draw inner symbols + +% % primary winding + \ifpgf@circ@prim@delta + \pgfscope + \pgftransformxshift{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left} + \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@prim@wye + \pgfscope + \pgftransformxshift{.6\pgf@circ@res@left} + \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@prim@zig + \pgfscope + \pgftransformxshift{.6\pgf@circ@res@left} + \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + \fi\fi\fi + +% % secondary winding + \ifpgf@circ@sec@delta + \pgfscope + \pgfpointorigin + \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@sec@wye + \pgfscope + \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@sec@zig + \pgfscope + \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + \fi\fi\fi + +% % tertiary winding + \ifpgf@circ@tert@delta + \pgfscope + \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@tert@wye + \pgfscope + \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + + \else\ifpgf@circ@tert@zig + \pgfscope + \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}} + \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}} + \endpgfscope + \fi\fi\fi +} + %% Independent current source - American \pgfcircdeclarebipolescaled{sources} {} @@ -4711,6 +5050,376 @@ } +%% single phase ac/dc converter +\pgfcircdeclarebipolescaled{blocks} +{ + \anchor{dc1}{ + \northeast + \pgf@y=.4\pgf@y + } + \anchor{dc2}{ + \northeast + \pgf@y=-.4\pgf@y + } +} +{\ctikzvalof{bipoles/sacdc/width}} +{sacdc} +{\ctikzvalof{bipoles/sacdc/width}} +{\ctikzvalof{bipoles/sacdc/width}} +{ + \pgf@circ@res@step = \ctikzvalof{bipoles/sacdc/width}\pgf@circ@scaled@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 + \pgf@circ@twoportbox + + \ifpgf@circuit@inputarrow + { + \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 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{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfusepath{draw} + + % draw sin wave + \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + + % draw equal sign + \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}} + \pgfusepath{draw} +} + + + +%% single phase dc/ac converter +\pgfcircdeclarebipolescaled{blocks} +{ + \anchor{dc1}{ + \northeast + \pgf@y=.4\pgf@y + \pgf@x=-\pgf@x + } + \anchor{dc2}{ + \northeast + \pgf@y=-.4\pgf@y + \pgf@x=-\pgf@x + } +} +{\ctikzvalof{bipoles/sdcac/width}} +{sdcac} +{\ctikzvalof{bipoles/sdcac/width}} +{\ctikzvalof{bipoles/sdcac/width}} +{ + \pgf@circ@res@step = \ctikzvalof{bipoles/sdcac/width}\pgf@circ@scaled@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 + \pgf@circ@twoportbox + + \ifpgf@circuit@inputarrow + { + \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 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{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfusepath{draw} + + % draw sin wave + \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + + % draw equal sign + \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}} + \pgfusepath{draw} +} + + +%% threephase ac/dc converter +\pgfcircdeclarebipolescaled{blocks} +{ + \anchor{dc1}{ + \northeast + \pgf@y=.4\pgf@y + } + \anchor{dc2}{ + \northeast + \pgf@y=-.4\pgf@y + } + \anchor{ac1}{ + \northeast + \pgf@y=.6\pgf@y + \pgf@x=-\pgf@x + } + \anchor{ac2}{ + \northeast + \pgf@y=0\pgf@y + \pgf@x=-\pgf@x + } + \anchor{ac3}{ + \northeast + \pgf@y=-.6\pgf@y + \pgf@x=-\pgf@x + } +} +{\ctikzvalof{bipoles/tacdc/width}} +{tacdc} +{\ctikzvalof{bipoles/tacdc/width}} +{\ctikzvalof{bipoles/tacdc/width}} +{ + \pgf@circ@res@step = \ctikzvalof{bipoles/tacdc/width}\pgf@circ@scaled@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 + \pgf@circ@twoportbox + + \ifpgf@circuit@inputarrow + { + \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 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{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfusepath{draw} + + % draw sin waves + \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.65\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.35\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + + + + + % draw equal sign + \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}} + \pgfusepath{draw} +} + + +%% threephase dc/ac converter +\pgfcircdeclarebipolescaled{blocks} +{ + \anchor{dc1}{ + \northeast + \pgf@y=.4\pgf@y + \pgf@x=-\pgf@x + } + \anchor{dc2}{ + \northeast + \pgf@y=-.4\pgf@y + \pgf@x=-\pgf@x + } + \anchor{ac1}{ + \northeast + \pgf@y=.6\pgf@y + } + \anchor{ac2}{ + \northeast + \pgf@y=0\pgf@y + } + \anchor{ac3}{ + \northeast + \pgf@y=-.6\pgf@y + } +} +{\ctikzvalof{bipoles/tdcac/width}} +{tdcac} +{\ctikzvalof{bipoles/tdcac/width}} +{\ctikzvalof{bipoles/tdcac/width}} +{ + \pgf@circ@res@step = \ctikzvalof{bipoles/tdcac/width}\pgf@circ@scaled@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 + \pgf@circ@twoportbox + + \ifpgf@circuit@inputarrow + { + \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 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{\pgf@circ@res@left}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfusepath{draw} + + % draw sin waves + \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.65\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.35\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}} + \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}} + \pgfusepath{draw} + + + + + % draw equal sign + \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}} + \pgfusepath{draw} + \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}} + \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}} + \pgfusepath{draw} +} + + %%%%%%%%%%%%%%%%%%%%%%% %% MECHANICAL SYMBOLS %%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex index 88e92fcab7e..a023e058d39 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex @@ -2149,6 +2149,7 @@ } % create input anchors \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@ieeestd #1 port\endcsname{% + \pgf@circ@count@a=\inputs \pgfmathloop% \ifnum\pgfmathcounter>\pgf@circ@count@a% \else% diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex index 24585e20ea7..6f5c89c9a4e 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex @@ -290,6 +290,8 @@ \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@oosourcetrans@path#1{\pgf@circ@bipole@path{oosourcetrans}{#1}} +\def\pgf@circ@ooosource@path#1{\pgf@circ@bipole@path{ooosource}{#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}} @@ -360,6 +362,11 @@ \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}} +% +\def\pgf@circ@sacdc@path#1{\pgf@circ@bipole@path{sacdc}{#1}} +\def\pgf@circ@sdcac@path#1{\pgf@circ@bipole@path{sdcac}{#1}} +\def\pgf@circ@tacdc@path#1{\pgf@circ@bipole@path{tacdc}{#1}} +\def\pgf@circ@tdcac@path#1{\pgf@circ@bipole@path{tdcac}{#1}} %%Mechanical \def\pgf@circ@spring@path#1{\pgf@circ@bipole@path{spring}{#1}} @@ -484,6 +491,11 @@ \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}} +% +\compattikzset{sacdc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@sacdc@path, l=#1}} +\compattikzset{sdcac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@sdcac@path, l=#1}} +\compattikzset{tacdc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tacdc@path, l=#1}} +\compattikzset{tdcac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tdcac@path, l=#1}} % % % % % % % % Begin of Diodes @@ -661,6 +673,8 @@ \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{oosourcetrans/.style = {\circuitikzbasekey, \circuitikzbasekey/bipole/is voltage=true,/tikz/to path=\pgf@circ@oosourcetrans@path, v=#1}} +\compattikzset{ooosource/.style = {\circuitikzbasekey, \circuitikzbasekey/bipole/is voltage=true,/tikz/to path=\pgf@circ@ooosource@path, v=#1}} \compattikzset{vsource/.style = {\comnpatname voltage source = #1}} \compattikzset{isource/.style = {\comnpatname current source = #1}} @@ -823,6 +837,9 @@ \def\pgf@circ@multiwire@path#1{\pgf@circ@bipole@path{multiwire}{#1}} \compattikzset{multiwire/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@multiwire@path, l=#1}} +\def\pgf@circ@tmultiwire@path#1{\pgf@circ@bipole@path{tmultiwire}{#1}} +\compattikzset{tmultiwire/.style = {\circuitikzbasekey, +/tikz/to path=\pgf@circ@tmultiwire@path, l=#1}} % reed switches \def\pgf@circ@reed@path#1{\pgf@circ@bipole@path{reed}{#1}} diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex index 68ecb33d4a6..692b6ec40cd 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex @@ -839,8 +839,144 @@ \endpgfscope } +} + +%% gridnode +\pgfdeclareshape{gridnode} +{ + \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}} + \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} + \savedanchor\northwest{ + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@y=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen + \pgf@y=.5\pgf@y + \pgf@x=-\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + } + \anchor{center}{ + \pgfpointorigin + } + + \anchor{north}{ + \northwest + \pgf@x=0pt + } + \anchor{up}{ + \northwest + \pgf@x=0pt + } + \anchor{south}{ + \northwest + \pgf@x=0pt + \pgf@y=-\pgf@y + } + \anchor{down}{ + \northwest + \pgf@x=0pt + \pgf@y=-\pgf@y + } + \anchor{east}{ + \northwest + \pgf@y=0pt + \pgf@x=-\pgf@x + } + \anchor{right}{ + \northwest + \pgf@y=0pt + \pgf@x=-\pgf@x + } + \anchor{west}{ + \northwest + \pgf@y=0pt + } + \anchor{left}{ + \northwest + \pgf@y=0pt } + \anchor{south west}{ + \northwest + \pgf@y=-\pgf@y + } + \anchor{north east}{ + \northwest + \pgf@x=-\pgf@x + \relax + } + \anchor{north west}{ + \northwest + } + \anchor{south east}{ + \northwest + \pgf@x=-\pgf@x + \pgf@y=-\pgf@y + } + \anchor{text}{ + \pgf@x=-2\pgf@x + \advance \pgf@x by -.5\wd\pgfnodeparttextbox + \advance \pgf@y by -1.5\ht\pgfnodeparttextbox + } + \backgroundpath{ + \pgfsetcolor{\ctikzvalof{color}} + \pgf@circ@scaled@Rlen=\scaledRlen + \pgf@circ@res@step=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@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 + + \pgf@circ@res@step = \ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@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 + \pgf@circ@twoportbox + + + \ifpgf@circuit@inputarrow + { + \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth + \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} + \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} + } + \fi + + \pgfsetdash{}{0pt} % always draw solid line for inner symbol + \pgfsetarrows{-} %never draw arrows + \pgfsetlinewidth{0.05mm} + + % draw grid + \foreach \line in {-1,-.5,...,1} + { + \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@up}} + + \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@down}} + } + + %prevent from draw the inner cross twice + \foreach \line in {-.5,0,...,.5} + { + \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@up}} + + \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@down}} + } + \pgfusepath{draw} + } +} + % Wilkinson divider \pgfdeclareshape{wilkinson}{ diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex index 6eecb72c991..739373f2eb5 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex @@ -1267,13 +1267,14 @@ % https://github.com/circuitikz/circuitikz/issues/385 % \newif\ifpgf@circ@european@port@circle\pgf@circ@european@port@circlefalse +\newif\ifpgf@circ@european@port@circle@ieee\pgf@circ@european@port@circle@ieeefalse \ctikzset{tripoles/european not shape/.initial=ocirc} \ctikzset{tripoles/european not symbol/.is choice} \ctikzset{tripoles/european not symbol/triangle/.code={\pgf@circ@european@port@circlefalse}} \ctikzset{tripoles/european not symbol/circle/.code={% -\pgf@circ@european@port@circletrue\ctikzset{tripoles/european not shape=ocirc}}} +\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeefalse\ctikzset{tripoles/european not shape=ocirc}}} \ctikzset{tripoles/european not symbol/ieee circle/.code={% -\pgf@circ@european@port@circletrue\ctikzset{tripoles/european not shape=notcirc}}} +\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeetrue\ctikzset{tripoles/european not shape=notcirc}}} \long\def\pgfcircdeclareeurologicport#1#2#3#4{ \pgfdeclareshape{european #1 port} @@ -1375,6 +1376,7 @@ \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} + \pgfstartlinewidth=\pgflinewidth \pgfscope \pgf@circ@setlinewidth{tripoles}{\pgflinewidth} \pgfpathrectanglecorners @@ -1415,6 +1417,8 @@ \pgfscope \pgf@circ@setlinewidth{tripoles}{\pgflinewidth} \pgftransformxshift{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right} + % reset linewidth for IEEE ports, otherwise they will multiply... + \ifpgf@circ@european@port@circle@ieee\pgfsetlinewidth{\pgfstartlinewidth}\fi \pgfnode{\ctikzvalof{tripoles/european not shape}}{west}{}{NOT}{\pgfusepath{stroke}} \endpgfscope \else diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex index 0a87b5e6edf..4ba528296d1 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex @@ -226,8 +226,8 @@ node [ocirc, fill=blue] at (anchorendnode) {} node [ocirc, fill=green] at (pgfcirc@Vto) {} node [ocirc, fill=yellow] at (pgfcirc@Vfrom) {} - node [odiamondpole, fill=green] at (pgfcirc@Vto@flat) {} - node [odiamondpole, fill=yellow] at (pgfcirc@Vfrom@flat) {} + node [odiamondpole, fill=green!50!black] at (pgfcirc@Vto@flat) {} + node [odiamondpole, fill=orange] at (pgfcirc@Vfrom@flat) {} \fi coordinate (pgfcirc@Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (anchorendnode)$) coordinate (pgfcirc@Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (anchorstartnode)$) @@ -271,7 +271,7 @@ \else (pgfcirc@Vfrom) --(pgfcirc@Vto) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {} \fi - \else + \else \ifpgf@circuit@bipole@voltage@backward (pgfcirc@Vto) .. controls (pgfcirc@Vcont2) and (pgfcirc@Vcont1) .. node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {} @@ -282,30 +282,58 @@ (pgfcirc@Vto) \fi \fi - \else - \ifpgf@circuit@bipole@voltage@backward - \ifpgf@circ@oldvoltagedirection - (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} - (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} - \else - (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} - (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + \else % american + \ifx\@@kind\@@open % open circuit; put + and - directly on it + \ifpgf@circuit@bipole@voltage@backward + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avplus} + (pgfcirc@Vto@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avminus} + \else + (pgfcirc@Vfrom@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avminus} + (pgfcirc@Vto@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avplus} + \fi + \else + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avminus} + (pgfcirc@Vto@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avplus} + \else + (pgfcirc@Vfrom@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avplus} + (pgfcirc@Vto@flat) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=center]{\pgf@circ@avminus} + \fi \fi - \else - \ifpgf@circ@oldvoltagedirection - (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} - (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} - \else - (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} - (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, - anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + \else % not open circuit + \ifpgf@circuit@bipole@voltage@backward + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + \else + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + \fi + \else + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + \else + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + \fi \fi \fi \fi @@ -362,6 +390,8 @@ } %% Output routine +%% this is the entry point +%% \def\pgf@circ@drawvoltage{% node name \pgfextra{ %WARNING: indentation is probably wrong \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} @@ -465,6 +495,10 @@ % outside the (+) -- (-) line \pgfmathsetlength{\alshift}{(\ctikzvalof{voltage/american label distance}-0.6)*\partheight} \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! + % set the macro for detecting open + \edef\@@kind{\ctikzvalof{bipole/kind}}\edef\@@open{open} + \ifpgf@adjust@open@voltage\else\edef\@@open{this-will-nEver-match}\fi + % \typeout{KIND\space\@@kind} }%end pgfextra \ifpgf@circuit@bipole@isvoltage @@ -473,6 +507,8 @@ \pgf@circ@drawvoltagegeneric \fi + % \pgfextra{\typeout{LABEL\space KIND:\@@kind\space OPEN:\@@open}} + \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, @@ -489,9 +525,23 @@ coordinate (Vlab) at ($(Vlab) ! \alshift ! \pgf@circ@bipole@voltage@label@where :(pgfcirc@Vto)$) \fi \fi - node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt, - \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage) - at (Vlab) {\pgf@circ@finallabels{voltage/label}} + + \ifpgf@circuit@europeanvoltage + node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt, + \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage) + at (Vlab) {\pgf@circ@finallabels{voltage/label}} + \else % american voltages + \ifx\@@kind\@@open + coordinate (Vlab) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$) + node [anchor=center, inner sep=2pt, + \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage) + at (Vlab) {\pgf@circ@finallabels{voltage/label}} + \else + node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt, + \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage) + at (Vlab) {\pgf@circ@finallabels{voltage/label}} + \fi + \fi \fi }%end drawvoltages \endinput -- cgit v1.2.3