Robin_PHD/old_thesis/nr/electComp.sty
Robin Clark b92ea644ac re-organised and saved old_thesis, now need a
thesis template from uni or somewhere
2012-01-19 17:55:23 +00:00

221 lines
9.8 KiB
TeX

% Electrical Circuits with pgf
% Author: bumesh AAATTT cedt [.] iisc . ernet . in
\NeedsTeXFormat{LaTeX2e}[1999/01/01]
\ProvidesPackage{electComp}[2008/03/12]
\RequirePackage{tikz}
\usepgflibrary{decorations.pathreplacing}
%:'e,'f move .
\pgfdeclaredecoration{recresistor}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance} % connector circle
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{0}} % lead
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathmoveto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{1.0\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{sqWave}{initial}
{
\state{initial}[width=0.5cm]
{
\pgfpathlineto{\pgfpoint{0.25cm}{0cm}}
\pgfpathlineto{\pgfpoint{0.25cm}{0.25cm}}
\pgfpathlineto{\pgfpoint{0.5cm}{0.25cm}}
\pgfpathlineto{\pgfpoint{0.5cm}{0}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{switch}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance} % lead of device
\pgfpathlineto{\pgfpoint{0.25\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{0.25\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.75\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.75\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{cell}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{-0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{capacitor}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{-1\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{diode}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{-1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0.75\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-0.75\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{ground}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{inductor}{initial}
{
\state{initial}[switch if less than=%
1.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
width=+\pgfdecorationsegmentlength]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
\pgfpathcurveto
{\pgfpoint@oncoil{2 }{-0.555}{7}}
{\pgfpoint@oncoil{1.555}{-1 }{8}}
{\pgfpoint@oncoil{1 }{-1 }{9}}
\pgfpathcurveto
{\pgfpoint@oncoil{0.445}{-1 }{10}}
{\pgfpoint@oncoil{0 }{-0.555}{11}}
{\pgfpoint@oncoil{0 }{ 0 }{12}}
}
\state{last}[width=.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude,next state=final]
{
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\def\pgfpoint@oncoil#1#2#3{%
\pgf@x=#1\pgfdecorationsegmentamplitude%
\pgf@x=\pgfdecorationsegmentaspect\pgf@x%
\pgf@y=#2\pgfdecorationsegmentamplitude%
\pgf@xa=0.083333333333\pgfdecorationsegmentlength%
\advance\pgf@x by#3\pgf@xa%
}