diff options
Diffstat (limited to 'graphics/circuit_macros/examples/svg/HeathkitSVG.m4')
-rw-r--r-- | graphics/circuit_macros/examples/svg/HeathkitSVG.m4 | 343 |
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 |