1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
.PS # Pic input begins with .PS
# cct_init Version 10.1: TikZ PGF m4 macro settings.
# gen_init Version 10.1: TikZ PGF m4 macro settings.
define rpoint__ {
rp_wid = last line.end.x-last line.start.x
rp_ht = last line.end.y-last line.start.y
rp_len = sqrt(abs((rp_wid)^2+(rp_ht)^2)); move to last line.start
rp_ang = atan2(rp_ht,rp_wid) }
rtod_ = 57.295779513082323; dtor_ = 0.017453292519943295
twopi_ = 6.2831853071795862; pi_ = (twopi_/2)
rp_ang = 0; right
linethick = 0.8
arrowwid = 0.05*scale; arrowht = 0.1*scale
# gen_init end
# cct_init end
# Read in macro definitions and set defaults
elen = 0.75 # Variables are allowed; default units are inches
Origin: Here # Position names are capitalized
line invis up elen
rpoint__
{ line to Here+(((rp_len/2-(0.25*linewid))*(cos(rp_ang))),((rp_len/2-(0.25*linewid))*(sin(rp_ang))))
move to Here+((((0.25*linewid))*(cos(rp_ang))),(((0.25*linewid))*(sin(rp_ang))))
{ Src_C: circle rad (0.25*linewid) at Here }
line from Here+((((0.25*linewid))*(cos(rp_ang))),(((0.25*linewid))*(sin(rp_ang)))) \
to Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
{[box invis wid (0.25*linewid)*2 ht (0.25*linewid)*2] at Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis ; {"$ -$" \
at last [].s rjust below }; {"$ v_s$" \
at last [].w rjust }; {"$ +$" \
at last [].n rjust above };
line invis right elen
rpoint__
if linewid/6/4*6*2 > rp_len then { line invis to Here+(((linewid/6/4*6*2)*(cos(rp_ang))),((linewid/6/4*6*2)*(sin(rp_ang))))
rpoint__
}
M4_xyO: last line.c
{ line from last line.start to M4_xyO+(((((linewid/6/4)*(-6)))*(cos(rp_ang))),((((linewid/6/4)*(-6)))*(sin(rp_ang))))\
then to M4_xyO+((((((linewid/6/4)*(-5)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(-5)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
then to M4_xyO+((((((linewid/6/4)*(-3)))*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(-3)))*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
then to M4_xyO+(((((-(linewid/6/4)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),((((-(linewid/6/4)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
then to M4_xyO+((((linewid/6/4)*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((linewid/6/4)*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
then to M4_xyO+((((((linewid/6/4)*(3)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(3)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
then to M4_xyO+((((((linewid/6/4)*(5)))*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(5)))*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
then to M4_xyO+(((((linewid/6/4)*(6)))*(cos(rp_ang))),((((linewid/6/4)*(6)))*(sin(rp_ang)))) \
then to last line.end
[box invis ht linewid/6/4*2*2 wid linewid/6/4*6*2] at 2nd last line.c
}
#
line invis from 2nd last line.start to 2nd last line.end ; {"$ R$" \
at last [].s below };
[ circle rad (0.04*linewid) fill 0 ] at Here
move to last []
{ # Save the current position and direction
line invis down to (Here,Origin)
rpoint__
{ line to Here+(((rp_len/2-linewid/3*0.3/2)*(cos(rp_ang))),((rp_len/2-linewid/3*0.3/2)*(sin(rp_ang))))
{line from Here+(((-linewid/3/2)*((-sin(rp_ang)))),((-linewid/3/2)*(cos(rp_ang)))) \
to Here+(((linewid/3/2)*((-sin(rp_ang)))),((linewid/3/2)*(cos(rp_ang))))}
move to Here+(((linewid/3*0.3)*(cos(rp_ang))),((linewid/3*0.3)*(sin(rp_ang))))
{line from Here+(((-linewid/3/2)*((-sin(rp_ang)))),((-linewid/3/2)*(cos(rp_ang)))) \
to Here+(((linewid/3/2)*((-sin(rp_ang)))),((linewid/3/2)*(cos(rp_ang))))}
line to Here+(((rp_len/2-linewid/3*0.3/2)*(cos(rp_ang))),((rp_len/2-linewid/3*0.3/2)*(sin(rp_ang))))
}
{[box invis wid linewid/3 ht linewid/3*0.3 ] at Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis #(Here,Origin) = (Here.x,Origin.y)
{"$ +$" \
at last [].n rjust above }; {"$ v$" \
at last [].l rjust }; {"$ -$" \
at last [].s rjust below }; ; {"$ C$" \
at last [].e ljust };
[ circle rad (0.04*linewid) fill 0 ] at Here
move to last []
} # Restore position and direction
line right elen*2/3
line invis down Here.y-Origin.y
rpoint__
{ line to Here+((((rp_len-4*linewid/16*2)/2)*(cos(rp_ang))),(((rp_len-4*linewid/16*2)/2)*(sin(rp_ang))))
{M4coil: [ S: Here;
{line to Here+(((-(linethick *(scale/72)/2))*((-sin(rp_ang)))),((-(linethick *(scale/72)/2))*(cos(rp_ang))))};
for m4i=1 to 4 do {
arc cw from Here to Here+(((linewid/16*2)*(cos(rp_ang))),((linewid/16*2)*(sin(rp_ang)))) with .c at Here+(((linewid/16)*(cos(rp_ang))),((linewid/16)*(sin(rp_ang))))
{line to Here+(((-(linethick *(scale/72)/2))*((-sin(rp_ang)))),((-(linethick *(scale/72)/2))*(cos(rp_ang))))} } ] with .S at Here }
line from Here+(((4*linewid/16*2)*(cos(rp_ang))),((4*linewid/16*2)*(sin(rp_ang)))) to Here+((((rp_len+4*linewid/16*2)/2)*(cos(rp_ang))),(((rp_len+4*linewid/16*2)/2)*(sin(rp_ang)))) }
line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis ; {"$ L$" \
at last [].l rjust }; ;
{ move to last line.start+(((((rp_len-last [].ht)/2*2/3+arrowht/3))*(cos(rp_ang))),((((rp_len-last [].ht)/2*2/3+arrowht/3))*(sin(rp_ang))))
arrow <- to Here+(((-arrowht)*(cos(rp_ang))),((-arrowht)*(sin(rp_ang)))) "$ i$" \
ljust}
line to Origin
.PE # Pic input ends
|