diff options
Diffstat (limited to 'graphics/circuit_macros/examples/svg/MCSVG.m4')
-rw-r--r-- | graphics/circuit_macros/examples/svg/MCSVG.m4 | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/graphics/circuit_macros/examples/svg/MCSVG.m4 b/graphics/circuit_macros/examples/svg/MCSVG.m4 index ef1d215809..cececf42b5 100644 --- a/graphics/circuit_macros/examples/svg/MCSVG.m4 +++ b/graphics/circuit_macros/examples/svg/MCSVG.m4 @@ -3,6 +3,7 @@ cct_init(svg_font(Times,11bp__)) textoffset = 3bp__ +MC:[ dv = dimen_*0.6 dh = dimen_*0.4 backup = dimen_/6 @@ -40,5 +41,57 @@ textoffset = 3bp__ llabel(sprintf("svg_it(v`'svg_sub(&``#''%g;,66%))",64+i)) if i==2 then { Output: dot } else { line down (2-i)*dv } }} +] + +Three: [ + dv = dimen_*0.6 + dh = dimen_ + define(`swfet',`mosfet(`$1',,dMEDSuBQPy)') + define(`swpair',`[ up_ + BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust } + L: line up_ 3*dimen_ from BS.D + TS: swfet(up_ dimen_) with .S at Here; { "`$2'" at TS.S+(0,2bp__) rjust } + T: TS.D + B: BS.S + C: L.c + ]') + + V1: gap(up_ 5*dimen_,1,A) + { "svg_it(V)svg_sub(1)" wid 12bp__ at last arrow.c rjust } + line right_ dh/2 + { C1: capacitor(down_ to (Here,V1.start)); llabel(svg_it(C)svg_sub(1)) } + for_(1,3,1,` + line right_ dh ifelse(m4x,1,,*5/4) + {SP1`'m4x: swpair(svg_it(S`'svg_sub(1`'eval(m4x+3))), + svg_it(S`'svg_sub(1`'m4x))) with .T at Here + dot(at last [].C + (0,(2-m4x)*dh)) + line right_ (3-m4x)*dh*5/4 + inductor(right_ dimen_,L) + {sprintf("svg_it(L`'svg_sub(1&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)} + line down_ (2-m4x)*dimen_*2/3 + pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_') + line down_ (2-m4x)*dimen_/3 + M: move right_ dimen_/8 + line up_ (2-m4x)*dimen_/3 + pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_') + line up_ (2-m4x)*dimen_*2/3 + inductor(right_ dimen_,L) + {sprintf("svg_it(L`'svg_sub(2&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)} + line right_ dimen_/8+(m4x-1)*dh*5/4 + dot + SP2`'m4x: swpair(svg_it(S`'svg_sub(2`'eval(m4x+3))), + svg_it(S`'svg_sub(2`'m4x))) with .C at Here+(0,(m4x-2)*dh) } + ') + "svg_it(T)svg_sub(r)" at M.c+(0,dimen_*2/3) + line from V1.start to SP13.B + line from SP21.B to SP23.B+(dh*3/4,0) + { C2: capacitor(up_ to (Here,V1.end)); llabel(,,svg_it(C`'svg_sub(2))) } + line right_ dh/2 + gap(up_ 5*dimen_,1,A) + { "svg_it(V`'svg_sub(2))" wid 12bp__ at last arrow.c ljust } + line to SP21.T chop dotrad_ chop 0 + +] with .nw at MC.sw+(0,-0.2) + command "</g>" # end font .PE |