summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/examples/svg/HeathkitSVG.m4
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/circuit_macros/examples/svg/HeathkitSVG.m4')
-rw-r--r--graphics/circuit_macros/examples/svg/HeathkitSVG.m4343
1 files changed, 343 insertions, 0 deletions
diff --git a/graphics/circuit_macros/examples/svg/HeathkitSVG.m4 b/graphics/circuit_macros/examples/svg/HeathkitSVG.m4
new file mode 100644
index 0000000000..fc7ffd2158
--- /dev/null
+++ b/graphics/circuit_macros/examples/svg/HeathkitSVG.m4
@@ -0,0 +1,343 @@
+.PS
+cct_init(svg_font(Helvetica,7pt__))
+# HeathkitSVG.m4
+# Landscape
+maxpswid = 11
+maxpsht = 8.5
+
+# llabel and rlabel without math mode
+define(`Llabel',`llabel(
+ ifelse(`$1',,,`m4lstring(`$1',"`$1'")'),
+ ifelse(`$2',,,`m4lstring(`$2',"`$2'")'),
+ ifelse(`$3',,,`m4lstring(`$3',"`$3'")'))')
+define(`Rlabel',`rlabel(
+ ifelse(`$1',,,`m4lstring(`$1',"`$1'")'),
+ ifelse(`$2',,,`m4lstring(`$2',"`$2'")'),
+ ifelse(`$3',,,`m4lstring(`$3',"`$3'")'))')
+
+# Grid parameters
+ picwid = 8.5
+ picht = 6
+ g = 1/12
+
+# Element scaling
+ linewid = 8*g
+define(`dimen_',dimen_*4/5)
+# Default sizes
+ boxwid = 2*g
+ boxht = 2*g
+ arrowht = arrowht*2/3
+
+# Grid
+ linethick_(0.4)
+ for i=0 to picwid/g do { line color "lightgray" up picht from (i*g,0) }
+ for i=0 to picwid/g by 10 do { sprintf("%g",i) at (i*g,0) below }
+ for i=0 to picht/g do { line color "lightgray" right picwid from (0,i*g) }
+ for i=0 to picht/g by 10 do { sprintf("%g",i) at (0, i*g) rjust }
+ move left 2*g from (0,0)
+ linethick_(0.8)
+
+ spline outlined "white" shaded "white" \
+ from (0,picht+g) down g then down picht/5 then right picwid/5
+ for i=1 to 4 do { continue down picht/5 then right picwid/5 }
+ continue right 2*g then up 2*g
+ continue up picht-2*g then up g then left g
+
+# Place the bottom inductor on the grid
+ I1: inductor(down_ 13*g from (80,22)*g,,13,,g)
+ I2: inductor(down_ 10*g from I1.start+(0,21*g),,10,,g)
+ I3: inductor(down_ 10*g from I2.start+(0,12)*g,,10,M,g)
+ line from M4Core1.end to (M4Core1,I1.end)
+ line from M4Core2.end to (M4Core2,I1.end)
+ Scrn: 2 between M4Core1.start and M4Core2.start
+ line dashed from Scrn to (Scrn,I1.end)
+ ground
+ I4: inductor(up_ 5*g from (Scrn.x+M4Core1.x-I2.x,I2.start.y-2*g),,5,,g)
+ I5: inductor(up_ 5*g from (I4,I2.end+(0,g)),,5,,g)
+
+# Circuit board
+ Board: box dashed thick 2 wid 58*g ht 55*g with .se at I1.end+(-7,-2)*g
+ P: box invis wid 12*g ht 4*g with .s at Board.sw+(26*g,0) \
+ "POWER SUPPLY" "CIRCUIT BOARD"
+ line dashed thick 2 from P.sw to P.nw; line dashed thick 2 to P.ne
+ line dashed thick 2 to P.se
+
+define Pad { P`$1': box fill_(1) "$1" }
+# Board connections on the right
+ Pad(1) at (Board.e,I1.end)
+ line from P1.e to I1.end "RED" above
+ Pad(2) at (Board.e,I1.start)
+ line from P2.e to I1.start "RED" above
+ Pad(3) at (Board.e,I2.end)
+ GRN1: line left 4*g from I2.start "GRN" above ; ground
+ GRN2: line from P3.e to I2.end "GRN" above
+ spline <-> from GRN2.end+(-g,0) up 2.5*g right 0.5*g then up 5*g left g \
+ then up 2.5*g right 0.5*g
+ box invis fill_(1) wid 3*g ht g "6 VAC" at I2-(2*g,0)
+ Pad(4) at P3-(0,3)*g
+ line right_ 3*g from P4.e "BRN" above
+ arrow down_ 2*g ht arrowht*2/3
+ "TO DIAL" "LAMPS" at Here+(0,-g)
+ Pad(5) at (Board.e,I3.end)
+ line from P5.e to I3.end "BLU" above
+ Pad(7) at (Board.e,I3.start)
+ line from P7.e to I3.start "BLU" above
+ Pad(6) at 0.5 between P5 and P7
+ line from P6.e to I3 "BLU-YEL" above
+
+# Power wiring, plug, switch
+define(`socket',`[
+ Outer: box wid dimen_*2/3 ht dimen_/2*3/4
+ L: box wid dimen_/16 ht dimen_/4 at Outer-(dimen_/6,0)
+ R: box wid dimen_/16 ht dimen_/4 at Outer+(dimen_/6,0)
+ line from Outer.w to L.w
+ line from Outer.e to R.e
+ ] ')
+
+ BLK: line from I4.end to (int(I4.end.x/g+8)*g,I4.end.y) "BLK" below ; dot
+ b = lin_leng(BLK)
+ BLKYEL: line from I4.start right_ b "BLK-YEL" above ; dot
+ BLKGRN: line from I5.end right_ b "BLK-GRN" below ; dot
+ BLKRED: line from I5.start right_ b "BLK-RED" above ; dot
+ line right_ g; PL: dot
+ line from BLKYEL.end right g then to Here+(0,-g)
+ fuse(down_ 3*g,D)
+ {"3 A FUSE" "SLOW BLOW" at last line+(-5*g,0) }
+ line to (Here.x,int(Here.y/g)*g-g); dot
+ Sckt1: socket at Here+(5,0)*g
+ line from Sckt1.w to (PL,Sckt1); A: dot; "A" rjust
+ line from Sckt1.e right_ lin_leng(last line); B: dot; "B" ljust
+ Sckt2: socket at (Sckt1,P1+(0,6)*g)
+ line from Sckt2.w to (A,Sckt2); dot
+ line from Sckt2.e to (B,Sckt2); dot
+ Sckt3: socket at (Sckt1,P1+(0,2)*g)
+ line from Sckt3.w to (A,Sckt3); dot
+ line from Sckt3.e to (B,Sckt3); dot
+
+define(`plug',`[ w = dimen_*2/3; q = 0.25*w
+ F: line right_ w
+ arc cw from F.start to F.end with .c at F
+ T1: F+(-q,w/2+g/2)
+ T2: F+( q,w/2+g/2)
+ line from T1 to (T1,F)-(0,2*g)
+ line from T2 to (T2,F)-(0,2*g) ]')
+
+ PP: plug with .F at Sckt3+(0,-8)*g
+ {"120 VAC" ljust "50/60 Hz" ljust at PP.e }
+
+define(`pwrswitch',`[ right; circlerad = 1.75*g/2
+ C1: circle "1"
+ C4: circle "4"
+ C2: circle "2" with .n at C1.s+(0,-C1.diam/2)
+ C5: circle "5"
+ C3: circle "3" with .n at C2.s+(0,-C1.diam/2)
+ C6: circle "6"
+ hatchbox(wid g ht C2.n.y-C3.s.y,0.05) with .w at 0.5 between C5.e and C6.e
+ ]')
+
+ Psw: pwrswitch with .C4.e at Sckt1+(0,-4*g)
+ "POWER" at Psw.w+(-2*g,0) rjust
+ arrow up Psw.ht/2 at Psw.e+(1.5*g,0)
+ "ON" above; "OFF" at last arrow.start below
+ line from Psw.C1.w to (A,Psw.C1) then to A
+ line from Psw.C2.w to (A,Psw.C2); continue to (Here,PP.T1) then to PP.T1
+ line from PP.T2 to (B,PP.T2) then to (B,I4.end) then to I4.end
+ line from BLKGRN.end to (B,BLKGRN); dot
+
+# Bottom connections
+ Pad(25) at Board.se+(-3,0)*g
+ R516: resistor(down_ 6*g from P25.s)
+ {"R516" "22" at last line+(-2*g,0)} ; ground(,T)
+ dot(at P25.s+(0,-g)); line right_ 5*g
+ reversed(`source',down_ 4*g,B)
+ {"#49" ljust "HI" ljust "TEMP" ljust at last line+(2*g,0) }
+ line to (P25,Here); dot
+ t = linethick; linethick_(0.4)
+ arrow <- from P25.s+(0,-g/2) right_ 2*g up_ g/4; "BRN" ljust; linethick_(t)
+
+ Pad(24) at P25+(-4,0)*g
+ line from P24.s to (P24,R516.end); ground(,T)
+ Pad(23) at Board.sw+(12*g,0)
+ line from P23.s to (P23,R516.end); ground(,T)
+
+ Pad(22) at Board.sw+(0,3)*g
+ R514: resistor(right_ 8*g from P22.e); Llabel(,R514); Rlabel(,680 K)
+ dot; { ground }
+ line to (P23,Here) then to P23.n
+
+# Diode bridge
+ BE: dot(at (P24,I1))
+ d1h = lin_leng(I1)/2
+ diode(left_ d1h up_ d1h); Rlabel(,,D508)
+ BN: dot
+ diode(left_ d1h down_ d1h); Rlabel(D506)
+ BW: dot
+ diode(from BE left_ d1h down_ d1h); Llabel(,,D509)
+ BS: dot
+ diode(left_ d1h up_ d1h); Llabel(D507)
+ capacitor(down_ from BN to BS,C); Llabel(C507,,.22)
+ line from BE to P24.n
+ line from BN to P2.w
+ line from BS to P1.w
+ spline <-> from (BE.x+2*g,BS.y) \
+ up d1h/2 right g/2 then up d1h left g then up d1h/2 right g/2
+ box invis fill_(1) ht 2*g wid 2*g "57" "VAC" at last spline
+
+# Left board connections
+ Pad(21) at (Board.w,BW); line from P21.e to BW
+ Pad(19) at P21+(0,-3*g)
+ Pad(20) at P21+(0, 3*g)
+
+# Transistor with circles
+define(`hbi_tr',`[ linewid = linewid*4/4.16
+ Q: bi_tr(`$1',`$2',`$3',E)
+ E: circle rad m4_xyU at 5/4 between Q.A1 and Q.E "E"
+ B: circle rad m4_xyU at 5/4 between Q.A1 and Q.B "B"
+ C: circle rad m4_xyU at 5/4 between Q.A1 and Q.C "C"
+ ]')
+
+# Interior circuits
+ line from P6.w left 2*g; ground
+ line from P5.w left 4*g; dot
+ { C504: capacitor(down_ 4*g,C); Llabel(C504,,.22); ground(,T) }
+ D504: diode(left_ 5*g); Rlabel(,D504); dot
+ { C505: capacitor(down_ to (Here,C504.end),C+L)
+ Rlabel(C505,100,75 V); ground(,T) }
+ line right_ to (Here,P7); dot
+ { D503: reversed(`diode',to (D504.start,Here)); Llabel(,D503); line to P7.w }
+ d3 = lin_leng(I3)
+ spline <-> from C504.start+(g/2,0) \
+ up d3/4 right g/4 then up d3*2/4 left g/2 then up d3/4 right g/4
+ box invis fill_(1) ht g wid 4*g "100 VAC" at last spline+(-g,0)
+
+ down_
+ Q503: hbi_tr(,R,P) with .E at (C505,P3)
+ line from Q503.C.e to (P25,Q503.C) then to P25.n
+ line from Q503.B.s to (Q503.B.x,Q503.E.y-4*g)
+ R513: resistor(down_ 5*g)
+ {"R513" ljust "1500" ljust at last [].e}; ground(,T)
+ line from P19.e to (BW-(2*g,0),P19) then up Q503.E.y-P19.y+2*g
+ R511: resistor(right_ 5*g); Llabel(,R511); Rlabel(,470);
+ line to (Q503.E,Here) then to Q503.E.n
+ line from P20.e to (BW,P20) then up R513.end.y-P20.y
+ resistor(up_ lin_leng(R513))
+ {"R512" ljust "5600" ljust "1 W" ljust at last [].e}
+ line to (Here,Q503.B) then to Q503.B.w
+ "Q503" "S2091 HI TEMP" "CONTROL" at Q503.E+(1.5,4)*g
+ D505: reversed(`diode',right_ from Q503.E.e to (C504,Q503.E)); Llabel(,D505)
+ line to P3.w
+
+ line from P4.w left_ 2*g then up P3.y-P4.y; dot
+ line from D503.end to (R513,D503); dot
+ { Pad(8) at (Here,Board.n) }
+ { line to P8.s }
+ R505: resistor(down_ to (Here,P6)); Llabel(,"R505" ljust "12 K"); dot
+ { C503: capacitor(down_ to (Here,C505.end),C+L)
+ Rlabel(C503,100,70 V); ground(,T) }
+ right_
+ Q502: hbi_tr(,R) with .B at (R511.start,Here)
+ line from Q502.C.e to R505.start
+ line from Q502.B.e to R505.end
+ R504: resistor(down_ from Q502.B.s to (Q502.B,C505.end))
+ {"R504" ljust "51 K" ljust at last [].e}; ground(,T)
+ "Q502" "TA7311" "REGULATOR" "CONTROL" at Q502.C+(-1,3)*g
+
+ Pad(9) at (Q502.E,Board.n)
+ line from Q502.E.n to P9.s
+ Pad(10) at (Q502.B-(9,0)*g,Board.n)
+ R502: resistor(left_ from Q502.E.w to (P10,Q502.E))
+ Rlabel(,R502); Llabel(,150); dot
+
+ Pad(11) at (Board.w,Q502.E)
+ Pad(14) at P11+(0,2.5)*g
+ Pad(12) at P11+(0,-2.5)*g
+ Pad(13) at P12+(0,-2.5)*g
+ line right 2*g from P13.e then up P11.y-P13.y; dot
+ line from P12.e to (Here,P12); dot
+ Pad(15) at P13+(0,-3)*g
+
+ right_
+ Q501: hbi_tr(,R) with .B at P9.n+(0,2*g)
+ line from Q501.B.s to P9.n
+ line from Q501.C.e to (P8,Q501.C) then to P8.n
+ line from Q501.E.w to (P10,Q501.E) then to P10.n
+ "Q501" "2N3055" "REGULATOR" at Q501.n+(0,2)*g
+ line from P14.e to (P10,P14); dot
+
+ Pad(17) at (Board.w,R511)
+ Pad(16) at P17+(0,3*g)
+ Pad(18) at P17+(0,-3*g)
+ line right 2*g from P18.e then up P17.y-P18.y; dot
+
+ right_
+ Q504: hbi_tr(,R) with .C at (P10,P17)
+ line from P17.e to Q504.E.w
+ line from Q504.B.s to (Q504.B,R513.start)
+ R508:resistor(down_ to (Here,R513.end))
+ {"R508" ljust "680" ljust at last [].e}; ground(,T)
+ dot(at (P10,P15))
+ { line to P10.s }
+ { resistor(down_ 5*g); {"225" ljust "10 W" ljust "5 %" ljust at last [].e}
+ line to Q504.C.n }
+ R503:resistor(left_ 10*g); Rlabel(,R503); Llabel(,290 10 W 5%); dot
+ line to (Here,Q504.B)
+ resistor(right_ to Q504.B.w); Llabel(,R507); Rlabel(,100)
+ line from P15.e to R503.end
+ "Q504" "40409" "REGULATOR" at Q504.C+(3.5,3)*g
+ resistor(left_ from R502.end to (R503.end,P11))
+ Rlabel(,R501); Llabel(,390 5W 5%); line to P11.e
+
+ resistor(right_ from P16.e to (R514.end,P16)); Llabel(,R506); Rlabel(,82)
+ line down P16.y-P17.y; dot
+
+ dot(at (R514.end,P11))
+ C501: capacitor(down_ 6*g,C+)
+ Llabel(C501); {"100" ljust "30 V" ljust at last [].s +(0,-g)}
+ ground(,T)
+ dot(at (Here.x+4*g,P11.y))
+ ZD501: reversed(`diode',down_ lin_leng(C501),Z); Llabel(ZD501); ground(,T)
+
+ dot(at (R514.end,P15))
+ C502: capacitor(down_ 6*g,C+)
+ Llabel(C502); {"100" ljust "30 V" ljust at last [].s +(0,-g)}
+ ground(,T)
+ dot(at (Here.x+4*g,P15.y))
+ ZD502: reversed(`diode',down_ lin_leng(C502),Z); Llabel(ZD502); ground(,T)
+
+ line from (C502,P17) to (C502,R508.start+(0,g))
+ C506: capacitor(down_ to (Here,R508.end),C+)
+ Llabel(C506); {"100" ljust "30 V" ljust at last [].s +(0,-g)}
+ ground(,T)
+
+# Left-side boxes
+ boxwid = 10*g
+ boxht = 5*g
+ line left 3*g from P22.w "GRY" above
+ line left 3*g from P19.w "VIOL" above
+ box with .e at (Here,0.5 between P19 and P22) "TO SIGNAL" "METER CIRCUIT"
+
+ line left 8*g from P21.w "RED TO C508" above
+ line left 8*g from P20.w "VIOL" above
+
+ line left 3*g from P17.w "RED" above
+ line left 3*g from P18.w; {"WHT-" ljust "RED" ljust at Here+(0,g) }
+ box with .e at (Here,0.5 between P17 and P18) "12.7 V SOURCE" "TO MULTIPLEX"
+
+ line left 3*g from P16.w "WHT" above
+ box with .se at Here+(0,-g) "12 V SOURCE" "TO FM TUNER" "SOURCE SWITCH"
+
+ line left 3*g from P15.w "ORG" above
+ box ht 3*g with .e at Here "15 V SOURCE" "TO FM TUNER"
+
+ line left 3*g from P13.w "BLU" above
+ line left 3*g from P12.w; {"WHT-" ljust "RED" ljust at Here+(0,g) }
+ line left 3*g from P11.w "RED" above
+ box ht 6*g with .e at (Here,P12) "27 V SOURCE" "TO CONTROL" "PREAMP AND" \
+ "PWR AMPLIFIER"
+
+ line left 3*g from P14.w
+ {"WHT-" ljust "GRY-" ljust "GRN" ljust at Here+(0,1.5*g) }
+ box with .se at Here+(0,-g) "50 V SOURCE" "TO PHONO" "PREAMP"
+
+ command "</g>" # end font
+.PE