summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-15 14:26:47 +0000
committerKarl Berry <karl@freefriends.org>2015-04-15 14:26:47 +0000
commitc2e96227e5a42fe60bb1df26a5f9dc1d3f3aef1e (patch)
tree6a40d5e817b8443365eec4d93f3e983324ac0b70
parentd39fad242a3f0a08baea76e76ec84c8ff61c8532 (diff)
pst-circ (14apr15)
git-svn-id: svn://tug.org/texlive/trunk@36865 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/Changes1
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdfbin838334 -> 739227 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex212
-rw-r--r--Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex361
4 files changed, 492 insertions, 82 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-circ/Changes b/Master/texmf-dist/doc/generic/pst-circ/Changes
index 2988e207067..0ace152b455 100644
--- a/Master/texmf-dist/doc/generic/pst-circ/Changes
+++ b/Master/texmf-dist/doc/generic/pst-circ/Changes
@@ -1,3 +1,4 @@
+2.13 2015-04-15 . added some new components (Piere Vivegnis)
2.12a 2014-10-09 . Updated documentation
2.12 2014-07-30 . Added new tripole powermeter.
2.11 2014-06-24 . Added new key circ={} for specific key setting.
diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf
index ec609f42c68..2393cb21d88 100644
--- a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex
index c4eb7f6df7e..f93f8769c88 100644
--- a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex
@@ -41,18 +41,18 @@
\circulator[tripolestyle=isolator,tripoleconfig=right]{180}(R1)(R2)(X1){Isolator}{}
\ncline{B}{R1}
\pnode(10,8){R3} \pnode(9,7){X2}
- \mixer[inputarrow,fillcolor=blue,fillstyle=solid](R2)(R3)(X2){Mixer}{}
+ \mixer[inputarrow,fillcolor=blue,fillstyle=solid, labeloffset=0.8](R2)(R3)(X2){Mixer}{}
\pnode(9,6){X3}
\oscillator[output=top](X3){LO}{}
\pnode(12,8){R4}
\ncline{R3}{R4}
\naput{0.5~GHZ}
\pnode(14,8){R5}
- \filter(R4)(R5){BPF}%
+ \filter[labeloffset=0.8](R4)(R5){BPF}%
\pnode(16,8){R6}
- \amplifier[inputarrow=true,fillcolor=red,fillstyle=solid](R5)(R6){IF~Amp}
+ \amplifier[inputarrow=true,fillcolor=red,fillstyle=solid, labeloffset=0.8](R5)(R6){IF~Amp}
\pnode(18,8){R7}
- \detector[inputarrow=true](R6)(R7){Detector}
+ \detector[inputarrow=true, labeloffset=0.8](R6)(R7){Detector}
\pnode(18,4){R8}
\amplifier[inputarrow=true,labeloffset=-1](R7)(R8){Amp}
\pscircle[fillstyle=solid,fillcolor=white](18,4){0.1}
@@ -413,6 +413,19 @@ objects you are drawing. You'll find a list in Section~\ref{sec:para} on p.~\pag
\end{pspicture}
\end{LTXexample}
+\begin{LTXexample}[width=3.5cm,rframe={}]
+\begin{pspicture}(3,2)
+ \pnode(0,1){A} \pnode(3,1){B}
+ \cell[labeloffset=1cm](A)(B){Cell}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=3.5cm,rframe={}]
+\begin{pspicture}(3,2)
+ \pnode(0,1){A} \pnode(3,1){B}
+ \igbt[labeloffset=0.7cm, IGBTinvert=false](A)(B){IGBT}
+\end{pspicture}
+\end{LTXexample}
\bigskip
@@ -426,20 +439,38 @@ well chosen, so don't try to use tripole macros in strange situations!
\xLcs{OA}
\begin{LTXexample}[width=5.5cm]
-\begin{pspicture}(5,3)
- \pnodes(0,0){A}(0,3){B}(5,1.5){C}
+\begin{pspicture}(5,2)
+ \pnodes(0,0){A}(0,2){B}(5,1){C}
\OA(B)(A)(C)
\end{pspicture}
\end{LTXexample}
\xLkeyword{OApower}
\begin{LTXexample}[width=5.5cm]
-\begin{pspicture}(5,3)
- \pnodes(0,0){A}(0,3){B}(5,1.5){C}
+\begin{pspicture}(5,2)
+ \pnodes(0,0){A}(0,2){B}(5,1){C}
\OA[OApower=true](B)(A)(C)
\end{pspicture}
\end{LTXexample}
+\xLcs{GM}
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}(5,2)
+ \pnodes(0,0){A}(0,2){B}(5,1){C}
+ \GM[GMperfect=true](B)(A)(C)
+\end{pspicture}
+\end{LTXexample}
+
+\xLkeyword{GMpower}
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}(5,2)
+ \pnodes(0,0){A}(0,2){B}(5,1){C}
+ \GM[GMpower=true](B)(A)(C)
+\end{pspicture}
+\end{LTXexample}
+
+There are 5 types of transistors included : NPN, PNP, FET, NMOS and PMOS. It's the macro \Lcs{transistortype} that determines which transistor will be drawn.
+
\xLcs{transistor}
\begin{LTXexample}[width=5.5cm]
\begin{pspicture}(3,4)
@@ -448,6 +479,22 @@ well chosen, so don't try to use tripole macros in strange situations!
\end{pspicture}
\end{LTXexample}
+\xLcs{transistorFET}
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}(3,4)
+\pnodes(0,2){A}(3,1){B}(3,3){C}
+\transistor[basesep=1cm, transistortype=FET](A)(B)(C)
+\end{pspicture}
+\end{LTXexample}
+
+\xLcs{transistorNMOS}
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}(3,4)
+\pnodes(0,2){A}(3,1){B}(3,3){C}
+\transistor[basesep=1cm, transistortype=NMOS, transistorcircle=false](A)(B)(C)
+\end{pspicture}
+\end{LTXexample}
+
\xLcs{transistor}\xLkeyword{TRot}
\begin{LTXexample}[width=5.5cm]
\begin{pspicture}(3,4)
@@ -456,6 +503,9 @@ well chosen, so don't try to use tripole macros in strange situations!
\end{pspicture}
\end{LTXexample}
+
+
+
\xLkeyword{TRot}
\begin{LTXexample}[width=5.5cm]
\begin{pspicture}[showgrid=true](5,5)
@@ -526,13 +576,21 @@ well chosen, so don't try to use tripole macros in strange situations!
\end{LTXexample}
\xLcs{potentiometer}
-\begin{LTXexample}[width=3.5cm]
+\begin{LTXexample}[width=5.5cm]
\begin{pspicture}(3,3)
\pnodes(0,1){A}(3,1){B}(3,2.25){C}
\potentiometer[labeloffset=0pt](A)(B)(C){$P$}
\end{pspicture}
\end{LTXexample}
+\xLcs{transistorFET}
+\begin{LTXexample}[width=5.5cm]
+\begin{pspicture}(3,4)
+\pnodes(0,2){A}(3,1){B}(3,3){C}
+\transistor[basesep=1cm, transistortype=FET, FETchanneltype=P](A)(B)(C)
+\end{pspicture}
+\end{LTXexample}
+
\begin{LTXexample}[pos=b]
\psset{mathlabel,labelstyle=\tt}
@@ -564,9 +622,6 @@ well chosen, so don't try to use tripole macros in strange situations!
-
-
-
\clearpage
\subsubsection{Quadrupole macros}
@@ -2115,19 +2170,12 @@ argument.
\begin{LTXexample}[width=3.5cm,rframe={}]
\begin{pspicture}(3,2)
- \pnodes(0,0){A}(2,0){B}
- \attenuator[inputarrow,labeloffset=1cm,
+ \pnode(0,1){A} \pnode(3,1){B}
+ \attenuator[inputarrow,labeloffset=0.7cm,
dipoleinput=left](A)(B){Attentuator}
\end{pspicture}
\end{LTXexample}
-\begin{LTXexample}[width=3.5cm,rframe={}]
-\begin{pspicture}(3,2)
- \pnodes(0,0){AA}(2,0){B}
- \cell[labeloffset=1cm](A)(B){Cell}
-\end{pspicture}
-\end{LTXexample}
-
\subsection{New tripole macro-components}
\subsubsection{Mixer}
@@ -2153,6 +2201,31 @@ argument.
\end{pspicture}
\end{LTXexample}
+\subsubsection{Splitter}
+\begin{description}
+ \item[\Lkeyword{tripolestyle}:] \Lkeyval{bottom} | \Lkeyval{top}
+ \item[\Lkeyword{tripoleconfig}:] \Lkeyval{left} | \Lkeyval{right}
+ \item[\Lkeyword{inputarrow}:] \false | \true
+\end{description}
+
+
+\begin{LTXexample}[width=3.5cm,rframe={}]
+\begin{pspicture}(3,2)
+\pnode(0.5,1){A}\pnode(2.5,1){B}\pnode(1.5,2){C}
+ \splitter[inputarrow,
+ tripolestyle=top](A)(B)(C){Splitter}{}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=3.5cm,rframe={}]
+\begin{pspicture}(3,2)
+\pnode(0.5,1){A}\pnode(2.5,1){B}\pnode(1.5,0){C}
+ \splitter[inputarrow,
+ tripolestyle=bottom,tripoleinput=right, fillstyle=solid, fillcolor=ForestGreen](A)(B)(C){Splitter}{}
+\end{pspicture}
+\end{LTXexample}
+
+
\subsubsection{Circulator}
\begin{description}
\item[\Lkeyword{tripolestyle}:] \Lkeyval{circulator} | \Lkeyval{isolator}
@@ -2215,14 +2288,6 @@ argument.
\end{LTXexample}
-\begin{LTXexample}[width=3.5cm,rframe={}]
-\begin{pspicture}(3,2)
- \pnodes(0,1){A}(2,1){B}(1,0){C}
- \splitter[inputarrow,labeloffset=1cm,
- tripolestyle=bottom](A)(B)(C){Splitter}{}
-\end{pspicture}
-\end{LTXexample}
-
\subsection{New quadripole macro-components}
@@ -2273,6 +2338,7 @@ argument.
\subsection{Examples}
+\subsubsection{Radar emission diagram}
\begin{pspicture}[labelangle=:U](8,5)
\pnodes(1, 3){A}(1.8, 3){B}(3.5, 3){C}(5, 3){D}(7, 3){E}(7.1, 3){EE}(6, 2){F}(5, 1){G}%
(7, 1){H}(7.1, 1){HH}(4, 1){I}(3.5, 1){J}
@@ -2285,7 +2351,7 @@ argument.
\psline[arrowinset=0]{->}(E)(EE)
\mixer[tripolestyle=top,inputarrow=true, tripoleinput=right, labeloffset=0.9,fillstyle=solid,fillcolor=red](G)(H)(F){}{}
\wire(H)(HH)
- \rput(7.8, 1.25){13 dBm}
+ \rput(7.8, 1.25){\SI{13}{\dbm}}
\rput(7.8, 0.75){\SI{900}{\mega\hertz}}
\attenuator[dipoleinput=left,labeloffset=-0.9,linecolor=blue](I)(G){\textcolor{blue}{\SI{-10}{\decibel}}}
\psline[arrowinset=0]{->}(I)(J)
@@ -2533,7 +2599,8 @@ From Chang, K., RF and Microwave Wireless Systems, Wiley InterScience, page 319,
\end{tabular}}
\end{pspicture}}
-\psscalebox{0.7}{%
+\subsubsection{Circuit to harvest Solar Energy}
+\resizebox{\linewidth}{!}{%
\begin{pspicture}[labelangle=:U, showgrid=false](40,10)
\pnodes(1.75, 1){A}(3, 1){B}(3, 3.5){C}(4, 3.5){D}(6, 3.5){E}(6, 4.5){F}(3, 5.5){G}(6, 6){H}%
(2.5, 6.5){I}(2.5, 8.5){J}(0.5, 6.5){K}(0, 6.5){K1}(8.5, 6){L}(8.5, 5.5){L1}(8.5, 7){M}%
@@ -2625,7 +2692,90 @@ From Chang, K., RF and Microwave Wireless Systems, Wiley InterScience, page 319,
\rput(27.7, 5.2){\texttt{7}}
\end{pspicture}}
+\subsubsection{Amplificator for hearing aid}
+\scalebox{0.7}{%
+\begin{pspicture}[showgrid=false](-0.5, -0.5)(25,10)
+ \pnodes(0, 1){A}(-0.1, 2){BC}(0, 2){B}(2, 1.5){C}(6, 1.5){D}(4, 4.5){E}(0, 7.5){F}%
+ (6, 7.5){G}(0, 5){AA}(0, 6){BB}(2, 5.5){CC}(2.5, 5.5){DD}(2.5, 3.5){EE}(6, 5){H}%
+ (7.5, 5){HH}(7.5, 3){HK}(9, 4){I}(9, 5){II}(11.5, 4.5){J}(9, 6.5){K}(11.5, 6.5){KL}%
+ (13, 3.5){L}(15, 4){M}(19, 4){N}(19, 7){O}(13, 7){LL}(13, 8){JJ}(13, 9.5){PP}%
+ (15, 7.5){MM}(15.5, 7.5){NN}(15.5, 6){OO}(19, 9.5){PQ}(17, 6.5){QQ}(19, 7){RR}%
+ (20.5, 7){P}(20.5, 5.5){Q}(22, 7){R}(22, 6){S}(24.5, 6.5){T}(22, 8.5){U}(24.5, 8.5){V}%
+ (25, 6.5){TT}
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Première cellule
+
+ \wire[arrows=o-](BC)(B)
+ \GM[GMinvert=false](B)(A)(C)
+ \newground[connectingdot=false, groundstyle=triangle](A)
+ \wire(C)(D)
+ \wire(BB)(F)
+ \wire(F)(G)
+ \wire[arrows=-*](G)(H)
+ \GM[GMinvert=false](BB)(AA)(CC)
+ \newground[connectingdot=false, groundstyle=triangle](AA)
+ \capacitor[arrows=*-, labeloffset=0.9](DD)(EE){$C_{A1}$}
+ \newground[connectingdot=false, groundstyle=triangle](EE)
+
+ \GM[GMinvert=true](CC)(E)(H)
+ \newground[connectingdot=false, groundstyle=triangle](E)
+
+ \wire(D)(H)
+
+ \capacitor[arrows=*-, labeloffset=0.9](HH)(HK){$C_{B1}$}
+ \newground[connectingdot=false, groundstyle=triangle](HK)
+
+ \GM[GMinvert=true](H)(I)(J)
+ \newground[connectingdot=false, groundstyle=triangle](I)
+ \wire[arrows=*-](II)(K)
+ \wire(K)(KL)
+ \wire[arrows=-*](KL)(J)
+ % Seconde cellule
+
+ \GM[GMinvert=false](J)(L)(M)
+ \newground[connectingdot=false, groundstyle=triangle](L)
+ \GM[GMinvert=false](J)(L)(M)
+ \newground[connectingdot=false, groundstyle=triangle](L)
+ \wire(M)(N)
+ \wire(N)(O)
+
+ \GM[GMinvert=false](JJ)(LL)(MM)
+ \newground[connectingdot=false, groundstyle=triangle](LL)
+ \capacitor[arrows=*-, labeloffset=0.9](NN)(OO){$C_{A2}$}
+ \newground[connectingdot=false, groundstyle=triangle](OO)
+ \wire(JJ)(PP)
+ \wire(PP)(PQ)
+ \wire[arrows=-*](PQ)(RR)
+ \GM[GMinvert=false](MM)(QQ)(RR)
+ \newground[connectingdot=false, groundstyle=triangle](QQ)
+
+ \capacitor[arrows=*-, labeloffset=0.9](P)(Q){$C_{B2}$}
+ \newground[connectingdot=false, groundstyle=triangle](Q)
+
+ \GM[GMinvert=false](RR)(S)(T)
+ \newground[connectingdot=false, groundstyle=triangle](S)
+ \wire[arrows=*-](R)(U)
+ \wire(U)(V)
+ \wire[arrows=-*](V)(T)
+ \wire[arrows=-o](T)(TT)
+
+
+
+ %%%%%%%%%%%
+ \rput[B](1, 0.1){$Gm_{5,1}$}
+ \rput[B](1, 4.1){$Gm_{1,1}$}
+ \rput[B](5, 3.6){$Gm_{2,1}$}
+ \rput[B](10.25, 3.1){$Gm_{3,1}$}
+ \rput[B](14, 2.6){$Gm_{5,2}$}
+ \rput[B](14, 6.1){$Gm_{1,2}$}
+ \rput[B](18, 5.6){$Gm_{2,2}$}
+ \rput[B](23.25, 5.1){$Gm_{3,2}$}
+
+ \uput{0.2}[180](BC){\textbf{$V_{IN}$}}
+ \uput{0.2}[0](TT){\textbf{$V_{OUT}$}}
+\end{pspicture}
+}
\end{landscape}
diff --git a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
index 8e806774869..faa50eeea99 100644
--- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
+++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
@@ -26,8 +26,8 @@
\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey \fi
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
%
-\def\fileversion{2.12a}
-\def\filedate{2014/10/09}
+\def\fileversion{2.13}
+\def\filedate{2015/04/15}
\message{`pst-circ' v\fileversion (hv)}
%
\edef\PstAtCode{\the\catcode`\@}
@@ -57,6 +57,9 @@
\def\pst@Ttype@PNP{PNP}
\def\pst@Ttype@NPN{NPN}
\def\pst@Ttype@FET{FET}
+\def\pst@Ttype@NMOS{NMOS}
+\def\pst@Ttype@PMOS{PMOS}
+%
\def\pst@FETchanneltype@P{P}% Ted
\def\pst@FETchanneltype@N{N}% Ted
\def\pst@Dstyle@twoCircles{twoCircles}
@@ -126,6 +129,17 @@
\define@key[psset]{pst-circ}{OAipluslabel}[]{\def\psk@label@OAiplus{#1}}
\define@key[psset]{pst-circ}{OAiminuslabel}[]{\def\psk@label@OAiminus{#1}}
\define@key[psset]{pst-circ}{OAioutlabel}[]{\def\psk@label@OAiout{#1}}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMperfect}[true]{}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMpower}[true]{}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMinvert}[true]{}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMiplus}[true]{}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMiminus}[true]{}
+\define@boolkey[psset]{pst-circ}[Pst@]{GMiout}[true]{}
+\define@key[psset]{pst-circ}{GMipluslabel}[]{\def\psk@label@GMiplus{#1}}
+\define@key[psset]{pst-circ}{GMiminuslabel}[]{\def\psk@label@GMiminus{#1}}
+\define@key[psset]{pst-circ}{GMioutlabel}[]{\def\psk@label@GMiout{#1}}
+
+\define@boolkey[psset]{pst-circ}[Pst@]{IGBTinvert}[true]{}
\define@boolkey[psset]{pst-circ}[Pst@]{transistorcircle}[true]{}
\define@boolkey[psset]{pst-circ}[Pst@]{transistorinvert}[true]{}
\define@boolkey[psset]{pst-circ}[Pst@]{transistoribase}[true]{}
@@ -836,7 +850,10 @@
parallel=false,parallelarm=1.5,parallelsep=0,parallelnode=false,
intersect=false,OAperfect=true,OAinvert=true,
OAiplus=false,OAiminus=false,OAiout=false,OAipluslabel={},
- OAiminuslabel={},OAioutlabel={},OApower=false,%
+ OAiminuslabel={},OAioutlabel={},OApower=false,
+ GMperfect=false,GMinvert=true, % pv 2014-12-14
+ GMiplus=false,GMiminus=false,GMiout=false,GMipluslabel={}, %
+ GMiminuslabel={},GMioutlabel={},GMpower=false,% % END of ADD
transistorcircle=true, transistorinvert=false, % hv 2003-07-23
transistoribase=false,transistoricollector=false,transistoriemitter=false,%
transistoribaselabel={},basesep=0pt,
@@ -913,7 +930,7 @@
pinte=false,invertpinte=false,pinba=false,invertpinba=false,pinbb=false,invertpinbb=false,
pinbc=false,invertpinbc=false,pinbd=false,invertpinbd=false,pinbe=false,invertpinbe=false,
dpleft=false,dpright=true,latch=false,unlatch=false,contactclosed=false,polarized=false,
- ison=true
+ ison=true, IGBTinvert=false % pv 2014-12-14
}% hv
%\psset[pstricks]{radius=0.5}
@@ -1046,6 +1063,83 @@
\ignorespaces%
}
%
+
+%
+\def\GM{\pst@object{GM}}
+\def\GM@i(#1)(#2)(#3){%
+ \addbefore@par{dimen=middle}%
+ \begin@ClosedObj%
+ \if\psk@label@GMiplus\@empty\else\psset{GMiplus=true}\fi%
+ \if\psk@label@GMiminus\@empty\else\psset{GMiminus=true}\fi%
+ \if\psk@label@GMiout\@empty\else\psset{GMiout=true}\fi%
+ \ifPst@intensity\psset{GMiplus=true,GMiminus=true,GMiout=true}\fi%
+ \pst@getcoor{#1}\pst@tempa
+ \pst@getcoor{#2}\pst@tempb
+ \pst@getcoor{#3}\pst@tempc
+ \pnode(!%
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ \pst@tempc /Y3 exch \pst@number\psyunit div def
+ /X3 exch \pst@number\psxunit div def
+ /XC X1 X2 lt {X3 X2} {X3 X1} ifelse add 2 div def
+ /YC Y1 Y2 add 2 div def
+ XC YC){C@}
+ \rput(C@){\pst@draw@GM}
+ \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#1}{\ifPst@GMinvert Minus@\else Plus@\fi}
+ \ncput[npos=2]{\pnode{\ifPst@GMinvert Minus@@\else Plus@@\fi}}
+ \ifPst@GMiplus
+ \ifPst@GMinvert\else
+ \ncput[npos=2.5]{%
+ \psline[linecolor=\psk@I@color,
+ linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
+ \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiplus}
+ \fi
+ \fi
+ \ifPst@GMiminus
+ \ifPst@GMinvert
+ \ncput[npos=2.5]{%
+ \psline[linecolor=\psk@I@color,
+ linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
+ \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiminus}
+ \fi
+ \fi
+ \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#2}{\ifPst@GMinvert Plus@\else Minus@\fi}
+ \ncput[npos=2]{\pnode{\ifPst@GMinvert Plus@@\else Minus@@\fi}}
+ \ifPst@GMiplus
+ \ifPst@GMinvert
+ \ncput[npos=2.5]{%
+ \psline[linecolor=\psk@I@color,
+ linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
+ \nbput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiplus}
+ \fi
+ \fi
+ \ifPst@GMiminus
+ \ifPst@GMinvert\else
+ \ncput[npos=2.5]{%
+ \psline[linecolor=\psk@I@color,
+ linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
+ \nbput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiminus}
+ \fi
+ \fi
+ \ncangle[arrows=-,arm=.5,angleA=180,angleB=0]{#3}{S@}
+ \ncput[npos=2]{\pnode{S@@}}
+ \ifPst@GMiout
+ \ncput[npos=2.5]{%
+ \psline[linecolor=\psk@I@color,
+ linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
+ \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiout}
+ \fi
+ \psline[linestyle=none](#1)(#2)% for the end arrows
+ \psline[linestyle=none](#1)(#3)% for the end arrows
+ \end@ClosedObj
+ \ignorespaces%
+}
+% % pv 2014-12-14
+
+
+%
\def\pst@draw@battery{%
\psline[arrows=-,linewidth=1.5\pslinewidth](-0.10,-0.5)(-0.10,0.5)
\psline[arrows=-,linewidth=3\pslinewidth](0.10,-0.25)(0.10,0.25)
@@ -1068,67 +1162,185 @@
{\transistor@iii(#1)}{\Pst@tempfalse\transistor@ii(#1)}%
}
%
-\def\transistor@ii(#1)#2#3{% with one node, the base and two names for E and C
+\def\transistor@ii(#1)#2#3{% with one node, the base
\pst@killglue%
\ifPst@temp\pnode(#1){TBaseNode}%
- \else
- \pst@getcoor{#1}\pst@tempA
+ \else%
+ \pst@getcoor{#1}\pst@tempA%
\pnode(!
\pst@tempA /YB exch \pst@number\psyunit div def
/XB exch \pst@number\psxunit div def
/basesep \Pst@basesep\space \pst@number\psxunit div def
XB basesep \Pst@TRot\space cos mul add
YB basesep \Pst@TRot\space sin mul add){TBaseNode}% base node
- \fi
+ \fi%
+% \psdot(#1)%
\rput[c]{\Pst@TRot}(!
\pst@tempA /YB exch \pst@number\psyunit div def
/XB exch \pst@number\psxunit div def
/basesep \Pst@basesep\space \pst@number\psxunit div def
XB basesep \Pst@TRot\space cos mul add
- YB basesep \Pst@TRot\space sin mul add){%
- \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi
- \ifx\psk@Ttype\pst@Ttype@FET
- \ifPst@FETmemory% atosch
- \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)%
- \fi%
- \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)%
+ YB basesep \Pst@TRot\space sin mul add){%(#1){%
+
+ %%%%%%%%%%
+ \ifnum180=\Pst@TRot\relax%
+ \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi
+
+ \ifx\psk@Ttype\pst@Ttype@NPN\relax%
+
+ \ifPst@transistorinvert\pnode(0.5,-0.5){#2}\else\pnode(0.5,-0.5){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.5,0.5){#3}\else\pnode(0.5,0.5){#2}\fi%
+
+ \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)%
+
+ \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+ \else%
+ \ifx\psk@Ttype\pst@Ttype@PNP\relax%
+ \ifPst@transistorinvert\pnode(0.5,-0.5){#2}\else\pnode(0.5,-0.5){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.5,0.5){#3}\else\pnode(0.5,0.5){#2}\fi%
+
+ \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)%
+
+ \else% FET
+ \ifx\psk@Ttype\pst@Ttype@FET\relax%
+
+ \ifPst@transistorinvert\pnode(0.75,-0.5){#2}\else\pnode(0.75,-0.5){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.75,0.5){#3}\else\pnode(0.75,0.5){#2}\fi%
+ % Main drawings
+ \psline[arrows=-](0.75,0.5)(0.2,0.5)
+ \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.2,0.6)(0.2,-0.6)
+ \psline[arrows=-](0.2,-0.5)(0.75,-0.5)%
+
+ \ifPst@FETmemory% atosch
+ \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)%
+ \fi%
+ \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)%
+
+ \ifx\psk@FETchanneltype\pst@FETchanneltype@P\relax% Ted 2007-10-15
+
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.2,0)(0.75,0)%
+ \ifPst@transistorinvert
+ \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,-0.5)%
+ \else
+ \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,0.5)%
+ \fi
+ \else%
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.2,0)(0.75,0)%
+ \ifPst@transistorinvert
+ \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)%
+ \else
+ \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,-0.5)%
+ \fi
+ \fi%
+
+
+ \else % NMOS or PMOS
+ \ifPst@transistorinvert\pnode(0.75,-0.4){#2}\else\pnode(0.75,-0.4){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.75,0.4){#3}\else\pnode(0.75,0.4){#2}\fi%
+ % Main drawings
+ \psline[arrows=-](0.75,0.4)(0.15,0.4)
+ \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6)
+ \psline[arrows=-](0.75,-0.4)(0.15,-0.4)%
+
+
+ \ifx\psk@Ttype\pst@Ttype@NMOS\relax%
+ \ifPst@transistorinvert
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0.4)(0.75,0.4)%
+ \else
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,-0.4)(0.75,-0.4)%
+ \fi
+ \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+
+ \else
+ \ifPst@transistorinvert
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0.4)(0.75,0.4)%
+ \else
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,-0.4)(0.75,-0.4)%
+ \fi
+ \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+ \fi
+ \fi
+ \fi %
+ \fi%
\else%
- \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
- \fi%
-% \pst@abs{\Pst@TRot}\pst@cntn
- \ifx\psk@Ttype\pst@Ttype@FET\relax%
- \ifx\psk@FETchanneltype\pst@FETchanneltype@P
- \pnode(0.65,0.5){#2}\pnode(0.65,-0.5){#3}%
- \else
- \pnode(0.65,0.5){#3}\pnode(0.65,-0.5){#2}%
- \fi
- \else%
- \ifPst@transistorinvert\pnode(0.5,0.5){#2}\pnode(0.5,-0.5){#3}%
- \else \pnode(0.5,0.5){#3}\pnode(0.5,-0.5){#2}%
- \fi
- \fi
- \ifx\psk@Ttype\pst@Ttype@FET
- \psline[arrows=-](0.65,0.5)(0.15,0.5)
- \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.15,0.6)(0.15,-0.6)
- \psline[arrows=-](0.15,-0.5)(0.65,-0.5)%
- \ifx\psk@FETchanneltype\pst@FETchanneltype@P % Ted 2007-10-15
- \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0)(0.65,0)%
- \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,-0.5)%
- \else
- \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0)(0.65,0)%
- \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)%
- \fi
- \else
- \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)%
- \ifx\psk@Ttype\pst@Ttype@PNP
- \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(#3)(TBaseNode)%
- \else%
- \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(TBaseNode)(#2)%
- \fi
- \fi
+ \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi
+ \ifx\psk@Ttype\pst@Ttype@FET\relax%
+ \ifPst@transistorinvert\pnode(0.65,0.5){#2}\else\pnode(0.65,0.5){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.65,-0.5){#3}\else\pnode(0.65,-0.5){#2}\fi%
+
+ % FET Main drawings
+
+ \psline[arrows=-](0.65,0.5)(0.15,0.5) % upper line
+ \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.15,0.6)(0.15,-0.6) % gate
+ \psline[arrows=-](0.15,-0.5)(0.65,-0.5)% lower line
+
+ \ifPst@FETmemory% atosch
+ \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)%
+ \fi%
+ \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)%
+
+
+ \ifx\psk@FETchanneltype\pst@FETchanneltype@P\relax% Ted 2007-10-15
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0)(0.65,0)%
+ \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,-0.5)%
+ \else%
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0)(0.65,0)%
+ \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)%
+ \fi%
+
+
+ \else
+ \ifx\psk@Ttype\pst@Ttype@NMOS\relax%
+ % NMOS Main drawings
+ \psline[arrows=-](0.65,0.4)(0.15,0.4) % upper line
+ \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6) % gate
+ \psline[arrows=-](0.65,-0.4)(0.15,-0.4)% lower line
+
+ \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+
+ \ifPst@transistorinvert\pnode(0.65,0.4){#2}\else\pnode(0.65,0.4){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.65,-0.4){#3}\else\pnode(0.65,-0.4){#2}\fi%
+ \ifPst@transistorinvert
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0.4)(0.65,0.4)%
+ \else
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,-0.4)(0.65,-0.4)%
+ \fi
+ \else
+ \ifx\psk@Ttype\pst@Ttype@PMOS\relax%
+ % PMOS Main drawings
+ \psline[arrows=-](0.65,0.4)(0.15,0.4) % upper line
+ \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6) % gate
+ \psline[arrows=-](0.65,-0.4)(0.15,-0.4)% lower line
+
+ \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+
+ \ifPst@transistorinvert\pnode(0.65,0.4){#2}\else\pnode(0.65,0.4){#3}\fi%
+ \ifPst@transistorinvert\pnode(0.65,-0.4){#3}\else\pnode(0.65,-0.4){#2}\fi%
+ \ifPst@transistorinvert
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0.4)(0.65,0.4)%
+ \else
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,-0.4)(0.65,-0.4)%
+ \fi
+ \else % PNP or NPN
+ \ifPst@transistorinvert\pnode(0.5,0.5){#2}\pnode(0.5,-0.5){#3}%
+ \else \pnode(0.5,0.5){#3}\pnode(0.5,-0.5){#2}%
+ \fi
+ \ifx\psk@Ttype\pst@Ttype@NPN\relax% % NPN
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(TBaseNode)(#2)%
+ \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+ \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)%
+ \else% % PNP
+ \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(#3)(TBaseNode)%
+ \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)%
+ \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)%
+ \fi
+ \fi%
+ \fi%
+ \fi%
+ \fi%
}%
- \ifPst@temp\else\endgroup\fi
- \ignorespaces
+ \ifPst@temp\else\endgroup\fi%
+ \ignorespaces%
}
%
\def\transistor@iii(#1)(#2)(#3){% with three nodes
@@ -5173,7 +5385,7 @@
\pst@number{\psxunit} div /XB ED
XA XB add 2 div
YA YB add 2 div
- ){\pscurve(-0.25,0)(-0.125,0.25)(0,0)(0.125,-0.25)(0.25,0)}}\ignorespaces}
+ ){\pscurve(-0.25,0)(-0.125,0.25)(0.125,-0.25)(0.25,0)}}\ignorespaces}
%
\def\pst@draw@vac{{%
\pnode(-0.5,0){dipole@1}
@@ -5499,7 +5711,54 @@
\end@ClosedObj%
\ignorespaces%
}
+%
+%%% POWER IGBT %%%
+%
+\newCircDipole{igbt}
+\def\pst@draw@igbt{%
+ \pnode(-0.433,0){dipole@1}
+ \pnode(0.433,0){dipole@2}
+ %\psline[fillstyle=none, arrowinset=0](-0.433,-0.5)(0.5,0)
+ \psdot(dipole@1)
+ \psdot(dipole@2)
+ \ifPst@IGBTinvert
+ \psline[arrows=->,linewidth=1.5\pslinewidth, arrowsize =0.2, arrowinset=0](0.433,0)(-0.457,-0.457)
+ \else
+ \psline[arrows=->,linewidth=1.5\pslinewidth, arrowsize =0.2, arrowinset=0](0.433,0)(-0.457,0.457)
+ \fi
+}
+%
+%
+%%% TRANSCONDUCTOR %%%
+%
+\def\pst@draw@GM{%
+ \ifx\psk@tripole@style\pst@tripole@style@french
+ \psframe[linewidth=1.5\pslinewidth](-1,-0.75)(1,0.75)
+ \pspolygon(-0.4,-0.2)(-0.4,0.2)(-0.05,0)
+ \else
+% USUAL Transconductor
+ \pspolygon[arrows=-, linewidth=1.5\pslinewidth](-0.5, -1)(-0.5, 1)(0.5, 0.6)(0.5, -0.6)(-0.5, -1)
+% Supply pins Position
+ \ifPst@GMpower
+ \psline{-}(0,0.8)(0,1)%\uput[90](0,1){$+$}
+ %\psline{-o}(0,0.375)(0,0.75)\uput[90](0,0.75){$+$}
+ \psline{-}(0,-0.8)(0,-1)%\uput[-90](0,-1){$-$}
+ %\psline{-o}(0,-0.375)(0,-0.75)\uput[-90](0,-0.75){$-$}
+ \fi
+ \fi
+% Input Pins Position
+ \pnode(-0.5,0.5){\ifPst@GMinvert Minus@\else Plus@\fi}
+ \pnode(-0.5,-0.5){\ifPst@GMinvert Plus@\else Minus@\fi}
+ \pnode(0.5,0){S@}
+% + and - Position
+ \uput{0.1}[0](-0.5,0.5){\ifPst@GMinvert$-$\else$+$\fi}
+ %\uput{0.1}[0](-1,0.25){\ifPst@OAinvert$-$\else$+$\fi}
+ \uput{0.1}[0](-0.5,-0.5){\ifPst@GMinvert$+$\else$-$\fi}
+ %\uput{0.1}[0](-1,-0.25){\ifPst@OAinvert$+$\else$-$\fi}
+ \ifPst@GMperfect\rput(0.25,0){$\infty$}\fi%
+}
+%
\catcode`\@=\PstAtCode\relax
%