summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/circuit_macros/examples/svg/TubediagsSVG.m4')
-rw-r--r--graphics/circuit_macros/examples/svg/TubediagsSVG.m4361
1 files changed, 361 insertions, 0 deletions
diff --git a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 b/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
new file mode 100644
index 0000000000..cfc87b0a6a
--- /dev/null
+++ b/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
@@ -0,0 +1,361 @@
+.PS
+# TubediagsSVG.m4
+
+cct_init(svg_font(sans-serif,11bp__,2bp__))
+include(../tubedefs.m4)
+
+# Some base diagrams
+[ Loopover_(`xv',`
+ V_`'xv: m4xpand(B_`'xv) ifelse(m4Lx,1,,
+ `with .Base at last [].Base+(dimen_*3,0)')
+ "xv" at V_`'xv.Base.s+(0,-dimen_/3) below',
+ 2AG,2D,4BB,9K) ]
+
+# Test circuit
+[
+Ld: dot
+ battery(up dimen_,2)
+ line right_ dimen_
+Pot1: potentiometer(down_ dimen_*2,5) with .Start at Here
+ line from Pot1.End left_ dimen_
+ battery(up_ to Ld,2)
+Tg: dot(at Pot1.T1)
+ source(right_ dimen_ from Pot1.T1,"svg_mu`'A")
+ line right_ dimen_/3
+Tr: triode with .G1.w at Here
+ line from Tr.K1.sw to (Tr.K1.sw,Pot1.End); dot
+ { line down dimen_/2
+B: dot }
+ source(to (Tg,Here),"V"); corner; line to Tg
+ line from Tr.P1.c to (Tr.P1.c,Pot1.Start)
+ source(right_ elen_,"mA"); llabel(-,,+); rlabel(,I`'svg_sub(b))
+Tp: dot
+ { source(down_ to (Here,B),"V")
+ llabel(+,,-); rlabel(,E`'svg_sub(b)); dot }
+ line right_ dimen_/2 then down_ (Here.y-B.y)/2 then right_ dimen_/2
+P2: potentiometer(down_ Tp.y-B.y,5,0.5,-dimen_/6) with .T1 at Here
+ dot(at P2.End)
+ line right_ dimen_ from P2.Start; corner
+ battery(down_ dimen_*3/4,2,R)
+T: Here
+ battery(up_ dimen_*3/4 from (Here,B),2)
+ line dashed up_ to T "B" ljust
+ line from (T,B) left T.x-Ld.x+dimen_/2 then up Ld.y-B.y then to Ld
+ ] with .nw at last [].sw + (0,-dimen_/2)
+
+define(`OutputXformer',`[ pushdef(`dimen_',dimen_*1.5)
+ S1: inductor(up_ dimen_*.4,L,3,M)
+ { line right_ dimen_/4 from last [].e; S2T: dot(,,1)
+ line from S1.end right_ S2T.x-S1.end.x; S21: dot(,,1)
+ line from S1.start right_ S2T.x-S1.end.x; S22: dot(,,1) }
+ move up_ dimen_/8
+ S2: inductor(up_ dimen_*.4,L,3,M)
+ { line right_ dimen_/4 from last [].e; S1T: dot(,,1)
+ line from S2.end right_ S2T.x-S2.end.x; S11: dot(,,1)
+ line from S2.start right_ S2T.x-S2.end.x; S12: dot(,,1) }
+ line down_ dimen_/8 from M4Core1.start
+ line down_ dimen_/8 from M4Core2.start
+ P: inductor(down_ dimen_*0.6 with .c at 0.5 between S1.end and S2.start \
+ -(dimen_*0.8,0),L,5,)
+ P1: P.start
+ P2: P.end
+ PT: last [].w
+ popdef(`dimen_')]')
+
+define(`PowerXformer',`[ pushdef(`dimen_',dimen_*1.5)
+ S3: inductor(up_ dimen_*.2,L,1,M)
+ ST3: last [].e
+ { line up_ dimen_/10 from M4Core1.end; line up_ dimen_/10 from M4Core2.end }
+ S2: inductor(up_ dimen_*.2 from S3.end+(0,dimen_/10),L,1,M)
+ { line up_ dimen_/10 from M4Core1.end; line up_ dimen_/10 from M4Core2.end }
+ S1: inductor(up_ dimen_*.4 from S2.end+(0,dimen_/10),L,3,M)
+ ST1: last [].e
+ P: inductor(down_ dimen_*0.6 with .c at 0.5 between S1.end and S3.start \
+ -(dimen_*0.8,0),L,5,)
+ popdef(`dimen_')]')
+
+# Circuit of 25 W amplifier (adapted from F. Langford-Smith, "Radiotron
+# Designer's Handbook," fourth edition, Harrison, NJ, Radio Corporation
+# of America, 1952)
+
+[ Toprail: Here
+#{"Toprail"}
+ resistor(down_ dimen_); rlabel(,100 k)
+V1P: dot
+#{"V1P" rjust}
+ line down_ dimen_*3/4
+V1: triode(,W) with .P1 at Here
+ {"6SL7" at V1.nw above }
+ resistor(down_ dimen_*3/2 from V1.K1.sw); llabel(,2.2 k)
+Rail1: dot
+#{"Rail1"}
+ ground
+ arrow left_ from V1.G1.w
+RP: Here
+ arrow <- right from (Here,Rail1) to Rail1
+ dot(at last arrow)
+ resistor(up_ 2nd last arrow.y-Here.y); llabel(,22 k); dot
+ { move left_ dimen_ }; "Pickup" at RP below
+ capacitor(right_ dimen_ from V1P,C,R); llabel(,0.05 svg_mu)
+ resistor(down_ dimen_); rlabel(,470 k)
+V1o: dot
+#{ "V1o" at V1o rjust }
+ resistor(down_ (Here.y-Rail1.y)/2); rlabel(,22 k)
+ dot
+ { capacitor(down_ Here.y-Rail1.y,C); rlabel(,0.01 svg_mu); dot }
+ line right_ dimen_/2
+R47: resistor(down_ to (Here,Rail1)); llabel(,4.7 M)
+ line to Rail1
+
+Pot1: potentiometer(down_ dimen_,,0.5,dimen_*2/3) \
+ with .T1 at (V1o+(elen_+dimen_*2/3,0),V1.G1)
+ { line from Pot1.Start left_ (Pot1.Start.x-V1o.x)/2
+ continue to (Here,V1o) then to V1o }
+ line from Pot1.End down_ dimen_/3
+Rail2: dot
+ ground
+V2: triode(,E) with .G1.w at Pot1.T1; "6SL7" at V2.ne above
+ resistor(from Rail2 right_ V2.K1.e.x-Rail2.x); rlabel(,22 k); dot
+ { capacitor(right_ dimen_,C,R); rlabel(,2 n)
+V2k: dot }
+#{ "V2k" at V2k above }
+ { line down_ to (Here,Rail1)
+ variable(`resistor(right_ dimen_); rlabel(,1 M);')
+ line up_ to V2k }
+ line to V2.K1.se
+
+ line from Toprail to (R47,Toprail); dot
+ { capacitor(down_ dimen_,C); rlabel(10 svg_mu); ground(,T) }
+ R51k: resistor(right_ dimen_); rlabel(,51 k); dot
+ { capacitor(down_ dimen_,C); llabel(10 svg_mu); ground(,T) }
+ dot(at (V2.P1.c,Here))
+ resistor(down_ dimen_); llabel(,100 k)
+V2p: dot
+ line to V2.P1
+
+V3: triode(,W) with .G1.w at (V2k+(dimen_,0),V2.G1)
+ " 6SL7" at V3.n below ljust
+ resistor(from V3.K1.sw to (V3.K1.sw,Rail1)); llabel(,1.5 k); dot; ground
+ line left_ dimen_/2
+ resistor(up_ to (Here,V3.G1)); llabel(,,2.2); rlabel(,,M); dot
+ { line to V3.G1.w }
+ line to (Here,V2p); capacitor(left_ to V2p,C,R); rlabel(,3 n)
+
+ dot(at (V3.P1.c,Toprail)); { line to R51k.end }
+ resistor(down_ dimen_); llabel(,51 k)
+V3p: dot
+#{"V3p"}
+ line down_ (Here.y-V3.n.y)/2
+V3q: dot; { line to V3.P1.c }
+ capacitor(left_ dimen_*2/3,C); rlabel(,.1 svg_mu)
+ line to (V2k,Here)
+ resistor(down_ to V2k); rlabel(0.1); llabel( M)
+#{"V2k" at V2k}
+
+V4: triode(,E) with .G1.w at (V3.G1.e+(dimen_*2,0),V3.G1)
+ "6SL7" at V4.n above rjust
+ resistor(from V4.K1.se to (V4.K1.se,Rail1)); rlabel(,,1.5 k)
+V4k: dot
+#{"V4k"}
+ line left dimen_*3/4
+V4k1: dot
+ { resistor(up_ V4.G1.y-Here.y); llabel(,,2.2 M)
+V4G: dot }
+ line from V3p right_ dimen_
+ variable(`resistor(down_ to (Here,V4.G1)); llabel(100 k)')
+V3o: dot
+ capacitor(right_ to V4G,C); llabel(,3 n)
+ line to V4.G1.w
+ resistor(left_ from V4k1 to (V3o,V4k)); rlabel(,51 k); dot
+ ground
+ capacitor(down_ from V3o to Here,C); llabel(,,500 p)
+
+ line from V4.P1.c to (V4.P1.c,V3p);
+ resistor(up_ dimen_); llabel(,51 k); dot
+ resistor(left_ to (V3p,Here)); llabel(,10 k)
+
+V5: triode(,N) with .G1.w at V4.G1.e+(2.25*dimen_,0)
+ "6SL7" at V5.n above rjust
+V6: triode(,SR) with .G1.w at V5.G1.w-(0,dimen_*2.5)
+ "6SL7" at (V6.w,V6.P1) below rjust
+
+V4p: dot(at (V4.P1.c,V3p))
+#{"V4p"}
+ line right_ dimen_*2/3; capacitor(right_ dimen_,C); llabel(,3 p)
+ line down_ to (Here,V5.G1)
+V5G: dot; { line to V5.G1.w }
+#{"V5G"}
+ resistor(down_ dimen_); rlabel(,2.2 M); dot;
+ resistor(right_ to (V5.K1.sw,Here)); llabel(,1 k)
+V5K: dot
+#{"V5K"}
+ line to V5.K1.sw
+ line from V4k down_ V4k.y-V6.G1.y then right_ V5G.x-V4k.x - dimen_
+ capacitor(right_ dimen_,C); rlabel(,3 p)
+V6G: dot; { line to V6.G1.w }
+#{"V6G"}
+ resistor(up_ dimen_); llabel(,2.2 M); dot
+ resistor(right_ to (V6.K1.nw,Here)); llabel(,1 k)
+V6K: dot
+#{"V6K"}
+ line to V6.K1.nw
+ resistor(left_ dimen_*2/3 from (V6G,V6K)); rlabel(,1 k) dot; ground
+ line to (Here,V5K); resistor(right_ dimen_*2/3); llabel(,1 k)
+
+PV: dot(at (V4.e.x+dimen_/5,Toprail.y))
+#{"PV"}
+ line from V6.P1.c down_ V4p.y-V4.P1.c.y
+Rail2: dot
+#{"Rail2" below}
+ line from PV to (PV,Rail2); corner
+ { resistor(right_ to Rail2); llabel(,220 k) }
+ move up_ dimen_*2/3; dot; line left_ dimen_/2
+V6sw: dot
+#{"V6sw"}
+ capacitor(down_ dimen_*2/3,C); rlabel(,10 svg_mu); ground(,T)
+
+V5P: dot(at (V6.P1.c,V4p)); { line to V5.P1.c }
+#{"V5P"}
+ resistor(to (Here,Toprail)); rlabel(,220 k)
+ line to (V4p,Here)
+
+ V7: V_6L6G at (V3,Rail2+(0,-2*dimen_)); "6L6G" at V7.n above ljust
+ V8: V_6L6G(,R) at V7+(0,-2*dimen_); "6L6G" at V8.s below ljust
+ line right dimen_/4 from V7.G2.e; resistor(right_ dimen_); llabel(,100);
+V9G: dot
+#{"V9G"}
+ line right dimen_/4 from V8.G2.e; resistor(right_ dimen_); llabel(,100);
+ V9: V_6L6G(,,G2) with .G2.w at V9G+(dimen_/2,0); "6L6G" at V9.n above rjust
+ V10: V_6L6G(,R,G2) at V9+(0,-2*dimen_); "6L6G" at V10.s below rjust
+ line from V9G to V9.G2.w
+ line from V10.G2.w left_ dimen_/2
+L910: line from V9G to (V9G,V10.G2); dot
+ line left_ dimen_/2 from V7.G1.w
+V7G: dot
+#{"V7G"}
+ resistor(down_ to 0.5 between Here and (Here,V10.G1)); rlabel(,220 k)
+V7T: dot
+#{"V7T"}
+ { line left_ dimen_/3; corner; ground }
+ line from V8.G1.w to (V7G,V8.G1); dot
+ resistor(up_ to V7T); llabel(,220 k)
+
+ line from V9.K1.sw to V10.K1.nw
+ line from V7.K1.sw to V8.K1.nw
+V7K: dot(at last line.c+(0,dimen_/8))
+#{"V7K"}
+ line left_ dimen_*2; dot
+ { capacitor(down_ dimen_/2,C); llabel(,50 svg_mu); ground(,T) }
+PP: potentiometer(left_ dimen_,,0.5,dimen_/2) with .Start at Here
+ rlabel(,50 10 W)
+ corner(,at PP.T1); line left_ dimen_ then up_ dimen_/4
+ round(,tubethick)
+ line thick tubethick up tubeplatelen/3 left tubeplatelen*2/9
+ round(,tubethick)
+ line thick tubethick down tubeplatelen/3 left tubeplatelen*2/9
+ line down_ dimen_/4 then left_ dimen_ then up_ dimen_/4
+ round(,tubethick)
+ line thick tubethick up tubeplatelen/3 left tubeplatelen*2/9
+ round(,tubethick)
+ line thick tubethick down tubeplatelen/3 left tubeplatelen*2/9
+ line down_ dimen_/4; ground
+ "1st two 6SL7" at Here+(dimen_*3/4,dimen_/2) above
+
+V9T: dot(at (L910,V7K)-(0,dimen_/4))
+#{"V9T"}
+
+ line right_ dimen_/2 from V9.G1.e; continue to (Here,V9.P1)+(0,dimen_*2/3)
+ resistor(left_ to (V7G,Here)); llabel(,100)
+V7nw: dot; { line to (Here,V7.G1) }
+ line right_ dimen_/2 from V10.G1.e; continue to (Here,V10.P1)-(0,dimen_*2/3)
+ resistor(left_ to (V7G,Here)); rlabel(,100)
+V8sw: dot; { line to (Here,V8.G1) }
+
+ line from V9.P1.c up_ dimen_
+V9P: dot
+ line from V10.P1.c down_ dimen_
+V10P: dot
+#{"V10P"}
+
+ line from V7.P1.c up_ V9P.y-V7.P1.y then to V9P
+ resistor(right_ to (V5.e+(dimen_/4,0),Here))
+ rlabel(,"100 k" "2 W")
+Rt1: Here
+ line to (Here,V6.e)+(0,dimen_/6); resistor(up_ dimen_)
+ llabel(,"100 k" rjust "2 W")
+ line to (Here,V5K) then to V5K
+ line from V8.P1.c down_ V8.P1.y-V10P.y then to V10P
+ resistor(right_ to (V6.e+(dimen_/2,0),Here))
+ llabel(,"100 k" "2 W")
+ resistor(up_ dimen_*3/2)
+ llabel(,"100 k" rjust "2 W")
+ line to (Here,V6K) then to V6K
+
+ line from V9T to (V9.e+(dimen_*3/4,0),V9T)
+Xout: OutputXformer with .PT at Here
+ line from Xout.P1 to (Xout.P1,V9P); dot
+ line from Xout.P2 to (Xout.P1,V10P); dot
+ line from Xout.PT left_ dimen_/4
+XT: dot
+
+ resistor(from V6sw left_ dimen_); rlabel(,10 k)
+XP: dot
+ { line down_ dimen_; continue to (XT,Here) then to XT }
+
+ capacitor(right_ dimen_*5/4 from V5P,C); llabel(,0.1 svg_mu)
+ corner; line to (Here,Rail2)-(0,dimen_/2)
+ continue to (V7nw,Here) then to V7nw
+ line from V8sw down_ dimen_*5/8
+ continue to (Rail2,Here) then to (Rail2,V9.n)
+ capacitor(up_ dimen_/2,C,R); rlabel(,0.1 svg_mu)
+ line to Rail2
+
+ line from XP left_ dimen_*2; dot
+ { dot(at Here+(dimen_,0))
+ { "290 V" at last [].n above }
+R100: resistor(down_ dimen_*2/3)
+ llabel(,"100 k" ljust "2 W"); dot; ground }
+ { capacitor(down_ dimen_*2/3,C); llabel(,40 svg_mu); dot }
+ reversed(`inductor',left_ dimen_,L,,M); rlabel(,4 H 300 mA)
+Filt: dot
+ { capacitor(down_ dimen_*2/3,C); llabel(,40 svg_mu)
+ line to R100.end }
+
+Pwr: [
+ PXform: PowerXformer
+ line left_ dimen_/4 from PXform.P.start; fuse(left_ dimen_/2,D)
+ AC1: arrow left_ dimen_/2
+ AC2: arrow from PXform.P.end to (AC1.end,PXform.P.end)
+ "AC" at 0.5 between AC1.end and AC2.end ljust
+ dot(at PXform.ST3); line right_ dimen_/4; dot
+ dot(at PXform.ST1); line right_ dimen_/4 then down_ dimen_*3/2; ground(,T)
+ line from PXform.S2.end right_ dimen_*2.5 then up_ dimen_/4
+ Rect2: V_5V4G with .F1.sw at Here; "5V4G" at Rect2.n+(0,dimen_/2)
+ Rect1: V_5V4G with .e at Rect2.w-(dimen_/2,0); "5V4G" at Rect1.n+(0,dimen_/2)
+ move to Rect1.F1.sw; line to (Here,PXform.S2.end); dot
+ move to Rect1.F1.se; line to (Here,PXform.S2.start); dot
+ move to Rect2.F1.se; line to (Here,PXform.S2.start)
+PO: dot
+ line from Rect1.P1 left_ dimen_/2; dot
+ { line to (Here,PXform.S1.start) then to PXform.S1.start }
+ line to (Here,Rect1.n)+(0,dimen_/8)
+ continue to (Rect1.P2+(dimen_/2,0),Here)
+ continue to (Here,Rect1.P2) then to Rect1.P2
+ line from Rect2.P1 left_ dimen_/2 then up_ Rect2.ht/2+dimen_/4; dot
+ { line to (Rect2.P2+(dimen_/2,0),Here)
+ continue to (Here,Rect2.P2) then to Rect2.P2 }
+ move to PXform.S1.end
+ line right_ dimen_/8 then up last [].y - Here.y then to last [].w
+ arrow from PXform.S3.start right_ dimen_
+ arrow from PXform.S3.end right_ dimen_
+ "5 V" at PXform.S2 + (dimen_*3/4,0)
+ "6.3 V" at 0.5 between last arrow.end and 2nd last arrow.end ljust
+ ] with .nw at (RP,Filt)+(0,dimen_/4)
+ line from Pwr.PXform.S2.start to Pwr.PO + (dimen_*3/4,0); corner
+ resistor(up_ to (Here,Filt)); rlabel(,"V" ljust "adj"); corner
+ line to Filt
+
+ ] with .nw at last [].sw+(0,-0.5)
+
+ command "</g>" # end font
+.PE