summaryrefslogtreecommitdiff
path: root/info/examples/lgc/4-9-10.ltx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/examples/lgc/4-9-10.ltx
Initial commit
Diffstat (limited to 'info/examples/lgc/4-9-10.ltx')
-rw-r--r--info/examples/lgc/4-9-10.ltx152
1 files changed, 152 insertions, 0 deletions
diff --git a/info/examples/lgc/4-9-10.ltx b/info/examples/lgc/4-9-10.ltx
new file mode 100644
index 0000000000..d6b93e2c3e
--- /dev/null
+++ b/info/examples/lgc/4-9-10.ltx
@@ -0,0 +1,152 @@
+\documentclass{ppex}
+\nonstopmode
+\usepackage {pstcol,pst-node,pst-coil}
+\pagestyle{empty}
+
+\begin{document}
+\ResetPreambleCommands
+\ReadyForTheFray
+\usepackage {pstcol,pst-node,pst-coil}
+\makeatletter
+\newdimen\CurX
+\newdimen\CurY \newdimen\Cir@temp
+\newcount\Cir@direction % 0 right, 1 left, 2 up, 3 down
+\Cir@direction0
+\def\SetX#1{\CurX=#1pt}
+\def\SetY#1{\CurY=#1pt}
+\def\ShowDirection{%
+ \typeout{Direction:
+ \ifcase\Cir@direction right\or left\or up\or down\fi,
+ now at (\strip@pt\CurX,\strip@pt\CurY)}%
+}
+\def\ShowXY{\message{(\strip@pt\CurX,\strip@pt\CurY)}}
+
+\def\Down#1{\advance\CurY by -#1\p@\Cir@direction3%\ShowDirection
+}
+\def\Up#1{\advance\CurY by #1\p@\Cir@direction2%\ShowDirection
+}
+\def\Left#1{\advance\CurX by -#1\p@\Cir@direction1%\ShowDirection
+}
+\def\Right#1{\advance\CurX by #1\p@\Cir@direction0%\ShowDirection
+}
+\def\MyBox#1#2{% width,height
+ \pssetlength{\Cir@temp}{#1}%
+ \rule{\Cir@temp}{\z@}%
+ \pssetlength{\Cir@temp}{#2}%
+ \rule{\z@}{\Cir@temp}%
+}
+\def\Point#1{%
+\rput(\strip@pt\CurX,\strip@pt\CurY){\pnode{#1}}%
+}
+\def\Switch#1{%
+\message{[Switch] #1}\ShowXY
+\relax
+\ifcase\Cir@direction % right
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode[b]{#1}{%
+ \psline(.5,.4)%
+ \psarc{<-}{.4}{-10}{70}%
+ \MyBox{.5}{.4}%
+ }}%
+ \advance\CurX by .5\p@
+\or % left
+ \advance\CurX by -.5\p@
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode[b]{#1}{%
+ \psline(0,0)(.5,.4)%
+ \psarc{<-}{.4}{-10}{70}%
+ \MyBox{.5}{.4}%
+ }}%
+\fi
+}
+
+\def\Battery#1{%
+\message{[Battery] #1}\ShowXY
+\relax
+\ifcase\Cir@direction % right
+ \rput[r](\strip@pt\CurX,\strip@pt\CurY){\rnode{#1}{%
+ \psline(0,-.4)(0,.4)%
+ \psline(.2,-.2)(.2,.2)%
+ \MyBox{.2}{.8}%
+ }}%
+ \advance\CurX by .2\p@
+\or % left
+ \advance\CurX by -.2\p@
+ \rput[r](\strip@pt\CurX,\strip@pt\CurY){\rnode{#1}{%
+ \psline(0,-.4)(0,.4)%
+ \psline(.2,-.2)(.2,.2)%
+ \MyBox{.2}{.8}%
+ }}%
+\or % up
+ \advance\CurY by .2\p@
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode{#1}{%
+ \psline(.1,.2)(.9,.2)%
+ \psline(0.3,0)(0.7,0)%
+ \MyBox{1}{.2}%
+ }}%
+\or % down
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode{#1}{%
+ \psline(-.4,0)(.4,0)%
+ \psline(-.2,-.2)(.2,-.2)%
+ \MyBox{1}{.2}%
+ }}%
+ \advance\CurY by -.2\p@
+\fi
+}
+
+\def\Resistor{\message{[Resistor]}\ShowXY
+ \@ifnextchar[{\@ResInd}{\@ResInd[1]{pszigzag}}}
+\def\Inductor{\message{[Inductor]}\ShowXY
+ \@ifnextchar[{\@ResInd}{\@ResInd[1]{pscoil}}}
+
+\def\@ResInd[#1]#2#3{%
+ \ifcase\Cir@direction % right
+ \rput[l](\strip@pt\CurX,\strip@pt\CurY){\rnode{#3}{%
+ \csname #2\endcsname[coilarm=.01,coilwidth=.3](0,.15)(#1,.15)%
+ \MyBox{#1}{.3}%
+ }}%
+ \advance\CurX by #1\p@
+ \or % left
+ \advance\CurX by -#1\p@
+ \rput[l](\strip@pt\CurX,\strip@pt\CurY){\rnode{#3}{%
+ \csname #2\endcsname[coilarm=.01,coilwidth=.3](0,.15)(#1,.15)%
+ \MyBox{#1}{.3}%
+ }}%
+ \or % up
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode{#3}{%
+ \csname #2\endcsname[coilarm=.01,coilwidth=.3](.15,0)(.15,#1)%
+ \MyBox{.3}{#1}%
+ }}%
+ \advance\CurY by #1\p@
+ \or % down
+ \advance\CurY by -#1\p@
+ \rput[b](\strip@pt\CurX,\strip@pt\CurY){\rnode{#3}{%
+ \csname #2\endcsname[coilarm=.01,coilwidth=.3](.15,0)(.15,#1)%
+ \MyBox{.3}{#1}%
+ }}%
+ \fi
+}
+\makeatother
+
+\begin{pspicture}(5,5)
+\SetX{1}
+\Up{1}
+\Battery{A}
+\Up{1}
+\Right{2}
+\Resistor{B}
+\Right{1}
+\Down{.3}
+\Inductor{C}
+\Down{.5}
+\Left{1}
+\Switch{D}
+\ncangle[angleA=90,angleB=180,armB=0]{A}{B}
+\ncangle[angleA=0,angleB=90,armB=0]{B}{C}
+\ncput[ref=l]{~~~$i=i_{\mbox{max}}(1-w^{-t/3})$}
+\ncangle[angleA=-90,armB=0,angleB=0]{C}{D}
+\ncangle[angleA=180,armB=0,angleB=-90]{D}{A}
+\nput{180}{A}{10V}
+\nput{90}{B}{R}
+\nput{0}{C}{3mH}
+\nput{270}{D}{S}
+\end{pspicture}
+\end{document}