diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/Changes | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf | bin | 521293 -> 681174 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex | 869 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex | 2853 |
4 files changed, 3715 insertions, 9 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-circ/Changes b/Master/texmf-dist/doc/generic/pst-circ/Changes index 59fdf605549..8ce23f50dca 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/Changes +++ b/Master/texmf-dist/doc/generic/pst-circ/Changes @@ -1,3 +1,5 @@ +2.00 2011-01-28 - new IEEE symbols for integrated circuits + - some more new symbols 1.57 2010-11-06 - new optional argument for a schottky diode - improved FET transistor symbol 1.56 2010-09-18 - fixed bug with \circledipole 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 Binary files differindex d83e24479e5..33fabbe8c3c 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 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 eedeebf889e..7ed0488cf7e 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 @@ -1,4 +1,4 @@ -%% $Id: pst-circ-doc.tex 370 2010-08-15 08:30:39Z herbert $ +%% $Id: pst-circ-doc.tex 451 2011-01-28 13:09:13Z herbert $ \documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings headexclude,footexclude,oneside]{pst-doc} \usepackage[utf8]{inputenc} @@ -62,14 +62,16 @@ \end{tabular}} \end{pspicture}} } +\lstset{preset={\centering},vsep=5mm} \begin{document} \title{\texttt{pst-circ}} \subtitle{A PSTricks package for drawing electric circuits; v.\pstCircFV} -\author{Christoph Jorssen \\Herbert Vo\ss} -\docauthor{Herbert Vo\ss} +\author{%Christoph Jorssen \\ +Herbert Vo\ss} +%\docauthor{Herbert Vo\ss} \date{\today} \maketitle @@ -95,7 +97,7 @@ All should be already part of your local \TeX\ installation. If not, or in case of having older versions, go to \url{http://www.CTAN.org/} and load the newest version. \vfill\noindent -\begingroup\setlength\emergencystretch{3em} +\begingroup\setlength\emergencystretch{3em}\raggedright Thanks to: \\ \mbox{Rafal Bartczuk}, \mbox{Christoph Bersch}, @@ -106,9 +108,11 @@ Thanks to: \\ \mbox{Felix Gottwald}, \mbox{Markus Graube}, \mbox{Henning Heinze}, + \mbox{Christoph Jorssen}, \mbox{Bernd Landwehr}, \mbox{Michael Lauterbach}, \mbox{Manuel Luque}, + \mbox{Steven P. McPherson}, \mbox{Ted Pavlic}, \mbox{Alan Ristow}, \mbox{Douglas Waud}, and @@ -2818,6 +2822,863 @@ all is finished. \end{LTXexample} +\clearpage + +\section{Logical circuits in american style} + +\begin{longtable}{ll>{\ttfamily}l} +\toprule + \emph{macro} & \emph{option} & \emph{defaults} \\\midrule + \endfirsthead + \midrule + \emph{macro} & \emph{option} & \emph{defaults} \\\midrule + \endhead + \midrule + \small continued on next page $\dots$ & & \\ + \endfoot + \midrule + \endlastfoot + \Lcs{logicnot} & \Lkeyword{input} & true \\ + & \Lkeyword{invertinput} & false \\ + & \Lkeyword{invertoutput} & false \\ + & \Lkeyword{iec} & false \\ + & \Lkeyword{iecinvert} & false \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{logicand} & \Lkeyword{ninputs} & 2 \\ + & \nxLkeyword{input?} & true \\ + & \multicolumn{2}{l}{\quad where ? = a--d} \\ + & \nxLkeyword{invertinput?} & false \\ + & \multicolumn{2}{l}{\quad where ? = a--d} \\ + & \Lkeyword{invertoutput} & false \\ + & \Lkeyword{iec} & false \\ + & \Lkeyword{iecinvert} & false \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{logicor} & \Lkeyword{ninputs} & 2 \\ + & \nxLkeyword{input?} & true \\ + & \multicolumn{2}{l}{\quad where ? = 1--4} \\ + & \nxLkeyword{invertinput?} & false \\ + & \multicolumn{2}{l}{\quad where ? = a--d} \\ + & \Lkeyword{invertoutput} & false \\ + & \Lkeyword{iec} & false \\ + & \Lkeyword{iecinvert} & false \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{logicxor} & \Lkeyword{ninputs} & 2 \\ + & \nxLkeyword{input?} & true \\ + & \multicolumn{2}{l}{\quad where ? = 1--4} \\ + & \nxLkeyword{invertinput?} & false \\ + & \multicolumn{2}{l}{\quad where ? = a--d} \\ + & \Lkeyword{invertoutput} & false \\ + & \Lkeyword{iec} & false \\ + & \Lkeyword{iecinvert} & false \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{logicff} & \Lkeyword{inputa} & true \\ + & \Lkeyword{invertinputa} & false \\ + & \Lkeyword{inputalabel} & \\ + & \Lkeyword{inputb} & true \\ + & \Lkeyword{invertinputb} & false \\ + & \Lkeyword{inputblabel} & \\ + & \Lkeyword{enable} & false \\ + & \Lkeyword{invertenable} & false \\ + & \Lkeyword{clock} & false \\ + & \Lkeyword{invertclock} & false \\ + & \Lkeyword{set} & false \\ + & \Lkeyword{invertset} & false \\ + & \Lkeyword{reset} & false \\ + & \Lkeyword{invertreset} & false \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{logicic} & \Lkeyword{nicpins} & 8 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{8, 14, 16, 20, 32}} \\ + & \nxLkeyword{pin?} & true \\ + & \nxLkeyword{invertpin?} & false \\ + & \nxLkeyword{pin?label} & \\ + & \nxLkeyword{pin?number} & \\ + & \multicolumn{2}{@{}l}{\quad where \texttt{? = a--z,aa,ab,ac,ad,ae,af}} \\ + & \Lkeyword{bubblesize} & 0.2 \\ + & \multicolumn{2}{@{}l}{\quad possible values \texttt{0.05, 0.10, 0.15, 0.20}} \\ + \midrule + \Lcs{xic} & \Lkeyword{plcaddress} & \\ + & \Lkeyword{plcsymbol} & \\ + \midrule + \Lcs{xio} & \Lkeyword{plcaddress} & \\ + & \Lkeyword{plcsymbol} & \\ + \midrule + \Lcs{ote} & \Lkeyword{plcaddress} & \\ + & \Lkeyword{plcsymbol} & \\ + & \Lkeyword{latch} & false \\ + & \Lkeyword{unlatch} & false \\ + \midrule + \Lcs{osr} & \Lkeyword{plcaddress} & \\ + & \Lkeyword{plcsymbol} & \\ + \midrule + \Lcs{res} & \Lkeyword{plcaddress} & \\ + & \Lkeyword{plcsymbol} & \\ + \midrule + \Lcs{swpb} & \Lkeyword{contactclosed} & false \\ + \midrule + \Lcs{swtog} & \Lkeyword{contactclosed} & false \\ + \midrule + \Lcs{contact} & \Lkeyword{contactclosed} & false \\ + \end{longtable} + + + +\subsection{Examples} + +% +% NOT Example +% + + +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(8.5,3) + \logicnot[invertoutput=true](0,0){IEEE} + \logicnot[invertoutput=true,iec=true,iecinvert=true](4,0){IEC} +\end{pspicture} +\end{LTXexample} + + +% +% AND Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicand[ninputs=2](0,0){IEEE} + \logicand[ninputs=2,iec=true](5,0){IEC} +\end{pspicture} +\end{LTXexample} + +% +% NAND Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicand[ninputs=2,invertoutput=true](0,0){IEEE} + \logicand[ninputs=2,invertoutput=true,iec=true,iecinvert=true](5,0){IEC} +\end{pspicture} +\end{LTXexample} + + +% +% Negative-AND Example +% +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,3) + \logicand[ninputs=2,invertinputa=true, + invertinputb=true](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% OR Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicor[ninputs=2](0,0){IEEE} + \logicor[ninputs=2,iec=true](5,0){IEC} +\end{pspicture} +\end{LTXexample} + +% +% NOR Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicor[ninputs=2,invertoutput=true](0,0){IEEE} + \logicor[ninputs=2,invertoutput=true,iec=true,iecinvert=true](5,0){IEC} +\end{pspicture} +\end{LTXexample} + +% +% Negative-OR Example +% +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,3) + \logicor[ninputs=2,invertinputa=true, + invertinputb=true](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% Exclusive-OR Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicxor[ninputs=2]{0}(0,0){IEEE} + \logicxor[ninputs=2,iec=true]{0}(5,0){IEC} +\end{pspicture} +\end{LTXexample} + +% +% Exclusive-NOR Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(9.5,3) + \logicxor[ninputs=2,invertoutput=true]{0}(0,0){IEEE} + \logicxor[ninputs=2,invertoutput=true,iec=true,iecinvert=true]{0}(5,0){IEC} +\end{pspicture} +\end{LTXexample} + +\subsubsection{$S$-$R$ Flip-Flop with Clock} +% +% FF Example +% +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[clock=true,inputalabel=$S$,inputblabel=$R$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% FF Example +% +\subsubsection{$\bar{S}$-$\bar{R}$ Flip-Flop with Enable} %$ +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[enable=true,inputalabel=$\bar{S}$,inputblabel=$\bar{R}$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% FF Example +% +\subsubsection{$J$-$K$ Flip-Flop} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[inputalabel=$J$,inputblabel=$K$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% FF Example +% +\subsubsection{$J$-$K$ Flip-Flop with Set and Reset} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[set=true,reset=true,invertreset=true,% + inputalabel=$J$,inputblabel=$K$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% FF Example +% +\subsubsection{$D$ Flip-Flop} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[inputb=false,inputalabel=$D$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% FF Example +% +\subsubsection{Full Adder} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \logicff[enable=true,invertoutputb=false,inputalabel=$A$, + inputblabel=$C_{in}$,inputenlabel=$B$,outputalabel=$\Sigma$, + outputblabel=$C_{out}$](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +\subsubsection{7-Segment Display} +% +\begin{LTXexample}[pos=l] +\begin{pspicture}(6.5,5) + \sevensegmentdisplay(0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% 7-Segment Display Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(6.5,6) + \sevensegmentdisplay[pinld=false,pinle=false,pinrc=false,pinlalabel=a, + pinlblabel=f,pinlglabel=e,pinrglabel=d,pinrelabel=c,pinrdlabel=g, + pinrblabel=b,pinralabel={$V_{CC}$},pinlanumber=1,pinlbnumber=2, + pinlcnumber=3,pinlfnumber=6,pinlgnumber=7,pinrgnumber=8,pinrfnumber=9, + pinrenumber=10,pinrdnumber=11,pinrbnumber=13,pinranumber=14](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% 7-Segment Display Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(6.5,6) + \sevensegmentdisplay[segmentdisplay=5](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% 7-Segment Display Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(6.5,6) + \sevensegmentdisplay[segmentdisplay=0,segmentcolor=red,segmentlabels=false, + pinlalabel=la,pinlblabel=lb,pinlclabel=lc,pinldlabel=ld,pinlelabel=le, + pinlflabel=lf,pinlglabel=lg,pinrglabel=rg,pinrflabel=rf,pinrelabel=re, + pinrdlabel=rd,pinrclabel=rc,pinrblabel=rb,pinralabel=ra,pinlanumber=1, + pinlbnumber=2,pinlcnumber=3,pinldnumber=4,pinlenumber=5,pinlfnumber=6, + pinlgnumber=7,pinrgnumber=8,pinrfnumber=9,pinrenumber=10,pinrdnumber=11, + pinrcnumber=12,pinrbnumber=13,pinranumber=14,pinta=true,pintalabel=ta, + pintanumber=0,pintb=true,pintblabel=tb,pintbnumber=0,pintc=true, + pintclabel=tc,pintcnumber=0,pintd=true,pintdlabel=td,pintdnumber=0, + pinte=true,pintelabel=te,pintenumber=0,pinba=true,pinbalabel=ba, + pinbanumber=0,pinbb=true,pinbblabel=bb,pinbbnumber=0,pinbc=true, + pinbclabel=bc,pinbcnumber=0,pinbd=true,pinbdlabel=bd,pinbdnumber=0, + pinbe=true,pinbelabel=be,pinbenumber=0](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% 7-Segment Display Example +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(6.5,6) + \sevensegmentdisplay[segmentdisplay=10,pinla=false,pinlb=false, + pinlc=false,pinld=false,pinle=false,pinlf=false,pinlg=false,pinrg=false, + pinrf=false,pinre=false,pinrd=false,pinrc=false,pinrb=false,pinra=false, + pinta=true,pintalabel=g,pintanumber=0,pintb=true,pintblabel=f,pintbnumber=0, + pintc=true,pintclabel=$V_{cc}$,pintcnumber=0,pintd=true,pintdlabel=a, + pintdnumber=0,pinte=true,pintelabel=b,pintenumber=0,pinba=true,pinbalabel=e, + pinbanumber=0,pinbb=true,pinbblabel=d,pinbbnumber=0,pinbc=true, + pinbclabel=$V_{cc}$,pinbcnumber=0,pinbd=true,pinbdlabel=c,pinbdnumber=0, + pinbe=true,pinbelabel=dp,pinbenumber=0](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 8-pins +% +\subsubsection{8-Pin DIP IC} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,4) + \logicic[nicpins=8,bubblesize=0.1,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 8-pins all inverted +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,4) + \logicic[nicpins=8,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8,% + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true](0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 14-pin +% +\subsubsection{14-Pin DIP IC} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,6) + \logicic[nicpins=14,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +\subsubsection{14-Pin DIP IC all inverted} +% IC Example 14-pin all inverted +% +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,6) + \logicic[nicpins=14,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14, + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true,% + invertpini=true,invertpinj=true,invertpink=true,invertpinl=true,% + invertpinm=true,invertpinn=true]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 16-pin +% +\subsubsection{16-Pin DIP IC} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,6) + \logicic[nicpins=16,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% IC Example 16-pin all inverted +% +\subsubsection{16-Pin DIP IC all inverted} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,6) + \logicic[nicpins=16,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16, + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true,% + invertpini=true,invertpinj=true,invertpink=true,invertpinl=true,% + invertpinm=true,invertpinn=true,invertpino=true,invertpinp=true]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 20-pin +% +\subsubsection{20-Pin DIP IC} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,7) + \logicic[nicpins=20,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinqlabel=q,pinrlabel=r,pinslabel=s,pintlabel=t,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16,% + pinqnumber=17,pinrnumber=18,pinsnumber=19,pintnumber=20]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 20-pin all inverted +% +\subsubsection{20-Pin DIP IC all inverted} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(5,7) + \logicic[nicpins=20,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinqlabel=q,pinrlabel=r,pinslabel=s,pintlabel=t,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16,% + pinqnumber=17,pinrnumber=18,pinsnumber=19,pintnumber=20,% + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true,% + invertpini=true,invertpinj=true,invertpink=true,invertpinl=true,% + invertpinm=true,invertpinn=true,invertpino=true,invertpinp=true,% + invertpinq=true,invertpinr=true,invertpins=true,invertpint=true]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 32-pin +% +\subsubsection{32-Pin DIP IC} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-2)(6,9.5) + \logicic[nicpins=32,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinqlabel=q,pinrlabel=r,pinslabel=s,pintlabel=t,% + pinulabel=u,pinvlabel=v,pinwlabel=w,pinxlabel=x,% + pinylabel=y,pinzlabel=z,pinaalabel=aa,pinablabel=ab,% + pinaclabel=ac,pinadlabel=ad,pinaelabel=ae,pinaflabel=af,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16,% + pinqnumber=17,pinrnumber=18,pinsnumber=19,pintnumber=20,% + pinunumber=21,pinvnumber=22,pinwnumber=23,pinxnumber=24,% + pinynumber=25,pinznumber=26,pinaanumber=27,pinabnumber=28,% + pinacnumber=29,pinadnumber=30,pinaenumber=31,pinafnumber=32]% + (0,0){Name} +\end{pspicture} +\end{LTXexample} + +% +% IC Example 32-pin all inverted +% +\subsubsection{32-Pin DIP IC all inverted} +\begin{center} +\begin{pspicture}(-1,-2)(6,9.5) + \logicic[nicpins=32,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinqlabel=q,pinrlabel=r,pinslabel=s,pintlabel=t,% + pinulabel=u,pinvlabel=v,pinwlabel=w,pinxlabel=x,% + pinylabel=y,pinzlabel=z,pinaalabel=aa,pinablabel=ab,% + pinaclabel=ac,pinadlabel=ad,pinaelabel=ae,pinaflabel=af,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16,% + pinqnumber=17,pinrnumber=18,pinsnumber=19,pintnumber=20,% + pinunumber=21,pinvnumber=22,pinwnumber=23,pinxnumber=24,% + pinynumber=25,pinznumber=26,pinaanumber=27,pinabnumber=28,% + pinacnumber=29,pinadnumber=30,pinaenumber=31,pinafnumber=32,% + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true,% + invertpini=true,invertpinj=true,invertpink=true,invertpinl=true,% + invertpinm=true,invertpinn=true,invertpino=true,invertpinp=true,% + invertpinq=true,invertpinr=true,invertpins=true,invertpint=true,% + invertpinu=true,invertpinv=true,invertpinw=true,invertpinx=true,% + invertpiny=true,invertpinz=true,invertpinaa=true,invertpinab=true,% + invertpinac=true,invertpinad=true,invertpinae=true,invertpinaf=true]% + (0,0){Name} +\end{pspicture} +\end{center} + + +\begin{lstlisting} +\begin{pspicture}(-1,-2)(6,9.5) + \logicic[nicpins=32,% + pintl=true,pintllabel=tl,pintlnumber=1,% + pintc=true,pintclabel=tc,pintcnumber=2,% + pintr=true,pintrlabel=tr,pintrnumber=3,% + invertpintl=true,invertpintc=true,invertpintr=true,% + pinbl=true,pinbllabel=bl,pinblnumber=1,% + pinbc=true,pinbclabel=bc,pinbcnumber=2,% + pinbr=true,pinbrlabel=br,pinbrnumber=3,% + invertpinbl=true,invertpinbc=true,invertpinbr=true,% + pinalabel=a,pinblabel=b,pinclabel=c,pindlabel=d,% + pinelabel=e,pinflabel=f,pinglabel=g,pinhlabel=h,% + pinilabel=i,pinjlabel=j,pinklabel=k,pinllabel=l,% + pinmlabel=m,pinnlabel=n,pinolabel=o,pinplabel=p,% + pinqlabel=q,pinrlabel=r,pinslabel=s,pintlabel=t,% + pinulabel=u,pinvlabel=v,pinwlabel=w,pinxlabel=x,% + pinylabel=y,pinzlabel=z,pinaalabel=aa,pinablabel=ab,% + pinaclabel=ac,pinadlabel=ad,pinaelabel=ae,pinaflabel=af,% + pinanumber=1,pinbnumber=2,pincnumber=3,pindnumber=4,% + pinenumber=5,pinfnumber=6,pingnumber=7,pinhnumber=8, + pininumber=9,pinjnumber=10,pinknumber=11,pinlnumber=12,% + pinmnumber=13,pinnnumber=14,pinonumber=15,pinpnumber=16,% + pinqnumber=17,pinrnumber=18,pinsnumber=19,pintnumber=20,% + pinunumber=21,pinvnumber=22,pinwnumber=23,pinxnumber=24,% + pinynumber=25,pinznumber=26,pinaanumber=27,pinabnumber=28,% + pinacnumber=29,pinadnumber=30,pinaenumber=31,pinafnumber=32,% + invertpina=true,invertpinb=true,invertpinc=true,invertpind=true,% + invertpine=true,invertpinf=true,invertping=true,invertpinh=true,% + invertpini=true,invertpinj=true,invertpink=true,invertpinl=true,% + invertpinm=true,invertpinn=true,invertpino=true,invertpinp=true,% + invertpinq=true,invertpinr=true,invertpins=true,invertpint=true,% + invertpinu=true,invertpinv=true,invertpinw=true,invertpinx=true,% + invertpiny=true,invertpinz=true,invertpinaa=true,invertpinab=true,% + invertpinac=true,invertpinad=true,invertpinae=true,invertpinaf=true]% + (0,0){Name} +\end{pspicture} +\end{lstlisting} + + +% +% XIC +% +\subsubsection{XIC} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \xic[plcaddress=I:1/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% XIO +% +\subsubsection{XI0} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \xio[plcaddress=I:1/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% OTE +% +\subsubsection{OTE} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \ote[plcaddress=O:2/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% OTL +% +\subsubsection{OTL} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \ote[latch=true, + plcaddress=O:2/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% OTU +% +\subsubsection{OTE} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \ote[unlatch=true, + plcaddress=O:2/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% OSR +% +\subsubsection{OSR} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \osr[plcaddress=O:2/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% RES +% +\subsubsection{RES} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \res[plcaddress=O:2/0, + plcsymbol=Symbol](0,0) +\end{pspicture} +\end{LTXexample} + +% +% PB NO +% +\subsubsection{Switch PB NO} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \swpb(0,0) +\end{pspicture} +\end{LTXexample} + +% +% PB NC +% +\subsubsection{Switch PB NC} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \swpb[contactclosed=true](0,0) +\end{pspicture} +\end{LTXexample} + +% +% Switch Toggle NO +% +\subsubsection{Switch TOGGLE NO} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \swtog(0,0) +\end{pspicture} +\end{LTXexample} + +% +% Switch Toggle NC +% +\subsubsection{Switch PB NC} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \swtog[contactclosed=true](0,0) +\end{pspicture} +\end{LTXexample} + +% +% Contact NO +% +\subsubsection{Contact NO} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \contact(0,0) +\end{pspicture} +\end{LTXexample} + +% +% Contact NC +% +\subsubsection{Contact NC} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \contact[contactclosed=true](0,0) +\end{pspicture} +\end{LTXexample} + +% +% Motor Armature +% +\subsubsection{Motor Armature} +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(1,1) + \armature(0,0) +\end{pspicture} +\end{LTXexample} + +% +% Modified pst-circ Components +% +\subsubsection{Modified default symbols} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-1,-1)(5,10) +\newdiode[labeloffset=-0.8](0,0)(4,0){$\backslash$newdiode} +\newLED[labeloffset=-0.8](0,2)(4,2){$\backslash$newLED} +\newZener[labeloffset=-0.8](0,4)(4,4){$\backslash$newZener} +\newcapacitor[labeloffset=-0.8](0,6)(4,6){$\backslash$newcapacitor} +\newcapacitor[labeloffset=-0.8](0,6)(4,6){$\backslash$newcapacitor} +\newcapacitor[labeloffset=-0.8](0,6)(4,6){$\backslash$newcapacitor} +\vdc[labeloffset=-0.8](0,8)(4,8){$\backslash$vdc} +\vac[labeloffset=-0.8](0,10)(4,10){$\backslash$vac} +\end{pspicture} +\end{LTXexample} + +% +% \vac +% +\begin{LTXexample}[pos=l] +\begin{pspicture}(-1,-1)(5,4) + \vac[labeloffset=-0.7](0,0)(4,0){$\backslash$vac} + \vac[labeloffset=1](0,0)(2,3.464){$\backslash$vac} + \vac[labeloffset=1](2,3.464)(4,0){$\backslash$vac} +\end{pspicture} +\end{LTXexample} + + \section{Adding new components} Adding new components is not simple unless you need only a simple dipole. For dipoles a macro is provided that generates all helping macros for a new component so that you need to write only the actual drawing code. 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 2bd5869e4d8..eae2fdf771d 100644 --- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex +++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex @@ -5,7 +5,6 @@ %% %% Package `pst-circ.tex' %% -%% Christophe Jorssen %% Herbert Voss <hvoss@tug.org> %% %% This program can be redistributed and/or modified under the terms @@ -27,9 +26,9 @@ \ifx\PSTXKeyLoaded\endinput \else\input pst-xkey \fi \ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi % -\def\fileversion{1.57} -\def\filedate{2010/11/06} -\message{`pst-circ' v\fileversion (CJ,hv,pd)} +\def\fileversion{2.00} +\def\filedate{2011/01/28} +\message{`pst-circ' v\fileversion (hv)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax @@ -177,6 +176,652 @@ \def\pst@logic@type@RS{RS} \def\pst@logic@type@D{D} \def\pst@logic@type@JK{JK} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logic If Statements +\newif\ifPst@iec +\newif\ifPst@iecinvert +\newif\ifPst@input +\newif\ifPst@invertinput +\newif\ifPst@inputa +\newif\ifPst@invertinputa +\newif\ifPst@inputb +\newif\ifPst@invertinputb +\newif\ifPst@inputc +\newif\ifPst@invertinputc +\newif\ifPst@inputd +\newif\ifPst@invertinputd +\newif\ifPst@enable +\newif\ifPst@invertenable +\newif\ifPst@clock +\newif\ifPst@invertclock +\newif\ifPst@set +\newif\ifPst@invertset +\newif\ifPst@reset +\newif\ifPst@invertreset + +\newif\ifPst@output +\newif\ifPst@invertoutput +\newif\ifPst@outputa +\newif\ifPst@invertoutputa +\newif\ifPst@outputb +\newif\ifPst@invertoutputb + +\newif\ifPst@segmentlabels + +% IC If Statements +\newif\ifPst@pina +\newif\ifPst@invertpina +\newif\ifPst@pinb +\newif\ifPst@invertpinb +\newif\ifPst@pinc +\newif\ifPst@invertpinc +\newif\ifPst@pind +\newif\ifPst@invertpind +\newif\ifPst@pine +\newif\ifPst@invertpine +\newif\ifPst@pinf +\newif\ifPst@invertpinf +\newif\ifPst@ping +\newif\ifPst@invertping +\newif\ifPst@pinh +\newif\ifPst@invertpinh +\newif\ifPst@pini +\newif\ifPst@invertpini +\newif\ifPst@pinj +\newif\ifPst@invertpinj +\newif\ifPst@pink +\newif\ifPst@invertpink +\newif\ifPst@pinl +\newif\ifPst@invertpinl +\newif\ifPst@pinm +\newif\ifPst@invertpinm +\newif\ifPst@pinn +\newif\ifPst@invertpinn +\newif\ifPst@pino +\newif\ifPst@invertpino +\newif\ifPst@pinp +\newif\ifPst@invertpinp +\newif\ifPst@pinq +\newif\ifPst@invertpinq +\newif\ifPst@pinr +\newif\ifPst@invertpinr +\newif\ifPst@pins +\newif\ifPst@invertpins +\newif\ifPst@pint +\newif\ifPst@invertpint +\newif\ifPst@pinu +\newif\ifPst@invertpinu +\newif\ifPst@pinv +\newif\ifPst@invertpinv +\newif\ifPst@pinw +\newif\ifPst@invertpinw +\newif\ifPst@pinx +\newif\ifPst@invertpinx +\newif\ifPst@piny +\newif\ifPst@invertpiny +\newif\ifPst@pinz +\newif\ifPst@invertpinz +\newif\ifPst@pinaa +\newif\ifPst@invertpinaa +\newif\ifPst@pinab +\newif\ifPst@invertpinab +\newif\ifPst@pinac +\newif\ifPst@invertpinac +\newif\ifPst@pinad +\newif\ifPst@invertpinad +\newif\ifPst@pinae +\newif\ifPst@invertpinae +\newif\ifPst@pinaf +\newif\ifPst@invertpinaf + + +\newif\ifPst@pinla +\newif\ifPst@invertpinla +\newif\ifPst@pinlb +\newif\ifPst@invertpinlb +\newif\ifPst@pinlc +\newif\ifPst@invertpinlc +\newif\ifPst@pinld +\newif\ifPst@invertpinld +\newif\ifPst@pinle +\newif\ifPst@invertpinle +\newif\ifPst@pinlf +\newif\ifPst@invertpinlf +\newif\ifPst@pinlg +\newif\ifPst@invertpinlg +\newif\ifPst@pinlh +\newif\ifPst@invertpinlh +\newif\ifPst@pinli +\newif\ifPst@invertpinli +\newif\ifPst@pinlj +\newif\ifPst@invertpinlj +\newif\ifPst@pinlk +\newif\ifPst@invertpinlk +\newif\ifPst@pinll +\newif\ifPst@invertpinll +\newif\ifPst@pinlm +\newif\ifPst@invertpinlm +\newif\ifPst@pinln +\newif\ifPst@invertpinln +\newif\ifPst@pinlo +\newif\ifPst@invertpinlo +\newif\ifPst@pinlp +\newif\ifPst@invertpinlp + +\newif\ifPst@pinra +\newif\ifPst@invertpinra +\newif\ifPst@pinrb +\newif\ifPst@invertpinrb +\newif\ifPst@pinrc +\newif\ifPst@invertpinrc +\newif\ifPst@pinrd +\newif\ifPst@invertpinrd +\newif\ifPst@pinre +\newif\ifPst@invertpinre +\newif\ifPst@pinrf +\newif\ifPst@invertpinrf +\newif\ifPst@pinrg +\newif\ifPst@invertpinrg +\newif\ifPst@pinrh +\newif\ifPst@invertpinrh +\newif\ifPst@pinri +\newif\ifPst@invertpinri +\newif\ifPst@pinrj +\newif\ifPst@invertpinrj +\newif\ifPst@pinrk +\newif\ifPst@invertpinrl +\newif\ifPst@pinrl +\newif\ifPst@invertpinrl +\newif\ifPst@pinrm +\newif\ifPst@invertpinrm +\newif\ifPst@pinrn +\newif\ifPst@invertpinrn +\newif\ifPst@pinro +\newif\ifPst@invertpinro +\newif\ifPst@pinrp +\newif\ifPst@invertpinrp + + +\newif\ifPst@pintl +\newif\ifPst@invertpintl +\newif\ifPst@pintc +\newif\ifPst@invertpintc +\newif\ifPst@pintr +\newif\ifPst@invertpintr + +\newif\ifPst@pinbl +\newif\ifPst@invertpinbl +\newif\ifPst@pinbc +\newif\ifPst@invertpinbc +\newif\ifPst@pinbr +\newif\ifPst@invertpinbr + +\newif\ifPst@pinta +\newif\ifPst@invertpinta +\newif\ifPst@pintb +\newif\ifPst@invertpintb +\newif\ifPst@pintc +\newif\ifPst@invertpintc +\newif\ifPst@pintd +\newif\ifPst@invertpintd +\newif\ifPst@pinte +\newif\ifPst@invertpinte + +\newif\ifPst@pinba +\newif\ifPst@invertpinba +\newif\ifPst@pinbb +\newif\ifPst@invertpinbb +\newif\ifPst@pinbc +\newif\ifPst@invertpinbc +\newif\ifPst@pinbd +\newif\ifPst@invertpinbd +\newif\ifPst@pinbe +\newif\ifPst@invertpinbe + +\newif\ifPst@dpright +\newif\ifPst@dpleft + +% Ladder Logic If Statements +\newif\ifPst@latch +\newif\ifPst@unlatch +\newif\ifPst@contactclosed + +% Bipole If Statements +\newif\ifPst@polarized + +% Define Integer Keys +\define@choicekey[psset]{pst-circ}{ninputs}{0,1,2,3,4}[2]{\def\psk@ninputs{#1}} +\define@choicekey[psset]{pst-circ}{segmentdisplay}{0,1,2,3,4,5,6,7,8,9,10}[10]{\def\psk@segmentdisplay{#1}} +\define@choicekey[psset]{pst-circ}{nicpins}[\val\nr]{8,14,16,20,32}[8]{ + \ifcase\nr\relax + \def\psk@nicpins{0} + \or + \def\psk@nicpins{1} + \or + \def\psk@nicpins{2} + \or + \def\psk@nicpins{3} + \or + \def\psk@nicpins{4} + \fi +} +\define@choicekey[psset]{pst-circ}{bubblesize}{0.05,0.1,0.15,0.2}[0.15]{\def\psk@bubblesize{#1}} + +% +\define@key[psset]{pst-circ}{segmentcolor}[black]{\def\psk@segmentcolor{#1}} + +% Define Logic String Keys +\define@key[psset]{pst-circ}{inputalabel}[]{\def\psk@inputalabel{#1}} +\define@key[psset]{pst-circ}{inputblabel}[]{\def\psk@inputblabel{#1}} +\define@key[psset]{pst-circ}{inputclabel}[]{\def\psk@inputclabel{#1}} +\define@key[psset]{pst-circ}{inputenlabel}[]{\def\psk@inputenlabel{#1}} +\define@key[psset]{pst-circ}{inputcllabel}[]{\def\psk@inputcllabel{#1}} +\define@key[psset]{pst-circ}{outputalabel}[]{\def\psk@outputalabel{#1}} +\define@key[psset]{pst-circ}{outputblabel}[]{\def\psk@outputblabel{#1}} +\define@key[psset]{pst-circ}{outputclabel}[]{\def\psk@outputclabel{#1}} + +% Define IC String Keys +\define@key[psset]{pst-circ}{pinalabel}[]{\def\psk@pinalabel{#1}} +\define@key[psset]{pst-circ}{pinanumber}[]{\def\psk@pinanumber{#1}} +\define@key[psset]{pst-circ}{pinblabel}[]{\def\psk@pinblabel{#1}} +\define@key[psset]{pst-circ}{pinbnumber}[]{\def\psk@pinbnumber{#1}} +\define@key[psset]{pst-circ}{pinclabel}[]{\def\psk@pinclabel{#1}} +\define@key[psset]{pst-circ}{pincnumber}[]{\def\psk@pincnumber{#1}} +\define@key[psset]{pst-circ}{pindlabel}[]{\def\psk@pindlabel{#1}} +\define@key[psset]{pst-circ}{pindnumber}[]{\def\psk@pindnumber{#1}} +\define@key[psset]{pst-circ}{pinelabel}[]{\def\psk@pinelabel{#1}} +\define@key[psset]{pst-circ}{pinenumber}[]{\def\psk@pinenumber{#1}} +\define@key[psset]{pst-circ}{pinflabel}[]{\def\psk@pinflabel{#1}} +\define@key[psset]{pst-circ}{pinfnumber}[]{\def\psk@pinfnumber{#1}} +\define@key[psset]{pst-circ}{pinglabel}[]{\def\psk@pinglabel{#1}} +\define@key[psset]{pst-circ}{pingnumber}[]{\def\psk@pingnumber{#1}} +\define@key[psset]{pst-circ}{pinhlabel}[]{\def\psk@pinhlabel{#1}} +\define@key[psset]{pst-circ}{pinhnumber}[]{\def\psk@pinhnumber{#1}} +\define@key[psset]{pst-circ}{pinilabel}[]{\def\psk@pinilabel{#1}} +\define@key[psset]{pst-circ}{pininumber}[]{\def\psk@pininumber{#1}} +\define@key[psset]{pst-circ}{pinjlabel}[]{\def\psk@pinjlabel{#1}} +\define@key[psset]{pst-circ}{pinjnumber}[]{\def\psk@pinjnumber{#1}} +\define@key[psset]{pst-circ}{pinklabel}[]{\def\psk@pinklabel{#1}} +\define@key[psset]{pst-circ}{pinknumber}[]{\def\psk@pinknumber{#1}} +\define@key[psset]{pst-circ}{pinllabel}[]{\def\psk@pinllabel{#1}} +\define@key[psset]{pst-circ}{pinlnumber}[]{\def\psk@pinlnumber{#1}} +\define@key[psset]{pst-circ}{pinmlabel}[]{\def\psk@pinmlabel{#1}} +\define@key[psset]{pst-circ}{pinmnumber}[]{\def\psk@pinmnumber{#1}} +\define@key[psset]{pst-circ}{pinnlabel}[]{\def\psk@pinnlabel{#1}} +\define@key[psset]{pst-circ}{pinnnumber}[]{\def\psk@pinnnumber{#1}} +\define@key[psset]{pst-circ}{pinolabel}[]{\def\psk@pinolabel{#1}} +\define@key[psset]{pst-circ}{pinonumber}[]{\def\psk@pinonumber{#1}} +\define@key[psset]{pst-circ}{pinplabel}[]{\def\psk@pinplabel{#1}} +\define@key[psset]{pst-circ}{pinpnumber}[]{\def\psk@pinpnumber{#1}} +\define@key[psset]{pst-circ}{pinqlabel}[]{\def\psk@pinqlabel{#1}} +\define@key[psset]{pst-circ}{pinqnumber}[]{\def\psk@pinqnumber{#1}} +\define@key[psset]{pst-circ}{pinrlabel}[]{\def\psk@pinrlabel{#1}} +\define@key[psset]{pst-circ}{pinrnumber}[]{\def\psk@pinrnumber{#1}} +\define@key[psset]{pst-circ}{pinslabel}[]{\def\psk@pinslabel{#1}} +\define@key[psset]{pst-circ}{pinsnumber}[]{\def\psk@pinsnumber{#1}} +\define@key[psset]{pst-circ}{pintlabel}[]{\def\psk@pintlabel{#1}} +\define@key[psset]{pst-circ}{pintnumber}[]{\def\psk@pintnumber{#1}} +\define@key[psset]{pst-circ}{pinulabel}[]{\def\psk@pinulabel{#1}} +\define@key[psset]{pst-circ}{pinunumber}[]{\def\psk@pinunumber{#1}} +\define@key[psset]{pst-circ}{pinvlabel}[]{\def\psk@pinvlabel{#1}} +\define@key[psset]{pst-circ}{pinvnumber}[]{\def\psk@pinvnumber{#1}} +\define@key[psset]{pst-circ}{pinwlabel}[]{\def\psk@pinwlabel{#1}} +\define@key[psset]{pst-circ}{pinwnumber}[]{\def\psk@pinwnumber{#1}} +\define@key[psset]{pst-circ}{pinxlabel}[]{\def\psk@pinxlabel{#1}} +\define@key[psset]{pst-circ}{pinxnumber}[]{\def\psk@pinxnumber{#1}} +\define@key[psset]{pst-circ}{pinylabel}[]{\def\psk@pinylabel{#1}} +\define@key[psset]{pst-circ}{pinynumber}[]{\def\psk@pinynumber{#1}} +\define@key[psset]{pst-circ}{pinzlabel}[]{\def\psk@pinzlabel{#1}} +\define@key[psset]{pst-circ}{pinznumber}[]{\def\psk@pinznumber{#1}} +\define@key[psset]{pst-circ}{pinaalabel}[]{\def\psk@pinaalabel{#1}} +\define@key[psset]{pst-circ}{pinaanumber}[]{\def\psk@pinaanumber{#1}} +\define@key[psset]{pst-circ}{pinablabel}[]{\def\psk@pinablabel{#1}} +\define@key[psset]{pst-circ}{pinabnumber}[]{\def\psk@pinabnumber{#1}} +\define@key[psset]{pst-circ}{pinaclabel}[]{\def\psk@pinaclabel{#1}} +\define@key[psset]{pst-circ}{pinacnumber}[]{\def\psk@pinacnumber{#1}} +\define@key[psset]{pst-circ}{pinadlabel}[]{\def\psk@pinadlabel{#1}} +\define@key[psset]{pst-circ}{pinadnumber}[]{\def\psk@pinadnumber{#1}} +\define@key[psset]{pst-circ}{pinaelabel}[]{\def\psk@pinaelabel{#1}} +\define@key[psset]{pst-circ}{pinaenumber}[]{\def\psk@pinaenumber{#1}} +\define@key[psset]{pst-circ}{pinaflabel}[]{\def\psk@pinaflabel{#1}} +\define@key[psset]{pst-circ}{pinafnumber}[]{\def\psk@pinafnumber{#1}} + + + +\define@key[psset]{pst-circ}{pinralabel}[]{\def\psk@pinralabel{#1}} +\define@key[psset]{pst-circ}{pinranumber}[]{\def\psk@pinranumber{#1}} +\define@key[psset]{pst-circ}{pinrblabel}[]{\def\psk@pinrblabel{#1}} +\define@key[psset]{pst-circ}{pinrbnumber}[]{\def\psk@pinrbnumber{#1}} +\define@key[psset]{pst-circ}{pinrclabel}[]{\def\psk@pinrclabel{#1}} +\define@key[psset]{pst-circ}{pinrcnumber}[]{\def\psk@pinrcnumber{#1}} +\define@key[psset]{pst-circ}{pinrdlabel}[]{\def\psk@pinrdlabel{#1}} +\define@key[psset]{pst-circ}{pinrdnumber}[]{\def\psk@pinrdnumber{#1}} +\define@key[psset]{pst-circ}{pinrelabel}[]{\def\psk@pinrelabel{#1}} +\define@key[psset]{pst-circ}{pinrenumber}[]{\def\psk@pinrenumber{#1}} +\define@key[psset]{pst-circ}{pinrflabel}[]{\def\psk@pinrflabel{#1}} +\define@key[psset]{pst-circ}{pinrfnumber}[]{\def\psk@pinrfnumber{#1}} +\define@key[psset]{pst-circ}{pinrglabel}[]{\def\psk@pinrglabel{#1}} +\define@key[psset]{pst-circ}{pinrgnumber}[]{\def\psk@pinrgnumber{#1}} +\define@key[psset]{pst-circ}{pinrhlabel}[]{\def\psk@pinrhlabel{#1}} +\define@key[psset]{pst-circ}{pinrhnumber}[]{\def\psk@pinrhnumber{#1}} +\define@key[psset]{pst-circ}{pinrilabel}[]{\def\psk@pinrilabel{#1}} +\define@key[psset]{pst-circ}{pinrinumber}[]{\def\psk@pinrinumber{#1}} +\define@key[psset]{pst-circ}{pinrjlabel}[]{\def\psk@pinrjlabel{#1}} +\define@key[psset]{pst-circ}{pinrjnumber}[]{\def\psk@pinrjnumber{#1}} +\define@key[psset]{pst-circ}{pinrklabel}[]{\def\psk@pinrklabel{#1}} +\define@key[psset]{pst-circ}{pinrknumber}[]{\def\psk@pinrknumber{#1}} +\define@key[psset]{pst-circ}{pinrllabel}[]{\def\psk@pinrllabel{#1}} +\define@key[psset]{pst-circ}{pinrlnumber}[]{\def\psk@pinrlnumber{#1}} +\define@key[psset]{pst-circ}{pinrmlabel}[]{\def\psk@pinrmlabel{#1}} +\define@key[psset]{pst-circ}{pinrmnumber}[]{\def\psk@pinrmnumber{#1}} +\define@key[psset]{pst-circ}{pinrnlabel}[]{\def\psk@pinrnlabel{#1}} +\define@key[psset]{pst-circ}{pinrnnumber}[]{\def\psk@pinrnnumber{#1}} +\define@key[psset]{pst-circ}{pinrolabel}[]{\def\psk@pinrolabel{#1}} +\define@key[psset]{pst-circ}{pinronumber}[]{\def\psk@pinronumber{#1}} +\define@key[psset]{pst-circ}{pinrplabel}[]{\def\psk@pinrplabel{#1}} +\define@key[psset]{pst-circ}{pinrpnumber}[]{\def\psk@pinrpnumber{#1}} + +\define@key[psset]{pst-circ}{pinlalabel}[]{\def\psk@pinlalabel{#1}} +\define@key[psset]{pst-circ}{pinlanumber}[]{\def\psk@pinlanumber{#1}} +\define@key[psset]{pst-circ}{pinlblabel}[]{\def\psk@pinlblabel{#1}} +\define@key[psset]{pst-circ}{pinlbnumber}[]{\def\psk@pinlbnumber{#1}} +\define@key[psset]{pst-circ}{pinlclabel}[]{\def\psk@pinlclabel{#1}} +\define@key[psset]{pst-circ}{pinlcnumber}[]{\def\psk@pinlcnumber{#1}} +\define@key[psset]{pst-circ}{pinldlabel}[]{\def\psk@pinldlabel{#1}} +\define@key[psset]{pst-circ}{pinldnumber}[]{\def\psk@pinldnumber{#1}} +\define@key[psset]{pst-circ}{pinlelabel}[]{\def\psk@pinlelabel{#1}} +\define@key[psset]{pst-circ}{pinlenumber}[]{\def\psk@pinlenumber{#1}} +\define@key[psset]{pst-circ}{pinlflabel}[]{\def\psk@pinlflabel{#1}} +\define@key[psset]{pst-circ}{pinlfnumber}[]{\def\psk@pinlfnumber{#1}} +\define@key[psset]{pst-circ}{pinlglabel}[]{\def\psk@pinlglabel{#1}} +\define@key[psset]{pst-circ}{pinlgnumber}[]{\def\psk@pinlgnumber{#1}} +\define@key[psset]{pst-circ}{pinlhlabel}[]{\def\psk@pinlhlabel{#1}} +\define@key[psset]{pst-circ}{pinlhnumber}[]{\def\psk@pinlhnumber{#1}} +\define@key[psset]{pst-circ}{pinlilabel}[]{\def\psk@pinlilabel{#1}} +\define@key[psset]{pst-circ}{pinlinumber}[]{\def\psk@pinlinumber{#1}} +\define@key[psset]{pst-circ}{pinljlabel}[]{\def\psk@pinljlabel{#1}} +\define@key[psset]{pst-circ}{pinljnumber}[]{\def\psk@pinljnumber{#1}} +\define@key[psset]{pst-circ}{pinlklabel}[]{\def\psk@pinlklabel{#1}} +\define@key[psset]{pst-circ}{pinlknumber}[]{\def\psk@pinlknumber{#1}} +\define@key[psset]{pst-circ}{pinlllabel}[]{\def\psk@pinlllabel{#1}} +\define@key[psset]{pst-circ}{pinllnumber}[]{\def\psk@pinllnumber{#1}} +\define@key[psset]{pst-circ}{pinlmlabel}[]{\def\psk@pinlmlabel{#1}} +\define@key[psset]{pst-circ}{pinlmnumber}[]{\def\psk@pinlmnumber{#1}} +\define@key[psset]{pst-circ}{pinlnlabel}[]{\def\psk@pinlnlabel{#1}} +\define@key[psset]{pst-circ}{pinlnnumber}[]{\def\psk@pinlnnumber{#1}} +\define@key[psset]{pst-circ}{pinlolabel}[]{\def\psk@pinlolabel{#1}} +\define@key[psset]{pst-circ}{pinlonumber}[]{\def\psk@pinlonumber{#1}} +\define@key[psset]{pst-circ}{pinlplabel}[]{\def\psk@pinlplabel{#1}} +\define@key[psset]{pst-circ}{pinlpnumber}[]{\def\psk@pinlpnumber{#1}} + + + + + +\define@key[psset]{pst-circ}{pintllabel}[]{\def\psk@pintllabel{#1}} +\define@key[psset]{pst-circ}{pintlnumber}[]{\def\psk@pintlnumber{#1}} +\define@key[psset]{pst-circ}{pintclabel}[]{\def\psk@pintclabel{#1}} +\define@key[psset]{pst-circ}{pintcnumber}[]{\def\psk@pintcnumber{#1}} +\define@key[psset]{pst-circ}{pintrlabel}[]{\def\psk@pintrlabel{#1}} +\define@key[psset]{pst-circ}{pintrnumber}[]{\def\psk@pintrnumber{#1}} + +\define@key[psset]{pst-circ}{pinbllabel}[]{\def\psk@pinbllabel{#1}} +\define@key[psset]{pst-circ}{pinblnumber}[]{\def\psk@pinblnumber{#1}} +\define@key[psset]{pst-circ}{pinbclabel}[]{\def\psk@pinbclabel{#1}} +\define@key[psset]{pst-circ}{pinbcnumber}[]{\def\psk@pinbcnumber{#1}} +\define@key[psset]{pst-circ}{pinbrlabel}[]{\def\psk@pinbrlabel{#1}} +\define@key[psset]{pst-circ}{pinbrnumber}[]{\def\psk@pinbrnumber{#1}} + +\define@key[psset]{pst-circ}{pintalabel}[]{\def\psk@pintalabel{#1}} +\define@key[psset]{pst-circ}{pintanumber}[]{\def\psk@pintanumber{#1}} +\define@key[psset]{pst-circ}{pintblabel}[]{\def\psk@pintblabel{#1}} +\define@key[psset]{pst-circ}{pintbnumber}[]{\def\psk@pintbnumber{#1}} +\define@key[psset]{pst-circ}{pintclabel}[]{\def\psk@pintclabel{#1}} +\define@key[psset]{pst-circ}{pintcnumber}[]{\def\psk@pintcnumber{#1}} +\define@key[psset]{pst-circ}{pintdlabel}[]{\def\psk@pintdlabel{#1}} +\define@key[psset]{pst-circ}{pintdnumber}[]{\def\psk@pintdnumber{#1}} +\define@key[psset]{pst-circ}{pintelabel}[]{\def\psk@pintelabel{#1}} +\define@key[psset]{pst-circ}{pintenumber}[]{\def\psk@pintenumber{#1}} + +\define@key[psset]{pst-circ}{pinbalabel}[]{\def\psk@pinbalabel{#1}} +\define@key[psset]{pst-circ}{pinbanumber}[]{\def\psk@pinbanumber{#1}} +\define@key[psset]{pst-circ}{pinbblabel}[]{\def\psk@pinbblabel{#1}} +\define@key[psset]{pst-circ}{pinbbnumber}[]{\def\psk@pinbbnumber{#1}} +\define@key[psset]{pst-circ}{pinbclabel}[]{\def\psk@pinbclabel{#1}} +\define@key[psset]{pst-circ}{pinbcnumber}[]{\def\psk@pinbcnumber{#1}} +\define@key[psset]{pst-circ}{pinbdlabel}[]{\def\psk@pinbdlabel{#1}} +\define@key[psset]{pst-circ}{pinbdnumber}[]{\def\psk@pinbdnumber{#1}} +\define@key[psset]{pst-circ}{pinbelabel}[]{\def\psk@pinbelabel{#1}} +\define@key[psset]{pst-circ}{pinbenumber}[]{\def\psk@pinbenumber{#1}} + +% Define Ladder logic String Keys +\define@key[psset]{pst-circ}{plcaddress}[]{\def\psk@plcaddress{#1}} +\define@key[psset]{pst-circ}{plcsymbol}[]{\def\psk@plcsymbol{#1}} + +% Define Logic Boolean Keys +\define@key[psset]{pst-circ}{iec}[false]{\@nameuse{Pst@iec#1}} +\define@key[psset]{pst-circ}{iecinvert}[false]{\@nameuse{Pst@iecinvert#1}} +\define@key[psset]{pst-circ}{input}[true]{\@nameuse{Pst@input#1}} +\define@key[psset]{pst-circ}{invertinput}[false]{\@nameuse{Pst@invertinput#1}} +\define@key[psset]{pst-circ}{inputa}[true]{\@nameuse{Pst@inputa#1}} +\define@key[psset]{pst-circ}{invertinputa}[false]{\@nameuse{Pst@invertinputa#1}} +\define@key[psset]{pst-circ}{inputb}[true]{\@nameuse{Pst@inputb#1}} +\define@key[psset]{pst-circ}{invertinputb}[false]{\@nameuse{Pst@invertinputb#1}} +\define@key[psset]{pst-circ}{inputc}[true]{\@nameuse{Pst@inputc#1}} +\define@key[psset]{pst-circ}{invertinputc}[false]{\@nameuse{Pst@invertinputc#1}} +\define@key[psset]{pst-circ}{inputd}[true]{\@nameuse{Pst@inputd#1}} +\define@key[psset]{pst-circ}{invertinputd}[false]{\@nameuse{Pst@invertinputd#1}} +\define@key[psset]{pst-circ}{enable}[false]{\@nameuse{Pst@enable#1}} +\define@key[psset]{pst-circ}{invertenable}[false]{\@nameuse{Pst@invertenable#1}} +\define@key[psset]{pst-circ}{clock}[false]{\@nameuse{Pst@clock#1}} +\define@key[psset]{pst-circ}{invertclock}[false]{\@nameuse{Pst@invertclock#1}} +\define@key[psset]{pst-circ}{set}[false]{\@nameuse{Pst@set#1}} +\define@key[psset]{pst-circ}{invertset}[false]{\@nameuse{Pst@invertset#1}} +\define@key[psset]{pst-circ}{reset}[false]{\@nameuse{Pst@reset#1}} +\define@key[psset]{pst-circ}{invertreset}[false]{\@nameuse{Pst@invertreset#1}} + +\define@key[psset]{pst-circ}{output}[true]{\@nameuse{Pst@output#1}} +\define@key[psset]{pst-circ}{invertoutput}[false]{\@nameuse{Pst@invertoutput#1}} +\define@key[psset]{pst-circ}{outputa}[true]{\@nameuse{Pst@outputa#1}} +\define@key[psset]{pst-circ}{invertoutputa}[false]{\@nameuse{Pst@invertoutputa#1}} +\define@key[psset]{pst-circ}{outputb}[true]{\@nameuse{Pst@outputb#1}} +\define@key[psset]{pst-circ}{invertoutputb}[true]{\@nameuse{Pst@invertoutputb#1}} +%\define@key[psset]{pst-circ}{outputc}[true]{\@nameuse{Pst@outputc#1}} +%\define@key[psset]{pst-circ}{invertoutputc}[false]{\@nameuse{Pst@invertoutputc#1}} +\define@key[psset]{pst-circ}{segmentlabels}[true]{\@nameuse{Pst@segmentlabels#1}} + +% Define IC Boolean Keys +\define@key[psset]{pst-circ}{pina}[true]{\@nameuse{Pst@pina#1}} +\define@key[psset]{pst-circ}{invertpina}[false]{\@nameuse{Pst@invertpina#1}} +\define@key[psset]{pst-circ}{pinb}[true]{\@nameuse{Pst@pinb#1}} +\define@key[psset]{pst-circ}{invertpinb}[false]{\@nameuse{Pst@invertpinb#1}} +\define@key[psset]{pst-circ}{pinc}[true]{\@nameuse{Pst@pinc#1}} +\define@key[psset]{pst-circ}{invertpinc}[false]{\@nameuse{Pst@invertpinc#1}} +\define@key[psset]{pst-circ}{pind}[true]{\@nameuse{Pst@pind#1}} +\define@key[psset]{pst-circ}{invertpind}[false]{\@nameuse{Pst@invertpind#1}} +\define@key[psset]{pst-circ}{pine}[true]{\@nameuse{Pst@pine#1}} +\define@key[psset]{pst-circ}{invertpine}[false]{\@nameuse{Pst@invertpine#1}} +\define@key[psset]{pst-circ}{pinf}[true]{\@nameuse{Pst@pinf#1}} +\define@key[psset]{pst-circ}{invertpinf}[false]{\@nameuse{Pst@invertpinf#1}} +\define@key[psset]{pst-circ}{ping}[true]{\@nameuse{Pst@ping#1}} +\define@key[psset]{pst-circ}{invertping}[false]{\@nameuse{Pst@invertping#1}} +\define@key[psset]{pst-circ}{pinh}[true]{\@nameuse{Pst@pinh#1}} +\define@key[psset]{pst-circ}{invertpinh}[false]{\@nameuse{Pst@invertpinh#1}} +\define@key[psset]{pst-circ}{pini}[true]{\@nameuse{Pst@pini#1}} +\define@key[psset]{pst-circ}{invertpini}[false]{\@nameuse{Pst@invertpini#1}} +\define@key[psset]{pst-circ}{pinj}[true]{\@nameuse{Pst@pinj#1}} +\define@key[psset]{pst-circ}{invertpinj}[false]{\@nameuse{Pst@invertpinj#1}} +\define@key[psset]{pst-circ}{pink}[true]{\@nameuse{Pst@pink#1}} +\define@key[psset]{pst-circ}{invertpink}[false]{\@nameuse{Pst@invertpink#1}} +\define@key[psset]{pst-circ}{pinl}[true]{\@nameuse{Pst@pinl#1}} +\define@key[psset]{pst-circ}{invertpinl}[false]{\@nameuse{Pst@invertpinl#1}} +\define@key[psset]{pst-circ}{pinm}[true]{\@nameuse{Pst@pinm#1}} +\define@key[psset]{pst-circ}{invertpinm}[false]{\@nameuse{Pst@invertpinm#1}} +\define@key[psset]{pst-circ}{pinn}[true]{\@nameuse{Pst@pinn#1}} +\define@key[psset]{pst-circ}{invertpinn}[false]{\@nameuse{Pst@invertpinn#1}} +\define@key[psset]{pst-circ}{pino}[true]{\@nameuse{Pst@pino#1}} +\define@key[psset]{pst-circ}{invertpino}[false]{\@nameuse{Pst@invertpino#1}} +\define@key[psset]{pst-circ}{pinp}[true]{\@nameuse{Pst@pinp#1}} +\define@key[psset]{pst-circ}{invertpinp}[false]{\@nameuse{Pst@invertpinp#1}} +\define@key[psset]{pst-circ}{pinq}[true]{\@nameuse{Pst@pinq#1}} +\define@key[psset]{pst-circ}{invertpinq}[false]{\@nameuse{Pst@invertpinq#1}} +\define@key[psset]{pst-circ}{pinr}[true]{\@nameuse{Pst@pinr#1}} +\define@key[psset]{pst-circ}{invertpinr}[false]{\@nameuse{Pst@invertpinr#1}} +\define@key[psset]{pst-circ}{pins}[true]{\@nameuse{Pst@pins#1}} +\define@key[psset]{pst-circ}{invertpins}[false]{\@nameuse{Pst@invertpins#1}} +\define@key[psset]{pst-circ}{pint}[true]{\@nameuse{Pst@pint#1}} +\define@key[psset]{pst-circ}{invertpint}[false]{\@nameuse{Pst@invertpint#1}} +\define@key[psset]{pst-circ}{pinu}[true]{\@nameuse{Pst@pinu#1}} +\define@key[psset]{pst-circ}{invertpinu}[false]{\@nameuse{Pst@invertpinu#1}} +\define@key[psset]{pst-circ}{pinv}[true]{\@nameuse{Pst@pinv#1}} +\define@key[psset]{pst-circ}{invertpinv}[false]{\@nameuse{Pst@invertpinv#1}} +\define@key[psset]{pst-circ}{pinw}[true]{\@nameuse{Pst@pinw#1}} +\define@key[psset]{pst-circ}{invertpinw}[false]{\@nameuse{Pst@invertpinw#1}} +\define@key[psset]{pst-circ}{pinx}[true]{\@nameuse{Pst@pinx#1}} +\define@key[psset]{pst-circ}{invertpinx}[false]{\@nameuse{Pst@invertpinx#1}} +\define@key[psset]{pst-circ}{piny}[true]{\@nameuse{Pst@piny#1}} +\define@key[psset]{pst-circ}{invertpiny}[false]{\@nameuse{Pst@invertpiny#1}} +\define@key[psset]{pst-circ}{pinz}[true]{\@nameuse{Pst@pinz#1}} +\define@key[psset]{pst-circ}{invertpinz}[false]{\@nameuse{Pst@invertpinz#1}} +\define@key[psset]{pst-circ}{pinaa}[true]{\@nameuse{Pst@pinaa#1}} +\define@key[psset]{pst-circ}{invertpinaa}[false]{\@nameuse{Pst@invertpinaa#1}} +\define@key[psset]{pst-circ}{pinab}[true]{\@nameuse{Pst@pinab#1}} +\define@key[psset]{pst-circ}{invertpinab}[false]{\@nameuse{Pst@invertpinab#1}} +\define@key[psset]{pst-circ}{pinac}[true]{\@nameuse{Pst@pinac#1}} +\define@key[psset]{pst-circ}{invertpinac}[false]{\@nameuse{Pst@invertpinac#1}} +\define@key[psset]{pst-circ}{pinad}[true]{\@nameuse{Pst@pinad#1}} +\define@key[psset]{pst-circ}{invertpinad}[false]{\@nameuse{Pst@invertpinad#1}} +\define@key[psset]{pst-circ}{pinae}[true]{\@nameuse{Pst@pinae#1}} +\define@key[psset]{pst-circ}{invertpinae}[false]{\@nameuse{Pst@invertpinae#1}} +\define@key[psset]{pst-circ}{pinaf}[true]{\@nameuse{Pst@pinaf#1}} +\define@key[psset]{pst-circ}{invertpinaf}[false]{\@nameuse{Pst@invertpinaf#1}} + + + + + +\define@key[psset]{pst-circ}{pinla}[true]{\@nameuse{Pst@pinla#1}} +\define@key[psset]{pst-circ}{invertpinla}[false]{\@nameuse{Pst@invertpinla#1}} +\define@key[psset]{pst-circ}{pinlb}[true]{\@nameuse{Pst@pinlb#1}} +\define@key[psset]{pst-circ}{invertpinlb}[false]{\@nameuse{Pst@invertpinlb#1}} +\define@key[psset]{pst-circ}{pinlc}[true]{\@nameuse{Pst@pinlc#1}} +\define@key[psset]{pst-circ}{invertpinlc}[false]{\@nameuse{Pst@invertpinlc#1}} +\define@key[psset]{pst-circ}{pinld}[true]{\@nameuse{Pst@pinld#1}} +\define@key[psset]{pst-circ}{invertpinld}[false]{\@nameuse{Pst@invertpinld#1}} +\define@key[psset]{pst-circ}{pinle}[true]{\@nameuse{Pst@pinle#1}} +\define@key[psset]{pst-circ}{invertpinle}[false]{\@nameuse{Pst@invertpinle#1}} +\define@key[psset]{pst-circ}{pinlf}[true]{\@nameuse{Pst@pinlf#1}} +\define@key[psset]{pst-circ}{invertpinlf}[false]{\@nameuse{Pst@invertpinlf#1}} +\define@key[psset]{pst-circ}{pinlg}[true]{\@nameuse{Pst@pinlg#1}} +\define@key[psset]{pst-circ}{invertpinlg}[false]{\@nameuse{Pst@invertpinlg#1}} +\define@key[psset]{pst-circ}{pinlh}[true]{\@nameuse{Pst@pinlh#1}} +\define@key[psset]{pst-circ}{invertpinlh}[false]{\@nameuse{Pst@invertpinlh#1}} +\define@key[psset]{pst-circ}{pinli}[true]{\@nameuse{Pst@pinli#1}} +\define@key[psset]{pst-circ}{invertpinli}[false]{\@nameuse{Pst@invertpinli#1}} +\define@key[psset]{pst-circ}{pinlj}[true]{\@nameuse{Pst@pinlj#1}} +\define@key[psset]{pst-circ}{invertpinlj}[false]{\@nameuse{Pst@invertpinlj#1}} +\define@key[psset]{pst-circ}{pinlk}[true]{\@nameuse{Pst@pinlk#1}} +\define@key[psset]{pst-circ}{invertpinlk}[false]{\@nameuse{Pst@invertpinlk#1}} +\define@key[psset]{pst-circ}{pinll}[true]{\@nameuse{Pst@pinll#1}} +\define@key[psset]{pst-circ}{invertpinll}[false]{\@nameuse{Pst@invertpinll#1}} +\define@key[psset]{pst-circ}{pinlm}[true]{\@nameuse{Pst@pinlm#1}} +\define@key[psset]{pst-circ}{invertpinlm}[false]{\@nameuse{Pst@invertpinlm#1}} +\define@key[psset]{pst-circ}{pinln}[true]{\@nameuse{Pst@pinln#1}} +\define@key[psset]{pst-circ}{invertpinln}[false]{\@nameuse{Pst@invertpinln#1}} +\define@key[psset]{pst-circ}{pinlo}[true]{\@nameuse{Pst@pinlo#1}} +\define@key[psset]{pst-circ}{invertpinlo}[false]{\@nameuse{Pst@invertpinlo#1}} +\define@key[psset]{pst-circ}{pinlp}[true]{\@nameuse{Pst@pinlp#1}} +\define@key[psset]{pst-circ}{invertpinlp}[false]{\@nameuse{Pst@invertpinlp#1}} + + + +\define@key[psset]{pst-circ}{pinra}[true]{\@nameuse{Pst@pinra#1}} +\define@key[psset]{pst-circ}{invertpinra}[false]{\@nameuse{Pst@invertpinra#1}} +\define@key[psset]{pst-circ}{pinrb}[true]{\@nameuse{Pst@pinrb#1}} +\define@key[psset]{pst-circ}{invertpinrb}[false]{\@nameuse{Pst@invertpinrb#1}} +\define@key[psset]{pst-circ}{pinrc}[true]{\@nameuse{Pst@pinrc#1}} +\define@key[psset]{pst-circ}{invertpinrc}[false]{\@nameuse{Pst@invertpinrc#1}} +\define@key[psset]{pst-circ}{pinrd}[true]{\@nameuse{Pst@pinrd#1}} +\define@key[psset]{pst-circ}{invertpinrd}[false]{\@nameuse{Pst@invertpinrd#1}} +\define@key[psset]{pst-circ}{pinre}[true]{\@nameuse{Pst@pinre#1}} +\define@key[psset]{pst-circ}{invertpinre}[false]{\@nameuse{Pst@invertpinre#1}} +\define@key[psset]{pst-circ}{pinrf}[true]{\@nameuse{Pst@pinrf#1}} +\define@key[psset]{pst-circ}{invertpinrf}[false]{\@nameuse{Pst@invertpinrf#1}} +\define@key[psset]{pst-circ}{pinrg}[true]{\@nameuse{Pst@pinrg#1}} +\define@key[psset]{pst-circ}{invertpinrg}[false]{\@nameuse{Pst@invertpinrg#1}} +\define@key[psset]{pst-circ}{pinrh}[true]{\@nameuse{Pst@pinrh#1}} +\define@key[psset]{pst-circ}{invertpinrh}[false]{\@nameuse{Pst@invertpinrh#1}} +\define@key[psset]{pst-circ}{pinri}[true]{\@nameuse{Pst@pinri#1}} +\define@key[psset]{pst-circ}{invertpinri}[false]{\@nameuse{Pst@invertpinri#1}} +\define@key[psset]{pst-circ}{pinrj}[true]{\@nameuse{Pst@pinrj#1}} +\define@key[psset]{pst-circ}{invertpinrj}[false]{\@nameuse{Pst@invertpinrj#1}} +\define@key[psset]{pst-circ}{pinrk}[true]{\@nameuse{Pst@pinrk#1}} +\define@key[psset]{pst-circ}{invertpinrk}[false]{\@nameuse{Pst@invertpinrk#1}} +\define@key[psset]{pst-circ}{pinrl}[true]{\@nameuse{Pst@pinrl#1}} +\define@key[psset]{pst-circ}{invertpinrl}[false]{\@nameuse{Pst@invertpinrl#1}} +\define@key[psset]{pst-circ}{pinrm}[true]{\@nameuse{Pst@pinrm#1}} +\define@key[psset]{pst-circ}{invertpinrm}[false]{\@nameuse{Pst@invertpinrm#1}} +\define@key[psset]{pst-circ}{pinrn}[true]{\@nameuse{Pst@pinrn#1}} +\define@key[psset]{pst-circ}{invertpinrn}[false]{\@nameuse{Pst@invertpinrn#1}} +\define@key[psset]{pst-circ}{pinro}[true]{\@nameuse{Pst@pinro#1}} +\define@key[psset]{pst-circ}{invertpinro}[false]{\@nameuse{Pst@invertpinro#1}} +\define@key[psset]{pst-circ}{pinrp}[true]{\@nameuse{Pst@pinrp#1}} +\define@key[psset]{pst-circ}{invertpinrp}[false]{\@nameuse{Pst@invertpinrp#1}} + + + + + +\define@key[psset]{pst-circ}{pintl}[false]{\@nameuse{Pst@pintl#1}} +\define@key[psset]{pst-circ}{invertpintl}[false]{\@nameuse{Pst@invertpintl#1}} +\define@key[psset]{pst-circ}{pintc}[false]{\@nameuse{Pst@pintc#1}} +\define@key[psset]{pst-circ}{invertpintc}[false]{\@nameuse{Pst@invertpintc#1}} +\define@key[psset]{pst-circ}{pintr}[false]{\@nameuse{Pst@pintr#1}} +\define@key[psset]{pst-circ}{invertpintr}[false]{\@nameuse{Pst@invertpintr#1}} + +\define@key[psset]{pst-circ}{pinbl}[false]{\@nameuse{Pst@pinbl#1}} +\define@key[psset]{pst-circ}{invertpinbl}[false]{\@nameuse{Pst@invertpinbl#1}} +\define@key[psset]{pst-circ}{pinbc}[false]{\@nameuse{Pst@pinbc#1}} +\define@key[psset]{pst-circ}{invertpinbc}[false]{\@nameuse{Pst@invertpinbc#1}} +\define@key[psset]{pst-circ}{pinbr}[false]{\@nameuse{Pst@pinbr#1}} +\define@key[psset]{pst-circ}{invertpinbr}[false]{\@nameuse{Pst@invertpinbr#1}} + +\define@key[psset]{pst-circ}{pinta}[false]{\@nameuse{Pst@pinta#1}} +\define@key[psset]{pst-circ}{invertpinta}[false]{\@nameuse{Pst@invertpinta#1}} +\define@key[psset]{pst-circ}{pintb}[false]{\@nameuse{Pst@pintb#1}} +\define@key[psset]{pst-circ}{invertpintb}[false]{\@nameuse{Pst@invertpintb#1}} +\define@key[psset]{pst-circ}{pintc}[false]{\@nameuse{Pst@pintc#1}} +\define@key[psset]{pst-circ}{invertpintc}[false]{\@nameuse{Pst@invertpintc#1}} +\define@key[psset]{pst-circ}{pintd}[false]{\@nameuse{Pst@pintd#1}} +\define@key[psset]{pst-circ}{invertpintd}[false]{\@nameuse{Pst@invertpintd#1}} +\define@key[psset]{pst-circ}{pinte}[false]{\@nameuse{Pst@pinte#1}} +\define@key[psset]{pst-circ}{invertpinte}[false]{\@nameuse{Pst@invertpinte#1}} + +\define@key[psset]{pst-circ}{pinba}[false]{\@nameuse{Pst@pinba#1}} +\define@key[psset]{pst-circ}{invertpinba}[false]{\@nameuse{Pst@invertpinba#1}} +\define@key[psset]{pst-circ}{pinbb}[false]{\@nameuse{Pst@pinbb#1}} +\define@key[psset]{pst-circ}{invertpinbb}[false]{\@nameuse{Pst@invertpinbb#1}} +\define@key[psset]{pst-circ}{pinbc}[false]{\@nameuse{Pst@pinbc#1}} +\define@key[psset]{pst-circ}{invertpinbc}[false]{\@nameuse{Pst@invertpinbc#1}} +\define@key[psset]{pst-circ}{pinbd}[false]{\@nameuse{Pst@pinbd#1}} +\define@key[psset]{pst-circ}{invertpinbd}[false]{\@nameuse{Pst@invertpinbd#1}} +\define@key[psset]{pst-circ}{pinbe}[false]{\@nameuse{Pst@pinbe#1}} +\define@key[psset]{pst-circ}{invertpinbe}[false]{\@nameuse{Pst@invertpinbe#1}} + +\define@key[psset]{pst-circ}{dpleft}[false]{\@nameuse{Pst@dpleft#1}} +\define@key[psset]{pst-circ}{dpright}[true]{\@nameuse{Pst@dpright#1}} + +% Define Ladder Boolean Keys +\define@key[psset]{pst-circ}{latch}[false]{\@nameuse{Pst@latch#1}} +\define@key[psset]{pst-circ}{unlatch}[false]{\@nameuse{Pst@unlatch#1}} +\define@key[psset]{pst-circ}{contactclosed}[false]{\@nameuse{Pst@contactclosed#1}} + +% Define Ladder Bipole Keys +\define@key[psset]{pst-circ}{polarized}[false]{\@nameuse{Pst@polarized#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \psset[pst-circ]{% labelInside=0,circedge=\pcangle, @@ -203,7 +848,69 @@ logicWireLength=0.5, logicWidth=1.5, logicHeight=2.5, % hv logicNInput=2, logicJInput=2, logicKInput=2, logicType=and, % hv logicLabelstyle=\small, logicSymbolstyle=\large, - logicSymbolpos=0.5,logicNodestyle=\footnotesize + logicSymbolpos=0.5,logicNodestyle=\footnotesize, + segmentcolor=black,ninputs=2,segmentdisplay=10,nicpins=8,bubblesize=0.15, + plcaddress={},plcsymbol={},inputalabel={},inputblabel={},inputclabel={}, + inputenlabel={$EN$},inputcllabel={$CL$},outputalabel={$Q$},outputblabel={$\bar{Q}$}, + pinalabel={},pinanumber={},pinblabel={},pinbnumber={},pinclabel={},pincnumber={}, + pindlabel={},pindnumber={},pinelabel={},pinenumber={},pinflabel={},pinfnumber={}, + pinglabel={},pingnumber={},pinhlabel={},pinhnumber={},pinilabel={},pininumber={}, + pinjlabel={},pinjnumber={},pinklabel={},pinknumber={},pinllabel={},pinlnumber={}, + pinmlabel={},pinmnumber={},pinnlabel={},pinnnumber={},pinolabel={},pinonumber={}, + pinplabel={},pinpnumber={},pinqlabel={},pinqnumber={},pinrlabel={},pinrnumber={}, + pinslabel={},pinsnumber={},pintlabel={},pintnumber={},pinulabel={},pinunumber={}, + pinvlabel={},pinvnumber={},pinwlabel={},pinwnumber={},pinxlabel={},pinxnumber={}, + pinylabel={},pinynumber={},pinzlabel={},pinznumber={},pinaalabel={},pinaanumber={}, + pinablabel={},pinabnumber={},pinaclabel={},pinacnumber={},pinadlabel={},pinadnumber={}, + pinaelabel={},pinaenumber={},pinaflabel={},pinafnumber={},pinlalabel={},pinlanumber={}, + pinlblabel={},pinlbnumber={},pinlclabel={},pinlcnumber={},pinldlabel={},pinldnumber={}, + pinlelabel={},pinlenumber={},pinlflabel={},pinlfnumber={},pinlglabel={},pinlgnumber={}, + pinlhlabel={},pinlhnumber={},pinlilabel={},pinlinumber={},pinljlabel={},pinljnumber={}, + pinlklabel={},pinlknumber={},pinlllabel={},pinllnumber={},pinlmlabel={},pinlmnumber={}, + pinlnlabel={},pinlnnumber={},pinlolabel={},pinlonumber={},pinlplabel={},pinlpnumber={}, + pinralabel={},pinranumber={},pinrblabel={},pinrbnumber={},pinrclabel={},pinrcnumber={}, + pinrdlabel={},pinrdnumber={},pinrelabel={},pinrenumber={},pinrflabel={},pinrfnumber={}, + pinrglabel={},pinrgnumber={},pinrhlabel={},pinrhnumber={},pinrilabel={},pinrinumber={}, + pinrjlabel={},pinrjnumber={},pinrklabel={},pinrknumber={},pinrllabel={},pinrlnumber={}, + pinrmlabel={},pinrmnumber={},pinrnlabel={},pinrnnumber={},pinrolabel={},pinronumber={}, + pinrplabel={},pinrpnumber={},pintllabel={},pintlnumber={},pintclabel={},pintcnumber={}, + pintrlabel={},pintrnumber={},pinbllabel={},pinblnumber={},pinbclabel={},pinbcnumber={}, + pinbrlabel={},pinbrnumber={},pintalabel={},pintanumber={},pintblabel={},pintbnumber={}, + pintclabel={},pintcnumber={},pintdlabel={},pintdnumber={},pintelabel={},pintenumber={}, + pinbalabel={},pinbanumber={},pinbblabel={},pinbbnumber={},pinbclabel={},pinbcnumber={}, + pinbdlabel={},pinbdnumber={},pinbelabel={},pinbenumber={}, + iec=false,iecinvert=false,input=true,invertinput=false,inputa=true,invertinputa=false, + inputb=true,invertinputb=false,inputc=true,invertinputc=false,inputd=true,invertinputd=false, + enable=false,invertenable=false,clock=false,invertclock=false,set=false,invertset=false, + reset=false,invertreset=false,invertoutput=false,outputa=true,invertoutputa=false,outputb=true, + invertoutputb=true,segmentlabels=true,pina=true,invertpina=false,pinb=true,invertpinb=false, + pinc=true,invertpinc=false,pind=true,invertpind=false,pine=true,invertpine=false, + pinf=true,invertpinf=false,ping=true,invertping=false,pinh=true,invertpinh=false, + pini=true,invertpini=false,pinj=true,invertpinj=false,pink=true,invertpink=false, + pinl=true,invertpinl=false,pinm=true,invertpinm=false,pinn=true,invertpinn=false, + pino=true,invertpino=false,pinp=true,invertpinp=false,pinq=true,invertpinq=false, + pinr=true,invertpinr=false,pins=true,invertpins=false,pint=true,invertpint=false, + pinu=true,invertpinu=false,pinv=true,invertpinv=false,pinw=true,invertpinw=false, + pinx=true,invertpinx=false,piny=true,invertpiny=false,pinz=true,invertpinz=false, + pinaa=true,invertpinaa=false,pinab=true,invertpinab=false,pinac=true,invertpinac=false, + pinad=true,invertpinad=false,pinae=true,invertpinae=false,pinaf=true,invertpinaf=false, + pinla=true,invertpinla=false,pinlb=true,invertpinlb=false,pinlc=true,invertpinlc=false, + pinld=true,invertpinld=false,pinle=true,invertpinle=false,pinlf=true,invertpinlf=false, + pinlg=true,invertpinlg=false,pinlh=true,invertpinlh=false,pinli=true,invertpinli=false, + pinlj=true,invertpinlj=false,pinlk=true,invertpinlk=false,pinll=true,invertpinll=false, + pinlm=true,invertpinlm=false,pinln=true,invertpinln=false,pinlo=true,invertpinlo=false, + pinlp=true,invertpinlp=false,pinra=true,invertpinra=false,pinrb=true,invertpinrb=false, + pinrc=true,invertpinrc=false,pinrd=true,invertpinrd=false,pinre=true,invertpinre=false, + pinrf=true,invertpinrf=false,pinrg=true,invertpinrg=false,pinrh=true,invertpinrh=false, + pinri=true,invertpinri=false,pinrj=true,invertpinrj=false,pinrk=true,invertpinrk=false, + pinrl=true,invertpinrl=false,pinrm=true,invertpinrm=false,pinrn=true,invertpinrn=false, + pinro=true,invertpinro=false,pinrp=true,invertpinrp=false,pintl=false,invertpintl=false, + pintc=false,invertpintc=false,pintr=false,invertpintr=false,pinbl=false,invertpinbl=false, + pinbc=false,invertpinbc=false,pinbr=false,invertpinbr=false,pinta=false,invertpinta=false, + pintb=false,invertpintb=false,pintc=false,invertpintc=false,pintd=false,invertpintd=false, + 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 }% hv %\psset[pstricks]{radius=0.5} @@ -2269,6 +2976,2142 @@ \fi% } % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\logicic{\@ifnextchar[{\pst@intcirc}{\pst@intcirc[]}} +\def\pst@intcirc[#1]{\@ifnextchar({\pst@intcirci[#1]{0}}{\pst@intcirci[#1]}} +\def\pst@intcirci[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){ + % IC Styles + \ifcase\psk@nicpins + % + % 8-Pin DIP IC + % + \def\icheight{2.5} + \def\icwidth{3.5} + \def\icleft{1.75} + \def\icmid{2.25} + \def\icright{2.75} + % a + \ifPst@pina + \psline(0,2)(1,2) % Input a + \uput[r](1,2){\small{\psk@pinalabel}} % Name a + \uput[u](0.5,1.9){\small{\psk@pinanumber}} % Number a + \ifPst@invertpina + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2){{\psk@bubblesize}} % Invert Input a + \fi + \fi + % b + \ifPst@pinb + \psline(0,1.5)(1,1.5) % Input b + \uput[r](1,1.5){{\psk@pinblabel}} % Name b + \uput[u](0.5,1.4){{\psk@pinbnumber}} % Number b + \ifPst@invertpinb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input b + \fi + \fi + % c + \ifPst@pinc + \psline(0,1)(1,1) % Input c + \uput[r](1,1){{\psk@pinclabel}} % Name c + \uput[u](0.5,0.9){{\psk@pincnumber}} % Number c + \ifPst@invertpinc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input c + \fi + \fi + % d + \ifPst@pind + \psline(0,0.5)(1,0.5) % Input d + \uput[r](1,0.5){{\psk@pindlabel}} % Name d + \uput[u](0.5,0.4){{\psk@pindnumber}} % Number d + \ifPst@invertpind + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input d + \fi + \fi + % e + \ifPst@pine + \psline(3.5,0.5)(4.5,0.5) % Input e + \uput[l](3.5,0.5){{\psk@pinelabel}} % Name e + \uput[u](4,0.4){{\psk@pinenumber}} % Number e + \ifPst@invertpine + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 0.5){{\psk@bubblesize}} % Invert Input e + \fi + \fi + % f + \ifPst@pinf + \psline(3.5,1)(4.5,1) % Input f + \uput[l](3.5,1){{\psk@pinflabel}} % Name f + \uput[u](4,0.9){{\psk@pinfnumber}} % Number f + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Input f + \fi + \fi + % g + \ifPst@ping + \psline(3.5,1.5)(4.5,1.5) % Input g + \uput[l](3.5,1.5){{\psk@pinglabel}} % Name g + \uput[u](4,1.4){{\psk@pingnumber}} % Number g + \ifPst@invertping + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1.5){{\psk@bubblesize}} % Invert Input g + \fi + \fi + % h + \ifPst@pinh + \psline(3.5,2)(4.5,2) % Input h + \uput[l](3.5,2){{\psk@pinhlabel}} % Name h + \uput[u](4,1.9){{\psk@pinhnumber}} % Number h + \ifPst@invertpinh + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2){{\psk@bubblesize}} % Invert Input h + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,2.5)(3.5,2.5)(3.5,0)(1,0) + \or + % + % 14-Pin DIP IC + % + \def\icheight{4} + \def\icwidth{3.5} + \def\icleft{1.75} + \def\icmid{2.25} + \def\icright{2.75} + % a + \ifPst@pina + \psline(0,3.5)(1,3.5) % Input a + \uput[r](1,3.5){{\psk@pinalabel}} % Name a + \uput[u](0.5,3.4){{\psk@pinanumber}} % Number a + \ifPst@invertpina + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.5){{\psk@bubblesize}} % Invert Input a + \fi + \fi + % b + \ifPst@pinb + \psline(0,3)(1,3) % Input b + \uput[r](1,3){{\psk@pinblabel}} % Name b + \uput[u](0.5,2.9){{\psk@pinbnumber}} % Number b + \ifPst@invertpinb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3){{\psk@bubblesize}} % Invert Input b + \fi + \fi + % c + \ifPst@pinc + \psline(0,2.5)(1,2.5) % Input c + \uput[r](1,2.5){{\psk@pinclabel}} % Name c + \uput[u](0.5,2.4){{\psk@pincnumber}} % Number c + \ifPst@invertpinc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.5){{\psk@bubblesize}} % Invert Input c + \fi + \fi + % d + \ifPst@pind + \psline(0,2)(1,2) % Input d + \uput[r](1,2){{\psk@pindlabel}} % Name d + \uput[u](0.5,1.9){{\psk@pindnumber}} % Number d + \ifPst@invertpind + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2){{\psk@bubblesize}} % Invert Input d + \fi + \fi + % e + \ifPst@pine + \psline(0,1.5)(1,1.5) % Input e + \uput[r](1,1.5){{\psk@pinelabel}} % Name e + \uput[u](0.5,1.4){{\psk@pinenumber}} % Number e + \ifPst@invertpine + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input e + \fi + \fi + % f + \ifPst@pinf + \psline(0,1)(1,1) % Input f + \uput[r](1,1){{\psk@pinflabel}} % Name f + \uput[u](0.5,0.9){{\psk@pinfnumber}} % Number f + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input f + \fi + \fi + % g + \ifPst@ping + \psline(0,0.5)(1,0.5) % Input g + \uput[r](1,0.5){{\psk@pinglabel}} % Name g + \uput[u](0.5,0.4){{\psk@pingnumber}} % Number g + \ifPst@invertping + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input g + \fi + \fi + % h + \ifPst@pinh + \psline(3.5,0.5)(4.5,0.5) % Input h + \uput[l](3.5,0.5){{\psk@pinhlabel}} % Name h + \uput[u](4,0.4){{\psk@pinhnumber}} % Number h + \ifPst@invertpinh + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 0.5){{\psk@bubblesize}} % Invert Input h + \fi + \fi + % i + \ifPst@pini + \psline(3.5,1)(4.5,1) % Input i + \uput[l](3.5,1){{\psk@pinilabel}} % Name i + \uput[u](4,0.9){{\psk@pininumber}} % Number i + \ifPst@invertpini + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Input i + \fi + \fi + % j + \ifPst@pinj + \psline(3.5,1.5)(4.5,1.5) % Input j + \uput[l](3.5,1.5){{\psk@pinjlabel}} % Name j + \uput[u](4,1.4){{\psk@pinjnumber}} % Number j + \ifPst@invertpinj + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1.5){{\psk@bubblesize}} % Invert Input j + \fi + \fi + % k + \ifPst@pink + \psline(3.5,2)(4.5,2) % Input k + \uput[l](3.5,2){{\psk@pinklabel}} % Name k + \uput[u](4,1.9){{\psk@pinknumber}} % Number k + \ifPst@invertpink + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2){{\psk@bubblesize}} % Invert Input k + \fi + \fi + % l + \ifPst@pinl + \psline(3.5,2.5)(4.5,2.5) % Input l + \uput[l](3.5,2.5){{\psk@pinllabel}} % Name l + \uput[u](4,2.4){{\psk@pinlnumber}} % Number l + \ifPst@invertpinl + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2.5){{\psk@bubblesize}} % Invert Input l + \fi + \fi + % m + \ifPst@pinm + \psline(3.5,3)(4.5,3) % Input m + \uput[l](3.5,3){{\psk@pinmlabel}} % Name m + \uput[u](4,2.9){{\psk@pinmnumber}} % Number m + \ifPst@invertpinm + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3){{\psk@bubblesize}} % Invert Input m + \fi + \fi + % n + \ifPst@pinn + \psline(3.5,3.5)(4.5,3.5) % Input n + \uput[l](3.5,3.5){{\psk@pinnlabel}} % Name n + \uput[u](4,3.4){{\psk@pinnnumber}} % Number n + \ifPst@invertpinn + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3.5){{\psk@bubblesize}} % Invert Input n + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,4)(3.5,4)(3.5,0)(1,0) + \or + % + % 16-Pin DIP IC + % + \def\icheight{4.5} + \def\icwidth{3.5} + \def\icleft{1.75} + \def\icmid{2.25} + \def\icright{2.75} + % a + \ifPst@pina + \psline(0,4)(1,4) % Input a + \uput[r](1,4){{\psk@pinalabel}} % Name a + \uput[u](0.5,3.9){{\psk@pinanumber}} % Number a + \ifPst@invertpina + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 4){{\psk@bubblesize}} % Invert Input a + \fi + \fi + % b + \ifPst@pinb + \psline(0,3.5)(1,3.5) % Input b + \uput[r](1,3.5){{\psk@pinblabel}} % Name b + \uput[u](0.5,3.4){{\psk@pinbnumber}} % Number b + \ifPst@invertpinb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.5){{\psk@bubblesize}} % Invert Input b + \fi + \fi + % c + \ifPst@pinc + \psline(0,3)(1,3) % Input c + \uput[r](1,3){{\psk@pinclabel}} % Name c + \uput[u](0.5,2.9){{\psk@pincnumber}} % Number c + \ifPst@invertpinc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3){{\psk@bubblesize}} % Invert Input c + \fi + \fi + % d + \ifPst@pind + \psline(0,2.5)(1,2.5) % Input d + \uput[r](1,2.5){{\psk@pindlabel}} % Name d + \uput[u](0.5,2.4){{\psk@pindnumber}} % Number d + \ifPst@invertpind + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.5){{\psk@bubblesize}} % Invert Input d + \fi + \fi + % e + \ifPst@pine + \psline(0,2)(1,2) % Input e + \uput[r](1,2){{\psk@pinelabel}} % Name e + \uput[u](0.5,1.9){{\psk@pinenumber}} % Number e + \ifPst@invertpine + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2){{\psk@bubblesize}} % Invert Input e + \fi + \fi + % f + \ifPst@pinf + \psline(0,1.5)(1,1.5) % Input f + \uput[r](1,1.5){{\psk@pinflabel}} % Name f + \uput[u](0.5,1.4){{\psk@pinfnumber}} % Number f + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input f + \fi + \fi + % g + \ifPst@ping + \psline(0,1)(1,1) % Input g + \uput[r](1,1){{\psk@pinglabel}} % Name g + \uput[u](0.5,0.9){{\psk@pingnumber}} % Number g + \ifPst@invertping + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input g + \fi + \fi + % h + \ifPst@pinh + \psline(0,0.5)(1,0.5) % Input h + \uput[r](1,0.5){{\psk@pinhlabel}} % Name h + \uput[u](0.5,0.4){{\psk@pinhnumber}} % Number h + \ifPst@invertpinh + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input h + \fi + \fi + % i + \ifPst@pini + \psline(3.5,0.5)(4.5,0.5) % Input i + \uput[l](3.5,0.5){{\psk@pinilabel}} % Name i + \uput[u](4,0.4){{\psk@pininumber}} % Number i + \ifPst@invertpini + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 0.5){{\psk@bubblesize}} % Invert Input i + \fi + \fi + % j + \ifPst@pinj + \psline(3.5,1)(4.5,1) % Input j + \uput[l](3.5,1){{\psk@pinjlabel}} % Name j + \uput[u](4,0.9){{\psk@pinjnumber}} % Number j + \ifPst@invertpinj + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Input j + \fi + \fi + % k + \ifPst@pink + \psline(3.5,1.5)(4.5,1.5) % Input k + \uput[l](3.5,1.5){{\psk@pinklabel}} % Name k + \uput[u](4,1.4){{\psk@pinknumber}} % Number k + \ifPst@invertpink + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1.5){{\psk@bubblesize}} % Invert Input k + \fi + \fi + % l + \ifPst@pinl + \psline(3.5,2)(4.5,2) % Input l + \uput[l](3.5,2){{\psk@pinllabel}} % Name l + \uput[u](4,1.9){{\psk@pinlnumber}} % Number l + \ifPst@invertpinl + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2){{\psk@bubblesize}} % Invert Input l + \fi + \fi + % m + \ifPst@pinm + \psline(3.5,2.5)(4.5,2.5) % Input m + \uput[l](3.5,2.5){{\psk@pinmlabel}} % Name m + \uput[u](4,2.4){{\psk@pinmnumber}} % Number m + \ifPst@invertpinm + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2.5){{\psk@bubblesize}} % Invert Input m + \fi + \fi + % n + \ifPst@pinn + \psline(3.5,3)(4.5,3) % Input n + \uput[l](3.5,3){{\psk@pinnlabel}} % Name n + \uput[u](4,2.9){{\psk@pinnnumber}} % Number n + \ifPst@invertpinn + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3){{\psk@bubblesize}} % Invert Input n + \fi + \fi + % o + \ifPst@pino + \psline(3.5,3.5)(4.5,3.5) % Input o + \uput[l](3.5,3.5){{\psk@pinolabel}} % Name o + \uput[u](4,3.4){{\psk@pinonumber}} % Number o + \ifPst@invertpino + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3.5){{\psk@bubblesize}} % Invert Input o + \fi + \fi + % p + \ifPst@pinp + \psline(3.5,4)(4.5,4) % Input p + \uput[l](3.5,4){{\psk@pinplabel}} % Name p + \uput[u](4,3.9){{\psk@pinpnumber}} % Number p + \ifPst@invertpinp + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 4){{\psk@bubblesize}} % Invert Input p + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,4.5)(3.5,4.5)(3.5,0)(1,0) + \or + % + % 20-Pin DIP IC + % + \def\icheight{5.5} + \def\icwidth{3.5} + \def\icleft{1.75} + \def\icmid{2.25} + \def\icright{2.75} + % a + \ifPst@pina + \psline(0,5)(1,5) % Input a + \uput[r](1,5){{\psk@pinalabel}} % Name a + \uput[u](0.5,4.9){{\psk@pinanumber}} % Number a + \ifPst@invertpina + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 5){{\psk@bubblesize}} % Invert Input a + \fi + \fi + % b + \ifPst@pinb + \psline(0,4.5)(1,4.5) % Input b + \uput[r](1,4.5){{\psk@pinblabel}} % Name b + \uput[u](0.5,4.4){{\psk@pinbnumber}} % Number b + \ifPst@invertpinb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 4.5){{\psk@bubblesize}} % Invert Input b + \fi + \fi + % c + \ifPst@pinc + \psline(0,4)(1,4) % Input c + \uput[r](1,4){{\psk@pinclabel}} % Name c + \uput[u](0.5,3.9){{\psk@pincnumber}} % Number c + \ifPst@invertpinc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 4){{\psk@bubblesize}} % Invert Input c + \fi + \fi + % d + \ifPst@pind + \psline(0,3.5)(1,3.5) % Input d + \uput[r](1,3.5){{\psk@pindlabel}} % Name d + \uput[u](0.5,3.4){{\psk@pindnumber}} % Number d + \ifPst@invertpind + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.5){{\psk@bubblesize}} % Invert Input d + \fi + \fi + % e + \ifPst@pine + \psline(0,3)(1,3) % Input e + \uput[r](1,3){{\psk@pinelabel}} % Name e + \uput[u](0.5,2.9){{\psk@pinenumber}} % Number e + \ifPst@invertpine + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3){{\psk@bubblesize}} % Invert Input e + \fi + \fi + % f + \ifPst@pinf + \psline(0,2.5)(1,2.5) % Input f + \uput[r](1,2.5){{\psk@pinflabel}} % Name f + \uput[u](0.5,2.4){{\psk@pinfnumber}} % Number f + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.5){{\psk@bubblesize}} % Invert Input f + \fi + \fi + % g + \ifPst@ping + \psline(0,2)(1,2) % Input g + \uput[r](1,2){{\psk@pinglabel}} % Name g + \uput[u](0.5,1.9){{\psk@pingnumber}} % Number g + \ifPst@invertping + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2){{\psk@bubblesize}} % Invert Input g + \fi + \fi + % h + \ifPst@pinh + \psline(0,1.5)(1,1.5) % Input h + \uput[r](1,1.5){{\psk@pinhlabel}} % Name h + \uput[u](0.5,1.4){{\psk@pinhnumber}} % Number h + \ifPst@invertpinh + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input h + \fi + \fi + % i + \ifPst@pini + \psline(0,1)(1,1) % Input i + \uput[r](1,1){{\psk@pinilabel}} % Name i + \uput[u](0.5,0.9){{\psk@pininumber}} % Number i + \ifPst@invertpini + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input i + \fi + \fi + % j + \ifPst@pinj + \psline(0,0.5)(1,0.5) % Input j + \uput[r](1,0.5){{\psk@pinjlabel}} % Name j + \uput[u](0.5,0.4){{\psk@pinjnumber}} % Number j + \ifPst@invertpinj + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input j + \fi + \fi + % k + \ifPst@pink + \psline(3.5,0.5)(4.5,0.5) % Input k + \uput[l](3.5,0.5){{\psk@pinklabel}} % Name k + \uput[u](4,0.4){{\psk@pinknumber}} % Number k + \ifPst@invertpink + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 0.5){{\psk@bubblesize}} % Invert Input k + \fi + \fi + % l + \ifPst@pinl + \psline(3.5,1)(4.5,1) % Input l + \uput[l](3.5,1){{\psk@pinllabel}} % Name l + \uput[u](4,0.9){{\psk@pinlnumber}} % Number l + \ifPst@invertpinl + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Input l + \fi + \fi + % m + \ifPst@pinm + \psline(3.5,1.5)(4.5,1.5) % Input m + \uput[l](3.5,1.5){{\psk@pinmlabel}} % Name m + \uput[u](4,1.4){{\psk@pinmnumber}} % Number m + \ifPst@invertpinm + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1.5){{\psk@bubblesize}} % Invert Input m + \fi + \fi + % n + \ifPst@pinn + \psline(3.5,2)(4.5,2) % Input n + \uput[l](3.5,2){{\psk@pinnlabel}} % Name n + \uput[u](4,1.9){{\psk@pinnnumber}} % Number n + \ifPst@invertpinn + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2){{\psk@bubblesize}} % Invert Input n + \fi + \fi + % o + \ifPst@pino + \psline(3.5,2.5)(4.5,2.5) % Input o + \uput[l](3.5,2.5){{\psk@pinolabel}} % Name o + \uput[u](4,2.4){{\psk@pinonumber}} % Number o + \ifPst@invertpino + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 2.5){{\psk@bubblesize}} % Invert Input o + \fi + \fi + % p + \ifPst@pinp + \psline(3.5,3)(4.5,3) % Input p + \uput[l](3.5,3){{\psk@pinplabel}} % Name p + \uput[u](4,2.9){{\psk@pinpnumber}} % Number p + \ifPst@invertpinp + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3){{\psk@bubblesize}} % Invert Input p + \fi + \fi + % q + \ifPst@pinq + \psline(3.5,3.5)(4.5,3.5) % Input q + \uput[l](3.5,3.5){{\psk@pinqlabel}} % Name q + \uput[u](4,3.4){{\psk@pinqnumber}} % Number q + \ifPst@invertpinq + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 3.5){{\psk@bubblesize}} % Invert Input q + \fi + \fi + % r + \ifPst@pinr + \psline(3.5,4)(4.5,4) % Input r + \uput[l](3.5,4){{\psk@pinrlabel}} % Name r + \uput[u](4,3.9){{\psk@pinrnumber}} % Number r + \ifPst@invertpinr + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 4){{\psk@bubblesize}} % Invert Input r + \fi + \fi + % s + \ifPst@pins + \psline(3.5,4.5)(4.5,4.5) % Input s + \uput[l](3.5,4.5){{\psk@pinslabel}} % Name s + \uput[u](4,4.4){{\psk@pinsnumber}} % Number s + \ifPst@invertpins + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 4.5){{\psk@bubblesize}} % Invert Input s + \fi + \fi + % t + \ifPst@pint + \psline(3.5,5)(4.5,5) % Input t + \uput[l](3.5,5){{\psk@pintlabel}} % Name t + \uput[u](4,4.9){{\psk@pintnumber}} % Number t + \ifPst@invertpint + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 5){{\psk@bubblesize}} % Invert Input t + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,5.5)(3.5,5.5)(3.5,0)(1,0) + \or + % + % 32-Pin DIP IC + % + \def\icheight{8.5} + \def\icwidth{4} + \def\icleft{2} + \def\icmid{2.5} + \def\icright{3} + % a + \ifPst@pina + \psline(0,8)(1,8) % Input a + \uput[r](1,8){{\psk@pinalabel}} % Name a + \uput[u](0.5,7.9){{\psk@pinanumber}} % Number a + \ifPst@invertpina + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 8){{\psk@bubblesize}} % Invert Input a + \fi + \fi + % b + \ifPst@pinb + \psline(0,7.5)(1,7.5) % Input b + \uput[r](1,7.5){{\psk@pinblabel}} % Name b + \uput[u](0.5,7.4){{\psk@pinbnumber}} % Number b + \ifPst@invertpinb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 7.5){{\psk@bubblesize}} % Invert Input b + \fi + \fi + % c + \ifPst@pinc + \psline(0,7)(1,7) % Input c + \uput[r](1,7){{\psk@pinclabel}} % Name c + \uput[u](0.5,6.9){{\psk@pincnumber}} % Number c + \ifPst@invertpinc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 7){{\psk@bubblesize}} % Invert Input c + \fi + \fi + % d + \ifPst@pind + \psline(0,6.5)(1,6.5) % Input d + \uput[r](1,6.5){{\psk@pindlabel}} % Name d + \uput[u](0.5,6.4){{\psk@pindnumber}} % Number d + \ifPst@invertpind + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 6.5){{\psk@bubblesize}} % Invert Input d + \fi + \fi + % e + \ifPst@pine + \psline(0,6)(1,6) % Input e + \uput[r](1,6){{\psk@pinelabel}} % Name e + \uput[u](0.5,5.9){{\psk@pinenumber}} % Number e + \ifPst@invertpine + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 6){{\psk@bubblesize}} % Invert Input e + \fi + \fi + % f + \ifPst@pinf + \psline(0,5.5)(1,5.5) % Input f + \uput[r](1,5.5){{\psk@pinflabel}} % Name f + \uput[u](0.5,5.4){{\psk@pinfnumber}} % Number f + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 5.5){{\psk@bubblesize}} % Invert Input f + \fi + \fi + % g + \ifPst@ping + \psline(0,5)(1,5) % Input g + \uput[r](1,5){{\psk@pinglabel}} % Name g + \uput[u](0.5,4.9){{\psk@pingnumber}} % Number g + \ifPst@invertping + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 5){{\psk@bubblesize}} % Invert Input g + \fi + \fi + % h + \ifPst@pinh + \psline(0,4.5)(1,4.5) % Input h + \uput[r](1,4.5){{\psk@pinhlabel}} % Name h + \uput[u](0.5,4.4){{\psk@pinhnumber}} % Number h + \ifPst@invertpinh + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 4.5){{\psk@bubblesize}} % Invert Input h + \fi + \fi + % i + \ifPst@pini + \psline(0,4)(1,4) % Input i + \uput[r](1,4){{\psk@pinilabel}} % Name i + \uput[u](0.5,3.9){{\psk@pininumber}} % Number i + \ifPst@invertpini + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 4){{\psk@bubblesize}} % Invert Input i + \fi + \fi + % j + \ifPst@pinj + \psline(0,3.5)(1,3.5) % Input j + \uput[r](1,3.5){{\psk@pinjlabel}} % Name j + \uput[u](0.5,3.4){{\psk@pinjnumber}} % Number j + \ifPst@invertpinj + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.5){{\psk@bubblesize}} % Invert Input j + \fi + \fi + % k + \ifPst@pink + \psline(0,3)(1,3) % Input k + \uput[r](1,3){{\psk@pinklabel}} % Name k + \uput[u](0.5,2.9){{\psk@pinknumber}} % Number k + \ifPst@invertpink + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3){{\psk@bubblesize}} % Invert Input k + \fi + \fi + % l + \ifPst@pinl + \psline(0,2.5)(1,2.5) % Input l + \uput[r](1,2.5){{\psk@pinllabel}} % Name l + \uput[u](0.5,2.4){{\psk@pinlnumber}} % Number l + \ifPst@invertpinl + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.5){{\psk@bubblesize}} % Invert Input l + \fi + \fi + % m + \ifPst@pinm + \psline(0,2)(1,2) % Input m + \uput[r](1,2){{\psk@pinmlabel}} % Name m + \uput[u](0.5,1.9){{\psk@pinmnumber}} % Number m + \ifPst@invertpinm + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2){{\psk@bubblesize}} % Invert Input m + \fi + \fi + % n + \ifPst@pinn + \psline(0,1.5)(1,1.5) % Input n + \uput[r](1,1.5){{\psk@pinnlabel}} % Name n + \uput[u](0.5,1.4){{\psk@pinnnumber}} % Number n + \ifPst@invertpinn + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input n + \fi + \fi + % o + \ifPst@pino + \psline(0,1)(1,1) % Input o + \uput[r](1,1){{\psk@pinolabel}} % Name o + \uput[u](0.5,0.9){{\psk@pinonumber}} % Number o + \ifPst@invertpino + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input o + \fi + \fi + % p + \ifPst@pinp + \psline(0,0.5)(1,0.5) % Input p + \uput[r](1,0.5){{\psk@pinplabel}} % Name p + \uput[u](0.5,0.4){{\psk@pinpnumber}} % Number p + \ifPst@invertpinp + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input p + \fi + \fi + % q + \ifPst@pinq + \psline(4,0.5)(5,0.5) % Input q + \uput[l](4,0.5){{\psk@pinqlabel}} % Name q + \uput[u](4.5,0.4){{\psk@pinqnumber}} % Number q + \ifPst@invertpinq + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 0.5){{\psk@bubblesize}} % Invert Input q + \fi + \fi + % r + \ifPst@pinr + \psline(4,1)(5,1) % Input r + \uput[l](4,1){{\psk@pinrlabel}} % Name r + \uput[u](4.5,0.9){{\psk@pinrnumber}} % Number r + \ifPst@invertpinr + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Input r + \fi + \fi + % s + \ifPst@pins + \psline(4,1.5)(5,1.5) % Input s + \uput[l](4,1.5){{\psk@pinslabel}} % Name s + \uput[u](4.5,1.4){{\psk@pinsnumber}} % Number s + \ifPst@invertpins + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 1.5){{\psk@bubblesize}} % Invert Input s + \fi + \fi + % t + \ifPst@pint + \psline(4,2)(5,2) % Input t + \uput[l](4,2){{\psk@pintlabel}} % Name t + \uput[u](4.5,1.9){{\psk@pintnumber}} % Number t + \ifPst@invertpint + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 2){{\psk@bubblesize}} % Invert Input t + \fi + \fi + % u + \ifPst@pinu + \psline(4,2.5)(5,2.5) % Input u + \uput[l](4,2.5){{\psk@pinulabel}} % Name u + \uput[u](4.5,2.4){{\psk@pinunumber}} % Number u + \ifPst@invertpinu + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 2.5){{\psk@bubblesize}} % Invert Input u + \fi + \fi + % v + \ifPst@pinv + \psline(4,3)(5,3) % Input v + \uput[l](4,3){{\psk@pinvlabel}} % Name v + \uput[u](4.5,2.9){{\psk@pinvnumber}} % Number v + \ifPst@invertpinv + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 3){{\psk@bubblesize}} % Invert Input v + \fi + \fi + % w + \ifPst@pinw + \psline(4,3.5)(5,3.5) % Input w + \uput[l](4,3.5){{\psk@pinwlabel}} % Name w + \uput[u](4.5,3.4){{\psk@pinwnumber}} % Number w + \ifPst@invertpinw + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 3.5){{\psk@bubblesize}} % Invert Input w + \fi + \fi + % x + \ifPst@pinx + \psline(4,4)(5,4) % Input x + \uput[l](4,4){{\psk@pinxlabel}} % Name x + \uput[u](4.5,3.9){{\psk@pinxnumber}} % Number x + \ifPst@invertpinx + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 4){{\psk@bubblesize}} % Invert Input x + \fi + \fi + % y + \ifPst@piny + \psline(4,4.5)(5,4.5) % Input y + \uput[l](4,4.5){{\psk@pinylabel}} % Name y + \uput[u](4.5,4.4){{\psk@pinynumber}} % Number y + \ifPst@invertpiny + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 4.5){{\psk@bubblesize}} % Invert Input y + \fi + \fi + % z + \ifPst@pinz + \psline(4,5)(5,5) % Input z + \uput[l](4,5){{\psk@pinzlabel}} % Name z + \uput[u](4.5,4.9){{\psk@pinznumber}} % Number z + \ifPst@invertpinz + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 5){{\psk@bubblesize}} % Invert Input z + \fi + \fi + % aa + \ifPst@pinaa + \psline(4,5.5)(5,5.5) % Input aa + \uput[l](4,5.5){{\psk@pinaalabel}} % Name aa + \uput[u](4.5,5.4){{\psk@pinaanumber}} % Number aa + \ifPst@invertpinaa + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 5.5){{\psk@bubblesize}} % Invert Input aa + \fi + \fi + % ab + \ifPst@pinab + \psline(4,6)(5,6) % Input ab + \uput[l](4,6){{\psk@pinablabel}} % Name ab + \uput[u](4.5,5.9){{\psk@pinabnumber}} % Number ab + \ifPst@invertpinab + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 6){{\psk@bubblesize}} % Invert Input ab + \fi + \fi + % ac + \ifPst@pinac + \psline(4,6.5)(5,6.5) % Input ac + \uput[l](4,6.5){{\psk@pinaclabel}} % Name ac + \uput[u](4.5,6.4){{\psk@pinacnumber}} % Number ac + \ifPst@invertpinac + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 6.5){{\psk@bubblesize}} % Invert Input ac + \fi + \fi + % ad + \ifPst@pinad + \psline(4,7)(5,7) % Input ad + \uput[l](4,7){{\psk@pinadlabel}} % Name ad + \uput[u](4.5,6.9){{\psk@pinadnumber}} % Number ad + \ifPst@invertpinad + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 7){{\psk@bubblesize}} % Invert Input ad + \fi + \fi + % ae + \ifPst@pinae + \psline(4,7.5)(5,7.5) % Input ae + \uput[l](4,7.5){{\psk@pinaelabel}} % Name ae + \uput[u](4.5,7.4){{\psk@pinaenumber}} % Number ae + \ifPst@invertpinae + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 7.5){{\psk@bubblesize}} % Invert Input ae + \fi + \fi + % af + \ifPst@pinaf + \psline(4,8)(5,8) % Input af + \uput[l](4,8){{\psk@pinaflabel}} % Name af + \uput[u](4.5,7.9){{\psk@pinafnumber}} % Number af + \ifPst@invertpinaf + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 8){{\psk@bubblesize}} % Invert Input af + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,8.5)(4,8.5)(4,0)(1,0) + \fi + % + % Top Pins + % + % tl + \ifPst@pintl + \pnode(\icleft,\icheight){A} + \pnode([angle=90,offset=-0.1]A){B} + \psline(A)([angle=0,offset=1]A) % Input tl + \uput[d](A){{\psk@pintllabel}} % Name tl + \uput[l]([angle=0,offset=0.55]B){{\psk@pintlnumber}} % Number tl + \ifPst@invertpintl + \pscircle[fillstyle=solid]([angle=0,offset=\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input tl + \fi + \fi + % tc + \ifPst@pintc + \pnode(\icmid,\icheight){A} + \pnode([angle=90,offset=-0.1]A){B} + \psline(A)([angle=0,offset=1]A) % Input tc + \uput[d](A){{\psk@pintclabel}} % Name tc + \uput[l]([angle=0,offset=0.55]B){{\psk@pintcnumber}} % Number tc + \ifPst@invertpintc + \pscircle[fillstyle=solid]([angle=0,offset=\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input tc + \fi + \fi + % tr + \ifPst@pintr + \pnode(\icright,\icheight){A} + \pnode([angle=90,offset=-0.1]A){B} + \psline(A)([angle=0,offset=1]A) % Input tr + \uput[d](A){{\psk@pintrlabel}} % Name tr + \uput[l]([angle=0,offset=0.55]B){{\psk@pintrnumber}} % Number tr + \ifPst@invertpintc + \pscircle[fillstyle=solid]([angle=0,offset=\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input tr + \fi + \fi + % + % Bottom Pins + % + % bl + \ifPst@pinbl + \pnode(\icleft,0){A} + \pnode([angle=-90,offset=0.1]A){B} + \psline(A)([angle=0,offset=-1]A) % Input bl + \uput[u](A){{\psk@pinbllabel}} % Name bl + \uput[l]([angle=0,offset=-0.55]B){{\psk@pinblnumber}} % Number bl + \ifPst@invertpinbl + \pscircle[fillstyle=solid]([angle=0,offset=-\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input bl + \fi + \fi + % bc + \ifPst@pinbc + \pnode(\icmid,0){A} + \pnode([angle=-90,offset=0.1]A){B} + \psline(A)([angle=0,offset=-1]A) % Input bc + \uput[u](A){{\psk@pinbclabel}} % Name bc + \uput[l]([angle=0,offset=-0.55]B){{\psk@pinbcnumber}} % Number bc + \ifPst@invertpinbc + \pscircle[fillstyle=solid]([angle=0,offset=-\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input bc + \fi + \fi + % br + \ifPst@pinbr + \pnode(\icright,0){A} + \pnode([angle=-90,offset=0.1]A){B} + \psline(A)([angle=0,offset=-1]A) % Input br + \uput[u](A){{\psk@pinbrlabel}} % Name br + \uput[l]([angle=0,offset=-0.55]B){{\psk@pinbrnumber}} % Number br + \ifPst@invertpinbc + \pscircle[fillstyle=solid]([angle=0,offset=-\psk@bubblesize]A){{\psk@bubblesize}} % Invert Input br + \fi + \fi + % Name + \uput[r](\icwidth,0){#4} + }}% +\ignorespaces +} + +% NOT Gate \logicnot +% +% Input at (+0,+1) +% Output at (+3.5,+1) +% +\def\logicnot{\@ifnextchar[{\pst@logicnot}{\pst@logicnot[]}} +\def\pst@logicnot[#1]{\@ifnextchar({\pst@logicnoti[#1]{0}}{\pst@logicnoti[#1]}} +\def\pst@logicnoti[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){ + % Input + \psline(0,1)(1,1) % Input + \ifPst@invertinput + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input + \fi + % Body + \ifPst@iec + \psline[linewidth=1.5\pslinewidth](1,0)(2.5,0)(2.5,2)(1,2)(1,0) + \uput[u](1.75,1.25){1} + \else + \psline[linewidth=1.5\pslinewidth](1,0)(1,2)(2.5,1)(1,0) + \fi + % Output + \psline(2.5,1)(3.5,1) + \ifPst@invertoutput + \ifPst@iecinvert + \psline(2.5,1.25)(3,1) + \else + \pscircle[fillstyle=solid](! 2.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \fi + \fi + % Name + \uput[r](2.5,0){#4} + \psset{} + }}% +\ignorespaces +} + +% AND Gate (NAND Gate) \logicand +% +% 2-Input +% Input A at (+0,+1) +% Input B at () +% Output at (+3.5,+1) +% +% 3-Input +% Input A at (+0,+1) +% Input B at () +% Input C at () +% Output at (+3.5,+1) +% +% 4-Input +% Input A at (+0,+1) +% Input B at () +% Input C at () +% Input D at () +% Output at (+3.5,+1) +% + +\def\logicand{\@ifnextchar[{\pst@logicand}{\pst@logicand[]}} +\def\pst@logicand[#1]{\@ifnextchar({\pst@logicandi[#1]{0}}{\pst@logicandi[#1]}} +\def\pst@logicandi[#1]#2(#3)#4{{% + \psset{#1} + \rput{#2}(#3){ + % Inputs + \ifcase\psk@ninputs\or + \ifPst@inputa + \psline(0,1)(1,1) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,0.5)(1,0.5) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1)(1,1) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.5)(1,0.5) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.75)(1,1.75) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.75){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1.25)(1,1.25) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.25){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.75)(1,0.75) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.75){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \ifPst@inputd + \psline(0,0.25)(1,0.25) % Input D + \ifPst@invertinputd + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.25){{\psk@bubblesize}} % Invert Input D + \fi + \fi + \fi + % Body + \ifPst@iec + \psline[linewidth=1.5\pslinewidth](1,0)(2.5,0)(2.5,2)(1,2)(1,0) + \uput[u](1.75,1.25){\&} + \else + \psline[linewidth=1.5\pslinewidth](1,0)(1,2) + \psline[linewidth=1.5\pslinewidth](1,0)(2.5,0) + \psline[linewidth=1.5\pslinewidth](1,2)(2.5,2) + \psbezier[linewidth=1.5\pslinewidth](2.5,0)(3.5,0)(3.5,1)(3.5,1) + \psbezier[linewidth=1.5\pslinewidth](3.5,1)(3.5,1)(3.5,2)(2.5,2) + \fi + % Output + \ifPst@iec + \psline(2.5,1)(3.5,1) + \else + \psline(3.5,1)(4.5,1) + \fi + \ifPst@invertoutput + \ifPst@iecinvert + \psline(2.5,1.25)(3,1) + \else + \ifPst@iec + \pscircle[fillstyle=solid](! 2.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \else + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \fi + \fi + \fi + % Name + \ifPst@iec + \uput[r](2.5,0){#4} + \else + \uput[r](3.25,0){#4} + \fi + }}% +\ignorespaces +} + +% OR Gate (NOR Gate) \logicor +% +% Input at (+0,+1) +% Output at (+3.5,+1) +% +\def\logicor{\@ifnextchar[{\pst@logicor}{\pst@logicor[]}} +\def\pst@logicor[#1]{\@ifnextchar({\pst@logicori[#1]{0}}{\pst@logicori[#1]}} +\def\pst@logicori[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){ + % Inputs + \ifcase\psk@ninputs\or + \ifPst@inputa + \psline(0,1)(1.08,1) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1.08 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,0.5)(1,0.5) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1)(1.06,1) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1.09 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.5)(1,0.5) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.75)(0.88,1.75) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 0.87 \space\psk@bubblesize\space sub 1.75){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1.25)(1.05,1.25) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1.07 \space\psk@bubblesize\space sub 1.25){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.75)(1.05,0.75) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1.07 \space\psk@bubblesize\space sub 0.75){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \ifPst@inputc + \psline(0,0.25)(0.88,0.25) % Input D + \ifPst@invertinputd + \pscircle[fillstyle=solid](! 0.87 \space\psk@bubblesize\space sub 0.25){{\psk@bubblesize}} % Invert Input D + \fi + \fi + \fi + % Body + \ifPst@iec + \psline[linewidth=1.5\pslinewidth](1,0)(2.5,0)(2.5,2)(1,2)(1,0) + \uput[u](1.75,1.25){$\geq 1$} + \else + \psbezier[linewidth=1.5\pslinewidth](0.7,0)(1.2,0.5)(1.2,1.5)(0.7,2) + \psline[linewidth=1.5\pslinewidth](0.7,0)(2,0) + \psline[linewidth=1.5\pslinewidth](0.7,2)(2,2) + \psbezier[linewidth=1.5\pslinewidth](2,0)(3,0)(3.5,1)(3.5,1) + \psbezier[linewidth=1.5\pslinewidth](3.5,1)(3.5,1)(3,2)(2,2) + \fi + % Output + \ifPst@iec + \psline(2.5,1)(3.5,1) + \else + \psline(3.5,1)(4.5,1) + \fi + \ifPst@invertoutput + \ifPst@iecinvert + \psline(2.5,1.25)(3,1) + \else + \ifPst@iec + \pscircle[fillstyle=solid](! 2.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \else + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \fi + \fi + \fi + % Name + \ifPst@iec + \uput[r](2.5,0){#4} + \else + \uput[r](3.25,0){#4} + \fi + }}% +\ignorespaces +} + +% Exclusive-OR Gate (Exclusive NOR Gate) \logicxor +% +% Input at (+0,+1) +% Output at (+3.5,+1) +% +\def\logicxor{\@ifnextchar[{\pst@logicxor}{\pst@logicxor[]}} +\def\pst@logicxor[#1]{\@ifnextchar({\pst@logicxori[#1]{0}}{\pst@logicxori[#1]}} +\def\pst@logicxori[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){ + % Inputs + \ifcase\psk@ninputs\or + \ifPst@inputa + \psline(0,1)(1.08,1) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1.08 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,0.5)(1,0.5) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.5)(1,1.5) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1)(1.06,1) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1.09 \space\psk@bubblesize\space sub 1){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.5)(1,0.5) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.5){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \or + \ifPst@inputa + \psline(0,1.75)(0.88,1.75) % Input A + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 0.87 \space\psk@bubblesize\space sub 1.75){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,1.25)(1.05,1.25) % Input B + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1.07 \space\psk@bubblesize\space sub 1.25){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@inputc + \psline(0,0.75)(1.05,0.75) % Input C + \ifPst@invertinputc + \pscircle[fillstyle=solid](! 1.07 \space\psk@bubblesize\space sub 0.75){{\psk@bubblesize}} % Invert Input C + \fi + \fi + \ifPst@inputd + \psline(0,0.25)(0.88,0.25) % Input D + \ifPst@invertinputd + \pscircle[fillstyle=solid](! 0.87 \space\psk@bubblesize\space sub 0.25){{\psk@bubblesize}} % Invert Input D + \fi + \fi + \fi + % Body + \ifPst@iec + \psline[linewidth=1.5\pslinewidth](1,0)(2.5,0)(2.5,2)(1,2)(1,0) + \uput[u](1.75,1.25){$= 1$} + \else + \psbezier[linewidth=1.5\pslinewidth](0.7,0)(1.2,0.5)(1.2,1.5)(0.7,2) + \psbezier[linewidth=1.5\pslinewidth](1,0)(1.5,0.5)(1.5,1.5)(1,2) + \psline[linewidth=1.5\pslinewidth](1,0)(2,0) + \psline[linewidth=1.5\pslinewidth](1,2)(2,2) + \psbezier[linewidth=1.5\pslinewidth](2,0)(3,0)(3.5,1)(3.5,1) + \psbezier[linewidth=1.5\pslinewidth](3.5,1)(3.5,1)(3,2)(2,2) + \fi + % Output + \ifPst@iec + \psline(2.5,1)(3.5,1) + \else + \psline(3.5,1)(4.5,1) + \fi + \ifPst@invertoutput + \ifPst@iecinvert + \psline(2.5,1.25)(3,1) + \else + \ifPst@iec + \pscircle[fillstyle=solid](! 2.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \else + \pscircle[fillstyle=solid](! 3.5 \space\psk@bubblesize\space add 1){{\psk@bubblesize}} % Invert Output + \fi + \fi + \fi + % Name + \ifPst@iec + \uput[r](2.5,0){#4} + \else + \uput[r](3.25,0){#4} + \fi + }}% +\ignorespaces +} + +% Flip-Flop +% +% Input A at (+0,+2.25) +% Input B at (+0,+0.75) +% Output Q at (+3.5,+2.25) +% Output Not Q at (+3.5,+0.75) +% +\def\logicff{\@ifnextchar[{\pst@logicff}{\pst@logicff[]}} +\def\pst@logicff[#1]{\@ifnextchar({\pst@logicffi[#1]{0}}{\pst@logicffi[#1]}} +\def\pst@logicffi[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){% + % Inputs + \ifPst@inputa + \psline(0,2.25)(1,2.25) % Input A + \uput[r](1,2.25){\psk@inputalabel} % Input A Label + \ifPst@invertinputa + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.25){{\psk@bubblesize}} % Invert Input A + \fi + \fi + \ifPst@inputb + \psline(0,0.75)(1,0.75) % Input B + \uput[r](1,0.75){\psk@inputblabel} % Input B Label + \ifPst@invertinputb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.75){{\psk@bubblesize}} % Invert Input B + \fi + \fi + \ifPst@enable + \psline(0,1.5)(1,1.5) % Enable + \uput[r](1,1.5){\psk@inputenlabel} % Enable Label + \ifPst@invertenable + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Enable + \fi + \fi + \ifPst@clock + \psline(0,1.5)(1,1.5) % Clock + \psline(1,1.7)(1.4,1.5)(1,1.3) + \uput[r](1.4,1.5){\psk@inputcllabel} % Clock Label + \ifPst@invertclock + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.5){{\psk@bubblesize}} % Invert Clock + \fi + \fi + \ifPst@set + \psline(2,4)(2,3) % Set + \uput[d](2,3){$S$} % Set Label + \ifPst@invertset + \pscircle[fillstyle=solid](! 2 3 \space\psk@bubblesize\space add){{\psk@bubblesize}} % Invert Set + \fi + \fi + \ifPst@reset + \psline(2,-1)(2,0) % Reset + \uput[u](2,0){$R$} % Reset Label + \ifPst@invertreset + \pscircle[fillstyle=solid](2,-\psk@bubblesize){{\psk@bubblesize}} % Invert Reset + \fi + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,3)(3,3)(3,0)(1,0) + % Outputs + \ifPst@outputa + \psline(3,2.25)(4,2.25) % Output Q + \uput[l](3,2.25){\psk@outputalabel} + \ifPst@invertoutputa + \pscircle[fillstyle=solid](! 3 \space\psk@bubblesize\space add 2.25){{\psk@bubblesize}} % Invert Q + \fi + \fi + \ifPst@outputb + \psline(3,0.75)(4,0.75) % Output Not Q + \uput[l](3,0.75){\psk@outputblabel} + \ifPst@invertoutputb + \pscircle[fillstyle=solid](! 3 \space\psk@bubblesize\space add 0.75){{\psk@bubblesize}} + \fi + \fi + % Name + \uput[r](3,0){#4} + }}% +\ignorespaces +} + + +% +% 7-Segment Display \sevensegmentdisplay +% + +\def\sevensegmentdisplay{\@ifnextchar[{\pst@sevensegmentdisplay}{\pst@sevensegmentdisplay[]}} +\def\pst@sevensegmentdisplay[#1]{\@ifnextchar({\pst@sevensegmentdisplayi[#1]{0}}{\pst@sevensegmentdisplayi[#1]}} +\def\pst@sevensegmentdisplayi[#1]#2(#3)#4{{% + \psset{#1}% + \rput{#2}(#3){% + % Left Side Pins + % la + \ifPst@pinla + \psline(0,3.75)(1,3.75) % Input la + \uput[r](1,3.75){{\psk@pinlalabel}} % Name la + \uput[u](0.5,3.65){{\psk@pinlanumber}} % Number la + \ifPst@invertpinla + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.75){{\psk@bubblesize}} % Invert Input la + \fi + \fi + % lb + \ifPst@pinlb + \psline(0,3.25)(1,3.25) % Input lb + \uput[r](1,3.25){{\psk@pinlblabel}} % Name lb + \uput[u](0.5,3.15){{\psk@pinlbnumber}} % Number lb + \ifPst@invertpinlb + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 3.25){{\psk@bubblesize}} % Invert Input lb + \fi + \fi + % lc + \ifPst@pinlc + \psline(0,2.75)(1,2.75) % Input lc + \uput[r](1,2.75){{\psk@pinlclabel}} % Name lc + \uput[u](0.5,2.65){{\psk@pinlcnumber}} % Number lc + \ifPst@invertpinlc + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.75){{\psk@bubblesize}} % Invert Input lc + \fi + \fi + % ld + \ifPst@pinld + \psline(0,2.25)(1,2.25) % Input ld + \uput[r](1,2.25){{\psk@pinldlabel}} % Name ld + \uput[u](0.5,2.15){{\psk@pinldnumber}} % Number ld + \ifPst@invertpinld + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 2.25){{\psk@bubblesize}} % Invert Input ld + \fi + \fi + % le + \ifPst@pinle + \psline(0,1.75)(1,1.75) % Input le + \uput[r](1,1.75){{\psk@pinlelabel}} % Name le + \uput[u](0.5,1.65){{\psk@pinlenumber}} % Number le + \ifPst@invertpinle + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.75){{\psk@bubblesize}} % Invert Input le + \fi + \fi + % lf + \ifPst@pinlf + \psline(0,1.25)(1,1.25) % Input lf + \uput[r](1,1.25){{\psk@pinlflabel}} % Name lf + \uput[u](0.5,1.15){{\psk@pinlfnumber}} % Number lf + \ifPst@invertpinlf + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 1.25){{\psk@bubblesize}} % Invert Input lf + \fi + \fi + % lg + \ifPst@pinlg + \psline(0,0.75)(1,0.75) % Input lg + \uput[r](1,0.75){{\psk@pinlglabel}} % Name lg + \uput[u](0.5,0.65){{\psk@pinlgnumber}} % Number lg + \ifPst@invertpinlg + \pscircle[fillstyle=solid](! 1 \space\psk@bubblesize\space sub 0.75){{\psk@bubblesize}} % Invert Input lg + \fi + \fi + % Right Side Pins + % rg + \ifPst@pinrg + \psline(4.5,0.75)(5.5,0.75) % Input rg + \uput[l](4.5,0.75){{\psk@pinrglabel}} % Name rg + \uput[u](5,0.65){{\psk@pinrgnumber}} % Number rg + \ifPst@invertpinrg + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 0.75){{\psk@bubblesize}} % Invert Input rg + \fi + \fi + % rf + \ifPst@pinrf + \psline(4.5,1.25)(5.5,1.25) % Input rf + \uput[l](4.5,1.25){{\psk@pinrflabel}} % Name rf + \uput[u](5,1.15){{\psk@pinrfnumber}} % Number rf + \ifPst@invertpinf + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 1.25){{\psk@bubblesize}} % Invert Input rf + \fi + \fi + % re + \ifPst@pinre + \psline(4.5,1.75)(5.5,1.75) % Input re + \uput[l](4.5,1.75){{\psk@pinrelabel}} % Name re + \uput[u](5,1.65){{\psk@pinrenumber}} % Number re + \ifPst@invertpinre + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 1.75){{\psk@bubblesize}} % Invert Input re + \fi + \fi + % rd + \ifPst@pinrd + \psline(4.5,2.25)(5.5,2.25) % Input rd + \uput[l](4.5,2.25){{\psk@pinrdlabel}} % Name rd + \uput[u](5,2.15){{\psk@pinrdnumber}} % Number rd + \ifPst@invertpinrd + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 2.25){{\psk@bubblesize}} % Invert Input rd + \fi + \fi + % rc + \ifPst@pinrc + \psline(4.5,2.75)(5.5,2.75) % Input rc + \uput[l](4.5,2.75){{\psk@pinrclabel}} % Name rc + \uput[u](5,2.65){{\psk@pinrcnumber}} % Number rc + \ifPst@invertpinrc + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 2.75){{\psk@bubblesize}} % Invert Input rc + \fi + \fi + % rb + \ifPst@pinrb + \psline(4.5,3.25)(5.5,3.25) % Input rb + \uput[l](4.5,3.25){{\psk@pinrblabel}} % Name rb + \uput[u](5,3.15){{\psk@pinrbnumber}} % Number rb + \ifPst@invertpinrb + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 3.25){{\psk@bubblesize}} % Invert Input rb + \fi + \fi + % ra + \ifPst@pinra + \psline(4.5,3.75)(5.5,3.75) % Input ra + \uput[l](4.5,3.75){{\psk@pinralabel}} % Name ra + \uput[u](5,3.65){{\psk@pinranumber}} % Number ra + \ifPst@invertpinra + \pscircle[fillstyle=solid](! 4 \space\psk@bubblesize\space add 3.75){{\psk@bubblesize}} % Invert Input ra + \fi + \fi + % Top Pins + % ta + \ifPst@pinta + \psline(1.75,4.5)(1.75,5.5) % Input ta + \uput[d](1.75,4.5){{\psk@pintalabel}} % Name ta + \uput[l](1.75,5.05){{\psk@pintanumber}} % Number ta + \ifPst@invertpinta + \pscircle[fillstyle=solid](1.75,4.5){{\psk@bubblesize}} % Invert Input ta + \fi + \fi + % tb + \ifPst@pintb + \psline(2.25,4.5)(2.25,5.5) % Input tb + \uput[d](2.25,4.5){{\psk@pintblabel}} % Name tb + \uput[l](2.25,5.05){{\psk@pintbnumber}} % Number tb + \ifPst@invertpintb + \pscircle[fillstyle=solid](2.25,4.5){{\psk@bubblesize}} % Invert Input tb + \fi + \fi + % tc + \ifPst@pintc + \psline(2.75,4.5)(2.75,5.5) % Input tc + \uput[d](2.75,4.5){{\psk@pintclabel}} % Name tc + \uput[l](2.75,5.05){{\psk@pintcnumber}} % Number tc + \ifPst@invertpintc + \pscircle[fillstyle=solid](2.75,4.5){{\psk@bubblesize}} % Invert Input tc + \fi + \fi + % td + \ifPst@pintd + \psline(3.25,4.5)(3.25,5.5) % Input td + \uput[d](3.25,4.5){{\psk@pintdlabel}} % Name td + \uput[l](3.25,5.05){{\psk@pintdnumber}} % Number td + \ifPst@invertpintd + \pscircle[fillstyle=solid](3.25,4.5){{\psk@bubblesize}} % Invert Input td + \fi + \fi + % te + \ifPst@pinte + \psline(3.75,4.5)(3.75,5.5) % Input te + \uput[d](3.75,4.5){{\psk@pintelabel}} % Name te + \uput[l](3.75,5.05){{\psk@pintenumber}} % Number te + \ifPst@invertpinte + \pscircle[fillstyle=solid](3.75,4.5){{\psk@bubblesize}} % Invert Input te + \fi + \fi + % Bottom Pins + % ba + \ifPst@pinba + \psline(1.75,0)(1.75,-1) % Input ba + \uput[u](1.75,0){{\psk@pinbalabel}} % Name ba + \uput[l](1.75,-0.55){{\psk@pinbanumber}} % Number ba + \ifPst@invertpinba + \pscircle[fillstyle=solid](1.75,0){{\psk@bubblesize}} % Invert Input ba + \fi + \fi + % bb + \ifPst@pinbb + \psline(2.25,0)(2.25,-1) % Input bb + \uput[u](2.25,0){{\psk@pinbblabel}} % Name bb + \uput[l](2.25,-0.55){{\psk@pinbbnumber}} % Number bb + \ifPst@invertpinbb + \pscircle[fillstyle=solid](2.25,0){{\psk@bubblesize}} % Invert Input bb + \fi + \fi + % bc + \ifPst@pinbc + \psline(2.75,0)(2.75,-1) % Input bc + \uput[u](2.75,0){{\psk@pinbclabel}} % Name bc + \uput[l](2.75,-0.55){{\psk@pinbcnumber}} % Number bc + \ifPst@invertpinbc + \pscircle[fillstyle=solid](2.75,0){{\psk@bubblesize}} % Invert Input bc + \fi + \fi + % bd + \ifPst@pinbd + \psline(3.25,0)(3.25,-1) % Input bd + \uput[u](3.25,0){{\psk@pinbdlabel}} % Name bd + \uput[l](3.25,-0.55){{\psk@pinbdnumber}} % Number bd + \ifPst@invertpinbd + \pscircle[fillstyle=solid](3.25,0){{\psk@bubblesize}} % Invert Input bd + \fi + \fi + % be + \ifPst@pinbe + \psline(3.75,0)(3.75,-1) % Input be + \uput[u](3.75,0){{\psk@pinbelabel}} % Name be + \uput[l](3.75,-0.55){{\psk@pinbenumber}} % Number be + \ifPst@invertpinbe + \pscircle[fillstyle=solid](3.75,0){{\psk@bubblesize}} % Invert Input be + \fi + \fi + % Right Decimal Point + \ifPst@dpright + \pscircle[linewidth=0.5\pslinewidth](3.75,0.75){0.1} + \fi + % Left Decimal Point + \ifPst@dpleft + \pscircle[linewidth=0.5\pslinewidth](1.75,0.75){0.1} + \fi + % Body + \psline[linewidth=1.5\pslinewidth](1,0)(1,4.5)(4.5,4.5)(4.5,0)(1,0) + % Segments + \ifcase\psk@segmentdisplay + % Display 0 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,2.15)(3.45,2.35) % g + \or + % Display 1 + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,2.25)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,2.15)(3.45,2.35) % g + \or + % Display 2 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 3 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 4 + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.25)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 5 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 6 + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 7 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,2.15)(3.45,2.35) % g + \or + % Display 8 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display 9 + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9,fillstyle=solid,fillcolor=\psk@segmentcolor](2.05,2.15)(3.45,2.35) % g + \or + % Display Blank + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,3.65)(3.45,3.85) % a + \psframe[linewidth=0.5\pslinewidth,framearc=.9](3.45,2.35)(3.65,3.65) % b + \psframe[linewidth=0.5\pslinewidth,framearc=.9](3.45,0.85)(3.65,2.15) % c + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,0.65)(3.45,0.85) % d + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,0.85)(2.05,2.15) % e + \psframe[linewidth=0.5\pslinewidth,framearc=.9](1.85,2.35)(2.05,3.65) % f + \psframe[linewidth=0.5\pslinewidth,framearc=.9](2.05,2.15)(3.45,2.35) % g + \fi + % Segment Labels + \ifPst@segmentlabels + \uput[d](2.75,3.75){\footnotesize{a}} + \uput[l](3.55,3.05){\footnotesize{b}} + \uput[l](3.55,1.55){\footnotesize{c}} + \uput[u](2.75,0.75){\footnotesize{d}} + \uput[r](1.95,1.55){\footnotesize{e}} + \uput[r](1.95,3.05){\footnotesize{f}} + \uput[u](2.75,2.35){\footnotesize{g}} + \fi + % Name + \uput[r](4.5,0){#4}% + }}% +\ignorespaces +} + +% +% PLC Ladder Logic +% + +% +% \xic (XIC) +% +\def\xic{\@ifnextchar[{\pst@xic}{\pst@xic[]}} +\def\pst@xic[#1](#2){{% + \psset{#1}% + \rput(#2){ + % Input + \psline(-1,0)(-0.25,0) % Input + % Body + \psline(-0.6,-0.35)(-0.25,-0.35)(-0.25,0.35)(-0.6,0.35) + \psline(0.6,-0.35)(0.25,-0.35)(0.25,0.35)(0.6,0.35) + % Output + \psline(1,0)(0.25,0) + % Names + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + \psset{} + }}% +\ignorespaces +} + +% +% \xio (XIO) +% +\def\xio{\@ifnextchar[{\pst@xio}{\pst@xio[]}} +\def\pst@xio[#1](#2){{% + \psset{#1}% + \rput(#2){ + % Input + \psline(-1,0)(-0.25,0) % Input + % Body + \psline(-0.6,-0.35)(-0.25,-0.35)(-0.25,0.35)(-0.6,0.35) + \psline(0.6,-0.35)(0.25,-0.35)(0.25,0.35)(0.6,0.35) + \psline(-0.6,-0.35)(0.6,0.35) + % Output + \psline(1,0)(0.25,0) + % Name + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} + +% +% \ote (OTE) +% +\def\ote{\@ifnextchar[{\pst@ote}{\pst@ote[]}} +\def\pst@ote[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.6,0) % Input + % Body + \psline(-0.2,-0.35)(-0.6,-0.1)(-0.6,0.1)(-0.2,0.35) + \psline(0.2,-0.35)(0.6,-0.1)(0.6,0.1)(0.2,0.35) + % Output + \psline(1,0)(0.6,0) + % Name + \ifPst@latch + \uput[u](0,-0.3){L} % Latch + \fi + \ifPst@unlatch + \uput[u](0,-0.3){U} % Unlatch + \fi + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} +% +% \osr (OSR) +% +\def\osr{\@ifnextchar[{\pst@osr}{\pst@osr[]}} +\def\pst@osr[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.7,0) % Input + % Body + \psline(-0.4,-0.35)(-0.7,-0.35)(-0.7,0.35)(-0.4,0.35) + \psline(0.4,-0.35)(0.7,-0.35)(0.7,0.35)(0.4,0.35) + % Output + \psline(1,0)(0.7,0) + % Name + \uput[u](0,-0.3){OSR} % OSR + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} + +% +% \res (RES) +% +\def\res{\@ifnextchar[{\pst@res}{\pst@res[]}} +\def\pst@res[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.7,0) % Input + % Body + \psline(-0.4,-0.35)(-0.7,-0.1)(-0.7,0.1)(-0.4,0.35) + \psline(0.4,-0.35)(0.7,-0.1)(0.7,0.1)(0.4,0.35) + % Output + \psline(1,0)(0.7,0) + % Name + \uput[u](0,-0.3){RES} % RES + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} + +% +% Relay Ladder Logic +% + +% +% \swpb (Switch PB) +% +\def\swpb{\@ifnextchar[{\pst@swpb}{\pst@swpb[]}} +\def\pst@swpb[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.5,0) % Input + % Body + \pscircle[fillstyle=solid](-0.4,0){0.1} + \pscircle[fillstyle=solid](0.4,0){0.1} + \ifPst@contactclosed + \psline[linewidth=1.5\pslinewidth](-0.4,-0.1)(0.4,-0.1) + \psline[linewidth=1.5\pslinewidth](0,-0.1)(0,0.4) + \else + \psline[linewidth=1.5\pslinewidth](-0.4,0.3)(0.4,0.3) + \psline[linewidth=1.5\pslinewidth](0,0.3)(0,0.7) + \fi + % Output + \psline(1,0)(0.5,0) + }}% +\ignorespaces +} + +% +% \swtog (Switch NO Toggle) +% +\def\swtog{\@ifnextchar[{\pst@swtog}{\pst@swtog[]}} +\def\pst@swtog[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.5,0) % Input + % Body + \pscircle[fillstyle=solid](-0.4,0){0.1} + \pscircle[fillstyle=solid](0.4,0){0.1} + \ifPst@contactclosed + \psline[linewidth=1.5\pslinewidth](-0.3,0)(0.4,0.1) + \else + \psline[linewidth=1.5\pslinewidth](-0.3,0)(0.3,0.4) + \fi + % Output + \psline(1,0)(0.5,0) + }}% +\ignorespaces +} + +% +% \contact (Contact) +% +\def\contact{\@ifnextchar[{\pst@contact}{\pst@contact[]}} +\def\pst@contact[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.2,0) % Input + % Body + \psline(-0.2,-0.35)(-0.2,0.35) + \psline(0.2,-0.35)(0.2,0.35) + \ifPst@contactclosed + \psline(-0.6,-0.35)(0.6,0.35) + \fi + % Output + \psline(1,0)(0.2,0) + % Name + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} + +% +% \motor (Motor Armature) +% +\def\armature{\@ifnextchar[{\pst@armature}{\pst@armature[]}} +\def\pst@armature[#1](#2){{% + \psset{#1}% + \rput(#2){% + % Input + \psline(-1,0)(-0.7,0) + %\psline[linewidth=8pt](-0.75,0)(-0.5,0) + % Body + \psline(-0.7,0.2)(0.7,0.2)(0.7,-0.2)(-0.7,-0.2)(-0.7,0.2) + \pscircle[fillstyle=solid](0,0){0.5} + % Output + \psline(1,0)(0.7,0) + %\psline[linewidth=8pt](0.75,0)(0.5,0) + % Name + \uput[u](0,0.3){\psk@plcaddress} + \uput[d](0,-0.35){\psk@plcsymbol} + }}% +\ignorespaces +} + +% +% Modified pst-circ Components +% +% +% \newcapacitor +% +\def\newcapacitor{\@ifnextchar[{\pst@newcapacitor}{\pst@newcapacitor[]}} +\def\pst@newcapacitor[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@newcapacitor}\ignorespaces} +% +\def\pst@draw@newcapacitor{{% + \psset{linewidth=1.5\pslinewidth}% + \psline[arrows=-](-0.1,-0.3)(-0.1,0.3) + \psline[arrows=-](0.1,-0.3)(0.1,0.3) + \pnode(-0.1,0){dipole@1} + \pnode(0.1,0){dipole@2} + \ifPst@variable% + \psline[arrows=->](-0.5,-0.55)(0.5,0.55)% + \fi + \ifPst@polarized% + \rput[u](0,0){$+$}% + \fi +}} + +% +% \newDiode +% +\def\newdiode{\@ifnextchar[{\pst@newdiode}{\pst@newdiode[]}} +\def\pst@newdiode[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@newdiode} + \ignorespaces} +% +\def\pst@draw@newdiode{{% + \ifx\psk@Dstyle\pst@Dstyle@triac + \pspolygon[linewidth=1.5\pslinewidth](-0.25,-0.4)(-0.25,0)(0.25,-0.2) + \pspolygon[linewidth=1.5\pslinewidth](0.25,0)(-0.25,0.2)(0.25,0.4) + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.25,-0.4)(-0.25,0.4) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,-0.4)(0.25,0.4) + \psline[arrows=-,linewidth=\pslinewidth](0.25,-0.2)(0.5,-0.3)(0.5,-0.6) + \else + \pspolygon[arrows=-,linewidth=1.5\pslinewidth,% + fillstyle=solid,fillcolor=black](-0.25,-0.3)(-0.25,0.3)(0.25,0) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0.3)(0.25,-0.3) + \ifx\psk@Dstyle\pst@Dstyle@thyristor + \psline[arrows=-,linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) + \fi + \ifx\psk@Dstyle\pst@Dstyle@GTO + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.1,-0.12)(-0.1,-0.35) + \psline[arrows=-,linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) + \fi + \fi + \pnode(-0.25,0){dipole@1} + \pnode(0.25,0){dipole@2} +}} + +% +% \newZener +% +\def\newZener{\@ifnextchar[{\pst@newZener}{\pst@newZener[]}} +\def\pst@newZener[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@newZener} + \ignorespaces} +% +\def\pst@draw@newZener{{% + \pspolygon[arrows=-,linewidth=1.5\pslinewidth,% + fillstyle=solid,fillcolor=black](-0.25,-0.3)(-0.25,0.3)(0.25,0) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.1,0.4)(0.25,0.3)(0.25,-0.3)(0.4,-0.4) + \pnode(-0.25,0){dipole@1} + \pnode(0.25,0){dipole@2} +}} + +% +% \newLED +% +\def\newLED{\@ifnextchar[{\pst@newLED}{\pst@newLED[]}} +\def\pst@newLED[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@newLED} + \pst@getcoor{#2}\pst@tempa + \pst@getcoor{#3}\pst@tempb + \ignorespaces} +% +\def\pst@draw@newLED{{% + \pspolygon[arrows=-,linewidth=1.5\pslinewidth,% + fillstyle=solid,fillcolor=black](-0.25,-0.3)(-0.25,0.3)(0.25,0) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0.3)(0.25,-0.3) + \multips(-0.15,0.35)(0.2,0){2}{\psline[arrows=->](0,0)(0.2,0.25)} + \pnode(-0.25,0){dipole@1} + \pnode(0.25,0){dipole@2} +}} + +% +% \vdc +% +\def\vdc{\@ifnextchar[{\pst@vdc}{\pst@vdc[]}} +\def\pst@vdc[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@vdc}\ignorespaces} +% +\def\pst@draw@vdc{{% + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.30,-0.5)(-0.30,0.5) + \psline[arrows=-,linewidth=3\pslinewidth](-0.10,-0.25)(-0.10,0.25) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.10,-0.5)(0.10,0.5) + \psline[arrows=-,linewidth=3\pslinewidth](0.30,-0.25)(0.30,0.25) + \pnode(-0.3,0){dipole@1} + \pnode(0.3,0){dipole@2} + \ifPst@variable% + \psline{->}(-0.75,-0.5)(0.75,0.5)% + \fi +}} + +% +% \vac +% +\def\vac{\@ifnextchar[{\pst@vac}{\pst@vac[]}} +\def\pst@vac[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@vac + \pst@getcoor{#2}\pst@tempa + \pst@getcoor{#3}\pst@tempb + \rput(! % + \pst@tempa \pst@number{\psyunit} div /YA ED + \pst@number{\psxunit} div /XA ED + \pst@tempb \pst@number{\psyunit} div /YB ED + \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} +% +\def\pst@draw@vac{{% + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} +}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \catcode`\@=\PstAtCode\relax % \endinput |