diff options
author | Norbert Preining <norbert@preining.info> | 2022-12-01 03:01:22 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-12-01 03:01:22 +0000 |
commit | 77362f5f4b083c21c2044b0c54d228da42804c72 (patch) | |
tree | 232ef82c01eeddcc36e279df6e98c1ac6299ea8d /graphics/circuit_macros/examples/svg | |
parent | cb9bbbf5f4fdb303e5da460ebf17b50811d06a6a (diff) |
CTAN sync 202212010301
Diffstat (limited to 'graphics/circuit_macros/examples/svg')
135 files changed, 0 insertions, 14201 deletions
diff --git a/graphics/circuit_macros/examples/svg/ABlogixSVG.m4 b/graphics/circuit_macros/examples/svg/ABlogixSVG.m4 deleted file mode 100644 index d457250cc3..0000000000 --- a/graphics/circuit_macros/examples/svg/ABlogixSVG.m4 +++ /dev/null @@ -1,53 +0,0 @@ -.PS -# `ABlogixSVG.m4' - log_init(svg_font(sans-serif,10.5bp__)) - linewid = 0.4 - -# A more complex expression - F: Autologix(And(Or(x3,x1,~x0),Nor(Or(x3,Not(x2),~x1,x0), - And(x4,Or(x2,x1,~x0),Xor(x2,~x1))))) - - Loopover_(`v_', `"svg_it(v_)" wid 11bp__ at F.In`'v_ above', x0,x1,x2,x3,x4) - "svg_it(Out)" ljust at F.Out - "svg_tt(`Autologix(And(Or(x3,x1,~x0),')" \ - wid 201bp__ with .w at F.sw+(0,-0.25) - "svg_tt(`Nor(Or(x3,Not(x2),~x1,x0),And(x4,Or(x2,x1,~x0),')" \ - wid 343bp__ with .w at last "".w+(65bp__,-16bp__) - "svg_tt(`Xor(x2,~x1)))))')" \ - wid 105bp__ with .w at last "".w+(0,-16bp__) -# Inputs on the left with vert offset in L_units -define(`Doff',LV;offset=25) - G: Autologix(And(Or(x3,x1,~x0),Nor(Or(x3,Not(x2),~x1,x0), - And(x4,Or(x2,x1,~x0),Xor(x2,~x1)))), - Doff*L_unit) \ - with .sw at F.Out+(0.2,-0.7) - - Loopover_(`v_', `"svg_it(v_)" wid 11pt__ at G.In`'v_ rjust ', x0,x1,x2,x3,x4) - "svg_it(Out)" wid 22bp__ ljust at G.Out - "svg_tt(`...,'Doff*L`'_unit))" at G.s+(0,-10pt__) - -# A more complex expression -define(`Eoff',R) - E: Autologix(And(Or(x3,x1,~x0),Nor(Or(x3,Not(x2),~x1,x0), - And(x4,Or(x2,x1,~x0),Xor(x2,~x1)))), - Eoff) \ - with .nw at F.sw+(0,-1.5) - - Loopover_(`v_', `"svg_it(v_)" wid 11bp__ at E.In`'v_ above ', x0,x1,x2,x3,x4) - "svg_it(Out)" ljust at E.Out - "svg_tt(...`,'Eoff))" at E.s+(0,-10pt__) - -# Inputs on the left with vert offset in L_units -define(`Foff',LRV;offset=17) - D: Autologix(And(Or(x3,x1,~x0),Nor(Or(x3,Not(x2),~x1,x0), - And(x4,Or(x2,x1,~x0),Xor(x2,~x1)))), - Foff*L_unit) \ - with .sw at E.Out1+(0.2,-0.5) - - Loopover_(`v_', `"svg_it(v_)" wid 11pt__ at D.In`'v_ rjust ', x0,x1,x2,x3,x4) - "svg_it(Out)" ljust at D.Out - "svg_tt(...`,'Foff*L`'_unit))" at D.s+(0,-10pt__) - - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/AdderSVG.m4 b/graphics/circuit_macros/examples/svg/AdderSVG.m4 deleted file mode 100644 index 6c0de6b5ed..0000000000 --- a/graphics/circuit_macros/examples/svg/AdderSVG.m4 +++ /dev/null @@ -1,76 +0,0 @@ -.PS -# AdderSVG.m4 -log_init(svg_font(sans-serif,11bp__)) - - del = linewid/4 -[ # full adder using gates - A: dot; { move left 15bp__}; {"A" rjust}; line right - Xor1: XOR_gate with .In1 at Here - dy = Xor1.In1.y-Xor1.In2.y - B: dot(at (A,Xor1.In2)); {"B" rjust}; line to Xor1.In2 - line from Xor1.Out right 2*del+dy - Xor2: XOR_gate with .In1 at Here - - Co: Autologix(Or(And(X1,X2),And(A,B)),N) with .nw at Xor2.sw+(-del,-del/2) - line from Co.In1 to (Co.In1,Xor2.In2) then to Xor2.In2 - dot(at (Xor1.Out+(del,0))); line to (Here,Co.In2) then to Co.In2 - dot(at (Xor1.In1-(del,0))); line to (Here,Co.In3) then to Co.In3 - dot(at (Xor1.In2-(del+dy,0))); line to (Here,Co.In4) then to Co.In4 - line right del from Co.Out1; dot; {"Co" ljust } - dot(at (Here,Xor2.Out)); {"S" ljust}; line to Xor2.Out - Ci: dot(at (B,(0.5 between Xor2.s and Co.n))); line to (Co.In1,Here); dot - "Ci" rjust at Ci - ] - -[ # truth table - griddim = linewid*0.4 - define(`row',`T: (0,-(`$1')*griddim*0.8) - Loopover_(`v',`"v" at T; T: T+(griddim,0)', shift($@))') - - [row(0,A,B,Ci,Co,S)] - line thick 2 color "gray" right 4.5*griddim \ - with .c at last [].c+(0,-griddim/2) - - [row(1,0,0,0,0,0) - row(2,0,0,1,0,1) - row(3,0,1,0,0,1) - row(4,0,1,1,1,0) - row(5,1,0,0,0,1) - row(6,0,1,1,0,0) - row(7,1,1,0,1,0) - row(8,1,1,1,1,1) ] with .n at last [].c+(0,-griddim) - - ] with .nw at 1st [].ne+(linewid,0) - -[ # cascade of n-bit adders -define(`smarrow',`arrow arrowht*4/5 wid arrowwid*5/4') -define(`nbitadder', -`FlipFlopX(wid 2*linewid fill_(0.9),n-bit adder, - :, I:;I:;;;I:;I:, I:, O:;;;O: ) `$3' - `"... "' at last [].Chip.n + (0,arrowht) - `"... "' at last [].Chip.s - (0,arrowht) - ifelse(`$1',,, - `"x`'svg_sub($1)" at last [].N6.end above - "s`'svg_sub($1)" at last [].S4.end below - "y`'svg_sub($1)" at last [].N5.end above') - ifelse(`$2',,, - `"x`'svg_sub($2)" ljust at 0.5 between last [].N2.end and last [].N1.end above - "y`'svg_sub($2)" rjust at 0.5 between last [].N2.end and last [].N1.end above - "s`'svg_sub($2)" at last [].S1.end below ') - ') - -P: nbitadder(0,n-1) - {"c`'svg_sub(o)" wid 0.15 at P.E1.end ljust } - {"c`'svg_sub(n)" at P.W1.end above } -Q: nbitadder(n,2n-1, with .E1.end at P.W1.end) - smarrow left arrowht from Q.W1.end - { "... " at Here+(-10pt__,0) } -R: nbitadder(,kn-1, with .E1.end at Here-(20bp__,0)) - smarrow left arrowht from R.W1.end - {"c`'svg_sub(kn)" wid 0.22 rjust } - - - ] with .nw at 1st [].sw+(0,-0.5) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/AlogixSVG.m4 b/graphics/circuit_macros/examples/svg/AlogixSVG.m4 deleted file mode 100644 index 0336273903..0000000000 --- a/graphics/circuit_macros/examples/svg/AlogixSVG.m4 +++ /dev/null @@ -1,116 +0,0 @@ -.PS -# `AlogixSVG.m4' -log_init(svg_font(sans-serif,10.5bp__)) - -# A modest expression in default form -A: Autologix( - Nand(And(Or(A,C),Or(B,~C),Or(~A,B,C)),Ck); - Nand(~A,B)@with .n at last [].s+(0,-2bp__)) - "svg_it(Out1)" at A.Out1 ljust - "svg_it(Out2)" at A.Out2 ljust - Loopover_(`v_', `"svg_it(v_)" at A.In`'v_ above ', A,B,C,Ck) - move left 0.2 from A.w - "svg_tt(`Autologix(')" wid 68bp__ with .w at A.sw+(0,-0.15) - "svg_tt(`Nand(And(Or(A,C),Or(B,~C),Or(~A,B,C)),Ck);')" \ - wid 305bp__ with .w at last "".w+(0.2,-0.18) - "svg_tt(`Nand(~A,B)@with .n at last [].s+(0,-2bp__))')"\ - wid 313bp__ with .w at last "".w+(0,-0.18) - -# Draw a tree of gates only. The ~ has been -# replaced by NOT gates. -B: Autologix(Or(And(B,Not(C)),And(Not(A),B,C)),N) \ - with .sw at A.e+(1.3,-0.5) - "svg_it(Out)" at B.Out above ljust - "svg_tt(`Autologix(Or(And(B,Not(C)),')" wid 165bp__ \ - with .w at B.sw+(-0.6,-0.15) - "svg_tt(`And(Not(A),B,C)),N)')" wid 122bp__ with .w at last "".w+(1.1,-0.18) - for_(1,4,1,`"svg_it(B.In`'m4x)" at B.In`'m4x rjust') - "svg_it(B.In5)" at B.In5+(0,-1.5bp__) rjust - -# Here is how to include an arbitrary circuit -# that is not one of the standard gates. -# First, define the circuit with a name ending -# in _gate. Make sure its inputs are on the left -# and named In1, In2, ... and the output Out -# is on the right. -define(`SR_gate',`[ - S: NOR_gate - R: NOR_gate at S+(0,-L_unit*(AND_ht+4)) - w = (S.Out.x-R.In1.x)/3 - v = 2*L_unit - line right_ dimen_/2 from S.Out - Out: Here - TR: R.In1-(v,0) - line from S.Out+(v,0) down w*3/2 then left S.Out.x-TR.x+v down w \ - then to TR then to R.In1 - TS: S.In2-(v,0); - line from R.Out right v then up w*3/2 then left R.Out.x-TS.x+v up w \ - then to TS then to S.In2 - In1: S.In1 - In2: R.In2 ]') -# Now define the function by which the circuit -# will be invoked: -define(`SRff',`_AutoGate(SR,$@)') - -# You are done. Here is an example: -G: [ - F: Autologix(SRff(And(x,y),Nand(x,y)),LRV) - - "svg_it(x)" at F.Inx rjust - "svg_it(y)" at F.Iny rjust - "svg_it(Out)" at F.Out ljust - ] with .sw at A.n+(0.5,-0.25) - "svg_tt(`Autologix(SRff(And(x,y),Nand(x,y)),LRV)')" wid 285pt__ \ - with .w at last [].sw+(0,-10pt__) - -undefine(`extras') -define(`extras') - -ifdef(`extras',` - Q1: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D))) \ - with .nw at A.sw+(0,-61bp__) - Loopover_(`x',`"x" wid 7bp__ at last [].In`'x above',A,B,C,D) - - "svg_tt(`Q1: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),options)')" \ - wid 363bp__ with .nw at Q1.sw+(0,-10bp__) - "svg_tt(`Loopover_(`x',`\"svg_it(x)\" at last [].In`'x above',A,B,C,D)')" \ - wid 431bp__ with .nw at last "".sw+(0,-5bp__) - - Q2: Autologix(Nor(Nor(A,And(B,~C)),Nand(Not(B),D)),V) \ - with .nw at last "".sw+(0,-16bp__) - Loopover_(`x',`"x" at last [].In`'x above',A,B,C,D) - "V" at last [].se above rjust - - Q3: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),R) \ - with .nw at last [].sw+(0,-0.2) - Loopover_(`x',`"x" at last [].In`'x above',A,B,C,D) - "R" at last [].se above rjust - - Q4: Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),RV) \ - with .nw at last [].sw+(0,-0.2) - Loopover_(`x',`"x" at last [].In`'x above',A,B,C,D) - "RV" at last [].se above rjust - - Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),LRV) \ - with .Out at Q4.Out+(3.5,0) - Loopover_(`x',`"x" at last [].In`'x rjust',A,B,C,D) - "LRV" at last [].se above rjust - - Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),LR;offset=-L_unit*1.5) \ - with .Out at Q3.Out+(3.5,0) - Loopover_(`x',`"x" at last [].In`'x rjust',A,B,C,D) - "LR" at last [].se above rjust - - Autologix(Nor(Nor(A,And(B,~C)),Nand(Not(B),D)),LV;offset=L_unit*2) \ - with .Out at Q2.Out+(3.5,0) - Loopover_(`x',`"x" at last [].In`'x rjust',A,B,C,D) - "LV" at last [].se above rjust - - Autologix(Nor(Nor(A,And(B,C)),Nand(Not(B),D)),L) \ - with .Out at Q1.Out+(3.5,0) - Loopover_(`x',`"x" at last [].In`'x rjust',A,B,C,D) - "L" at last [].se above rjust -') - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/AmpTableSVG.m4 b/graphics/circuit_macros/examples/svg/AmpTableSVG.m4 deleted file mode 100644 index 2850ff5ad7..0000000000 --- a/graphics/circuit_macros/examples/svg/AmpTableSVG.m4 +++ /dev/null @@ -1,25 +0,0 @@ -.PS -# `Amptable.m4' -cct_init(svg_font(sans-serif,11bp__)) - - textwid = 0.7 - movewid = 2pt__ -{ - {amp ; move ; "`amp'" ljust} - move down 0.4; right_ - {amp(,0.3) ; move ; "`amp'(,0.3)" ljust} - } - move right_ 2.0 -{ {delay ; move ; "`delay'" ljust} - move down 0.4; right_ - {delay(,0.2) ; move ; "`delay'(,0.2)" ljust} - } - - move right_ 2.0 -{ {integrator ; move ; "`integrator'" ljust} - move down 0.5; right_ - {integrator(,0.3) ; move ; "`integrator'(,0.3)" wid 1.2 at Here ljust} - } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/AntennasSVG.m4 b/graphics/circuit_macros/examples/svg/AntennasSVG.m4 deleted file mode 100644 index ed098b3910..0000000000 --- a/graphics/circuit_macros/examples/svg/AntennasSVG.m4 +++ /dev/null @@ -1,40 +0,0 @@ -.PS -# `Antennas.m4' -cct_init(svg_font(sans-serif,11bp__)) - textoffset = 3bp__ - - define(`elen_',elen_*0.9) - B: Here - A: antenna - "T" below at A.T - "`antenna'" wid 0.6 at A.n above - A: antenna(at A.T+(elen_,0),T) - "T" below at A.T - "`(,T)'" at A.n above - A: antenna(at A.T+(elen_,0),,L) - "T1" below rjust at A.T1 - "T2" below ljust at A.T2 - "`(,,L)'" at A.n above - A: antenna(at A.T+(elen_,0),T,L) - "T1" below rjust at A.T1 - "T2" below ljust at A.T2 - "`(,T,L)'" at A.n above - A: antenna(at A.T+(elen_,0),,T) - "T" below at A.T - "`(,,T)'" at A.n above - A: antenna(at A.T+(elen_,0),,S) - "T1" below rjust at A.T1 - "T2" below ljust at A.T2 - "`(,,S)'" at A.n above - A: antenna(at A.T+(elen_,0),,D) - "T1" below rjust at A.T1 - "T2" below ljust at A.T2 - "`(,,D)'" at A.n above - A: antenna(at A.T+(elen_,0),,P) - "T" below at A.T - "`(,,P)'" at A.n above - A: antenna(at A.T+(elen_,0),,F) - "T" below at A.T - "`(,,F)'" at A.n above - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ArrowFnSVG.m4 b/graphics/circuit_macros/examples/svg/ArrowFnSVG.m4 deleted file mode 100644 index b72914b728..0000000000 --- a/graphics/circuit_macros/examples/svg/ArrowFnSVG.m4 +++ /dev/null @@ -1,59 +0,0 @@ -.PS -# ArrowFnSVG.m4 -# https://tex.stackexchange.com/questions/581089/arrow-function-diagrams -gen_init - brad = 0.04 - bht = 0.4 - bwid = 0.25 -define(`rbox',`box rad brad outlined "Orange"') - -B1: [ - svg_font(Times,14bp__) - linethick = 1.2 - arrowwid = 0.08 - rbox wid 5*boxwid ht 3/2*boxwid - line from last box.w-(bht/4,0) "svg_it(X)" above ljust -T: Here - arrow up bwid right bwid then right bwid -F: rbox ht bht "svg_it(f)" - {"svg_it(Y)" above ljust } - arrow down bwid right bwid from T then right boxwid + bwid*3/2 -G: rbox ht bht "svg_it(g)" - {"svg_it(Z)" above ljust } -S: circle diam bht "svg_it(+)" at (G.e.x+boxwid,(F.y+G.y)/2) - d = F.y-S.nw.y - arrow from F.e to S.nw+(-d,d) then to S.nw - arrow from G.e to S.sw+(-d,-d) then to S.sw - arrow right from S.e - command "</g>" # end font - ] -[ - svg_font(Times,11bp__) - bht = bht/2 - sbwid = boxwid*3/4 - bbwid = sbwid*5/4 - dh = bht/2 -B1: rbox wid bbwid ht bbwid -B2: rbox wid sbwid*3/2 ht bbwid at B1+(3/2*bbwid,0) -B3: rbox wid bbwid ht bbwid at B2+(3/2*bbwid,0) -B4: rbox wid sbwid*3/2 ht bbwid at B3+(3/2*bbwid,0) -B5: rbox wid bbwid ht bbwid at B4+(3/2*bbwid,0) - F: rbox ht bht wid sbwid at B2.n-(0,bht*3/4) "svg_it(f)" -BR: B2.s+(0,B2.n.y-F.y) - G: rbox ht bht wid sbwid at (B4,F) "svg_it(g)" - S: circle diam bht*3/2 at B5+(bht/2,0) "svg_it(+)" - arrow right from S.e - T: B1.w+(dh,0) -B: rbox ht bbwid*5/4 wid boxwid*7.25 with .w at T-(sbwid*3/4,0) - { line from T left sbwid "svg_it(x)" above ljust } - arrow from T to (B1.e-(dh,0),F) then to F.w - arrow from F.e to (B3.w+(dh,0),F) then to (B3.e-(dh,0),BR) - continue to (B5.w+(dh,0),Here) then to S.sw - line thick 5 outlined "white" from B3.sw to B3.ne chop brad - arrow from T to (B1.e-(dh,0),BR) then to (B3.w+(dh,0),BR) \ - then to (B3.e-(dh,0),G) then to G.w - arrow from G.e to (B5.w+(dh,0),G) then to S.nw - command "</g>" # end font - ] with .nw at B1.sw+(0,-0.2) - -.PE diff --git a/graphics/circuit_macros/examples/svg/AudioSVG.m4 b/graphics/circuit_macros/examples/svg/AudioSVG.m4 deleted file mode 100644 index 709fdf4c25..0000000000 --- a/graphics/circuit_macros/examples/svg/AudioSVG.m4 +++ /dev/null @@ -1,103 +0,0 @@ -.PS -# `AudioSVG.m4' -cct_init(svg_font(sans-serif,11bp__,2bp__)) - -define(`In123',` -thinlines_ - arrow <- from `$1'.In1 up 0.05 left 0.15 - "svg_it(In1)" wid 0.25 rjust above - arrow <- left 0.15 from `$1'.In2 - "svg_it(In2)" rjust - arrow <- from `$1'.In3 down 0.05 left 0.15 - "svg_it(In3)" rjust below -thicklines_ ') - -L:[ - S: speaker - `"speaker"' at S.s+(0,-0.2) below - In123(S) - thinlines_ - arrow <- from S.In4 left 0.05 up 0.15 - "svg_it(In4)" above rjust - arrow <- from S.In5 right 0.05 up 0.15 - "svg_it(In5)" above ljust - arrow <- from S.In6 left 0.05 down 0.15 - "svg_it(In6)" below rjust - arrow <- from S.In7 right 0.05 down 0.15 - "svg_it(In7)" below ljust - spline <- from S.Box.e+(0,0.05) right 0.27 up 0.10 \ - then right 0.1 up 0.2 - "svg_it(Box)" above - thicklines_ - ] -[ - H: speaker(,,H) - `"...(,,H)"' at H.s+(0,-0.30) below - ] with .sw at last [].se -[ - B: bell - `"bell"' at B.s+(0,-0.2) below - In123(B) - thinlines_ - arrow <- from B.Box.n+(-0.1,0) up 0.15 left 0.1 ; "svg_it(Box)" above - arrow <- from B.Circle.n up 0.15 ; "svg_it(Circle)" above - thicklines_ - ] with .sw at last [].se+(0.35,0) -[ - Z: buzzer - `"buzzer"' at Z.s+(0,-0.2) below - In123(Z) - thinlines_ - arrow <- from Z.Box.n up 0.15 ; "svg_it(Box)" above - thicklines_ - ] with .sw at last [].se+(0.4,0) -R:[ - Z: buzzer(,,C) - `"buzzer(,,C)"' at Z.s+(0,-0.2) below - In123(Z) - thinlines_ - spline <- from 0.8<Z.Face.s,Z.Face.n> right 2*arrowht up 0.5*arrowht \ - then up 0.15 right 0.05 - "svg_it(Face)" wid 0.5 at Here above - thicklines_ - ] with .sw at last [].se+(0.4,0) -[ - M: microphone - `"microphone"' wid 60bp__ at M.s+(0,-0.2) below - In123(M) - thinlines_ - arrow <- from M.Circle.n up 0.15 ; "svg_it(Circle)" above - thicklines_ - ] with .sw at last [].se+(0.4,0) -[ - M: microphone(A) - "`microphone(A)'" at M.s+(0,-0.2) #below - thinlines_ - arrow <- from M.Head.e+(0,0.05) right 0.2; "svg_it(Head)" wid 40bp__ ljust - spline 0.5 <- from M.Head.b down 0.05 right 0.1 then right 0.1 - "svg_it(Head.b)" ljust - arrow <- from M.Stand.s right 0.2; "svg_it(Stand.s)" ljust - thicklines_ - ] with .n at last [].s+(0,-0.2) -[[ - E: earphone - `"earphone"' at E.s+(0,-0.2) below - In123(E) - thinlines_ - arrow <- from E.Box.n up 0.15 left 0.15 ; "svg_it(Box)" above - thicklines_ - ] - [ - E: earphone(,,C) - `"earphone(,,C)"' at E.s+(0,-0.2) below - thinlines_ - arrow <- from E.L up 0.15 left 0.15; "svg_it(L)" rjust - arrow <- from E.R up 0.15 right 0.15; "svg_it(R)" ljust - "svg_it(N)" at E.N above - "svg_it(C)" at E.C - thicklines_ - ] with .sw at last [].se+(0.4,0) -] with .n at (0.5 between L and R,L.s)+(0.5,-0.2) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/AutoencoderSVG.m4 b/graphics/circuit_macros/examples/svg/AutoencoderSVG.m4 deleted file mode 100644 index 05921e1bcc..0000000000 --- a/graphics/circuit_macros/examples/svg/AutoencoderSVG.m4 +++ /dev/null @@ -1,97 +0,0 @@ -.PS -# Masked_Autoencoder.m4 -gen_init -NeedDpicTools -svg_font(sans-serif,12bp__,textoffset) - - circlerad = 0.2 - circlesep = 0.5 - rowsep = 0.9 - arrowht = arrowht*0.8 - arrowwid = arrowwid*1.4 - linethick = 1 - -define plan { - m = 0 - for i=1 to 4 do { - for j=1 to ncircles[i] do { - exec sprintf("C[i,j]: circle thick 1.6 \"%g\" at Here",m+j) - if i>1 then { - if "$1"=="" then { - for k=1 to ncircles[i-1] do { arrow from C[i,j] to C[i-1,k] chop } } - } - if j!=ncircles[i] then { move right_ circlesep from C[i,j] } - } - m += ncircles[i] - case(i, - move to C[1,1]+(-circlesep/2,-rowsep), - move to C[2,1]+(0,-rowsep), - move to C[3,1]+(circlesep/2,-rowsep), ) - } - } - gridsiz = 0.78/4 -define grid { [ SW: 0,0 - for i=1 to $1 do { - move to (0,(0.5-i)*gridsiz) - exec sprintf("fv = $%g",2+i) - for j=1 to $2 do { fl = 1-(int(fv / 2^(j-1)) % 2) - box wid gridsiz ht gridsiz outlined "gray" shaded rgbstring(fl,fl,fl) } - } ]} - -define cxt { - m = 1 - for i=2 to 4 do { - for j=1 to ncircles[i] do { - exec sprintf("narrows = $%g",m) - for k=1 to narrows do { - exec sprintf("cnum = $%g",m+k) - exec sprintf("arrow from C[i,j] to C[i-1,cnum] $%g chop", $+) - } - m += narrows+1 - } } } - -B: box invis ht 8 wid 8 -[ - array(ncircles,3,4,4,3) - plan() - svg_font(Times,12bp__,textoffset) - for j=1 to 3 do { - sprintf("svg_it(x)`'svg_sub(%g,60%)",j) at C[1,j].n+(0,2bp__) above - "svg_circ" at last ""+(-1bp__,1bp__) - sprintf("svg_it(x)`'svg_sub(%g,60%)",j) at C[4,j].s+(0,-2bp__) below - } - - "V" at 0.5 between C[2,1].w and C[1,1].w - "W`'svg_sup(2)" at 0.5 between C[3,1].w and C[2,1].w - "W`'svg_sup(1)" at 0.5 between C[3,1].w and C[4,1].w - -GV: grid(3,4,0,15,6) with .w at C[2,4]+(circlerad*2,rowsep/2) - "=M`'svg_sup(V)" at GV.e ljust -G2: grid(4,4,13,0,0,13) with .w at (GV.w,C[3,4]+(circlerad*2,rowsep/2)) - "=M`'svg_sup(V`'svg_sup(2))" at G2.e ljust -G1: grid(4,3,1,5,1,1) with .w at (GV.w,C[4,3]+(circlerad*2,rowsep/2)) - "=M`'svg_sup(V`'svg_sup(1))" at G1.e ljust - command "</g>" - - move to (GV.x+3*circlesep,C[1,1].y) - plan(3,1,2,1,2,2,1,2,1,2,2,3,1,2) - for i=2 to 4 do { - cxt(2,1,3,0,0,2,1,3, 0,4,1,2,3,4,0,0, 0,4,1,2,3,4,0, \ - outlined rgbstring(0.5,0.5,0.5) shaded rgbstring(0.5,0.5,0.5) ) - cxt(0,1,1,1,1,0, 2,2,3,0,2,2,3,2,2,3, 0,0,3,1,3,4,) - } - svg_font(Times,12bp__,textoffset) - for j=1 to 3 do { sprintf("svg_it(x)`'svg_sub(%g,60%)",j) \ - at C[4,j].s+(0,-2bp__) below } - arrow dotted from C[1,2].n up circlesep/2 - "svg_it(p(x`'svg_sub(2)))" at Here+(0,2bp__) above - "svg_it(p(x`'svg_sub(3)|x`'svg_sub(2)))" at (C[1,3]+(circlesep/2,0),last "") - arrow dotted from C[1,3] to last "".s chop circlerad chop textoffset - "svg_it(p(x`'svg_sub(1)|x`'svg_sub(2),x`'svg_sub(3)))" \ - at (C[1,1]+(-circlesep/2,0),last "") - arrow dotted from C[1,1] to last "".s chop circlerad chop textoffset - command "</g>" - - ] at B - command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/Banking.m4 b/graphics/circuit_macros/examples/svg/Banking.m4 deleted file mode 100644 index 630326f867..0000000000 --- a/graphics/circuit_macros/examples/svg/Banking.m4 +++ /dev/null @@ -1,59 +0,0 @@ -.PS -#Banking.m4 - -gen_init - - scale = 2.54 # use cm - svg_font(Arial Black,11 bp__,2 bp__) - boxwid = 6.8 - boxht = 4.5 - linethick_(1.5) - - define(`heading', - `<tspan font-style=\"bold\" font-size=\"120%\" fill=\"white\">`$1'</tspan>') - define(`subheading', - `<tspan fill=\"white\" font-size=\"75%\" font-style=\"bold\">[`$1']</tspan>') - define(`wtext',`<tspan fill=\"white\">`$1'</tspan>') - - C: circle diam 2.6 colored "mediumblue" - Person: box rad boxht/4 colored "mediumblue" with .n at C.s+(0,C.rad/8) \ - "heading(Personal Banking)" \ - "" \ - "heading(Customer)" \ - "subheading(Person)" \ - "" \ - "wtext(A customer of the bank`,' with)" \ - "wtext(personal bank accounts.)" - - A1: arrow thick 1.5 dashed down 3.5 from Person.s - svg_font(Arial,11 bp__,2 bp__) - { box invis fill 1 ht 0.4 wid 1.0 "Uses" at A1 } - command "</g>" - Internet: box colored "steelblue" \ - "heading(Internet Banking System)" \ - "subheading(Software system)" \ - "" \ - "wtext(Allows customers to view)" \ - "wtext(information about their bank)" \ - "wtext(accounts`,' and make payments.)" - - svg_font(Arial,11 bp__,2 bp__) - A2: arrow thick 1.5 dashed right 5.4 from Internet.e \ - "Sends e-mail" above "using" below - command "</g>" - Email: box colored "slategrey" \ - "heading(E-mail System)" \ - "subheading(Software system)" \ - "" \ - "wtext(Internal Microsoft Exchange)" \ - "wtext(e-mail system.)" - - A3:arrow thick 1.5 dashed from Email.nw+(0.4,0) to Person.se+(0.3,Person.ht/5) - svg_font(Arial,11 bp__,2 bp__) - { box invis fill 1 ht 0.4 wid 3.3 "Sends e-mails to" at A3 } - command "</g>" - -# etc - - command "</g>" # font -.PE diff --git a/graphics/circuit_macros/examples/svg/BipSVG.m4 b/graphics/circuit_macros/examples/svg/BipSVG.m4 deleted file mode 100644 index 7dbf38c84a..0000000000 --- a/graphics/circuit_macros/examples/svg/BipSVG.m4 +++ /dev/null @@ -1,68 +0,0 @@ -.PS -# `Bip.m4' -cct_init(svg_font(sans-serif,11bp__)) - - up_ -Q1: bi_tr(up_ dimen_) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q1.E-(0,0.05) below - "B" at Q1.B rjust - "C" at Q1.C above - "`bi_tr(up_ dimen_)'" wid 1.2 at Q1.s + (0,-0.35) below - -Q2: bi_tr(,R) with .E at Q1.E+(0.25,0) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q2.E-(0,0.05) below - "B" at Q2.B ljust - "C" at Q2.C above - "`bi_tr(,R)'" at Q2.s + (0,-0.2) below - -Q3: bi_tr(,,P) with .C at Q2.C+(1.15,0) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q3.E-(0,0.05) below - "B" at Q3.B rjust - "C" at Q3.C above - "`bi_tr(,,P)'" at Q3.s + (0,-0.2) below - -Q4: bi_tr(,,,E) with .C at Q3.C+(0.9,0) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q4.E-(0,0.05) below - "B" at Q4.B rjust - "C" at Q4.C above - "`bi_tr(,,,E)'" at (Q4.s,Q4.E) + (0,-0.2) below - -Q5: igbt(,,) with .E at Q4.E+(0.65,0) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q5.E-(0,0.05) below - "G" at Q5.G rjust - "C" at Q5.C above - "`igbt'" at Q5.s + (0,-0.2) below - -Q6: igbt(,,LD) with .E at Q5.E+(0.55,0) - thinlines_ - box dotted ht last [].ht wid last [].wid at last [] - thicklines_ - "E" at Q6.E-(0,0.05) below - "G" at Q6.G rjust - "C" at Q6.C above - "`igbt(,,LD)'" at (Q6.s,Q6.E) + (0,-0.2) below - -Q7: Darlington with .E at Q6.E+(1.2,0) - thicklines_ - "E" wid 0.15 at Q7.E-(0,0.05) below - "B" at Q7.B rjust - "C" at Q7.C above - "`Darlington'" at (Q7.s,Q7.E) + (0,-0.2) below - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/BtreeSVG.m4 b/graphics/circuit_macros/examples/svg/BtreeSVG.m4 deleted file mode 100644 index e025572a0a..0000000000 --- a/graphics/circuit_macros/examples/svg/BtreeSVG.m4 +++ /dev/null @@ -1,109 +0,0 @@ -.PS -# Btree.m4 -# One way to draw a binary tree using pic macros -gen_init(svg_font(sans-serif,11bp__)) -sinclude(tst.dim) -s_init(Btree) -maxpswid = 12 -Btree: [ -circlerad = 0.35 - -define n { [C: circle fill_(0.9) $1 - if "$2" != "" then { - L: $2 with .ne at C.s-(circlerad/20, circlerad/2) - line from C to L.C chop } - if "$3" != "" then { - R: $3 with .nw at C.s+(circlerad/20,-circlerad/2) - line from C to R.C chop } - ] } - -# Redrawn from T. A. Standish, "Data Structure Techniques," Addison-Wesley 1980. -# Node data: -define Sirius { n("Sirius",Canopus,Vega) } -define Canopus { n("Canopus",AlphaCentauri,Capella) } -define AlphaCentauri { n("Alpha" "Centauri",Achernar,Arcturus) } -define Arcturus { n("Arcturus",Betelgeux) } -define Betelgeux { n("Betelgeux",BetaCentauri) } -define Capella { n("Capella",Rigel) } -define Rigel { n("Rigel",Procyon) } -define Achernar { n("Achernar") } -define BetaCentauri { n("Beta" "Centauri") } -define Procyon { n("Procyon") } -define Vega { n("Vega") } - -# Build the tree from the root -S: Sirius - - command "</g>" # end font -] -Ttree: [ -# TtreeSVG.m4 -svg_font(sans-serif,10bp__) - -# `Node(no in row, head [location], -# displacement of top of body (.n) wrt head, -# body Node 1, body Node 2, ...) ' -define(`Node',` - Head`$1': `$2' - ifelse(`$3',,,` Body`$1': [ - Loopover_(`v',`v; define(`m4ct',m4Lx)',shift(shift(shift($@)))) - ] with .n at Head`$1' + `$3' - connect(`$1',m4ct)')') - -define(`connect',`Bot: move from Head$1.sw-(0,5bp__) to Head$1.se-(0,5bp__) -for_(1,`$2',1, - `Top: move from Body$1.Head`'m4x.nw+(0,2bp__) \ - to Body$1.Head`'m4x.ne+(0,2bp__) - Mov: move from Head$1 to Body$1.Head`'m4x - if Bot.len*Top.len*Mov.len > 0 then { - line from Intersect_(Mov,Top) to Intersect_(Mov,Bot)}')') - - vsep = 0.75 -define(`txw',`wid `$1'mm__')dnl scaled by 14/12 for 14 pt type - - Node(1,"svg_it(h(h(h(x`'svg_sub(1),x`'svg_sub(2))," \ - + "h(x`'svg_sub(3),x`'svg_sub(4))),h(h(x`'svg_sub(5),x`'svg_sub(6))," \ - + "h(x`'svg_sub(7),x`'svg_sub(8)))))" txw(70) , - (0,-vsep), - Node(1,"svg_it(h(h(x`'svg_sub(1),x`'svg_sub(2)),h(x`'svg_sub(3)," \ - + "x`'svg_sub(4))))" txw(32) , - (0,-vsep), - Node(1,"svg_it(h(x`'svg_sub(1),x`'svg_sub(2)))" txw(14) , - (0,-vsep), - Node(1,"svg_it(x`'svg_sub(1):=((A,pk`'svg_sub(A)),h`'svg_sub(1)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(2):=((B,pk`'svg_sub(B)),h`'svg_sub(2)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3))), - Node(2,"svg_it(h(x`'svg_sub(3),x`'svg_sub(4)))" txw(14) \ - with .nw at Head1.ne+(Body1.wid/2+0.1,0), - (0,-vsep), - Node(1,"svg_it(x`'svg_sub(3):=" \ - + "((A,pk`'svg_prime`'svg_sub(A,,,-0.5ex)),h`'svg_sub(3)))" \ - txw(29)), - Node(2,"svg_it(x`'svg_sub(4):=((D,pk`'svg_sub(D)),h`'svg_sub(4)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3)))), - Node(2,"svg_it(h(h(x`'svg_sub(5),x`'svg_sub(6)),h(x`'svg_sub(7)," \ - + "x`'svg_sub(8))))" txw(29) with .nw at Head1.ne+(Body1.wid/2,0), - (0,-vsep), - Node(1, "svg_it(h(x`'svg_sub(5),x`'svg_sub(6)))" txw(14) , - (0,-vsep*5/4), - Node(1,"svg_it(x`'svg_sub(5):=((E,pk`'svg_sub(E)),h`'svg_sub(5)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(6):=((H,pk`'svg_sub(H)),h`'svg_sub(6)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3))), - Node(2,"svg_it(h(x`'svg_sub(7),x`'svg_sub(8)))" txw(14) \ - with .nw at Head1.ne+(Body1.wid/2+0.1,0), - (0,-vsep*5/4), - Node(1,"svg_it(x`'svg_sub(7):=" \ - + "((D,pk`'svg_prime`'svg_sub(D,,,-0.5ex)),h`'svg_sub(7)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(8):=((K,pk`'svg_sub(K)),h`'svg_sub(8)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3); \ - move right 0.2)), - Node(3,"svg_it(h(x`'svg_sub(9)))" txw(8) \ - at 0.5 between Head1 and Head2))) - -] with .w at last [].e+(-1,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4 b/graphics/circuit_macros/examples/svg/ButtonsSVG.m4 deleted file mode 100644 index 79c9463639..0000000000 --- a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4 +++ /dev/null @@ -1,115 +0,0 @@ -.PS -# ButtonsSVG.m4 -gen_init(svg_font(sans-serif,11bp__)) -NeedDpicTools - -divert(-1) -################################################################# - - `RoundButton(diameter,hue,linedensity) - hue 0=red, 60=yellow, 120=green ...' -define(`RoundButton',`[ -# Colors and radius: - hue = ifelse(`$2',,60,`$2') - crad = ifelse(`$1',,circlerad,(`$1')/2) - linedensity = ifelse(`$3',,150/scale,`$3') # default 150 lines per inch - hsvtorgb(hue, 1, 1, r1,g1,b1) - hsvtorgb(hue-5, 1,0.9, r2,g2,b2) - hsvtorgb(hue-10,1,0.5, r3,g3,b3) -# Shaded main disk - define RBbackground { - circle rad crad*($`'1) thick lthk at C outlined rgbstring($`'2,$`'3,$`'4) - } - C: circle invis rad crad at (0,0) - nsteps = round_(crad*linedensity) - lthk = crad/nsteps/(1bp__) - ShadeObject(RBbackground,nsteps, - 0, r1,g1,b1, - 0.2, r1,g1,b1, - 0.8, r2,g2,b2, - 1, r3,g3,b3) at C -# Highlight disk with arc shading - rad1 = crad*3/4 - C1: C.n-(0,rad1+0.02*crad) - C2: C1+(0,2*rad1) - lthk = 2*rad1/nsteps/(1bp__) - define RBoverlay { - radx = rad1 + ($`'1)*2*rad1 - if $`'1 < 1 then { - arc cw rad radx thick lthk outlined rgbstring($`'2,$`'3,$`'4) \ - from Cintersect(C2,radx,C1,rad1) \ - to Cintersect(C2,radx,C1,rad1,R) \ - with .c at C2 - } } - nsteps = round_(rad1*2*linedensity) - ShadeObject(RBoverlay,nsteps, - 0, 1, 1, 1, - 0.1, 1, 1, 1, - 0.33,(r1+r2)/2,(g1+g2)/2,(b1+b2)/2, - 0.67,r1,g1,b1, - 1, (r1+r2)/2,(g1+g2)/2,(b1+b2)/2) with .c at C1 - `$4']') - -################################################################# - - `BoxButton(wid,height,hue,linedensity) - hue 0=red, 60=yellow, 120=green ...' -define(`BoxButton',`[ -# Size and Color - boxw = ifelse(`$1',,boxwid*4/3,`$1') - boxh = ifelse(`$2',,boxw/4,`$2') - hue = ifelse(`$3',,180,`$3') - hsvtorgb(hue, 1, 1, r1,g1,b1) - hsvtorgb(hue-5, 1,0.9, r2,g2,b2) - hsvtorgb(hue-10,1,0.5, r3,g3,b3) -# Peripheral shading - linedensity = ifelse(`$4',,150/scale,`$4') - nsteps=10 - define BxBshadow { - box ht boxh wid boxw rad boxh/2 \ - outlined rgbstring($`'2,$`'3,$`'4) at (0,($`'1)*4*linethick bp__) - } - Q: ShadeObject(BxBshadow,nsteps, - 0, 1,1,1, - 1, r3,g3,b3) -# Shaded body - lthk = boxh/nsteps/(1bp__) - define BxBshade { - v = boxh*(1-($`'1)) - h = (boxw-boxh)/2+sqrt((boxh/2)^2-(v-boxh/2)^2) - line from (-h,v) to (h,v) thick lthk outlined rgbstring($`'2,$`'3,$`'4) - } - nsteps = boxh*linedensity - C: ShadeObject(BxBshade,nsteps, - 0, r1, g1, b1, - 0.4, r2, g2, b2, - 1, r3, g3, b3) with .n at Q.n -# Shaded highlight - bh = boxh*0.4 - bw = boxw*4/4.5 - define BxBhighlight { - v = bh*(1-($`'1)); h = (bw-bh)/2+sqrt((bh/2)^2-(v-bh/2)^2) - line from (-h,v) to (h,v) thick lthk outlined rgbstring($`'2,$`'3,$`'4) - } - nsteps = bh*linedensity - ShadeObject(BxBhighlight,nsteps, - 0,1,1,1, - 8/nsteps,1,1,1, - 1, r2,g2,b2) with .n at Q.n+(0,-boxh/20) - `$5']') - -################################################################# -divert(0)dnl - -for x=0 to 5 do { - B: RoundButton(0.6,x*60) at (x,0) - "Button" sprintf("%g",x+1) at B } - -[ for i=0 to 2 do { - BoxButton(1.5,,180+120*i) at (i*2,0) - "Button" at last [].C - } - ] with .nw at 1st [].sw+(0,-0.5) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ByteSVG.m4 b/graphics/circuit_macros/examples/svg/ByteSVG.m4 deleted file mode 100644 index ca059487e7..0000000000 --- a/graphics/circuit_macros/examples/svg/ByteSVG.m4 +++ /dev/null @@ -1,38 +0,0 @@ -.PS -# Byte.m4 -gen_init(svg_font(sans-serif,11bp__)) -boxht = 0.2 -boxwid = 3.5 - -define leftlabel { {"$1" at last box.w ljust} } - -down_ -Lab[0]: box; leftlabel( B0STDISBL (reset pin is enabled) ) -Lab[1]: box; leftlabel( WDTON (WDT not always on) ) -Lab[2]: box; leftlabel( SPIEN (allow serial programming) ) -Lab[3]: box; leftlabel( CKOPT (full output swing) ) -Lab[4]: box; leftlabel( EESAVE (don't preserve EEPB0OM over chip erase) ) -Lab[5]: box; leftlabel( BOOTSZ1 ) -Lab[6]: box; leftlabel( BOOTSZ0 ) -Lab[7]: box; leftlabel( BOOTB0ST (boot reset vector at 0x0000) ) - -boxwid = boxht -left_ -B0:box "1" with .e at Lab[0].nw + (0.75,0.5) - box "0" - box "0" - box "1" - box "0" - box "0" - box "1" - box "1" - box wid 2*boxht "0xc9" - -for i=0 to 7 do { - spline -> ht arrowht*0.7 from B0.s-(i*boxht,0) down boxht/4 \ - then to Lab[0].nw-((i+1)*boxht/2,0) \ - then down Lab[0].nw.y-Lab[i].y then to Lab[i].w - } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/CanLogicSVG.m4 b/graphics/circuit_macros/examples/svg/CanLogicSVG.m4 deleted file mode 100644 index b6c1d02e2f..0000000000 --- a/graphics/circuit_macros/examples/svg/CanLogicSVG.m4 +++ /dev/null @@ -1,159 +0,0 @@ -.PS -#CanLogic -ifdef(`L_unit',,`include(liblog.m4)') -log_init(svg_font(sans-serif,11bp__)) - -divert(-1) -########################################################################### - Macros for automatically drawing 2-layer - Boolean functions - - Style parameters -define(`dotrad_',(0.01*scale)) -define(`gatelineth',1) -define(`lineth',0.5) -define(`inputsep',`2*jog') -define(`jog',`(AND_ht/2)*L_unit') - - `CanLogic(layer gate type,[N], - output gate type,[N], - term,term,...) - This is the driver macro. Terms are - strings of variables or of variables - preceded by the ~ character. Each - variable is one letter e.g. - CanLogic(NAND,,OR,N,abcd,a~b,c,~ad)' -define(`CanLogic', - `define(`terms',`shift(shift(shift(shift($@))))') -# Determine required input variables and negated -# variables - Loopover_(`t_',`varloop(`v_',`define(X`'v_)',`define(XN`'v_)',t_)',terms) -# Draw the inputs with NOT gates as necessary - LastInput: Here-(inputsep,0) - Loopover_(`t_',`varloop(`v_', - `ifdef(D`'v_,,`ifdef(XN`'v_,`DrawInNotIn(v_)',`DrawIn(v_)')')', - `ifdef(D`'v_,,`ifdef(X`'v_,`DrawInNotIn(v_)',`DrawNotIn(v_)')')', t_)', - terms) -# Draw 2nd-layer gates - right_ - LastGateSE: LastInput+(5*jog,-(AND_wd*L_unit*1.5)) - Loopover_(`t_', - `define(`termcount',m4Lx)DrawLayerGate(G`'termcount,$1,$2,t_)', - terms) -# Draw output gate - linethick = gatelineth - OP: m4xpand(`$3'_gate(termcount,$4)) with .Out at \ - 0.5<G1.Out,G`'termcount.Out> + (jog/2*(termcount+3)+AND_wd*L_unit,0) - Out: Here - linethick = lineth -# Connect 2nd-layer gates to the output gate - VectorConnect(G,termcount,OP) -# Connect the inputs and negated inputs to -# 2nd-layer gates - Loopover_(`t_',`ConnectInputs(G`'m4Lx,t_)',terms) -# Clean up - Loopover_(`t_',`DeleteLogDefs(t_)',terms) - ') - `VectorConnect(number of 2nd layer gates, - common 2nd layer gate name, - output gate name) - Connect the 2nd-layer gate outputs to the - output gate inputs' -define(`VectorConnect', - `for_(1,`$2',1, - `line from `$1'm4x.Out right `$3'.In1.x-`$1'm4x.Out.x \ - - jog/2*(`$2'+1-abs(2*m4x-`$2'-1)) \ - then down `$1'm4x.Out.y - `$3'.In`'m4x.y then to `$3'.In`'m4x ')') - - Draw and label a non-inverted input -define(`DrawIn', - `LastInput: LastInput+(inputsep,0) - In`'$1: LastInput - "svg_it($1)" ljust at LastInput # Maybe labels should be done externally - Int`'$1: LastInput - define(D`'$1)') - - Draw and label an inverted input -define(`DrawNotIn', - `LastInput: LastInput+(inputsep,0) - InN`'$1: LastInput - "svg_it($1)" ljust at LastInput # Maybe labels should be done externally - line down_ 2*jog from LastInput - linethick = gatelineth - NOT_gate - InNt`'$1: Here - linethick = lineth - define(D`'$1)') - Draw and label an input that is required both - inverted and uninverted. -define(`DrawInNotIn', - `LastInput: LastInput+(inputsep,0) - In`'$1: LastInput - "svg_it($1)" ljust at LastInput # Maybe labels should be done externally - line from LastInput down jog - Int`'$1: dot - LastInput: LastInput+(inputsep,0) - line to (LastInput,Here) then down_ jog - linethick = gatelineth - NOT_gate - linethick = lineth - InNt`'$1: Here - define(D`'$1)') - `varloop(`var',ifnotnegated,ifnegated,term) - Loop over term variables performing actions' -define(`varloop',`ifelse(`$4',,,substr(`$4',0,1),~, - `define(`$1',substr($4,1,1)) $3 - varloop(`$1',`$2',`$3',substr($4,2))', - `define(`$1',substr($4,0,1)) $2 - varloop(`$1',`$2',`$3',substr($4,1))')')') - - Count gate inputs and mark last appearance -define(`Countinputs',`varloop(`v_', - `define(`incount',incr(incount)) define(Last`'v_,`$1')', - `define(`incount',incr(incount)) define(LastN`'v_,`$1')',$2)') - - Draw a 2nd layer gate -define(`DrawLayerGate', - `define(`incount',0) - Countinputs($1,$4) - ifelse(incount,1, - `LastGateSE: LastGateSE-(0,jog) - $1: [ In1:Here; line right AND_wd*L_unit; Out: Here] \ - with .Out at LastGateSE', - `LastGateSE: LastGateSE-(0,jog+AND_ht*L_unit) - linethick = gatelineth - $1: m4xpand(`$2'_gate(incount,$3)) with .se at LastGateSE - linethick = lineth ')') - - Connect this gate to its input lines -define(`ConnectInputs',`define(`innum',0) varloop(`v_', - `define(`innum',incr(innum)) - line from `$1'.In`'innum to (In`'v_,`$1'.In`'innum)dnl - ifelse(`$1',m4xpand(Last`'v_),`then to In`'v_',`; dot')', - `define(`innum',incr(innum)) - line from `$1'.In`'innum to (InNt`'v_,`$1'.In`'innum)dnl - ifelse(`$1',m4xpand(LastN`'v_), `then to InNt`'v_', `; dot')',$2)') - - Delete definitions to allow more than one - circuit per diagram -define(`DeleteLogDefs',`varloop(`v_', - `undefine(Last`'v_) undefine(D`'v_) undefine(X`'v_)', - `undefine(LastN`'v_) undefine(D`'v_) undefine(XN`'v_)',$1)') - - Thanks to Alexander Ray for suggesting the - need for something like these macros -########################################################################### -divert(0)dnl - - linethick = lineth - -[ CanLogic(AND,,OR,,abcd,a~b,c,~ad) #; line right jog from Out "svg_it(f)" above - ] -{`"CanLogic(AND,,OR,,abcd,a~b,c,~ad)"' at last [].s -(0,11bp__)} - -[ CanLogic(OR,N,NAND,,ab~c,a~bc,ac,~d) #; line right jog from Out "$f$" above - ] with .sw at last [].se+(0.5,0) -{`"CanLogic(OR,N,NAND,,ab~c,a~bc,ac,~d)"' at last [].s - (0,11bp__)} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/CapacitorsSVG.m4 b/graphics/circuit_macros/examples/svg/CapacitorsSVG.m4 deleted file mode 100644 index be6a8edd47..0000000000 --- a/graphics/circuit_macros/examples/svg/CapacitorsSVG.m4 +++ /dev/null @@ -1,43 +0,0 @@ -.PS -# `CapacitorsSVG.m4' -cct_init(svg_font(sans-serif,11pt__)) -textwid = 1.5 -movewid = 2 pt__ -hm = 2.1 -vm = 0.28 - -hm = 2.05 -vm = 0.28 -{ {capacitor ; move ; "`capacitor '" ljust} - move right_ hm - {capacitor(,C); move ; "`capacitor(,C) '" ljust} - move right_ hm - {capacitor(,C+); move ; "`capacitor(,C+) '" ljust} -} - move down vm; right_ -{ {capacitor(,P); move ; "`capacitor(,P) '" ljust} - move right_ hm - {capacitor(,E); move ; "`capacitor(,E) '" ljust} - move right_ hm - {capacitor(,K); move ; "`capacitor(,K) '" ljust} -} - move down 0.25; right_ -{ {capacitor(,M); move ; "`capacitor(,M) '" ljust} - move right_ hm - {capacitor(,N); move ; "`capacitor(,N) '" ljust} - move right_ hm - {capacitor(,CP); move ; "`capacitor(,CP) '" ljust} -# {xtal ; move ; "`xtal '" ljust} -} - move down 0.25; right_ -{ {capacitor(,dC); move ;"`capacitor(,dC) '" ljust} - move right_ hm - {capacitor(,dF); move ;"`capacitor(,dF) '" ljust} - move right_ hm - {variable(`capacitor',NN,-30,dimen_/3) - move ;"`variable('svg_grave`capacitor'svg_prime`,'" wid 97bp__ ljust \ - "` NN,-30,dimen_/3)'" ljust } -} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ChipsSVG.m4 b/graphics/circuit_macros/examples/svg/ChipsSVG.m4 deleted file mode 100644 index b85ce8d970..0000000000 --- a/graphics/circuit_macros/examples/svg/ChipsSVG.m4 +++ /dev/null @@ -1,44 +0,0 @@ -.PS -# ChipsSVG.m4 -log_init -include(icsSVG.m4) -svg_font(sans-serif,8.5bp__) - -Chips: [ - ic4017 - {"4017" at last [].Chip.sw below ljust} - move - ic4510 - {"4510" at last [].Chip.sw below ljust} - move - icVS1053 - {"VS1053" at last [].Chip.sw below ljust} - - DIP_chip_outline with .sw at last [].se+(0.5,0) - { `"DIP_chip_outline"' at last [].s below } - ] - -DIPs: [ - DIP0: DIP - DIP32: DIP(32,direct=R;bodywid=0.5*scale) with .sw at last [].se+(0.5,0) - DIP16: DIP(16,type=Q;pinwid=1bp__) with .sw at DIP32.se+(1.5,0) - - thinlines_ - { "svg_tt(`DIP')" at DIP0.s - (0,10bp__) } - { arrow <- from DIP0.Pin1 up 0.2; "svg_it(`Pin1')" ljust at Here+(-0.05,0.1) } - { arrow <- from DIP0.c up 0.7 right 0.25; "svg_it(`Body')" ljust } - { arrow <- from DIP0.Pin8 up 0.25 right 0.2 ; "svg_it(`Pin8')" above ljust } - - { "svg_tt(`DIP(32,direct=R;bodywid=0.5*scale)')" ljust \ - at DIP32.sw - (20bp__,10bp__) } - { arrow <- right 0.2 from DIP32.Pin1; "svg_it(`Pin1')" ljust } - { spline <- right 0.2 then right 0.1 up 0.1 from DIP32.Pin32 - "svg_it(`Pin32')" ljust } - - { "svg_tt(`DIP(16,type=Q;pinwid=1bp__)')" at DIP16.sw - (0,10bp__) ljust } - thicklines_ - - ] with .nw at last [].sw+(0,-0.3) - - command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/ConnSVG.m4 b/graphics/circuit_macros/examples/svg/ConnSVG.m4 deleted file mode 100644 index 7344baeb23..0000000000 --- a/graphics/circuit_macros/examples/svg/ConnSVG.m4 +++ /dev/null @@ -1,67 +0,0 @@ -.PS -# `ConnSVG.m4' -cct_init(svg_font(sans-serif,10.5bp__)) - -T:[ - S1: tstrip(U) - thinlines_ - arrow <- left 0.15 from S1.L1; "L1" rjust - arrow <- left 0.15 from S1.L4; "L4" wid 0.2 rjust - "..." at (0.5 between last "" and 2nd last "")+(-0.15,0.02) - arrow <- right 0.25 from S1.R1; "R1" ljust - arrow <- right 0.25 from S1.R4; "R4" ljust - "..." at (0.5 between last "" and 2nd last "")+(0.15,0.02) - arrow <- right 0.15 up 0.10 from S1.T1; "T1" ljust - arrow <- right 0.15 up 0.10 from S1.T4; "T4" ljust - "..." at (0.5 between last "" and 2nd last "")+(0.15,0.02) - thicklines_ - CS1: "`tstrip(U)'" at S1.s+(0,-0.15) - S2: tstrip(R,5,DO;wid=1.0;ht=0.25) with .sw at S1.se+(0.7,0.15) - thinlines_ - arrow <- up 0.2 right 0.1 from S2.T1; "T1" above - arrow <- up 0.2 right 0.1 from S2.T5; "T5" above - "..." at 0.5 between last "" and 2nd last "" above - CS2: `"tstrip(R,5,"' ljust \ - `" DO;wid=1.0;ht=0.25)"' ljust at S2.sw+(-0.1,-0.2) -] - -C: [ - C1: ccoax - `"ccoax "' at C1.s below - thinlines_ - arrow <- up 0.1 right 0.1 from C1.C.ne; "C" ljust - arrow <- down 0.05 right 0.1 from C1.S.e; "S" wid 0.1 ljust - thicklines_ - C2: ccoax(at C1+(0,0.3),F) - `"ccoax(,F)"' wid 0.65 at C2.ne ljust - ] with .C1.sw at T.S2.se+(0.6,0.0) - -Y: [ - tconn(,O) - {`"tconn(,O)"' at last line.c+(0,-0.2) wid 43 pt__ } - move to Here+(0.3,0) - P1: tconn(,>) - {`"(,>)"' at last line.c+(0,-0.2)} - move to P1.end+(0.3,0) - tconn(,>>) - {`"(,>>)"' at last line.c+(0,-0.2)} - move to P1.start+(0,linewid) - P3: tconn(,<) - {`"tconn(,<)"' at last line.c+(0,-0.2)} - move to P3.end+(0.3,0) - tconn(,<<) - {`"(,<<)"' at last line.c+(0,-0.2)} - -] with .sw at (C.e.x-0.3,T.s.y) - -B: [ - tbox(V`'svg_sub(1)) - { `"tbox'(V`'svg_sub(1))" wid 47bp__ with .nw at last [].sw+(0,-4bp__) } - tbox(V`'svg_sub(2),,,<) with .sw at last [].se+(0.75,0) - { `"tbox'(V`'svg_sub(2)`,,,<)"' at last [].s below } - tbox(V`'svg_sub(3),,,<>) with .sw at last [].se+(0.75,0) - { `"tbox'(V`'svg_sub(3)`,,,<>)"' at last [].s below } -] with .nw at T.sw+(0,-0.2) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 b/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 deleted file mode 100644 index 67f89e5348..0000000000 --- a/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 +++ /dev/null @@ -1,30 +0,0 @@ -.PS -# ConnectorsSVG.m4 -log_init -include(icsSVG.m4) - -svg_font(sans-serif,8.5bp__) -#vg_rot_init(test) -svg_rot_init(ConnectorsSVG) - -# ArduinoUno -# "Arduino Uno Rev 3" at last [].Connector.s below - Ar: ArduinoLeonardo #with .sw at last [].se+(0.25,0) - "Arduino Leonardo" at last [].Connector.s below - - RPI: RPi with .sw at last [].se+(0.25,0) - "Raspberry Pi 4 GPIO" at last [].GPIO.s below - - HD: HDMI_micro with .nw at last [].ne+(0.25,0.5) - "Micro" rjust at HD.Base.sw "HDMI" rjust - - S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y) - "USB-C Socket" at S.Base.s below - "B12" at S.B12.end above ljust - "B1" at S.B1.end above ljust - "A1" at S.A1.end above rjust - "A12" at S.A12.end above rjust - - command "</g>" - -.PE diff --git a/graphics/circuit_macros/examples/svg/ContactSVG.m4 b/graphics/circuit_macros/examples/svg/ContactSVG.m4 deleted file mode 100644 index 057f702731..0000000000 --- a/graphics/circuit_macros/examples/svg/ContactSVG.m4 +++ /dev/null @@ -1,101 +0,0 @@ -.PS -# ContactSVG -cct_init -svg_font(sans-serif,11bp__) - -movw = 0.45 -{ - contact - {S:"svg_tt(`contact')" at last [].s+(0,-0.15) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O - "svg_it(`C')" ljust at last [].C } - move right_ movw; contact(R) - {"svg_tt(`(R)')" at (last [].s,S) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O - "svg_it(`C')" ljust at last [].C } - move right_ movw; contact(O); {"svg_tt(`(O)')" at (last [],S)} - move right_ movw; contact(C); {"svg_tt(`(C)')" at (last [],S)} - - move right_ movw; contact(P) - {S: "svg_tt(`(P)')" at last [].s+(0,-0.15) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O - "svg_it(`C')" ljust at last [].C } - move right_ movw; contact(PR) - {S: "svg_tt(`(PR)')" at last [].s+(0,-0.15) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O - "svg_it(`C')" ljust at last [].C } - move right_ movw; contact(PO); {"svg_tt(`(PO)')" at (last [],S)} - {"svg_it(`O')" ljust at last [].O - "svg_it(`C')" ljust at last [].C } - move right_ movw; contact(PC); {"svg_tt(`(PC)')" at (last [],S)} -} - -move down 0.75; right_ ; { - contact(I); {S: "svg_tt(`(I)')" at last [].s+(0,-12bp__) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O.e - "svg_it(`C')" ljust at last [].C.e } - move right_ movw; contact(RI) - {"svg_tt(`(RI)')" at (last [],S) - "svg_it(`P')" rjust at last [].P.w - "svg_it(`O')" ljust at last [].O.e - "svg_it(`C')" ljust at last [].C.e } - move right_ movw; contact(OI); {"svg_tt(`(OI)')" at (last [],S)} - move right_ movw; contact(CI); {"svg_tt(`(CI)')" at (last [],S)} - - move right_ movw; contact(PI); {"svg_tt(`(PI)')" at (last [],S) } - {"svg_it(`O')" ljust at last [].O.e - "svg_it(`C')" ljust at last [].C.e } - move right_ movw; contact(PIO); {"svg_tt(`(PIO)')" at (last [],S) } - move right_ movw; contact(PIC); {"svg_tt(`(PIC)')" at (last [],S) } -} - -movewid = movw - move down 0.65; right_; { - K: contact(T) - {S: "svg_tt(`(T)')" at last [].s+(0,-0.15) - thinlines_ - spline <- right 0.09 then up 0.05 right 0.05 from K.C; "svg_it(`C')" - spline <- right 0.09 then down 0.05 right 0.05 from K.O; "svg_it(`O')" - thicklines_ } - move; K: contact(RT) - {"svg_tt(`(RT)')" at (last [],S) - thinlines_ - spline <- right 0.09 then up 0.05 right 0.05 from K.O; "svg_it(`O')" - spline <- right 0.09 then down 0.05 right 0.05 from K.C; "svg_it(`C')" - thicklines_ } - move; contact(OT); {S: "svg_tt(`(OT)')" at (last [],S) } - move; contact(CT); {S: "svg_tt(`(CT)')" at (last [],S) } - move; contact(PT); {S: "svg_tt(`(PT)')" at (last [],S) } - move; contact(PTO); {S: "svg_tt(`(PTO)')" at (last [],S) } - move; contact(PTC); {S: "svg_tt(`(PTC)')" at (last [],S) } -} - - move down 0.65; right_; { - K: contact(U) - {S: "svg_tt(`(U)')" at last [].s+(0,-0.15) - thinlines_ - spline <- right 0.09 then up 0.05 right 0.05 from K.C; "svg_it(`C')" - spline <- right 0.09 then down 0.05 right 0.05 from K.O; "svg_it(`O')" - thicklines_ } - move; K: contact(RU) - {"svg_tt(`(RU)')" at (last [],S) - thinlines_ - spline <- right 0.09 then up 0.05 right 0.05 from K.O; "svg_it(`O')" - spline <- right 0.09 then down 0.05 right 0.05 from K.C; "svg_it(`C')" - thicklines_ } - move; K: contact(OU); {S: "svg_tt(`(OU)')" at (last [],S) - "svg_it(`O')" ljust at K.O.e } - move; K: contact(CU); {S: "svg_tt(`(CU)')" at (last [],S) - "svg_it(`C')" ljust at K.C.e } - move; contact(PU); {S: "svg_tt(`(PU)')" at (last [],S) } - move; contact(PUO); {S: "svg_tt(`(PUO)')" at (last [],S) } - move; contact(PUC); {S: "svg_tt(`(PUC)')" at (last [],S) } -} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ContactsSVG.m4 b/graphics/circuit_macros/examples/svg/ContactsSVG.m4 deleted file mode 100644 index 556ae04a61..0000000000 --- a/graphics/circuit_macros/examples/svg/ContactsSVG.m4 +++ /dev/null @@ -1,49 +0,0 @@ -.PS -# ContactsSVG.m4 -cct_init -svg_font(sans-serif,10bp__) - - space = 0.75 - KS:contacts(2) - {"svg_tt(`contacts(2)')" wid 1 at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,0) ') } - - KS:contacts(2,I) with .sw at last [].se+(space,0) - {"svg_tt(`(2,I)')" at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,0) ') } - - KS:contacts(2,IO) with .sw at last [].se+(space,0) - {"svg_tt(`(2,IO)')" at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) ') } - - KS:contacts(2,PICD) with .sw at last [].se+(space,0) - {"svg_tt(`(2,PICD)')" at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,0) ') } - - KS:contacts(2,PTCD) with .sw at last [].se+(space,0) - {"svg_tt(`(2,PTCD)')" at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,0) ') } - - KS:contacts(2,PUCD) with .sw at last [].se+(space,0) - {"svg_tt(`(2,PUCD)')" at KS.s +(0,-12bp__) - for_(1,2,1, - `"svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,0) ') } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/CountingSVG.m4 b/graphics/circuit_macros/examples/svg/CountingSVG.m4 deleted file mode 100644 index a972ba663f..0000000000 --- a/graphics/circuit_macros/examples/svg/CountingSVG.m4 +++ /dev/null @@ -1,32 +0,0 @@ -.PS -# CountingSVG.m4 -gen_init(svg_font(sans-serif,11bp__)) - - g = 0.4 # grid size - define grid { (($2)*g,-($1)*g) } - circlerad = 0.1 - -for i=1 to 4 do { # 66% becomes 66%% in the sprintf string: - sprintf("svg_it(S`'svg_sub(%g,66%):)",i) ljust at grid(i,-0.5) - for j=1 to 4 do { if i+j < 8 then { - sprintf("svg_it(s`'svg_sub(%g%g,66%))",i,j) at grid(i,j) } } } - -"." at grid(4.6,0) -"." at grid(4.7,0) -"." at grid(4.8,0) -for i=1 to 3 do { `"..."' at grid(i,5) } -"..." at grid(4,4) - -P: grid(1,1) -for k=3 to 5 do { - for i=1 to k-1 do { if (k%2==1) then { m=i; n=k-i } else { m=k-i; n=i } - Q: grid(m,n) - arrow from P to Q chop - P: Q } - } - -move from grid(1,1)+(-0.5,0.1) \# Adjust bounding box - to grid(4,4)+(0.5,-0.45) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/CrowSVG.m4 b/graphics/circuit_macros/examples/svg/CrowSVG.m4 deleted file mode 100644 index 3fe2e8ff72..0000000000 --- a/graphics/circuit_macros/examples/svg/CrowSVG.m4 +++ /dev/null @@ -1,74 +0,0 @@ -.PS -# CrowSVG.m4 -#`Illustrates shadebox and custom crowfoot line termination' -gen_init(svg_font(sans-serif,11bp__)) - -# Custom macros -------------------------- - -# `crowline(linespec,wid,ht)' -define(`crowline', - `line `$1' - M4_E: last line.end - crow_wd = ifelse(`$2',,`(arrowwid*8/5)',`$2') - crow_ht = ifelse(`$3',,`(1.5*crow_wd)',`$3') - M4_P: vperp(last line); M4_P: (M4_P.x*crow_wd,M4_P.y*crow_wd) - M4_X: crow_ht/lin_leng(last line) between M4_E and last line.start - ifdpic( - `spline 0.4 from M4_E+M4_P to M4_X+M4_P then to M4_X-M4_P then to M4_E-M4_P', - `spline from M4_E+(M4_P.x,M4_P.y) to M4_X+(M4_P.x,M4_P.y) \ - then to M4_X-(M4_P.x,M4_P.y) then to M4_E-(M4_P.x,M4_P.y)') ') - -define(`custombox', - ``$1': shadebox(box `$2',3) - "`$1'" at last box.n above - boxtext(shift(shift($@)))') - -define boxtext { - for i=1 to $+ do { move to last box.nw+(3pt__,-(2+i*11)pt__); - exec sprintf("\"$%g\" ljust",i) } - } - -# ---------------------------- - - boxwid = boxwid*1.15 - boxsep = boxwid/2 - - custombox(Class,ht boxht*1.7, - `classkey, class_type, class_desc') - - custombox(Product,ht Class.ht with .nw at Class.ne+(boxsep,0), - `classkey, prodkey, prod_name, pkg_type') - - custombox(Sales,ht boxht*2.75 with .nw at Product.ne+(boxsep*2,13pt__), - `perkey, classkey, prodkey, storekey, promokey, quantity, dollars') - - custombox(Period,ht Sales.ht with .nw at Sales.ne+(boxsep*2,0), - `perkey, date, day, week, month, qtr, year') - - custombox(Market,ht Sales.ht with .nw at Class.sw+(0,-boxsep*3/2), - `perkey, date, day, week, month, qtr, year') - - custombox(Store,ht boxht*3.2 with .sw at (Product.w,Market.s), - `storekey, mktkey, store_type, store_name, street, city, state, zip') - - custombox(Promotion,ht Market.ht with .sw at (Period.w,Market.s), - `promokey, promo_type, promo_desc, value, start_date, end_date') - - move to Class.ne+(0,-10pt__); crowline(to (Product.w,Here)) - - move to Product.ne+(0,-10pt__); crowline(to (Sales.w,Here)) - move to last line.start+(0,-crow_wd*2.5); crowline(to (Sales.w,Here)) -T: last line.c+(0,-crow_wd*2.5) - - move to Period.nw+(0,-10pt__); crowline(to (Sales.e,Here),,1.75*crow_wd) -Q: (last line.c,0.35 between Sales.se and Sales.ne) - - move to Market.ne+(0,-10pt__); crowline(to (Store.w,Here)) - move to Store.ne+(0,-10pt__); line to (T,Here) then to T - crowline(to (Sales.w,Here)) - - move to Promotion.nw+(0,-10pt__); line to (Q,Here) then to Q - crowline(to (Sales.e,Here),,1.75*crow_wd) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/CrullerSVG.m4 b/graphics/circuit_macros/examples/svg/CrullerSVG.m4 deleted file mode 100644 index 7f8173b52a..0000000000 --- a/graphics/circuit_macros/examples/svg/CrullerSVG.m4 +++ /dev/null @@ -1,67 +0,0 @@ -.PS -# CrullerSVG.m4 -threeD_init -NeedDpicTools -scale = 2.54 - -define(`lobe',`(sind(6*(`$1'))+4)/5*2.25') - - viewazimuth = 20 # Set view angles in degrees - viewelevation = 30 - setview(viewazimuth,viewelevation,0) - - dt = 3 # major angle degrees per facet - ds = 10 # minor angle degrees per facet - - tradius = 6 -define(`cruller',`rot3Dz((`$1')*dtor_, - sum3D(0,tradius,0,0,Rect_(lobe(`$2'+2*(`$1')),`$2')))') - -define(`tvisible',`dot3D(View3D, - cross3D(diff3D(cruller(`$1'+dt/2,`$2'),cruller(`$1',`$2')), - diff3D(cruller(`$1',`$2'+ds/2),cruller(`$1',`$2'))))') - - # create the arrays and sort - n = 0 - for t = dt to 360+dt/2 by dt do { - for s=ds/2 to 360.1 by ds do { - if tvisible(t,s) > -0.01 then { - n +=1 - t[n] = t - s[n] = s - d[n] = dot3D(cruller(t,s),view3D1,view3D2,view3D3) # view distance - ix[n] = n - } - } } -# prval(n) - dpquicksort(d,1,n,ix) - - # Background -Bne: (9,6) -Bsw: (-9,-6) -B: 0.5 between Bne and Bsw -iflatex(`line fill_(0.75) \ - from (Bsw,Bne) to Bsw then to (Bne,Bsw) then to Bne then to (Bsw,Bne)', - `ShadedPolygon((Bsw,Bne):Bsw:(Bne,Bsw):Bne,,-30, - 0,1,1,1, - .5,.1,.4,0, - 1,0,0,0) at B') - # draw the facets -thinlines_ -[ - rgbtohsv(0.6,0.4,0,h,s,v) - for i = 1 to n do { - tc = t[ix[i]]; sc = s[ix[i]] - SE: Project(cruller(tc+dt/2,sc-ds/2)) - SW: Project(cruller(tc-dt/2,sc-ds/2)) - NW: Project(cruller(tc-dt/2,sc+ds/2)) - NE: Project(cruller(tc+dt/2,sc+ds/2)) - f = ((dcosine3D(3,cruller(tc,sc))/2.25+1)/2)^2 - hsvtorgb(h,(1-f)*s,1,r,g,b) - line outlined rgbstring(r,g,b) shaded rgbstring(r,g,b) ifpdf( invis ) \ - from SE to SW then to NW then to NE then to SE } - ] at B - -thicklines_ - -.PE diff --git a/graphics/circuit_macros/examples/svg/CsourceSVG.m4 b/graphics/circuit_macros/examples/svg/CsourceSVG.m4 deleted file mode 100644 index c95aaff3d4..0000000000 --- a/graphics/circuit_macros/examples/svg/CsourceSVG.m4 +++ /dev/null @@ -1,197 +0,0 @@ -.PS -# Csource.m4 -cct_init(svg_font(sans-serif,11bp__,2bp__)) - -# The default line separation is a bit small if the top line contains -# subscripts, so we space stacked lines explicitly: -define(`stbelow',`at last ""-(0,textht*1.5)') - -define(`loffset',`+(textoffset,0)') -define(`roffset',`-(textoffset,0)') - -define(`npair',`[define(`m4lr',ifelse(`$1',,l,r)) - J: mosfet(down_ dimen_,ifelse(`$1',,R,L),uHSDF,E) - {["svg_it(Q`'svg_sub(`$2'))" ljust; "2N5464" ljust stbelow]\ - at J.nw+(ifelse(`$1',,-5bp__,5bp__),textht*0.75)} - G: J.G - line ifelse(`$1',,right,left) dimen_/4 from J.D - Q: bi_tr(up_ dimen_,ifelse(`$1',,L,R),,E) with .B at Here - {["svg_it(Q`'svg_sub(`$3'))" m4lr`'just; "2N4239" m4lr`'just stbelow] \ - at last [].ifelse(`$1',,e,w)} - E: Q.E - S: dot(at (Q.C,J.S)) - line from J.S to S then to Q.C ]') - -define(`ppair',`[define(`m4lr',ifelse(`$1',,l,r)) - J: mosfet(down_ dimen_,ifelse(`$1',,R,L),dHSDF,E) - {["svg_it(Q`'svg_sub(`$2'))" ljust; "2N3819" ljust stbelow] \ - at J.sw+(ifelse(`$1',,0,`4bp__'),-textht*0.6)} - G: J.G - line ifelse(`$1',,right,left) dimen_/4 from J.S - Q: bi_tr(down_ dimen_,ifelse(`$1',,R,L),P,E) with .B at Here - {["svg_it(Q`'svg_sub(`$3'))" m4lr`'just; "2N4236" m4lr`'just stbelow]} - E: Q.E - S: dot(at (Q.C,J.D)) - line from J.D to S then to Q.C ]') - - textht = textht*0.8 - R2: resistor(down_ dimen_) - {["svg_it(R`'svg_sub(2))" ljust; "150`'svg_ohm" ljust stbelow] \ - at last [].e loffset } - dot - Q13: bi_tr(down_ dimen_,,P,E) with .E at Here - {["svg_it(Q`'svg_sub(13))" rjust; "2N4236" rjust stbelow] at last [].w } - line down 3.1*elen_ from Q13.C - Q14: bi_tr(up_ dimen_,R,,E) with .C at Here - {["svg_it(Q`'svg_sub(14))" rjust; "2N4239" rjust stbelow] at last [].w } - dot(at Q14.E) - { line left_ dimen_*1.3 then up_ dimen_ - R1: potentiometer(up_ dimen_) with .Start at Here - {["svg_it(R`'svg_sub(1))" ljust; "20k`'svg_ohm" ljust stbelow] \ - at last [].e loffset } - { ground(at R1.T1) } - line from R1.End to (R1.End,Q13.E) then to Q13.E } - { dot(at Q13.C+(0,-elen_)) - line to (R1.R,Here)+(-dimen_/2,0) - { arrowline(right_ dimen_/2); llabel(,i`'svg_sub(1)) } - { move left 0.2} - V1: gap(down_ dimen_,1); rlabel(+,V`'svg_sub(1),-) - line down_ dimen_/4 chop dotrad_ chop 0; ground(,T) } - R3: resistor(down_ dimen_) - {["svg_it(R`'svg_sub(3))" ljust; "150svg_ohm" ljust stbelow] \ - at last [].e loffset} - dot(at Q13.C+(0,-2*elen_)) - line right_ dimen_/2 - A1: opamp with .In2 at Here; "svg_it(A`'svg_sub(1))" at A1.C - { "Nexus" rjust "SQ-10A" rjust at (A1.E,A1.s)+(0,-textht/2) } - line left_ dimen_/4 from A1.In1 then up_ dimen_/2 then right dimen_ - dot - { resistor(up_ elen_) - {["svg_it(R`'svg_sub(14))" rjust; "19k`'svg_ohm" rjust stbelow] \ - at last [].w roffset} - line to (Here,Q13.E) then to Q13.E } - line to (A1.Out,Here) - dot - { line to A1.Out - dot - resistor(down_ to (Here,Q14.E)) - {["svg_it(R`'svg_sub(13))" ljust; "91k`'svg_ohm" ljust stbelow] \ - at last [].e loffset} - line to Q14.E } - R6: resistor(right_ dimen_) - {["svg_it(R`'svg_sub(6))" ljust; "15k`'svg_ohm" ljust stbelow] \ - with .n at last [].sw+(0,-textoffset) } - dot - line to (Here,A1.In1) then right_ dimen_/4 - A2: opamp with .In1 at Here; {"svg_it(A`'svg_sub(2))" at A2.C } - { "Nexus" rjust "SQ-10A" rjust at (A2.E,A2.s)+(0,-textht/2) } - line left_ dimen_/4 from A2.In2 - ground - - dot(at A2.Out) - DP1: npair(,3,4) with .E at (A2.Out,Q14.B)+(elen_*1.25,0) -#if 2 < 1 then { - line from A2.Out to (A2.Out,DP1.G) then to DP1.G - line from DP1.E to (DP1.E,R3.bottom); dot - D4: reversed(`diode',up_ dimen_/2 from DP1.S) - D3: reversed(`diode',up_ dimen_/2 from Here+(0,-dimen_/6)) - { "OMC-V" rjust "svg_it(D`'svg_sub(4))" rjust \ - "svg_it(D`'svg_sub(3))" rjust at last [].w } - DP2: ppair(,1,2) with .E at (DP1.E,Q13.B) - D1: diode(down_ dimen_/2 from DP2.S) - D2: diode(down_ dimen_/2 from Here+(0,dimen_/6)) - {"svg_it(D`'svg_sub(1))" rjust "svg_it(D`'svg_sub(2))" rjust "OMC-V" rjust\ - at last [].w } - dot(at (Here,A2)) - line to D2.bottom - line from DP2.G to (A2.Out,DP2.G) then to A2.Out - line from DP2.E to (DP2.E,R2.top); dot - - T: dot(at (DP1.E,A2)+(dimen_,0)) - DP3: npair(,7,8) with .G at (Here,DP1.G)+(dimen_/4,0) - dot(at DP3.E) - line to Q14.B - DP4: ppair(,5,6) with .G at (DP3.G,DP2.G) - dot(at DP4.E) - line to Q13.B - line from DP3.G to (T,DP3.G) then to (T,DP4.G) then to DP4.G - R11: resistor(down_ dimen_ from DP4.S) - {["svg_it(R`'svg_sub(11))" rjust; "20`'svg_ohm" rjust stbelow] \ - at last [].w roffset} - D5: diode(up_ from DP3.S to (DP3.S,A2),Z) - {["svg_it(D`'svg_sub(5))" rjust; "1N4729" rjust stbelow] \ - at last [].w roffset} - line to R11.end - C4: capacitor(right_ dimen_*1.3 from DP3.S,C) - llabel(,svg_it(C`'svg_sub(4))); rlabel(,"0.68`'svg_micro(F)") - C3: capacitor(right_ dimen_*1.3 from DP4.S,C) - llabel(,svg_it(C`'svg_sub(3))); rlabel(,"0.68`'svg_micro(F)") - dot - dot(at (Here,R6)) - C2: reversed(`capacitor',left_ dimen_*1.3,C) - rlabel(,svg_it(C`'svg_sub(2))); llabel(,"0.1`'svg_micro(F)") - line to R6.end - - R5: resistor(up_ from R6.end to (R6.end,Q13.B)) - {["svg_it(R`'svg_sub(5))" ljust; "100k`'svg_ohm" ljust stbelow] \ - at last [].e loffset } - dot(at R5.top-(0,dimen_/2)) - line left_ dimen_/2 - capacitor(down_ dimen_,C) - {["svg_it(C`'svg_sub(1))" rjust; "1`'svg_micro(F)" rjust stbelow] \ - at last [].w roffset} - ground(,T) - - line from DP4.E to (DP4.E,R2.bottom) - resistor(up_ to (Here,R2.top)) - {["svg_it(R`'svg_sub(9))" ljust; "910`'svg_ohm" ljust stbelow] \ - at last [].e loffset} - dot - resistor(down_ from DP3.E to (DP3.E,R3.bottom)) - {["svg_it(R`'svg_sub(10))" ljust; "910`'svg_ohm" ljust stbelow] \ - at last [].e loffset} - dot - - line from R5.top to (R5,Q13.E) - resistor(right_ elen_) - {["svg_it(R`'svg_sub(4))" ljust; "100k`'svg_ohm" ljust stbelow] \ - with .s at last [].nw+(0,1bp__)} - line to (C4.end,Here) then to C4.end - - DP5: npair(L,11,10) with .E at (C4.end,DP1.E)+(elen_*0.8,0) - line from DP5.E to (DP5.E,R3.bottom); dot - line from R3.bottom to Here+(dimen_/2,0) - dot(,,1) - "svg_it(-E`'svg_sub(CC))" ljust at last [].e - D6: diode(up_ from DP5.S to (DP5.S,A2),Z) - {["svg_it(D`'svg_sub(6))" rjust; "1N4728" rjust stbelow] \ - at last [].w roffset} - DP6: ppair(L,12,9) with .E at (DP5.E,DP2.E) - line from DP6.E to (DP6.E,R2.top); dot - line from R2.top to Here+(dimen_/2,0) - dot(,,1) - { "svg_it(E`'svg_sub(CC))" ljust at last [].e } - resistor(down_ from DP6.S to (DP6.S,C2)) - {["svg_it(R`'svg_sub(12))" rjust; "20`'svg_ohm" rjust stbelow] \ - at last [].w roffset} - dot - { line to C2.e } - line to D6.end - - Vr: dot(at (DP6.G,V1.top)+(dimen_/4,0)) - line from DP6.G to (Vr,DP6.G) then to (Vr,DP5.G) then to DP5.G - reversed(`arrowline',right_ dimen_/2 from Vr); llabel(,i`'svg_sub(2)) - V2: gap(down_ dimen_,1); llabel(+,V`'svg_sub(2),-) - { move right 0.2} - line down_ dimen_/4 chop dotrad_ chop 0; ground(,T) - - dot(at (Vr,T)) - resistor(left_ to (DP6.E,Here)) - {["svg_it(R`'svg_sub(15))" ljust; "200`'svg_ohm" ljust stbelow] \ - with .s at last [].nw+(0,textoffset)} - line to (DP1.E,Here) - dot -#} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/DecoderSVG.m4 b/graphics/circuit_macros/examples/svg/DecoderSVG.m4 deleted file mode 100644 index 2f9659ee42..0000000000 --- a/graphics/circuit_macros/examples/svg/DecoderSVG.m4 +++ /dev/null @@ -1,25 +0,0 @@ -.PS -# Decoder.m4 -log_init(svg_font(sans-serif,11bp__)) - - define(`nlines',3) # OK for nlines from 1 to approximately 4 - - define(`ndata',`eval(2**nlines-1)') - for_(0,nlines-1,1, - `{right_; A`'m4x: dot(at rsvec_(0,m4x*AND_ht)) - "svg_it(A`'svg_sub(m4x))" wid 0.2 at last [].w rjust}') - - for_(0,ndata,1, - `define(`m4y',m4x) down_ - G`'m4y: AND_gate(nlines) \ - at A0+svec_(AND_ht*3/2,(m4y+1/2)*AND_ht*3/2) - line down linewid/3; dot; "svg_it(D`'svg_sub(m4y))" at last [].s below - for_(0,nlines-1,1, - `ifelse(eval(m4y/2**m4x%2),0, - `up_; NOT_circle with .s at',`move to') G`'m4y.In`'eval(nlines-m4x) - line to (Here,A`'m4x) ifelse(m4y,ndata,`then to A`'m4x',`; dot') - ') - ') - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4 b/graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4 deleted file mode 100644 index 37ff8e1431..0000000000 --- a/graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4 +++ /dev/null @@ -1,37 +0,0 @@ -.PS -# `DemultiplexerSVG.m4' -log_init(svg_font(sans-serif,11*0.8bp__)) - - right_ - - Demux(4,DM1) - "`Demux'(4,DM1)" at last [].s below - "svg_it(Out0)" at last [].Out0.end +(6bp__,6bp__) - "svg_it(Out3)" at last [].Out3.end +(6bp__,-6bp__) - "svg_it(In)" at last [].In.end rjust wid 11bp__ - "svg_it(Sel)" at last [].Sel.end ljust above - left_; Demux(4,,LOE) with .c at last [].c+(1.2,0) - "`left_; Demux'(4,,LOE)" at last [].s + (0,-20bp__) - "svg_it(Sel)" at last [].Sel.end rjust - "svg_it(Out0)" at last [].Out0.end +(-6bp__,6bp__) - "svg_it(OE)" at last [].OE.end ljust - "svg_it(In)" at last [].In.end+(0,5bp__) ljust - right_; Demux(4,,NOEBN2) with .c at last [].c+(1.2,0) - "(4,,NOEBN2)" at last [].s below - "svg_it(Sel0)" at last [].Sel0.end rjust - "svg_it(Sel1)" at last [].Sel1.end ljust - "svg_it(Out0)" at last [].Out0.end +(5bp__,6bp__) - "svg_it(Out3)" at last [].Out3.end +(5bp__,6bp__) - "svg_it(NOE)" at last [].NOE.end rjust - "svg_it(In)" at last [].In.end above - down_; Demux(8,,L3,,28*L_unit) with .c at last [].c+(1.8,0) - "`down_; Demux'(8,,L3,,28*L_unit)" at last [].s+(0,-15bp__) wid 170bp__ - "svg_it(Sel0)" at last [].Sel0.end rjust - "svg_it(Sel2)" at last [].Sel2.end rjust below - "svg_it(Out0)" at last [].Out0.end rjust - "svg_it(Out7)" at last [].Out7.end ljust - "svg_it(In)" at last [].In.end rjust - - command "</g>" # end font - -.PE diff --git a/graphics/circuit_macros/examples/svg/DiniSVG.m4 b/graphics/circuit_macros/examples/svg/DiniSVG.m4 deleted file mode 100644 index 1846917a4a..0000000000 --- a/graphics/circuit_macros/examples/svg/DiniSVG.m4 +++ /dev/null @@ -1,193 +0,0 @@ -.PS -# Dini.m4 -# This diagram can be produced using, e.g. -# m4 pdf.m4 Dini.m4 | dpic -d > Dini.pdf - -threeD_init -NeedDpicTools -scale = 1.5 -[ - viewazimuth = 0 # View angles in degrees - viewelevation = 20 - setview(viewazimuth,viewelevation,0) - - a = 1.5 - b = 0.25 - -define(`Dini', -`a*cos(`$1')*sin(`$2'),dnl - a*sin(`$1')*sin(`$2'),dnl - (a*(cos(`$2')+loge(tan((`$2')/2))) + b*(`$1'))') - - umin = 0; umax = 4*pi_ - vmin = 0.2; vmax = 2.0 - ugrid = 80; vgrid = 20 - - ur = umax-umin - vr = vmax-vmin -`define cu {umin+($1)/ugrid*ur}' -`define cv {vmin+($1)/vgrid*vr}' - -# Generate points and sort - n = -1 - for iu=0 to ugrid do { - for iv=0 to vgrid do { - n +=1 - ciu[n] = cu(iu) - civ[n] = cv(iv) - d[n] = dot3D(View3D,Dini(ciu[n],civ[n])) - ix[n] = n - } - } - dpquicksort(d,0,n,ix) - -# Draw the facets - linethick = 0.4 - du = ur/ugrid/2 - dv = vr/vgrid/2 - for i=0 to n do { - NE: Project(Dini(ciu[ix[i]]+du,civ[ix[i]]+dv)) - SE: Project(Dini(ciu[ix[i]]+du,civ[ix[i]]-dv)) - SW: Project(Dini(ciu[ix[i]]-du,civ[ix[i]]-dv)) - NW: Project(Dini(ciu[ix[i]]-du,civ[ix[i]]+dv)) - f = (-cos(ciu[ix[i]])+1)/2 - g = ( sin(ciu[ix[i]])+1)/2 - line from NE to SE then to SW then to NW then to NE \ - outlined rgbstring(f,g,0) shaded rgbstring(f,g,0) -# outlined rgbstring(0,0.5,0) shaded rgbstring(f,g,0) - } -] -# Icosahedron.m4 -[ -#threeD_init -#NeedDpicTools - # Computing facets is complicated, so list them. - # 60 vertices: -define(`m4x',-1) - array2(v,m4inx,0, 0, 1.021) - array2(v,m4inx,0.4035482, 0, 0.9378643) - array2(v,m4inx,-0.2274644, 0.3333333, 0.9378643) - array2(v,m4inx,-0.1471226, -0.375774, 0.9378643) - array2(v,m4inx,0.579632, 0.3333333, 0.7715933) - array2(v,m4inx,0.5058321, -0.375774, 0.8033483) - array2(v,m4inx,-0.6020514, 0.2908927, 0.7715933) - array2(v,m4inx,-0.05138057, 0.6666667, 0.7715933) - array2(v,m4inx,0.1654988, -0.6080151, 0.8033483) - array2(v,m4inx,-0.5217096, -0.4182147, 0.7715933) - array2(v,m4inx,0.8579998, 0.2908927, 0.4708062) - array2(v,m4inx,0.3521676, 0.6666667, 0.6884578) - array2(v,m4inx,0.7841999, -0.4182147, 0.5025612) - array2(v,m4inx,-0.657475, 0.5979962, 0.5025612) - array2(v,m4inx,-0.749174, -0.08488134, 0.6884578) - array2(v,m4inx,-0.3171418, 0.8302373, 0.5025612) - array2(v,m4inx,0.1035333, -0.8826969, 0.5025612) - array2(v,m4inx,-0.5836751, -0.6928964, 0.4708062) - array2(v,m4inx,0.8025761, 0.5979962, 0.2017741) - array2(v,m4inx,0.9602837, -0.08488134, 0.3362902) - array2(v,m4inx,0.4899547, 0.8302373, 0.3362902) - array2(v,m4inx,0.7222343, -0.6928964, 0.2017741) - array2(v,m4inx,-0.8600213, 0.5293258, 0.1503935) - array2(v,m4inx,-0.9517203, -0.1535518, 0.3362902) - array2(v,m4inx,-0.1793548, 0.993808, 0.1503935) - array2(v,m4inx,0.381901, -0.9251375, 0.2017741) - array2(v,m4inx,-0.2710537, -0.9251375, 0.3362902) - array2(v,m4inx,-0.8494363, -0.5293258, 0.2017741) - array2(v,m4inx,0.8494363, 0.5293258, -0.2017741) - array2(v,m4inx,1.007144, -0.1535518, -0.06725804) - array2(v,m4inx,0.2241935, 0.993808, 0.06725804) - array2(v,m4inx,0.8600213, -0.5293258, -0.1503935) - array2(v,m4inx,-0.7222343, 0.6928964, -0.2017741) - array2(v,m4inx,-1.007144, 0.1535518, 0.06725804) - array2(v,m4inx,-0.381901, 0.9251375, -0.2017741) - array2(v,m4inx,0.1793548, -0.993808, -0.1503935) - array2(v,m4inx,-0.2241935, -0.993808, -0.06725804) - array2(v,m4inx,-0.8025761, -0.5979962, -0.2017741) - array2(v,m4inx,0.5836751, 0.6928964, -0.4708062) - array2(v,m4inx,0.9517203, 0.1535518, -0.3362902) - array2(v,m4inx,0.2710537, 0.9251375, -0.3362902) - array2(v,m4inx,0.657475, -0.5979962, -0.5025612) - array2(v,m4inx,-0.7841999, 0.4182147, -0.5025612) - array2(v,m4inx,-0.9602837, 0.08488134, -0.3362902) - array2(v,m4inx,-0.1035333, 0.8826969, -0.5025612) - array2(v,m4inx,0.3171418, -0.8302373, -0.5025612) - array2(v,m4inx,-0.4899547, -0.8302373, -0.3362902) - array2(v,m4inx,-0.8579998, -0.2908927, -0.4708062) - array2(v,m4inx,0.5217096, 0.4182147, -0.7715933) - array2(v,m4inx,0.749174, 0.08488134, -0.6884578) - array2(v,m4inx,0.6020514, -0.2908927, -0.7715933) - array2(v,m4inx,-0.5058321, 0.375774, -0.8033483) - array2(v,m4inx,-0.1654988, 0.6080151, -0.8033483) - array2(v,m4inx,0.05138057, -0.6666667, -0.7715933) - array2(v,m4inx,-0.3521676, -0.6666667, -0.6884578) - array2(v,m4inx,-0.579632, -0.3333333, -0.7715933) - array2(v,m4inx,0.1471226, 0.375774, -0.9378643) - array2(v,m4inx,0.2274644, -0.3333333, -0.9378643) - array2(v,m4inx,-0.4035482, 0, -0.9378643) - array2(v,m4inx,0, 0, -1.021) - - # 12 pentagons -undefine(`m4x') -array2(p,m4inx,0,3,8,5,1) -array2(p,m4inx,2,7,15,13,6) -array2(p,m4inx,4,10,18,20,11) -array2(p,m4inx,9,14,23,27,17) -array2(p,m4inx,12,21,31,29,19) -array2(p,m4inx,16,26,36,35,25) -array2(p,m4inx,22,32,42,43,33) -array2(p,m4inx,24,30,40,44,34) -array2(p,m4inx,28,39,49,48,38) -array2(p,m4inx,37,47,55,54,46) -array2(p,m4inx,41,45,53,57,50) -array2(p,m4inx,51,52,56,59,58) - - # 20 hexagons -undefine(`m4x') -array2(h,m4inx,0,1,4,11,7,2) -array2(h,m4inx,0,2,6,14,9,3) -array2(h,m4inx,1,5,12,19,10,4) -array2(h,m4inx,3,9,17,26,16,8) -array2(h,m4inx,5,8,16,25,21,12) -array2(h,m4inx,6,13,22,33,23,14) -array2(h,m4inx,7,11,20,30,24,15) -array2(h,m4inx,10,19,29,39,28,18) -array2(h,m4inx,13,15,24,34,32,22) -array2(h,m4inx,17,27,37,46,36,26) -array2(h,m4inx,18,28,38,40,30,20) -array2(h,m4inx,21,25,35,45,41,31) -array2(h,m4inx,23,33,43,47,37,27) -array2(h,m4inx,29,31,41,50,49,39) -array2(h,m4inx,32,34,44,52,51,42) -array2(h,m4inx,35,36,46,54,53,45) -array2(h,m4inx,38,48,56,52,44,40) -array2(h,m4inx,42,51,58,55,47,43) -array2(h,m4inx,48,49,50,57,59,56) -array2(h,m4inx,53,54,55,58,59,57) - - viewazimuth = -10 # View angles in degrees - viewelevation = 40 - setview(viewazimuth,viewelevation,0) - - n = 0 # Find and draw the visible hexagons - for i=1 to 20 do { # The normal is the line to the center - for_(1,3,1,`a[m4x] = (v[h[i,1],m4x] + v[h[i,4],m4x])/2') - if dot3D(View3D,a[1],a[2],a[3]) >= 0 then { n +=1; ih[n] = i } - } - for i=1 to n do { - for j=1 to 6 do { x[j]=h[ih[i],j] } - line from Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3]))\ - for_(2,6,1,`to Project((v[x[m4x],1]),(v[x[m4x],2]),(v[x[m4x],3]))\')\ - to Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3])) thick 0.2 fill_(0.95) - } - m = 0 - for i=1 to 12 do { # Visible pentagons - for_(1,3,1,`a[m4x] = 0; for j=1 to 5 do { a[m4x] += v[p[i,j],m4x] }') - if dot3D(View3D,a[1]/5,a[2]/5,a[3]/5) >= 0 then { m +=1; ip[m] = i } - } - for i=1 to m do { - for j=1 to 5 do { x[j]=p[ip[i],j] } - line from Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3])) \ - for_(2,5,1,`to Project((v[x[m4x],1]),(v[x[m4x],2]),(v[x[m4x],3]))\')\ - to Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3])) thick 0.2 fill_(0) - } -] scaled 2.5 with .sw at last [].se+(1,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/DiodesSVG.m4 b/graphics/circuit_macros/examples/svg/DiodesSVG.m4 deleted file mode 100644 index 8af6a2e298..0000000000 --- a/graphics/circuit_macros/examples/svg/DiodesSVG.m4 +++ /dev/null @@ -1,56 +0,0 @@ -.PS -# `Diodes.m4' -cct_init(svg_font(sans-serif,11bp__)) -movewid = 2pt__ - -{ {diode ; move ; "`diode'" ljust} - move down 0.2; right_ - {diode(,S) ; move ; "`diode(,S)'" ljust} - move down 0.2; right_ - {diode(,V) ; move ; "`diode(,V)'" ljust} - move down 0.2; right_ - {diode(,v) ; move ; "`diode(,v)'" ljust} - move down 0.2; right_ - {diode(,w) ; move ; "`diode(,w)'" ljust} - move down 0.2; right_ - {diode(,B) ; move ; "`diode(,B)'" ljust} - move down 0.2; right_ - {diode(,b) ; move ; "`diode(,b)'" ljust} - move down 0.2; right_ - {diode(,G) ; move ; "`diode(,G)'" ljust} - move down 0.2; right_ - {diode(,D) ; move ; "`diode(,D)'" ljust} - } - - move right_ 2.0 -{ {diode(,K) ; move ; "`diode(,K)'" ljust} - move down 0.2; right_ - {diode(,ZK) ; move ; "`diode(,ZK)'" ljust} - move down 0.2; right_ - {diode(,CR) ; move ; "`diode(,CR)'" ljust} - move down 0.2; right_ - {diode(,L) ; move ; "`diode(,L)'" ljust} - move down 0.2; right_ - {diode(,F) ; move ; "`diode(,F)'" ljust} - move down 0.2; right_ - {diode(,Sh) ; move ; "`diode(,Sh)'" ljust} - move down 0.2; right_ - {diode(,M) ; move ; "`diode(,M)'" ljust} - move down 0.2; right_ - {diode(,MK) ; move ; "`diode(,MK)'" ljust} - } - - move down_ sourcerad_ right_ 2.0 -{ {diode(,Z,RE) ; move ; "`diode(,Z,RE)'" wid 70bp__ ljust} - move down 0.25; right_ - {diode(,T) ; move ; "`diode(,T)'" ljust} - move down 0.30; right_ - {diode(,P) ; move ; "`diode(,P)'" ljust} - move down 0.30; right_ - {diode(,LE) ; move ; "`diode(,LE)'" ljust} - move down 0.15; right_ - {diode(,LER) ; move ; "`diode(,LER)'" ljust} - } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/DriveSVG.m4 b/graphics/circuit_macros/examples/svg/DriveSVG.m4 deleted file mode 100644 index 48a7165ff9..0000000000 --- a/graphics/circuit_macros/examples/svg/DriveSVG.m4 +++ /dev/null @@ -1,74 +0,0 @@ -.PS -# `Drive.m4' -cct_init - -define(`synchmachine',`[ r = ifelse(`$1',,`dimen_*3/4',(`$1')/2) - C: circle rad r - Point_(120) - line from C to C+vec_(r*2/9,0); reversed(`inductor',to rvec_(r*2/3,0)) - W2: Here - Point_(240) - line from C to C+vec_(r*2/9,0); reversed(`inductor',to rvec_(r*2/3,0)) - W3: Here - line from C right_ r*2/9; inductor(right_ r*2/3) - W1: Here ]') - - bht = sourcerad_*10 - dlen = dimen_*2/3 -define(`Diodepair',`[ diode(up_ dlen); line up bht-2*dlen; diode(up_ dlen) ]') - -define(`gbt',`bi_trans(`$1',`$2',CBUHdE`$3')') -define(`dotrad_',dotrad_*0.5/linewid) -define(`GBTpair',`[linewid = 0.5*3/4 - Q1: gbt(up_ bht/2,,D) - Q2: gbt(up_ bht/2,,D) with .C at Q1.E - ]') - -SW: ground - line up -W: Here - line right dimen_/3; dot - ssep = sourcerad_*2.5 - { line up ssep; S1: source(right_ dimen_,AC) } - { S2: source(right_ dimen_,AC) } - { line down ssep; S3: source(right_ dimen_,AC) } - - dsep = dimen_/2 -D1: Diodepair at S2.e -D2: Diodepair at D1+(dsep,0); dot(at D2.n); dot(at D2.s) -D3: Diodepair at D2+(dsep,0); dot(at D3.n); dot(at D3.s) - dot(at (D1,S1)) - dot(at (D2,S2)); line to S2.e - dot(at (D3,S3)); line to S3.e - - line from D1.n to D3.n - inductor(right_ dimen_) -T: dot - capacitor(to (Here,D1.s),C) - dot - - gsep = dimen_*1.25 -G1: GBTpair with .Q1.C at T+(dimen_,0) -G2: GBTpair at G1+(gsep,0) -G3: GBTpair at G2+(gsep,0) - - line from G3.Q1.C to T - dot(at (G1.Q1.C,T)) - dot(at (G2.Q1.C,T)) - line from G3.Q2.E to D1.s - dot(at (G1.Q1.E,D1.s)) - dot(at (G2.Q1.E,D1.s)) - -M: synchmachine with .C at G3.e+(dimen_*2,0) - sg = dimen_/8 -L: (0.5<G3.e,M.w>,D1.s)-(sg,0) - line from M.W1 to (M.W1,L) then to L \ - then up M.C.y-L.y-sg then to G3.Q2.C+(0,-sg); dot - line from M.W3 down M.W3.y-L.y-sg*2 then to L+(sg*2,sg*2)\ - then up M.C.y-L.y-sg*2 then to G2.Q2.C; dot - line from M.W2 to (L,M.W2) \ - then down M.W2.y-G1.Q2.C.y-sg then to G1.Q2.C+(0,sg); dot - - line right dimen_/3 from M.e then down M.e.y-SW.y - ground -.PE diff --git a/graphics/circuit_macros/examples/svg/EEPSVG.m4 b/graphics/circuit_macros/examples/svg/EEPSVG.m4 deleted file mode 100644 index 25a9ff71d9..0000000000 --- a/graphics/circuit_macros/examples/svg/EEPSVG.m4 +++ /dev/null @@ -1,108 +0,0 @@ -.PS -# EEPSVG.m4 -# slddiagsSVG.m4 -cct_init(svg_font(sans-serif,10bp__)) -include(libSLD.m4) -maxpsht = 30 - -Pic1: [ -define(`TrDeltaWye', - `sl_transformer(down_ elen_ `$1',type=S) - { Deltasymbol(at last [].M1); Ysymbol(at 2nd last [].M2,,D) } ') - - T: dot - switch(up_ elen_); {"Public supply" above} - Bus1: sl_busbar(right_ 5*dimen_,6,port=D) with .c at T - {"svg_small(20 kV)" at Bus1.Start above ljust} - S1: switch(from Bus1.P1-(0,elen_) up_ elen_) - S2: switch(from Bus1.P2-(0,elen_) up_ elen_) - TRF1: sl_transformer(from Bus1.P3 down_ elen_,type=S,,,Delta,Y) - arrow down_ dimen_/3 - TRF2: sl_transformer(from Bus1.P4 down_ elen_,type=S,,,Delta,Y) - arrow down_ dimen_/3 - TRF3: sl_transformer(from Bus1.P5 down_ elen_,type=S,,,Delta,Y) - arrow down_ dimen_/3 - S3: switch(from Bus1.P6-(0,elen_) up_ elen_) - Bus2: sl_busbar(right_ 1.5*dimen_,3,port=D) with .c at Bus1.P1+(0,-dimen_*3) - {"svg_small(20 kV)" at Bus2.Start above ljust} - {"svg_small(1.25 MVA)" at Bus2.P2 below} - S4: switch(from Bus2.P2 to S1.start) - TRF4: sl_transformer(from Bus2.P1 down_ elen_,type=S,,,Delta,Y) - S4: switch(from Bus2.P3+(0,-elen_) to Bus2.P3) -] - -Pic2: [ -# https://tex.stackexchange.com/questions/597643/draw-a-power-system-network - B1: sl_busbar(up_ dimen_*4/3,3) - sl_transformer(right_ 2*dimen_ from last [].P2, - type=S;body=shaded "lightgray"); variable(,,,dimen_*3/2) - B2: sl_busbar(up_ dimen_*4/3,3) - { line left_ dimen_/2 from B2.P1 - C1: capacitor(down_ dimen_/2); ground(,T) } - line right_ dimen_/2 - { line to (Here,C1.start); C2: capacitor(to (Here,C1.end)); ground(,T) } - ebox(right_ 3.5*dimen_, 2.5*dimen_, dimen_/5, 0.75) - { line to (Here,C1.start); C3: capacitor(to (Here,C1.end)); ground(,T) } - line right_ dimen_/2 - B3: sl_busbar(up_ dimen_*4.5,6) - line right_ dimen_*3/4 from B3.P1; box wid dimen_*3 ht dimen_*.6 \ - shaded rgbstring(0.85, 0.65, 0.13) "Static Load" - line right_ dimen_*3/4 from B3.P2; box wid dimen_*3 ht dimen_*.6 \ - shaded rgbstring(0.79, 0.59, 0.57) "Electronic Load" - sl_disk(right_ dimen_ from B3.P3, - text="A/C";circle=shaded rgbstring(0.2, 0.8, 0.2);diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P4, - text="M";circle=shaded rgbstring(0.21, 0.47, 0.86);diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P5, - text="M";circle=shaded rgbstring(0.2, 0.6, 0.8);diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P6, - text="M";circle=shaded rgbstring(0.2, 0.63, 0.8);diam=dimen_*3/4) - sl_disk(left_ dimen_ from 1/2 between B3.P1 and B3.P2, - text="svg_small(DER_A)"; circle=shaded rgbstring(0.78, 0.36, 0.3);diam=dimen_*3/4) -] with .nw at last [].sw + (100bp__,120bp__) - -Pic3: [ -define(`shadedb',`shaded rgbstring(0.39,0.50,0.93)') -Loopover_(`LR', # loop to take advantage of symmetry - `define(`opposite',`ifelse(LR,left,right,left)')dnl - ifelse(LR,left,L,R)`'side: [ - sl_generator(LR dimen_/2,type=B;name=G1;circle=shadedb,box=shadedb) - { move from G1 opposite last circle.rad*3/2 down_ last circle.rad - ifelse(LR,left,`Delta',`Wye')symbol(,size=sourcerad_*2/3) } - T1: sl_transformer(opposite dimen_*3/2,name=Tx) - Bus1: sl_busbar(up_ dimen_*3/2,3,) with .P2 at Here - Br1: sl_breaker(from Bus1.P3 opposite elen_,box=shadedb) - line opposite dimen_*4/3 - Br2: sl_breaker(from Bus1.P1 opposite elen_,box=shadedb) - Br3: sl_breaker(down_ dimen_,box=shadedb) - Bus2: sl_busbar(opposite dimen_,3) with .P2 at Here - T2: sl_transformer(down_ dimen_ from Bus2.P2,name=X2) - sl_disk(down_ dimen_/2,type=B;text="SM";name=SM1;circle=shadedb,box=shadedb) - { move from last circle opposite sourcerad_*3 - Wyesymbol(,type=G`'ifelse(LR,right,L);size=sourcerad_*2/3) } - ]', - left,right) - "Bus 1" at Lside.Bus1.top above - "Bus 2" at Rside.Bus1.top above - "Bus 3" at Lside.Bus2.w above - "Bus 4" at Rside.Bus2.e above - "TL`'svg_sub(1) 50 km 69 kV" at 1/2 between Lside.Br1 and Rside.Br1 above - "TL`'svg_sub(2) 30 km" ljust "69 kV" ljust at Lside.Br2.end + (-18bp__,12bp__) - "TL`'svg_sub(2) 20 km" ljust "69 kV" ljust at Rside.Br2.end + (-18bp__,12bp__) - "G`'svg_sub(1) 50 MVA" ljust "13.8 kV" ljust at Lside.G1.w+(-25bp__,-32bp__) - "G`'svg_sub(2) 30 MVA" ljust "13.8 kV" ljust at Rside.G1.w+(10bp__,-28bp__) - "T`'svg_sub(1) 50 MVA" "13.8/69 kV svg_Delta/Y" \ - at Lside.Tx.s+(-2bp__,-25bp__) - "T`'svg_sub(2) 30 MVA" "69/13.8 kV Y/svg_Delta " \ - at Rside.Tx.s+(2bp__,-27bp__) - "T`'svg_sub(3) 50 MVA" rjust "13.8/69 kV Y/svg_Delta " rjust \ - at Lside.X2.w+(-4bp__,0) - "T`'svg_sub(4) 20 MVA" ljust "69/6.9 kV Y/svg_Delta " ljust \ - at Rside.X2.e+(4bp__,0) - "SM`'svg_sub(1) 30 MVA" rjust "13.8 kV" rjust at Lside.SM1.w+(-4bp__,0) - "SM`'svg_sub(2) 20 MVA" ljust "6.9 kV" ljust at Rside.SM1.e+( 4bp__,0) -] with .nw at (Pic1.w,last [].sw + (0,-15bp__)) - - command "</g>" - -.PE diff --git a/graphics/circuit_macros/examples/svg/EVplugsSVG.m4 b/graphics/circuit_macros/examples/svg/EVplugsSVG.m4 deleted file mode 100644 index 54530a1bfa..0000000000 --- a/graphics/circuit_macros/examples/svg/EVplugsSVG.m4 +++ /dev/null @@ -1,210 +0,0 @@ -.PS -# EV_lugs.m4 -# https://en.wikipedia.org/wiki/CHAdeMO -gen_init -divert(-1) - - `EV_J1772(keys) - EV charging plug in a [] block - keys: wdth=expr; # plug width - diamLNP=expr; # diam of L1, N, PE - twdth=expr; # tab width - thgt=expr; # tab hght - thick=expr; # outer line thickness (pt) - inthick=expr; # inner line thickness (pt) - BG=attributes; # shaded gray etc - L1=attributes; # L1 attributes ... - N=attributes; - PE=attributes; - PP=attributes; - CP=attributes; ' -define(`pEVskale',25.4) dnl default plug size (20 mm) -define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale; - twdth:3.5/20*m4wdth; thgt:1.5/20*m4wdth; diamLNP:6/20*m4wdth; - thick:2; inthick:1.5; BG::N; L1::N; N::N; PE::N; PP::N; CP::N; ') - tang = atan2(m4twdth/2,m4wdth/2)*rtod_ - TS: (Rect_(m4wdth/2,-90-tang)); TE: (Rect_(m4wdth/2,-90+tang)) - Tab: line thick m4thick from TS down_ m4thgt \ - then to TE-(0,m4thgt) then to TE m4BG - Arc: arc thick m4thick to TS with .c at (0,0) m4BG - round(at TS,last arc.thick); round(at TE,last arc.thick) - L1: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4,150)) m4L1 - N: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4, 30)) m4N - PE: circle diam m4diamLNP thick m4inthick at (0,-m4wdth/4) m4PE - PP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,210)) m4PP - CP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,-30)) m4CP - `$2' popdef(`m4CP',`m4PP',`m4PE',`m4N',`m4L1',`m4BG', - `m4wdth',`m4diamLNP',`m4twdth',`m4thgt',`m4thick',`m4inthick') ]') - - `EV_J3068(keys,shade) - EV charging plug in a [] block - keys: wdth=expr; # plug width - diamLNP=expr; # diam of L1, N, PE - twdth=expr; # tab width - thgt=expr; # tab hght - thick=expr; # outer line thickness (pt) - inthick=expr; # inner line thickness (pt) - BG=attributes; # shaded gray etc - L1|L2|L3=attributes; # pin attributes ... - N=attributes; - PE=attributes; - PP=attributes; - CP=attributes; - arg2= R:G:B background fill color ' -define(`EV_J3068',`[ pushkeys_(`$1', - `wdth:25/pEVskale; diamLNP:m4wdth*0.25; thick:2; inthick:1.5; - BG::N; L1::N; L2::N; L3::N; N::N; PE::N; PP::N; CP::N; ') - C: Here - NE: C+(Rect_(m4wdth/2,45)); NW: C+(Rect_(m4wdth/2,135)) - Ac: NE-(1,1)/sqrt(2)*m4diamLNP/2 - Arc: arc thick m4thick from NW to NE with .c at C m4BG ifelse(`$2',,, - `shaded rgbstring(patsubst(`$2',:,`,')) - line invis from NE to Ac+(0,m4diamLNP/2) \ - then to Ac+(0,m4diamLNP/2) \ - then to NW+(1,-1)/sqrt(2)*m4diamLNP/2 + (0,m4diamLNP/2) \ - then to NW then to NE shaded rgbstring(patsubst(`$2',:,`,'))') - arc thick m4thick to Ac+(0,m4diamLNP/2) with .c at Ac m4BG - Top: line thick m4thick to (NW+NE-Ac, Here) m4BG - arc thick m4thick to NW with .c at Here+(0,-m4diamLNP/2) m4BG - PE: circle diam m4diamLNP thick m4inthick at C m4PE - PP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,45)) m4PP - CP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,135)) m4CP - L1: circle diam m4diamLNP thick m4inthick at C+(m4wdth*.3,0) m4L1 - L2: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-60)) m4L2 - L3: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-120)) m4L3 - N: circle diam m4diamLNP thick m4inthick at C-(m4wdth*.3,0) m4N - `$3' popdef(`m4wdth',`m4diamLNP',`m4thick',`m4inthick', - `m4BG',`m4L1',`m4L2',`m4L3',`m4N',`m4PE',`m4PP',`m4CP') ]') - - `EV_CCS1(J1772 keys,DC keys) - DC keys: wdth=expr; # DC socket width - hght=expr; # DC socket height - diamPM=expr; # diam of DC+, DC- circles - sep=expr; # separation of Jack and DC - thick=expr; # outer line thickness (pt) - inthick=expr; # inner line thickness (pt) - BG=attributes; # shaded gray etc - DCplus=attributes; - DCminus=attributes; ' -define(`EV_CCS1',`[ - J: EV_J1772(`$1') - pushkeys_(`$2',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11; - sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick; - BG::N; DCplus::N; DCminus::N;') - DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 m4BG - DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus - DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus - ] with .n at J.s+(0,-m4sep) - popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG', - `m4DCplus',`m4DCminus') - ]') - - `EV_CCS2(J3068 keys,shade,DC keys) - DC keys: wdth=expr; # DC socket width - hght=expr; # DC socket height - diamPM=expr; # diam of DC+, DC- circles - sep=expr; # separation of Jack and DC - thick=expr; # outer line thickness (pt) - inthick=expr; # inner line thickness (pt) - BG=attributes; # shaded gray etc - DCplus=attributes; - DCminus=attributes; - arg2= R:G:B background fill color ' -define(`EV_CCS2',`[ - J: EV_J3068(`$1',`$2') - pushkeys_(`$3',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11; - sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick; - BG::N; DCplus::N; DCminus::N;') - DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 dnl - m4BG ifelse(`$2',,,`shaded rgbstring(patsubst(`$2',:,`,'))') - DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus - DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus - ] with .n at J.s+(0,-m4sep) - popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG', - `m4DCplus',`m4DCminus') - ]') - - `EV_CHAdeMO(keys,shade) - EV charging plug in a [] block - keys: wdth=expr; # plug width - thick=expr; # outer line thickness (pt) - inthick=expr; # inner line thickness (pt) - BG=attributes; # background shaded gray etc - DCplus=|DCminusNS=|FG=|NC=|SS1=|DCP=|PP=| - CL=|CH=|SS2=attributes # pin attributes ...' -define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1', - `wdth:140*m4sk; thick:m4wdth*9/140/(1bp__); inthick:m4thick*1.5/9; - BG::N; DCplus::N; DCminus::N;N::N;S::N; - FG::N; NC::N; SS1::N; DCP::N; PP::N; CL::N; CH::N; SS2::N') - C: circle thick m4thick diam m4wdth-m4thick bp__ m4BG - line thick m4thick*0.6 from C+(Rect_(C.rad+m4thick bp__*3/4,42)) \ - to C+(Rect_(C.rad+m4thick bp__*3/4,50)) then left m4thick bp__ m4BG - line thick m4thick*0.6 from C+(Rect_(C.rad+m4thick bp__*3/4,138)) \ - to C+(Rect_(C.rad+m4thick bp__*3/4,130)) then right m4thick bp__ m4BG - idiam = (m4wdth-m4thick bp__*2)*47/(27+47*2) - N: circle diam idiam thick m4inthick with .n at C.n-(0,m4thick bp__/2) m4N - S: circle diam idiam thick m4inthick with .s at C.s+(0,m4thick bp__/2) m4S - E: circle diam idiam thick m4inthick at Cintersect(N,N.diam,S,S.diam) m4DCminus - W: circle diam idiam thick m4inthick at Cintersect(S,S.diam,N,N.diam) m4DCplus - Loopover_(`Z', - `line thick m4inthick up Z.diam*0.6 right Z.diam*0.6 with .c at Z - line thick m4inthick up Z.diam*0.6 left Z.diam*0.6 with .c at Z',N,S) - Loopover_(`L',`L: circle diam idiam/4 thick linethick/2 \ - at N+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',FG,NC,DCP,SS1) - Loopover_(`L',`L: circle diam idiam/4 thick linethick/2 \ - at S+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',PP,CL,SS2,CH) - `$3' popdef(`m4sk',`m4wdth',`m4thick',`m4inthick',`m4BG', - `m4DCplus',`m4DCminus',`m4N',`m4S', - `m4FG',`m4NC',`m4SS1',`m4DCP',`m4PP',`m4CL',`m4CH',`m4SS2') ]') - -divert(0)dnl - - ifsvg(svg_font(sans-serif,6bp__)) - iflatex(command "{\sf\scriptsize") - define(`EVsmall',`ifsvg(svg_small(`$1'),{\tiny `$1'})') - define(`EVtxt',`ifsvg(``$1'',`{patsubst(`$1',_,\\_)}')') - define(`EVk',`ifsvg(+(0,0.75bp__))') - -[ -P1: EV_J1772(BG=fill_(0.75); PE=fill_(1) "PE";L1=fill_(1) "L1";N=fill_(1) "N"; - PP=fill_(1); CP=fill_(1);) - "EVsmall(PP)" at P1.PP EVk - "EVsmall(CP)" at P1.CP EVk - -P2: EV_J3068(PE=shaded "green" "PE";\ - L1=shaded "yellow" "L1";L2=shaded "yellow" "L2";L3=shaded "yellow" "L3"; - N=fill_(1) "N";", - 0.85:0.85:0.85) at P1+(15bp__,0) \ - with .w at P1.e+(P1.wid/5,0) - "EVsmall(PP)" at P2.PP EVk - "EVsmall(CP)" at P2.CP EVk - -P3: EV_CCS1(L1="L1";N="N";PE="PE", - DCplus="DC+";DCminus="DC-") with .w at P2.e+(P1.wid/5,0) - "EVsmall(PP)" at P3.J.PP EVk - "EVsmall(CP)" at P3.J.CP EVk - -P4: EV_CCS2(L1="L1";L2="L2";L3="L3";N="N";PE="PE",0.85:0.85:0.85, - DCplus="DC+";DCminus="DC-") with .w at P3.e+(P1.wid/5,0) - "EVsmall(PP)" at P4.J.PP EVk - "EVsmall(CP)" at P4.J.CP EVk -P5: EV_CHAdeMO( BG=outlined "blue" fill_(0.8); - DCplus=shaded "red" "DC+"; - DCminus=shaded "red" "DC-"; - Loopover_(`L',`L=fill_(1);',N,S) - FG=shaded "green"; - Loopover_(`L',`L=shaded "orange";',SS1,DCP,NC,PP,CH,SS2,CL)) \ - with .w at P4.e+(P4.w.x-P3.e.x,0) - Loopover_(`L',`"EVsmall(L)" at P5.L EVk',FG,NC,DCP,SS1,PP,CL,CH,SS2) -# - ifsvg(move from P5.e right 0.2) - "EVtxt(`EV_CCS2')" at P4.s+(0,-10bp__) - "EVtxt(`EV_CCS1')" at (P3,last "") - "EVtxt(`EV_J3068')" at (P2,last "") - "EVtxt(`EV_J1772')" at (P1,last "") - "EVtxt(`EV_CHAdeMO')" at (P5,last "") - ] # with .nw at last [].sw+(0,-0.2) - - iflatex(command "}%") - ifsvg(command "</g>") -.PE diff --git a/graphics/circuit_macros/examples/svg/EmarrowsSVG.m4 b/graphics/circuit_macros/examples/svg/EmarrowsSVG.m4 deleted file mode 100644 index 33372ae290..0000000000 --- a/graphics/circuit_macros/examples/svg/EmarrowsSVG.m4 +++ /dev/null @@ -1,31 +0,0 @@ -.PS -# `Emarrows.m4' -cct_init(svg_font(sans-serif,11bp__)) - hskip = 0.6 -[ - { em_arrows(N) - box dotted wid last [].wid ht last [].ht at last [].c - thinlines_ - arrow <- up 0.12 from last [].Head;`"Head"' above - arrow <- down 0.12 from last [].Tail;`"Tail"' below - `"A1"' rjust below at last [].A1.c - `"A2"' ljust above at last [].A2.c - thicklines_ - move down 0.25 from last [].s - move up 0.2 from last [].n - `"em_arrows(N)"' wid 1.0 at last [].s+(0,-0.20) below } - { em_arrows(ND,45) with .sw at last [].se+(hskip*1.5,0) - `"em_arrows(ND,45)"' at last [].s below } - { em_arrows(I) with .sw at last [].se+(hskip,0) - `"...(I)"' at last [].s+(0,-9bp__) below } - { em_arrows(ID) with .sw at last [].se+(hskip,0) - `"...(ID)"' at last [].s+(0,-2bp__) below } - { em_arrows(E) with .sw at last [].se+(hskip,0) - `"...(E)"' at last [].s+(0,-2bp__) below } - { em_arrows(ED) with .sw at last [].se+(hskip,0) - `"...(ED)"' wid .75 at last [].s+(0,-2bp__) below } - ] -# box wid last [].wid ht last [].ht at last [] - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/EscherSVG.m4 b/graphics/circuit_macros/examples/svg/EscherSVG.m4 deleted file mode 100644 index 637f99b29a..0000000000 --- a/graphics/circuit_macros/examples/svg/EscherSVG.m4 +++ /dev/null @@ -1,175 +0,0 @@ -.PS -# EscherSVG.m4 -# https://tex.stackexchange.com/questions/129274/showcase-of-optical-illusions-made-with-tex-latex-luatex-context -threeD_init -[] -ifelse(1,1,` -[ - u=1/2.54 # unit size; could use scale for this - - define(`treadcolor',`0.8,0.75,0.7') - define(`darkgrn',`.1,.1,0') - define(`lightgrn',`.7,.7,.6') - - define(`northsteps',3) - define(`eaststeps',8) - define(`southsteps',7) - define(`weststeps',4) - define(`baselayers',10) - define(`eb',eval(baselayers+eaststeps)) - define(`ebs',eval(eb+southsteps)) - define(`under',7) - - azimuth = -45 # view angles - elevation = 25 - setview(azimuth,elevation,0) - # projected unit vectors - UX: Project(u,0,0) - UY: Project(0,-u,0) - UZ: Project(0,0,u) - # layer thickness in units of u - f= -(eaststeps*UX.y + southsteps*UY.y - weststeps*UX.y - northsteps*UY.y)/dnl - ((eaststeps+southsteps+weststeps+northsteps)*UZ.y) - # XY projection of 3D coords in units of u -define proj {UX*($1)+UY*($2)+UZ*($3)} - -define tread {line from UY/2 \ - to UY then to UY+UX then to UX then to (0,0) \ - then to UY/2 shaded rgbstring(treadcolor) \ - with .start at proj($1,$2,$3)+UY/2 } - -define wrect {line invis from (0,0) to UX*($4) \ - then to UX*($4)+UZ*($5) \ - then to UZ*($5) then to (0,0) with .start at proj($1,$2,$3) \ - shaded rgbstring(r,g,b)} - -define srect {line invis from (0,0) to UY*($4) then to UY*($4)+UZ*($5) \ - then to UZ*($5) then to (0,0) with .start at proj($1,$2,$3) \ - shaded rgbstring(r,g,b) } - # color blending -define(`blendwht',`between3D(`$1',`$2',`$3',`$4',1,1,1)') -define makergb { r = $1; g = $2; b = $3 } -define dorgb { gg = $2 - if $1==0 then { makergb(blendwht(gg,lightgrn)) } \ - else { makergb(blendwht(gg,darkgrn)) } } - -# East - for i=-under to baselayers do { - dorgb((i%2),0.2) - wrect(1,1,i*f,eaststeps-2,-f) } - for i=0 to eaststeps do { - dorgb((i%2),0.2) - wrect(i,1,(baselayers+i)*f,(eaststeps+1-i),-f) - tread(i,0,(baselayers+i)*f) - line from proj(i,1,(baselayers+i)*f) \ - to proj(i,1,(baselayers-1+i)*f) } -# South - for i=0 to eb do { - dorgb((i%2),0.4) - srect(eaststeps+1,0,i*f,southsteps+1,-f) } - for i=1 to southsteps do { - dorgb((i%2),0.4) - srect(eaststeps+1,i,(eb+i)*f,(southsteps+1-i),-f) - tread(eaststeps,i,(eb+i)*f) - line from proj(eaststeps+1,i,(eb+i)*f) \ - to proj(eaststeps+1,i,(eb+i-1)*f) } -# North - for i=-under to baselayers-northsteps-1 do { - dorgb((i%2),0.1) - srect(1,1,i*f,northsteps-1,-f) } - for i=1 to northsteps do { - dorgb((i%2),0.1) - srect(1,1,(baselayers-i)*f,i,-f) - wrect(0,1+i,(baselayers-i)*f,1,-f) - line from proj(0,1+i,(baselayers-i)*f) \ - to proj(0,1+i,(baselayers-i-1)*f) - line from proj(1,1+i,(baselayers-i)*f) \ - to proj(1,1+i,(baselayers-i-1)*f) - tread(0,i,(baselayers-i)*f) } -# West - for i=0 to ebs do { - dorgb((i%2),0.4) - wrect(eaststeps+1,southsteps+1,i*f,-(weststeps+1),-f) } - for i=0 to weststeps-1 do { - dorgb((i%2),0.4) - wrect(eaststeps-i,southsteps+1,(ebs+i+1)*f,-(weststeps-i),-f,) - srect(eaststeps-i,southsteps,(ebs+i+1)*f,1,-f) - if i!=weststeps-1 then { - line from proj(eaststeps-i,southsteps,(ebs+i+1)*f) \ - to proj(eaststeps-i,southsteps,(ebs+i)*f) } - line from proj(eaststeps-i,southsteps+1,(ebs+i+1)*f) \ - to proj(eaststeps-i,southsteps+1,(ebs+i)*f) - tread(eaststeps-(i+1),southsteps,(ebs+i+1)*f) } -# Corner lines - define(`dgreen',`outlined rgbstring(blendwht(0.2,darkgrn))') - line dgreen from proj(1,1,(baselayers-1)*f) to proj(1,1,-under*f) - line dgreen from proj(eaststeps+1,southsteps+1,ebs*f) \ - to proj(eaststeps+1,southsteps+1,-f) - line dgreen from proj(0,northsteps+1,(baselayers-northsteps)*f) \ - to last line.end-UX*(weststeps+1) then to last line.end \ - then to proj(eaststeps+1,0,-f) then to proj(eaststeps+1,0,eb*f) - ] -') - -ifelse(1,1,` -define(`DPL',`(project(`$1',`$2',`$3'))') -define(`ISL',` - S1: `$2'; E1: `$2' + `$3' - S2: `$4'; E2: `$4' + `$5' - `$1': line from S2 to intersect_(S1,E1,S2,E2) ') - -[ - bdp = 1.8 - bwd = 2.8 - bht = 1.5 - bth = bwd/10 - setview(-45,20,0) - - L1: line from DPL(0,0,0) to DPL(0,0,bht) \ - then to DPL(0,bwd,bht) \ - then to DPL(bdp,bwd,bht) \ - then to DPL(bdp,bwd,0) \ - then to DPL(bdp,0,0) \ - then to DPL(0,0,0) - L2: line from DPL(bth,bth,bht) to DPL(bth,bwd-bth,bht) \ - then to DPL(bdp-bth,bwd-bth,bht) \ - then to DPL(bdp-bth,bth,bht) \ - then to DPL(bth,bth,bht) - L3: line from DPL(bth,bth,0) to DPL(bth,bwd-bth,0) \ - then to DPL(bdp-bth,bwd-bth,0) \ - then to DPL(bdp-bth,bth,0) \ - then to DPL(bth,bth,0) - L4: line from DPL(bdp,bth,bht-bth) to DPL(bdp,bwd-bth,bht-bth) \ - then to DPL(bdp,bwd-bth,bth) \ - then to DPL(bth+bth,bwd-bth,bth) - L5: line from DPL(bdp-bth,0,bht-bth) to DPL(bth,0,bht-bth) \ - then to DPL(bth,0,bth) \ - then to DPL(bth,bwd-bth-bth,bth) - L6: line from DPL(0,0,bht) to DPL(bdp,0,bht) \ - then to DPL(bdp,bwd,bht) - L7: line from DPL(0,0,0) to DPL(0,bwd,0) \ - then to DPL(bdp,bwd,0) - ISL(L8,L4.start,UPy_,L4.end,UPz_) - ISL(L9,L4.start,UPy_,DPL(0,bwd,0),UPz_) - ISL(L10,L4.start,UPy_,L5.end,UPz_) - ISL(L11,L5.end,UPy_,L4.start,UPz_) - ISL(L12,L5.end,UPy_,DPL(bdp,0,bht),UPz_) - ISL(L13,L5.end,UPy_,L5.start,UPz_) - ISL(L14,DPL(bdp-bth,bth,bht),UPy_,DPL(bth,bwd-bth-bth,bht-bth),UPz_) - ISL(L15,L2.start,UPx_,DPL(bth,bwd-bth-bth,bht-bth),UPy_) - ISL(L16,DPL(bdp-bth,bth,bht),UPy_,DPL(bth,bwd-bth,bht),UPz_) - ISL(L17,DPL(bdp-bth,bth,bht),UPy_,DPL(bth+bth,bwd-bth,bht-bth),UPz_) - ISL(L18,DPL(bdp-bth,bth,bht),UPy_,DPL(bth+bth,bwd-bth,bht-bth),UPx_) - ISL(L19,L3.start,UPy_,L5.start+DPL(0,0,-bht+bth+bth),UPx_) - ISL(L20,L3.start,UPy_,L5.start+DPL(0,0,-bht+bth+bth),UPz_) - ISL(L21,L3.start,UPy_,DPL(bdp-bth,bth,0),UPz_) - ISL(L22,L3.start,UPy_,L4.start+DPL(0,0,-bht+bth+bth),UPz_) - ISL(L23,DPL(bth,bwd-bth,0),UPx_,L4.start+DPL(0,0,-bht+bth+bth),UPy_) - ISL(L24,L5.start,UPx_,DPL(bth,bth,bth),UPz_) - ISL(L25,L4.start,UPy_,DPL(bdp-bth,bwd-bth,bth),UPz_) - -ifelse(0,1,`for i=1 to 7 do { exec sprintf("\"L%g.s\" at L%g.start",i,i) } - for i=8 to 10 do { exec sprintf("\"L%g\" at L%g",i,i) }') -] with .sw at last [].se+(0.2,0) -') -.PE diff --git a/graphics/circuit_macros/examples/svg/EyeSVG.m4 b/graphics/circuit_macros/examples/svg/EyeSVG.m4 deleted file mode 100644 index 457abb8081..0000000000 --- a/graphics/circuit_macros/examples/svg/EyeSVG.m4 +++ /dev/null @@ -1,53 +0,0 @@ -.PS -# EyeSVG.m4 -gen_init - -define(`eye',`[ u = $1; v = 0.47*u; w = 0.25*u - shade(1, - arc thick 0 from (u/2,0) to (-u/2,0) with .c at (0,-u/3) - arc thick 0 to (u/2,0) with .c at (0,u/3) ) - circle diam v fill_(0.24) at (0,0) - circle diam w fill_(0) at (0,0) - circle thick 0 diam last circle.diam/2 fill_(1) at last circle.nw - circle diam last circle.diam-lthick at last circle outlined graystring(0.9) - ] ') - - skale = 2/3 - Bx: box wid 11*skale ht 8.5*skale fill_(0) at (0,0) - C[0]: Bx.se; C[1]: Bx.nw - d[5] = 0.92*Bx.ht - d[4] = 0.78*Bx.ht - d[3] = 0.62*Bx.ht - d[2] = 0.40*Bx.ht - d[1] = 0.25*Bx.ht - ane = atan2(Bx.ht,Bx.wid)*rtod_ - dax = 360/64 - da = 1 - for a=-int(ane/dax)*dax to 180-ane by dax do { - T1: intersect_(Bx.ne,C[(a>ane)],Bx,(Rect_(1,a+da))) - T2: intersect_(Bx.ne,C[(a>ane)],Bx,(Rect_(1,a))) - line outlined "white" shaded "white" from Bx to T1 then to T2 then to Bx - line outlined "white" shaded "white" from Bx to T1*(-1) \ - then to T2*(-1) then to Bx - } - for i=5 to 2 by -1 do { - C[i]: circle diam d[i] fill_(0) at Bx - for a=0 to 359 by dax do { - T1: Rect_(d[i]/2,a) - T2: Rect_(d[i]/2,a-da*2) - nx = int(distance(T1,T2)/lthick*1.5+0.5) - for h = 1 to nx-1 do { - spline 0.55 outlined "white" from h/nx between T1 and T2 \ - to 0.8 between Bx and T2 then to (Rect_(d[i]/4,a+31)) } - } - } - C[1]: circle thick 2 diam d[1] at Bx fill_(0.1) - eye(d[1]-4bp__) at (0,0) - for a=0 to 359 by dax do { - T1: (Rect_(d[1]/2-1bp__,a)) - T2: (Rect_(d[1]/2-1bp__,a+dax/2)) - line thick 0.4 from T1 to T2 then to 0.5 between Bx and T2 \ - then to 0.5 between Bx and T1 then to T1 shaded "white" - } - -.PE diff --git a/graphics/circuit_macros/examples/svg/FlowSVG.m4 b/graphics/circuit_macros/examples/svg/FlowSVG.m4 deleted file mode 100644 index 05f411cd6a..0000000000 --- a/graphics/circuit_macros/examples/svg/FlowSVG.m4 +++ /dev/null @@ -1,144 +0,0 @@ -.PS -# FlowSVG.m4 -gen_init(svg_font(sans-serif,11bp__,2.5bp__)) -ifdef(`FlowchartDefs_',,`include(../FlowchartDefs.m4)') - -define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl -define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl -define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl -define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl -define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl -define(`Beaublue',`rgbstring(0.74,0.83,0.9)')dnl -define(`Celadon',`rgbstring(0.67,0.88,0.69)')dnl - -# Accented characters -define(`svg_ccedilla',`svg_symbol(&`#'231;)')dnl -define(`svg_atilde',`svg_symbol(&`#'227;)')dnl - - linethick_(1.0) - arrowwid = 0.05 - arrowht = 0.1 - fillval = 0.9 - maxpsht = 20 - -define(`shad',`shaded rgbstring(0.9,0.8,0.7)') -define(`Below',`with .nw at last [].sw+(0,-0.25)') -TL: Here -Simple: [ - Fbox("svg_tt(`Fbox')",,shad) - Ftest("svg_tt(``Ftest'')",,shad) Below - Fdata("svg_tt(``Fdata'')",,,shad) Below - Fprep("svg_tt(``Fprep'')",) Below - Fkeying("svg_tt(``Fkeying'')") Below - Fkeyboard("svg_tt(``Fkeyboard'')") Below - Fdocument("svg_tt(``Fdocument'')",,shaded rgbstring(0.9,0.8,0.7)) Below - Fdelay("svg_tt(``Fdelay'')",,shaded Beaublue) Below - Fdisplay("svg_tt(``Fdisplay'')",,shaded Celadon) Below - Fstored("svg_tt(``Fstored'')",,shaded Thistle) Below - Fconnect(,,shaded Thistle) Below - Fconnect("45",wid boxwid ht boxht:45,shaded Thistle) \ - with .w at last [].e+(boxht/8,0) - "svg_tt(`Fconnect')" at last [].nw + (0,boxht/6) - ] with .nw at TL+(0.1,0); move from Simple.nw to TL - -#showbox_ -Complex: [ -Case: Fcase(, - "Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N - arrow down linewid/3 from last [].S - Fbox("Task 1.5",, shaded Thistle) with .N at Here - E:last [].E; S:last [].S], - "Test 2",Fbox("Task 2" "is bigger", wid fboxwid*1.2 ht fboxht*3/2, \ - shaded SeaGreen), - "Test 3",Fbox("Task 3",, shaded RubineRed)dnl - ) - - "svg_it(.N)" at Case.N rjust above - "svg_it(.S)" at Case.S rjust below - "svg_it(.E)" at Case.E ljust - "svg_it(.W)" at Case.W rjust - "svg_tt(`Fcase')" below at Case.s #+(0,-0.1) - -Whiledo: Fwhiledo("svg_it(i svg_lt n)",,,Fbox("Task"),"T" above ljust at Test.E) \ - with .nw at Case.ne+(0.25,0) - - "svg_it(.N)" at Whiledo.N rjust - "svg_it(.S)" at Whiledo.S rjust below - "svg_it(.E)" at Whiledo.E ljust - "svg_it(.W)" at Whiledo.W rjust - "svg_tt(`Fwhiledo')" below at Whiledo.s - -Repeatuntil: Frepeatuntil("svg_it(n svg_gt 5)",,,Fbox("Task"), - "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-0.5) - - "svg_it(.N)" at Repeatuntil.N rjust above - "svg_it(.S)" at Repeatuntil.S rjust below - "svg_it(.E)" at Repeatuntil.E ljust - "svg_it(.W)" at Repeatuntil.W rjust - "svg_tt(`Frepeatuntil')" below at Repeatuntil.se +(-0.0,0.1) - -Ifthenelse: Fifthenelse("svg_it(A svg_lt B)",,, - Fbox("False"), - Fbox("True",ht fboxht*1.2 wid fboxwid)dnl - ) with .nw at Repeatuntil.sw +(-0.5,-0.3) - - "svg_it(.N)" at Ifthenelse.N rjust above - "svg_it(.S)" at Ifthenelse.S below rjust - "svg_it(.E)" wid 12bp__ at Ifthenelse.E ljust - "svg_it(.W)" at Ifthenelse.W rjust - "svg_tt(`Fifthenelse')" below at Ifthenelse.s+(0,-0.15) - -Compound: [ right - ellipse shaded YellowGreen "Start" - arrow right linewid/2 - - Fbox("First task") with .W at Here - arrow down linewid/2 from last [].S - - Fifthenelse("Test 1",,, - Frepeatuntil("svg_it(i svg_geq 5)",,shaded Goldenrod,Fbox("Task")), - Fifthenelse("svg_it(A svg_lt B)",,shaded Goldenrod, - Fbox("Left"), - Fbox("Right"), - "T" at Test.E above ljust), - "T" at Test.E above ljust) with .N at Here - - A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.3) - - "svg_it(Compound statements)" at last [].A.end+(0.1,0) ljust above - - ] with .nw at Simple.ne+(0.1,0) - -Example: [ fillvalue = 0.8; awid = linewid/2; right_ - Start: ellipse wid boxwid/2 ht boxwid/3 shaded "green" - arrow right_ awid - B1: Fbox("Planejamento") - B2: Fbox("Execu`'svg_ccedilla`'svg_atilde`'o") with .W at B1.E+(awid*3,0) - B3: Fbox("Sele`'svg_ccedilla`'svg_atilde`'o") with .W at B2.E+(awid*3,0) - LT: Ftest("Avalia`'svg_ccedilla`'svg_atilde`'o do" "Planejamento", - wid fboxwid*1.5 ht fboxht*2.0, - shaded YellowGreen, - "Correto" at Box.e above ljust; - "Incompleto" at Box.w above rjust) with .S at 0.5 between B1.ne and B2.nw - arrow from B1.E to (LT.S,B1.E) then to LT.S - arrow from LT.W to (B1.N,LT.W) then to B1.N - arrow from LT.E to (B2.N,LT.E) then to B2.N - RT: Ftest("Avalia`'svg_ccedilla`'svg_atilde`'o da" \ - "Execu`'svg_ccedilla`'svg_atilde`'o", - wid fboxwid*1.5 ht fboxht*2.0, - shaded YellowGreen, - "Correto" at Box.e below ljust; - "Incompleto" at Box.w below rjust) with .N at 0.5 between B2.se and B3.sw - arrow from B2.E to (RT.N,B2.E) then to RT.N - arrow from RT.W to (B2.S,RT.W) then to B2.S - arrow from RT.E to (B3.S,RT.E) then to B3.S - B4: Fbox("Extra`'svg_ccedilla`'svg_atilde`'o") with .S at B3.N+(0,awid) - arrow from B3.N to B4.S - arrow up_ awid from B4.N - B5: Fbox("Conclus`'svg_atilde`'o") - arrow up_ awid from B5.N - ellipse wid boxwid/2 ht boxwid/3 shaded "red" -] with .nw at last [].Compound.sw+(0,2.5*fboxht) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/FontsSVG.m4 b/graphics/circuit_macros/examples/svg/FontsSVG.m4 deleted file mode 100644 index 57dcd431a5..0000000000 --- a/graphics/circuit_macros/examples/svg/FontsSVG.m4 +++ /dev/null @@ -1,31 +0,0 @@ -.PS -# FontsSVG.m4 -gen_init - textht = 0.2 - -define(`ft',`{ svg_font(`$1',`$2',`$3',"`$1'" ljust) - move to (B.w+(2.5,0),Here) - svg_font(`$1',`$2',`$3',"ABCDEFG abcdefg" ljust)} - move down 0.5; right_') - -B: box wid 5.5 ht 7 - move to B.nw+(0.5,-0.5) - - ft(Arial) - ft(Helvetica) - ft(Times) - ft(Courier) - ft(Cursive) - ft(Verdana) - ft(Georgia) - ft(Palatino) - ft(Garamond) - ft(Bookman) -# ft(Comic Sans MS) - ft(Trebuchet MS) - ft(Arial Black) - ft(Impact) - - textht = 0.12 - "These may be viewer-dependent" above ljust at B.sw -.PE diff --git a/graphics/circuit_macros/examples/svg/FourbarSVG.m4 b/graphics/circuit_macros/examples/svg/FourbarSVG.m4 deleted file mode 100644 index 376fbe8efe..0000000000 --- a/graphics/circuit_macros/examples/svg/FourbarSVG.m4 +++ /dev/null @@ -1,59 +0,0 @@ -.PS -# FourbarSVG.m4 -# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass -gen_init -scale = 25.4 - - a = 18 - b = 73 - c = 47 - d = 72 - A0: Here - B0: A0+(d,0) - circlerad = 1 - -define(`pivot',`[ - C: circle - line down_ 4 from C+(2,0) - arc from last line.start to C+(-2,0) with .c at C - line down_ 4 - B: line thick 1.6 right 7 with .c at (C,Here) - thinlines_ - sep = 0.9 - nhash = B.len/sep -#for i=0 to nhash do { line down sep left sep from B.start+(i/nhash*B.len,0) } - for i=0 to nhash do { line down sep left sep from B.end-(i/nhash*B.len,0) } - thicklines_ - ]') - - pivot with .C at A0; "svg_it(A`'svg_sub(0))" at A0-(5,0) - circle dashed rad a at A0 - pivot with .C at B0; "svg_it(B`'svg_sub(0))" at B0-(5,0) - "svg_it(d = A`'svg_sub(0)B`'svg_sub(0))" at 0.5<A0,B0> - - B1: Cintersect(A0,a+b,B0,c) - B2: Cintersect(A0,b-a,B0,c) - arc dashed from B1 to B2 with .c at B0 - - A0B1: line thick 1.6 from A0 to B1 chop 2 chop 0 - line thick 1.6 from B0 to B1 chop 2 chop 0 "svg_it(c)" ljust - circle fill_(1) at B1; "svg_it(B`'svg_sub(1))" wid 3 at B1+(5,0) - A1: circle fill_(1) at LCintersect(A0B1,A0,a,R) - "svg_it(A`'svg_sub(1))" at A1+(5,0) - - A2: b/(b-a) between B2 and A0; "svg_it(a)" at 0.4<A2,A0> above rjust - "svg_it(b)" at 0.4<A1,B1> above rjust - A2B2: line thick 1.6 from A2 to B2 - line thick 1.6 from B0 to B2 chop 2 chop 0 - circle fill_(1) at B2; "svg_it(B`'svg_sub(2))" at B2+(5,0) - circle fill_(1) at A2; "svg_it(A`'svg_sub(2))" at A2+(5,0) - - thinlines_ - line from B0+(3,0) right 4 - ArcAngle(Here,B0,B1,5) ->; "svg_psi`'svg_sub(0)" at last arc.ne above ljust - ArcAngle(B1,B0,B2,8) ->; "svg_psi" at last arc.n+(-3,0) above - ArcAngle(A1,A0,B2,b*0.45) ->; "svg_theta" at last arc.start+(0,4) - line from A0+(3,0) right 8 - ArcAngle(Here,A0,B1,9) -> ; "svg_theta`'svg_sub(0)" at last arc.start+(2,2) - -.PE diff --git a/graphics/circuit_macros/examples/svg/FusesSVG.m4 b/graphics/circuit_macros/examples/svg/FusesSVG.m4 deleted file mode 100644 index a421c45b57..0000000000 --- a/graphics/circuit_macros/examples/svg/FusesSVG.m4 +++ /dev/null @@ -1,39 +0,0 @@ -.PS -# `FusesSVG.m4' -cct_init(svg_font(sans-serif,11bp__)) - -movewid = 0.25 - - {fuse ; {"`fuse'" at last line.c+(0,-0.2)} - move - fuse(,D) ; {"`fuse(,D)'" at last line.c+(0,-0.2)} - move - fuse(,B) ; {"`fuse(,B)'" at last line.c+(0,-0.2)} - move - fuse(,C) ; {"`fuse(,C)'" at last line.c+(0,-0.2)} - move - fuse(,S) ; {"`fuse(,S)'" at last line.c+(0,-0.2)} - move - fuse(,SB) ; {"`fuse(,SB)'" at last line.c+(0,-0.2)} - } - move down; right_ - { - cbreaker; {"`cbreaker'" at last line.c+(0,-0.25)} - move - cbreaker(,R); {"`cbreaker(,R)'" at last line.c+(0,-0.25)} - move - cbreaker(,,D); {"`...(,,D)'" at last line.c+(0,-0.25)} - move - cbreaker(,,T); {"`...(,,T)'" at last line.c+(0,-0.25)} - move - cbreaker(,,TS); {"`...(,,TS)'" at last line.c+(0,-0.25)} - } - move down; right_ - { - fuse(,HB) ; {"`fuse(,HB)'" at last line.c+(0,-0.2)} - move - fuse(,HC,0.5,0.3) ; {"`(,HC,0.5,0.3)'" ljust at last line.start+(0,-0.25)} - } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/GeometrySVG.m4 b/graphics/circuit_macros/examples/svg/GeometrySVG.m4 deleted file mode 100644 index 38e748d7e3..0000000000 --- a/graphics/circuit_macros/examples/svg/GeometrySVG.m4 +++ /dev/null @@ -1,154 +0,0 @@ -.PS -# Geometry.m4 -# Some constructions from https://tex.stackexchange.com/ -gen_init -maxpswid = 9 - -Fig1: [ -# FourbarSVG.m4 -# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass -ls = 1/25.4 # local scale - - a = 18*ls - b = 73*ls - c = 47*ls - d = 72*ls - A0: Here - B0: A0+(d,0) - circlerad = 1*ls - -define(`pivot',`[ - C: circle - line down_ 4*ls from C+(2*ls,0) - arc from last line.start to C+(-2*ls,0) with .c at C - line down_ 4*ls - B: line thick 1.6 right 7*ls with .c at (C,Here) - thinlines_ - sep = 0.9*ls - nhash = B.len/sep - for i=0 to nhash do { line down sep left sep from B.end-(i/nhash*B.len,0) } - thicklines_ - ]') - - pivot with .C at A0; "A`'svg_sub(0)" at A0-(5,0)*ls - circle dashed rad a at A0 - pivot with .C at B0; "B`'svg_sub(0)" at B0-(5,0)*ls - "d = A`'svg_sub(0)B`'svg_sub(0)" at 0.5<A0,B0> - - B1: Cintersect(A0,a+b,B0,c) - B2: Cintersect(A0,b-a,B0,c) - arc dashed from B1 to B2 with .c at B0 - - A0B1: line thick 1.6 from A0 to B1 chop 2*ls chop 0 - line thick 1.6 from B0 to B1 chop 2*ls chop 0 "c" ljust - circle fill_(1) at B1; "B`'svg_sub(1)" wid 3*ls at B1+(5,0)*ls - A1: circle fill_(1) at LCintersect(A0B1,A0,a,R) - "A`'svg_sub(1)" at A1+(5,0)*ls - - A2: b/(b-a) between B2 and A0; "a" at 0.4<A2,A0> above rjust - "b" at 0.4<A1,B1> above rjust - A2B2: line thick 1.6 from A2 to B2 - line thick 1.6 from B0 to B2 chop 2*ls chop 0 - circle fill_(1) at B2; "B`'svg_sub(2)" at B2+(5,0)*ls - circle fill_(1) at A2; "A`'svg_sub(2)" at A2+(5,0)*ls - - thinlines_ - line from B0+(3*ls,0) right 4*ls - ArcAngle(Here,B0,B1,5*ls) ->; "svg_psi`'svg_sub(0)" at last arc.ne above ljust - ArcAngle(B1,B0,B2,8*ls) ->; "svg_psi" at last arc.n+(-3*ls,0) above - ArcAngle(A1,A0,B2,b*0.45) ->; "svg_theta" at last arc.start+(0,4*ls) - line from A0+(3*ls,0) right 8*ls - ArcAngle(Here,A0,B1,9*ls) ->; "svg_theta`'svg_sub(0)" \ - at last arc.start+(2,2)*ls - ] - -Fig2: [ -# FourbarSVG.m4 -# https://tex.stackexchange.com/questions/609452/help-drawing-a-more-sophisticated-right-triangle-with-tikz-or-something-else - - textkht = 12/72 - unit = 0.6 - C: Here; { "C" at C rjust below } - B: C+(4*unit,0); { "B" at B ljust below } - A: C+(0,3*unit); { "A" at A rjust above } - H: PerpTo(C,A,B); { "H" at H ljust above } - line from C to H then to B then to C shaded rgbstring(0.5,0.8,0.9) -# line from C to H then to B then to C shaded "CornflowerBlue" - line from C to H then to A then to C shaded rgbstring(0.8,0.9,0.7) -# line from C to H then to A then to C shaded "SpringGreen" - ArcAngle(C,A,B,unit*0.4) - ArcAngle(C,A,B,unit*0.5) - ArcAngle(A,B,C,unit*0.5,,"svg_theta" rjust) - ArcAngle(B,C,H,unit*0.5); {"svg_theta" at C+(unit*0.3,unit*0.17) } - ArcAngle(B,C,A,unit*0.6) - RightAngle(B,C,A,unit*0.17) - RightAngle(C,H,A,unit*0.17) - ] with .nw at Fig1.sw+(0.2,0) - - -Fig3: [ ls = 3/4 # local scale -# https://tex.stackexchange.com/questions/593272/drawing-complex-geometry - P: dot(at Here); "P" at P.s below - N: dot(at P+(3.5*ls,1.5*ls)); "N" at N.se ljust below - O: dot(at (N,P)); "O" at O.s below - R: dot(at 1/3 between O and P);"R" at R.s below - M: dot(at (R,N)); "M" at M.se ljust below - Q: dot(at (M.x,M.y+distance(M,N)/distance(N,O)*distance(P,O)));"Q" at Q.e ljust - line from P to Q then to N then to O - B: line to P chop -0.3 - line from M to N - Pu: line from R to Q chop 0 chop -0.3 - H: line from P to N chop 0 chop -0.3 - X: dot(at Intersect_(Pu,H)); "X" at X.se ljust below - thinlines_ - RightAngle(Q,M,N) - RightAngle(Q,N,H.end) - RightAngle(N,O,B.start) - ArcAngle(N,P,Q,0.4); "svg_beta" at last arc.ne above ljust - ArcAngle(O,P,N,0.5); "svg_alpha" at last arc.start+(5bp__,8bp__) - ArcAngle(R,Q,N,0.5); "svg_alpha" at last arc.start+(8bp__,-5bp__) - ] with .sw at Fig2.e+(-0.2,-0.7) - -Fig4: [ ls = 2/3 # local scale - A: Here; "A" at A above - B: A+(-1*ls,-3.5*ls); "B" at B below rjust - C: B+(4.6*ls,0); "C" at C below ljust - AB: line from A to B - BC: line from B to C - CA: line from C to A - - perpto(A,BC,L); "L" at L below - AL: line from A to L; RightAngle(A,L,C) - - angleLAC = atan2(C.x-L.x,A.y-L.y) - S: move from A to (sin(angleLAC/2),-cos(angleLAC/2)) - AW: line from A to Intersect_(S,BC) - W: Here; "W" at W below rjust - - perpto(C,AB,N); "N" at N above rjust - CN: line from C to N; RightAngle(C,N,B) - - perpto(B,CA,M); "M" at M above - CM: line from B to M; RightAngle(B,M,C) - - H: Intersect_(CN,AL); "H" at H +(4bp__,10bp__) - - thinlines_ - Equidist3(B,L,N,CC1,c1rad); C1: circle rad c1rad at CC1 - Equidist3(B,W,N,CC2,c2rad); C2: circle rad c2rad at CC2 - Equidist3(B,C,N,CC3,c3rad); C3: circle rad c3rad at CC3 - Equidist3(W,C,M,CC4,c4rad); C4: circle rad c4rad at CC4 - thicklines_ - - Z: LCintersect(AW,CC2,C2.rad); "Z" at Z+(-5bp__,-5bp__) - HZ: move from H to Z - Y: LCintersect(HZ,CC4,C4.rad,R); "Y" at Y above - X: LCintersect(HZ,CC2,C2.rad); "X" at X above rjust - - Loopover_(`P',`dot(at P)',X,Y,Z) - - line dashed from X to Y chop -linewid/2 - RightAngle(A,Z,Y) - ] with .sw at (Fig3.e,Fig2.s) - -.PE diff --git a/graphics/circuit_macros/examples/svg/GrayCodeSVG.m4 b/graphics/circuit_macros/examples/svg/GrayCodeSVG.m4 deleted file mode 100644 index b878e63d8e..0000000000 --- a/graphics/circuit_macros/examples/svg/GrayCodeSVG.m4 +++ /dev/null @@ -1,79 +0,0 @@ -.PS -# Gray_code.m4 -gen_init - -GrayCode: [ - outer = 4 - inner = 0.75 - nbits = 10 - -C: circle diam outer - circle diam inner at C - sectors = 2^nbits - lthk = (outer-inner)/2/nbits - for bit = 1 to nbits do { - for is = 2^(bit-1) to sectors by 2^(bit+1) do { - startang = is/sectors*360 - endang = min(startang+(2^bit)/sectors*360,360) - arcd(C,outer/2-(bit-0.5)*lthk,startang,endang) thick lthk/(1bp__) - } - } - ] -Crossbar: [ -#.PS -# Crossbar switch -#gen_init - svg_font(sans-serif,11bp__) - circlerad = 0.12 - boxwid = 0.18 - boxht = 0.18 - rathick = 1.5 - rawd = rathick*4 bp__ - raht = rawd*2 - boxdist = boxwid*1.8 - -`define bcoord {($2,-($1))*boxdist}' -`define redarrow { arrow ht raht wid rawd thick rathick color "red" }' - -`define cbx {' - thinlines_ - n = $+ - 1 - for i=0 to n do { - line color "blue" from bcoord(i,0) to bcoord(i,n) - line color "blue" from bcoord(0,i) to bcoord(n,i) - C[i]: circle invis at bcoord(i,-1.5) - } - for i=0 to n do { - exec sprintf("col = $%g",i+1) - redarrow from C[i].e right 1.25*boxwid - redarrow from C[i].w+(-boxwid,0) right raht - for j=0 to n do { - B: box color "blue" shaded "yellow" at bcoord(i,j) - if j==col then { - line color "blue" from B.s to B.e - line thick rathick color "red" from C[i].e to B.w \ - then to B.n then to (B.x,C[0].y+(2+j*2/3)*boxht) - continue to (C[j].x-(2+j*2/3)*boxht,Here.y) - continue to (Here,C[j]) then to C[j].w - } \ - else { - line color "blue" from B.n to B.s - line color "blue" from B.w to B.e - } - } - } - thicklines_ - for i=0 to n do { - circle thick 1.5 outlined "blue" shaded "yellow" at C[i] \ - sprintf("ifpostscript(,ifsvg(,\large))%g",i) - } - } - -[ - cbx(3,6,0,5,2,7,1,4) - ] at 4,4 - - command "</g>" # end font -#.PE - ] with .w at last [].e+(0.25,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/GroundsSVG.m4 b/graphics/circuit_macros/examples/svg/GroundsSVG.m4 deleted file mode 100644 index c1a9589f2d..0000000000 --- a/graphics/circuit_macros/examples/svg/GroundsSVG.m4 +++ /dev/null @@ -1,46 +0,0 @@ -.PS -# `GroundsSVG.m4' -cct_init(svg_font(sans-serif,11bp__)) - -sep = 0.65 -Ground: ground - move right sep -GT: ground(,T) - move right sep -GF: ground(,,F) -sep = 0.55 - move right sep -GE: ground(,,E) - move right sep - -B: Here+(0,-0.5) -D: B+(0,11bp__) - { "`ground'" wid 36bp__ at (Ground,B) - "`ground'(,T)" at (GT,B)+(0,11bp__) - "(,,F)" at (GF,B) - "(,,E)" at (GE,D)} - - -GS: ground(,,S) - move right sep -GS90: [ground(,,S,90) ] with .n at Here - move right sep from GS90.n -GQ: ground(,,Q) - move right sep -GL: ground(,,L) - move right sep -GP: ground(,,P) - move right sep -GPA: ground(,T,PA) - -C: Here+(0,-0.5) -E: C+(0,11bp__) - "(,,S)" at (GS,C) - "(,,S,90)" at (GS90,E) - "(,,Q)" at (GQ,C) - "(,,L)" at (GL,E) - "(,,P)" at (GP,C) - "(,T,PA)" wid 32bp__ at (GPA,E) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/HeadersSVG.m4 b/graphics/circuit_macros/examples/svg/HeadersSVG.m4 deleted file mode 100644 index 15e4cda70b..0000000000 --- a/graphics/circuit_macros/examples/svg/HeadersSVG.m4 +++ /dev/null @@ -1,42 +0,0 @@ -.PS -# HeadersSVG.m4 -log_init(svg_font(sans-serif,10bp__)) - - Header - {"svg_it(P1)" wid 15bp__ at last [].P1 rjust - `"Header"' wid 45bp__ at last [].s+(0,-10pt__) - "svg_it(P2)" at last [].P2 rjust - thinlines_ - arrow <- from last [].Block.ne-(0,0.1) up 0.15 right 0.15 - "svg_it(Block)" ljust - thicklines_ } - - Header(2,3,8mm__,10mm__) with .nw at last [].ne+(0.75,-0.05) - {"svg_it(P1)" at last [].P1 rjust - "`Header(2,3,8mm__,10mm__)'" at last [].s+(0,-10pt__) - "svg_it(P2)" at last [].P2 ljust - "svg_it(P5)" at last [].P5 rjust - "svg_it(P6)" at last [].P6 ljust} - - left_ - Header(2,4,,,fill_(0.9)) with .sw at last [].se+(0.75,0) - {"svg_it(P1)" at last [].P1 rjust_ - "`left_; Header(2,4,,,fill_(0.9))'" at last [].s+(0,-23pt__) - "svg_it(P8)" at last [].P8 ljust_} - - down_ - Header(2,8) with .nw at last [].ne+(0.75,0) - {"svg_it(P1)" at last [].P1 ljust - "svg_it(P2)" at last [].P2 ljust - "`down_; Header'(2,8)" at last [].s+(0,-10pt__) - "svg_it(P15)" at last [].P15 rjust - "svg_it(P16)" at last [].P16 rjust} - {thinlines_ - arrow <- right 0.15 from last [].PinP1.e ; {move right 0.45} - "svg_it(PinP1)" ljust - arrow <- right 0.15 from last [].PinP2.e - "svg_it(PinP2)" ljust - thicklines_ } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/HeathkitSVG.m4 b/graphics/circuit_macros/examples/svg/HeathkitSVG.m4 deleted file mode 100644 index fc7ffd2158..0000000000 --- a/graphics/circuit_macros/examples/svg/HeathkitSVG.m4 +++ /dev/null @@ -1,343 +0,0 @@ -.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 diff --git a/graphics/circuit_macros/examples/svg/I2LSVG.m4 b/graphics/circuit_macros/examples/svg/I2LSVG.m4 deleted file mode 100644 index 835ecaec53..0000000000 --- a/graphics/circuit_macros/examples/svg/I2LSVG.m4 +++ /dev/null @@ -1,78 +0,0 @@ -.PS -# I2L.m4 -log_init(svg_font(sans-serif,11bp__)) - -[ - down_ -T1: bi_trans(,R,BC2uEBU) - dy = T1.C0.y-T1.C1.y - dx = T1.C0.x-T1.Bulk.x - up_ -Q1: bi_trans(,,BC1dEBU) with .C1 at (T1.C2.x+dy+dx+dx,T1.C0.y-dy) -Q2: bi_trans(,,BC1dEBU) with .C1 at Q1.E+(0,-dy*2) -Q3: bi_tr(,,) with .B at Q2.C0+(2*dy,0) - down_ -T2: bi_trans(,R,BC1uEBU) with .C1 at (Q3.C.x+2*dx+2*dy,Q1.C0.y+dy) - up_ -X1: bi_tr(,,) with .B at (T2.C0.x+dy+dx,Q1.C0.y) -X2: bi_tr(,,) with .B at (X1.B,Q3.C) - - line down dx from Q2.E -G: dot - line from T1.B to (T1.B,G) then to (X1.E.x+dy,G.y) then to X1.E+(dy,0) \ - then to X1.E - line from X2.E right dy; dot - - line from Q1.E down dy then to (T1.B.x,Q1.E.y-dy); dot - line from T1.C0 to (Q3.B,T1.C0) then to Q3.B; dot; line to Q2.C0 - -A: dot(at (T1.B,Q1.B)-(dx,0)); { "svg_it(A)" wid 0.15 rjust } - line to Q1.B - line from T1.C2 to (T1.C2,Q1.B); dot - - line from Q2.B to (A,Q2.B); dot; { "svg_it(B)" rjust } - line right dy from T1.C1 then down T1.C1.y-Q2.B.y; dot - -VB: dot(at (T2.E.x+2*dx,T1.E.y+dy)); { "svg_it(V`'svg_sub(B))" ljust } - line to (T1.E,Here) then to T1.E - line from T2.E to (T2.E,VB); dot - - line from Q1.C1 to (Q3.C,Q1.C1) then to Q3.C; dot; line to X2.B - - line from Q1.C0 to X1.B - dot(at Q1.C0+(dy,0)); line to (Here,Q2.C1) then to Q2.C1 - - line from Q3.E to (Q3.E,G); dot; ground - - line from T2.B to (T2.B,G); dot - - line from T2.C1 to (T2.C1,X1.B); dot - "svg_it(~(A+B))" wid textht*1.5 below at Here+(0,-2pt__) - - line from T2.C0 to (X2.B,T2.C0) then to X2.B; dot - "svg_it(~(A+(~B)))" below at (T2.E,Here)+(0pt__,-2pt__) - -] - -[ -right_ - -jog = AND_ht/2*L_unit - - X1: NOR_gate - line right jog from X1.Out; "svg_it(~(A+B))" ljust - X2: NOR_gate at X1+svec_(0,-AND_ht*3/2) - line right jog from X2.Out; "svg_it(~(A+(~B)))" ljust - line left jog from X2.In2 - right_ - NOT: NOT_gate with .Out at Here - line left jog from NOT.In1 then up X1.In2.y-NOT.In1.y; dot - line from X1.In2 to Here chop 0 chop -jog - B: dot; "svg_it(B)" rjust - line from X1.In1 to (B,X1.In1); dot; "svg_it(A)" wid 0.15 rjust - line left jog from X2.In1 then up X1.In1.y-X2.In1.y; dot - -] with .e at last [].w-(1,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/Incl.jpg b/graphics/circuit_macros/examples/svg/Incl.jpg Binary files differdeleted file mode 100644 index 80632b54e9..0000000000 --- a/graphics/circuit_macros/examples/svg/Incl.jpg +++ /dev/null diff --git a/graphics/circuit_macros/examples/svg/InclepsSVG.m4 b/graphics/circuit_macros/examples/svg/InclepsSVG.m4 deleted file mode 100644 index 501329f9d6..0000000000 --- a/graphics/circuit_macros/examples/svg/InclepsSVG.m4 +++ /dev/null @@ -1,90 +0,0 @@ -.PS -# InclepsSVG.m4 : Illustrating one way to import and overwrite jpg in svg -# A bit messy, but it works. This file has to be processed -# by m4 in the usual way and then twice by dpic, eg -# m4 svg.m4 SVGconfig.m4 InclepsSVG.m4 > InclepsSVG.pic -# dpic -v InclepsSVG.pic > InclepsSVG.svg -# dpic -v InclepsSVG.pic > InclepsSVG.svg - -# The double processing is needed because svg coordinates are to the right -# and down. We have to store the coordinates of the nw corner and use them -# on the second pass. - -divert(-1) -###################################################################### -# Macros to simplify inclusion and positioning of raster image files such -# as png or jpg or files with mime type of "image/svg+xml" - - `svg_init_include([Unique_name]) - Put this (once) before all drawing commands - in the diagram. It opens a [] block for the - total diagram and creates the file - Unique_name.dim (default SVGinsertTemp.dim).' -define(`svg_init_include', -`define(`M4IP_uniq',`ifelse(`$1',,SVGinsertTemp,`$1')')dnl - M4IP_NW: (0,0); m4IP_nw = 0; m4IP_lth = lthick - sh "touch M4IP_uniq.dim" - copy "M4IP_uniq.dim" - [ M4IP_NW: M4IP_NW; { move to M4IP_NW } ') - - `svg_include(filename, wid, ht, [position],[attrib]) - Insert bitmap at specified position; also create - an invis box of the same size and location. - arg1= path to image file - arg2= picture width in drawing units - arg3= picture height in drawing units - arg4= position attribute e.g. - Pic: svg_include(Incl.jpg,2,3, with .sw at (1,4)) - arg5= additional svg image attributes in the sprintf - string, e.g. - clip-path=\"polygon(5%% 0%%, 100%% 0%%, 100%% 100%%, 5%% 100%%)\" (distances - in percent to top-left, top-right, bottom-right, bottom-left clip corners, - or in pixels) ' -define(`svg_include',`box invis wid `$2' ht `$3' `$4' -define(`m4xpx',`(last box.w.x-M4IP_NW.x+m4IP_lth/2)/(1px__)')dnl -define(`m4ypx',`(M4IP_NW.y-last box.n.y+m4IP_lth/2)/(1px__)')dnl -define(`m4wdpx',`(`$2')/(1px__)')dnl -define(`m4htpx',`(`$3')/(1px__)')dnl -if m4IP_nw then { command sprintf(\ - "<image x=\"%g\" y=\"%g\" width=\"%g\" height=\"%g\"dnl - xlink:href=\"`$1'\" `$5' />", m4xpx,m4ypx,m4wdpx,m4htpx) } ') - - `svg_end_include - Put this before .PE after all drawing commands. - It closes the [] block and writes to Unique_name.dim' -define(`svg_end_include',`] with .M4IP_NW at M4IP_NW - print sprintf("m4IP_nw=1; m4IP_lth=%g; M4IP_NW:(%g,%g)",lthick,\ - last [].w.x+3*m4IP_lth/2, last [].n.y+3*m4IP_lth/2) > "M4IP_uniq.dim" - undefine(`M4IP_uniq') ') - -###################################################################### -divert(0)dnl - -darrow_init -svg_init_include - - -# This jpg is 242 px x 321 px - Picture: svg_include(Incl.jpg, 242px__, 321px__, with .w at (1,0)) - - define(`backarrow',`darrow(`$1',,,2pt__,6pt__,6pt__,<-|)') - thinlines_ - backarrow( from boxcoord(Picture,0.4,0.95) up 0.4 right 0.7 ) - "Basket" wid 0.45 with .w at Here+(2bp__,0) - backarrow( from boxcoord(Picture,0.9,0.41) up 0.2 right 0.5 ) - "Ball" wid 0.3 with .w at Here+(2bp__,0) - backarrow( from boxcoord(Picture,0.85,0.32) up 0.2 right 0.5 ) - "Star" wid 0.3 with .w at Here+(2bp__,0) - "Player" wid 0.43 with .w at last "".w+(0,-0.15) - -#for i=3 to 1 by -1 do { -# Picture: svg_include(Incl.jpg, i/4*242px__, i/4*321px__, -# with .nw at last box.nw+(0.125,-0.25)) } - -# P2: svg_include(Incl.jpg, 242px__, 321px__, -# with .w at Picture.e+(1.25,0), -# clip-path=\"polygon(30 0, 100%% 0%%, 100%% 100%%, 30 321)\" ) - -svg_end_include - -.PE diff --git a/graphics/circuit_macros/examples/svg/InductorsSVG.m4 b/graphics/circuit_macros/examples/svg/InductorsSVG.m4 deleted file mode 100644 index 9c9e1476db..0000000000 --- a/graphics/circuit_macros/examples/svg/InductorsSVG.m4 +++ /dev/null @@ -1,47 +0,0 @@ -.PS -# `Inductors.m4' -cct_init(svg_font(sans-serif,10pt__)) -textwid = 1.5 -movewid = 2 pt__ -hm = 2.1 -vm = 0.28 - -hm = 2.05 -vm = 0.28 -{ {inductor ; move ; "`inductor '" ljust} - move right_ hm - {inductor(,W); move ; "`inductor(,W) '" ljust} - move right_ hm - {inductor(,L); move ; "`inductor(,L) '" ljust} -} - move down vm; right_ -{ {inductor(,,3,M) ; move ;"`...(,,3,M) '" ljust} - move right_ hm - {inductor(,W,6,P1); variable; move; "`...(,W,6,P1); variable'" ljust} - move right_ hm+5bp__ - {inductor(,L,9,K); move ;"`...(,L,9,K) '" ljust} -} - - move down vm; right_ -{ {I:inductor(,,,M3); addtaps(-,1/2,-dimen_/6); move; `"...(,,,M3)"' ljust - {`"addtaps(-,1/2,-dimen_/6)"' ljust at (I.start,last ""+(0,-textht*3/2)) } - } - move right_ hm - {ebox(,,,0) ; move ;"`ebox(,,,0) '" ljust} - move right_ hm -10bp__ - {TI: tapped(`ebox(,,,0)',-,1/4,-dimen_/6,3/4,-dimen_/6) ; move ; - "`tapped(`ebox(,,,0)','" ljust at Here+(10bp__,-5bp__) \ - "-,1/4,-dimen_/6," ljust "3/4,-dimen_/6)" ljust - "svg_it(Tap1)" at TI.Tap1 rjust below - "svg_it(Tap2)" at TI.Tap2 ljust below } -} - - move down vm*3/2; right_ -{ {shielded(`inductor(,,,M)') ; move - `"shielded(`inductor(,,,M)')"' ljust - move to (3rd last line.start,Here) - shielded(`ebox(,,,0)',R) ; move; `"shielded(`ebox(,,,0)',R)"' ljust } -} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/JackSVG.m4 b/graphics/circuit_macros/examples/svg/JackSVG.m4 deleted file mode 100644 index 6af8b6b301..0000000000 --- a/graphics/circuit_macros/examples/svg/JackSVG.m4 +++ /dev/null @@ -1,75 +0,0 @@ -.PS -# `Jack.m4' -cct_init(svg_font(sans-serif,10bp__)) - -P: [ - P1: plug - "A" wid 0.1 at P1.A rjust - "B" at P1.B rjust - "TB" at P1.TB ljust above - "TA" at P1.TA ljust below - P2: plug(,R) with .B at P1.A+(0.85,0) - "A" wid 0.1 at P2.A rjust - "B" at P2.B rjust - P3: plug(,3) with .A at P2.B+(0.85,0) - "A" at P3.A rjust - "B" at P3.B rjust - "C" at P3.C rjust - P4: plug(L,3R) with .A at P3.A+(1,0) - "A" wid 0.1 at P4.A ljust - "B" at P4.B ljust - "C" at P4.C ljust - `"plug"' below at P1.s+(0,-0.1) - `"plug(,R)"' below at P2.s+(0,-0.1) - `"plug(,3)"' below at P3.s+(-0.1,-0.1) - `"plug(L,3R)"' below at P4.s+(0.1,-0.1) -] - -L: [ - J1: jack - thinlines_ - "L" wid 0.1 rjust at J1.L - arrow <- right 0.1 from J1.F; "F" ljust - arrow <- down 0.1 from J1.G then left 0.1 ; "G" rjust - thicklines_ - J2: jack(,LMBS) with .F at J1.F+(1.2,0) - thinlines_ - "L" rjust at J2.L - arrow <- from J2.LM left 0.25; "LM" rjust - arrow <- from J2.LB left 0.25; "LB" rjust - "S" rjust at J2.S - thicklines_ - J3: jack(L,RLS) with .F at J2.F+(0.4,0) - thinlines_ - "L" ljust at J3.L - "S" ljust at J3.S - thicklines_ - J4: jack(L,RLBLMLMS) with .F at J3.F+(1,0) - thinlines_ - "L1" ljust at J4.L1 - arrow <- right 0.3 from J4.LM1; "LM1" ljust - "L2" ljust at J4.L2 -# arrow <- right 0.3 from J4.LM2; "LM2" ht 11pt__ ljust - arrow <- right 0.3 from J4.LM2; "LM2" ljust - "S" ljust at J4.S - "L" ljust at J4.L - arrow <- right 0.2 from J4.LB ; "LB" ljust - J5: jack(,RSBSMLB) with .F at J4.F+(1.95,0) - thinlines_ - "L" rjust at J5.L - "S" rjust at J5.S - "S1" rjust at J5.S1 - arrow <- left 0.3 from J5.SM1; "SM1" rjust - arrow <- left 0.25 then left 0.1 down 0.05 from J5.LB; "LB" rjust - arrow <- left 0.25 then left 0.1 up 0.05 from J5.SB; "SB" rjust - thicklines_ - - `"jack"' below at J1.s+(0,-0.15) - `"jack(,LMBS)"' at (J2,last "") - `"..(L,RLS)"' at (J3,last "") - `"..(L,RLBLMLMS)"' at (J4,last "") - `"..(,RSBSMLB)"' wid 72bp__ at (J5,last "") -] with .nw at P.sw + (0,0.1) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/LgateSVG.m4 b/graphics/circuit_macros/examples/svg/LgateSVG.m4 deleted file mode 100644 index 7a8cf06d22..0000000000 --- a/graphics/circuit_macros/examples/svg/LgateSVG.m4 +++ /dev/null @@ -1,153 +0,0 @@ -divert(-1) -# LgateSVG.m4 -########################################################################### - -define(`And',`GenLogGate(AND,$@)') -define(`Nand',`GenLogGate(NAND,$@)') -define(`Or',`GenLogGate(OR,$@)') -define(`Nor',`GenLogGate(NOR,$@)') -define(`Xor',`GenLogGate(XOR,$@)') -define(`Nxor',`GenLogGate(NXOR,$@)') -define(`Not',`GenLogGate(NOT,$@)') - -define(`GenLogGate',`[ pushdef(`m4nargs',0)dnl - # Count the arguments and draw the gate - Loopover_(`a',`define(`m4nargs',incr(m4nargs))',shift($@))dnl - G: ifelse(`$1',NOT,`NOT_gate()',`$1_gate(m4nargs)') - Out: G.Out - T: (G.In1.x-2*L_unit,G.y) - # Sublayer gates with centre at the height of G - SubLayer: [ pushdef(`m4_nct',0) - pushdef(`m4glayer')dnl - Loopover_(`arg', - `define(`m4_nct',incr(m4_nct))dnl - # Stack the input label or draw a sublayer gate - pushdef(`m4InNames')dnl - Gate`'m4_nct: ifelse(patsubst(substr(arg,0,1),`[a-zA-Z]',`&'),&, - `[ In`'arg: ifdef(`MarkLogInputs',`"arg" above',Here) - pushdef(`m4InNames',In`'arg)dnl - Out: Here ] ht 2*L_unit', - `arg') ifelse(m4_nct,1,,`with .ne at last [].se+(0,-L_unit)') - ifdef(`MarkSubLayers', - `{ box wid last [].wid ht last [].ht at last [] }') - # Prepend gate name to labels - m4LogPromote(Gate`'m4_nct)', - shift($@)) dnl - # Promote gate labels to Sublayer block - pushdef(`m4InNames') m4LogLabel() - MidOut: 0.5 between Gate`'eval((m4_nct+1)/2).Out \ - and Gate`'eval((m4_nct+2)/2).Out - popdef(`m4_nct')dnl - ] with .MidOut at T+(-m4nargs*L_unit,0) # end SubLayer - ifdef(`MarkSubLayers', - `{ box wid last [].wid ht last [].ht at last [] }') - # Promote sublayer labels to outer block - pushdef(`m4glayer') m4LogPromote(SubLayer) dnl - pushdef(`m4InNames') m4LogLabel() dnl - # Draw the connecting lines - define(`m4hhv',`(m4nargs-1)/2')dnl - for_(1,m4nargs,1,` - line from G.In`'m4x \ - left G.In`'m4x.x-T.x+(m4hhv-abs(m4x-m4hhv-1))*L_unit \ - then up SubLayer.Gate`'m4x.Out.y-G.In`'m4x.y \ - then to SubLayer.Gate`'m4x.Out') - popdef(`m4nargs') dnl - ]') - -# Manage names of sublayer inputs -define(`m4LogPromote',`ifelse(m4InNames,,`popdef(`m4InNames')', - `pushdef(`m4glayer',m4InNames:$1) - popdef(`m4InNames') m4LogPromote($1)') ')dnl - -define(`m4LogLabel',`ifelse(m4glayer,,`popdef(`m4glayer')', - `define(`m4BaseIn',`substr(m4glayer,0,index(m4glayer,:))')dnl - m4glayer.m4BaseIn - pushdef(`m4InNames',m4BaseIn) popdef(`m4glayer') m4LogLabel()') ')dnl - -# Clear a name stack -define(`stack_del',`ifelse($1,`$1',,`popdef(`$1')$0($@)')') - -########################################################################### -divert(0)dnl -.PS -log_init(svg_font(sans-serif,11bp__)) -#define(`MarkLogInputs') - -define(`bbelow',`with .nw at last [].sw+(0,-0.2)') - - define(`MarkLogInputs') -Ex1:Or(x1,q,`Or(y1,z1)',`Or(z3,u,v,`Or(w,r)',x2,y2,z2,m)') - `"Or(x1,q,`Or(y1,z1)',`Or(z3,u,v,`Or(w,r)',x2,y2,z2,m)')"' \ - at Ex1.se+(-0.4,-0.2) - undefine(`MarkLogInputs') - - line from Ex1.Inx1 to (Ex1.w,Ex1.Inx1)-(L_unit,0) - line from Ex1.Inx2 to (Here,Ex1.Inx2) then to Here; dot - line to Here-(2*L_unit,0); Inx: "x" above - - line from Ex1.Iny1 to (Ex1.w,Ex1.Iny1)-(2*L_unit,0) - line from Ex1.Iny2 to (Here,Ex1.Iny2) then to Here; dot - line to Here-(2*L_unit,0); Iny: "y" above - - line from Ex1.Inz1 to (Ex1.w,Ex1.Inz1)-(3*L_unit,0) - {line from Ex1.Inz3 to (Ex1.Inz3,Ex1.Inz1); dot} - line from Ex1.Inz2 to (Here,Ex1.Inz2) then to Here; dot - line to Here-(2*L_unit,0); Inz: "z" above - -Ex2: And(`Not(A)',B,C,`Nor(A2,D)') with .nw at Ex1.Out+(0.75,0.2) - line right 3*L_unit from Ex2.Out - "svg_it(ABC(A+D))" above ljust at Ex2.G.nw - line right 0.1 at last ""+(0.1,0.16) - line right 0.35 at last ""+(0.55,0.16) - line from Ex2.InA2 to (Ex2.InA2,Ex2.InA); dot - line to Ex2.InA chop -3*L_unit chop 0 - "svg_it(A)" rjust at last line.start - "svg_it(B)" rjust at Ex2.InB - "svg_it(C)" rjust at Ex2.InC - "svg_it(D)" rjust at Ex2.InD - `"And(`Not(A)',B,C,`Nor(A2,D)')"' wid 2.1 with .w at Ex2.sw-(0,0.2) - `"line from Ex2.InA2 to (Ex2.InA2,Ex2.InA); dot"' wid 3.2 \ - with .w at last "".w+(0,-0.2) - `"line to Ex2.InA chop -3*L_unit chop 0"' wid 2.60 \ - with .w at last "".w+(0,-0.2) - `"\"A\" rjust at last line.start"' wid 1.6 with .w at last "".w+(0,-0.2) - `"\"B\" rjust at Ex2.InB; \"C\" rjust at Ex2.InC"' wid 2.7 with .w \ - at last "".w+(0,-0.2) - -Ex3: Or(`And(A1,C1)',`And(B1,`Not(C2)')',`And(`Not(A2)',B2,C3)') \ - with .nw at Ex1.sw+(0,-0.4) - line right 3*L_unit from Ex3.Out - line from Ex3.InB2 to (Ex3.InA2,Ex3.InB2)+(-2*L_unit,0) \ - then up Ex3.InB1.y-Ex3.InB2.y; dot - line from Ex3.InB1 to Here chop 0 chop -2*L_unit; B: "svg_it(B)" rjust - line from Ex3.InA2 to (Ex3.InA2,Ex3.InA1); dot - line from Ex3.InA1 to (B,Here) ; "svg_it(A)" rjust - line from Ex3.InC2 to (Ex3.InC2,Ex3.InC1) then to Ex3.InC1 - dot(at Ex3.InC2); line to (B,Here); "svg_it(C)" rjust - dot(at ((Ex3.InC2)+(-2*L_unit,0),Ex3.InC2)) - line to (Here,Ex3.InC3) then to Ex3.InC3 - "svg_it(AC+BC+ABC)" above ljust at Ex3.G.nw - line right 0.1 at last ""+(0.5,0.16) - line right 0.1 at last ""+(0.73,0.16) - `"Or(`And(A1,C1)',`And(B1,`Not(C2)')',`And(`Not(A2)',B2,C3)')"' \ - at (B,Ex3.s)+(0,-0.2) ljust - -# define(`MarkSubLayers') -Ex4: And(`Or(`Nand(`Or(A,B)',C)',D)',E) with .w at Ex3.e+(1.25,0) - "svg_it(A)" rjust at Ex4.InA - "svg_it(B)" rjust at Ex4.InB - line from Ex4.InC to (Ex4.InA,Ex4.InC); "svg_it(C)" rjust - line from Ex4.InD to (Ex4.InA,Ex4.InD); "svg_it(D)" rjust - line from Ex4.InE to (Ex4.InA,Ex4.InE); "svg_it(E)" rjust - line right 3*L_unit from Ex4.Out - "svg_it((D+(A+B)C)E)" above ljust at Ex4.G.nw - line right 0.5 at last ""+(0.6,0.16) - `"And(`Or(`Nand(`Or(A,B)',C)',D)',E)"' at Ex4.sw+(0,-0.2) ljust -# undefine(`MarkSubLayers') - -stack_del(`m4InNames') # clear the name stack in case other diagrams need it -# extend the bounding box -move from Ex1.nw+(-0.35,0.1) to Ex4.Out+(1,-0.65) - -command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/LogicSVG.m4 b/graphics/circuit_macros/examples/svg/LogicSVG.m4 deleted file mode 100644 index ec89a62bb0..0000000000 --- a/graphics/circuit_macros/examples/svg/LogicSVG.m4 +++ /dev/null @@ -1,59 +0,0 @@ -.PS -# Logic.m4 -log_init(svg_font(sans-serif,11bp__)) -xgap = 0.5 -[ dmov = 0.4 -{ {AND_gate ; "`AND_gate'" ljust at last [].w + (xgap,0)} - move down dmov; right_ - {OR_gate ; "`OR_gate'" ljust at last [].w + (xgap,0)} - move down dmov; right_ - {BUFFER_gate ; "`BUFFER_gate'" ljust at last [].w + (xgap,0)} - move down dmov; right_ - {XOR_gate ; "`XOR_gate'" ljust at last [].w + (xgap,0)} - } - -xgap = 0.65 - move right_ 2 -{ { NAND_gate ; "`NAND_gate'" ljust at last [].w + (xgap,0) } - move down dmov; right_ - { Gate: NOR_gate(3) - "`NOR_gate(3)'" ljust at last [].w + (xgap,0) - thinlines_ - spline <- from Gate.Out right arrowht*2.0 \ - then up 0.15 then right 0.05 - "`Out'" ljust - spline <- from Gate.N_Out down arrowht*2.0 \ - then right 0.1+arrowht*1.5+NOT_rad down 0.15-arrowht*2.0 - "`N_Out'" ljust - for_(1,3,1, - `arrow <- left 0.2 down 0.05 from Gate.In`'m4x - "In`'m4x" rjust at Here+(0,(2-m4x)*0.02)') - } - thicklines_ - move down dmov; right_ - { NOT_gate ; "`NOT_gate'" ljust at last [].w + (xgap,0) } - move down dmov; right_ - { NXOR_gate ; "`NXOR_gate'" ljust at last [].w + (xgap,0) } -} - move right_ 2 -{ {B: NAND_gate(,B) ; "`NAND_gate(,B)'" ljust at B.w + (xgap,0)} - { line invis right 1.8 from last [].se then down 1} - move down dmov; right_ - move left N_diam*L_unit; right_ - {NOR_gate(3,NB) ; "`NOR_gate(3,NB)'" ljust at (B.w,last []) + (xgap,0) } - move down dmov; right_ - {BOX_gate(PN,N,,,=1) - "`BOX_gate(PN,N,,,=1)'" ljust at (B.w,last []) + (xgap,0) - line left 0.15 from last [].In1 - line left 0.15-NOT_rad*2 from last [].In2 - line right 0.15 from last [].Out } - move down dmov; move right_ N_diam*L_unit - {BOX_gate(PP,N,,,=) - "`BOX_gate(PP,N,,,=)'" ljust at (B.w,last []) + (xgap,0) - line left 0.15 from last [].In1 - line left 0.15 from last [].In2 - line right 0.15 from last [].Out } -} -] - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/LoglogSVG.m4 b/graphics/circuit_macros/examples/svg/LoglogSVG.m4 deleted file mode 100644 index b010b7bd41..0000000000 --- a/graphics/circuit_macros/examples/svg/LoglogSVG.m4 +++ /dev/null @@ -1,630 +0,0 @@ -.PS -# LoglogSVG.m4 -gen_init(svg_font(sans-serif,11bp__)) -maxpswid = 12 - -LL: [ -define(`rint',`sign(`$1')*int(abs(`$1')+.5)') -S:[ - horiz = 4 - vert = horiz*2/3 - tmax = 10 - tmin = 1 - vmax = 100 - vmin = 0.1 - tic = 0.08 - denv = log(vmax) - log(vmin) - denh = log(tmax) - log(tmin) - - Origin: Here - define(`coord', - `Origin+((log(`$1')-log(tmin))/denh*horiz,(log(`$2')-log(vmin))/denv*vert)') - -thinlines_ -# Left axes and labels - psset_(linecolor=gray) - for i = rint(log(vmin)) to rint(log(vmax)) do { - move to coord(tmin,exp(i)) - line right horiz - sprintf("%g",exp(i)) wid 0.2 rjust at last line.start - if i < rint(log(vmax)) then { - for j = 2 to 9 do { move to coord(tmin,j*exp(i)) - line right horiz - if (j==2) || (j==5) then { - sprintf("%g",j*exp(i)) rjust at last line.start } - } } } - -#Horizontal axis and labels - for t = rint(log(tmin)) to rint(log(tmax)) do { - move to coord(exp(t),vmin) - line up vert - sprintf("%g",exp(t)) wid 0.15 below at last line.start - if t < rint(log(tmax)) then { - for j = 2 to 9 do { move to coord(j*exp(t),vmin) - line up vert - if (j==2) || (j==5) then { - sprintf("%g",j*exp(t)) below at last line.start } - } } } - psset_(linecolor=black) - -# arrow from Origin up vert chop 0 chop -0.1 - line from Origin up vert - "svg_it(y(t))" wid 0.3 at Origin+(-0.1,0.5*vert) rjust - -# arrow from Origin right horiz chop 0 chop -0.1 - line from Origin right horiz - "svg_it(t)" at Origin+(.5*horiz,-0.1) below - -thicklines_ - alpha = 2.5 - beta = 3.0 - tm = max(tmin,(vmin/alpha)^(1/beta)) - tM = min(tmax,(vmax/alpha)^(1/beta)) - line from coord(tm,alpha*tm^beta) to coord(tM,alpha*tM^beta) -P: box invis fill_(1) wid 0.75 ht 0.18 \ - "svg_it(y(t) = 1.5 t)" with .w at coord(2.005,14) - "svg_it(svg_small(3))" with .w at P.ne #ljust - - alpha = 0.05 - beta = 2.0 - tm = max(tmin,(vmin/alpha)^(1/beta)) - tM = min(tmax,(vmax/alpha)^(1/beta)) - line from coord(tm,alpha*tm^beta) to coord(tM,alpha*tM^beta) -Q: box invis fill_(1) wid 0.80 ht 0.18 \ - "svg_it(y(t) = 0.05 t)" with .e at coord(4.6,1.4) - "svg_it(svg_small(2))" with .w at Q.ne #ljust - -] - -# box wid S.wid ht S.ht at S -# print (S.wid,S.ht)/(1 pc__) - command "</g>" # end font -] # LL -#showbox_ - -Cons: [ -#.PS -## Consumption.m4 -#gen_init -svg_font(Helvetica,10pt__) - -#vg_rot_init(test) -svg_rot_init(LoglogSVG) - -divert(-1) - `brace(linespec,depth,arm thickness,attributes) - Curly brace along linespec - default depth is linewid/5 - attributes = eg - thick 0.4 outlined "string" shaded "string" - (default black)' -define(`brace',`rpoint_(ifelse(`$1',,`to rvec_(linewid,0)',`$1')) - M4brS: last line.start; M4brE: last line.end - [ brdepth = ifelse(`$2',,linewid/5,`$2') - brthick = ifelse(`$3',,brdepth/6,`$3') - define(`m4braceattribs', - `ifelse(`$4',,`thick 0.4 shaded rgbstring(0,0,0)',`$4')')dnl - tension = 0.55 - halfwid = distance(M4brS,M4brE) - smallrad = brdepth-brthick - bigrad = brdepth+brthick - for sgn=1 to -1 by -2 do { - S: rvec_(sgn*halfwid/2,0) - A: S+vec_(0,smallrad/2) - B: vec_(0,smallrad/2) - T: vec_(0,brdepth) - C: vec_(0,bigrad/2) - D: vec_(sgn*halfwid/2,bigrad/2) - {spline tension m4braceattribs \ - from S to tension between S and A \ - then to tension between A-vec_(sgn*bigrad/2,0) and A \ - then to A-vec_(sgn*bigrad/2,0) \ - then to B+vec_(sgn*bigrad/2,0) \ - then to tension between B+vec_(sgn*bigrad/2,0) and B \ - then to tension between T and B \ - then to T \ - then to tension between T and C \ - then to tension between C+vec_(sgn*bigrad/2,0) and C \ - then to C+vec_(sgn*bigrad/2,0) \ - then to D-vec_(sgn*bigrad/2,0) \ - then to tension between D-vec_(sgn*bigrad/2,0) and D \ - then to tension between S and D \ - then to S } - } - E: (0,0) -] with .E at 0.5 between M4brS and M4brE') -divert(0)dnl - -#nl raw data ranges - rxmin=1.76665, rxmax=5.87332, rymin=1.49164, rymax=4.00836 - -#nl horiz range - yearmin = 1850 - yearmax = 2040 -#nl data ranges - tonsmin = 0 - tonsmax = 2.0 - popmin = 0 - popmax = 10 -#nl page graph size - minx = 0 - maxx = 4.5 - maxx = 4.566 - miny = 0 - maxy = 3.5 - -define dtop {(minx + ($1-yearmin)/(yearmax-yearmin)*(maxx-minx), \ - miny + ($2-tonsmin)/(tonsmax-tonsmin)*(maxy-miny))} -define ptop {(minx + ($1-yearmin)/(yearmax-yearmin)*(maxx-minx), \ - miny + ($2-popmin)/(popmax-popmin)*(maxy-miny))} - -define(`rtod',`yearmin + (`$1'-rxmin)/(rxmax-rxmin)*(2010-yearmin), \ - tonsmin + (`$2'-rymin)/(rymax-rymin)*1.8') - -[ -nD = 0 -define data { nD+=1 - yr[nD]=$1; pop[nD]=$2/1e9; wood[nD]=$3; other[nD]=$4; hydro[nD]=$5 - coal[nD]=$6; oil[nD]=$7; gas[nD]=$8; nuclear[nD]=$9 } - -data(1850,1241000000,0.238506368,0.238506368,0.238506368,0.274220157,0.274220157,0.276138711,0.276138711) -data(1851,1247847137,0.238701076,0.238701076,0.238701076,0.2788137,0.2788137,0.280785327,0.280785327) -data(1852,1254732053,0.238886465,0.238886465,0.238886465,0.287918165,0.287918165,0.289942225,0.289942225) -data(1853,1261654955,0.239062633,0.239062633,0.239062633,0.290097546,0.290097546,0.292173405,0.292173405) -data(1854,1268616055,0.239229675,0.239229675,0.239229675,0.289984551,0.289984551,0.292111579,0.292111579) -data(1855,1275615561,0.239387687,0.239387687,0.239387687,0.289864062,0.289864062,0.292041635,0.292041635) -data(1856,1282653687,0.239651345,0.239651345,0.239651345,0.301026039,0.301026039,0.303253538,0.303253538) -data(1857,1289730646,0.239904902,0.239904902,0.239904902,0.298720029,0.298720029,0.300996841,0.300996841) -data(1858,1296846651,0.24014846,0.24014846,0.24014846,0.303062054,0.303062054,0.30538757,0.30538757) -data(1859,1304001918,0.240382123,0.240382123,0.240382123,0.309545901,0.309914765,0.312288384,0.312288384) -data(1860,1311196664,0.24060599,0.24060599,0.24060599,0.309390256,0.310123937,0.312545059,0.312545059) -data(1861,1318431107,0.240590657,0.240590657,0.240590657,0.319869525,0.320964008,0.323432041,0.323432041) -data(1862,1325705465,0.240568247,0.240568247,0.240568247,0.308599723,0.310051026,0.312565381,0.312565381) -data(1863,1333019958,0.24053884,0.24053884,0.24053884,0.318950063,0.320754238,0.323314334,0.323314334) -data(1864,1340374810,0.240502511,0.240502511,0.240502511,0.327038715,0.329191844,0.331797103,0.331797103) -data(1865,1347770241,0.240459339,0.240459339,0.240459339,0.328647778,0.331145979,0.333795828,0.333795828) -data(1866,1347770241,0.242191279,0.242191279,0.242191279,0.330379718,0.333234804,0.335943539,0.335943539) -data(1867,1362683739,0.241253672,0.241253672,0.241253672,0.336892133,0.340068952,0.342806283,0.342806283) -data(1868,1370202258,0.24163346,0.24163346,0.24163346,0.336747138,0.340257568,0.3430378,0.3430378) -data(1869,1377762260,0.242001817,0.242001817,0.242001817,0.33659359,0.340433875,0.343256455,0.343256455) -data(1870,1385363974,0.242358855,0.242358855,0.242358855,0.348847699,0.353014113,0.355878493,0.355878493) -data(1871,1393007630,0.24215233,0.24215233,0.24215233,0.358346838,0.362835686,0.365741322,0.365741322) -data(1872,1400693459,0.241940775,0.241940775,0.241940775,0.365684522,0.37049214,0.373438493,0.373438493) -data(1873,1408421694,0.24172425,0.24172425,0.24172425,0.360718048,0.365840803,0.368827338,0.368827338) -data(1874,1416192570,0.241502816,0.241502816,0.241502816,0.363892286,0.369326575,0.372352763,0.372352763) -data(1875,1424006320,0.241276535,0.241276535,0.241276535,0.362994434,0.368736684,0.371802,0.371802) -data(1876,1431863183,0.240604702,0.240604702,0.240604702,0.369663316,0.375709983,0.378813907,0.378813907) -data(1877,1439763395,0.239932976,0.239932976,0.239932976,0.368283426,0.374630997,0.377773011,0.377773011) -data(1878,1447707196,0.239261379,0.239261379,0.239261379,0.366907548,0.373552539,0.376732133,0.376732133) -data(1879,1455694826,0.238589927,0.238589927,0.238589927,0.373413172,0.380352127,0.383568794,0.383568794) -data(1880,1463726528,0.23791864,0.23791864,0.23791864,0.383753486,0.390982979,0.394236217,0.394236217) -data(1881,1471802544,0.237570608,0.237570608,0.237570608,0.392344331,0.399860965,0.403150275,0.403150275) -data(1882,1479923119,0.237219231,0.237219231,0.237227977,0.396963826,0.404764232,0.40808912,0.40808912) -data(1883,1488088499,0.236864558,0.236864558,0.236881953,0.403447314,0.411528151,0.414888128,0.414888128) -data(1884,1496298931,0.236506634,0.236506634,0.236532584,0.406015836,0.414373792,0.417768372,0.417768372) -data(1885,1504554663,0.236145507,0.236145507,0.236179917,0.404733187,0.413364978,0.416793681,0.416793681) -data(1886,1512855946,0.235261191,0.235261191,0.235303968,0.40293236,0.411834727,0.415297076,0.415297076) -data(1887,1521203030,0.23437947,0.23437947,0.23443052,0.406792802,0.415962519,0.419458041,0.419458041) -data(1888,1529596169,0.233500342,0.233500342,0.233559574,0.423718314,0.433152176,0.436680404,0.436680404) -data(1889,1538035617,0.232623805,0.232623805,0.232691127,0.425534315,0.435229149,0.438789617,0.438789617) -data(1890,1546521628,0.231749857,0.231749857,0.231825179,0.431025052,0.44097771,0.444569959,0.444569959) -data(1891,1555054461,0.23057828,0.23057828,0.230661512,0.436142504,0.446349864,0.449973439,0.449973439) -data(1892,1563634373,0.229412583,0.229412583,0.229503635,0.439357394,0.449816361,0.453470809,0.453470809) -data(1893,1572261624,0.228252736,0.228252736,0.228351521,0.431583686,0.442291192,0.445976065,0.445976065) -data(1894,1580936476,0.22709871,0.22709871,0.22720514,0.436575574,0.447528576,0.45124343,0.45124343) -data(1895,1589659190,0.225950477,0.225950477,0.226064464,0.441499685,0.452695166,0.456439562,0.456439562) -data(1896,1598430032,0.225392144,0.225392144,0.225513603,0.450527775,0.461962746,0.465736247,0.465736247) -data(1897,1607249265,0.224833135,0.224833135,0.224961981,0.457659825,0.469331318,0.473133492,0.473133492) -data(1898,1616117159,0.224273475,0.224273475,0.224409622,0.473569462,0.48547454,0.489304958,0.489304958) -data(1899,1625033980,0.223713188,0.223713188,0.223856553,0.494583176,0.506718923,0.510577162,0.510577162) -data(1900,1634000000,0.223152296,0.223152296,0.223302795,0.504825195,0.51718872,0.521074359,0.521074359) -data(1901,1648219401,0.221510378,0.221510378,0.221677629,0.505816316,0.519528083,0.5237969,0.5237969) -data(1902,1662562543,0.219880182,0.219880182,0.220068436,0.508573752,0.523333498,0.527978592,0.527978592) -data(1903,1677030501,0.218261627,0.218261627,0.218478353,0.530583699,0.546223844,0.551238406,0.551238406) -data(1904,1691624363,0.216654634,0.216654634,0.216900192,0.527887731,0.545298807,0.550676116,0.550676116) -data(1905,1706345223,0.215059124,0.215059124,0.215337131,0.547716584,0.564693219,0.570426643,0.570426643) -data(1906,1721194188,0.214836225,0.214836225,0.215148552,0.563118074,0.579880854,0.585963848,0.585963848) -data(1907,1736172371,0.214601167,0.214601167,0.214954035,0.596547339,0.617095414,0.62352152,0.62352152) -data(1908,1751280897,0.214354174,0.214354174,0.214752998,0.574277169,0.596299335,0.60306218,0.60306218) -data(1909,1766520901,0.214095471,0.214095471,0.214542936,0.586977877,0.609919015,0.61701231,0.61701231) -data(1910,1781893526,0.213825278,0.213825278,0.214318488,0.603352348,0.628089516,0.635693908,0.635693908) -data(1911,1797399927,0.212500054,0.212500054,0.213041248,0.605588411,0.631564823,0.639504319,0.639504319) -data(1912,1813041268,0.211181781,0.211181781,0.211751647,0.620130467,0.646297549,0.654565803,0.654565803) -data(1913,1828818723,0.209870438,0.209870438,0.210513435,0.644310839,0.672912362,0.681503109,0.681503109) -data(1914,1844733476,0.208566004,0.208566004,0.209324315,0.595307622,0.624513467,0.633420528,0.633420528) -data(1915,1860786724,0.207268457,0.207268457,0.208098411,0.584702733,0.615780985,0.624998263,0.624998263) -data(1916,1876979669,0.204485426,0.204485975,0.205402589,0.605882504,0.638934007,0.648455487,0.648455487) -data(1917,1893313529,0.201734987,0.201735896,0.202715085,0.616179081,0.652399178,0.662218924,0.662218924) -data(1918,1909789530,0.199016787,0.199017732,0.200115349,0.602687652,0.638337653,0.648449811,0.648449811) -data(1919,1926408908,0.196330472,0.196331097,0.196945715,0.535439366,0.575689906,0.586088699,0.586088699) -data(1920,1943172912,0.193675695,0.193676005,0.195243412,0.579848388,0.630973534,0.641653264,0.641653264) -data(1921,1960082799,0.192957547,0.192958381,0.194440762,0.512833825,0.567705487,0.578660532,0.578660532) -data(1922,1977139839,0.192237376,0.192238246,0.193895625,0.527050727,0.587771773,0.599365431,0.599365431) -data(1923,1994345313,0.19151527,0.191516348,0.193525554,0.578230714,0.649426509,0.662893064,0.662893064) -data(1924,2011700513,0.190791315,0.190792469,0.192986897,0.564368556,0.634750802,0.650057077,0.650057077) -data(1925,2029206742,0.190065598,0.190066911,0.192579912,0.561692328,0.634850472,0.651963721,0.651963721) -data(1926,2046865313,0.189342426,0.18934419,0.192313939,0.556598403,0.631036129,0.649924035,0.649924035) -data(1927,2064677552,0.188617585,0.188619709,0.191901916,0.581066305,0.66532014,0.685950808,0.685950808) -data(1928,2082644798,0.187891159,0.187893595,0.191560967,0.570524051,0.658240401,0.680582356,0.680582356) -data(1929,2082644798,0.188791962,0.188794439,0.19317309,0.596191895,0.694524554,0.718247863,0.718247863) -data(1930,2119049713,0.186433874,0.186436187,0.190385499,0.552331717,0.644491424,0.668934944,0.668934944) -data(1931,2137490116,0.185921585,0.185923717,0.190113868,0.506565457,0.594964462,0.620348577,0.620348577) -data(1932,2156090991,0.185404259,0.185406253,0.189724679,0.468661357,0.552304395,0.578611056,0.578611056) -data(1933,2174853735,0.184882022,0.184885026,0.189466471,0.478973885,0.569521584,0.596732983,0.596732983) -data(1934,2193779755,0.184354996,0.184357857,0.189137885,0.50231919,0.597048389,0.625146959,0.625146959) -data(1935,2212870475,0.183823303,0.183826489,0.189391253,0.513244919,0.615346693,0.6443151,0.6443151) -data(1936,2232127325,0.183422624,0.183426207,0.189292235,0.541976812,0.652213355,0.6820345,0.6820345) -data(1937,2251551752,0.183015177,0.183016132,0.189691455,0.557024422,0.681411525,0.713128315,0.713128315) -data(1938,2271145215,0.182601109,0.182608794,0.189219601,0.528985648,0.649365004,0.682755166,0.682755166) -data(1939,2290909184,0.182180563,0.182198879,0.189050477,0.544855454,0.669193862,0.704673928,0.704673928) -data(1940,2310845143,0.181753683,0.181773628,0.188817984,0.577859192,0.705095325,0.742626751,0.742626751) -data(1941,2330954589,0.180256141,0.180280081,0.187681608,0.587475315,0.717410922,0.756955672,0.756955672) -data(1942,2351239032,0.17877091,0.178803567,0.18636161,0.589499673,0.710751063,0.752271606,0.752271606) -data(1943,2371699993,0.17729789,0.177330845,0.185849103,0.596589637,0.725948747,0.769408049,0.769408049) -data(1944,2392339011,0.17583698,0.175847008,0.183932936,0.574921594,0.722215099,0.767576618,0.767576618) -data(1945,2413157633,0.174388081,0.174391359,0.182283924,0.493293215,0.63914527,0.68637295,0.68637295) -data(1946,2434157423,0.173522919,0.173531361,0.182267965,0.514250229,0.668057865,0.717384008,0.717384008) -data(1947,2455339957,0.172659705,0.172683238,0.181755468,0.551547112,0.719518964,0.773619655,0.773619655) -data(1948,2476706827,0.17179847,0.171828917,0.181742644,0.560535238,0.749010917,0.809647204,0.809647204) -data(1949,2498259635,0.170939245,0.17097559,0.181133719,0.538171636,0.723949765,0.788183962,0.788183962) -data(1950,2557628654,0.167579756,0.167622721,0.178408185,0.559396293,0.762977841,0.834822272,0.834822272) -data(1951,2594938936,0.167032664,0.167085184,0.179115513,0.574723533,0.802272625,0.886283415,0.886283415) -data(1952,2636770386,0.166215588,0.166275557,0.178905263,0.565999791,0.801386992,0.890443027,0.890443027) -data(1953,2682050452,0.165211328,0.165271599,0.178153454,0.56040182,0.805094458,0.897685967,0.897685967) -data(1954,2730224110,0.164066346,0.164125585,0.177552809,0.548214509,0.799870041,0.895277726,0.895277726) -data(1955,2782093851,0.162744571,0.162802026,0.177062242,0.572289721,0.849071541,0.950920777,0.950920777) -data(1956,2835293441,0.161343608,0.161397559,0.176802814,0.586639897,0.882197665,0.990604979,0.990610309) -data(1957,2891342302,0.159836585,0.159890471,0.176313385,0.589494533,0.894932945,1.010584994,1.010622753) -data(1958,2948128605,0.158347259,0.158403549,0.176092897,0.594122165,0.901178987,1.023306716,1.023348608) -data(1959,3000706677,0.157134282,0.157194027,0.175092878,0.60075882,0.926301469,1.060278841,1.060403012) -data(1960,3042990271,0.156490706,0.156555865,0.175795691,0.61309257,0.958977014,1.102738263,1.102971765) -data(1961,3084007286,0.155724141,0.155801371,0.175847845,0.582341401,0.945610971,1.097964839,1.098333034) -data(1962,3140187350,0.154229357,0.154309778,0.175037739,0.583886676,0.970894477,1.134494733,1.135032498) -data(1963,3209978774,0.152139251,0.152229147,0.173552486,0.585699084,0.991892736,1.166953505,1.167858812) -data(1964,3281412257,0.150062967,0.150160837,0.171811855,0.592867755,1.021995792,1.209049525,1.210281169) -data(1965,3350699989,0.14816998,0.148271574,0.171655685,0.592192206,1.043069039,1.239349435,1.241269627) -data(1966,3421015609,0.147131043,0.14723349,0.171776593,0.589397107,1.068586677,1.275452622,1.27813231) -data(1967,3490735455,0.146158896,0.14626543,0.170803075,0.56557596,1.069927556,1.288070014,1.291237119) -data(1968,3562786611,0.145129793,0.1452355,0.170411047,0.568040201,1.107666962,1.34146315,1.345320724) -data(1969,3637707956,0.14402776,0.144141478,0.170254838,0.567570209,1.136409991,1.38786865,1.392325229) -data(1970,3713327898,0.142943308,0.143053274,0.169862261,0.574604634,1.187424472,1.460093809,1.4656198) -data(1971,3790980082,0.141867123,0.1419725,0.169518561,0.562377273,1.199174341,1.484731543,1.492185663) -data(1972,3867242256,0.14088476,0.141006603,0.169241956,0.55299154,1.211873977,1.508449967,1.518429829) -data(1973,3942790520,0.139965732,0.140098019,0.168229646,0.551337808,1.256519325,1.5637256,1.576827076) -data(1974,4017323955,0.139116394,0.139264313,0.169566501,0.548855283,1.243354913,1.55159078,1.568155026) -data(1975,4088810897,0.138401041,0.13856795,0.16866321,0.563492361,1.21131787,1.515162671,1.537578295) -data(1976,4158888836,0.137644673,0.137823056,0.167542119,0.566773642,1.257660106,1.569161684,1.594857237) -data(1977,4229748034,0.136888084,0.137068744,0.166990254,0.571441309,1.275256046,1.610533422,1.641644931) -data(1978,4300631215,0.136155668,0.136323913,0.168223987,0.572181835,1.27205561,1.591706702,1.627562741) -data(1979,4374349678,0.135359212,0.13557451,0.168367796,0.588798681,1.303224877,1.642092677,1.678738222) -data(1980,4445423675,0.13466922,0.135694224,0.169018612,0.535103352,1.264795628,1.575204786,1.612060086) -data(1981,4526817917,0.134213008,0.135336361,0.168515198,0.530410164,1.209074468,1.518426926,1.559512282) -data(1982,4607193353,0.133802494,0.135342954,0.168753641,0.536996737,1.176267133,1.47980709,1.52463367) -data(1983,4688582743,0.133377208,0.135246041,0.169576319,0.532088682,1.158420925,1.46002144,1.510279864) -data(1984,4767669177,0.133030663,0.135364454,0.170242063,0.54694641,1.180279911,1.506703536,1.566412047) -data(1985,4849860549,0.132610473,0.135051242,0.169658748,0.552747513,1.171095757,1.504285752,1.573424331) -data(1986,4934211409,0.131291387,0.133685377,0.168393392,0.554194404,1.186400652,1.520044231,1.593296333) -data(1987,5021085089,0.129951317,0.132539382,0.166722644,0.554231496,1.181208808,1.524791298,1.603295671) -data(1988,5108736553,0.128637242,0.13125772,0.166140318,0.556210491,1.195203161,1.549641815,1.633219996) -data(1989,5195979089,0.127377522,0.13079373,0.164881748,0.553926742,1.193159265,1.553390392,1.638232703) -data(1990,5284252039,0.126134805,0.129737215,0.164632138,0.553384674,1.190735096,1.553386431,1.640350219) -data(1991,5367488662,0.125428663,0.12928236,0.164254982,0.528423389,1.154980396,1.516498613,1.613399159) -data(1992,5452187873,0.124710625,0.128643771,0.163153115,0.518552304,1.13735672,1.494240768,1.590566106) -data(1993,5534418049,0.12406988,0.128046593,0.163990775,0.50470235,1.119339298,1.477198192,1.575200738) -data(1994,5614530098,0.123494469,0.127690239,0.163473418,0.506216459,1.12531413,1.481458633,1.580083078) -data(1995,5695823105,0.122909758,0.127213893,0.164248122,0.510641048,1.135855904,1.49167459,1.592774524) -data(1996,5776327747,0.12216812,0.12649691,0.163557636,0.510522671,1.141850345,1.503121808,1.606488473) -data(1997,5854841500,0.121488167,0.12619452,0.163583023,0.524945344,1.167177534,1.523679854,1.624760285) -data(1998,5932024858,0.120853308,0.125593429,0.162567495,0.521014085,1.167330383,1.52595967,1.627688406) -data(1999,6008646651,0.120245994,0.125081498,0.162173341,0.512693203,1.14325022,1.505666716,1.609442579) -data(2000,6084703879,0.119665076,0.124729832,0.16178992,0.513011266,1.158715327,1.529969497,1.634878653) -data(2001,6160890093,0.119894056,0.125258541,0.161095098,0.524198822,1.1611659,1.535602425,1.642047723) -data(2002,6237154134,0.118903979,0.124921559,0.160784753,0.529942594,1.153921617,1.530689162,1.637033401) -data(2003,6313942570,0.117913902,0.124642773,0.160192176,0.546832827,1.182503339,1.566938847,1.670839416) -data(2004,6390636309,0.116923825,0.12432827,0.161759107,0.565673251,1.221114221,1.610936278,1.717713694) -data(2005,6467431499,0.115933748,0.124259776,0.162887647,0.604148825,1.263290753,1.659620623,1.765386482) -data(2006,6545218993,0.114943672,0.124695239,0.164252513,0.623509498,1.274460793,1.680457898,1.786351327) -data(2007,6623523655,0.113953595,0.125629532,0.165251003,0.637952129,1.279256584,1.68820381,1.790810594) -data(2008,6702159402,0.112963518,0.127142703,0.167940953,0.64989848,1.292105043,1.710278853,1.811269586) -data(2009,6780833881,0.111973441,0.127858368,0.168866486,0.654393109,1.282816573,1.686869485,1.785251313) -data(2010,6858584755,0.110983364,0.12921584,0.172117414,0.680609275,1.328410794,1.756431211,1.856334479) -data(2011,6935999491,0.109993287,0.130385385,0.173636892,0.704216284,1.348176864,1.785673581,1.880255695) -data(2012,7013871313,0.10900321,0.130975574,0.175672274,0.688388925,1.341250864,1.785302272,1.872409847) -data(2013,7092128094,0.108013133,0.132480909,0.177353971,0.688378378,1.336238537,1.781754888,1.868322734) -data(2014,7169968185,0.107023056,0.133567224,0.177755023,0.681107631,1.336758872,1.78693987,1.874787234) -data(2015,7247892788,0,0,0,0,0,0,0) -data(2016,7325996709,0,0,0,0,0,0,0) -data(2017,7405107650,0,0,0,0,0,0,0) -nD0=nD-3 - -define yrdata { nyd +=1; yrd[nyd]=$1; ypop[nyd]=$2/1e9 } - -nyd = 0 -yrdata(1850,1169923623) -yrdata(1851,1177298999) -yrdata(1852,1184724181) -yrdata(1853,1192199527) -yrdata(1854,1199725401) -yrdata(1855,1207302168) -yrdata(1856,1214930197) -yrdata(1857,1222609858) -yrdata(1858,1230341525) -yrdata(1859,1238125576) -yrdata(1860,1245962390) -yrdata(1861,1253852349) -yrdata(1862,1261795840) -yrdata(1863,1269793250) -yrdata(1864,1277844972) -yrdata(1865,1285951399) -yrdata(1866,1294112930) -yrdata(1867,1302329966) -yrdata(1868,1310602910) -yrdata(1869,1318932168) -yrdata(1870,1327318152) -yrdata(1871,1335761275) -yrdata(1872,1344261952) -yrdata(1873,1352820603) -yrdata(1874,1361437653) -yrdata(1875,1370113525) -yrdata(1876,1379548537) -yrdata(1877,1389051752) -yrdata(1878,1398623687) -yrdata(1879,1408264863) -yrdata(1880,1417975804) -yrdata(1881,1427757042) -yrdata(1882,1437609109) -yrdata(1883,1447532543) -yrdata(1884,1457527886) -yrdata(1885,1467595685) -yrdata(1886,1477736490) -yrdata(1887,1487950857) -yrdata(1888,1498239345) -yrdata(1889,1508602518) -yrdata(1890,1519040944) -yrdata(1891,1529555197) -yrdata(1892,1540145854) -yrdata(1893,1550813497) -yrdata(1894,1561558712) -yrdata(1895,1572382092) -yrdata(1896,1583284233) -yrdata(1897,1594265734) -yrdata(1898,1605327202) -yrdata(1899,1616469247) -yrdata(1900,1630171098) -yrdata(1901,1644554295) -yrdata(1902,1659067684) -yrdata(1903,1673712471) -yrdata(1904,1688489874) -yrdata(1905,1703401122) -yrdata(1906,1718447458) -yrdata(1907,1733630134) -yrdata(1908,1748950415) -yrdata(1909,1764409579) -yrdata(1910,1780008913) -yrdata(1911,1795749721) -yrdata(1912,1811633314) -yrdata(1913,1827661021) -yrdata(1914,1843834178) -yrdata(1915,1860154139) -yrdata(1916,1876622267) -yrdata(1917,1893239939) -yrdata(1918,1910008546) -yrdata(1919,1926929491) -yrdata(1920,1944419089) -yrdata(1921,1962566145) -yrdata(1922,1980884876) -yrdata(1923,1999376931) -yrdata(1924,2018043972) -yrdata(1925,2023803913) -yrdata(1926,2043462180) -yrdata(1927,2063406322) -yrdata(1928,2082689730) -yrdata(1929,2103850414) -yrdata(1930,2124167500) -yrdata(1931,2143802732) -yrdata(1932,2164157870) -yrdata(1933,2184604692) -yrdata(1934,2205534997) -yrdata(1935,2226530597) -yrdata(1936,2247993326) -yrdata(1937,2268545035) -yrdata(1938,2290267593) -yrdata(1939,2312702889) -yrdata(1940,2350947590) -yrdata(1941,2373554827) -yrdata(1942,2396382640) -yrdata(1943,2419433211) -yrdata(1944,2442708748) -yrdata(1945,2466211477) -yrdata(1946,2489943650) -yrdata(1947,2513907539) -yrdata(1948,2538105439) -yrdata(1949,2562539670) -yrdata(1950,2579434878) -yrdata(1951,2653954580) -yrdata(1952,2692712961) -yrdata(1953,2732388944) -yrdata(1954,2772909569) -yrdata(1955,2814390135) -yrdata(1956,2856675848) -yrdata(1957,2899864004) -yrdata(1958,2943689748) -yrdata(1959,2987555529) -yrdata(1960,3030709021) -yrdata(1961,3090453463) -yrdata(1962,3137151355) -yrdata(1963,3211786601) -yrdata(1964,3270671214) -yrdata(1965,3330055803) -yrdata(1966,3401169329) -yrdata(1967,3463250974) -yrdata(1968,3526647458) -yrdata(1969,3591511933) -yrdata(1970,3657420066) -yrdata(1971,3724116214) -yrdata(1972,3791497136) -yrdata(1973,3859732004) -yrdata(1974,3928723212) -yrdata(1975,3998320921) -yrdata(1976,4080634693) -yrdata(1977,4156349026) -yrdata(1978,4233151108) -yrdata(1979,4311785729) -yrdata(1980,4391777096) -yrdata(1981,4472736872) -yrdata(1982,4555816222) -yrdata(1983,4640588050) -yrdata(1984,4726272158) -yrdata(1985,4813567478) -yrdata(1986,4902566593) -yrdata(1987,4985904892) -yrdata(1988,5070443631) -yrdata(1989,5156030340) -yrdata(1990,5219191372) -yrdata(1991,5304659362) -yrdata(1992,5390911229) -yrdata(1993,5477320137) -yrdata(1994,5564356643) -yrdata(1995,5652711036) -yrdata(1996,5738516173) -yrdata(1997,5824945702) -yrdata(1998,5912061676) -yrdata(1999,5999735497) -yrdata(2000,6088144560) -yrdata(2001,6173932167) -yrdata(2002,6250016823) -yrdata(2003,6326520742) -yrdata(2004,6403805522) -yrdata(2005,6481944062) -yrdata(2006,6525559210) -yrdata(2007,6602274812) -yrdata(2008,6789771253) -yrdata(2009,6873741054) -yrdata(2010,6958169159) -yrdata(2011,7043008586) -yrdata(2012,7128176935) -yrdata(2013,7213426452) -yrdata(2014,7298453033) -yrdata(2015,7383008820) -yrdata(2016,7466964280) -yrdata(2017,7550262101) - -Left: line from dtop(yearmin,tonsmin) to dtop(yearmin,tonsmax) - htic = 8pt__ -# htic = maxy - vtic = 13pt__/2 -# vtic = maxy - "0" wid 5bp__ at dtop(yearmin,tonsmin) rjust above - for y=0.2 to 2 by 0.2 do { - move to dtop(yearmin,y) - if y<2 then {{ line right htic }} - sprintf("%g",y) wid 5bp__ rjust } - svg_rot(90,"Tonnes of oil equivalent per capita",at Left-(0.3,0)) - -Right: line from dtop(yearmax,tonsmin) to dtop(yearmax,tonsmax) - for p=0 to popmax do { - move to ptop(yearmax,p) - if p>0 && p<popmax then {{ line left htic }} - sprintf("%g",p) wid 5 bp__ ljust } - [svg_rot(90,"World population (billions)")] wid 10bp__ ht 114bp__ \ - with .w at Right+(0.25,0) - -Bot: line from Left.start to Right.start - for t=yearmin+10 to yearmax-10 by 10 do { - line up vtic from dtop(t,tonsmin) } - for t=yearmin to yearmax by 50 do { - sprintf("%g",t) wid 5bp__ at dtop(t,tonsmin) below } - "Year" wid 20bp__ at Bot+(0,-0.15) below - -Top: line from Left.end to Right.end - -# Population to 2017 -linethick_(2.5) - -NPopulation: \ - spline ctension_ dotted 1.5pt__ from ptop(yrd[1],ypop[1]) \ - to ptop(yrd[2],ypop[2]) - for y=3 to nyd by 10 do { continue to ptop(yrd[y],ypop[y]) } - for yy=y-10+1 to nyd do { continue to ptop(yrd[yy],ypop[yy]) } - -thicklines_ -# Wood - spline ctension_ from dtop(yr[1],wood[1]) to dtop(yr[2],wood[2]) - for y=3 to nD0 do { continue to dtop(yr[y],wood[y]) } - -# Other - spline ctension_ from dtop(yr[1],other[1]) to dtop(yr[2],other[2]) - for y=3 to nD0 do { continue to dtop(yr[y],other[y]) } - -# Hydro - spline ctension_ from dtop(yr[1],hydro[1]) to dtop(yr[2],hydro[2]) - for y=3 to nD0 do { continue to dtop(yr[y],hydro[y]) } - -# Coal - spline ctension_ from dtop(yr[1],coal[1]) to dtop(yr[2],coal[2]) - for y=3 to nD0 do { continue to dtop(yr[y],coal[y]) } - -# Oil - spline ctension_ from dtop(yr[1],oil[1]) to dtop(yr[2],oil[2]) - for y=3 to nD0 do { continue to dtop(yr[y],oil[y]) } - -# Gas - spline ctension_ from dtop(yr[1],gas[1]) to dtop(yr[2],gas[2]) - for y=3 to nD0 do { continue to dtop(yr[y],gas[y]) } - -# Total -linethick_(2.5) -Total: \ - spline ctension_ from dtop(yr[1],nuclear[1]) to dtop(yr[2],nuclear[2]) - for y=3 to nD0 do { continue to dtop(yr[y],nuclear[y]) } - -thicklines_ - -#f_box(invis fill_(1) with .s at dtop(2000,0)+(0,2pt__),Wood) -Cl: "Coal" wid 20bp__ at dtop(2000,0.36+3pt__) - "Oil" wid 15bp__ at dtop(2000,0.9) - "Gas" wid 20bp__ at dtop(2000,1.41) - "Wood" wid 20bp__ at dtop(1889,0.15) - svg_rot(50,"Population",at dtop(1975,0.9)) - -brpos = 2017 - Q: brace(down_ 2.96 with .c at dtop(brpos,1.03)) - svg_rot(90,"90 %",at Q.c+(15bp__,2bp__)) - svg_rot(90,"nonrenewable",at Q.c+(26bp__,2bp__)) - - R: brace(down_ 0.28 with .c at dtop(brpos,.09)) - [svg_rot(90,"10 %")] ht 15bp__ wid 10bp__ at R.c+(15bp__,4bp__) - svg_rot(90,"renewable",at R.c+(26bp__,17bp__)) - - linethick_(0.6) - arrow <- from dtop(1998,1.55) left 0.15 up 0.2 - "Nuclear" wid 70bp__ above - - arrow <- from dtop(1960,1.09) left 0.5 - "Total energy consumption" wid 200bp__ rjust - - spline ctension_ <- \ - from dtop(2014,1.89) left 0.5 up 0.2 then left 0.5 down 0.2 - "680 % of 1850 energy consumption" wid 300bp__ rjust - -H: "Hydro" wid 30bp__ with .w at (Cl.w.x,Cl.c.y-17pt__) -R: dtop(yr[nD0]-2,0.16) - spline from H.e+(2pt__,0) to (R.x+0.11,H.y) then to (R.x+0.11,R.y) \ - then to R -> - - spline <- from dtop(yr[nD0]-1,0.12) left 0.2 up 0.1 then left 0.55 up 0.05 - "Other renewables" wid 100bp__ with .b at Here+(-0.4,2pt__) - -Q: NPopulation.end + (-1.25,-0.1) - spline ctension_ <- \ - from NPopulation.end+(-3pt__,0) left 0.3 down 0.1 then left 0.45 then to Q - sprintf("%g %% of 1850 population",round_(ypop[nyd]/ypop[1]*10)*10) \ - wid 100bp__ rjust -] - - command "</g>" # end font -#.PE - ] with .sw at last [].se+(-40bp__,0) # Cons -#showbox_ - -.PE diff --git a/graphics/circuit_macros/examples/svg/MCSVG.m4 b/graphics/circuit_macros/examples/svg/MCSVG.m4 deleted file mode 100644 index 8fcff10ea1..0000000000 --- a/graphics/circuit_macros/examples/svg/MCSVG.m4 +++ /dev/null @@ -1,99 +0,0 @@ -.PS -#MCSVG.m4 -cct_init(svg_font(Times,11bp__)) -textoffset = 3bp__ - -MC:[ - dv = dimen_*0.6 - dh = dimen_*0.4 - backup = dimen_/6 - - for i=1 to 3 do {{ - if i==2 then { Input: dot } else { line up (2-i)*dv } - source(right_ dimen_,AC) -# The pound sign has to be protected from m4 - llabel(,,sprintf("svg_it(v`'svg_sub(&``#''%g;,66%))",96+i)) - resistor(right_ dimen_ from Here-(backup/2,0)) - if i==1 then { llabel(,R`'svg_sub(i))} - inductor(right_ dimen_ from Here-(backup,0),W) - if i==1 then { llabel(,L`'svg_sub(i))} - line right_ i*dh - b_current(sprintf("svg_it(i`'svg_sub(&``#''%g;,66%))",96+i)); dot - { line down (3-i)*dv; capacitor(down_ dimen_) - if i==1 then { rlabel(,C`'svg_it(i)) } - if i==2 then { dot } else { line right (2-i)*dh }} - line right 3*dh; dot - E: Here+((3-i)*dh+dimen_*2,(4-2*i)*dv) - for j=1 to 3 do {{ - line up (6-j*3)*dv then right (3-i)*dh - switch(right_ E.x-Here.x) - llabel(,,sprintf("svg_it(S`'svg_sub(&``#''%g;&``#''%g;,66%))",96+i,64+j)) - if i==2 then { dot } else { line down (2-i)*dv } - }} - line from E right dh then down E.y-Here.y - arrow right dimen_/2 - { sprintf("svg_it(i`'svg_sub(&`#'%g;,66%))",64+i) above } - resistor(right_ dimen_ from Here-(arrowht/2,0)) - if i==1 then {llabel(,R`'svg_sub(o))} - inductor(right_ dimen_ from Here-(backup,0),W) - if i==1 then {llabel(,L`'svg_sub(o))} - source(right_ dimen_,AC) - llabel(sprintf("svg_it(v`'svg_sub(&``#''%g;,66%))",64+i)) - if i==2 then { Output: dot } else { line down (2-i)*dv } - }} -] - -Three: [ - gapht = 4*dimen_ - dv = dimen_*0.6 - dh = dimen_*5/6 - define(`swfet',`mosfet(`$1',,dMEDSuBQPy)') - define(`swpair',`[ up_ - BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust } - L: line up_ gapht-2*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_ gapht,1,A) - { "svg_it(V)svg_sub(1)" wid 12bp__ at last arrow.c rjust } - line right_ dimen_/2 - { C1: capacitor(down_ to (Here,V1.start)); llabel(svg_it(C)svg_sub(1)) } - for_(1,3,1,` - line right_ dimen_ 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)*dimen_*5/4+dimen_/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)*dh*2/3 - pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_') - line down_ (2-m4x)*dh/3 - M: move right_ dimen_/8 - line up_ (2-m4x)*dh/3 - pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_') - line up_ (2-m4x)*dh*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 + dimen_/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_ dimen_/2 - gap(up_ gapht,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 diff --git a/graphics/circuit_macros/examples/svg/Makefile b/graphics/circuit_macros/examples/svg/Makefile deleted file mode 100644 index 0d68dcac3b..0000000000 --- a/graphics/circuit_macros/examples/svg/Makefile +++ /dev/null @@ -1,148 +0,0 @@ -LIBDIR = $$HOME/lib -M4LIBS = svg.m4 SVGconfig.m4 -M4LIBS = svg.m4 -M4 = m4 -# PDFCONVERT = pdf2svg -PDFCONVERT = dvisvgm - -# To process a single file, copy it to test.m4 and type "make tst" -# to produce tstSVG.html - -DPIC = dpic -#DPIC = $$HOME/dpic/pascal/p2c/ftp/dpic -#DPIC = ../../../dpic/pascal/p2c/ftp/dpic -#DPIC = ../../../dpic/bison/dpic -#DPIC = ../../../dpic/bi*dev/dpic - -# To test the Windows executable. Change these as needed for the operating -# system. NOTE: cscSVG.m4 and Connectors.m4 use awk and sed which -# do not work at present with the Windows version. -# M4LIBS = svg.m4 windows.m4 -# DPIC = ../../../dpic/bison/distsrc/Windows/dpic - -.SUFFIXES: .pic .svg .m4 .xsvg -.pic.svg: - $(DPIC) -v $*.pic > $*.svg - grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz -.m4.svg: - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz -.m4.xsvg: - touch F_$*.dim - $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic - $(DPIC) -g $*.pic >> $*.tex - echo "\documentclass[crop,tikz,multi=false]{standalone}" > F_$*.tex - echo "\usepackage{boxdims,siunitx,amssymb}" >> F_$*.tex - echo "\begin{document}" >> F_$*.tex - echo "\input $*.tex" >> F_$*.tex - echo "\end{document}" >> F_$*.tex - pdflatex --quiet F_$* - $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic - $(DPIC) -g $*.pic >> $*.tex - pdflatex --quiet F_$* - if test "$(PDFCONVERT)" = "pdf2svg" ; then \ - pdf2svg F_$*.pdf $*.xsvg && cp $*.xsvg $*.svg ; \ - else \ - dvisvgm --pdf F_$*.pdf && mv F_$**.svg $*.svg ; cp $*.svg $*.xsvg ; \ - fi - rm -f F_$** - -CCTSVG = \ - AdderSVG.svg AlogixSVG.svg ABlogixSVG.svg AmpTableSVG.svg AntennasSVG.svg \ - AudioSVG.svg \ - BipSVG.svg BtreeSVG.svg ByteSVG.svg ButtonsSVG.svg \ - CanLogicSVG.svg CapacitorsSVG.svg ChipsSVG.svg ConnSVG.svg ConnectorsSVG.svg \ - ContactSVG.svg ContactsSVG.svg \ - CrowSVG.svg CsourceSVG.svg \ - DecoderSVG.svg DemultiplexerSVG.svg DiniSVG.svg DiodesSVG.svg DriveSVG.svg \ - EEPSVG.svg EmarrowsSVG.svg EscherSVG.svg EVplugsSVG.svg \ - FlowSVG.svg FontsSVG.svg FusesSVG.svg \ - GeometrySVG.svg GrayCodeSVG.svg GroundsSVG.svg \ - HeadersSVG.svg HeathkitSVG.svg \ - InclepsSVG.svg InductorsSVG.svg I2LSVG.svg JackSVG.svg \ - LogicSVG.svg LoglogSVG.svg \ - MCSVG.svg MixerSVG.svg MoreTableSVG.svg MotorControlSVG.svg \ - MultiplexerSVG.svg \ - NLGSVG.svg NPDTSVG.svg NportSVG.svg OpampSVG.svg OptoisoSVG.svg \ - PconnSVG.svg PlateSVG.svg PushPullSVG.svg QuantumSVG.svg \ - RectifiersSVG.svg RelaySVG.svg ResistorsSVG.svg RotboxSVG.svg\ - SchottkySVG.svg ShiftRSVG.svg SierpinskiSVG.svg \ - SixpoleSVG.svg SourcesSVG.svg SQUIDSVG.svg SwitchesSVG.svg \ - TTLnandSVG.svg TgateSVG.svg ThreeSVG.svg \ - TubediagsSVG.svg VariableSVG.svg WindingsSVG.svg XformSVG.svg \ - controlSVG.svg cscSVG.svg diamondSVG.svg ex00SVG.svg \ - ex01SVG.svg ex02SVG.svg ex03SVG.svg ex04SVG.svg ex05SVG.svg ex06SVG.svg \ - ex08SVG.svg ex09SVG.svg ex10SVG.svg ex11SVG.svg ex12SVG.svg \ - ex15SVG.svg ex16SVG.svg ex17SVG.svg ex18SVG.svg ex21SVG.svg \ - expSVG.svg fetSVG.svg graysurfSVG.svg keyboardSVG.svg lcctSVG.svg \ - pwrsupplySVG.svg quickSVG.svg randomSVG.svg recycleSVG.svg relaycoilSVG.svg \ - roseSVG.svg sfgSVG.svg shapesSVG.svg SmithchartSVG.svg paletteSVG.svg \ - thyristorSVG.svg ujtSVG.svg UNOSVG.svg wormSVG.svg XORSVG.svg Np.svg - -examplesSVG.html: examplesSVG.htmx - cp ../quick.m4 . - make $(CCTSVG) quick.xsvg - Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \ - sed -e 's/Version XXX/Version '$$Version'/' examplesSVG.htmx \ - | m4 > examplesSVG.html - -SED = sed -e '/^\%/d' -TEST = test -tst: - @if test -f test.pic; then printf "\n\nUsage: make clean tst\n\n"; exit 1;fi - m4 $(M4LIBS) test.m4 | $(SED) > test.pic - $(DPIC) -v $(TEST).pic > $(TEST).svg - m4 $(M4LIBS) $(TEST).m4 | $(SED) > $(TEST).pic - $(DPIC) -v $(TEST).pic > $(TEST).svg - grep '<\!-- width' $(TEST).svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' \ - > $(TEST).siz - make tstSVG.html - -test.pic: - if test -f test.pic ; then echo "Usage: make clean tst" ; fi - m4 $(M4LIBS) test.m4 | $(SED) > test.pic - m4 $(M4LIBS) test.m4 | $(SED) > test.pic - -tstSVG.html: tstSVG.htmx $(TEST).svg - Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \ - sed -e 's/Version XXX/Version '$$Version'/' \ - -e 's/XXXXX/'$(TEST)'/g' \ - tstSVG.htmx | m4 > tstSVG.html -# cp tstSVG.html $(TEST) $$HOME/public_html/svg - -xst: Incleps.png - -# necessary because of rotated text: -LoglogSVG.svg: - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz - -ConnectorsSVG.svg cscSVG.svg SmithchartSVG.svg test.svg: - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz - -InclepsSVG.svg: InclepsSVG.m4 - m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic - $(DPIC) -v $*.pic > $*.svg - $(DPIC) -v $*.pic > $*.svg - -Incleps.png: - (cd ..; make Incleps.png); cp ../Incleps.png . - -clean: - @printf "\n svg clean:\n" - rm -f *.svg *.dim *.ps *log *.siz *.pic examplesSVG.html Incleps.png - rm -f tstSVG.html copy_tmp__ quick.m4 quick.xsvg - rm -f *.otf xx* *png *.pdf *.css *.xml quick.tex - @printf "\n" - -clobber: clean - (cd dev; make clobber) - rm -f test.m4 diff --git a/graphics/circuit_macros/examples/svg/MixerSVG.m4 b/graphics/circuit_macros/examples/svg/MixerSVG.m4 deleted file mode 100644 index 1712e017ed..0000000000 --- a/graphics/circuit_macros/examples/svg/MixerSVG.m4 +++ /dev/null @@ -1,98 +0,0 @@ -.PS -#`MixerSVG.m4 -# Showing VMOS mosfet and custom transformer' -cct_init(svg_font(sans-serif,10.5bp__,1bp__)) - -define(`dimen_',0.6) -define(`elen_',0.75) - -define(`Xform21', - `[ L1: inductor(to rvec_(dimen_*0.5,0),L,,M) - Core1E: M4Core1.end; Core2E: M4Core2.end - D: (0.5 between M4Core1 and M4Core2) - L1 - T: line to rvec_(dimen_/3,0); { dot(at T.c) } - L2: inductor(to rvec_(L1.len,0),L,,M) - line from M4Core1.start to Core1E - line from M4Core2.start to Core2E - L3: inductor(to rvec_(-L1.len,0) with .c at T+(D.x*2,D.y*2),L) ]') - - del = dimen_/3 - setdir_(U) -T1: Xform21; "T1" at T1.n above rjust - dot(at T1.L3.start+(0,4bp__)) - dot(at T1.L1.end+(4bp__,0)) - dot(at T1.L2.end+(4bp__,0)) - line from T1.L3.start left_ dimen_*2/3 -RF: dot(,,1); "RF" at RF.w rjust - line from T1.L3.end left_ del; corner; ground(,,F) - - line down_ del/2 from T1.L1.start then right_ del - reversed(`capacitor',right_ dimen_,C); llabel(,0.1 svg_micro`'F) -BT: dot(at Here) - line up_ del/2 from T1.L2.end then right del - reversed(`capacitor',right_ dimen_,C); llabel(,0.1 svg_micro`'F) - t = dimen_*7/8 - line to (BT.x+4*t,Here.y) -TT: dot - line right_ dimen_+del/2; setdir_(U) -Q1: mosfet(,,dMESDQuB,E) with .G at Here - { "Q1" at Q1.Env.ne above ljust } - ground(at Q1.S,,F) - line right_ del*3/2 from Q1.D then down_ Q1.D.y-T1.L2.end.y -T2: Xform21 with .L1.start at (Here,T1.L2.end); "T2" at T2.n above ljust - dot(at T2.L1.start+(-4bp__,0)) - dot(at T2.L3.end+(0,4bp__)) - line from T2.L3.end right_ dimen_*2/3 -IF: dot(,,1); "IF" wid 12bp__ at IF.e ljust - setdir_(U) -Q2: mosfet(,,dMESDQuB,E) at (Q1,T2.s-(0,elen_-del)) - { "Q2" at Q2.Env.ne above ljust } - line from Q2.D to (T2.L2.end,Q2.D) then to T2.L2.end - line from Q2.G left_ del/2 then up_ BT.y-Q2.G.y then to BT - - line right_ del from T1.T then down_ T1.T.y-BT.y+del*3/2 - corner; left_ - capacitor(to (T1.L3.end-(del,0),Here),C) - rlabel(,0.1 svg_micro`'F ) -LOD: dot - { line to (RF,Here) - dot(,,1); move left_ 4bp__; "local" rjust "oscillator" rjust; - move left 50bp__ } - line from T2.T left_ to (Q1.S,T2.T) -T2T: dot - { capacitor(down_ to (Here,BT),C); rlabel(,0.1 svg_micro`'F) - ground(,T,F) } - { line from T2.L3.start right_ del; corner; ground(,,F) } -Vt: dot(at (0.5 between BT and TT,Q1.Env.nw),,1) - { "+V`'svg_sub(CC)" at last [].e ljust } - line to (Here,T2T); dot - { line to (Here,BT); Cv: capacitor(down_ 3/2*dimen_,C) - llabel(10 svg_micro`'F); G: dot; ground(,,F) } - - for s=-1 to 1 by 2 do {{ - line right s*t; corner - resistor(down_ to (Here,BT)) - if s<0 then { llabel(,5 k`'svg_ohm) } \ - else { rlabel(,5 k`'svg_ohm) - { dot(at last line.start); line to (TT,Here) - resistor(right_ to (T2T,Here)) - llabel(,10 svg_ohm) } } - P: potentiometer(down_ Cv.len,,0.5,s*t ) with .Start at Here - if s<0 then { "1 k`'svg_ohm" at P. 1st [].ne ljust } \ - else { "1 k`'svg_ohm" at P. 1st [].sw rjust } - dot(at P.End) - dot(at P.T1) - { L: inductor(up_ to (Here,BT),L); - if s<0 then { "100 svg_micro`'H" at last [].sw rjust } \ - else { line to TT - "100 svg_micro`'H" at last [].ne ljust below } } - capacitor(down_ to (Here,G),C) - if s<0 then { rlabel(,0.1 svg_micro`'F) } \ - else { llabel(,0.1 svg_micro`'F) } - dot }} - - resistor(down_ from LOD to (LOD,G)); llabel(,51 svg_ohm); corner - line to (Q2.S,Here) then to Q2.S - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/MoreTableSVG.m4 b/graphics/circuit_macros/examples/svg/MoreTableSVG.m4 deleted file mode 100644 index 5966216c59..0000000000 --- a/graphics/circuit_macros/examples/svg/MoreTableSVG.m4 +++ /dev/null @@ -1,43 +0,0 @@ -.PS -# MoreTableSVG.m4 -cct_init(svg_font(sans-serif,11pt__)) -textwid = 1.5 -movewid = 2 pt__ -hm = 2.1 -vm = 0.28 - -hm = 2.05 -vm = 0.28 - -{ {memristor ; move;"`memristor '" ljust} - move right_ hm - {heater; move;"`heater '" ljust} - move right_ hm - {tline ; move;"`tline '" ljust} -} - move down 0.25; right_ -{ {pvcell ; move;"`pvcell '" ljust} - move right_ hm - {reed ; move ;"`reed '" ljust} - move right_ hm - {reed(,,,fill_(0.9),CR) ; move ; "`reed(,,,fill_(0.9),CR) '" ljust} -} - move down 0.25; right_ -{ {gap ; move ;"`gap '" ljust} - move right_ hm - {gap(,,A) ; move ;"`gap(,,A) '" ljust} - move right_ hm - {arrowline ; move;"`arrowline '" ljust} -} - move down 0.25; right_ -{ move down 0.10; right; {lamp ; move;"`lamp '" ljust} - move right_ hm - {thermocouple ; move;"`thermocouple '" ljust } -# move up 0.10 right_ hm -# {arrester ; move ;"`arrester '" ljust} - move right_ hm - {xtal ; move ;"`xtal '" ljust} -} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/MotorControlSVG.m4 b/graphics/circuit_macros/examples/svg/MotorControlSVG.m4 deleted file mode 100644 index 7a27d4b4d3..0000000000 --- a/graphics/circuit_macros/examples/svg/MotorControlSVG.m4 +++ /dev/null @@ -1,58 +0,0 @@ -.PS -# MotorControl.m4 -cct_init(svg_font(sans-serif,11bp__)) - - trad = 2.5*dotrad_ -define(`bigterminal',`circle rad trad') - - mrad = linewid*2/3 -Motor: circle rad mrad "Motor" - - linethick = 2 - T2: Motor.n+(0,dimen_/2) - - for i=1 to 3 do { - if i==2 then { line from Motor.n to T2 } \ - else { line from Motor right (i-2)*Motor.diam chop Motor.rad chop 0 \ - then up T2.y-Motor.y } - bigterminal - cbreaker(up_ dimen_*3/4,,T) - bigterminal - line up_ dimen_ - bigterminal - capacitor(up_ dimen_*1.2,,,dimen_/3,dimen_/6) - { circle fill_(1) rad dotrad_*3/2 thick 0.8 \ - at 0.25 between last line.end and last line.start } - if i==1 then { L1: last circle } \ - else { if i==2 then { L2: last circle }} - bigterminal - line up_ dimen_/4 - } - linethick_(0.8) - C2: circle rad mrad/3 at Motor.n+ (0,dimen_*2) - line from C2.e right_ dimen_/3 then up C2.rad*1.5 - line to (L1.x-dimen_/2,Here.y) - {S23: capacitor(up_ dimen_*2/3 from (L1.x-dimen_/2,Here.y),,, - dimen_/3,dimen_/6); dot(,,1) } - dot(,,1) - line to (L1.x-dimen_*2,Here.y) chop dotrad_ chop 0 then up dimen_/3 - S1: [ bswitch(right_ dimen_/2) ] with .Bsw_T1.s at Here - S2: [ bswitch(right_ dimen_/2,,C) ] at S1+(0,-dimen_) - line right dimen_/6 down dimen_/6 from S1.Bsw_T2.se \ - then down S1.Bsw_T2.se.y-S2.Bsw_T2.ne.y-dimen_/3 \ - then to S2.Bsw_T2.ne - box wid S1.wid+dimen_/2 ht S1.n.y-S2.s.y+dimen_/3 \ - at 0.5 between S1.s and S2.n - line left dimen_/2 from S23.end chop dotrad_ chop 0; corner - line to (Here,S1.Bsw_T2) then to S1.Bsw_T2.e - line from S2.Bsw_T1.w left dimen_/2; corner - line to (Here,L1) then to L1 chop 0 chop dotrad_ - - dot(at 0.5 between L1 and L2,,1) - { line to L2 chop dotrad_ } - S45: variable(`capacitor(down_ dimen_*2/3 chop dotrad_ chop 0,,, - dimen_/3,dimen_/6)',L,,dimen_/2); dot(,,1) - line to (Here,C2) then to C2.w chop dotrad_ chop 0 - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/MultiplexerSVG.m4 b/graphics/circuit_macros/examples/svg/MultiplexerSVG.m4 deleted file mode 100644 index 1cd5605d6f..0000000000 --- a/graphics/circuit_macros/examples/svg/MultiplexerSVG.m4 +++ /dev/null @@ -1,42 +0,0 @@ -.PS -# MultiplexerSVG.m4 -log_init - -# Font - textht = textht*0.8 - command "<g font-size=\"50%\" font-family=\"Helvetica\">" - right_ - - Mux(4,M1) - "`Mux'(4,M1)" at last [].s below - "svg_it(In0)" at last [].In0.end rjust wid 14bp__ - "svg_it(In1)" at last [].In1.end rjust - "svg_it(In2)" at last [].In2.end rjust - "svg_it(In3)" at last [].In3.end rjust - "svg_it(Out)" at last [].Out.end above - "svg_it(Sel)" at last [].Sel.end ljust above - - left_; Mux(4,,LNOE) with .c at last [].c+(0.9,0) - "`left_; Mux'(4,,LNOE)" at last [].s +(0,-20bp__) - "svg_it(In0)" at last [].In0.end above - "svg_it(NOE)" at last [].NOE.end +(4bp__,0) below - "svg_it(Out)" at last [].Out.end below - "svg_it(Sel)" at last [].Sel.end rjust below - - right_; Mux(4,,OEBN2) with .c at last [].c+(1.4,0) - "`Mux'(4,,OEBN2)" at last [].s below - "svg_it(Sel0)" at last [].Sel0.end rjust - "svg_it(Sel1)" at last [].Sel1.end ljust - "svg_it(In0)" at last [].In0.end rjust - "svg_it(In3)" at last [].In3.end rjust - "svg_it(OE)" at last [].OE.end rjust - - down_; Mux(8,,L3,,28*L_unit) with .c at last [].c+(1.7,0) - "`down_; Mux'(8,,L3,,28*L_unit)" at last [].s below wid 162bp__ - "svg_it(Sel0)" at last [].Sel0.end rjust - "svg_it(Sel2)" at last [].Sel2.end rjust below - "svg_it(In0)" at last [].In0.end rjust - "svg_it(In7)" at last [].In7.end ljust wid 14bp__ - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/NLGSVG.m4 b/graphics/circuit_macros/examples/svg/NLGSVG.m4 deleted file mode 100644 index 987e2911fb..0000000000 --- a/graphics/circuit_macros/examples/svg/NLGSVG.m4 +++ /dev/null @@ -1,21 +0,0 @@ -.PS -# NLG.m4 -cct_init(svg_font(sans-serif,11bp__)) - - define(`nullor',`nport(`$1' - {`"0"' at Box.w ljust - `"oo"' at Box.e rjust},shift($@))') - -N: nullor -`"nullor"' at last [].s+(0,-3pt__) below -G: gyrator with .sw at N.se+(0.5,0) -`"gyrator"' at G.s+(0,-3pt__) below -I: gyrator(invis,,0,N) with .w at G.e+(0.5,0) -`"gyrator(invis,,0,N)"' at I.s -V: gyrator(invis wid boxht,,0,NV) with .w at I.e+(1,0) -`"gyrator(invis wid boxht,,0,NV)"' wid 2 at V.s+(0,-3pt__) below - - move right 0.9 - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/NPDTSVG.m4 b/graphics/circuit_macros/examples/svg/NPDTSVG.m4 deleted file mode 100644 index 3702d02550..0000000000 --- a/graphics/circuit_macros/examples/svg/NPDTSVG.m4 +++ /dev/null @@ -1,41 +0,0 @@ -.PS -# `NPDT.m4' -cct_init(svg_font(sans-serif,11bp__)) - - movewid = 1.0 - - NPDT - {move left 0.1 from last [].w} - { "svg_it(R)" at last [].R.s below - "svg_it(T)" at last [].T.s below - "svg_it(L)" at last [].L.s below } - { `"NPDT"' at last [].s +(0,-0.22) } - - up_; NPDT with .sw at last[].se+(0.5,0) - { "svg_it(R)" wid 8pt__ at last [].R.e ljust - "svg_it(T)" at last [].T.e ljust - "svg_it(L)" at last [].L.e ljust } - { `"up_; NPDT"' at last [].s +(0.1,-0.15) } - right_ - - NPDT(2) with .w at last [].e+(0.75,0) - { for_(1,2,1, - `"svg_it(R`'m4x)" at last [].R`'m4x.e ljust - "svg_it(L`'m4x)" wid 11pt__ at last [].L`'m4x.w rjust') } - { `"NPDT(2)"' at last [].s +(0,-0.15) } - move - - NPDT(3,R) - { for_(1,3,1, - `"svg_it(R`'m4x)" at last [].R`'m4x.e ljust - "svg_it(L`'m4x)" wid 11pt__ at last [].L`'m4x.w rjust') } - { `"NPDT(3,R)"' at last [].s below } - - left_; NPDT(2,R) with .w at last [].e+(1.0,0) - { for_(1,2,1, - `"svg_it(R`'m4x)" at last [].R`'m4x.w rjust - "svg_it(L`'m4x)" wid 11pt__ at last [].L`'m4x.e ljust') } - { `"left_; NPDT(2,R)"' wid 90bp__ at last [].s +(0,-0.15) } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/Np.m4 b/graphics/circuit_macros/examples/svg/Np.m4 deleted file mode 100644 index e0ae4fb6bb..0000000000 --- a/graphics/circuit_macros/examples/svg/Np.m4 +++ /dev/null @@ -1,20 +0,0 @@ -.PS -svg_font(sans-serif,9bp__) - -B: box invis wid 6 ht 2 -"`nport(box specs; other commands,nw,nn,ne,ns,space ratio,pin lgth,style,other commands)" \ - ljust at B.w \ -"" ljust \ -"Default is a twoport the size of a normal box." ljust \ -"Args 2 to 5 are the number of ports to be drawn on w, n, e, s sides." ljust \ -"" ljust \ -"The port pins are named by side, number, and by a or b pin," ljust \ -"e.g. W1a, W1b, W2a, ... . Arg 6 specifies the ratio of" ljust \ -"port width to interport space, and arg 7 is the pin length." ljust \ -"" ljust \ -"Set arg 8 to N to omit the dots on the port pins" ljust \ -"Arguments 1 and 9 allow customizations'" ljust - -svgLink(NportSVG.svg,"<- back" ljust at last box.sw above ljust,B) -command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/NportSVG.m4 b/graphics/circuit_macros/examples/svg/NportSVG.m4 deleted file mode 100644 index be0aab19c0..0000000000 --- a/graphics/circuit_macros/examples/svg/NportSVG.m4 +++ /dev/null @@ -1,47 +0,0 @@ -.PS -# `NportSVG.m4' -cct_init(svg_font(sans-serif,11bp__)) - -textoffset = 2bp__ -Twoport: nport - - "W1a" wid 0.35 above rjust at Twoport.W1a - "W1b" below rjust at Twoport.W1b - "E1a" above ljust at Twoport.E1a - "E1b" below ljust at Twoport.E1b - -#Nport: nport(wid 1 ht 1.5 fill_(0.9) svgLinkString(Np.svg,n-port,B),1,2,3,4) \ -# with .Box.w at Twoport.Box.e+(1.0,0) -Nport: nport(wid 1.75 ht 1 fill_(0.9),1,2,3,4) \ - with .Box.w at Twoport.Box.e+(1.25,0) - svgLink(Np.svg,"n-port" at Nport,B) - - "W1a" rjust at Nport.W1a - "W1b" rjust at Nport.W1b - - "E1a" ljust at Nport.E1a - "E3b" ljust at Nport.E3b - - "N1a" above at Nport.N1a.n - "N1b " above at Nport.N1b.n - " N2a" above at Nport.N2a.n - "N2b" above at Nport.N2b.n - - "S1a" below at Nport.S1a.s - "S4b" below at Nport.S4b.s - - "..." at 0.5<Nport.S1a,Nport.S4b>+(0,-0.10) - "..." at 0.5<Nport.E1a,Nport.E3b>+(0.15,0.05) - -Nterm: nterm with .Box.w at Nport.Box.e+(1.0,0) - "W1" rjust at Nterm.W1 - "E1" wid 0.2 ljust at Nterm.E1 - "S1" below at Nterm.S1.s - - `"nport"' at Twoport.s+(0,-0.3) - `"nport(wid 1.5 ht 1.75 fill_(0.9),1,2,3,4)"' ljust at Nport.sw+(0,-0.3) - `"svgLink(Np.svg,\"n-port\" at Nport,B)"' ljust at Nport.sw+(0,-0.5) - `"nterm"' at Nterm.s+(0,-0.3) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/OpampSVG.m4 b/graphics/circuit_macros/examples/svg/OpampSVG.m4 deleted file mode 100644 index 7137e428ce..0000000000 --- a/graphics/circuit_macros/examples/svg/OpampSVG.m4 +++ /dev/null @@ -1,35 +0,0 @@ -.PS -# Opamp.m4 -cct_init(svg_font(sans-serif,11bp__)) - - A: opamp - thinlines_ - "`opamp'" at A.s-(0,0.25) - "Out" below at A.Out - spline <- from A.In1 left 0.1 then up 0.1 left 0.1 - "In1" wid 0.25 rjust above - spline <- from A.In2 left 0.1 then down 0.1 left 0.1 - "In2" rjust below - arrow <- up 0.1 right 0.1 from A.E1 - "E1" ljust above - arrow <- down 0.1 right 0.1 from A.E2 - "E2" ljust below - thicklines_ - Point_(15) - B: opamp(,,,,PR) with .sw at A.se+(0.65,0) - thinlines_ - "`Point_(15); opamp(,,,,PR)'" at B.s-(0,0.25) - spline <- right arrowht up arrowht from B.V1 then right 0.1 - "V1" ljust - spline <- right arrowht down arrowht from B.V2 then right 0.1 - "V2" ljust - thicklines_ - Point_(90) - C: opamp with .sw at B.se+(1.05,0) - "`Point_(90); opamp'" at C.s-(0,0.25) - right_ - D: opamp(,,,,T) with .sw at C.se+(0.65,0) - "`opamp(,,,,T)'" wid 0.85 at D.s-(0,0.25) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/OptoisoSVG.m4 b/graphics/circuit_macros/examples/svg/OptoisoSVG.m4 deleted file mode 100644 index b99e096c5a..0000000000 --- a/graphics/circuit_macros/examples/svg/OptoisoSVG.m4 +++ /dev/null @@ -1,64 +0,0 @@ -.PS -# OptoisoSVG.m4 -cct_init(svg_font(sans-serif,11bp__,3bp__)) -movewid = 0.25 - -# `optoiso([L|R][A|B|C])' -define(`optoiso',`ifinstr(`$1',C, -`[{ u = dimen_ - hd = u/5 - Q: bi_tr(up hd*4,ifinstr(`$1',R,R)) - line from Q.E ifinstr(`$1',R,left,right)(hd+u/3); Pin4: dot(,,1) - line from Q.C to (Pin4,Q.C); Pin5: dot(,,1) - T: (Q.B,Pin5)+(0,4*hd) - line from Q.B to T then to (Pin5,T); Pin6: dot(,,1) - D: diode(from Pin6 +(ifinstr(`$1',R,+,-)(u/3+hd*8),0) down hd*4) - line from D.start ifinstr(`$1',R,right,left) (hd*2+u/3); Pin1: dot(,,1) - line from D.end to (Pin1,D.end); Pin2: dot(,,1) - line from (D.end,Pin4) to (Pin1,Pin4) chop hd chop 0; Pin3: dot(,,1) - B: box wid hd*10 ht hd*10 with .c at 0.5 between Pin4 and Pin1 - arrow from B.c+(ifinstr(`$1',R,,-)hd*1.5,hd*1.5) to B.c chop 0 chop -0.7*hd - F: (ifinstr(`$1',R,,-)hd*0.5,-hd*0.5) - arrow from last arrow.start+(F.x,F.y) to last arrow.end+(F.x,F.y) - `$2' }]', -`[{u = dimen_/2 - Q: bi_trans(up u*2,ifinstr(`$1',R,R),ifinstr(`$1',B,B)CBUdE) - E: Q.E; C: Q.C; A:ifinstr(`$1',R,Q.e+(u*3/2,u),Q.w+(-u*3/2,u)); K: A-(0,u*2) - ifinstr(`$1',B,line from Q.B to (Q.B,E); B: Here) - D: diode(from A to K) - arrow from D.c+(0,u/6) to Q.ifinstr(`$1',R,e,w)+(0,u/6) chop u/3 chop u/4 - arrow from last arrow.start-(0,u/3) to last arrow.end-(0,u/3) - Enc: box rad u wid abs(C.x-A.x)+u*2 ht u*2 with .c at 0.5 between C and K - `$2' }]')') - -define(`optlabels', - `{"svg_it(C)" ht 0.1 at last [].C above - "svg_it(E)" at last [].E below - ifinstr(`$1',B,`"svg_it(B)" at last [].B below') - "svg_it(A)" at last [].A above - "svg_it(K)" at last [].K below}') - -Q: optoiso; optlabels; move - {`"optoiso"' at last [].s+(0,-0.22)} - optoiso(Rightorientation); optlabels; move - {`"optoiso(R)"' at last [].s+(0,-0.22)} - optoiso(B); optlabels(B); move - {`"optoiso(B)"' at last [].s+(0,-0.22)} - optoiso(RB); optlabels(B) - {`"optoiso(RB)"' at last [].s+(0,-0.22)} - -R: optoiso(C) with .nw at Q.sw+(0.33,-0.75); move 1 -{"svg_it(1)" at R.Pin1 rjust; "svg_it(2)" at R.Pin2 rjust - "svg_it(3)" wid 0.3 at R.Pin3 rjust} -{"svg_it(4)" at R.Pin4 ljust; "svg_it(5)" at R.Pin5 ljust - "svg_it(6)" at R.Pin6 ljust } -{`"optoiso(C)"' at R.s below } -S: optoiso(RC) -{"svg_it(1)" at S.Pin1 ljust; "svg_it(2)" at S.Pin2 ljust - "svg_it(3)" at S.Pin3 ljust } -{"svg_it(4)" at S.Pin4 rjust; "svg_it(5)" at S.Pin5 rjust - "svg_it(6)" wid 0.3 at S.Pin6 rjust } -{`"optoiso(RC)"' at S.s below } - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/PconnSVG.m4 b/graphics/circuit_macros/examples/svg/PconnSVG.m4 deleted file mode 100644 index 7cef1f5619..0000000000 --- a/graphics/circuit_macros/examples/svg/PconnSVG.m4 +++ /dev/null @@ -1,56 +0,0 @@ -.PS -# `PconnSVG.m4' -cct_init(svg_font(sans-serif,11bp__)) - -P1: [ - C1: pconnex(,A) - thinlines_ - arrow <- left 0.2 from C1.H.w; "svg_it(H)" wid 10bp__ rjust - thicklines_ - `"pconnex(,A)"' at last [].s below - C2: pconnex(,AF) with .w at C1.e+(0.3,0) - thinlines_ - arrow <- right 0.2 up 0.1 from C2.H.e; "svg_it(H)" ljust - N: box invis wid (C2.w.x-C1.e.x)/2 ht C1.N.ht \ - with .n at 0.5 between C1.ne and C2.nw "svg_it(N)" - arrow from N.w to C1.N.e - arrow from N.e to C2.N.w - G: box invis wid N.wid ht N.ht with .n at (N,C1.N.s) "svg_it(G)" - arrow from G.w to C1.G.e - arrow from G.e to C2.G.w - `"(,AF)"' at last [].s below - C03: pconnex(,AC) with .w at C2.e+(0.25,0) - `"(,AC)"' at last [].s below - C3: pconnex(,ACF) with .w at last [].e+(0.2,0) - `"(,ACF)"' at last [].s below - - C5: pconnex(U,D) with .w at last [].e+(0.25,0) - `"(U,D)"' at last [].s below - C6: pconnex(U,DF) with .w at last [].e+(0.25,0) - `"(U,DF)"' at last [].s below - C7: pconnex(U,J) with .w at last [].e+(0.25,0) - `"(U,J)"' at last [].s below - C8: pconnex(U,JF) with .w at last [].e+(0.25,0) - `"(U,JF)"' wid 28bp__ at last [].s below - ] - -P2: [ - C9: pconnex(,G) - `"(,G)"' at last [].s below - C91: pconnex(,GF) with .w at last [].e+(0.2,0) - `"(,GF)"' at last [].s below - C92: pconnex(L,GF) with .w at last [].e+(0.2,0) - `"(L,GF)"' at last [].s below - C10: pconnex(,GC) with .w at last [].e + (0.2,0) - `"(,GC)"' at last [].s below - C12: pconnex(,GCF) with .w at last [].e + (0.2,0) - `"(,GCF)"' at last [].s below - C4: pconnex(,P) with .w at last [].e + (0.2,0) - `"(,P)"' at last [].s below - C11: pconnex(,PF) with .w at last [].e+(0.2,0) - `"(,PF)"' at C11.s below -] with .nw at P1.C1.sw + (0,-0.35) - - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/PlateSVG.m4 b/graphics/circuit_macros/examples/svg/PlateSVG.m4 deleted file mode 100644 index e54235ebc5..0000000000 --- a/graphics/circuit_macros/examples/svg/PlateSVG.m4 +++ /dev/null @@ -1,173 +0,0 @@ -.PS -# ASME_Y14-5.m4 -# https://en.wikipedia.org/wiki/Geometric_dimensioning_and_tolerancing -# See the ASME Y14.5 standard, Figure 6-30. -scale = 100/3 -cct_init -include(../ASME_Y14-5.m4) -ifsvg(`svg_font(sans-serif,9.5bp__)', -`textht = 10bp__*2/3 - iflatex(`command "{\sf"')') -# ASME Y14.5 specs: - arrowht = textht*0.8 - arrowwid = textht*0.6 - maxpswid = 12 - -# Diameters - d1 = (20.13+20.00)/2 - d2 = 31.7 - d3 = 36 - d4 = (40.60+40.45)/2 - d5 = 57 - d6 = 86 - d7 = 100 - d8 = 8.0 - adj = 1.5 - -Section: [ - Orig: (0,0) - T0: (0,-d7/2) - T1: (6,-d5/2) - T2: (15.5,-d3/2) - T3: (22,-d3/2-adj) - T4: (32,-d2/2) - T5: (41.3,0) - T6: (9.5,-d4/2) -# for_(0,5,1,`"m4x" at T`'m4x') -# Hatching - H: hatchbox(invis ht d7 wid 41.3,2,thick 0.4,-45) with .w at Orig - box invis fill_(1) wid T5.x-T1.x ht T1.y-H.s.y with .se at H.se - box same with .ne at H.ne - box invis fill_(1) wid T3.x-T2.x ht T2.y-T1.y with .nw at T2 - box same with .sw at (T2.x,-T2.y) - box invis fill_(1) wid T4.x-T3.x ht T3.y-T1.y with .nw at T3 - box same with .sw at (T3.x,-T3.y) - box invis fill_(1) wid T5.x-T4.x ht T4.y-T1.y with .nw at T4 - box same with .sw at (T4.x,-T4.y) -# Section outline lower - line from (0,-d4/2) to T0 then right T1.x-T0.x then up 1 - arcto(T1,(T2,T1),1) - line to (T2,T1) then up 1 - arcto(T2,(T3,T2),1) - arcto((T3,T2),T3,0.5) - arcto(T3,(T4,T3),0.5) - arcto((T4,T3),T4,1) - arcto(T4,(T5,T4),1) - line to (T5,T4) then to (T5.x,-T4.y) then left 1 -# Section outline upper - line from (0,d4/2) to (0,-T0.y) then right T1.x-T0.x then down 1 - arcto((T1.x,-T1.y),(T2.x,-T1.y),1) - line to (T2.x,-T1.y) then down 1 - arcto((T2.x,-T2.y),(T3.x,-T2.y),1) - arcto((T3.x,-T2.y),(T3.x,-T3.y),0.5) - arcto((T3.x,-T3.y),(T4.x,-T3.y),0.5) - arcto((T4.x,-T3.y),(T4.x,-T4.y),1) - arcto((T4.x,-T4.y),(T5.x,-T4.y),1) - line to (T5.x,-T4.y) - - box wid 6 ht d8 fill_(1) with .w at (0,d6/2) - box wid 6 ht d8 fill_(1) with .w at (0,-d6/2) - box invis wid T6.x ht d4 fill_(1) with .w at Orig - box wid T5.x-T6.x ht d1 fill_(1) with .e at T5 - - line from (Orig.x,-T6.y) to (Orig.x,T6.y) - arcto(T6,(T6,Orig),1) - arcto((T6.x,-T6.y),(0,-T6.y),1) - line to (0,-T6.y) - -define(`dialabel', -`[tmpthick = linethick; linethick_(1) - [Y14_dia_]; [$1 wid ifelse(`$2',,textht,`$2')] with .w at last [].e+(0.5,0) - linethick_(tmpthick)]') - -thinlines_ - dimension_(from (0,T6.y) to (0,-T6.y),40,dialabel("40.60" "40.45",12),textht*3) - line up 4 from AE_dimen_.end - Y14_frame(Y14_per_,Y14_dia_;"0";"(M)","A") with .sw at Here - Y14_frame("B") with .s at last [].n+(0,6) -thicklines_(1) - datumarrow(from last [].s to 2nd last [].n) -thinlines_ - dimension_(from T2 to (T2.x,-T2.y),30, - dialabel("35.5" "36.0",12),textht*3) - dimension_(from T0 to T0+(T1.x,0),-8," 6.1 " " 5.9 ",textht) - dimension_(from S_dimen_.end to S_dimen_.end+(T2.x,0),-9, - "15.4" "15.6",textht*4) - line from E_dimen_.start to (T2,T1) chop 0 chop 1 - dimension_(from S_dimen_.end to S_dimen_.end+(T3.x,0),-9, - "21.9" "22.1",textht*4) - line from E_dimen_.start to T3 chop 0 chop 1 - dimension_(from S_dimen_.end to S_dimen_.end+(T4.x,0),-9, - "31.9" "32.1",textht*4) - line from E_dimen_.start to (T4,T3) chop 0 chop 1 - dimension_(from S_dimen_.end to S_dimen_.end+(T5.x,0),-9, - "41.2" "41.4",textht*4) - line from E_dimen_.start to (T5,T4) chop 0 chop 1 - line from S_dimen_.start to T0 chop 0 chop 1 - dimension_(from (0,d7/2) right T6.x,8,"9.6" "9.4",3*textht) - line from E_dimen_.start to (T6.x,d4/2) chop 0 chop 1 - ctrline(from (-3,0) to T5+(3,0),T5.x/2) - ctrline(from (-3,d6/2) right T1.x+6) - ctrline(from (-3,-d6/2) right T1.x+6) - dimension_(from T5-(0,d1/2) to T5+(0,d1/2),-14, - dialabel("20.13" "20.00",4*textht),textht*3) - dimension_(from T5-(0,d2/2) to T5+(0,d2/2),-35, - dialabel("31.8" "31.6",3*textht),textht*3) - arrow <- from (T5.x+6,d1/2) by (Rect_(20,75)) then right 6 - Y14_frame(Y14_cir_,"0.06" wid 3*textht,"A","B") with .w at Here - Y14_frame("C") with .n at last [].se+(-6,-8) -thicklines_(1) - datumarrow(from last [].n up 8) -thinlines_ - arrow <- from (T5.x+6,-d2/2) by (Rect_(10,-75)) then right 4 - Y14_frame(Y14_cir_,"0.1" wid textht*2,"C") with .w at Here - arrow <- from ((T3.x+T4.x)/2,d3/2+adj) by (Rect_(30,75)) then right 4 - "M42 X 1.5 - 6g" wid 9*textht ljust - Y14_frame(Y14_pos_,Y14_dia_;"0.1" wid textht*2;"(M)","C";"(M)") \ - with .nw at last "".sw+(0,-2) - line from (T2.x,-T1.y) up 25 chop 1 chop 0 - Y14_frame(Y14_par_,"0.06" wid 3*textht,"A") with .sw at Here - Y14_frame(Y14_sur_," 0.1 " wid 3*textht,"A") with .sw at last [].nw - arrow <- from (0,-d6/2+10) left 13 - Y14_frame(Y14_fla_,"0.02" wid 4*textht) with .e at Here - Y14_frame("A") with .n at last [].s+(0,-6) - datumarrow(from last [].n up 6) - ] - -Topview:[ - C: circle diam d7 - for i=0 to 7 do { circle diam d8 at C+(Rect_(d6/2,i/8*360)) } - C5: circle diam d5 at C - C4: circle diam d3+2*adj at C - C3: circle dashed diam d3 at C - C2: circle diam d2 at C - C1: circle diam d1 at C - -thinlines_ - dimension_(from C.w-(0,10) to C.e-(0,10),-C.rad-15, - dialabel("100" "99",textht*3),textht*5) - dimension_(from C5.w-(0,5) to C5.e-(0,5),-C.rad-5, - dialabel("57.2" "56.8",textht*4),textht*5) - arrow <-> from C+(Rect_(d6/2,-120)) to C+(Rect_(d6/2,60)) - line from last arrow.end to C+(Rect_(d7/2+6,60)) then right 4 - dialabel("86.2" "85.8",textht*4) with .w at Here+(1,0) - ctrline(from (C.x-(d6-d7/2),C.y) to (C.x+(d6-d7/2),C.y)) - ctrline(from (C.x,C.y-d6/2+d8/2) to (C.x,C.y+d6/2-d8/2)) - for_(0,315,45,`ctrarcr(C,d6/2,(m4x-22.5)*dtor_,(m4x+22.5)*dtor_) - ctrline(from C+(Rect_(d6-d7/2,m4x)) to C+(Rect_(d7/2,m4x))) ') - arcdimension_(from C+(0,d7/2) to C+(Rect_(d7/2,135)) with .c at C, - 8,"8X 45`'iflatex($^\circ$)" wid textht*3.5,15,1) - ifsvg("svg_deg" wid textht*2/3 with .w at last "".e) - move to C+(0,d6/2) - arrow <- from Here+(Rect_(8/2,75)) to Here+(Rect_(25,75)) then right_ 3 - "8X" wid 2*textht ljust - linethick_(1); [Y14_dia_] with .w at last "".e+(1,0) - "7.9 - 8.1" wid 8*textht ljust - Y14_frame(Y14_pos_,Y14_dia_;"0.14" wid 3*textht;"(M)","A","C") \ - with .nw at 2nd last "".sw+(0,-2) - - ] with .C at Section.Orig+(4.5*scale,0) - - -command iflatex(`"}"',ifsvg(`"</g>"')) -.PE diff --git a/graphics/circuit_macros/examples/svg/PushPullSVG.m4 b/graphics/circuit_macros/examples/svg/PushPullSVG.m4 deleted file mode 100644 index c3610fdaf6..0000000000 --- a/graphics/circuit_macros/examples/svg/PushPullSVG.m4 +++ /dev/null @@ -1,108 +0,0 @@ -.PS -# `PushPullSVG.m4' -cct_init(svg_font(sans-serif,9bp__,1bp__)) - -linewid = 1.2*linewid - -# Transformer as for Mixer.m4 -define(`Xform21', - `[ L1: inductor(to rvec_(dimen_*0.5,0),,,M) - Core1E: M4Core1.end; Core2E: M4Core2.end - D: (0.5 between M4Core1 and M4Core2) - L1 - T: line to rvec_(dimen_/3,0); { dot(at T.c) } - L2: inductor(to rvec_(L1.len,0),,,M) - line from M4Core1.start to Core1E - line from M4Core2.start to Core2E - L3: inductor(to rvec_(-L1.len,0) with .c at T+(D.x*2,D.y*2),) ]') - - del = dimen_/3 - up_ - T1: Xform21 - line left_ del from T1.L3.end; corner; ground(,,F) - line left_ 2*del from T1.L3.start - In: dot(,,1); { "RF" wid 12bp__ at In.n above } - up_ - Q1: mosfet(,,dBSDFQM1,E) with .G0 at T1.T+(2*dimen_+del/2,dimen_) - { "3N200" at last [].n above } - line from T1.L2.end to (T1.L2.end,Q1.G0) then to Q1.G0 - Q2: mosfet(,,dBSDFQM1,E) with .G0 at (Q1.G0.x,T1.T.y-dimen_) - { "3N200" at last [].n above } - line from T1.L1.start to (T1.L1.start,Q2.G0) then to Q2.G0 - - resistor(right_ dimen_ from T1.T); llabel(,330`'svg_ohm); Tx:dot - { line right_ del*3/2; corner; ground(,,F) } - dot(at (Tx,Q1.G0)) - capacitor(down_ to Tx,C); llabel(5.6pF) - dot(at (Tx,Q2.G0)) - capacitor(up_ to Tx,C); rlabel(5.6pF) - - for_(1,2,1, - `dot(at Q`'m4x.S+(dimen_+del/2,0)) - { resistor(down_ dimen_); G1:Here; - { "120" at last [].w rjust "svg_ohm" rjust } - dot; ground(,,F) } - line from Q`'m4x.S to (Here.x+dimen_*3/4,Q`'m4x.S.y); corner - capacitor(down_ to (Here,G1),C) - { "1000" at last [].w rjust "pF" rjust } - corner - line left_ 2*dimen_*3/4; corner - TG: dot(at (Here,Q`'m4x.S)) - capacitor(down_ to (Here,G1),C); rlabel(,0.01 svg_micro(F)) - ') - - R: dot(at (Here.x+dimen_*2,(Q1.D.y+Q2.D.y)/2)) - dot(at (R,Q1.D)); capacitor(down_ to R,C); llabel(20pF) - dot(at (R,Q2.D)); capacitor(up_ to R,C); llabel(20pF) - line right_ del*3/2 from R then down_ R.y-(Q1.S.y-dimen_); ground(,,F) - - Vc: dot(at (R+(dimen_,0),Q1.ne),,1); { "+Vc" rjust at Vc.w } - dot(at (Vc,R)) - inductor(right_ dimen_,); llabel(,1 svg_micro(H)) - down_ - T2: Xform21 with .T at Here - arrow from T2.L2 to T2.L3 chop -dimen_/4 - line right_ del from T2.L3.start; corner - capacitor(down_ dimen_,C); llabel(1000 pF); ground(,T,F) - line right_ 2*del from T2.L3.end - Out: dot(,,1); { "IF" wid 12bp__ at Out.n above }; move right_ 0.3 - - line from T2.L1.start to (T2.L1,Q1.D) then to Q1.D - line from T2.L2.end to (T2.L2.end,Q2.D) then to Q2.D - - line from Vc to (Vc,Q2.S) chop dotrad_/2 chop 0; dot - { line right_ del*2; corner - capacitor(down_ dimen_,C); llabel(,1000 pF); ground(,,F) } - reversed(`inductor',down_ dimen_,); rlabel(,1 svg_micro(H)) - line down_ dimen_/2 - - TL: dot(at (Q1.G1.x-del/2,Here.y)) - up_ - Q3: bi_tr(,R,,E) with .C at (TG.x,TL.y-dimen_*2/3) - resistor(right_ from TL to (Q3.C,TL)); llabel(,82 k`'svg_ohm) - line to (Vc,Here); dot - resistor(down_ to (Here,Q3.B)); rlabel(,8.2 k`'svg_ohm); dot - dot(at Q3.B+(del,0)) - line up_ (TL.y+Q3.C.y)/2 - Here.y+del/4 then left_ Here.x-TL.x - reversed(`capacitor',left_ dimen_,C); llabel(,1500 pF) - Osc: dot(,,1); { "Osc" above at Osc.n } - - line from Q3.B to (Vc,Q3.B) - line from Q3.C to (Q3.C,TL); dot - dot(at Q3.C+(0,del/2)) - capacitor(left_ to (TL,Here),C); llabel(,1500 pF); dot - line down_ del/2 from Q3.E; dot - { resistor(down_ dimen_*3/4); rlabel(,820`'svg_ohm) - G: Here; ground(,T,F) } - line right_ dimen_; corner - capacitor(down_ to (Here,G),C); llabel(,1000 pF) - ground(,T,F) - ground(at (TL,G),T,F) - resistor(up_ dimen_); llabel(,12 k`'svg_ohm) - line to (Here,Q1.G1) then to Q1.G1 - line from Q2.G1 to (TL,Q2.G1); dot - - ground(at (Vc,G),T,F) - resistor(up_ dimen_); rlabel(,5.6 k`'svg_ohm); line to (Here,Q3.B) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/QuantumSVG.m4 b/graphics/circuit_macros/examples/svg/QuantumSVG.m4 deleted file mode 100644 index 863c3ac857..0000000000 --- a/graphics/circuit_macros/examples/svg/QuantumSVG.m4 +++ /dev/null @@ -1,31 +0,0 @@ -.PS -# QuantumSVG.m4 -gen_init - - boxht = 0.35 - boxwid = boxht - define(`dotrad_',boxht/5) - -define(`Bus',`line right_ 10*boxwid `$1' - circle diam boxht `$2' at last line.start - box fill_(1) "H" at last line.start+(boxwid*3/2,0) - box fill_(1) "H" at last line.end-(boxwid*2.5,0) ') - -define(`Meter',`[ Box: box wid boxwid*3/2 fill_(1) - r = Box.wid/3 - C: 0.3 between Box.s and Box.n - arc cw from C+(-r,0) to C+(r,0) with .c at C - arrow from C+(-r/4,0) to C+(0.9*r,0.9*r) ]') - -X: Bus(,shaded rgbstring(0.5,0.5,1) "X") -A1: Bus(from X.start+(0,-boxht*3/2), shaded "red" "A") -A2: Bus(from 2 between X.start and A1.start, shaded "red" "A") - dot(at X.start+(3*boxwid,0)) - line to (Here,A2); dot - circle rad dotrad_ at A1.start+(4*boxwid,0) - line from last circle.s to (last circle,X); dot - Meter with .e at X.end - box wid boxwid*1.2 ht boxht*1.2 fill_(1) at A2.end-(4.5*boxwid,0) \ - "svg_it(R)svg_sub(svg_psi)svg_sup(svg_pi/2,,,-1.2ex)" - -.PE diff --git a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4 b/graphics/circuit_macros/examples/svg/RectifiersSVG.m4 deleted file mode 100644 index c6473744eb..0000000000 --- a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4 +++ /dev/null @@ -1,190 +0,0 @@ -.PS -# RectifiersSVG.m4 -cct_init(svg_font(Times,11bp__)) - - tmax = 3.5 - period = tmax/1.75 - eamp = 0.5 - omega = twopi_/period - ed = eamp/6 - r = 0.95 - -# For DC voltages - ted = asin(ed/eamp)/twopi_*period - npts = 40; sum = 0 - for i=0 to npts do { - t = ted+(period/2-2*ted)*i/npts - sum += (eamp*cos(omega*t-pi_/2) - ed)*r } - -define(`Sine',`Cosine(eamp,omega,`$1',-pi_/2)') -define(`axis',`line thick 0.4 right tmax chop -tmax*0.04 chop 0') - -Threephase: [ linethick_(1) - Ai: axis ; "N`'svg_sub(o)" ljust - move right 0.3 from Ai.end - EOrig: Ai.start+(tmax*0.04,0) - E1: sinusoid(eamp,omega,-pi_/2,-ted,tmax) with .Origin at EOrig - E2: sinusoid(eamp,omega,-pi_/2-twopi_/3,-ted,tmax) with .Origin at EOrig - E3: sinusoid(eamp,omega,-pi_/2+twopi_/3,-ted,tmax) with .Origin at EOrig - "e`'svg_sub(1)" at EOrig+(period/3,eamp*0.8) ljust above - "e`'svg_sub(2)" at EOrig+(2*period/3,eamp*0.8) ljust above - "e`'svg_sub(3)" at EOrig+(period,eamp*0.8) ljust above - - Ad: axis with .end at Ai.end+(0,-eamp*2.1); "N`'svg_sub(o)" ljust - DOrig: Ad.start+(tmax*0.04,0) - Id: axis with .end at Ad.end+(0,-eamp*1.2); "0" ljust - IOrig: Id.start+(tmax*0.04,0) - - for i=1 to 11 by 2 do { - tl = max(0,period/2-i*period/6) - tr = min(period/2,tmax-(i*period/6-period/2)) - sinusoid(eamp,omega,-pi_/2,tl,tr,thick 0.4 dashed) \ - with .Origin at DOrig+(i*period/6-period/2,0) - tl = max(period/12,-(i*period/6-period/2+period/12) ) - tr = period/2-period/12 - S1: sinusoid(eamp*r,omega,-pi_/2,tl,tr) \ - with .Origin at DOrig+(i*period/6-period/2,0)+(0,-ed*r); round(at S1.End) - S2: sinusoid(eamp*r,omega,-pi_/2,tl,tr) \ - with .Origin at IOrig+(i*period/6-period/2,0)+(0,-ed*r); round(at S2.End) - } - "e`'svg_sub(1)" at DOrig+(period/3,eamp*0.8) ljust above - "e`'svg_sub(2)" at DOrig+(2*period/3,eamp*0.8) ljust above - "e`'svg_sub(3)" at DOrig+(period,eamp*0.8) ljust above - - "e`'svg_sub(L)" at DOrig+(period/4,eamp*0.8) below - "i`'svg_sub(L)" at IOrig+(period/6,eamp*0.6) rjust above - - vEd = r*eamp*cos(pi_/12)/(5*pi_/12) - r*ed - VEd: axis with .end at Ad.end+(0,vEd); "E`'svg_sub(D)" ljust - IEd: axis with .end at Id.end+(0,vEd); "I`'svg_sub(D)" ljust - ] - -Cct3:[ - No: dot; {"N`'svg_sub(o)" at last [].s below rjust } - { inductor(to Here+(Rect_(dimen_,60)),W); E2: Here; "e`'svg_sub(2)" ljust } - { inductor(to Here+(Rect_(dimen_,-60)),W); E3: Here; "e`'svg_sub(3)" ljust } - { inductor(from No-(dimen_,0) to No,W); E1: last line.start - "e`'svg_sub(1)" at E1 above } - D3: diode(down_ from E3); b_current(i`'svg_sub(3),rjust) - llabel(,,D`'svg_sub(3)) - line from E1 to (E1.x,D3.start.y+dimen_/3) then right_ (E3.x+E1.x)/2-E1.x \ - then down_ dimen_/3 - D1: diode(down_); b_current(i`'svg_sub(1),rjust); llabel(,,D`'svg_sub(1)) - line from E2 left E2.x-E1.x+dimen_/3 then down E2.y-E3.y \ - then to 2 between D3.start and D1.start - D2: diode(down_); b_current(i`'svg_sub(2),rjust); llabel(,,D`'svg_sub(2)) - { line from D2.end to D3.end } - dot(at D1.end) - arrowline(down elen_/2); rlabel(,i`'svg_sub(L)) - resistor(right_ elen_); rlabel(+,e`'svg_sub(L),-); llabel(,R) - line to (Here,No) then to No - ] with .e at Threephase.w-(0.5,0) - move left 0.2 from Cct3.w - -Fullwave: [ - linethick_(1) - Ai: axis ; "N`'svg_sub(o)" ljust - EOrig: Ai.start+(tmax*0.05,0) - E1: sinusoid(eamp,omega,-pi_/2,-ted,tmax) with .Origin at EOrig - "e`'svg_sub(1)" at EOrig+(period/3,eamp*0.8) ljust above - E2: sinusoid(eamp,omega, pi_/2,-ted,tmax) with .Origin at EOrig - "e`'svg_sub(2)" at EOrig+(period*5/6,eamp*0.8) ljust above - - Ad: axis with .end at Ai.end+(0,-eamp*2.1); "N`'svg_sub(o)" ljust - DOrig: Ad.start+(tmax*0.05,0) - Id: axis with .end at Ad.end+(0,-eamp*1.2); "0" ljust - IOrig: Id.start+(tmax*0.05,0) - - for i=0 to 3 do { - if i<3 then { tf = period/2 } else { tf = Ad.end.x-(DOrig.x+3*period/2) } - sinusoid(eamp,omega,-pi_/2,0,tf,thick 0.4 dashed) \ - with .Origin at DOrig+(i*period/2,0) - line from DOrig+(i*period/2-ted,0) right 2*ted - line from IOrig+(i*period/2-ted,0) right 2*ted - if i<3 then {tf = period/2-ted } else {tf = Ad.end.x-(DOrig.x+3*period/2) } - Ed: sinusoid(eamp*r,omega,-pi_/2,ted,tf) \ - with .Origin at DOrig+(i*period/2,-ed*r) - Ed: sinusoid(eamp*r,omega,-pi_/2,ted,tf) \ - with .Origin at IOrig+(i*period/2,-ed*r) - } - "e`'svg_sub(1)" at DOrig+(period/6,eamp*0.9) rjust above - "e`'svg_sub(2)" at DOrig+(period/6+period/2,eamp*0.9) rjust above - "e`'svg_sub(L)" at DOrig+(period/4,eamp*0.8) below - "i`'svg_sub(L)" at IOrig+(period/6,eamp*0.6) rjust above - - vEd = sum/(period/2/(period/2-2*ted)*npts) - VEd: axis with .end at Ad.end+(0,vEd); "E`'svg_sub(D)" ljust - IEd: axis with .end at Id.end+(0,vEd); "I`'svg_sub(D)" ljust - ] with .sw at Threephase.nw+(0,0.5) - -Cct2:[ - T: transformer(right_ elen_,R,8,AW,8) - line up elen_/2 from T.P1 - gap(right_ elen_) - { sinusoid(0.08,omega*8,-pi_/2,0,twopi_/(omega*8)) with .c at last [] } - line to T.P2 - line from T.S1 to (T.P1,T.S1) then down elen_/2 - D1: diode(down_ elen_*3/4); rlabel(,D`'svg_sub(1)) - line from T.S2 to (T.P2,T.S2) then to (T.P2,D1.start) - D2: diode(down_ elen_*3/4); rlabel(,D`'svg_sub(2)) - corner; line to D1.end; corner - dot(at 0.5 between D1.end and D2.end) - arrowline(down elen_/2); rlabel(,i`'svg_sub(L)) - resistor(right_ elen_); rlabel(+,e`'svg_sub(L),-); llabel(,R) - line to (Here,T.TS)-(0,elen_/2) then left Here.x-T.TS.x then to T.TS - {"N`'svg_sub(o)" at T.TS-(0,elen_/2) below } - thinlines_ - move to T.TS-(0,0.1) - { arrow to (T.P1,Here) chop 0.05 "e`'svg_sub(1)" below } - { arrow to (T.P2,Here) chop 0.05 "e`'svg_sub(2)" below } - linethick_(1) - ] at (Cct3,Fullwave) - -Halfwave: [ - linethick = 1 - Ai: axis ; "N`'svg_sub(o)" ljust - EOrig: Ai.start+(tmax*0.05,0) - Ei: sinusoid(eamp,omega,-pi_/2,0,tmax) with .Origin at EOrig - "e`'svg_sub(i)" at EOrig+(period/3,eamp*0.8) ljust above - - Ad: axis with .end at Ai.end+(0,-eamp*1.75); "N`'svg_sub(o)" ljust - DOrig: Ad.start+(tmax*0.05,0) - sinusoid(eamp,omega,-pi_/2,0,period/2,thick 0.4 dashed) with .Origin at DOrig - sinusoid(eamp,omega,-pi_/2,0,period/2,thick 0.4 dashed) \ - with .Origin at DOrig+(period,0) - "e`'svg_sub(i)" at DOrig+(period/5,eamp*0.9) rjust above - - line from Ad.start to DOrig+(ted,0) - Ed: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \ - with .Origin at DOrig+(0,-ed*r) - "e`'svg_sub(L)" at DOrig+(period/3,eamp*0.6) below - line from Ed.End right period/2+2*ted - Ed2: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \ - with .Origin at DOrig+(period,-ed*r) - line from Ed2.End to Ad.end - - vEd = sum/(period/(period/2-2*ted)*npts) - VEd: axis with .end at Ad.end+(0,vEd); "E`'svg_sub(D)" ljust above - - Id: axis with .end at Ad.end+(0,-eamp*1.0); "0" ljust - IOrig: Id.start+(tmax*0.05,0) - line from Id.start to IOrig+(ted,0) - Sd: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \ - with .Origin at IOrig+(0,-ed*r) - "i`'svg_sub(L)" at IOrig+(period/3,eamp*0.7) above - line from Sd.End right period/2+2*ted - Sd2: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \ - with .Origin at IOrig+(period,-ed*r) - line from Sd2.End to Id.end - IEd: axis with .end at Id.end+(0,vEd); "I`'svg_sub(D)" ljust above - ] with .sw at Fullwave.nw+(0,0.5) - -Cct1:[ diode(down_ elen_); b_current(i`'svg_sub(L),rjust,O,E); rlabel(D) - resistor(right_ elen_); rlabel(+,e`'svg_sub(L),-); llabel(,R) - line up elen_ - { "N`'svg_sub(o)" ljust below } - gap(left_ elen_); rlabel(-,e`'svg_sub(i),+) - ] at (Cct3,Halfwave) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/RelaySVG.m4 b/graphics/circuit_macros/examples/svg/RelaySVG.m4 deleted file mode 100644 index f4b8152a50..0000000000 --- a/graphics/circuit_macros/examples/svg/RelaySVG.m4 +++ /dev/null @@ -1,47 +0,0 @@ -.PS -# RelaySVG -cct_init -svg_font(sans-serif,10bp__) - -skip = 1.1 - -R1:relay - {"svg_it(V1)" wid 0.16 rjust at last [].V1 - "svg_it(V2)" ljust at last [].V2 - "svg_it(P1)" rjust at last [].P1-(dotrad_,0) - "svg_it(O1)" ljust at last [].O1 - "svg_it(C1)" ljust at last [].C1 } - S: "svg_tt(`relay')" at last [].s+(0,-0.2) - -R5:relay(2,CTh) with .sw at last [].sw+(skip,0) - { for_(1,2,1,` - "svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x ') } - "svg_tt((2,CTh))" at (last [],S) - -R4:relay(2,O) with .sw at last [].sw+(skip,0) - {for_(1,2,1,` - "svg_it(P1)" rjust at last [].P1-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x ')} - "svg_tt((2,O))" at (last [],S) - -R3:relay(2,PIAX) with .sw at last [].sw+(skip,0) - {"svg_it(V1)" rjust at last [].V1 - "svg_it(V2)" rjust at last [].V2 - for_(1,2,1,` - "svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x+(dotrad_,0) - "svg_it(C`'m4x)" ljust at last [].C`'m4x+(dotrad_,-2pt__) ') } - "svg_tt((2,PIAX))" at (last [],S) - -R2:relay(2,R) with .sw at last [].sw+(skip,0) - {"svg_it(V1)" rjust at last [].V1 - "svg_it(V2)" wid 0.2 ljust at last [].V2 - for_(1,2,1,` - "svg_it(P`'m4x)" rjust at last [].P`'m4x-(dotrad_,0) - "svg_it(O`'m4x)" ljust at last [].O`'m4x - "svg_it(C`'m4x)" ljust at last [].C`'m4x ') } - "svg_tt(`relay(2,R)')" at (last [],S) - - command "</g>)" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ResistorsSVG.m4 b/graphics/circuit_macros/examples/svg/ResistorsSVG.m4 deleted file mode 100644 index fe88a79ad3..0000000000 --- a/graphics/circuit_macros/examples/svg/ResistorsSVG.m4 +++ /dev/null @@ -1,48 +0,0 @@ -.PS -# `ResistorsSVG.m4' -cct_init(svg_font(sans-serif,11pt__)) -textwid = 1.5 -movewid = 2 pt__ -hm = 2.1 -vm = 0.28 - -hm = 2.05 -vm = 0.28 -{ - {resistor ; move ; svgLink(NportSVG.svg,"`resistor'" ljust)} - move right_ hm - {resistor(,,Q) ; move ; "`resistor(,,Q) '" ljust} - move right_ hm - {resistor(,,V) ; move ; "`resistor(,,V) '" ljust} -} - move down vm; right_ -{ - {resistor(,,ES) ; move ; "`resistor(,,ES) '" ljust} - move right_ hm - {resistor(,,H) ; move ; "`resistor(,,H) '" ljust} - move right_ hm - {resistor(,,AC) ; move ; "`resistor(,,AC) '" ljust} -} - move down vm; right_ -{ - {resistor(,,B) ; move ; "`resistor(,,B) '" ljust} - move right_ hm - {resistor(,,E) ; move - "`resistor(,,E)'" ljust " svg_equiv `ebox'" ljust} - move right_ hm - {ebox(,0.5,0.3) ; move ;"`ebox(,0.5,0.3) '" ljust} -} - move down vm; right_ -{ - {ebox(,,,0.6) ; move ; "`ebox(,,,0.6) '" ljust} - move right_ hm - {ebox(,,,,shaded "yellow") ; move ;"`ebox(,,,,shaded \"yellow\") '" ljust} -} - move down vm; right_ -{ - {ebox(,wdth=0.2;box=dashed shaded "green";text="X") ; move - "`ebox(,wdth=0.2;box=dashed shaded \"green\";text=\"X\")'" ljust} -} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/RotboxSVG.m4 b/graphics/circuit_macros/examples/svg/RotboxSVG.m4 deleted file mode 100644 index cb65d317fc..0000000000 --- a/graphics/circuit_macros/examples/svg/RotboxSVG.m4 +++ /dev/null @@ -1,21 +0,0 @@ -.PS -# RotboxSVG.m4 -gen_init -#nclude(dpictools.pic) - -[ - Point_(-10) - rotbox(boxwid/2,,thick 2) - Point_(30) - rotbox(,,shaded "yellow" outlined "blue" thick 3,r=0.1) \ - at last []+vec_(boxwid,0) - "r=0.1" at last [] - move to last [].ne - Point_(0) - [[]; for_(2,8,2, `rotbox(,,dashed,t=m4x/10) at last []+vec_(boxwid*1.1,0) - sprintf("t=%g",m4x/10) at last [] ') ] with .nw at last [].ne+(0.1,0) - [[]; for_(10,16,2, `rotbox(,,dashed,t=m4x/10) at last []+vec_(boxwid*1.1,0) - sprintf("t=%g",m4x/10) at last [] ') ] with .nw at last [].sw+(0,-0.1) -] - -.PE diff --git a/graphics/circuit_macros/examples/svg/SQUIDSVG.m4 b/graphics/circuit_macros/examples/svg/SQUIDSVG.m4 deleted file mode 100644 index 391587e177..0000000000 --- a/graphics/circuit_macros/examples/svg/SQUIDSVG.m4 +++ /dev/null @@ -1,19 +0,0 @@ -.PS -# SQUIDSVG.m4 -cct_init(svg_font(sans-serif,11bp__)) - -down_ -S1: SQUID - "J1" at S1.J1 above rjust wid 15bp__ - "J2" at S1.J2 above ljust - -S2: SQUID(3,dimen_*1.5,-120) at S1.e+(elen_,0) - "J1" at S2.J1 above rjust - "J2" at S2.J2 below ljust - "J3" at S2.J3 above ljust - arcrad = S2.C.rad*0.7 - arc from S2.c+(Rect_(arcrad,-135)) to S2.c+(Rect_(arcrad,-45)) \ - with .c at S2.C -> - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/SVGconfig.m4 b/graphics/circuit_macros/examples/svg/SVGconfig.m4 deleted file mode 100644 index e8aa1fa3ec..0000000000 --- a/graphics/circuit_macros/examples/svg/SVGconfig.m4 +++ /dev/null @@ -1,58 +0,0 @@ -divert(-1) -#nclude(svg.m4)dnl -#ivert(-1) - -#Adjust scale and default lengths -define(`scaledefaults',` - scale = 1/($1) - arcrad = arcrad*($1) - arrowht = arrowht*($1) - arrowwid = arrowwid*($1) - boxht = boxht*($1) - boxrad = boxrad*($1) - boxwid = boxwid*($1) - circlerad = circlerad*($1) - dashwid = dashwid*($1) - ellipseht = ellipseht*($1) - ellipsewid = ellipsewid*($1) - lineht = lineht*($1) - linewid = linewid*($1) - moveht = moveht*($1) - movewid = movewid*($1) - textht = textht*($1) - textoffset = textoffset*($1) - textwid = textwid*($1) - linethick = linethick*($1) - maxpsht = maxpsht*($1) - maxpswid = maxpswid*($1) -') - -# Possible defaults for diagrams in mm -define(`SIdefaults',` - scale = scale*25.4 - arcrad = 5 - arrowht = 2.5 - arrowwid = arrowht/2 - boxht = 12 - boxrad = 0 - boxwid = 18 - circlerad = 5 - dashwid = 1.5 - ellipseht = 12 - ellipsewid = 18 - lineht = 12 - linewid = 12 - moveht = 12 - movewid = 12 - textht = ifsvg(4,0) - textoffset = 3 - textwid = 0 -') - -define(`local_init',` -`#' local init begin - scaledefaults(1.1) -`#' local init end -') - -divert(0)dnl diff --git a/graphics/circuit_macros/examples/svg/SchottkySVG.m4 b/graphics/circuit_macros/examples/svg/SchottkySVG.m4 deleted file mode 100644 index 51e21bc291..0000000000 --- a/graphics/circuit_macros/examples/svg/SchottkySVG.m4 +++ /dev/null @@ -1,54 +0,0 @@ -.PS -# SchottkySVG.m4 -# 4-input positive NAND: the Schottky option for transistors (TI TTL data book) -cct_init(svg_font(sans-serif,11bp__,1bp__)) - - tic = dimen_/4 - rlen = dimen_*3/4 - -E1: dot; line up_ tic -Q1: bi_trans(,,dEBCBUS) with .E at Here; line left tic from Q1.B; B1: Here - resistor(up_ rlen from Q1.C); llabel(,3 k`'svg_ohm); B2: dot; line right_ tic -Q2: bi_trans(up_ dimen_,,dEBCBUS) with .B at Here - line from Q2.E to (Q2.E,E1); dot -Gnd: "GND" ljust at Here+(dimen_/2,0) - dot(at Q2.C) - { line to (Gnd,Here); "Y" wid 0.3 ljust } - line to (Q1.C,Here); dot - resistor(up_ rlen); llabel(,4 k`'svg_ohm); B4: dot; line right_ tic; up_ -Q4: bi_tr with .B at Here - line from Q4.E to Q2.C - line up_ tic from B4 -Q5: bi_trans(,,dEBCBUS) with .E at Here; line left_ tic from Q5.B; B5: dot - line from Q5.C to (Q4.C,Q5.C); dot - { line to Q4.C } - resistor(up_ rlen); llabel(,120 svg_ohm); dot -Vcc: "Vcc" ljust at (Gnd,Here) - dot(at (B5,Vcc)) - resistor(to (Here,Q5.C)); llabel(,8 k`'svg_ohm) - diode(from (B4,Q2.C) to (B5,Q2.C),Z) - line to (Here,Q5.C) - diode(from B4 to (Here,B4),Z); dot - line left_ tic; up_ -Q3: bi_trans(,,dEBCBUS) with .C at Here; line left_ tic from Q3.B; B3: Here - line from Q3.E to (Q3.E,B2); dot - dot(at (B1,Here)); resistor(down_ to (Here,Q1.C)); rlabel(,1.5 k`'svg_ohm) - line to B1 - resistor(down_ from B3 to (B3,B2)); rlabel(,12 k`'svg_ohm); line to B2 - line from Vcc to (B3,Vcc); resistor(down_ to (Here,Q5.C)) - rlabel(,20 k`'svg_ohm) - line to B3 - ground(at (Q3.C,Gnd),,F); dot - - for_(0,3,1, - `dot(at (B3+(0,tic*m4x))) - line left_ tic*m4x; diode(left_ dimen_,Z); dot - {line down_ dimen_; reversed(`diode',down_ dimen_,Z); line to (Here,Gnd) \ - ifelse(m4x,3,`then to Gnd',`; dot') } - line left_ tic*eval(4-m4x) - "ifelse(m4x,3,D,m4x,2,C,m4x,1,B,m4x,0,A)" wid 0.15 rjust - ') - - command "</g>" # end font -.PE - diff --git a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4 b/graphics/circuit_macros/examples/svg/ShiftRSVG.m4 deleted file mode 100644 index de8e13843e..0000000000 --- a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4 +++ /dev/null @@ -1,49 +0,0 @@ -.PS -# ShiftR.m4 -log_init(svg_font(sans-serif,11*0.9bp__)) -textoffset = textht/6 - -define(`lg_plen',3) - -define(`customFF',`FlipFlopX(wid 10*L_unit ht FF_ht*L_unit,, - :S;NE:CK;:R, N:PR, :Q;;ifelse(`$1',1,:svg_ol(Q)), N:CLR,,)') - - F0: customFF(1) - - BUFFER_gate(,N) with .Out at F0.W1.end - line left 2*L_unit from last [].In1 - T: dot - reversed(`NOT_gate',left 10*L_unit) - {move left textht*8} - Serial: "SERIAL" rjust "INPUT" rjust - line from T to (T,F0.W3) then to F0.W3.end - - NCLR: NOT_gate(right T.x-Serial.x from (Serial,F0.S1.end),N) - "svg_ol(CLEAR)" wid 33bp__ at NCLR.start rjust - - CLK: NOT_gate(right T.x-Serial.x from NCLR.start+(0,-BUF_ht*3/2*L_unit)) - "CLOCK" at CLK.start rjust - -for_(1,4,1,` - F`'m4x: customFF(eval(m4x!=4)) with .W3.end at F`'eval(m4x-1).E3.end - ') - - "OUTPUT" wid 0.7 at F4.E1.end ljust - line from NCLR.end to F4.S1.end - - down_ -for_(0,4,1,` - line from F`'m4x.W2.end down F0.W2.y-CLK.y - ifelse(eval(m4x!=4),1,`dot',`line to CLK.end') - N`'m4x: NAND_gate with .Out at F`'m4x.N1.end - line up 2*L_unit from N`'m4x.In2 - { line up 6*L_unit from N`'m4x.In1 - "PR`'eval(4-m4x)" rjust } - ifelse(eval(m4x!=4),1, - `dot; dot(at F`'m4x.S1.end)', - `line to (Serial,Here) - "PRESET" rjust "ENABLE" rjust ') - ') - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/SierpinskiSVG.m4 b/graphics/circuit_macros/examples/svg/SierpinskiSVG.m4 deleted file mode 100644 index 08d7fab111..0000000000 --- a/graphics/circuit_macros/examples/svg/SierpinskiSVG.m4 +++ /dev/null @@ -1,54 +0,0 @@ -.PS -# Sierpinski.m4 -gen_init -[ - define Sierpinski { - if $1 > 0.04 then { - d = $1/2-lh - shade(1,line from $2+(d/2,d/2*s3+lw*2) right d/2 up d/2*s3 then left d*2 \ - then right d down d*s3 then right d/2 up d/2*s3 ) - Sierpinski($1/2,$2-($1/2,0)) - Sierpinski($1/2,$2+($1/2,0)) - Sierpinski($1/2,$2+(0,$1*s3/2)) - } - } - - r = 3 - linethick = 0.2 - #linethick = 1/2 /(1pt__) - lw = linethick pt__ /2 - s3 = sqrt(3) - lh = lw*s3 - A: 3,3 - d = r/2-lh - shade(0,line from A+(0,lw) right d then up d*s3 left d then down d*s3 left d\ - then right d ) - ifpstricks(`psset_(linecolor=white)') - Sierpinski(r/2,A) - - ifpstricks(`psset_(linecolor=black)') - thicklines_ - ] - -# CayleyGraph.m4 -[ -define CayleyGraph { - if $3 > 0 then { - { line to Here+(cosd($2),sind($2))*($1) - exec sprintf("CayleyGraph(%g,%g,%g);", ($1)/2, $2, $3-1); } - { line to Here+(cosd($2+90),sind($2+90))*($1) - exec sprintf("CayleyGraph(%g,%g,%g);", ($1)/2, $2+90, $3-1); } - { line to Here+(cosd($2-90),sind($2-90))*($1) - exec sprintf("CayleyGraph(%g,%g,%g);", ($1)/2, $2-90, $3-1); } - } - } - - size = 2 - depth = 6 - for t=0 to 270 by 90 do { - line from (0,0) to (cosd(t),sind(t))*size/2; - { exec sprintf("CayleyGraph(%g,%g,%g);",size/4,t,depth); } - } - ] scaled 3/4 with .sw at last [].se+(-0.25,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/SixpoleSVG.m4 b/graphics/circuit_macros/examples/svg/SixpoleSVG.m4 deleted file mode 100644 index 430c045069..0000000000 --- a/graphics/circuit_macros/examples/svg/SixpoleSVG.m4 +++ /dev/null @@ -1,25 +0,0 @@ -.PS -# sixpole.m4 -define(`biquad',`[ -In: Here - resistor(right_) -E: dot - resistor - dot - {capacitor(down_,C); ground(,T)} - line right_ elen_/3 - { dot - line up_ elen_ - amp(to (E,Here),elen_/2) - capacitor(from E to Here,C) } - amp(right_,elen_/2) - Out: Here - ]') - -cct_init -define(`elen_',linewid) - - biquad - biquad with .In at last [].Out+(-linewid/4,0) - biquad with .In at last [].Out+(-linewid/4,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/SmithchartSVG.m4 b/graphics/circuit_macros/examples/svg/SmithchartSVG.m4 deleted file mode 100644 index 7d80e3e01e..0000000000 --- a/graphics/circuit_macros/examples/svg/SmithchartSVG.m4 +++ /dev/null @@ -1,222 +0,0 @@ -.PS -# Smithchart.m4 -gen_init -#https://utah.instructure.com/courses/684846 -#https://www.youtube.com/watch?v=RptPsP8hS4g -#https://www.youtube.com/watch?v=UUk1R01uEoE -##https://www.youtube.com/watch?v=TsXd6GktlYQ - -scalefactor = 6.5/2 # to vary the final chart diameter -scalefactor = 6.5/2*3/4 # 3/4 scale for svg examples -# Basic definitions -define Rac {($1/($1+1),0)*scalefactor} # centre of const ra circle -define rar {1/abs($1+1)*scalefactor} # radius -define Xac {(1,1/($1))*scalefactor} # centre of const xa circle -define xar {1/abs($1)*scalefactor} # radius -define Rc {CRc[$1*100]} # Rc circle indexed by value -define Xc {CXc[$1*100]} # Xc circle indexed by value -define grayline {outlined graystring($1)} -define arct {arc thick $1} - -# `SGamma(ra,xa) chart location of complex value' -define(`SGamma',`(ifelse(`$2',0,`Rc($1).w', - `Cintersect(Rac(`$1'),rar(`$1'),Xac(`$2'),xar(`$2'), dnl - ifelse(substr(`$2',0,1),-,R))'))') -# 1-piece Ra arc -define(`RaArc1',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) { - Rc(ix): arct(`$2') grayline(`$2'g) dnl - from SGamma(ix,`$3') to SGamma(ix,-(`$3')) with .c at Rac(ix)}') -# 2-piece Ra arc -define(`RaArc2',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) { - Rc(ix): arct(`$2') grayline(`$2'g) dnl - from SGamma(ix,`$3') to SGamma(ix,`$4') with .c at Rac(ix) - arct(`$2') grayline(`$2'g) dnl - from SGamma(ix,-(`$4')) to SGamma(ix,-(`$3')) with .c at Rac(ix)}') -# Positive and negative Xa arcs -define(`XaArc2',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) { - Xc(ix): arct(`$2') grayline(`$2'g) dnl - from SGamma(`$3',ix) to SGamma(`$4',ix) with .c at Xac(ix) - Xc(-ix): arct(`$2') grayline(`$2'g) dnl - cw from SGamma(`$3',-ix) to SGamma(`$4',-ix) with .c at Xac(-ix)}') - -define(`Smithchart',`[ -iflatex(s_init(tst) - command "{\tiny") -ifsvg(svg_font(sans-serif,10bp__) - svg_rot_init(SmithchartSVG)) - - thk = 1.2 # wicth of thick lines (pt) - thn = 0.4 # thin lines - thkg = 0.33 # weight of thick lines - thkg =0.5 - thng = 0.4 # weight of thin lines - thng = 0.6 - -C: circle thick thk rad rar(0) at (0,0) - line thick thk grayline(thkg) from C.w to C.e - -Rc(50): circle thick thk grayline(thkg) rad rar(50) at Rac(50) -Loopover_(`term',`RaArc1(patsubst(term,:,`,'))', - 20:thn:50, - 30 to 40 by 10:thn:50, - 20:thk:20, - 12 to 18 by 2:thn:20, - 10:thn:50, - 10:thk:20, - 6 to 9:thn:10, - 5:thk:10, - 2.2 to 4.81 by 0.2:thn:5, - 4:thn:20, - 4:thk:5, - 3:thn:10, - 3:thk:5, - 2:thn:20, - 2:thk:5, - 1.1 to 1.91 by 0.2:thn:2, - 1.2 to 2.01 by 0.2:thk:2, - 1:thn:10, - 1:thk:5, - 0.2 to 1.81 by 0.2:thn:5, - 0.2 to 0.81 by 0.2:thk:2, - 0.6 to 0.91 by 0.1:thk:1, - 0.55 to 0.951 by 0.1:thn:1, - 0.1 to 0.91 by 0.2:thn:2, - 0.1 to 0.91 by 0.2:thk:1, - 0.22 to 0.481 by 0.02:thn:0.5, - 0.01 to 0.191 by 0.01:thn:0.2, - 0.05 to 0.151 by 0.1:thk:0.2) - -Loopover_(`term',`RaArc2(patsubst(term,:,`,'))', - 0.05 to 0.451 by 0.1:thn:1:0.5, - 0.02 to 0.181 by 0.02:thn:0.5:0.1) - -Xc(50): arct(thk) cw grayline(thkg) from C.e \ - to SGamma(0,50) with .c at Xac(50) -Xc(-50): arct(thk) grayline(thkg) from C.e \ - to SGamma(0,-50) with .c at Xac(-50) - -Loopover_(`term',`XaArc2(patsubst(term,:,`,'))', - 10 to 20 by 10:thn:0:50, - 7 to 9 by 2:thn:0:10, - 2 to 18 by 2:thn:0:20, - 0.2 to 4.81 by 0.2:thn:0:5, - 1.1 to 1.91 by 0.2:thn:0:2, - 1 to 4:thn:0:10, - 0.1 to 0.91 by 0.2:thn:0:2, - 0.22 to 0.481 by 0.02:thn:0:0.5, - 0.55 to 0.951 by 0.1:thn:0:1, - 10 to 20 by 10:thk:0:20, - 5:thk:0:10, - 1.2 to 1.81 by 0.2:thk:0:2, - 1 to 4:thk:0:5, - 0.2 to 0.81 by 0.2:thk:0:2, - 0.1 to 0.91 by 0.2:thk:0:1) - -Loopover_(`term',`XaArc2(patsubst(term,:,`,'))', - 0.05 to 0.451 by 0.1:thn:0.5:1, - 0.02 to 0.181 by 0.02:thn:0:0.5, - 0.02 to 0.191 by 0.01:thn:0:0.2, dnl 0.02 should be 0.01 - 0.05 to 0.151 by 0.1:thk:0:0.2) -dnl these avoid TeX arithmetic overflow: - line thick thn grayline(thng) from SGamma(0,0.01) to SGamma(0.2,0.01) - line thick thn grayline(thng) from SGamma(0,-0.01) to SGamma(0.2,-0.01) - dot(at C,,1,grayline(thkg)) - -dnl Internal labels start here - textht = C.wid/120 -# Horizontal axis -Loopover_(`t',`box wid textht ht textht*1.5 colored "white" \ - with .se at Rc(t).w+(-2bp__,2bp__) - r_text(90,"t",at Rc(t).w+(-textht/3,textht*1.5))', - 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 1,1.2,1.4,1.6,1.8, 2,3,4,5,10,20,50) -# Xc=1 labels -Loopover_(`tt', - `define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl - X: SGamma(m4vl,1) - M: move from Rc(m4vl) to X; ax = lin_ang(M)*rtod_-90 #; print ax - r_text(m4ta,m4vl,at X+(Rect_(textht*2,ax+30))) - Y: X-Rc(m4vl); X: Rc(m4vl)+(Y.x,-Y.y) - r_text(-m4ta,m4vl,at X+(Rect_(textht*1.7,-(ax+30)))) ', - 10:0.2, 19:0.4, 26:0.6, 32:0.8, 37:1) -# right-side circumference -Loopover_(`tt', - `define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl - X: Xc(m4vl).start; ax = atan2(X.y,X.x)*rtod_ ; # print round_(ax) - r_text(m4ta,m4vl,at X+(Rect_(textht*2,ax-120))) - if m4vl>=2 then { - r_text(-m4ta,m4vl,at (X.x,-X.y)+(Rect_(textht*1.5,-ax+135))) }\ - else { r_text(-m4ta,m4vl,at (X.x,-X.y)+(Rect_(textht*2,-ax+150))) } ', - 6:20, 11:10, 23:5, 28:4, 37:3, 53:2, 58:1.8, 64:1.6, 71:1.4, 80:1.2, 90:1) -# left-side circumference -Loopover_(`tt', - `X: Xc(m4Lx*0.1).start; # print round_(atan2(X.y,X.x)*rtod_-180) - r_text(-patsubst(tt,:,`,'),at X+(Rect_(textht*1.7,-m4Lx*11+40))) - r_text( patsubst(tt,:,`,'),at (X.x,-X.y)+(Rect_(textht*2.1,m4Lx*11-30))) ', - 11:0.1, 23:0.2, 33:0.3, 44:0.4, 53:0.5, 62:0.6, 70:0.7, 77:0.8, 84:0.9) -# Ra=1 labels -Loopover_(`tt',`X: SGamma(1,m4Lx*0.2) - M: move from Rac(1) to X; # print round_(lin_ang(M)*rtod_-180) - r_text(-eval(m4Lx*11),ifelse(m4Lx,5,1,0.eval(m4Lx*2)), - at X+(Rect_(textht*1.5,-m4Lx*11+40))) - r_text( eval(m4Lx*11),ifelse(m4Lx,5,1,0.eval(m4Lx*2)), - at (X.x,-X.y)+(Rect_(textht*2,m4Lx*11-30))) ', - 11:0.2, 23:0.4, 33:0.6, 44:0.8, 53:1) - - textht *=0.9 -# Wavelength circle and tics - wvsep = textht*3/2 - wltic = C.wid/120 - circle thick thn grayline(thkg) diam C.diam+wltic/2+wvsep*11 at C -W: circle thick thn grayline(thkg) diam C.diam+wvsep*8 at C - for tc=0 to 249 do {ax = 180-tc/250*360; line thick thn grayline(thkg) \ - from W+(Rect_(W.rad+wltic/2,ax)) to W+(Rect_(W.rad-wltic/2,ax)) } -# Wavelength circle labels -for_(0,49,1, - `ifelse(eval(m4x<5),1,, - `r_text(eval(90-m4x*180/25),ifelse(m4x,0,0,eval(m4x<10),1,0.0`'m4x,0.`'m4x), - at W+(Rect_(W.rad+wltic/2+textht*0.5,180-m4x*180/25)))') - ifelse(eval(m4x<47),1, - `r_text(eval(90-m4x*180/25),ifelse(m4x,0,0,eval(m4x>40),1,0.0`'eval(50-m4x), - 0.`'eval(50-m4x)), at W+(Rect_(W.rad-wltic/2-textht*1.0,180-m4x*180/25)))')') - - circle thick thn grayline(thkg) diam C.diam+wvsep*5 at C -A: circle thick thn grayline(thkg) diam C.diam+wvsep*2.5 at C - for tc=0 to 359 by 2 do {line thick thn grayline(thkg) \ - from A+(Rect_(A.rad+wltic/2,tc)) to A+(Rect_(A.rad,tc)) } -for_(20,170,10, - `r_text(eval(-90+m4x),m4x,at A+(Rect_(A.rad+textht*0.5,m4x))) - r_text(eval( 90-m4x),-m4x,at A+(Rect_(A.rad+textht*1.2,-m4x))) - ') - r_text(90,180,at A-(A.rad+textht/2,0)) -Loopover_(`rca', - `r_text(eval(90-(180-rca/10)),eval(m4Lx*5+5), - at A+(Rect_(A.rad-textht*0.7,rca/10))) - r_text(eval(-90+(180-rca/10)),eval(-m4Lx*5-5), - at A+(Rect_(A.rad-textht*0.7,-rca/10))) ', - 195,295,392,490,588,685,782,880,967,1072, - 1165,1260,1352,1438,1518,1598,1645) - -# Internal labels - setrgb(thng,thng,thkg) - "RESISTANCE R/Zo OR CONDUCTANCE G/Yo" at C+SGamma(0.5,0)-(0,C.rad/40) - Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(87-m4Lx*86/100),Lttr, - at W+(Rect_(W.rad+wltic/2+textht*0.5, 177-m4Lx*0.86))) ')', - W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,G,E,N,E,R,A,T,O,R) - Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(115-m4Lx*86/100),Lttr, - at W+(Rect_(W.rad-wltic/2-textht*1.0, 204-m4Lx*0.86))) ')', - W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,L,O,A,D) - Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','13-m4Lx*86/100`) - r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad+textht*0.7, xa))) ')', - R,E,F,L,E,C,T,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E) - Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','14-m4Lx*86/100`) - r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad-textht*0.7, xa))) ')', - T,R,A,N,S,M,I,S,S,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E) - resetrgb - -iflatex(command "}%", -ifsvg(command "</g>")) -] ') - -Smithchart at (0,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/SourcesSVG.m4 b/graphics/circuit_macros/examples/svg/SourcesSVG.m4 deleted file mode 100644 index 2a611fe681..0000000000 --- a/graphics/circuit_macros/examples/svg/SourcesSVG.m4 +++ /dev/null @@ -1,48 +0,0 @@ -.PS -# `SourcesSVG.m4' -cct_init(svg_font(sans-serif,11bp__)) -textwid = 0.7 -movewid = 2pt__ -moveht = 0.275 -define(`NL',`; move down $1; right_') -{ - {source ; move ; "`source'" ljust} NL - {source(,I) ; move ; "`source(,I)'" ljust} NL - {source(,i) ; move ; "`source(,i)'" ljust} NL - {source(,V) ; move ; "`source(,V)'" ljust} NL - {source(,v) ; move ; "`source(,v)'" ljust} NL - {source(,AC); move ; "`source(,AC)'" ljust} NL - {source(,X) ; move ; "`source(,X)'" ljust} NL - {source(,F) ; move ; "`source(,F)'" ljust} NL - {source(,G) ; move ; "`source(,G)'" ljust} NL - {source(,Q) ; move ; "`source(,Q)'" ljust} NL(0.3) - {proximity ; move ; "`proximity" ljust "= consource(,P)'" ljust} -} - move right_ 2.0 -{ - {source(,,0.4) ; move ; "`source(,,0.4)'" ljust} NL(0.35) - {source(,P) ; move ; "`source(,P)'" ljust} NL - {source(,U) ; move ; "`source(,U)'" ljust} NL - {source(,H) ; move ; "`source(,H)'" ljust} NL - {source(,R) ; move ; "`source(,R)'" ljust} NL - {source(,S) ; move ; "`source(,S)'" ljust} NL - {source(,T) ; move ; "`source(,T)'" ljust} NL - {source(,L) ; move ; "`source(,L)'" ljust} NL - {source(,B) ; move ; "`source(,B)'" ljust} NL - {nullator ; move ; "`nullator'" ljust} NL(moveht*0.8) - {norator ; move ; "`norator'" ljust} -} - move right_ 2.0 - {source(,N) ; move ; "`source(,N)'" ljust} NL - {source(,"svg_micro(A)"); move; "`source(,\"svg_micro(A)\")'" \ - wid 1.7 at Here ljust}NL(0.31) - {consource ; move ; "`consource'" ljust } NL(0.32) - {consource(,I) ; move ; "`consource(,I)'" ljust} NL(0.32) - {consource(,i) ; move ; "`consource(,i)'" ljust} NL(0.32) - {consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32) - {consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3) - {battery ; move ; "`battery'" ljust} NL - {battery(,3,R) ; move ; "`battery(,3,R)'" ljust} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4 b/graphics/circuit_macros/examples/svg/SwitchesSVG.m4 deleted file mode 100644 index 2bccc8cd8f..0000000000 --- a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4 +++ /dev/null @@ -1,149 +0,0 @@ -.PS -# SwitchesSVG.m4 -cct_init(svg_font(sans-serif,11bp__,2bp__)) -textoffset = 3bp__ - -movewid = 0.25 - -define(`Below',`at last [].s+(0,-(8 ifelse(`$1',,,+10*(`$1')))bp__)') -movewid = 0.25 - -# Row 1 - right_; { - lswitch; {"svg_tt(`lswitch')" at last [].s Below} - move right_ - lswitch(,,O); {"svg_tt(`(,,O)')" at last [].s Below} - move right_ - lswitch(,,C); {"svg_tt(`(,,C)')" at last [].s Below} - move right_ - lswitch(,,DA); {"svg_tt(`(,,DA)')" at last [].s Below} - move right_ - lswitch(,,dDO); {"svg_tt(`(,,dDO)')" at last [].s Below} - move right_ - lswitch(,,uDC); {"svg_tt(`(,,uDC)')" at last [].s Below} - } -# Row 2 - move down 0.4; right_; { - lswitch(,,K); {"svg_tt(`(,,K)')" at last [].s Below} - move right_ - lswitch(,,KD); {"svg_tt(`(,,KD)')" at last [].s Below} - move right_ - lswitch(,,KOD); {"svg_tt(`(,,KOD)')" at last [].s Below} - move right_ - lswitch(,,KCD); {"svg_tt(`(,,KCD)')" at last [].s Below} - move right_ - bswitch; {"svg_tt(``bswitch'')" at last [].s Below} - move right_ - bswitch(,,C); {"svg_tt(`(,,C)')" at last [].s Below} - } -# Row 3 - move down 0.45; right_; { - D: dswitch; {"svg_tt(`dswitch')" at D.start below ljust} - thinlines_ - {spline <- from last [].B.c up 0.1 then up 0.05 left 0.1 - "svg_tt(`B')" rjust} - thicklines_ - move right_ - dswitch(,,WdBK); {"svg_tt(`(,,WdBK)')" at last [].s Below} - thinlines_ - { spline <- from 0.5 along_(last [].B) up 0.1 then up 0.10 left 0.1 - {"svg_tt(`B')" rjust} } - { spline <- from last [].K right 0.1 then right 0.05 up 0.15 - {"svg_tt(`K')" above }} - thicklines_ - move right_ - dswitch(,,WBmdDK); {"svg_tt(`(,,WBmdDK)')" at last [].s Below} - move right_ - dswitch(,,WBKTr); {"svg_tt(`(,,WBKTr)')" at last [].s Below} - move right_ - dswitch(,,WdBL); {"svg_tt(`(,,WdBL)')" at last [].s Below} - move right_ - dswitch(,,WBSd); {"svg_tt(`(,,WBSd)')" at last [].s Below} - } -# Row 4 - move down 0.4; right_; { - dswitch(,,WBCb); {"svg_tt(`(,,WBCb)')" at last [].s Below} - move right_ - dswitch(,,WBcCb); {"svg_tt(`(,,WBcCb)')" at last [].s Below} - move right_ - dswitch(,,WBcDI); {"svg_tt(`(,,WBcDI)')" at last [].s Below} - thinlines_ - {arrow <- from last [].DI.start up_ 0.1 right_ 0.15; "svg_tt(`DI')" ljust} - thicklines_ - move right_ -# dswitch(,,WBDI); {"svg_tt(`(,,WBDI)')" at last [].s Below} - dswitch(,,WBKCo); {"svg_tt(`(,,WBKCo)')" at last [].s Below} - move right_ - dswitch(,,WBFDI); {"svg_tt(`(,,WBFDI)')" at last [].s Below} - move right_ - dswitch(,,WBFSd); {"svg_tt(`(,,WBFSd)')" at last [].s Below} - } -# Row 5 - move down 0.4; right_; { - dswitch(,,WBMMR); {"svg_tt(`(,,WBMMR)')" at last [].s Below} - move right_ - dswitch(,,WBMM); {"svg_tt(`(,,WBMM)')" at last [].s Below} - move right_ - dswitch(,,WBMR); {"svg_tt(`(,,WBMR)')" at last [].s Below} - move right_ - dswitch(,,WBEL); {"svg_tt(`(,,WBEL)')" at last [].s Below} - move right_ - dswitch(,,WBLE); {"svg_tt(`(,,WBLE)')" at last [].s Below} - move right_ - dswitch(,,WBoKEL); {"svg_tt(`(,,WBoKEL)')" at last [].s Below} - } -# Row 6 - move down moveht+2bp__; right_; { - dswitch(,,WBTh); {"svg_tt(`(,,WBTh)')" at last [].s Below} - move right_ - dswitch(,,WBKC); {"svg_tt(`(,,WBKC)')" at last [].s Below} - thinlines_ - { arrow <- from last [].C.c left 0.2; "svg_tt(`C')" rjust } - thicklines_ - move right_ - dswitch(,,WBM); {"svg_tt(`(,,WBM)')" at last [].s Below} - move right_ - dswitch(,,WBCO); {"svg_tt(`(,,WBCO)')" at last [].s Below} - move right_ - dswitch(,,WBMP); {"svg_tt(`(,,WBMP)')" at last [].s Below} - move down_ 2bp__ then right_ - dswitch(,,WBoKCP); {"svg_tt(`(,,WBoKCP)')" at last [].s Below} - } -# Row 7 - move down moveht*7/6; right_; { - dswitch(,,WBCY); {"svg_tt(`(,,WBCY)')" at last [].s Below} - move right_ - dswitch(,,WBCZ); {"svg_tt(`(,,WBCZ)')" at last [].s Below} - move right_ - dswitch(,,WBCE); {"svg_tt(`(,,WBCE)')" at last [].s Below} - move right_ - dswitch(,,WBRH); {"svg_tt(`(,,WBRH)')" at last [].s Below} - move right_ - dswitch(,,WBRdH); {"svg_tt(`(,,WBRdH)')" at last [].s Below} - move right_ - dswitch(,,WBRHH); {"svg_tt(`(,,WBRHH)')" at last [].s Below} - } -# Row 8 - move down moveht; right_; { - move down_ 2bp__; right_ - dswitch(,,WBPr); {"svg_tt(`(,,WBPr)')" at last [].s Below} - move right_ - dswitch(,,WBPrT); {"svg_tt(`(,,WBPrT)')" at last [].s Below} - move down_ 6bp__ then right_ - dswitch(,,WBPrM); {"svg_tt(`(,,WBPrM)')" at last [].s Below} - move right_ - dswitch(,,WBDIGX,text=W); #{"svg_tt(`(,,WBDIGX,W)')" at last [].s Below} - {"svg_tt(`(,,WBDIGX,')" ljust at last line.start+(0,-15bp__) \ - "svg_tt(`text=W)')" ljust} - move right_ - dswitch(,,WBDIGC,text=M) - {"svg_tt(`(,,WBDIGC,')" ljust at last line.start+(0,-15bp__) \ - "svg_tt(`text=M)')" ljust} - move right_ - dswitch(,,WBcDIGC,text=M) # - {"svg_tt(`(,,WBcDIGC,')" ljust at last line.start+(0,-15bp__) \ - "svg_tt(`text=M)')" ljust} - } - - command "</g>')" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/TTLnandSVG.m4 b/graphics/circuit_macros/examples/svg/TTLnandSVG.m4 deleted file mode 100644 index 7b27077866..0000000000 --- a/graphics/circuit_macros/examples/svg/TTLnandSVG.m4 +++ /dev/null @@ -1,54 +0,0 @@ -.PS -# TTLnand.m4 -cct_init(svg_font(sans-serif,11bp__,1bp__)) - - up_ -Q3: bi_tr - "Q3" at Q3.E above ljust - dot(at Q3.C); reversed(`diode',up_ dimen_/2) -Q4: bi_tr with .E at Here - "Q4" at Q4.E above ljust - resistor(up_ dimen_ from Q4.C); rlabel(,`svg_norm(130 svg_ohm)') -V: dot - line left_ dimen_*0.75 from Q4.B; dot - line left_ dimen_*0.75 from Q3.B; dot -Q2: bi_tr(up_ Q4.B.y-Q3.B.y) with .E at Here - "Q2" at 1/2 between Q2.E and Q2.C ljust - resistor(from Q2.C to (Q2.C,V)); rlabel(,`svg_norm(1.6 k`'svg_ohm)'); dot - resistor(from Q2.E down_ dimen_); llabel(,`svg_norm(1 k`'svg_ohm)') - line to (Q4.E,Here) -G: dot - line to Q3.E - line left_ dimen_/4 from Q2.B - right_ -Q1: bi_trans(,,BCdE2BU) with .C at Here - "Q1" at Q1.Bulk above rjust - resistor(up_ from Q1.B to (Q1.B,V)); rlabel(,svg_norm(4 k`'svg_ohm)) - line to V - - line left dimen_ from Q1.E2 -X1: dot; "X1" wid 0.2 rjust above at last [].w -X2: dot(at (X1,Q3.C)); "X2" rjust at last [].w - AA: line invis right dimen_ from X2 - line from X2 to Intersect_(AA,Q1.Em1) then to Q1.E1 -X3: dot(at 2 between X1 and X2); "X3" rjust below at last [].w - AA: line invis right dimen_ from X3 - line from X3 to Intersect_(AA,Q1.Em0) then to Q1.E0 - -W: X2+(dimen_/2,0) -N: V+(0,dimen_/4) -S: (N.x,N.y-2*(N.y-W.y)) - line from V to 2 between V and N -Vcc:dot; "+5 svg_norm(V)" ljust at last [].e - line from G to (G,S) - ground - line from N to (W,N) then to (W,S) then to S - arc rad N.y-W.y ccw to N with .c at 1/2 between N and S - - line right (N.y-S.y)/2+dimen_/2 from Q3.C -Z: dot - lw = 1.05 - "svg_it(Z = svg_ol(X1 . X2 . X3))" wid lw ljust - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/TgateSVG.m4 b/graphics/circuit_macros/examples/svg/TgateSVG.m4 deleted file mode 100644 index 3505460639..0000000000 --- a/graphics/circuit_macros/examples/svg/TgateSVG.m4 +++ /dev/null @@ -1,53 +0,0 @@ -.PS -# Tgate.m4 -cct_init(svg_font(sans-serif,11bp__)) - -right_ - -[ { Q: tgate - "A" at Q.A rjust - "B" at Q.B ljust - "G" at Q.G ljust below - "Gb" at Q.Gb ljust above - `"tgate"' wid 0.5 at Q.A-(0.25,0) rjust - } - - move down_ linewid; right_ - { Q: tgate(,L) - "A" at Q.A rjust - "B" at Q.B ljust - "G" at Q.G rjust above - "Gb" at Q.Gb ljust below - `"tgate(,L)"' at Q.A-(0.25,0) rjust - move left 0.75; right - } - ] - -[ { Q: tgate(,B) - "A" at Q.A rjust - "B" at Q.B ljust - "G" at Q.G ljust - `"tgate(,B)"' at Q.G-(0,10bp__) below - } - ] with .Q.A at last [].Q.B+(0.5,linewid/2) - -[ { Q: ptrans - "A" at Q.A rjust - "B" at Q.B ljust - "G" at Q.G rjust below - "Gb" at Q.Gb rjust - `"ptrans"' at Q.B+(0.25,0) ljust - } - - move down_ linewid; right_ - { Q: ptrans(,L) - "A" at Q.A rjust - "B" at Q.B ljust - "G" at Q.G ljust above - "Gb" at Q.Gb ljust below - `"ptrans(,L)"' wid 0.75 at Q.B+(0.25,0) ljust - } - ] with .Q.Gb at (last [].e.x+elen_/2+0.5,1st [].Q.Gb.y) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ThreeSVG.m4 b/graphics/circuit_macros/examples/svg/ThreeSVG.m4 deleted file mode 100644 index 29a784eead..0000000000 --- a/graphics/circuit_macros/examples/svg/ThreeSVG.m4 +++ /dev/null @@ -1,47 +0,0 @@ -.PS -# ThreeSVG.m4: three-phase oscillator -cct_init(svg_font(sans-serif,11bp__)) - -define(`section',`[ I: Here - resistor(right elen_*0.75); llabel(,R/2) -T: dot - line down dimen_/2 then right_ dimen_/4 - Amp: opamp(,,,,,{ - rgbfill(0.9*255,0.6*255,0.1*255,line to N then to E then to S then to Here) - "-" at In1 ljust - "+" at In2 ljust } - ) with .In1 at Here - line left dimen_/4 from Amp.In2 then down dimen_/4; G: ground(,,) - resistor(from T to (Amp.Out,T)); llabel(,R) -O: dot - { arrow up dimen_*0.5 then right dimen_/4 up dimen_/4 - "`$1'" above } - line to Amp.Out - dot(at T+(dimen_/4,0)); line up dimen_*0.6 - capacitor(right_ Amp.Out.x-Here.x-dimen_/4,C); llabel(,2C) - line to (Here,T); dot - ]') - -A: section(svg_symbol(0&`#'176;)) -B: section(svg_symbol(120&`#'176;)) with .I at A.O -C: section(svg_symbol(-120&`#'176;)) with .I at B.O - move right 22pt__ from C.O - - ground(at (A.I,A.G)+(dimen_/3,0),,) -P:potentiometer(down_ dimen_/2,,0.75,dimen_/2) with .End at Here - line from P.Start to (A.I,P.Start); dot - resistor(up_ dimen_*0.75 from P.T1) - line to A.T - - dot(at B.Amp.Out+(dimen_/3,0)); { "svg_it(V`'svg_sub(c))" at last [].n above } - resistor(down_ dimen_*0.75) - { dot; line right (C.T.x-Here.x)/2 - reversed(`diode',up_ dimen_) - line to C.T } - resistor(down_ dimen_*0.75) - dot - line from C.O right dimen_/4 then down C.O.y-Here.y then to (A.I,Here) \ - then to A.I - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/TimerSVG.m4 b/graphics/circuit_macros/examples/svg/TimerSVG.m4 deleted file mode 100644 index d1a0c2ffa1..0000000000 --- a/graphics/circuit_macros/examples/svg/TimerSVG.m4 +++ /dev/null @@ -1,51 +0,0 @@ -.PS -# TimerSVG.m4 -cct_init(svg_font(sans-serif,10.5bp__)) - -define(`ic555',`[Chip: box ht boxwid wid boxwid "555" - P7: "7" ljust at 1/6<Chip.sw,Chip.nw> - P6: "6" ljust at 1/2<Chip.sw,Chip.nw> - P2: "2" ljust at 5/6<Chip.sw,Chip.nw> - P4: "4" below at 1/3<Chip.nw,Chip.ne> - P8: "8" below at 2/3<Chip.nw,Chip.ne> - P3: "3" rjust at Chip.e - P1: "1" above at Chip.s - ]') - - define(`elen_',`linewid') -Vs: dot - down_ - variable(`resistor(,E); llabel(,svg_norm(1 M`'svg_ohm))'); - resistor(,E); llabel(,svg_norm(100 k`'svg_ohm)) - capacitor(,E); llabel(svg_norm(220 svg_micro`'F)) -Zero: dot - - dot(at Vs+(elen_*4/3,0)) - resistor(,E); llabel(,svg_norm(33 k`'svg_ohm)) - line to (Here,Zero) chop 0 chop elen_ -C2: capacitor; llabel(svg_norm(0.1 svg_micro`'F)) - dot - -IC1: ic555 with .P7 at C2.start + (elen_,0) - line from IC1.P4 to (IC1.P4,Vs); dot - line from IC1.P8 to (IC1.P8,Vs); dot - line from IC1.P1 to (IC1.P1,Zero); dot - line from IC1.P2 to (C2,IC1.P2); dot - crossover(from IC1.P7 to (Zero,IC1.P7),R,C2); dot - line from IC1.P6 left elen_/2 then down IC1.P6.y-IC1.P7.y; dot - line from IC1.P3 right elen_*2/3 -R: dot - line right_ elen_/3 -B: buzzer(,,C) with .In3 at Here - line from B.In1 to (R,B.In1) - reversed(`diode',to (Here,Vs),LE); "red" at last line.c+(elen_/2,0) - resistor(down_ elen_ from R,E); llabel(,svg_norm(470 svg_ohm)) - diode(to (Here,Zero),LE); {"green" wid 0.4 at last line.c+(elen_*2/3,0)} - line to Zero chop 0 chop -elen_ - line up_ (Vs.y-Here.y)/3 - battery(up_ (Vs.y-Here.y)/3); rlabel(,,svg_norm(9 V)) - switch(to (Here,Vs),,D) - line to (R,Vs) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/TtreeSVG.m4 b/graphics/circuit_macros/examples/svg/TtreeSVG.m4 deleted file mode 100644 index 2b779191b7..0000000000 --- a/graphics/circuit_macros/examples/svg/TtreeSVG.m4 +++ /dev/null @@ -1,70 +0,0 @@ -.PS -# Ttree.m4 -# A binary tree using m4 -gen_init -sinclude(tst.dim) -s_init(Ttree) - -# `Node(no in row, head [location], -# displacement of top of body (.n) wrt head, -# body Node 1, body Node 2, ...) ' -define(`Node',` - Head`$1': `$2' - ifelse(`$3',,,` Body`$1': [ - Loopover_(`v',`v; define(`m4ct',m4Lx)',shift(shift(shift($@)))) - ] with .n at Head`$1' + `$3' - connect(`$1',m4ct)')') - -define(`connect',`Bot: move from Head$1.sw-(0,5bp__) to Head$1.se-(0,5bp__) -for_(1,`$2',1, - `Top: move from Body$1.Head`'m4x.nw+(0,2bp__) \ - to Body$1.Head`'m4x.ne+(0,2bp__) - Mov: move from Head$1 to Body$1.Head`'m4x - if Bot.len*Top.len*Mov.len > 0 then { - line from Intersect_(Mov,Top) to Intersect_(Mov,Bot)}')') - - vsep = 0.75 -define(`txw',`wid `$1'mm__')dnl scaled by 14/12 for 14 pt type - - Node(1,"svg_it(h(h(h(x`'svg_sub(1),x`'svg_sub(2))," \ - + "h(x`'svg_sub(3),x`'svg_sub(4))),h(h(x`'svg_sub(5),x`'svg_sub(6))," \ - + "h(x`'svg_sub(7),x`'svg_sub(8)))))" txw(70) , - (0,-vsep), - Node(1,"svg_it(h(h(x`'svg_sub(1),x`'svg_sub(2)),h(x`'svg_sub(3)," \ - + "x`'svg_sub(4))))" txw(32) , - (0,-vsep), - Node(1,"svg_it(h(x`'svg_sub(1),x`'svg_sub(2)))" txw(14) , - (0,-vsep), - Node(1,"svg_it(x`'svg_sub(1):=((A,pk`'svg_sub(A)),h`'svg_sub(1)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(2):=((B,pk`'svg_sub(B)),h`'svg_sub(2)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3))), - Node(2,"svg_it(h(x`'svg_sub(3),x`'svg_sub(4)))" txw(14) \ - with .nw at Head1.ne+(Body1.wid/2+0.1,0), - (0,-vsep), - Node(1,"svg_it(x`'svg_sub(3):=" \ - + "((A,pk`'svg_prime`'svg_sub(A,,,-0.5ex)),h`'svg_sub(3)))" \ - txw(29)), - Node(2,"svg_it(x`'svg_sub(4):=((D,pk`'svg_sub(D)),h`'svg_sub(4)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3)))), - Node(2,"svg_it(h(h(x`'svg_sub(5),x`'svg_sub(6)),h(x`'svg_sub(7)," \ - + "x`'svg_sub(8))))" txw(29) with .nw at Head1.ne+(Body1.wid/2,0), - (0,-vsep), - Node(1, "svg_it(h(x`'svg_sub(5),x`'svg_sub(6)))" txw(14) , - (0,-vsep*5/4), - Node(1,"svg_it(x`'svg_sub(5):=((E,pk`'svg_sub(E)),h`'svg_sub(5)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(6):=((H,pk`'svg_sub(H)),h`'svg_sub(6)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3))), - Node(2,"svg_it(h(x`'svg_sub(7),x`'svg_sub(8)))" txw(14) \ - with .nw at Head1.ne+(Body1.wid/2+0.1,0), - (0,-vsep*5/4), - Node(1,"svg_it(x`'svg_sub(7):=" \ - + "((D,pk`'svg_prime`'svg_sub(D,,,-0.5ex)),h`'svg_sub(7)))" \ - txw(29) ), - Node(2,"svg_it(x`'svg_sub(8):=((K,pk`'svg_sub(K)),h`'svg_sub(8)))" \ - txw(29) with .n at last "".ne+(0.2,-vsep*2/3))), - Node(3,"svg_it(h(x`'svg_sub(9)))" txw(8) \ - at 0.5 between Head1 and Head2))) - -.PE diff --git a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 b/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 deleted file mode 100644 index 6409325558..0000000000 --- a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 +++ /dev/null @@ -1,361 +0,0 @@ -.PS -# TubediagsSVG.m4 - -cct_init(svg_font(sans-serif,10bp__,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 diff --git a/graphics/circuit_macros/examples/svg/UNOSVG.m4 b/graphics/circuit_macros/examples/svg/UNOSVG.m4 deleted file mode 100644 index 8c1ba33248..0000000000 --- a/graphics/circuit_macros/examples/svg/UNOSVG.m4 +++ /dev/null @@ -1,577 +0,0 @@ -.PS -# UNOSVG.m4 -log_init -include(../icsSVG.m4) -textoffset = 1.5bp__ -svg_font(sans-serif,8.5bp__,textoffset) - -divert(-1) - - `Header([A][1|2], rows, wid, ht, - boxspec, pinlen;pinsize) - arg1: A= type A; number of columns - arg2: pins per column - arg3,4: custom wid, ht - arg5: eg fill_(0.9)' -define(`Header', -`[ define(`m4tp',ifinstr(`$1',A,A))define(`m4Hq',patsubst(`$1',A))dnl - define(`m4Hn',`ifelse(m4Hq,,1,m4Hq)')dnl - define(`m4Hm',`ifelse(`$2',,2,`$2')')dnl - define(`m4Hw',`ifelse(`$3',,`m4Hn*L_unit*3',`($3)')')dnl - define(`m4Hh',`ifelse(`$4',,`m4Hm*L_unit*3',`($4)')')dnl - ifinstr(`$6',;, - `stacksplit_(`m4Jdr',`$6',;)dnl - define(`m4Jps',ifelse(m4Jdr,,`L_unit',m4Jdr))popdef(`m4Jdr')dnl - define(`m4Jpl',ifelse(m4Jdr,,`lg_plen*L_unit',m4Jdr))popdef(`m4Jdr') ', - `define(`m4Jps',L_unit)dnl - define(`m4Jpl',`ifelse(`$6',,lg_plen*L_unit,`$6')')')dnl - Block: rotbox(m4Hw,m4Hh,`$5') - ifelse(`m4tp',A,`pushdef(`L_unit',(linewid/6))') - define(`m4Hct',1)dnl - for_(1,m4Hm,1, - `HeaderPin(Block.NW+vec_(m4Jps*3/2,-(m4x-1/2)*m4Hh/m4Hm), - ifinstr(m4tp,A,1,eval(m4Hct-1)), - P`'m4Hct, w, (m4Jpl+m4Jps);m4Jps) define(`m4Hct',incr(m4Hct)) - ifelse(m4Hn, 2, `HeaderPin(Block.NE+vec_(-m4Jps*3/2,-(m4x-1/2)*m4Hh/m4Hm), - 1, P`'m4Hct, e, (m4Jpl+m4Jps);m4Hps) define(`m4Hct',incr(m4Hct))') ') - ifelse(`m4Hq',A,`popdef(`L_unit')') - `$7' ]') - `HeaderPin(location, type, Picname, n|e|s|w, - [length][;pinsize]) - arg2: 0= square' -define(`HeaderPin',` - ifinstr(`$5',;, - `stacksplit_(`m4Hdr',`$5',;)dnl - define(`m4Hps',ifelse(m4Hdr,,`L_unit',m4Hdr))popdef(`m4Hdr')dnl - define(`m4Hpl',ifelse(m4Hdr,,`lg_plen*L_unit',m4Hdr))popdef(`m4Hdr') ', - `define(`m4Hps',L_unit)dnl - define(`m4Hpl',`ifelse(`$5',,lg_plen*L_unit,`$5')')')dnl - ifelse(`$1',,,`move to `$1';') - ifelse(`$3',,,`$3':) line to ifelse( - `$4',n,`rvec_(0,m4Hpl)', `$4',e,`rvec_(m4Hpl,0)', - `$4',s,`rvec_(0,-m4Hpl)', `rvec_(-m4Hpl,0)') - ifelse(`$3',,,Pin`$3':) ifelse(ifelse(`$2',,0,`$2'),0, - `rotbox(m4Hps,m4Hps,fill_(1))', - `circle diam m4Hps fill_(1)') at last line.start ') - -define(`brdge',`eleminit_(`$1') - define(`m4h',ifelse(`$2',,`sourcerad_',`($2)/2'))dnl - { line to rvec_(rp_len/2-m4h/2,0) - move to rvec_(m4h/2,0) - for m4ng=75 to 255 by 180 do {{ - m4fshade(0, arc cw from rvec_(Rect_(m4h/2,m4ng)) \ - to rvec_(Rect_(m4h/2,-m4ng)) \ - with .c at Here ) }} - line from rvec_(m4h/2,0) to rvec_(rp_len/2,0) } - { [box invis ht_ m4h wid_ m4h] at rvec_(rp_len/2,0) } - line to rvec_(rp_len,0) invis ') - -define(`ATMEGA16U2',`[ - Chip: box wid 10*lg_pinsep ht 25*lg_pinsep - Loopover_(`x', - `Arightpin(patsubst(x,;,`,'))', - 6;PD0, 7;PD1, 8;PD2, 9;PD3, 10;PD4, 11;PD5, 12;PD6, 13;PD7, - 131;nul, - 5;PC2, 26;PC4, 25;PC5, 23;PC6, 22;PC7, - 132;nul, - 133;nul, - 14;PB0, 15;PB1, 16;PB2, 17;PB3, 18;PB4, 19;PB5, 20;PB6, 21;PB7) - Loopover_(`x', - `Aleftpin(patsubst(x,;,`,'))', - 33;PAD, - 100;nul, - 28;UGND, 29;D`'svg_it(+), 30;D`'svg_it(-), 31;UVCC, 27;UCAP, - 101;nul, 102;nul, - 3;GND, 4;VCC, 103;nul, - 104;nul, - 32;AVCC, - 105;nul, 106;nul, - 1;XTAL1, - 107;nul, - 2;XTAL2(PC0), - 108;nul, 109;nul) - lg_pin(Pin109+(0,lg_pinsep),RESET,Pin24,wN,24,pinlen) - ]') -define(`Aleftpin',`move to Chip.sw+(0,m4Lx*lg_pinsep) - Pin`$1': ifelse(`$2',nul,Here,dnl - `line left pinlen "`$1'" above - "`$2'" ljust at last line.start')') -define(`Arightpin',`move to Chip.se+(0,m4Lx*lg_pinsep) - Pin`$1': ifelse(`$2',nul,Here,dnl - `line right pinlen "`$1'" above - "`$2'" rjust at last line.start')') - -define(`ATMEGA328P',`[ - Chip: box wid 10*lg_pinsep ht 23*lg_pinsep - Loopover_(`x', - `Arightpin(patsubst(x,;,`,'))', - 2;PD0, 3;PD1, 4;PD2, 5;PD3, 6;PD4, 11;PD5, 12;PD6, 13;PD7, - 100;nul, - 23;PC0, 24;PC1, 25;PC2, 26;PC3, 27;PC4, 28;PC5, - 101;nul, - 14;PB0, 15;PB1, 16;PB2, 17;PB3, 18;PB4, 19;PB5) - Loopover_(`x', - `Aleftpin(patsubst(x,;,`,'))', - 201;nul, 202;nul, 203;nul, 204;nul, 205;nul, 206;nul, 207;nul, 208;nul, - 209;nul, - 8;GND, 7;VCC, - 301;nul, - 22;AGND, 20;AVCC, 21;AREF, - 302;nul, - 9;XTAL1, - 303;nul, - 10;XTAL2, - 304;nul, 305;nul) - lg_pin(Pin305+(0,lg_pinsep),RESET,Pin1,wN,1,pinlen) - ]') - -define(`rswitch',`dswitch(`$1',,WBoDCP) - DS: last line.start; DC: last line.c; DE: last line.end - DL: DC-vec_(dimen_/6,0); DR: DC+vec_(dimen_/6,0) - {{"1" at DL above rjust}; {"3" at DR above ljust} - { line from DL to DL-vec_(0,dimen_/6) chop dotrad_ chop 0 - {"2" below rjust} - continue to DS-vec_(0,dimen_/6) then to DS; dot } - { line from DR to DR+vec_(0,-dimen_/6) chop dotrad_ chop 0 - {"4" below ljust} - continue to DE+vec_(0,-dimen_/6) then to DE; dot } - line from DC+vec_(dimen_/10,-dimen_/6) to DC+vec_(-dimen_/10,-dimen_/6) - move to last line.c; line to rvec_(0,-dimen_/3) \ - then to rvec_(-dimen_/3,-dimen_/3) - {"5" below}} ') - -divert(0)dnl - - maxpswid = 20 - maxpsht = 20 - - define(`pinlen',`30bp__') - define(`lg_pinsep',(1.2*lg_pinsep)) - del = lg_pinsep - define(`pindiam',0.1) - - define(`egnd',`ground(,,E); "GND" at last line.c below') - - U3: ATMEGA16U2 - `"ATMEGA16U2-MU(R)"' at U3.Chip.s below - `"U3"' at U3.Chip.nw ljust above - ZU4: ATMEGA328P with .Chip.nw at U3.Chip.sw+(-2.5,-10*del) - `"ATMEGA328P-PU"' at ZU4.Chip.s below - `"ZU4"' at ZU4.Chip.nw ljust above - - dot(at U3.Pin2.end) - R1: resistor(down_ 2*lg_pinsep,,E) - rlabel(,"R1" rjust "1M" rjust) - dot - dot(at R1.start-(2*del,0)) - xtal(down_ 2*lg_pinsep) - rlabel(16,,MHz); dot - XT2: dot(at last line.start-(2*del,0)); { "XT2" at last [].n above } - - Br1: brdge(left_ from U3.Pin33.end to (XT2,U3.Pin33)) - rlabel(1,,2); llabel(,GROUND) - BRE: dot - line to (Here,U3.Pin28) then to U3.Pin28.end - {"UGND" at (Br1,Here) above} - - XT1: dot(at XT2-(del,R1.len)); { "XT1" at last [].n above } - line from XT1 to U3.Pin1.end - line from U3.Pin2.end to (XT1,XT2) - C11: capacitor(left_ 3*del); rlabel(,C11); llabel(,22`'pF) - C9: capacitor(from XT1 to (Here,XT1)); {"C9" "22`'pF" at last [].s+(0,-11bp__)} - { line to C11.end } - dot - G1: egnd - line from XT1 down_ 3*del; continue to (G1,Here); dot(,,1) - {"XT3" at last [].n above} - dot(at Here+(0,-3/2*del),,1); {"XT4" at last [].n above} - { line to (XT2,Here) then to XT2 chop dotrad_ chop 0 } - USBVCC: dot(at Here+(0,-7/2*del),,1) - {"USBVCC" at last [].n-(3/2*del,0) above ljust} - { line to (Here,U3.Pin31) chop dotrad_ chop 0; continue to U3.Pin31.end } - dot(at Here+(2*del,0),,1); {"VUCAP" at last [].e+(0,-5bp__) ljust} - line to (Here,U3.Pin27) chop dotrad_ chop 0; dot - line from U3.Pin27.end to (G1.x-4.5*del,U3.Pin27.y) - C8: capacitor(down_ to (Here,Br1)); llabel(C8,,1`'svg_micro) - Bus1: dot - - dot(at U3.Pin33.end) - move to U3.Pin3.end; line to (Here,U3.Chip.s) - G2: ground(,T,E); {"GND" at last line.c below } - - dot(at U3.Pin32.end) - {line to U3.Pin4.end; dot} - line left del; ground(,,E,U); {"svg_it(+)5 V" at last line.c above} - - line from U3.Pin4.end left_ 2*del - capacitor(down_ 3*del); { llabel(C7,,100n) } - G3: ground(,T,E); {"GND" at last line.c below } - - line from U3.Pin30.end to (G1.x-2*del,U3.Pin30.y); TD: Here - continue to (Here,U3.Pin32) - { "RD`'svg_it(-)" above rjust }; continue left_ 1.5*del - RN3A: resistor(left_ 3/2*dimen_,,E); rlabel(,22R RN3A) - Dm: line left_ 7*del - -USB: [ K: box invis wid dimen_/2 ht 5*lg_pinsep - "USB" rjust at K.e - line thick 1.5 from K.nw to K.ne then to K.se then to K.sw - Loopover_(`x', - `Pin`'m4Lx: K.ne-(0,m4Lx/5*K.ht) - "x" at Pin`'m4Lx ljust above', - 1 XUSB, 2 D`'svg_it(-), 3 D`'svg_it(+), 4 UGND) - P_1: K.sw; {"P$`1'" at P_1 below rjust} - P_2: K.s; {"P$`2'" at P_2 below ljust} - ] with .Pin2 at Here; "X2" at USB.ne above rjust - - move to U3.Pin29.end - line to (TD.x-del,Here.y); continue to (Here,Dm-(0,lg_pinsep)) - { "RD`'svg_it(+)" above rjust} - continue to (RN3A.start,Here) - RN3D: resistor(left_ 3/2*dimen_,,E); llabel(,22R RN3D) - line to USB.Pin3 - - dot(at RN3A.end); line to (Here,RN3D) - Z2: variable(`resistor(down_ to (Here,U3.Pin27),,E); rlabel(Z2)',NN) - dot(at RN3D.end-(2*del,0)) - Z1: variable(`resistor(to (Here,U3.Pin27),,E); rlabel(Z1)',NN) - dot; line to (Z2,Here) - move up Z1.len/4 from last line.c; "CG0603MLC-05E" "X 2" - - line down_ del from USB.P_1; continue to (USB.P_2,Here); dot - line from USB.P_2 to (USB.P_2,Z1.end) then to Z1.end - dot(at (USB.P_2,Here)+(3/2*del,0)); line to (Here,USBVCC) - dot(,,1); {"USHIELD" at last [].n+(4bp__,0) above} - - L1: reversed(`inductor',down_ from Z1.end to (Z1,C8.end),W,,) - rlabel(,L1); llabel("svg_thinsp`'BLM21" ljust); dot - { dot(at (Z2,Here)); line to (Here,U3.Pin28); dot(,,1) - "UGND" at last [].n above } - line from USB.Pin1 to (Z2,USB.Pin1) then up 2*del - XUSB: dot(,,1); {"XUSB" at last [].n above} - line from (Z1,USB.Pin3) to (Z1,XUSB); - DP: dot(,,1); {"D`'svg_it(+)" at last [].n above} - dot(at (DP,USB.Pin2)-(2*del,0)); line to (Here,XUSB) - DM: dot(,,1); "D`'svg_it(-)" at last [].n above - line from USB.Pin4 to (DM,USB.Pin4) then to (DM,BRE) then to BRE - - line from U3.Pin18.end right_ 3.5*del - JP2: Header(A2,2,4*del,2*lg_pinsep,,0.2;pindiam) with .P3.end at Here - "JP2" at JP2.Block.nw above ljust - "2X2M - NM" at JP2.s below - "1" at JP2.P3.end above ljust; "3" at JP2.P1.end above ljust - "2" at JP2.P4.end above rjust; "4" at JP2.P2.end above rjust - line from JP2.P1.end to (JP2.P1.end,U3.Pin19) then to U3.Pin19.end - dot(at JP2.P1.end); line up 3.5*del - TPPB5: dot(,,1); {"PB5" at last [].e ljust} - TPPB4: dot(at TPPB5-(del*3/2,0),,1); {"PB4" at last [].w rjust} - line to (Here,JP2.P3); dot - line from JP2.P2.end to (JP2.P2.end,TPPB4) - TPPB7: dot(,,1); {"PB7" at last [].w rjust} - line from JP2.P4.end right del*3/2; continue to (Here,TPPB4) - TPPB6: dot(,,1); {"PB6" at last [].n above} - line from U3.Pin20.end right del then up del; continue to (TPPB6,Here); dot - line from U3.Pin21.end up del; continue to (TPPB7,Here); dot - - ICSP1: Header(A2,3,4*del,2.5*lg_pinsep,,0.2;pindiam) \ - with .P1.end at (JP2.P1.end,U3.Pin14) - "ICSP1" at last [].Block.nw above ljust - "3X2 M" at last [].Block.sw below ljust - for_(1,5,2,`"m4x" at ICSP1.P`'m4x.end above ljust') - for_(2,6,2,`"m4x" at ICSP1.P`'m4x.end above rjust') - line from ICSP1.P1.end to (ICSP1.P1.end,U3.Pin17) then to U3.Pin17.end - line from ICSP1.P3.end left del; continue to (Here,U3.Pin15) \ - then to U3.Pin15.end - - dot(at U3.Pin24.end); - RN1C: resistor(up_ 5*lg_pinsep,,E); rlabel(,10K,RN1C); llabel(5,,3) dot -# D3: diode(up_ 5*lg_pinsep); rlabel(,,D3); dot - line up_ 2*del; ground(,T,E,U); {"+5 V" at last line.w rjust} - dot(at U3.Pin24.end-(del,0)); -# RN1C: resistor(up_ D3.len,,E); llabel(,10K,RN1C) - D3: diode(up_ RN1C.len); llabel(,,D3) - line to (TPPB6.x+del,Here.y) - continue to (Here,ICSP1.P2.end) then to ICSP1.P2.end - line from ICSP1.P5.end down 2*del; continue to (TPPB6.x+2*del,Here.y) - TRESET2: Here - continue to (Here.x,D3.end.y+del) then to (RN1C.end.x-2.5*del,D3.end.y+del) - continue to (Here,U3.Pin24) then to U3.Pin24.end - G4: ground(at ICSP1.P6.end,,E); {"GND" at last line.c below } - line from ICSP1.P4.end right del then up U3.Pin16.y-ICSP1.P4.y \ - then to U3.Pin16.end - dot(at ICSP1.P1.end); line left_ 2.5*del then down_ 5*del - MISO2: dot(,,1); {"MISO2" at last [].s below } - dot(at ICSP1.P3.end-(del,0)); line to (Here,MISO2) - SCK2: dot(,,1); {"SCK2" at last [].s below ljust } - dot(at TRESET2); line to (Here,SCK2) - RESET2: dot(,,1); {"RESET2" wid 36bp__ at last [].s below } - dot(at ICSP1.P4.end+(del,0)); line to (Here,RESET2) - MOSI2: dot(,,1); {"MOSI2" at last [].s-(del,0) below } - - line right_ del from U3.Pin11.end then up_ del*3/2 - TXLED: reversed(`diode',right_ elen_,LER) - rlabel(,YELLOW); llabel(TX); dot - {line up_ del; TPTXL: dot(,,1); "TXL" at last [].n above} - RN2C: resistor(right_ elen_,,E); llabel(,1 K RN2C); rlabel(6,,3); dot - line from U3.Pin10.end to (TXLED.start,U3.Pin10) - RXLED: reversed(`diode',to (TXLED.end,Here),LER) - rlabel(,YELLOW); llabel(RX); dot - {line up_ del; dot(,,1); "RXL" at last [].n above} - RN2B: resistor(right_ elen_,,E); llabel(,1 K RN2B); rlabel(7,,2) - line to (Here,TPTXL); ground(,T,E,U); "+5 V" at last line.c above - -# ZU4 connections - line left_ del*3/2 from ZU4.Pin7.end; dot - {line up_ del; G4: ground(,T,E,U); "+5 V" at last line.c above } - C6: capacitor(down dimen_); llabel(100n,,C6); dot - { dot(at ZU4.Pin8.end) }; dot(at (ZU4.Pin8.end,Here)) - { G4: ground(at Here+(0,-del),,E); {"GND" at last line.c below } - line to ZU4.Pin22.end } - line left_ Here.x-C6.x + dimen_*5/4 - C10: capacitor(up_ C6.len); llabel(100n,,C10); dot - { line to (Here,ZU4.Pin20) then to ZU4.Pin20.end } -# L2: ebox(right_ to C6.start,,,0.2); rlabel(,L2); llabel(,100`'svg_micro`'H) - L2: inductor(right_ to C6.start,W); rlabel(,L2); llabel(,100`'svg_micro`'H) - - line left 2*del from ZU4.Pin9.end; PE: dot - R2: resistor(up_ to (Here,ZU4.Pin10),,E); llabel(,R2); rlabel(,1 M); dot - dot(at Here-(del*4.0,0)); { "XTAL2" above ljust } - XTAL: xtal(down_ R2.len); llabel(16 MHz); dot; { "XTAL1" below ljust } - pushdef(`dimen_',dimen_/2) - capacitor(left_ del from 0.25 between XTAL.start and XTAL.end) - capacitor(left_ del from 0.75 between XTAL.start and XTAL.end) - popdef(`dimen_') - line up XTAL.len/2 - line left del from last line.c then down del - G5: ground(,T,E); "GND" at last line.c below - line down_ del from XTAL.end; dot(,,1); "XT1" at last [].s below - line up del from XTAL.start; dot(,,1); "XT2" at last [].n above - line from XTAL.start to ZU4.Pin10.end - line from XTAL.end to ZU4.Pin9.end - line left 2*del from ZU4.Pin1.end; dot -# dot(at ZU4.Pin1.end) - D2: diode(up_ dimen_); rlabel(,D2) - dot(at D2.start-(2.5*del,0)) - RN1D: resistor(up_ D2.len,,E); rlabel(10 K,,RN1D); dot - { line to D2.end } - line up_ del; ground(,T,E,U); "+5 V" at last line.c above - - line from ZU4.Pin1.end to (RN1D-(1.5*del,0),ZU4.Pin1) then up 7*del - continue to (ZU4.Chip.w,Here)+(del,0); BRB: dot - { line down_ 2*del; Br2: brdge(right_ dimen_) - llabel(1,,2); rlabel(,RESET_EN); line up_ 2*del; dot } - line right_ dimen_+del - C5: capacitor(right_ dimen_); llabel(,C5); rlabel(100n); dot - { RN2D: resistor(down_ dimen_,,E); rlabel(,1 K); llabel(,RN2D) - G6: ground(,T,E); "GND" at last line below } - { line up_ del; DTR: dot(,,1); "DTR" at last [].e ljust } - line from U3.Pin13.end right del/2; continue to (Here,U3.Chip.s) \ - then left+2*del; continue to (Here,BRB) then to C5.end - TP2: Here; continue to C5.end - - line up 3*del from BRB - TP1: dot #; line left BRB.x-RN1D.x - RESET: rswitch( right_ dimen_ from (USB.e,Here)+(del/2,0)) - { "RESET" at RESET+(-del*1.7,1.0*del) above } - line left del from RESET.start then down del - G7: ground(,T,E); "GND" at last line.c below - - ICSP: Header(A2,3,4*del,2.5*lg_pinsep,,0.2;pindiam) \ - with .Block.sw at ZU4.Pin19.end+(2*del,del*3) - "ICSP" at ICSP.Block.nw above ljust - "3X2 M" at ICSP.Block.sw below ljust - for_(1,5,2,`"m4x" at ICSP.P`'m4x.end above ljust') - for_(2,6,2,`"m4x" at ICSP.P`'m4x.end above rjust') - dot(at ZU4.Pin19.end); line to (Here,ICSP.P3) then to ICSP.P3.end - line from ZU4.Pin18.end right del; dot - line to (Here,ICSP.P1) then to ICSP.P1.end - move to ICSP.P5.end; line to (ZU4.Pin19.end,Here)-(del,0); - continue to (Here,TP1); dot - line from ICSP.P2.end up_ del; ground(,T,E,U); "+5 V" at last line.c above - line from ICSP.P6.end down_ del; G9: ground(,T,E); "GND" at last line.c below - move to ICSP.P4.end; line right_ del then down Here.y - ZU4.Pin17.y; dot -# move to ICSP.P4.end; line right_ del then down Here.y - G9.y + del -# continue to (ICSP.P1.end.x+del,Here.y) then down_ Here.y-ZU4.Pin17.y; dot - - line right_ from RESET.end to (U3.Chip.e+(12*del,0),TP1) - POWER: Header(A1,8,1.5*del,7*lg_pinsep,,0.2;pindiam) with .P3.end at Here - "POWER" wid 36bp__ at POWER.Block.nw above ljust - "8X1F-H8.5" at POWER.Block.sw below ljust - for_(1,8,1,`"m4x" at POWER.P`'m4x.end above ljust') - line from POWER.P2.end left del/2 then down POWER.P2.y-POWER.P5.y ; dot - line from POWER.P4.end left 2.5*del; "+3V3" above ljust - dot(at POWER.P3.end-(del*1.5,0)); line up 2*del - dot(,,1); "RESET" at last [].n above - line from POWER.P5.end left 3.5*del then up 4*del; ground(,T,E,U) - "+5 V" at last line.c above - line left del*2 from POWER.P8.end; "VIN" above ljust - line left del/2 from POWER.P7.end; dot - line from POWER.P6.end to (Here,POWER.P6.end) then to Here+(0,-2.5*del) - G10: ground(,T,E); "GND" at last line.c below - - right_ - - IOH: Header(A1,10,1.5*del,10*lg_pinsep,,0.2;pindiam) \ - with .P10.end at ZU4.Pin14.end + (del*15,0) - "IOH" at IOH.Block.nw above ljust - "10X1F-H8.5" at IOH.Block.se below ljust - for_(0,9,1,` - { "incr(m4x)" above ljust at IOH.P`'eval(10-m4x).end } - move to IOH.P`'eval(10-m4x).start-(pindiam/2+dotrad_/2,0) - ifelse(m4x,6,,`dot') - move to IOH.P`'eval(10-m4x).end - ifelse(eval(m4x<6),1,`line from ZU4.Pin`'eval(14+m4x).end to Here ') - ifelse(m4x,6,,` line right del*4; dot(,pindiam/2,1) ') - ifelse(eval(m4x<6),1,`"eval(8+m4x)" at last [].e ljust ')') - "SCL" at last [].e ljust - "SDA" at 3rd last [].e ljust - "AREF" at 5th last [].e ljust - - AD: Header(A1,6,1.5*del,6*lg_pinsep,,0.2;pindiam) \ - with .P6.end at (IOH.P10.end,ZU4.Pin23) #.end + (del*6,0) -# with .P6.end at ZU4.Pin23.end + (del*6,0) - "AD" at AD.Block.nw above ljust - "6X1F-H8.5" at AD.Block.se below ljust - for_(0,5,1,` - dot(at AD.P`'eval(6-m4x).start-(pindiam/2+dotrad_/2,0)) - line from ZU4.Pin`'eval(23+m4x).end \ - to AD.P`'eval(6-m4x).end; {"incr(m4x)" above ljust} - line right del*4; dot(,pindiam/2,1) - "A`'m4x" at last [].e ljust ') - - IOL: Header(A1,8,1.5*del,8*lg_pinsep,,0.2;pindiam) \ - with .P8.end at (AD.P1.end,ZU4.Pin2) - "IOL" at IOL.Block.nw above ljust - "8X1F-H8.5" at IOL.Block.sw ljust below - for_(0,7,1,` - dot(at IOL.P`'eval(8-m4x).start-(pindiam/2+dotrad_/2,0)) - line from ZU4.Pin`'eval(ifelse(eval(m4x<5),1,2,6)+m4x).end \ - to IOL.P`'eval(8-m4x).end; {"incr(m4x)" above ljust} - line right del*4; dot(,pindiam/2,1) - "m4x" at last [].e ljust ') - - line from ZU4.Pin21.end up RESET.y-ZU4.Pin21.y-del \ - then right ICSP.P4.end.x-ZU4.Pin21.end.x + 2*del - continue to (Here,IOH.P3)+(0,del*3/2); dot - { C4: capacitor(down_ 3.0*del); llabel(C4,,100n) - { ground(,T,E); "GND" at last line.e ljust} - line from IOH.P4.end to (Here,IOH.P4); dot } - line right del*3/2; continue to (Here,IOH.P3) then to IOH.P3.end - - line left del/2 from IOH.P2.end; continue to (Here,AD.P2); dot - line left del*3/2 from IOH.P1.end; continue to (Here,AD.P1); dot - -# line right_ del*2 from U3.Pin9.end then down_ 5.5*lg_pinsep; dot - line right_ del*2 from U3.Pin9.end then down_ 3.5*lg_pinsep; dot - { line right_ 2*del; dot(,,1); "RX" at last [].e ljust } - line to (Here,RESET)-(0,del) - RN4B: resistor(down_ dimen_,,E); llabel(7,"RN4B" ljust "1 K" ljust,2) - line down_ del then left_ Here.x - IOH.P9.end.x + del*2.5 - continue to (Here,ZU4.Pin2); dot - - line right_ del from U3.Pin8.end; dot - { line right_ 3*del; dot(,,1); "TX" at last [].e ljust } - line to (Here,RN4B.start) - RN4A: resistor(down_ dimen_,,E); rlabel(8,"RN4A" rjust "1 K" rjust,1) - line to (IOH.P9.end,Here)-(del*3.5,0); continue to (Here,ZU4.Pin3); dot - -Pwr: [ - Vin: line right 2*del "VIN" above - RN1A: resistor(down_ dimen_*5/4,,E); rlabel(8, "RN1A" rjust "10 K" rjust ,1) - CMP: dot - RN1B: resistor(down_ dimen_*5/4,,E); rlabel(2, "RN1B" rjust "10 K" rjust ,7) - B12: ground(,T,E); "GND" at last line below - - line right_ 2*del from CMP; dot - { line up_ 2*del; dot(,,1); "CMP" at last [].n above } - line right_ del - POA: opamp(,"+" ljust,"-" ljust) with .In1 at Here - "U5A" at last [].n; "1" at POA.Out above rjust - "3" at POA.In1 rjust above; "2" at POA.In2 rjust above - line left_ del from POA.In2 then down_ del; "+3V3" below - dot(at POA.Out); {line up_ 2*del; dot(,,1); "GATE" at last [].n above } - T1: mosfet(down_ dimen_*1.5,R,dMdPyEDSQdB,) with .G at Here - "T1" at T1 + (-dimen_/4,del*5/4) - "FDN340P" at T1 + (0,-del*5/4) rjust -# "USBVCC" at T1.D rjust - dot(at T1.S); { line up_ 2*del; ground(,T,E,U); "+5 V" at last line above } - ] with .RN1B at (USB.e.x+del,RN1C.y-2*del) - dot(at XUSB+(0,-del/2)) - F1: fuse(right_ to (Pwr.T1.D,Here)); { "500 mA" ljust } - { "MF-MSMF050-2" at last [].sw below ljust } - line to Pwr.T1.D - - line from Pwr.T1.S right_ 2.5*lg_pinsep - { U2:box ht 3*lg_pinsep wid 5*lg_pinsep with .nw at Here+(0,lg_pinsep/2) } - {"1" above rjust}; {"IN" ljust} - "LP2985-33DBVR" at U2.s below - "U2" above ljust at U2.nw - "3" above rjust at U2.w; line left del from U2.w then up_ lg_pinsep; dot - "ON/svg_ol(OFF)" at U2.w ljust -# line right_ textht*0.66*3 from U2.w+(textht*0.66*5,textht) - U2P2: U2.w+(0,-lg_pinsep); "2" at U2P2 above rjust; "GND" at U2P2 ljust - line from U2P2 left del then down_ del - G15: ground(,T,E); "GND" at last line.c below - U2P5: (U2.e.x,U2.e.y+lg_pinsep) - "OUT" at U2P5 rjust; "5" at U2P5 above ljust - line from U2P5 right 2*del "+3V3" below; dot - { line up_ del; dot(,,1); "3V3" at last [].n above } - C3: capacitor(down_ to(Here,G15)); rlabel(,"C3" rjust "1`'svg_micro" rjust) - ground(,T,E); "GND" at last line.c below - "NC/FB" at (U2.e.x,U2P2.y) rjust - - "SCK" above ljust at Pwr.Vin + (0,4*del) - line right_ 3*del - U5B: opamp(,"+" ljust, "-" ljust) with .In1 at Here - "5" at U5B.In1 above rjust; "6" at U5B.In2 above rjust - "U5B" at last [].n; "7" at U5B.Out above rjust - line from U5B.In2 left del then down del then right U5B.Out.x-U5B.In1.x+del - TD2: dot - dot(at U5B.Out); dot(at Here+(0,2*del),,1); "LCMD" at last [].e ljust - line down_ from last [].s to TD2 - RN2A: resistor(right_ dimen_*5/4,,E); llabel(8,"1K",1); rlabel(,RN2A) - dot; {line up_ 2*del; dot(,,1); "LL" at last [].n above } - diode(right_ dimen_*5/4,LE); rlabel(,YELLOW) - line down_ dimen_/4; egnd - - X1:box ht 3*lg_pinsep wid 5*lg_pinsep with .w at (U2.x,U5B.y+del) - "X1 DC21MMX" at X1.nw above ljust; "PWR SUPPLY" at X1.nw below ljust - X1P1: 1/3 between X1.sw and X1.se; "1" at X1P1 rjust below - X1P2: 2/3 between X1.sw and X1.se; "2" at X1P2 rjust below - line down_ del from X1P1; dot; { egnd } - line right X1.e.x+del - Here.x then up_ X1.e.y-Here.y then to X1.e - "3" above ljust at X1.e - line from X1P2 down del/2 then right X1.e.x+del*2 - X1P2.x \ - then up X1.n.y - X1P2.y + del/2; dot - { line up_ 2*del; PWRIN: dot(,,1); "PWRIN" at last [].w rjust } - D1: diode(right_ dimen_); llabel(,D1); rlabel(,M7); dot - { PC1: capacitor(down_ dimen_,C); llabel(,"PC1" ljust "47`'svg_micro" ljust) - G16: egnd } - { line to (Here,PWRIN); dot(,,1); "VIN" at last [].e ljust } - line right 3*del; { "3" above rjust } - U1P1: Here - U1: box ht 3*lg_pinsep wid 4*lg_pinsep with .nw at Here+(0,lg_pinsep/2) - "IN" at U1P1 ljust; "OUT" at (U1.e,U1P1) rjust - "1" below rjust at U1.s - "U1" at U1.nw + (0,textht/dptextratio) above ljust \ - "NCP1117ST50T3G" ljust - line from U1.s to (U1.s,G16); egnd - U1P4: (U1.e,U1P1); U1P2: U1P4+(0,-del) - { "4" at U1P4 above ljust }; { "2" at U1P2 above ljust }; - line right_ 2*del from U1P4; dot; - line from U1P2 to (Here,U1P2); dot; { line to (Here,U1P4) } - { PC2: capacitor(down_ to (Here,G16),C) - llabel(,"PC2" ljust "47`'svg_micro" ljust); egnd } - line right_ del*3/2 from (Here,U1P4); dot - { line to (Here,PWRIN); ground(,T,E,U); "+5V" at last line.c above } - line right_ del*3/2; dot; { line to (Here,PC2.start) - C2: capacitor(down_ to (Here,G16),C) - llabel(,"C2" ljust "100`'svg_micro" ljust); egnd } - { line to (Here,PWRIN); dot(,,1); "5V" at last [].n above } - line right_ del*3/2 then to (Here.x+del*3/2,PWRIN.y); dot(,,1) - "5V1" at last [].n above - - - - command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/VariableSVG.m4 b/graphics/circuit_macros/examples/svg/VariableSVG.m4 deleted file mode 100644 index ccab653936..0000000000 --- a/graphics/circuit_macros/examples/svg/VariableSVG.m4 +++ /dev/null @@ -1,29 +0,0 @@ -.PS -# `VariableSVG.m4' -cct_init - -define(`elen_',dimen_); down_ -[ { variable(`resistor',A) }; {"svg_tt(A)" at last line.end below}; move right - { variable(`resistor',N) }; {"svg_tt(N)" at last line.end below}; move right - { variable(`resistor',uN) }; {"svg_tt(uN)" at last line.end below}; move right - { variable(`resistor',NN) }; {"svg_tt(uN)" at last line.end below}; move right - { variable(`resistor',uNN) }; {"svg_tt(uNN)" at last line.end below} - ] -[ - skp = 0.4 - hskip = linewid*0.5 - cskip = hskip -Orig: Here - { move right cskip+elen_+hskip - line invis right_ elen_ "svg_tt(C)"; move right_ hskip - { move up_ 0.25 } - line invis right_ elen_ "svg_tt(S)" } - Loopover_(`char', - `move down skp ifelse(char,A,*0.5) - { line invis right_ cskip "svg_tt(char)" - variable(`capacitor(,C)',char); move right_ hskip - variable(`capacitor(,C)',char`'C); move right_ hskip - variable(`capacitor(,C)',char`'S) }', - A,P,L,N) - ] with .w at last [].e+(0.4,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/WindingsSVG.m4 b/graphics/circuit_macros/examples/svg/WindingsSVG.m4 deleted file mode 100644 index e4faa89b5c..0000000000 --- a/graphics/circuit_macros/examples/svg/WindingsSVG.m4 +++ /dev/null @@ -1,102 +0,0 @@ -.PS -# Windings.m4 -cct_init(svg_font(sans-serif,10bp__)) -textoffset = 3bp__ - -define(`vlight',`rgbstring(0.9,0.9,0.9)') -define(`lightgray',`rgbstring(0.7,0.7,0.7)') - -[ winding ] - `"winding"' at last [].s below - -[ winding(R) ] with .n at last "".s+(0,-0.1) - `"winding(R)"' wid 1 at last [].s below - -[ sk = 0.75 - d = 1.5*sk - p = 0.4*sk - w = 1*sk - -W: winding(L,d,p,4,w,vlight) - -thinlines_ - dimension_(from W.nw+(p/4,0) right p,0.1,"pitch" above,0.3) - dimension_(from W.sw to W.nw,0.2,diam,0.3) - dimension_(from W.e+(-p/2,-w/2) up w,-0.3,,0.2) - "core wid" wid 0.75 at W.e ljust - arrow <- up d-w+0.1 left d/10 from W.ne+(-p/2,-(d-w)) - "core color" at Here+(-0.2,0) ljust above -thicklines_ -] with .sw at last [].se+(0.25,0) - "T1" at last [].W.T1 below - "T2" at last [].W.T2 below - -[ -#`winding(L|R, diam, pitch, nturns, core wid, core color )' -boxwid = 0.3 -boxht = 0.4 - down_ -B1: box - winding(,boxwid*1.3,boxht/5,3,boxwid) at B1 - "Left pins" "cw" at B1.s+(0,-0.15) - for_(1,2,1,`"svg_small(T`'m4x)" at last [].T`'m4x rjust') -B2: box at B1.e + (0.5,0) - winding(R,boxwid*1.3,boxht/5,3,boxwid) at B2 - "Left pins" "ccw" at B2.s+(0,-0.15) - for_(1,2,1,`"svg_small(T`'m4x)" at last [].T`'m4x rjust') - up_ -B3: box at B1.s + (0,-0.55) - winding(,boxwid*1.3,boxht/5,3,boxwid) at B3 - "Right pins" "cw" at B3.s+(0,-0.15) - for_(1,2,1,`"svg_small(T`'m4x)" at last [].T`'m4x ljust') -B4: box at (B2,B3) - winding(R,boxwid*1.3,boxht/5,3,boxwid) at B4 - "Right pins" "ccw" at B4.s+(0.07,-0.15) - for_(1,2,1,`"svg_small(T`'m4x)" at last [].T`'m4x ljust') -] with .sw at last [].se+(0,-0.15) - -[ - Q: box invis ht 1 wid 5/4 - g = Q.wid/12 - ironwid = Q.wid/4.5 - - line thick ironwid/(1bp__)+linethick from Q.n+(g/2-linethick/2 bp__,0) \ - to Q.ne then to Q.se then to Q.sw then to Q.nw \ - then to Q.n+(-g/2+linethick/2 bp__,0) - line thick ironwid/(1bp__)-linethick outlined lightgray \ - from Q.n+(g/2+linethick/2 bp__,0) \ - to Q.ne then to Q.se then to Q.sw then to Q.nw \ - then to Q.n+(-g/2-linethick/2 bp__,0) - -thinlines_ - dimension_(from Q.n+(-g/2,-ironwid/2) right g,-ironwid/4, - "svg_it(g)" below,1,2pt__) -thicklines_ - - down_ - P: winding(R,ironwid*5/4,ironwid/2,4,ironwid,lightgray) at Q.w - line left ironwid*2/3 from P.T1 - arrow right to P.T1 "svg_it(i`'svg_sub(1))" above - line left ironwid*2/3 from P.T2 - gap(up_ to 2nd last line.end) - llabel(-,svg_it(v`'svg_sub(1)),+) - "svg_it(N`'svg_sub(1))" at P.e ljust - - up_ - S: winding(L,ironwid*5/4,ironwid/2,4,ironwid,lightgray) at Q.e - line right ironwid*2/3 from S.T2 - arrow left to S.T2 "svg_it(i`'svg_sub(2))" above - line right ironwid*2/3 from S.T1 - gap(up_ to 2nd last line.end) - rlabel(-,"svg_it(v`'svg_sub(2))" wid 0.2,+) - "svg_it(N`'svg_sub(2))" at S.w rjust - - box dashed rad ironwid/4 wid Q.wid ht Q.ht at Q - arrow right arrowht from 0.5 between Q.n and Q.ne - - move up ironwid/2 from Q.n - move down ironwid/2 from Q.s -] with .sw at last [].se+(0.25,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/XORSVG.m4 b/graphics/circuit_macros/examples/svg/XORSVG.m4 deleted file mode 100644 index c0f5613dbd..0000000000 --- a/graphics/circuit_macros/examples/svg/XORSVG.m4 +++ /dev/null @@ -1,67 +0,0 @@ -.PS -# `XORSVG.m4' -# Realizations of the XOR function -log_init -scale = 2.54 - -define(`gatelineth',1.6) # gate line thickness -define(`lineth',0.8) # connection thickness - -define(`labels',` - "svg_it(A)" at last [].InA above wid 0.25 - "svg_it(B)" at last [].InB above wid 0.25 - "svg_it(A) O`'svg_sup(+,100,0,-1.4ex) svg_it(B)" at last [].Out ljust wid 1.2 -#"svg_it(A) svg_font(Latin,,,"O")`'svg_sup(+,100,0,-1.4ex) svg_it(B)" at last [].Out ljust -') - -# single gate - XOR: Autologix(Xor(A,B)) - labels - -# canonical form - Autologix(Or(And(A,Not(B)),And(Not(A),B))) \ - with .nw at last [].sw+(0,-1) - labels - -# mixed gates - Autologix(And(Nand(A,B),Or(A,B))) \ - with .nw at last [].nw+(8,0) - labels - -# nand realization - Autologix(Nand(Nand(Nand(A,A),B),Nand(Nand(B,B),A))) \ - with .nw at 2nd last [].sw+(0,-1) - labels - -# nor realization - Autologix(Nor(Nor(Nor(A,A),Nor(B,B)),Nor(A,B))) \ - with .nw at last [].nw+(8,0) - labels - -# These functions contain topologies in common so write a macro -define(`customAB', - `S: Autologix(N`$1'(N`$1'(A,B1),N`$1'(B1,B)),N) with .Out at Here - line thick lineth from S.In2 to S.In3; InAB: dot(at last line.c) - line thick lineth from InAB left 2*L_unit - TN: Autologix(N`$1'(A,B)) with .Out at Here - line thick lineth from TN.InA up 3*L_unit; InA: Here - line thick lineth from TN.InB up 3*L_unit; InB: Here - line thick lineth from S.In4 to (InB,S.In4) then to (InB,TN.In2); dot - line thick lineth from S.In1 to (InA,S.In1); dot') - - [ customAB(and) - Out: S.Out - ] with .nw at 2nd last [].sw+(0,-1) - labels - - [ linethick = gatelineth - H: NOR_gate(2); linethick = lineth - L:dot(at H.w-(2*L_unit,0)) - line from H.In1 to (L,H.In1) then to (L,H.In2) then to H.In2 - line from L left 2*L_unit - customAB(or) - Out: H.Out - ] with .nw at last [].nw+(8,0) - labels - -.PE diff --git a/graphics/circuit_macros/examples/svg/XformSVG.m4 b/graphics/circuit_macros/examples/svg/XformSVG.m4 deleted file mode 100644 index 8d8805f59b..0000000000 --- a/graphics/circuit_macros/examples/svg/XformSVG.m4 +++ /dev/null @@ -1,41 +0,0 @@ -divert(-1) -# `XformSVG.m4' -define(`trlabels', - `{ thinlines_ - ifelse(`$1',R, - `arrow from `$3'.P1 <- right 0.12 up 0.072 chop 1pt__ ; "P1" ljust - arrow from `$3'.P2 <- right 0.12 down 0.072 chop 1pt__ ; "P2" ljust - arrow from `$3'.TP <- right 0.12 chop 1pt__ ; "TP" ljust - arrow from `$3'.S1 <- left 0.12 up 0.072 chop 1pt__ ; "S1" rjust - arrow from `$3'.S2 <- left 0.12 down 0.072 chop 1pt__ ; "S2" rjust - arrow from `$3'.TS <- left 0.12 chop 1pt__ ; "TS" rjust - ',` - arrow from `$3'.P1 <- left 0.12 up 0.072 chop 1pt__ ; "P1" rjust - arrow from `$3'.P2 <- left 0.12 down 0.072 chop 1pt__ ; "P2" rjust - arrow from `$3'.TP <- left 0.12 chop 1pt__ ; "TP" rjust - arrow from `$3'.S1 <- right 0.12 up 0.072 chop 1pt__ ; "S1" ljust - arrow from `$3'.S2 <- right 0.12 down 0.072 chop 1pt__ ; "S2" ljust - arrow from `$3'.TS <- right 0.12 chop 1pt__ ; "TS" ljust - ') - `"'`$2'`"' at `$3'.s+(0,-(`$4')) - thicklines_ } ') -divert(0)dnl -.PS -cct_init(svg_font(sans-serif,11bp__)) - -move right 0.5 - down_ - T1: transformer - trlabels(,`transformer',T1,0.3) - T2: transformer(down_ 0.6,,2,P,8) with .w at T1.e+(1,0) - trlabels(,`...(down_ 0.6,,2,P,8)',T2,0.3) - T3: transformer(,,8,WD12,4) with .w at T2.e+(1,0) - trlabels(,`...(,,8,WD12,4)',T3,0.23) - T4: transformer(,,9,AL) with .sw at T3.se+(1,0) - trlabels(,`...(,,9,AL)',T4,0.3) - T5: transformer(,R,8,AW) with .sw at T4.se+(1,0) - trlabels(R,`...(,R,8,AW)',T5,0.3) -move right 0.4 from last [].e - -command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/Xtest.m4 b/graphics/circuit_macros/examples/svg/Xtest.m4 deleted file mode 100644 index 6758043816..0000000000 --- a/graphics/circuit_macros/examples/svg/Xtest.m4 +++ /dev/null @@ -1,58 +0,0 @@ -.PS -# test.m4 -gen_init - -divert(-1) - -divert(0)dnl - -gs = 0.1 -gw = 3 -gh = 3 -define grid {($1*gs,$2*gs)} -B: box invis wid gw+2 ht gh+2 with .c at (0,0) -bix = gw/gs/2 -G:[ -C: 0,0 -for i=-bix to bix do { line wid 0.4 outlined "gray" from grid(-bix,i) right gw } -for i=-bix to bix by 5 do { sprintf("%g",i) at grid(-bix,i) rjust } -for j=-bix to bix do { line wid 0.4 outlined "gray" from grid(j,-bix) up gh } -for j=-bix to bix by 5 do { sprintf("%g",j) at grid(j,-bix) below } - - line from grid(-bix,0) right gw - line from grid(0,-bix) up gh -] with .C at B - -textoffset = 0 -xwid = 0.71; svg_font(Times,72bp__) -#xwid = 0.65; svg_font(sans-serif,72bp__) -#xwid = 0.64; svg_font(Arial,1) -#xwid = 0.64; svg_font(Helvetica,1) -#xwid = 0.54; svg_font(Courier,1) -#xwid = 0.67; svg_font(Cursive,1) -#xwid = 0.64; svg_font(Verdana,1) -#xwid = 0.70; svg_font(Georgia,1) -#xwid = 0.70; svg_font(Palatino,1) -#xwid = 0.70; svg_font(Garamond,1) -#xwid = 0.70; svg_font(Bookman,1) -##xwid = 0.70; svg_font(Comic Sans MS,1) -#xwid = 0.55; svg_font(Trebuchet MS,1) -#xwid = 0.78; svg_font(Arial Black,1) -#xwid = 0.49; svg_font(Impact,1) -[ -C: 0,0 - "X" wid xwid at grid(0,0) above ljust ; showbox_(last "") - "X" wid xwid at grid(0,0) below ljust ; showbox_(last "") - "X" wid xwid at grid(0,0) above rjust ; showbox_(last "") - "X" wid xwid at grid(0,0) below rjust ; showbox_(last "") -] with .C at G.C -[ - Q: box wid gw ht gh "X" ljust "Y" rjust "Z" - line from Q.n to Q.s; line from Q.w to Q.e -] with .w at B.e - - "X" wid xwid at G.n above; showbox_(last "") - - - command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/controlSVG.m4 b/graphics/circuit_macros/examples/svg/controlSVG.m4 deleted file mode 100644 index 29f80df221..0000000000 --- a/graphics/circuit_macros/examples/svg/controlSVG.m4 +++ /dev/null @@ -1,224 +0,0 @@ -.PS -# controlSVG.m4 -gen_init(svg_font(Times,11bp__)) - linewid = linewid*0.8 - circlerad = 0.25/2 - bw = boxwid/2 - bh = boxht/2 - maxpsht = 15 - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # - -PID: [ - {"svg_it(r(s))" above ljust} - arrow -S1: circle - line right "svg_it(e(s))" above - { arrow right ; box ht bh wid bw "svg_it(K)svg_sub(P)" - arrow right linewid-circlerad ; S2: circle } - { line up linewid ; arrow right ; box ht bh wid bw "svg_it(K)svg_sub(D)s" - line to (S2,Here) ; arrow to S2.n } - { line down linewid ; arrow right ; box ht bh wid bw "svg_it(K)svg_sub(I)/s" - line to (S2,Here) ; arrow to S2.s } - arrow right from S2.e "svg_it(u(s))" above - box "svg_it(G(s))" - arrow right ; "svg_it(y(s))" above rjust at Here+(0,2pt__) - line down boxht*3/2 from last arrow.c then left last arrow.c.x-S1.x - arrow to S1.s - "svg_it(-)" rjust at Here+(-2bp__,-2bp__) -] - "(a) svg_it(PID) control" below ljust at PID.sw+(0,-5pt__) - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # - -# https://tex.stackexchange.com/questions/575592/how-to-create-a-controls-system-diagram -Observer: [ - define(`thickarrow',`arrow thick 3 wid 7bp__') - define(`thickline',`line thick 3') - fillval = 0.6 - boxwid = 0.3 - boxht = 0.4 - circlerad = 0.1 - {"svg_it(r)" above ljust} -R: arrow -S: circle fill - {"svg_thinsp`'svg_it(-)" below ljust at S.s - "svg_it(+)" above rjust at S.w+(2bp__,0)} -{ PLT: box invis fill 0.9 wid 3.1 ht 1.2 with .nw at Here+(0.3,boxht*3/4) - "svg_it(Plant)" at PLT.sw above ljust } -U: arrow right 0.4 - {"svg_it(u)" at last arrow+(2bp__,0) above } -Bp: box fill "svg_it(B)" - thickarrow right 0.4 -Sp: circle fill - {"svg_thinsp`'svg_it(+)" below ljust at Sp.s - "+" above rjust at Sp.w+(2bp__,2bp__)} - thickarrow right 0.4 - {"svg_bf(x)" at last arrow + (0,7bp__); "." at last "".n +(0,textoffset)} -Ip: box fill "svg_it(I/s)" - thickarrow right 1 - {"svg_bf(x)" at last arrow + (0,7bp__) } -Cp: box fill "svg_it(C)" -# print Cp.e.x - Bp.w.x + 0.2 - thickline right 0.4 -Yp: thickarrow - {"svg_bf(y)" at last arrow + (0,7bp__) } -Ap: box fill "svg_it(A)" with .n at Ip.s+(0,-boxht/2) - thickarrow <- from Ap.e right 0.4 then up Ip.y-Ap.y - thickarrow from Ap.w to (Sp,Ap) then to Sp.s -# print PLT.n.y-Ap.s.y+0.1 -# -K: box fill "svg_it(K)" at Ap + (0,-boxht*3/2) - arrow from K.w to (S,K) then to S.s - {OBS: box invis fill 0.9 wid 4.3 ht 1.8 with .nw at (S.w,K.s)-(0.1,0.1) - "svg_it(Observer)" at OBS.sw ljust above } -Io: box fill "svg_it(I/s)" at K + (0,-boxht*3/2) - thickarrow <- from Io.w left 0.4 - {"svg_bf(x)" at last arrow + (0,7bp__); "svg_circ" at last "" - "." at last "".n above} -Sxo: circle fill - {"svg_thinsp`'svg_it(+)" below ljust at Sxo.s - "svg_it(+)" above rjust at Sxo.w+(2bp__,2bp__)} - thickarrow <- left 0.4 -SLo: circle fill - {"svg_thinsp`'svg_it(+)" below ljust at SLo.s - "svg_it(+)" above rjust at SLo.w+(2bp__,2bp__)} - thickarrow <- left 0.4 -Bo: box fill "svg_it(B)" - arrow from 1/4 between U.start and U.end up boxht*3/4 \ - then left 2*boxht then down Bp.y-Bo.y+boxht*3/4 then to Bo.w -Ao: box fill "svg_it(A)" with .n at Io.s+(0,-boxht/2) - thickline from Io.e right 0.4 - {thickarrow <-> from K.e to (Here,K.e) then to (Here,Ao) then to Ao.e - thickarrow from Ao.w to (Sxo,Ao.w) then to Sxo.s } -Xhat: Here -Co: box fill "svg_it(C)" at (Cp,Here) - thickarrow right 0.4 - {"svg_bf(y)" at last arrow + (0,7bp__); "svg_circ" at last ""} - { thickarrow from Xhat to Co.w } - {"svg_it(x)" at last arrow + (0,7bp__); "svg_circ" at last "" } -Syo: circle fill - {"svg_it(+)" above ljust at Syo.n - "svg_it(-)" above rjust at Syo.w+(2bp__,2bp__)} - thickarrow <- from Syo.n to (Syo,Cp) -Lo: box fill "svg_it(L)" with .n at Ao.s+(0,-boxht/2) -# print Io.n.y+0.1 - (Lo.s.y-0.1) - thickarrow from Syo.s down Syo.s.y-Lo.y then to Lo.e - thickarrow from Lo.w to (SLo,Lo.w) then to SLo.s - ] with .nw at last [].sw+(0,-0.5) - -Eqns: [ {"svg_it(r)" above ljust} - ex = textht*2/3 - define(`DDt',`svg_frac(svg_it(d):1*ex,svg_it(dt):2*ex)') - arrow -S: circle - "svg_it(-)" below rjust at S.s - arrow <- down linewid/2 from S.s - box ht bh wid bw "svg_it(K)" - arrow <- down linewid/2 - line right linewid - {"svg_hat(svg_bf(x))" at last line.c above } -Obs:box wid linewid*5 ht boxht*5/4 - [ DDt; "svg_hat(svg_bf(x)) svg_it(= (A-LC)) svg_hat(svg_bf(x)) - svg_it(+ Bu + L)svg_bf(y)" wid 1.5 ljust ] at Obs - "svg_it(Observer)" above ljust at Obs.sw - arrow <- right linewid/2 from 3/4<Obs.se,Obs.ne> - line to (Here,S) - {"svg_it(u)" above at Here+(linewid/2,0)} - arrow from S.e to Here+(linewid,0) -Plant: box wid boxwid*3/2 ht boxht*5/4 - [ DDt; "svg_bf(x) svg_it(= A) svg_bf(x) svg_it(+ Bu)" wid 0.8 ljust - "svg_bf(y) svg_it( = C) svg_bf(x)" wid 0.6 ljust \ - at last "".w + (0,-textht*2) ] at Plant+(0,0.05) - "svg_it(Plant)" above ljust at Plant.sw - arrow right from Plant.e - "svg_it(y)" above rjust at Here+(0,2pt__) - move to last arrow.c - line to (Here, 1/4<Obs.se,Obs.ne>) - arrow to (Obs.e,Here) - ] with .nw at last [].sw+(0,-0.1) - "(b) Plant with feedback from a full-order observer" \ - below ljust at Eqns.sw+(0,-5pt__) - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # - -Multiblock: [ -boxht = 0.4 -boxwid = boxht - -define summer { circle - {line from last circle.nw to last circle.se - line from last circle.sw to last circle.ne - "svg_it($1)" at 0.6 between last circle and last circle.n - "svg_it($2)" at 0.6 between last circle and last circle.s - "svg_it($3)" at 0.6 between last circle and last circle.e - "svg_it($4)" at 0.6 between last circle and last circle.w } -} - - arrow "svg_it(E`'svg_sub(1))" above -S1: summer(,-,,+) - linewid = boxwid/2 - arrow "svg_epsilon" above - [box "svg_it(H)svg_sub(1)"; arrow; box "svg_it(H)svg_sub(2)"] - arrow -S2: summer(-,,,+) - arrow -T: [box "svg_it(H)svg_sub(3)"; arrow; box "svg_it(H)svg_sub(4)"] - line -Y: Here - arrow - "svg_it(S)svg_sub(1)" above -R1: box "svg_it(R)svg_sub(1)" at (T.x,T.y+boxht*3/2) - arrow from Y to (Y,R1) then to R1.e - arrow from R1.w to (S2,R1) then to S2.n - "svg_it(n)svg_sub(1)" ljust at S2.n+(0,boxht/2) - left -Rf: [box "svg_it(R)svg_sub(2)"; arrow; box "svg_it(R)svg_sub(3)"] \ - at ((S1.x+T.x)/2,T.y-boxht*3/2) - arrow from T to (T,Rf) then to Rf.e - arrow from Rf.w to (S1,Rf) then to S1.s - "svg_it(n)svg_sub(2)" at S1.s+(0,-boxht/2) ljust -] with .nw at Eqns.sw + (0,-0.3) - "(c) A multiblock example" below ljust at Multiblock.sw+(0,-5pt__) - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # - -Nonlinear: [boxwid = boxwid*3/2; boxht = boxht*3/2 - thicklines_ - boxwid = boxwid*0.6 - boxht = boxht/2 -R: box "reference" "svg_it(R)" - arrow right linewid*4/3 - {"svg_it(y)svg_sub(c)[ref]" at last arrow+(0,textht/3) above } -Gh: box "\"i`'nverse\"" "of svg_it(G)" - arrow from Gh.s down "svg_it(y)svg_sub(m)[ref]" ljust -E: circle - arrow from E.e right "svg_it(e)" above - box "stabilizer" "svg_it(K)" - arrow "svg_delta`'u" above -D: circle - line from Gh.e to (D,Gh.e) "svg_it(u)[ref]" above - arrow to D.n - arrow from D.e right "svg_it(u)" above -G: box "plant" "svg_it(G)" - arrow <- from G.n up boxht/2; "disturbance svg_it(z)" above - arrow right from G.e + (0,boxht/4); "svg_it(y)svg_sub(c)" wid 0.2 ljust - arrow right from G.e + (0,-boxht/4); "svg_it(y)svg_sub(m)" ljust - move to last arrow.c - arrow down Here.y-G.s.y+boxht*2/3 then left Here.x-E.x then to E.s - "svg_it(-)" rjust below - arrow <- down from R.s - "svg_it(W) control input" at Here - (0,0.1) -UL:R.nw +(-boxht/2,boxht/2) -UR:(D.e,UL) + (0.1,0) - line dashed from UL to UR then to (UR,G.s+(0,-boxht*3/2)) - line dashed to (Gh.w,Here) "Controller" above - line dashed to (Here,Gh.s+(0,-boxht/2)) - line dashed to (UL,Here) then to UL -] with .nw at last [].sw + (0,-0.3) - "(d) Nonlinear feedforward (for performance) and small-signal feedback - (for stability)" below ljust at Nonlinear.sw+(0,-5pt__) - -#print PID.n.y - Nonlinear.s.y -command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/cscSVG.m4 b/graphics/circuit_macros/examples/svg/cscSVG.m4 deleted file mode 100644 index 05cf0c70d4..0000000000 --- a/graphics/circuit_macros/examples/svg/cscSVG.m4 +++ /dev/null @@ -1,249 +0,0 @@ -.PS -#.PS 3.5 -# csc.m4 -# This file includes AntiqueClock and works for PSTricks, Tikz, and SVG -gen_init -NeedDpicTools - -skale = 0.878 -circlerad=1.91*skale -hubrad=0.10*skale -s=0.5*skale - -define(`midnight',`0.1, 0.1, 0.44') -define(`white',`1, 1, 1') -define(`spokewidth',0.1) -define(`spoke',`dnl - {line from rvec_(0,hubrad-spokewidth/2) to rvec_(circlerad-0.05,0)} - {line from rvec_(0,-(hubrad-spokewidth/2)) to rvec_(circlerad-0.05,0)}') -define(`lwid',1) -define(`coord',`(s*(`$1'),s*(`$2'))') - -# Circle and spokes -CSC: [ -rgbdraw(midnight, - linethick=`0.'eval(lwid*15)/(1pt__) - {circle with .c at Here - circle invis diam last circle.diam + linethick pt__ at last circle } - linethick=spokewidth/(1pt__) - for angle = 0 to 330 by 30 do { - Point_(angle) - {spoke} - } - ) - -# Whiten where the hull will be - linethick=`0.'eval(lwid*20)/(1pt__) - rgbdraw(white, - Point_(-60){line to rvec_(circlerad*0.72,0)} - Point_(-90){line to rvec_(circlerad*0.72,0)} - Point_(-120){line to rvec_(circlerad*0.72,0)} - - linethick=`0.'eval(lwid*15)/(1pt__) - {move to coord(1.8,-2.3)+(0,0.025) - spline to Here+coord(-0.8,-0.3) then to Here+coord(-1.8,-0.3) \ - then to Here+coord(-2.18,-0.27) \ - then to Here+coord(-3.93,-0.1)} - ) - -# Sail - thinlines_ - rgbfill(midnight, - line from coord(0.44,3.38) to coord(0.44,2.6) \ - then to coord(2.1,-1.75) \ - then to coord(1.22,-1.53) \ - then to coord(0.62,-1.4) \ - then to coord(0.55,-1.6) \ - then to coord(-2.2,-1.6) \ - then to coord(-2.35,-1.5) - spline to coord(-2.14,-0.78) \ - then to coord(-1.74,0.22) \ - then to coord(-1.42,0.89) \ - then to coord(-0.92,1.73) \ - then to coord(0,2.9) \ - then to coord(0.44,3.38) - ) - -# Hull - rgbfill(midnight, - spline from coord(2.1,-1.75) to coord(1.9,-2.2) \ - then to coord(1.85,-2.3) then to coord(1.8,-2.33) \ - then to coord(1,-2.5) then to coord(0,-2.6) then to coord(-0.38,-2.57) \ - then to coord(-2.13,-2.4) - line to coord(-2.2,-2.05) then to coord(2.1,-1.75) - spline to coord(-1,-2.08) then to coord(0.55,-1.77) - ) - ] - -Clock: [ -# PSTricks, tikz, or svg only: -ifelse(ifpstricks(T)`'ifpgf(T)`'ifsvg(T),T,` -#.PS -# AntiqueClock.m4 -#gen_init -#NeedDpicTools - -iflatex(`latexcommand({\sf)') -ifsvg(svg_font(font-family="sans-serif" font-stretch="condensed") -# svg_rot_init(test)) - svg_rot_init(cscSVG)) - -# https://tex.stackexchange.com/questions/236923/generate-analog-clock-with-numbered-face-add-seconds-roman-numerals - -# `hms2deg(hr,min,sec) hr:min:sec to degrees -# blank arg1: degrees for minute hand -# blank arg1 and arg2: degrees for second hand' -define(`hms2deg',`ifelse(`$1',, - `ifelse(`$2',, - `(90-pmod(ifelse(`$3',,0,`$3'),60)/60*360)', - `(90-(pmod(`$2',60)/60 + pmod(ifelse(`$3',,0,`$3'),60)/60/60)*360)')', - `(90-(pmod(`$1',12) + pmod(ifelse(`$2',,0,`$2'),60)/60 + dnl - pmod(ifelse(`$3',,0,`$3'),60)/3600)/12*360)')') - -# `SecondHand(length,hr,min,sec)' -define(`SecondHand',`[ shsf = (`$1')/3.2 - C: Here - { L: rpoint_(to (Rect_(`$1',hms2deg(,,`$4')))) } - line thick 8*shsf to rvec_(`$1',0) - ]') - -# `AntiqueMinuteHand(length,hr,min,sec)' -define(`AntiqueMinuteHand',`[ mhsf = (`$1')/2.84 - L: rpoint_(to (Rect_(`$1',hms2deg(,`$3',`$4')))) - C: circle fill_(0) diam 0.47*mhsf at L.start - move to C - spline from rvec_(0,0.047*mhsf) \ - to rvec_(1.65*mhsf,0.11*mhsf) \ - then to rvec_(`$1',0.018*mhsf) \ - then to rvec_(`$1',-0.018*mhsf) \ - then to rvec_(1.65*mhsf,-0.11*mhsf) \ - then to rvec_(0,-0.047*mhsf) \ - shaded rgbstring(0,0,0) - ]') - -# `AntiqueHourHand(length,hr,min,sec)' -define(`AntiqueHourHand',`[ hhsf = (`$1')/2.2 - L: rpoint_(to (Rect_(`$1',hms2deg(`$2',`$3',`$4')))) - C: circle fill_(0) diam 0.6*hhsf at L.start - move to C - v = 0.25*hhsf - { line to rvec_(1.1*hhsf,0) thick 0.15/(1bp__)*hhsf } - C1: rvec_(1.25*hhsf,0) - d = `$1'-1.25*hhsf - q = 1bp__*hhsf - r1 = (d^2 + q^2 - v^2)/(v-q)/2 - tang = atan2((r1+q),d) - for i=0 to 3 do { - X[i]: C1+vec_(rect_(v, pi_+i/3*( tang-pi_))) - Y[i]: C1+vec_(rect_(v,-pi_+i/3*(-tang+pi_))) - } - n = 3 - for i=1 to 4 do { aa = -pi_+tang + i/4*(pi_/2-tang) - XX: (d,r1+q)+(rect_(r1,aa)) - n+=1; - X[n]: C1+vec_(XX.x, XX.y) - Y[n]: C1+vec_(XX.x,-XX.y) - } - m = n - for i= 0 to m do { n+=1; X[n]: Y[m-i] } - fitcurve(X,n,shaded rgbstring(0,0,0)) - ]') - - -define(`AntiqueClock',`[ # h,m,s,diam -# Clock size parameters: - hour = ifelse(`$1',,3,`$1') - minute = ifelse(`$2',,41,`$2') - second = ifelse(`$3',,51,`$3') - # outer radius - ifelse(`$4',,`skale=0.5; r1=2',`r1=(`$4')/2; skale=r1/4') - r2 = r1-0.5*skale - r3 = r2-0.14*skale - r4 = r3 - 0.35*skale - r5 = r4 - 0.17*skale - r6 = r5 - 0.63*skale - r7 = r6 - 0.17*skale - shadelinethick = 1.0 - -C: circle thick 0.2 rad r1 - -define shadeline { - s = 1-($`'1)*2 - v = r*s - h = sqrt(r^2-v^2) - t = 1-abs(s) - line from (vrot_(-h,v,cost,sint)) to (vrot_(h,v,cost,sint)) \ - thick shadelinethick outlined rgbstring(t,t,t) - } - - r = r1 # Bezel outer - nlines = int(2*r/(shadelinethick pt__)*1.1) - cost = cosd(10); sint = sind(10); - ShadeObject(shadeline,nlines, 0, 0,0,0, 0.5, 1,1,1, 1, 0,0,0 ) at C - - r = r2 # Bezel inner - nlines = int(2*r/(shadelinethick pt__)*1.1) - cost = cosd(-10); sint = sind(-10); - ShadeObject(shadeline,nlines, 0, 0,0,0, 0.25, 0.8,0.8,0.8, 0.5, 1,1,1, - 0.75, 0.8,0.8,0.8, 1, 0,0,0 ) at C - -# Clock face -Face: circle thick 0 fill_(1) rad r3 at C - circle rad r4 at C - circle rad r5 at C - circle rad r6 at C - circle rad r7 at C - -# Ad hoc shift of rotated SVG text - ifsvg(`define adj {+(-cosd($`'1)*textht*0.5*sign(180-($`'1)),\ - (0.25+0.25*cosd(2*($`'1)))*textht) }', - `define adj {}') - define adj {} - -# Outer numbers - iflatex(`command sprintf("\font\outerfont=cmss12 at %4.2fin",r3-r4)') - ifsvg(`textht = (r3-r4)*0.6') - for_(-15,15,5,`aa=90-(m4x)*6 - r_text(eval(-(m4x)*6),eval((m4x+60)%60), - at C+(Rect_((r3+r4)/2,aa)) adj(aa))') - for_(20,40,5,`aa=450-(m4x)*6 - r_text(eval(180-m4x*6),m4x,at C+(Rect_((r3+r4)/2,aa)) adj(aa))') -# Outer tics - for mn = 1 to 60 do { t = 90-mn/60*360 - line from C+(Rect_(r5,t)) to C+(Rect_(r4,t)) } - -# Inner numbers - iflatex(`command sprintf("\font\innerfont=cmss12 at %4.2fin",r5-r6)') - ifsvg(`textht = (r5-r6)*0.6') - Loopover_(`mx',`aa=180-(m4Lx-1)*30 - r_text(eval(120-m4Lx*30),iflatex({\innerfont mx},mx), - at C+(Rect_((r5+r6)/2,aa)) adj(aa))', - IX,X,XI,XII,I,II,III) - Loopover_(`mx',`aa=360-m4Lx*30 - r_text(eval(90-m4Lx*30), iflatex({\innerfont mx},mx), - at C+(Rect_((r5+r6)/2,aa)) adj(aa))', - IV,V,VI,VII,VIII) - -# Inner tics - for mn = 5 to 60 by 5 do { t = 90-mn/60*360 - line from C+(Rect_(r7,t)) to C+(Rect_(r6,t)) } - -# Hands - AntiqueHourHand(r6,hour,minute,second) with .C at C - AntiqueMinuteHand(r5,hour,minute,second) with .C at C - SecondHand((r3+r4)/2,hour,minute,second) with .C at C - -# Center - dot(at C,0.1/4*r1,1) - ]') `# AntiqueClock' - - Clock1: AntiqueClock(,,,3.5) -# Clock2: AntiqueClock(4,50,07,2) at Clock1.e+(1.5,0) - - iflatex(`latexcommand(}%)') - ifsvg(`command "</g>"') - -#.PE -',` "AntiqueClock.m4 requires PSTricks, Tikz-pgf, or SVG" ') - ] with .sw at last [].se+(0.25,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/diamondSVG.m4 b/graphics/circuit_macros/examples/svg/diamondSVG.m4 deleted file mode 100644 index 3c5e0f5bfe..0000000000 --- a/graphics/circuit_macros/examples/svg/diamondSVG.m4 +++ /dev/null @@ -1,34 +0,0 @@ -.PS -# diamond.m4 -# See LaTeX Graphics Companion pp 57-58 -gen_init -dimen = 1.5*scale -ratio = 0.9 -n = 30 - -North: (0,dimen) -East: (dimen,0) -South: (0,-dimen) -West: (-dimen,0) - -define(`square', - `shade(`$1', - line from North to East then to South then to West then to North) - ') - -define(`diamond',`[ -for i = 2 to n do { - square(`$1') - Tmp: North - North: ratio between East and North - East: ratio between South and East - South: ratio between West and South - West: ratio between Tmp and West - }]') - -linethick = 0 -diamond( i % 2 ) -linethick = 0.4 -diamond( (n-i)/(n-2) ) with .w at last [].e+(0.25,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/ex00SVG.m4 b/graphics/circuit_macros/examples/svg/ex00SVG.m4 deleted file mode 100644 index 97c5268725..0000000000 --- a/graphics/circuit_macros/examples/svg/ex00SVG.m4 +++ /dev/null @@ -1,94 +0,0 @@ -.PS -# ex00.m4 -gen_init(svg_font(sans-serif,11bp__)) - -[ -thicklines_ -ewid = 2 -eht = 0.5 -E: ellipse wid ewid ht eht - - [ narrows = 5 - de = ewid/narrows - for i=0 to narrows do { - arrow down from i*de,0 } - ] with .s at E.n+(0,0.25) - - "svg_bf(B)svg_it((t))" at last [].c - -thinlines_ - arrow from E.c to E.ne - box invis fill_(1) ht 0.12 wid 0.12 with .c at last arrow.c "svg_it(r)" - - command "</g>" # end font -] -[ -# ex07.m4 -#gen_init - -Barrel: box invis ht 0.4 wid 1.5 - up -Face: arc rad 2.6 from Barrel.e+(2.4,-1.7/2) to Barrel.e+(2.4,1.7/2) - - eps = 0.03 - arc ccw rad 2.6 from Face.start-(eps,0) to Face.end-(eps,0) \ - with .c at Face.c-(eps,0) - line from Barrel.nw to Barrel.ne then to Face.end - line from Barrel.sw to Barrel.se then to Face.start - arc cw from Barrel.sw to Barrel.nw rad Barrel.ht*1.2 - -Cathode: Barrel.w+(0.3,0) -Term: Barrel.w+(-0.25,0) - dcath = 0.13 - dan = 0.12 - - line from Cathode up dcath/2 left dcath/2 then to Term.x,Cathode.y+dcath/2 - dot - line from Cathode down dcath/2 left dcath/2 then to Term.x,Cathode.y-dcath/2 - dot - - hole = 0.06 -Hole: line invis up hole from Cathode+(0.5,-hole/2) - line from Hole.end up dan-hole/2 then to Term.x,Cathode.y+dan; dot - line from Hole.start down dan-hole/2 then to Term.x,Cathode.y-dan; dot - - platewid = 0.25 - platesep = 0.15 -Plates: box invis wid platewid ht platesep at Barrel.e+(-platewid/2,0) - line right platewid from Plates.nw - line right platewid from Plates.sw - line up 0.3 from Plates.n - line down 0.3 from Plates.s - -linethick_(1.4) - - move to Cathode+(0.03,0) -Spot: 0.9<Face.start,Face.end> - arcto(Plates.c,Spot,(Plates.c.x-Cathode.x)*0.90,outlined "lightgrey" thick 2) - line to Spot chop 0 chop -0.02 outlined "lightgrey" thick 2 - -thinlines_ - - arrow <- from Cathode+(0.2,0.06) up 0.5 left 0.3 - "electron" above "gun" above - - arrow <- from Plates.nw+(0,0.06) up 0.5 left 0.3 - "deflection" above "plates" above - - arrow <- from 0.5<Plates.e,Spot>+(0,0.06) up 0.5 left 0.3 - "electron beam" at Here+(-0.3,0) above - - spline <- from 1.015<Plates.e,Spot> right 0.1 up 0.1 then up 0.1 \ - then up 0.1 left 0.1 - "spot of light" rjust - - "vacuum" at 0.5<Face.start,Face.end>+(-0.4,0) rjust - - arrow <- from Face.start+(0.1,0.5) left 0.6*1.4 down 0.3*1.4 - "phosphor coating" rjust - - arrow <- from 0.2<Barrel.se,Face.start> left 0.6 down 0.3 - "glass enclosure (tube)" rjust - -] with .sw at last [].se+(0.5,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/ex01SVG.m4 b/graphics/circuit_macros/examples/svg/ex01SVG.m4 deleted file mode 100644 index dd22dd8494..0000000000 --- a/graphics/circuit_macros/examples/svg/ex01SVG.m4 +++ /dev/null @@ -1,80 +0,0 @@ -.PS -# TimerSVG.m4 -cct_init(svg_font(sans-serif,10.5bp__)) - -define(`ic555',`[Chip: box ht boxwid wid boxwid "555" - P7: "7" ljust at 1/6<Chip.sw,Chip.nw> - P6: "6" ljust at 1/2<Chip.sw,Chip.nw> - P2: "2" ljust at 5/6<Chip.sw,Chip.nw> - P4: "4" below at 1/3<Chip.nw,Chip.ne> - P8: "8" below at 2/3<Chip.nw,Chip.ne> - P3: "3" rjust at Chip.e - P1: "1" above at Chip.s - ]') - -Timer: [ - define(`elen_',`linewid') -Vs: dot - down_ - variable(`resistor(,,E); llabel(,svg_norm(1 M`'svg_ohm))'); - resistor(,,E); llabel(,svg_norm(100 k`'svg_ohm)) - capacitor(,E); llabel(svg_norm(220 svg_micro`'F)) -Zero: dot - - dot(at Vs+(elen_*4/3,0)) - resistor(,,E); llabel(,svg_norm(33 k`'svg_ohm)) - line to (Here,Zero) chop 0 chop elen_ -C2: capacitor; llabel(svg_norm(0.1 svg_micro`'F)) - dot - -IC1: ic555 with .P7 at C2.start + (elen_,0) - line from IC1.P4 to (IC1.P4,Vs); dot - line from IC1.P8 to (IC1.P8,Vs); dot - line from IC1.P1 to (IC1.P1,Zero); dot - line from IC1.P2 to (C2,IC1.P2); dot - crossover(from IC1.P7 to (Zero,IC1.P7),R,C2); dot - line from IC1.P6 left elen_/2 then down IC1.P6.y-IC1.P7.y; dot - line from IC1.P3 right elen_*2/3 -R: dot - line right_ elen_/3 -B: buzzer(,,C) with .In3 at Here - line from B.In1 to (R,B.In1) - reversed(`diode',to (Here,Vs),LE); "red" at last line.c+(elen_/2,0) - resistor(down_ elen_ from R,,E); llabel(,svg_norm(470 svg_ohm)) - diode(to (Here,Zero),LE); {"green" wid 0.4 at last line.c+(elen_*2/3,0)} - line to Zero chop 0 chop -elen_ - line up_ (Vs.y-Here.y)/3 - battery(up_ (Vs.y-Here.y)/3); rlabel(,,svg_norm(9 V)) - switch(to (Here,Vs),,D) - line to (R,Vs) -] -Ex01: [ -# ex01.m4 - -linewid = linewid*1.5 # let's make the circuit elements bigger than usual -define(`elen_',linewid) # but not longer - - del = elen_/4 # a spacing parameter - move right 0.4 -Vin: source(up_ elen_ + 2*del, V); llabel(,v`'svg_sub(s),) - - switch(right_ elen_,,C); rlabel(,t = svg_norm(0),) - resistor; llabel(,svg_norm(47 ohm),); b_current() - { "svg_it(i`'svg_sub(R))" at last arrow.end+(0,3bp__) above rjust } - - line right_ elen_/2 then down_ del - P:parallel_(`L:inductor(,W); llabel(,"L" wid 0.15,); b_current()', - `capacitor(,C); rlabel(+,v`'svg_sub(C),-); llabel(,,C)') - { "svg_it(i`'svg_sub(L))" at P.E1.L.start+(2bp__,0) ljust below } - line to (Here,Vin.start) then to Vin.start - - define(`meshcurrent',`[arc -> cw with .c at (0,0) \ - from (Rect_(`$1',-30)) to (Rect_(`$1',30)) "svg_it(`$2')"]') - - right_ - meshcurrent(del,i`'svg_sub(2)) at last[].C - meshcurrent(2*del,i`'svg_sub(1)) at Vin.start + (4*del,3*del) - ] with .sw at Timer.se+(0.5,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex02SVG.m4 b/graphics/circuit_macros/examples/svg/ex02SVG.m4 deleted file mode 100644 index ad2f7324fb..0000000000 --- a/graphics/circuit_macros/examples/svg/ex02SVG.m4 +++ /dev/null @@ -1,52 +0,0 @@ -.PS -# ex02.m4 -cct_init -linewid = linewid*4/5 - -[ - [ for angle = 0 to 315 by 45 do { Point_(angle) - opamp(to rvec_(linewid*3/2,0)) with .Out at 0,0 } ] - resistor(down_ dimen_ from last [].s) - diode(down_ dimen_*2/3,LE) - diode(down_ dimen_*2/3,LER) - ground(,T) -] - -[ - define(`elen_',`dimen_*3/2') # restore defaults - define(`sourcerad_',`dimen_*0.25') - leng = elen_ - define(`fromcentre',`move to C+(-elen_/2,-elen_*cosd(15)/(2*sind(15)))') - C: dot - { fromcentre() - for i = 0 to 359 by 30 do { - Point_(i); inductor - } - } - define(`elen_',leng*0.8) - { fromcentre() - for i=0 to 359 by 30 do { - Point_(i); inductor(,W) - } - } - define(`elen_',leng*0.6) - { fromcentre() - for i=0 to 359 by 30 do { - Point_(i); resistor - } - } - define(`elen_',leng*0.4) - { fromcentre() - for i=0 to 359 by 30 do { - Point_(i); capacitor(,C) - } - } - define(`elen_',leng*0.2) - { fromcentre() - for i=0 to 359 by 30 do { - Point_(i); diode - } - } - ] with .sw at last [].se+(linewid,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/ex03SVG.m4 b/graphics/circuit_macros/examples/svg/ex03SVG.m4 deleted file mode 100644 index ef1e6126d2..0000000000 --- a/graphics/circuit_macros/examples/svg/ex03SVG.m4 +++ /dev/null @@ -1,37 +0,0 @@ -.PS -# ex03.m4 -cct_init(svg_font(sans-serif,11bp__)) - -circlerad = 0.35/2 -define(`elen_',`dimen_') -del = linewid*0.6 - - "svg_it(u`'svg_sub(k))" wid 0.15 above - line -{ - arrow right_ del -B0: circle "svg_it(b`'svg_sub(0))" - arrow right linewid/2 -S: circle - line right 2*circlerad + del + S.w.x-B0.e.x - {arrow ; "svg_it(y`'svg_sub(k))" wid 0.2 above } - down_ - delay - {line left_ del - circle "svg_it(-a`'svg_sub(1))" ; arrow from last circle to S chop} - line dashed down_ del - delay - {line left_ del - circle "svg_it(-a`'svg_sub(n))" ; arrow from last circle to S chop} -} - down_ - delay - {line right_ del - circle "svg_it(b`'svg_sub(1))" ; arrow from last circle to S chop} - line dashed down_ del - delay - {line right_ del - circle "svg_it(b`'svg_sub(n))" ; arrow from last circle to S chop} - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex04SVG.m4 b/graphics/circuit_macros/examples/svg/ex04SVG.m4 deleted file mode 100644 index 366cf24c05..0000000000 --- a/graphics/circuit_macros/examples/svg/ex04SVG.m4 +++ /dev/null @@ -1,61 +0,0 @@ -.PS -# ex04.m4 -cct_init(svg_font(sans-serif,10bp__)) - -[ -pushdef(`elen_',`dimen_') # short elements -pushdef(`sourcerad_',`dimen_*0.2') -#linewid = 0.85 -linewid = 0.6 - -Ct:dot - Point_(-60); capacitor(,C); dlabel(0.14,0.14,,,C`'svg_sub(3)) -Cr:dot - left_; capacitor(,C); dlabel(0.14,0.14,C`'svg_sub(2),,) -Cl:dot - down_; capacitor(from Ct to Cl,C); dlabel(0.14,-0.10,C`'svg_sub(1),,) - -T:dot(at Ct+(0,elen_)) - inductor(from T to Ct); dlabel(0.12,-0.1,,,L`'svg_sub(1)) - - Point_(-30); inductor(from Cr to Cr+vec_(elen_,0)) - dlabel(0,-0.07,,L`'svg_sub(3),) -R:dot -L:dot( at (Cl-(Cos(30)*(elen_),0),R) ) - - inductor(from L to Cl); dlabel(-0.1,-0.1,L`'svg_sub(2),,,X) - - right_; resistor(from L to R); rlabel(,R`'svg_sub(2),) - move down 0.3 - - resistor(from T to R); dlabel(0,0.15,,R`'svg_sub(3),) - b_current(y,ljust above) - - line from L to 0.2<L,T> - source(to 0.5 between L and T); dlabel(sourcerad_+0.07,0.1,-,,+) - dlabel(0,sourcerad_+0.07,,u,) - resistor(to 0.8 between L and T); dlabel(0,0.15,,R`'svg_sub(1),) - line to T - ] -popdef(`elen_') -popdef(`sourcerad_') - -[ - Point_(225) -{B1: ebox ; b_current; dlabel(dimen_*0.4,-0.1,i`'svg_sub(1)) - dot - B4: ebox(to rvec_(rp_len,0)); b_current(,,,E); dlabel(dimen_*0.4,-0.1,,,i`'svg_sub(4)) } - Point_(-45) - B2: ebox ; b_current; dlabel(dimen_*0.4, 0.1,i`'svg_sub(2)) - dot - B7: ebox ; b_current; dlabel(dimen_*0.4, 0.1,i`'svg_sub(7)) - B3: ebox(from B1.end to B2.end); b_current; dlabel(dimen_*0.4,0.1,i`'svg_sub(3)) - dot(at (B1.start,B7.end)) -{B5: ebox(to B1.end); b_current; dlabel(dimen_*0.4,-0.09,i`'svg_sub(5))} -{B6: ebox(to B2.end); b_current; dlabel(dimen_*0.4, 0.09,i`'svg_sub(6))} -{B8: ebox(right_ to B4.end); b_current; dlabel(dimen_*0.4, 0.1,i`'svg_sub(8))} - B9: ebox(left_ to B7.end); b_current; dlabel(dimen_*0.4,-0.1,i`'svg_sub(9)) - ] with .w at last [].e+(0.5,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex05SVG.m4 b/graphics/circuit_macros/examples/svg/ex05SVG.m4 deleted file mode 100644 index 52284a3e33..0000000000 --- a/graphics/circuit_macros/examples/svg/ex05SVG.m4 +++ /dev/null @@ -1,115 +0,0 @@ -.PS -# ex05SVG.m4 -darrow_init - -Kalman: [ - fillval = 0.8 - - boxht = 0.35 - boxwid = 1.5*boxht - dx = boxht/5 - circlerad = boxht*3/8 - extlen=4*dx - indel = boxht/3 - define(`dlthick',dlthick*3/4) - -define(`overbar',`line right textht*0.8 \ - with .c at last box.c + ((`$1')*textht,0.7*textht)') - -COb: box fill_ "CO"; overbar(0.5) -CO:box fill_ with .nw at last box.se+(dx,-dx) "CO" -CbOb: box fill_ with .nw at last box.se+(dx,-dx) "CO" - overbar(-0.5); overbar(0.5) -CbO: box fill_ with .nw at last box.se+(dx,-dx) "CO"; overbar(-0.5) - - dline(from CbO.s down_ dx,,t,,!-) - dright -{Sum: circle invis at (CO,Here)} - darrow(to Sum.e) - -SW: (COb.w,Sum.s)+(-3*dx-extlen/2,-dx) -NE: (CbO.e,COb.n)+(dx,dx) - right_; -SB: shadebox(box wid NE.x-SW.x ht NE.y-SW.y with .sw at SW) - -U: COb.w-(3*dx+extlen,0) - {"svg_it(U)" wid 0.1 rjust at U} - dline(from U right_ extlen+dx,,t,,|-) -TU: dtee(R) - {darrow(to COb.w,t)} - dline(to (Here,CO),t,t) -{Dum: circle invis at (Here,Sum)} - dtee(L) - {darrow(to CO.w,t)} -{D: box "D" wid boxwid/2 ht boxwid/2 at 0.5<Here,Dum.n>} - darrow(to D.n,t) - darrow(from D.s to Dum.n,,,,,,!-) - - dline(up_ from CO.n to (CO,COb)-(0,indel),,t,,!-) - dleft; darrow(to (COb.e,Here)) - - dline(up_ from CbOb.n to (CbOb,COb),,t,,!-) - dleft; darrow(to COb.e) - - dline(from CbO.n-(indel,0) up_ CbOb.y-CbO.n.y,,t,,!-) - dleft; darrow(to CbOb.e) - - dline(up_ from CbO.n to (CbO,CO),,t,,!-) - dleft - dline(to (CbOb.w,Here)); darrow(to CO.e) - - dline(up_ from CbO.n+(indel,0) to (CbO,COb)+(indel,indel),,t,,!-) - dleft; darrow(to (COb.e,Here)) - - darrow(from CO.s to Sum.n,,,,,,!-) - - darrow(left_ from Sum.w to Dum.e) - dline(from Dum.w to (SB.w-(0.1,0),Dum)); darrow(to (U,Here)) - {"svg_it(Y)" rjust} - move left 0.23 - - circle at Sum - circle at Dum - ] -Coxeter: [ -# Coxeter.m4 - - customlinethick = 1.5 - - linethick = customlinethick - define(`dotrad_',`(3/2*linethick pt__)') - - Orig: (0,0) - for i=0 to 4 do { P[i]: dot(at (i*linewid,0)) } - line from Orig to P[4] - P[-1]: dot(at (Rect_(linewid, 120))); line to Orig - P[-2]: dot(at (Rect_(linewid,-120))); line to Orig - - Pa: dot(at P[4]+(linewid,0)); "svg_it(a)" at last [].n above - arrow from P[4] to Pa chop linewid/4 - Pd: dot(at Pa+(linewid,0)); "svg_it(d)" at last [].w rjust - Pe: dot(at Pd+(linewid,0)); "svg_it(e)" at last [].n above - Pf: dot(at Pe+(linewid,0)); "svg_it(f)" at last [].n above - Pb: dot(at Pd+(Rect_(linewid,120))); "svg_it(b)" at last [].w rjust - Pc: dot(at Pd+(Rect_(linewid,-120))); "svg_it(c)" at last [].w rjust - line from Pb to Pd then to Pc - line from Pd to Pf - - define(`customarc', - `pushdef(`dfillcolor',`0.7,0.7,0.7') linethick_(0.4); dnl - Darc(`$1',linewid, (`$2')*dtor_, (`$3')*dtor_, - thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl - linethick_(customlinethick); popdef(`dfillcolor')') - - customarc((linewid,-linewid/3), 25,155) - "svg_it(d)" at (linewid,linewid*2/3) - customarc((2*linewid,-linewid/3), 25,155) - "svg_it(e)" at (2*linewid,linewid*2/3) - customarc((3*linewid,-linewid/3), 25,155) - "svg_it(f)" at (3*linewid,linewid*2/3) - customarc(Orig,130,230); "svg_it(a)" at (Rect_(linewid,180)) - customarc(Orig, 10,110); "svg_it(b)" at (Rect_(linewid, 60)) - customarc(Orig,-110,-10); "svg_it(c)" at (Rect_(linewid,-60)) - - ] with .sw at Kalman.se+(15bp__,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/ex06SVG.m4 b/graphics/circuit_macros/examples/svg/ex06SVG.m4 deleted file mode 100644 index 9d3df65745..0000000000 --- a/graphics/circuit_macros/examples/svg/ex06SVG.m4 +++ /dev/null @@ -1,64 +0,0 @@ -.PS -# ex06SVG.m4 -gen_init(svg_font(font-family="Times" font-style="italic",11bp__)) - -F: box invis wid 1.6i ht 1.8i -E: box invis wid F.wid ht F.ht -G: box invis wid 1i ht F.ht - - ell = F.ht-0.6i - r = 0.3i - offset = 8bp__ - hatch = 0.1i - dhs = hatch * sqrt(2) - qmell = F.ht - ell - kwid = F.wid-qmell-r - - box wid G.e.x-F.w.x ht F.ht with .sw at F.sw thick linethick*3/2 - Loopover_(`B', - `line from B.ne to B.se thick linethick*3/2 - B`'T: B.se + (-qmell,qmell) - line from (B.w,B`'T) to B`'T chop 0 chop -offset - line from B`'T up ell chop -offset chop 0 - line from B`'T + (-r,0) up ell - line dashed from B`'T to B.se - "svg_fsize(0,110)" at B`'T + (-r/2,ell/2) - "svg_fsize(0,110)" at B`'T + (qmell/2,ell/2) - "t" at (B`'T,B.n) + (-offset/2,offset) - thinlines_ - arrow <-> from B.nw+(0,offset*2/3) right B.wid-qmell-r "k" above - for x = hatch to B`'T.x-B.w.x-r by hatch do {line down ell from B.nw+(x,0)} - for y = dhs to qmell by dhs do {line up y right y from (B.w,B`'T)+(0,-y)} - for x = y-qmell to B.wid-qmell*2 by dhs do { - line up qmell right qmell from B.sw+(x,0) } - for x = last line.start.x-B.w.x+dhs to B.wid by dhs do { - line up (B.wid-x)/2 right (B.wid-x)/2 from B.sw+(x,0) } - thicklines_ - ',F,E) - - line from (G.w,ET) right G.wid - line from ET + (0,r) left ET.x-E.w.x - - thinlines_ - for y = hatch to r by hatch do { line left r from ET+(0,r-y) } - for x = dhs to G.wid by dhs do { - line left x down x from G.nw+(x,0) } - for y=x-G.wid to G.ht-G.wid by dhs do { - line left G.wid down G.wid from G.ne+(0,-y) } - for x = y-(G.ht-G.wid) to G.wid by dhs do { - line right G.wid-x up G.wid-x from G.sw+(x,0) } - arrow <-> up r with .c at ET+(offset*2/3,r/2) "r" ljust - thicklines_ - - "q" at F.sw + (-offset,offset/3) - "l" at (F.w,FT) + (-offset,offset/3) - - "n+p+m" at G.ne + (0,offset) - - Loopover_(`B',`"B" ht 0.12 below at B.s+(0,-2bp__)',F,E,G) - -# Adjust the bounding box without using s_box: - move from F.nw+(-12bp__,21bp__) to G.se+(20bp__,-15bp__) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex08SVG.m4 b/graphics/circuit_macros/examples/svg/ex08SVG.m4 deleted file mode 100644 index aca3f41069..0000000000 --- a/graphics/circuit_macros/examples/svg/ex08SVG.m4 +++ /dev/null @@ -1,83 +0,0 @@ -.PS -# ex08.m4 -log_init(svg_font(sans-serif,11bp__)) - -define(`del',`L_unit*5/2') - -# Input labels -C: "C" rjust at grid_(0,0) -DE: grid_(0,AND_ht*7/4) -A0: DE+grid_(0,BUF_ht*3/2); "A0" rjust at A0 -A1: A0+grid_(0,BUF_ht*3/2); "A1" rjust at A1 -A2: A1+grid_(0,BUF_ht*3/2); "A2" wid 0.2 rjust at A2 - move to (-0.2,0) # Lettering within the global object - -# Buffer strings -for_(1,3,1, - `line right 3*del from A`'eval(3-m4x) - B`'eval(2*m4x-1): NOT_gate; line right 2*del - T`'m4x: last line.c - B`'eval(2*m4x): BUFFER_gate(,N) ') - -B7: BUFFER_gate at (B1,C) - -G1: NOR_gate with .Out at (B1.Out,DE) -G2: NOR_gate at (B2+grid_(N_rad,0),G1-grid_(0,AND_ht)) -G3: AND_gate(4) with .In1 at (G2.Out+(9*del,0),A2) -G5: AND_gate(4) with .In4 at (G3.In1,G2.Out) -G6: AND_gate at G5+grid_(AND_wd,AND_ht*3/4)+(del*2,0) -G4: NOR_gate with .In1 at (G6.Out,G3)+(2*del,0) -G7: NOR_gate with .In2 at (G4.In2,G5.Out) - -# Output to other latches -TOL: (G2.Out,C)+(4*del,-4*L_unit) - move to TOL+(3*del,-del/3) ; {move down 0.15} - "To other latches" below - -# Remaining input lines - line from G1.In1 to (DE,G1.In1); "D" rjust - line from G1.In2 to (DE,G1.In2); "E" rjust - dot(at G1.In2-(del,0)); line to (Here,G2.In2) then to G2.In2 - line from C to B7.In1 - -# Connect Bi, and connect to output bus -for_(1,3,1, - `dot(at T`'m4x.c) ; line down (A2.y-A1.y)/2 - line to (TOL-(m4x*del,0),Here) ; arrow to (Here,TOL) ') - -# G1 to G2 - dot(at (T1.c,G1)); line to (Here,G2.In1) then to G2.In1 - -# Upper And inputs to output bus -for_(1,4,1, - `line left eval(5-m4x)*del from G3.In`'m4x - arrow to (Here,TOL) ') - - line from B2.Out to (G3.In1,B2)-(4*del,0) ; dot - line from B4.Out to (G3.In2,B4)-(3*del,0) ; dot - line from B6.Out to (G3.In3,B6)-(2*del,0) ; dot - line from G1.Out to (G3.In4,G1)-(del,0) ; dot - -# Lower And inputs - line left 4*del from G5.In1 ; dot - line left 3*del from G5.In2 ; dot - line left 2*del from G5.In3 ; dot - line from G2.Out to G5.In4 ; dot(at (TOL,Here)) ; arrow to (Here,TOL) - -# Fix up G4, G6, G7 - line from G3.Out to G4.In1 - line right del from G4.Out - {dot; line right del - "Q7" wid 0.2 ljust; move right 0.2 } # letters in object - line down 2*del then to G6.In1+(-del,del) - line to (Here,G6.In1) then to G6.In1 - line from G4.In2 to (G6.In1+(-del,0),G4.In2) - line down del then to G7.Out+(del,2*del) - line to (Here,G7) then to G7.Out - line from G6.Out right del ; line to (Here,G7.In1) then to G7.In1 - line from G5.Out to G7.In2 - line left del from G6.In2 ; arrow to (Here,TOL) - dot(at (Here,C)) ; line to B7.Out - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex09SVG.m4 b/graphics/circuit_macros/examples/svg/ex09SVG.m4 deleted file mode 100644 index b267c68ea0..0000000000 --- a/graphics/circuit_macros/examples/svg/ex09SVG.m4 +++ /dev/null @@ -1,131 +0,0 @@ -.PS -# ex09.m4 -# Illustrating the arguments of the `dimension_' and `arcdimension_' macros. -gen_init(svg_font(sans-serif,10bp__,3bp__)) -scale = 25 - -define(`spacer',` -[ -linethick_(1.0) - - WC: circle diameter 4.22 at 0,0 - EC: circle same at 30.15,0 - NC: circle diameter 2.36 at 13.28, 10.92/2 - SC: circle same at 13.28,-10.92/2 - - C: 0.5<WC,EC> # spacer centre - h = 27.26 # spacer height - s = 4.22/2 # small arc radius - r = h/2*0.80 # large arc radius - Cr: C+(0,h/2-r) # upper arc centre - e = s # small arc centre offset from small circle - Cs: EC+(e,0) # right arc centre - -# Tangent points Tr and Ts to circles at Cr and Cs - dx = Cr.x-Cs.x; dy = Cr.y-Cs.y; dsq = dx*dx+dy*dy - Tr: (r*(r-s)/dsq)<Cr,Cs> + (vscal_(r*sqrt(dsq-(r-s)^2)/dsq,dy,-dx)) - Ts: (s/r)<Cr,Tr>-(dx,dy) - - line from Tr to Ts - arc cw to (Ts.x,-Ts.y) with .c at Cs -E: last arc.e - line to (Tr.x,-Tr.y) - arc cw to (C.x-(Here.x-C.x),Here.y) with .c at (Cr.x,-Cr.y) -S: last arc.s - line to (Cs.x-Ts.x-s,Cs.y-Ts.y) - arc cw to (Here.x,-Here.y) with .c at (-e,0) -W: last arc.w - line to (C.x-(Tr.x-C.x),Tr.y) - arc cw to Tr with .c at Cr -N: last arc.n - -thinlines_ - dimension_(from S+(2,0) to N+(2,0),-(E.x-C.x+4),27.76, 5) - dimension_(from SC.n+(0,2) left SC.x-WC.x, (SC.n.y-S.y+3), 13.28, 10) - dimension_(from WC.n+(0,2) right EC.x-WC.x,-(WC.n.y-S.y+7), 30.15, 10) - dimension_(from W+(0,-1.5) to E+(0,-1.5), -(C.y-S.y+8), 41.28, 10) - dimension_(from SC.e+(2,0) up NC.y-SC.y, (SC.e.x-W.x+8),"10.92" wid 10, 5) - - arrow <- from EC left 6 up 16 chop EC.rad chop 0 - line left 4 "4.22 (2) PL" above - arrow <- from NC up last line.y-NC.y+7/8 left 8 chop NC.rad chop 0 - {"2.36" above} - arrow to SC chop 0 chop SC.rad - -] ') - -define(`sk',`scale*0.7') - -define(`bdot', - `dot(`$1',,0.5) - "svg_it($2)" $1 $3 ') - - thinlines_ - - move right 0.8 - -# Upper left diagram - spacer - -# Lower left diagram -[ define(`lwid',`29bp__') -A: bdot(at (0,0),A,below) -B: bdot(at (2*sk,0),B,below) -Ctr: 0.5 between A and B - move up 1*sk from A -L: move left 0.85*sk from A - - linethick_(1) - dimension_(from A to B,0.5*sk,svg_it(label),lwid,0.1*sk) - "`dimension_(from A to B,0.5,label,29bp__,0.1)'" wid 70 \ - with .w at (L.end.x+2,A.y-10) - move down_ 4 from last "" - - thinlines_ - arrow from A to B chop 0.05*sk "svg_it(linespec)" below - dimension_(up_ 0.5*sk from A,0.2*sk,"svg_it(offset)" rjust,,,->) - dimension_(up_ 0.1*sk from B,-0.2*sk," svg_it(tic offset)" ljust) - dimension_(up_ 0.1*sk from B+(0,0.5*sk),-0.2*sk, - " svg_it(tic offset)" ljust) - dimension_(from Ctr+(-lwid/2,0.5*sk) right lwid,0.2*sk, - "svg_it(blank width)" above) -] with .nw at last [].sw+(0,-0.4*sk) -#showbox_ - -# Upper right diagram -[ A: bdot(at (0,0),A, above rjust) - B: bdot(at (2*sk,0),B, above ljust) - C: bdot(at (0,-1.5*sk),C, above rjust) - D: bdot(at (2*sk,-1.5*sk),D, above ljust) - -T: C+(-1*sk,-0.5*sk) -T: C+(-0.45*sk,-0.5*sk) - dimension_(from A to B,0.3*sk,svg_it(AB),20bp__) - dimension_(from C to B chop dotrad_,,svg_it(X),16bp__) - dimension_(from C to A,0.3*sk,svg_it(CA),14bp__,,->) - dimension_(from D to B,-0.3*sk,"svg_it(DB)" ljust) - dimension_(from C to D chop dotrad_,,svg_it(T`'svg_sub(15)),15bp__) - arcdimension_(from C to D with .c at 0.5 between A and B,12bp__, - svg_it(C) to svg_it(D),34bp__) -Q: C+(-9,-15) - -`define' leftparagraph { [ baselineskip = textht*1.5; { move right $1 } - for i = 2 to $+ do { - move to Here+(0,-baselineskip) - exec sprintf("{ `\"$%g \"' wid 4.5*scale ljust }; ",i) } ] } - -leftparagraph(1.7*scale; baselineskip = 1.5*textht, - `dimension_(from A to B,0.3,AB,20bp__)', - `dimension_(from C to B,,X,16bp__)', - `dimension_(from C to A,0.3,CA,14bp__,,->)', - `dimension_(from D to B,-0.3,"DB" ljust)', - `dimension_(from C to D chop dotrad_,,T`'svg_sub(15),15bp__)', - `arcdimension_'svg_symbol(&`#'40;)`from C to D with .c at 0.5 \ - between A and B'svg_comma`12bp__'svg_comma, - svg_ensp `C to D'svg_comma`34bp__'svg_symbol(&`#'41;) - ) with .nw at Q - -] with .nw at 1st [].ne+(1.7*sk,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex10SVG.m4 b/graphics/circuit_macros/examples/svg/ex10SVG.m4 deleted file mode 100644 index 0c707781b3..0000000000 --- a/graphics/circuit_macros/examples/svg/ex10SVG.m4 +++ /dev/null @@ -1,62 +0,0 @@ -.PS -# ex10.m4 -cct_init(svg_font(sans-serif,11bp__)) - -[ - dt = 360/5 - r = 0.75 - - N0: dot(at (Rect_(r,90))) - N1: dot(at (Rect_(r,(90-dt)))) - N2: dot(at (Rect_(r,(90-2*dt)))) - N3: dot(at (Rect_(r,(90-3*dt)))) - N4: dot(at (Rect_(r,(90-4*dt)))) - - line from N0 to N1 then to N2 then to N3 then to N4 then to N0 - L14: line from N1 to N4 - L24: line from N2 to N4 - C02: crossover(from N0 to N2,,L14) - C13: crossover(from N1 to N3,,C02,L24) - C03: crossover(from N0 to N3,,L14,L24) - ] - -[ -move right 0.5 - up_ -setrgb(255,0,0) -Q1: bi_tr(,R) # Q1 upward with base to the right - llabel(,Q`'svg_sub(1)) - resetrgb # Label to left of last [] -setrgb(0,0,255) -Q2: bi_tr with .C at Q1.C+(elen_*7/4,0) # Q2 with base to left - rlabel(,Q`'svg_sub(2)) - resetrgb - move right 0.5 - - ground(at Q1.E) - ground(at Q2.E) - - line right_ dimen_/3 from Q1.B # Extend the base conductors -B1: Here - line left_ dimen_/3 from Q2.B -B2: Here - - resistor(up_ elen_*0.75 from Q1.C); llabel(,R`'svg_sub(L)) # Load resistors - line to (Q2.C,Here) "svg_it(V`'svg_sub(svg_norm(cc)))" below - resistor(down_ to Q2.C); llabel(,R`'svg_sub(L)) - - move to Q1.C+(0,dimen_/5) - { resistor(right_ to (B1,Here)); llabel(,R`'svg_sub(1)) -X: line to B2 } # Label the line to be jumped - resistor(from (Q2.C,Here) left_ to (B2,Here)); rlabel(,R`'svg_sub(1)) - crossover(to B1,R,X) - - resistor(down_ elen_*0.75); rlabel(,R`'svg_sub(2)) # Bias resistors - {"svg_it(-V`'svg_sub(svg_norm(cc)))" rjust} - line to (B2,Here) - resistor(up_ to B2); rlabel(,R`'svg_sub(2)) - ] with .sw at last [].se+(0.75,0) - - command "</g>" # end font - -.PE diff --git a/graphics/circuit_macros/examples/svg/ex11SVG.m4 b/graphics/circuit_macros/examples/svg/ex11SVG.m4 deleted file mode 100644 index cca63ef176..0000000000 --- a/graphics/circuit_macros/examples/svg/ex11SVG.m4 +++ /dev/null @@ -1,75 +0,0 @@ -.PS -# ex11.m4 -cct_init(svg_font(sans-serif,11bp__,1bp__)) - - "audio" ljust - { arrow down_ elen_/4} - resistor(down_ 2*elen_) ; llabel(R`'svg_sub(17)) -G: ground - capacitor(right_ dimen_ from last [].c) ; rlabel(,C`'svg_sub(19)) - {arrow <- right_ arrowht from last line.start} - { resistor(down_ to (Here,G)); rlabel(,R`'svg_sub(19)) } -{R18: resistor(up_ elen_*1.2); llabel(,R`'svg_sub(18)) } - - line right_ elen_/4 ; up_ -Q4: bi_tr(,,,E) with .B at Here; llabel(,,Q`'svg_sub(4)) - resistor(down_ from Q4.E to (Q4.E,G)); rlabel(,R`'svg_sub(21)) - resistor(up_ from Q4.C to (Q4.C,R18.end)); llabel(,R`'svg_sub(20)) - line up_ elen_/4; dot; "svg_it(V`'svg_sub(CC))" ljust - -T1: Q4.C+(0,elen_/8) - - capacitor(right_ dimen_ from T1); llabel(,C`'svg_sub(20)) - { capacitor(down_ 0.5*(Here.y-G.y)); rlabel(,C`'svg_sub(21)) - resistor(right_ elen_); llabel(,R`'svg_sub(23)) - arrow <- from last [] to (last [],G) - } - resistor(right_ elen_); llabel(,R`'svg_sub(22)) - { resistor(down_ 0.5*(Here.y-G.y)); llabel(,R`'svg_sub(24)) - capacitor(down_ to (Here,G)); llabel(,C`'svg_sub(22)) } - - capacitor(right_ dimen_); llabel(,C`'svg_sub(23)) - { capacitor(down_ to (Here,G)); rlabel(,C`'svg_sub(24)) } - line right_ elen_/2 -Q5I: Here - line right_ elen_/4 ; up_ -Q5: bi_tr(,,,E) with .B at Here; rlabel(,Q`'svg_sub(5)) -R27: resistor(down_ dimen_ from Q5.E); rlabel(,R`'svg_sub(27)) - line to (Here,G) - resistor(from Q5I down_ Q5I.y-R27.end.y-elen_/12); rlabel(,R`'svg_sub(25)) - { capacitor(to (Here,G)); llabel(,C`'svg_sub(25)) } - - crossover(to (R27,Here)+(hoprad_,0),,R27) -R28: resistor(right_ elen_-hoprad_); llabel(,R`'svg_sub(28)) - resistor(down_ to (Here,G)); rlabel(,R`'svg_sub(30)) - line to G - - resistor(up_ from Q5.C to (Q5.C,R18.end)); llabel(,R`'svg_sub(26)) - line to R18.end - - up_ -Q6: bi_tr(,,,E) with .E at (R28.end.x,Q5.E.y+(T1.y-Q4.B.y)); llabel(,,Q`'svg_sub(6)) - - line from Q6.B to (Q5.C,Q6.B) - resistor(down_ from Q6.E to R28.end); rlabel(,R`'svg_sub(29)) - - line right_ dimen_*3/4 from Q6.C - - { R31: resistor(down_ elen_); circle diam dimen_*0.8 with .c at last line.c - "svg_it(R`'svg_sub(31))" below at last circle.sw - "svg_it(V)" below at last line.c+(dimen_/4,0) } - line right_ dimen_ - { capacitor(down_ elen_); rlabel(,,C`'svg_sub(26)) - line down_ elen_/4; dot; "svg_it(V`'svg_sub(SS))" ljust } - line right_ dimen_/2 -T6: transformer(down_ elen_) with .P1 at Here - line from T6.P2 to R31.end - {"svg_it(T`'svg_sub(6))" at T6.n above } - line right_ elen_/3 from T6.S1 - inductor(down_ elen_,W) - line to T6.S2 - - speaker(R) with .Box.w at last [].e+(dimen_/8,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex12SVG.m4 b/graphics/circuit_macros/examples/svg/ex12SVG.m4 deleted file mode 100644 index 1dfa749b7a..0000000000 --- a/graphics/circuit_macros/examples/svg/ex12SVG.m4 +++ /dev/null @@ -1,136 +0,0 @@ -.PS -# ex12.m4 -cct_init(svg_font(sans-serif,11bp__)) - -[ - fetht = dimen_*0.9 - -G: ground -Q4: e_fet(up_ fetht) with .S at G -Q3: e_fet(up_ fetht) with .S at Q4.D - -Q2: e_fet(down_ fetht,R,P) with .G at Q3.Channel+( dimen_*0.25,dimen_*1.8) -Q1: e_fet(down_ fetht,R,P) with .G at Q2.G + (-dimen_*1.25,0) - - line left_ dimen_ from Q3.G -A: dot; "svg_it(A)" wid 0.15 rjust - line left_ dimen_ from Q4.G -B: dot; "svg_it(B)" rjust - - line from Q1.G to (Q1.G,Q3.D) then to (Q1.Channel,Q3.D) \ - then to (Q1.Channel,B);dot - line from Q2.G to (Q3.Channel,Q2.G) then to (Q3.Channel,Q3.D) \ - then to (Q3.G,Q3.D) then to Q3.G;dot - line from Q1.D to Q2.D - line from Q1.S to Q2.S - dot(at (G,Q1.S)) ; line up dimen_/3 ; "+5 V" rjust - line from Q3.D to (Q3.D,Q2.D);dot - dot(at Q3.D) - line right_ dimen_ ; dot ; "svg_it(~(AB))" above -] - -[ - del = dimen_/3 - -define(`pair',`[ -Q1: c_fet(up_ dimen_,,P) - line right dimen_*2/3 from Q1.D - {dot(at last line.c); reversed(`source',up_ dimen_,I); Rail: Here - line right dimen_/2 with .c at Here} -Q2: c_fet(up_ dimen_,R,P) with .D at Here - line down del*2 from Q2.S - resistor(down_ dimen_) -Gnd: ground(,T,S) - ]') - -P1: pair -Rail: P1.Rail -Vc: dot(at P1.Q2.S+(0,-del)); "svg_it(V`'svg_sub(c))" rjust - line from P1.Q1.G to (P1.Q1.G,Rail)+(0,del/2); "svg_it(S+)" ljust - - line right_ del from P1.Q2.G - {dot(at last line.c); line up del; "svg_it(V`'svg_sub(ref))" above} - pht = P1.Rail.y-P1.Gnd.y - -P2: pair with .Q1.G at Here -Vcp: dot(at P2.Q2.S+(0,-del*2)); {"svg_it(V`'svg_sub(c'))" above rjust} - {line to (P1.Q1.S,Here) then to P1.Q1.S} - line from P2.Q2.G to (P2.Q2.G,Rail)+(0,del/2); "svg_it(S-)" rjust - - line from Vc to (P2.Q1.S,Vc) then to P2.Q1.S - -define(`cpair',`[ -Rail: line right dimen_/2 -Q1: c_fet(up_ dimen_,,P) with .D at last line.c -Q2: c_fet(up_ dimen_) with .S at Rail+(0,-pht) - ground(at Q2.S,T,S) - line from Q1.G to Q2.G - line from Q1.S to Q2.D - ]') - -S1: cpair with .Rail at P2.Rail+(P2.Q2.G.x-P2.Rail.x+P2.Q2.G.x-P2.Q2.D.x+del,0) -S2: cpair with .Q1.G at (S1.Q1.D.x+del,S1.Q1.G.y) -S3: cpair with .Rail at 2 between S1.Rail and S2.Rail - - line from Vcp to (S2.Q2.G,Vcp); dot - dot(at (S2.Q2.D,Here)); line to (S3.Q2.G,Here); dot - dot(at (S3.Q2.D,Here)); arrow right del - "svg_it(e`'svg_sub(2))" ljust - dot(at P2.Q1.S); line to (S1.Q1.G,Here); dot - dot(at (S1.Q2.D,Here)); arrow to (last arrow.end,Here) - "svg_it(e`'svg_sub(1))" ljust - - -] with .sw at last [].se+(0.25,0) - -[ - elen=0.2 - -VDD: dot; llabel(,V`'svg_sub(DD),) - line down_ elen/2 -P1: mosfet(up_,,ZSDFdTX,) with .D at Here - -MIDDLE: line from P1.S down_ elen/2 - -N1: mosfet(up_,,ZSDFTX,) with .D at Here -N2: mosfet(up_,,ZSDFTX,) with .D at N1.S - ground(at N2.S) - -ING: P1.G+(-elen/2,0) - - line from P1.B right_ elen * 2/5 then down_ elen * 4/5 - line to (ING, Here) - dot - - line from N1.B right_ elen * 2/5 then up_ elen * 4/5 - line to (ING, Here) - dot - - line from N1.G to (ING,N1.G) - dot - - line from N2.G to (ING,N2.G) then to ING then to P1.G - - dot(at (ING,MIDDLE)) - line left_ elen*2 - "svg_it(V`'svg_sub(in))" above - - dot(at MIDDLE) - line right_ elen*2 - { "svg_it(V`'svg_sub(out))" wid 0.25 above } - - line from N2.B to (Here,N2.B) - "svg_it(V`'svg_sub(BB))" above - -PUNT:dot(at 0.5 between N1.S and N2.D) - - "svg_it(V`'svg_sub(x))" ljust - - "svg_it(P`'svg_sub(1))" at P1.Channel.end above rjust - "svg_it(N`'svg_sub(1))" at N1.Channel.start below rjust - "svg_it(N`'svg_sub(2))" at N2.Channel.start below rjust - -] with .sw at last [].se - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex15SVG.m4 b/graphics/circuit_macros/examples/svg/ex15SVG.m4 deleted file mode 100644 index ca15109fa9..0000000000 --- a/graphics/circuit_macros/examples/svg/ex15SVG.m4 +++ /dev/null @@ -1,40 +0,0 @@ -.PS -# ex15.m4 -gen_init - -[ -n = 10; r = 1 -for i = 1 to n-1 do { - for j = i+1 to n do { - line from rect_(r,i*twopi_/n) to rect_(r,j*twopi_/n) - } - } - ] -[ - linethick = 2.5 - lt = linethick bp__ - crad = 1.0 - C: circle rad crad - g = 0.65 - D: C+(Rect_(crad*g,110)) - rm = crad+distance(C,D) - for r=lt to rm by 2*lt do { - if r < (1-g)*crad then { circle rad r at D thick r/rm*linethick } \ - else { arc cw from Cintersect(D,r,C,crad) \ - to Cintersect(D,r,C,crad,R) with .c at D thick r/rm*linethick } - } - linethick = 1.5 - lt = linethick bp__ - C: circle invis rad crad with .w at C.e+(0.1,0) - D: C+(Rect_(crad*g,110)) - rm = crad+distance(C,D) - for r=lt to rm by lt do { - u = (1-r/rm) - if r < (1-g)*crad then { rgbdraw(u,u,u,circle rad r at D) } \ - else { rgbdraw(u,u,u,arc cw from Cintersect(D,r,C,crad) \ - to Cintersect(D,r,C,crad,R) with .c at D) } - } - circle rad C.rad at C - ] with .w at last [].e+(0.1,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/ex16SVG.m4 b/graphics/circuit_macros/examples/svg/ex16SVG.m4 deleted file mode 100644 index 70a7d00e28..0000000000 --- a/graphics/circuit_macros/examples/svg/ex16SVG.m4 +++ /dev/null @@ -1,70 +0,0 @@ -.PS -# ex16.m4 -cct_init(svg_font(sans-serif,11bp__)) - -[ -define(`elen_',linewid*1.2) - circlerad = delay_rad_ - {"input" above ljust} - line right_ -J: Here - delay -K: Here - delay -L: Here -S1: circle "+" at (K.x,K.y+linewid) -S2: circle "+" at (L,S1) - arrow up_ S1.y-J.y from J then to S1.w - arrow from K to S1.s - arrow from S1.e to S2.w - arrow from L to S2.s -S3: circle "+" at (L.x,L.y-linewid) - arrow down_ J.y-S3.y from J then to S3.w - arrow from L to S3.n - arrow from S2.e right_ linewid/2 then down_ (S2.y-S3.y)/2-circlerad \ - then right_ linewid/2 - arrow from S3.e right_ linewid/2 then up_ (S2.y-S3.y)/2-circlerad \ - then right_ linewid/2 - "output" at 0.5<last arrow.end, 2nd last arrow.end> - ] -[ - circlerad = 0.35/2 - d = linewid*1.75 - S00: circle "00" - S10: circle "10" at S00+(d,d) - S01: circle "01" at S00+(d,-d) - S11: circle "11" at S01+(d,d) - dx = circlerad*cosd(60) - dy = circlerad*sind(60) - brad = circlerad*1.3 - qrad = circlerad*6 - - arc -> cw from S00+(-dx,-dy) to S00+(-dx,dy) rad brad \ - with .c at S00-(dx+sqrt(brad^2-dy^2),0) - "0/00" at last arc.w rjust - right - arc -> cw from S00+(dx,dy) to S10+(-dy,-dx) rad qrad - "1/11" at last arc.nw rjust above - right - arc -> cw from S10+(dy,-dx) to S11+(-dx,dy) rad qrad - "1/01" at last arc.ne ljust above - up_ - arc -> cw from S11+(dx,dy) to S11+(dx,-dy) rad brad \ - with .c at S11+(dx+sqrt(brad^2-dy^2),0) - "1/10" wid 0.3 at last arc.e ljust - down_ - arc -> cw from S11+(-dx,-dy) to S01+(dy,dx) rad qrad - "0/01" at last arc.se ljust below - left_ - arc -> cw from S01+(-dy,dx) to S00+(dx,-dy) rad qrad - "0/11" at last arc.sw rjust below - up_ - arc -> cw from S01+(-dx,dy) to S10+(-dx,-dy) rad qrad*2 - "1/00" at last arc.w rjust - down_ - arc -> cw from S10+(dx,-dy) to S01+(dx,dy) rad qrad*2 - "0/10" at last arc.e ljust - ] with .sw at last [].se+(0.4,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex17SVG.m4 b/graphics/circuit_macros/examples/svg/ex17SVG.m4 deleted file mode 100644 index fbe892f147..0000000000 --- a/graphics/circuit_macros/examples/svg/ex17SVG.m4 +++ /dev/null @@ -1,44 +0,0 @@ -.PS -# ex17SVG.m4 -cct_init(svg_font(sans-serif,11bp__,0bp__)) - -[ -nrows = 4 -ncols = 9 -linewid = linewid*0.6 # everything smaller -define(`elen_',linewid) # shorter default length - - for j = 1 to nrows do { - { for i = 1 to ncols do { - Point_(-120) resistor - Point_( 0) inductor - Point_( 120) capacitor - if i < ncols then {Point_(0) diode} } - } - Point_(-120) move to rvec_(elen_,0) - { for i = 1 to ncols do { - Point_(-60) capacitor - Point_( 60) resistor } - } - Point_(-60) move to rvec_(elen_,0) - } - Point_(0) for i = 1 to ncols-1 do { inductor } -] - -[ - down_ - Point_(-80) - - parallel_(Sep=1.75*dimen_; - parallel_(`capacitor(,C); rlabel(,,C`'svg_sub(2))', - `resistor; llabel(,R`'svg_sub(2))' ), - parallel_(`resistor; rlabel(,R`'svg_sub(1)); move to rvec_(-dimen_/5,0) - inductor(,W); rlabel(,L`'svg_sub(1))', - `reversed(`source',to rvec_(elen_,0),V,sourcerad_*2.5) - rlabel(,v`'svg_sub(s))' ) - ) - move left 0.2 from last [].w -] with .sw at last [].se+(elen_,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex18SVG.m4 b/graphics/circuit_macros/examples/svg/ex18SVG.m4 deleted file mode 100644 index c14e7c4616..0000000000 --- a/graphics/circuit_macros/examples/svg/ex18SVG.m4 +++ /dev/null @@ -1,40 +0,0 @@ -.PS -# ex18.m4 -cct_init(svg_font(Times,11bp__)) - -[ - "svg_it(v`'svg_sub(i))" wid 0.1 rjust; dot - resistor(right_ dimen_) ; llabel(,svg_it(R`'svg_sub(i))) -T: dot - line right_ linewid/4 -A: opamp with .In1 at Here - - line from A.In2 to (T,A.In2) - resistor(down_ dimen_) ; rlabel(,svg_it(R`'svg_sub(g))) - ground(,T) - - line right_ dimen_ from A.Out - diode(up_ dimen_); dot - {line right_ linewid/2; dot; "svg_it(v`'svg_sub(o))" wid 0.2 ljust } - resistor(left_ to (A.Out,Here)) ; rlabel(,svg_it(R`'svg_sub(o))); dot - { diode(down_ to A.Out); dot } - line to (T,Here) then to T - ] -[ -# ex19.m4 -define(`dimen_',dimen_*1.25) - -B: battery(up_ dimen_*2/3); rlabel(,V) - move down dimen_/4 - resistor(up_ dimen_); rlabel(,R,) - {move up textht*1.5 } - inductor(right_ elen_); b_current(i); rlabel(,L) - { capacitor(down_ to (Here,B.start)); rlabel(,C); llabel(+,v,-) } - line right_ dimen_ - diode(down_ to (Here,B.start),T); b_current(h(v)) - { move right 0.3} - line to B.start - ] with .nw at last [].ne+(20bp__,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/ex21SVG.m4 b/graphics/circuit_macros/examples/svg/ex21SVG.m4 deleted file mode 100644 index b9aa8ac18d..0000000000 --- a/graphics/circuit_macros/examples/svg/ex21SVG.m4 +++ /dev/null @@ -1,66 +0,0 @@ -.PS -# ex21SVG.m4 -log_init(svg_font(sans-serif,11bp__)) - -dy = 0.2 -ddy = 1.8*dy -textht = textht*0.9 - -D: FlipFlop(D) -T: FlipFlop(T) with .Chip.sw at last [].se + (0.4,0) -RS: FlipFlop(RS) with .Chip.sw at last [].se + (0.4,0) -JK: FlipFlop(JK) with .Chip.sw at last [].se + (0.4,0) - `"FlipFlop(JK)"' at JK.s below - `"FlipFlop(RS)"' at (RS.s,JK.s) below - `"FlipFlop(T)"' at (T.s,JK.s) below - `"FlipFlop(D)"' at (D.s,JK.s) below - -# Test 3: synchronous 3-bit counter -define(`counterFF',``$1':FlipFlop(JK) `$2' - "`$1'" at `$1'.Chip.sw-(3bp__,0) below ljust - "1" at `$1'.PinCLR.end above - "1" at `$1'.PinPR.end below') - -[ -right_ - counterFF(FF0) - counterFF(FF1,with .Chip at FF0.Chip+(-28*L_unit,0)) - counterFF(FF2,with .Chip at FF1.Chip+(-28*L_unit,0)) - "1" at FF0.PinJ.end rjust - "1" at FF0.PinK.end rjust -Dc: FF2.Chip.sw+(-9*L_unit,-7.5*L_unit) -Bot: Dc+(0,-3*L_unit) - -left_ -GAnd: AND_gate at FF1.Chip.nw+(4*L_unit,12*L_unit) -right_ - - line from FF2.PinCK.end left 3*L_unit - line to (Here,Dc); dot - line from FF1.PinCK.end left 3*L_unit - line to (Here,Dc); dot - line from FF0.PinCK.end left 3*L_unit - line to (Here,Dc) then to Dc - "svg_it(D`'svg_sub(C))" rjust - - line from FF2.PinK.end to FF2.PinJ.end; dot - line to (Here,GAnd.Out) then to GAnd.Out - - line from FF1.PinK.end to FF1.PinJ.end; dot - line to (Here,FF1.PinCLR.end+(0,3*L_unit)) - line to (GAnd.In2+(6*L_unit,0),Here) then to GAnd.In2+(6*L_unit,0); dot - - line from FF0.PinQ.end right 0.1; dot - line from GAnd.In2 to (Here,GAnd.In2) then to (Here,Bot) - "svg_it(D`'svg_sub(00))" below - - line right 0.1 from FF1.PinQ.end; dot - line from GAnd.In1 to (Here,GAnd.In1) then to (Here,Bot) - "svg_it(D`'svg_sub(01))" below - - line right 0.1 from FF2.PinQ.end - line to (Here,Bot); "svg_it(D`'svg_sub(02))" below - ] with .n at 0.5<2nd[].s,3rd[].s> - (0,0.4) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/examplesSVG.htmx b/graphics/circuit_macros/examples/svg/examplesSVG.htmx deleted file mode 100644 index af8a15f840..0000000000 --- a/graphics/circuit_macros/examples/svg/examplesSVG.htmx +++ /dev/null @@ -1,731 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<HTML> -<HEAD> -<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<meta http-equiv="Content-Style-Type" content="text/css"> -<!--meta http-equiv="Content-Script-Type" content="text/javascript"--> -<TITLE>SVG Examples: Circuit_macros Version XXX</TITLE> -<meta name="keywords" content="HTML" -content='Circuit elements, basic circuits, logic circuits and other diagrams, -electric circuits, resistor, capacitor, inductor, diode, sources, amplifier, -integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack, -plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer, -optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply, -NAND gate, controlled source, synchronous machine, digital circuit, signal-flow -graph, latch, decoder, flipflop, full adder, logic diagram, crossbar switch, -dimensioning, control system, graph, RGB colors, recursion, binary tree, -flowcharts, picture overlay, ASME Y14.5' > - -<style type="text/css"> -</style> -<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" /> -</HEAD> - -<!-- --------------------------------------------------------------------- -define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1, - `ifinstr(shift(shift(shift($@))))',`$3')') - -define(`m4tt',`<g style="font-family:monospace">') - -define(`cfig',` -<p> - -<!--[if lte IE 8]><embed src="$1.svg" sinclude($1.siz)><![endif]--> - -<!--[if gte IE 9]> -<object dx="4" data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img"> - </object> <![endif]--> - -<!--[if !IE]><!--> -<object data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img"> - </object> <![endif]--> - -<br><br> -ifelse(`$2',,,` -<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4:</a> -`$2' changecom(,)&`#'8194;changecom(`#')') - -</p> -ifinstr(`$3',y,,`<hr>')') - ---------------------------------------------------------------------- --> - -<BODY> -<table cellpadding="0" cellspacing="0" - width="700px" border="0" align="center" ><tr><td> - -<H2>SVG Circuit_macros examples, Version XXX</H2> - -<A HREF="../../index.html">Home</A> -> -<A HREF="examples.html">Examples</A> -> -<A HREF="examplesSVG.html">SVG</A> - -<hr> - -<p> - This file shows diagrams in .svg format; - <A HREF="examples.html">png</A> - versions are also available. - The PDF equivalent can be found in examples.pdf of the distribution. -</p> - -<p> -The diagrams shown below have been adapted from the Circuit_macros -examples in order to test the svg output of dpic. Generating svg line -art is straightforward, but TeX, LaTeX, and related word -processors do not produce svg. Either less-sophisticated text formatting -must be employed or an - <A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats"> - intermediate format</A> -such as pdf can be -produced, followed by an additional processing step to convert to svg. -Two possibilities for the latter are - <A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm</A> -and - <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>. -Many circuit and similar diagrams intended for the web do not -require sophisticated labels, however; the examples shown below might -be representative. -</p> -<p> - Click on the link to view the source of each diagram. -</p> -<hr> -<p> -There are other issues: -<ul> - <li> Embedding .svg files in html documents with the <embed> or - <object> tag seems to be a perennial issue. - <li> This file has been tested mainly by using Firefox. - <li> The Adobe reader apparently requires a line of the form - <br> <embed src="figure.svg" width="x" height="y" type="image/svg+xml" - /> - This means that the html file has to contain dimension - information for each figure, whereas Firefox can - determine the figure size - from the <svg ... object. Currently, dpic includes a comment line - giving reasonable dimensions in pixels but this has to be insterted into - the <embed or <object line. A makefile does it easily but - otherwise this could be tedious. - <li> The default font face is not specified in all of these diagrams but is - inherited from the enclosing document, so the appearance of labels can - differ depending on the browser. Some of these diagrams set the font at - the beginning of the diagram source. - <li> The <svg tag may require modification - from the default used for this test. Dpic might be modified to - allow the generation of custom headers but that has not been done. - <li> Diagrams such as these contain text labels - that have to be treated differently from the LaTeX-compatible versions. - Apparently there is no direct way to know the bounding box of arbitrary svg - text. - <!-- text, as discussed - <a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a> - for example. --> - Consequently, text placement is approximate and may require - manual adjustment. - Rather than patch the original source files for svg production, edited copies - have been used. The configuration file svg.m4 read by m4 - prior to libcct.m4 contains the following macros defined for svg. - Others could be defined to exercise some of the media capabilties of svg. - They are subject to change: - <ul> - <li> - m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset, - dpic commands`'m4tt)</g>: - Change font face, size, textratio and dpic textoffset parameters. - Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>, - and m4tt`'textoffset</g> parameters. - If arg4 is blank, the font is changed and - requires m4tt`'command "</g>"</g> to cancel the font change. - <br> - Note: - Nominal height = text height in drawing units; actual height = - nominal ht x m4tt`'dptextratio</g>. - <br> - Examples: <br> - m4tt`'svg_font(Times)</g><br> - m4tt`'svg_font(Times,14bp__)</g><br> - m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br> - m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br> - m4tt`'svg_font(font-family="Times")</g><br> - m4tt`'svg_font(font-family="Times" font-style="italic")</g><br> - m4tt`'svg_font(style="font-family:Times; font-style:italic")</g> - <li>m4tt svgfontratio(</g>font name`'m4tt)</g>; - Reasonable m4tt`'dptextratio</g> value for common fonts, used - by m4tt`'svg_font</g>. - <li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>; - e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g> - <li>m4tt svg_it(</g>text`'m4tt)</g>: for italics - <li>m4tt svg_tt(</g>text`'m4tt)</g>: for monospace (courier) - <li>m4tt svg_sf(</g>text`'m4tt)</g>: sans-serif (Helvetica) - <li>m4tt svg_norm(</g>text`'m4tt)</g>: for normal text - <li>m4tt svg_bf(</g>text`'m4tt)</g>: for bold face - <li>m4tt svg_small(</g>text, percent`'m4tt)</g>: - to set a smaller text size, default 66 - <li>m4tt svg_fsize(</g>text, percent`'m4tt)</g>: - for setting larger or smaller text size, default 100 - <li>m4tt svg_sub(</g>text, size percent, y displ, x displ`'m4tt)</g>: - subscript - <li>m4tt svg_ul(</g>text`'m4tt)</g>: underlined text - <li>m4tt svg_ol(</g>text`'m4tt)</g>: overlined text - <li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>: - superscript - <li>m4tt svg_hat(</g>character`'m4tt)</g>: circumflex-accented character - <li>m4tt svg_frac(</g>numerator[:wid], denominator[:wid]`'m4tt)</g>: - basic fraction, wid in drawing units - <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>: - Rotate text degrees (default 90) ccw. - Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source - must be processed twice. - <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>: - filename is the basename of the output of - m4tt`'dpic -v filename.pic > filename.svg`'m4tt - <li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text, - e.g., m4tt`'svg_symbol(10&`#'176;)</g> produces 10° - <li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>: - link to external file using - <a xlink:href=...>...</a> (default is - m4tt`'target="_blank"</g> unless - arg 3 = B) - <li>m4tt svgLinkString</g> as above but for strings attached to objects - <li> Greek and other symbols: - -<!-- - Reference: - https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references - and - https://www.toptal.com/designers/htmlarrows/math/ - --> -<table cellpadding="2" cellspacing="0" width="75%" > -<tr> -<td width="10%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#') -<td width="10%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#') -<td width="10%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#') -<td width="10%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#') -<td width="10%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#') -<td width="10%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#') -<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#') -<td width="10%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#') -<td width="10%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#') -<td width="10%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#') -<td width="10%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#') -<td width="10%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#') -<td width="10%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#') -<td width="10%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#') -<td width="10%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#') -<td width="10%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#') -<td width="10%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#') -<td width="10%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#') -<td width="10%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#') -<td width="10%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#') -<td width="10%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#') -<td width="10%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#') -<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#') -<td width="10%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#') -<td width="10%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#') -<td width="10%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#') -<td width="10%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#') -<td width="10%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#') -<td width="10%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#') -<td width="10%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#') -<td width="10%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#') -<td width="10%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#') -<td width="10%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#') -<td width="10%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#') -<td width="10%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#') -<td width="10%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#') -<td width="10%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#') -<td width="10%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#') -<td width="10%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#') -<td width="10%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#') -<td width="10%"> m4tt svg_circ</g> <td align="left"> changecom(,)&`#'710;changecom(`#') -<td width="10%"> m4tt svg_deg</g> <td align="left"> changecom(,)&`#'176;changecom(`#') -<td width="10%"> m4tt svg_grave</g> <td align="left"> changecom(,)&`#'96;changecom(`#') -</tr> -</table> -<table cellpadding="2" cellspacing="0" width="75%" > -<tr> -<td width="8%"> m4tt svg_emsp</g> <td width="50px" align="left"> |changecom(,)&`#'8195;changecom(`#')| -<td width="8%"> m4tt svg_ensp</g> <td width="50px" align="left"> |changecom(,)&`#'8194;changecom(`#')| -<td width="8%"> m4tt svg_thinsp</g> <td width="50px" align="left"> |changecom(,)&`#'8201;changecom(`#')| -</tr> -</table> - - </ul> - <li> Inkscape: It may be efficient to define elements by macro and to - place them using a wysiwyg graphics editor. A draft page intended - for Inkscape is included. A reasonable variety of elements is defined - but many more could be added and they should be customized for - particular applications. Adjustments may also have to be made to - obtain the proper snap-to actions. - <li> Link experiments: Click on the resistor or source of quickSVG - to go to external - files in new windows. Click on "n-port" in NportSVG to replace the diagram - and then "back" to return. - <li> Some of the assumptions used to create this draft may be - na&`#'239;ve. - Comments are welcome. -</ul> - -<!-- -<embed pluginspage="http://www.adobe.com/svg/viewer/install/" /> ---> - -<hr> - -<table> -<tr> -<td width="50%"> -<table><tr>cfig(quickSVG, - SVG produced by dpic,y) -<!-- <tr> SVG produced by dpic --> </table> -<td> -<table><tr>cfig(quick, - SVG produced from quick.pdf by dvisvgm,y) -<!-- <tr> SVG produced from quick.pdf by dvisvgm --> </table> -</table> - -<hr> - -cfig(ResistorsSVG, - Resistors, showing some variations and the ebox) - -cfig(CapacitorsSVG, - Capacitors) - -cfig(InductorsSVG, - Inductors) - -cfig(DiodesSVG, - Diodes: appending a m4tt`'K</g> to the second argument draws an open - arrowhead) - -cfig(EmarrowsSVG, - Radiation arrows) - -cfig(VariableSVG, - Arrows and marks for showing variability) - -cfig(SourcesSVG, - Sources and source-like elements) - -cfig(AmpTableSVG, - Macros m4tt`'amp`,' delay</g>`,' and m4tt`'integrator</g>) - -cfig(FusesSVG, - Macros m4tt`'fuse</g> and m4tt`'cbreaker</g>) - -cfig(MoreTableSVG, - Additional two-terminal elements) - -cfig(GroundsSVG, - Ground symbols) - -cfig(SwitchesSVG, - The switch macros; m4tt`'switch(`,'`,'`,'L|B|D,attribs)</g> - is a wrapper for m4tt`'lswitch</g>`,' m4tt`'bswitch</g>`,' - and m4tt`'dswitch</g>) - -cfig(AntennasSVG, - Antenna symbols) - -cfig(OpampSVG, - The opamp) - -cfig(AudioSVG, - Audio elements) - -cfig(XformSVG, - Some variations of the transformer element`,' drawing direction down) - -cfig(NPDTSVG, - Double throw with the m4tt`'NPDT</g> macro) - -cfig(ContactSVG, - A non-exhaustive sampling of m4tt`'contact</g> macro variations) - -cfig(ContactsSVG, - The m4tt`'contacts</g> macro) - -cfig(relaycoilSVG, - The m4tt`'relaycoil</g> macro) - -cfig(RelaySVG, - Some variants of m4tt`'relay</g>) - -cfig(JackSVG, - The m4tt`'jack</g> and m4tt`'plug</g> macros) - -cfig(ConnSVG, - The m4tt`'tstrip`,' ccoax`,' tconn</g>`,' and m4tt`'tbox</g> macros) - -cfig(PconnSVG, - The m4tt`'pconnex</g> macro) - -cfig(EVplugsSVG, - Electric vehicle charging plug patterns make extensive - use of key=value pairs to set options) - -cfig(HeadersSVG, - The m4tt`'Header</g> macro) - -cfig(ConnectorsSVG, - Some integrated circuits and connectors with simple geometry - and lists of labels) - -cfig(ChipsSVG, - IC outlines) - -cfig(fetSVG, - FETs`,' showing programmable components and example customizations) - -cfig(ujtSVG, - UJT examples) - -cfig(thyristorSVG, - Thyristor examples. The thyristor is a 3- or 4-terminal - composite element) - -cfig(BipSVG, - Bipolar transistors (drawing direction: up)) - -cfig(TgateSVG, - The m4tt`'tgate</g> and m4tt`'ptrans</g> elements) - -cfig(NportSVG, - The m4tt`'nport</g> and m4tt`'nterm</g> macros) - -cfig(NLGSVG, - Some customizations of m4tt`'nport</g>) - -cfig(WindingsSVG, - The macro - m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>) - -cfig(ex01SVG, - Two simple labeled circuits) - -cfig(ex02SVG, - Elements at obtuse angles) - -cfig(OptoisoSVG, - Optical isolator: a circuit with right or left orientation) - -cfig(MixerSVG, - A balanced mixer`,' using m4tt`'mosfet</g> and a custom transformer) - -cfig(PushPullSVG, - A push-pull mixer`,' showing FETs with multiple gates) - -cfig(QuantumSVG, - A quantum circuit) - -cfig(SQUIDSVG, - Superconducting quantum interface device (drawing direction down)) - -cfig(SixpoleSVG, - A six-pole filter) - -cfig(ex18SVG, - Precision half-wave rectifier and a tunnel diode circuit - (illustrating m4tt`'opamp`,' diode`,' resistor`,' ground`,'</g> - and labels)) - -cfig(ex10SVG, - Non-planar graph and bistable circuit - (illustrating the m4tt`'crossover</g> macro and colored elements)) - -cfig(ThreeSVG, - Three-phase oscillator) - -cfig(MCSVG, - A three-phase switched AC-AC converter and a DC-DC converter) - -cfig(ex17SVG, - A repetitive network created by Pic looping and - a skewed circuit used to test the macro m4tt`'parallel_</g>) - -cfig(ex12SVG, - A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example) - -cfig(pwrsupplySVG, - An elementary power supply circuit with colored elements`,' - and a multiple-winding transformer with 3-phase rectifier) - -cfig(TTLnandSVG, - TTL NAND gate illustrating a transistor with multiple emitters) - -cfig(I2LSVG, - Gate circuit and equivalent embedded components - illustrating multiple collectors) - -cfig(SchottkySVG, - A 4-input NAND circuit illustrating the m4tt`'S</g> (Schottky) - option of m4tt`'bi_trans</g>) - -cfig(ex11SVG, - Transistor radio audio chain) - -cfig(ex04SVG, - Labels on non-manhattan elements) - -cfig(CsourceSVG, - Realization of a controlled source - (illustrating stacked element labels)) - -cfig(DriveSVG, - Synchronous machine driven by variable-speed drive and rectifier) - -cfig(ex16SVG, - A rate 1/2 binary convolutional coder and its state diagram) - -cfig(ex03SVG, - Digital filter) - -cfig(MotorControlSVG, - Motor control connections) - -cfig(RectifiersSVG, - Rectifier circuits and waveforms) - -cfig(HeathkitSVG, - The power supply of a Heathkit AR-15 (Now`,' <i>that</i> - was a receiver!) with custom transformer and other elements`,' - drawn on a grid (partially shown) to aid in placement) - -cfig(lcctSVG, - A digital circuit of moderate size`,' - redrawn from M. P. Maclenan and G. M. Burns`,' - "An Approach to Drawing Circuit Diagrams for Text Books`,'" - Tugboat (12)1`,' March 1991`,' pp. 66-69) - -cfig(TubediagsSVG, - Electron-tube diagrams: a few bottom-view base diagrams`,' - a generic triode test circuit`,' and a 25-watt audio amplifier adapted - from F. Langford-Smith`,' <i>Radiotron Designers Handbook</i>`,' fourth - edition`,' Harrison`,' NJ: Radio Corporation of America`,' 1952) - -cfig(UNOSVG, - An Arduino UNO circuit adapted and redrawn) - -cfig(sfgSVG, - Signal-flow graphs) - -cfig(LogicSVG, - Basic logic gates) - -cfig(ex08SVG, - General-purpose latch: a small logic circuit) - -cfig(DecoderSVG, - Decoder logic`,' constructed using the m4tt`'for_</g> macro) - -cfig(ex21SVG, - Some flip-flops) - -cfig(MultiplexerSVG, - Multiplexer) - -cfig(DemultiplexerSVG, - Demultiplexer) - -cfig(ShiftRSVG, - A 5-bit shift register drawn using a custom flip-flop) - -cfig(AdderSVG, - A full adder and a cascade of n-bit adders) - -cfig(CanLogicSVG, - A way of automatically drawing two-layer logic diagrams) - -cfig(AlogixSVG, - The m4tt`'Autologix(`'<i>Boolean expression</i>; - <i>Boolean expression</i>... `,' <i>options</i>)</g> - macro automatically draws Boolean expressions in function notation. - The function tree is drawn`,' then a row or column of inputs`,' then - the connections. The default result is on the left`,' - a custom element at the top`,' and a tree of gates only is shown - on the right.) - -cfig(ABlogixSVG, - The m4tt`'Autologix</g> macro can draw inputs on the left but - the added drawing complexity may require hand tuning with - second-argument options: m4tt`'L</g> puts the inputs on the left`,' - m4tt`'R reverses their order`,' m4tt`'V</g> scans the input arguments - in reverse order`,' and m4tt`'offset=</g>`'<i>value</i> displaces - the array of inputs) - -cfig(XORSVG, - Realizations of the XOR function using m4tt`'Autologix</g>) - -cfig(EEPSVG, - Part of a single-line diagram of a power distribution system - using draft elements) - -cfig(paletteSVG, - A draft palette of a few elements for Inkscape using - a 1 mm grid) - -cfig(ex00SVG, - Line diagrams) - -cfig(controlSVG, - Control-system block diagrams) - -cfig(GrayCodeSVG, - Gray code 10-bit encoder disk pattern`,' - and a crossbar switch) - -cfig(ByteSVG, - Elementary splines) - -cfig(RotboxSVG, - The macro - m4tt`'rotbox(<i>wid,ht,type,</i>[r|t=<i>val</i>])</g> - draws a box in the current direction) - -cfig(ex06SVG, - Crosshatching) - -cfig(ex09SVG, - Illustrating the macro - m4tt`'dimension_(<i>linespec`,' offset`,' label`,' </i> - H|W|D|<i>blank width</i>`,' <i>tic offset</i>`,' <-|->)</g>. - A negative second argument implies an offset to the right of the - <i>linespec</i> direction. A <i>label</i> starting with - m4tt`'"</g> or - m4tt`'sprintf</g> is copied literally. If <i>label</i> is an - m4tt`'s_box(...)</g> then setting argument 4 to m4tt`'H</g>`,' - m4tt`'W</g>`,' - or m4tt`'D</g> tailors the blank width to the m4tt`'s_box</g> height`,' - width`,' or diagonal respectively; i.e.`,' m4tt`'W</g> is equivalent to - m4tt`'s_wd+textoffset*2</g>. - The macro m4tt`'arcdimension_</g> is similar but the first argument - specifies the arc to be dimensioned and the second argument is - the outward radial offset of the dimension arrow arc.) - -cfig(PlateSVG, - Dimensioning with tolerances according to ASME Y14.5) - Use of m4tt`'darrow</g> and m4tt`'Darc</g>) - -cfig(ex05SVG, - Use of m4tt`'darrow</g> and m4tt`'Darc</g>) - -cfig(LoglogSVG, - Graphs drawn using the pic language) - -cfig(GeometrySVG, - Plane geometry examples) - -cfig(randomSVG, - Testing random number generation - using dpic macro - m4tt`'randn(</g><g - style="font-family:italic">array name`,' mean`,' std dev</g>m4tt`')</g> - which calls dpic built-in m4tt`'rand()</g>) - -cfig(expSVG, - Test of m4tt`'project</g> and other m4tt`'lib3D</g> - macros`,' showing the projection of a solid onto - the <i>y1`,'z1</i> plane by sighting along the x1 axis.) - -cfig(graysurfSVG, - Plotting surfaces using gray scales) - -cfig(shapesSVG, - Basic shapes) - -cfig(keyboardSVG, - More objects drawn in relief) - -cfig(cscSVG, - Conestoga Sailing Club (illustrating the filling of arbitrary shapes)`,' - and an antique clock face with shading and rotated text) - -cfig(roseSVG, - A window redrawn from a detail of the set design for the musical - <i>Dracula</i>`,' used for testing m4tt`'dpic</g>`,' - and an experimental halftone. This diagram - consumes much LaTeX main memory but can be produced - directly as pdf using m4tt`'dpic -d</g>`,' - as svg using m4tt`'dpic -g</g>`,' - or as postscript using m4tt`'dpic -r</g> - since no text formatting is required. The right object - adjusts the size of dots to produce a halftone effect) - -cfig(diamondSVG, - Variations on M. Goossens`,' S. Rahtz`,' and F. Mittelbach`,' - <i>The LaTeX Graphics Companion</i>`,' Addison-Wesley 1997`,' pp. 57-58) - -cfig(wormSVG, - An exercise in calculating RGB colours) - -cfig(ButtonsSVG, - Shading in color) - -cfig(DiniSVG, - Dini surface and an icosahedron) - -cfig(SierpinskiSVG, - The Sierpinski triangle and a Cayley graph: - tests of pic macro recursion) - -cfig(EscherSVG, - Penrose stairs and an Escher-like object) - -cfig(recycleSVG, - Modest repetition and partial fill) - -cfig(ex15SVG, - Simple diagrams that are easily drawn by looping) - -cfig(SmithchartSVG, - A Smith chart at 3/4 scale) - -<!-- -#fig(CountingSVG, -# An example of enumeration) ---> - -cfig(CrowSVG, - Illustrating m4tt`'shadebox</g> and a custom crowfoot line - termination) - -cfig(FlowSVG, - A flowchart sampler) - <!-- <p> - More flow-chart examples? Try - <a href="https://buraphakit.sourceforge.io/EFI/EFI_2019_S2_W13.shtml" - TARGET="_blank">here.</a> - </p> --> - -cfig(BtreeSVG, - Trees) - -cfig(InclepsSVG, - Overlaying a figure with line graphics) - -cfig(FontsSVG) - -</td> -</tr> -</table> -</BODY> -</HTML> diff --git a/graphics/circuit_macros/examples/svg/expSVG.m4 b/graphics/circuit_macros/examples/svg/expSVG.m4 deleted file mode 100644 index 4d12688f97..0000000000 --- a/graphics/circuit_macros/examples/svg/expSVG.m4 +++ /dev/null @@ -1,258 +0,0 @@ -.PS -# expSVG.m4 -threeD_init -NeedDpicTools - -# Graduated shading is probably best done using the built-in functions -# of PSTricks or the somewhat equivalent tikz capabilities. Other -# postprocessors do not have the same functionality so the following -# demonstrates how it can be done in the pic language with m4 macros. - -# Projected box object: -[ -g = 1.2 -define(`axlen',1.2*g) -define(`O3',`0,0,0') -define(`X0',`axlen,0,0') -define(`Y0',`0,axlen,0') -define(`Z0',`0,0,axlen') - -# diagram viewing angle -dazim = 54 -delev = 15 -setview(dazim,delev) - -# projection azimuth, elevation -pazim = 20*dtor_ -pelev = 35*dtor_ -arad = 0.6*g - -# object displacement -define(`D3',`0.3*g,0.6*g,0.9*g') - -# fixed coordinate frame -O: Project(O3) -X: Project(X0) -Y: Project(Y0) - Fector(X0,Z0) with .Origin at O ; "svg_it(x`'svg_sub(0))" at X rjust - Fector(Y0,Z0) with .Origin at O ; "svg_it(y`'svg_sub(0))" at Y ljust below - Fector(Z0,Y0) with .Origin at O ; "svg_it(z`'svg_sub(0))" at Project(Z0) above - -define(`R01',`rot3Dz(pazim,rot3Dy(-pelev,$1,$2,$3))') -define(`R10',`rot3Dy(pelev,rot3Dz(-pazim,$1,$2,$3))') - -thinlines_ ; psset_(linecolor=gray) - line from O to Project(rot3Dz(pazim,axlen,0,0)) -psset_(linecolor=black) - arc -> ccw from Project(arad,0,0) to Project(rot3Dz(pazim,arad,0,0)) rad arad - "svg_theta" below - up_ - arc -> cw from Project(rot3Dz(pazim,arad,0,0)) \ - to Project(R01(arad,0,0)) rad arad - "svg_phi" rjust at Project(rot3Dz(pazim,rot3Dy(-pelev/2,arad,0,0))) - arc -> from Project(0,arad,0) to Project(R01(0,arad,0)) rad arad - "svg_theta" above - right_ - arc -> cw from Project(0,0,arad/2) to Project(R01(0,0,arad/2)) rad arad/2 - "svg_phi" ljust at Here+(-1pt__,-3pt__) - - Fector(R01(X0),R01(Z0)) with .Origin at O ; - "svg_it(x`'svg_sub(1))" above rjust at Project(R01(X0)) - Fector(R01(Y0),R01(Z0)) with .Origin at O ; - "svg_it(y`'svg_sub(1))" ljust at Project(R01(Y0)) - Fector(R01(Z0),R01(Y0)) with .Origin at O ; - "svg_it(z`'svg_sub(1))" above at Project(R01(Z0)) -thicklines_ - -# box object dimension -b = 0.6*g -d = 0.4*g -h = 0.20*g - -# box object corners -define(`B0',`D3') -define(`B1',`sum3D(D3,d,0,0)') PB1: Project(B1) -define(`B2',`sum3D(D3,d,b,0)') PB2: Project(B2) -define(`B3',`sum3D(D3,0,b,0)') PB3: Project(B3) -define(`B4',`sum3D(D3,0,0,h)') PB4: Project(B4) -define(`B5',`sum3D(D3,d,0,h)') PB5: Project(B5) -define(`B6',`sum3D(D3,d,b,h)') PB6: Project(B6) -define(`B7',`sum3D(D3,0,b,h)') PB7: Project(B7) - -# projected corners -P0:Project(R01(0,dcosine3D(2,R10(B0)),dcosine3D(3,R10(B0)))) -P1:Project(R01(0,dcosine3D(2,R10(B1)),dcosine3D(3,R10(B1)))) -P2:Project(R01(0,dcosine3D(2,R10(B2)),dcosine3D(3,R10(B2)))) -P3:Project(R01(0,dcosine3D(2,R10(B3)),dcosine3D(3,R10(B3)))) -P4:Project(R01(0,dcosine3D(2,R10(B4)),dcosine3D(3,R10(B4)))) -P5:Project(R01(0,dcosine3D(2,R10(B5)),dcosine3D(3,R10(B5)))) -P6:Project(R01(0,dcosine3D(2,R10(B6)),dcosine3D(3,R10(B6)))) -P7:Project(R01(0,dcosine3D(2,R10(B7)),dcosine3D(3,R10(B7)))) -thinlines_ - line from PB1 to P1 - line from PB2 to P2 - line from PB7 to P7 - line from PB4 to P4 -thicklines_ - -# draw the object - ifdpic(`line invis fill_(1) from PB4 to PB7 to PB6 to PB5 - line from PB4 to PB7; line to PB6; line to PB5 ; line to PB4 - line invis fill_(0.5) from PB5 to PB6 to PB2 to PB1 - line from PB5 to PB6; line to PB2; line to PB1 ; line to PB5 - line invis fill_(0.85) from PB6 to PB7 to PB3 to PB2 - line from PB6 to PB7; line to PB3; line to PB2 ; line to PB6', - `gshade(1,PB4,PB7,PB6,PB5,PB4,PB7) - gshade(0.5,PB5,PB6,PB2,PB1,PB5,PB6) - gshade(0.85,PB6,PB7,PB3,PB2,PB6,PB7)') - line from PB4 to PB5 to PB1 to PB2 to PB3 to PB7 to PB4 - line from PB5 to PB6 to PB7 - line from PB6 to PB2 - - arrow from O to PB1 chop linethick pt__; "svg_it(X)" rjust - - line from P4 to P5 to P1 to P2 to P3 to P7 to P4 - line from P5 to P6 to P7 - line from P6 to P2 - line dashed from P4 to P0 to P3 - line dashed from P0 to P1 - ] - -# Globe: -[ - # Set small text size - iflatex(`textoffset = 1bp__; ifpsfrag(`textht = 9.5bp__', - `latexcommand({\small)') ') - - azimuth = 15 # View angles in degrees - elevation = 35 - setview(azimuth,elevation) - - rectwid = 3.5 # Basic dimensions - rectht = 2.4 - alpha = rectht/3 - -# # Rectangle - NW: Project(-rectht/2,-rectwid*0.25,0) - SW: Project( rectht/2,-rectwid*0.25,0) - SE: Project( rectht/2, rectwid*0.75,0) - NE: Project(-rectht/2, rectwid*0.75,0) - - ShadedPolygon(NW:NE:SE:SW,,-90, - 0,0.25,0.25,0.25, - 1,1,1,1) with .Start at NW - - define(`C3D',`0,0,alpha') # Centre of the sphere - C: Project(C3D) - -# # Shaded sphere using PSTricks or tikz: -# # this is black magic but PSTricks -# # seems to give more control -# ifpstricks( -# `Highlight: \ -# Project(sum3D(C3D,rot3Dz(-15*dtor_,rot3Dy(-60*dtor_,alpha,0,0)))) -# command "\pscustom[fillstyle=gradient,gradmidpoint=0.0,%" -# command sprintf("gradbegin=gray,gradend=white,gradlines=%g,%%",alpha*200) -# command "GradientCircle=true,GradientScale=1.5,%" -# command sprintf("GradientPos={(%g,%g)}]{",Highlight.x,Highlight.y) -# circle rad alpha at C -# command "}%"', -# -# `ifpgf( # A little too dark with tikz-pgf, maybe: -# `command sprintf(\ -# "\dpicdraw[ball color=white](%g,%g) circle (%gin)\dpicstop",\ -# C.x,C.y,alpha/2.54)', -# -# `circle rad alpha at C fill_(1) ')') - - # Shaded sphere with pic shading: - shadedball(alpha) at C - - S: 0,0 # The sphere bottom touch point - "svg_it(S)" at S+(0,-2pt__) rjust - "svg_alpha" at 0.5<S,C> ljust - - define(`N3D',`0,0,2*alpha') # North pole - N: Project(N3D) - "svg_it(N)" at N+(0,3pt__) ljust - - phi = 65*dtor_ - define(`Phat3D',`rot3Dz(phi,alpha*3,0,0)') - Phat: "svg_it(P)" at Project(Phat3D) ljust - "svg_symbol(&`#'94;)" at last "".n ljust - - X: Project(rectht/2*0.8,0,0) - Y: Project(0,rectwid/2*0.8,0) - -`define' linevis { # ratio # Visibility function for lines fom S to Tmp - Tlv: $1 between S and Tmp - $2 = distance(Tlv,C)-alpha } - -`define' invisline { # name # Draw dashed invisible part of line in - Tmp: $1 # the plane - findroot(linevis, 0, 1, 1e-8, x) - line dashed from S to x between S and Tmp chop 0 chop 0.05 } - -thinlines_ # axes - invisline(X) - arrow to X chop 0.05 chop 0; "svg_it(x)" below - invisline(Y) - arrow to Y chop 0.05 chop 0; "svg_it(y)" ljust - line dashed from S to N chop 0 chop 0.05 - arrow up alpha*0.5 chop 0.05 chop 0 ; "svg_it(z)" above - invisline(Phat) - line to Phat chop 0.05 chop 0 - arc ccw -> rad alpha from Project(alpha/2,0,0) to \ - Project(rot3Dz(phi,alpha/2,0,0)) - "svg_phi" below at 0.5 between last arc.start and last arc.end - - # vector (ratio along (N to Phat)) -define(`ray',`sum3D(N3D,sprod3D($1,diff3D(Phat3D,N3D)))') -`define' rayvis { # ratio - $2 = length3D(diff3D(ray($1),C3D))-alpha } - - findroot(rayvis, 1e-3, 1, 1e-8, p) # Find P - P: "svg_it(P)" at Project(ray(p)) ljust above - -thicklines_ - line dashed from N to P chop 0 chop 0.05 - line to Phat chop 0.05 chop 0 - -define(`meridian',`rot3Dz(phi,rot3Dy(-($1),alpha,0,0))') -`define' meridianvis { # angle # Visibility function on the meridian - $2 = dot3D(meridian($1),View3D) } - -thinlines_ # Draw the meridian - findroot(meridianvis, 0, pi_, 1e-8, y) - n = 0 - for ang = y-pi_ to y by pi_/20 do { - Q[n]: Project(sum3D(C3D,meridian(ang))); n+=1 } - fitcurve(Q,n-1) - n = 0 - for ang = y to y+pi_ by pi_/20 do { - Q[n]: Project(sum3D(C3D,meridian(ang))); n+=1 } - fitcurve(Q,n-1,dashed) - -define(`equator',`rot3Dz($1,alpha,0,0)') -`define' equatorvis { # angle # Visibility function on the equator - $2 = dot3D(View3D,equator($1)) } - - findroot(equatorvis, 0, pi_, 1e-8, y) - n = 0 - for ang = y-pi_ to y by pi_/20 do { - Q[n]: Project(sum3D(C3D,equator(ang))); n+=1 } - fitcurve(Q,n-1) - n = 0 - for ang = y to y+pi_ by pi_/20 do { - Q[n]: Project(sum3D(C3D,equator(ang))); n+=1 } - fitcurve(Q,n-1,dashed) - - line dashed from C to P # beta - line dashed from C to Project(sum3D(C3D,equator(phi))) - arc ccw -> from 0.6 along_(last line) to 0.6 between C and P - "svg_beta" ljust at last arc.e+(0,2pt__) - - iflatex(ifpsfrag(,`latexcommand(})')) - ] with .w at last [].e+(0.5,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/fetSVG.m4 b/graphics/circuit_macros/examples/svg/fetSVG.m4 deleted file mode 100644 index 8495eb9e94..0000000000 --- a/graphics/circuit_macros/examples/svg/fetSVG.m4 +++ /dev/null @@ -1,168 +0,0 @@ -.PS -# `fetSVG.m4' -cct_init(svg_font(Times,11bp__)) - -textht = 0.1 -define(`rmove',0.75) - -dnl `IRF4905(linespec,R)' -define(`IRF4905', - `[ ifelse(`$1',,,`eleminit_(`$1')') - Q: mosfet(,`$2',dMdPzEDSQdB,) ifelse(`$1',,` - S: Q.tr_xy(-4,-2); line from Q.tr_xy(-2,-2) to S - D: Q.tr_xy( 4,-2); line from Q.tr_xy(2,-2) to D', - `with .Diode.c at last line.c - S: last line.start; D: last line.end; line from S to D ') - G: Q.G - circle rad 5*dimen_/10 at Q.tr_xy(0,1) ]') - -{move left 20bp__} -Row1: [ J: j_fet - { "svg_tt(`j_fet')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: j_fet(right_ dimen_,,P,E) with .w at J.e+(0.5,0) - { "svg_tt(`j_fet(right_')" at J.s+(0,-4bp__) below "svg_tt(`dimen_,,P,E)')" - "svg_it(G)" at J.G rjust above - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: e_fet with .w at J.e+(0.5,0) - { "svg_tt(` e_fet')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: e_fet(,,P) with .w at J.e+(0.6,0) - { "svg_tt(` e_fet(,,P)')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: e_fet(,,P,S) with .w at J.e+(0.8,0) - { "svg_tt(` e_fet(,,P,S)')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: c_fet with .w at J.e+(0.7,0) - { "svg_tt(` c_fet')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: c_fet(,,P) with .w at J.e+(0.7,0) - { "svg_tt(` c_fet(,,P)')" wid 72bp__ at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - ] - -Row2: [ - J: d_fet - { "svg_tt(`d_fet')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: d_fet(,,P) with .w at J.e+(0.5,0) - { "svg_tt(`d_fet(,,P)')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: d_fet(,,P,S) with .w at J.e+(0.8,0) - { "svg_tt(`d_fet(,,P,S)')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: g_fet with .w at J.e+(0.6,0) - { "svg_tt(`g_fet')" at J.s+(0,-0.05) below - "svg_it(G)" at J.G rjust - "svg_it(S)" at J.S rjust - "svg_it(D)" at J.D ljust } - J: g_fet(up_ dimen_,,P) with .w at J.e+(0.6,0) - { "svg_tt(`g_fet(up_')" at last [].s below - "svg_tt(` dimen_,,P)')" at last [].s + (0,-12bp__) below - "svg_it(G)" at last [].G rjust - "svg_it(S)" at last [].S + (0,2bp__) ljust - "svg_it(D)" at last [].D + (0,2bp__) ljust below } - right_ - M1: mosfet(,,dBSDFQM1,E) with .w at J.e+(0.6,0) - "svg_it(G0)" at M1.G0 above rjust - "svg_it(G1)" at M1.G1 above ljust - {"svg_tt(`mosfet(,,dBSDFQM1,E)')" wid 1.45 \ - with .nw at last [].sw+(0,-0.2) } - M2: mosfet(,,dBSDFQuM1) with .nw at M1.ne+(0.6,0) - "svg_it(G0)" at M2.G0 above ljust - "svg_it(G1)" at M2.G1 above rjust - {"svg_tt(`...(,,dBSDFQuM1')" wid 1.25 \ - with .n at last [].s+(0,-0.05) } - ] with .nw at Row1.sw+(0,-10bp__) # Row2 - -Row3: [ - linewid = linewid*1.2 - - Q1: mosfet(,,dGSDF,) - {"svg_tt(`mosfet(,,dGSDF,)')" wid 1.25 \ - with .nw at last [].sw+(-0.2,-0.05) - thinlines_ - arrow <- down .05 left .15 from (Q1.G.x,Q1.G.y-0.05) - "svg_tt(dG)" rjust - arrow <- down .10 left .30 from Q1.Channel.start+(.15,0) - "svg_tt(F)" rjust - arrow <- down .05 left .15 from (Q1.S.x,Q1.S.y+0.05) - "svg_tt(S)" rjust - arrow <- down .05 right .15 from (Q1.D.x,Q1.D.y+0.05) - "svg_tt(D)" ljust - thicklines_ } - - move right_ rmove - Q2: mosfet(,,uHSDF,) - {"svg_tt(`...(,,uHSDF,)')" at last [].s+(0,-0.2) below - thinlines_ - arrow <- down .05 left .15 from (Q2.G.x,Q2.G.y-0.05) - "svg_tt(uH)" rjust - thicklines_ } - - move right_ rmove - Q3: mosfet(,,dMEDSQuB,) - {"svg_tt(`...(,,dMEDSQuB,)')" at last [].s+(0,-0.05) below - thinlines_ - arrow <- down .05 left .15 from (Q3.G.x,Q3.G.y-0.05) - "svg_tt(dM)" rjust - arrow <- down .13 left .30 from Q3.Channel.start+(.12,0) - "svg_tt(E)" rjust - arrow <- down .05 left .10 from Q3.S+(.06,0) - "svg_tt(Q)" rjust - arrow <- down .08 right .24 from (Q3.B.x,Q3.B.y+0.175) - "svg_tt(uB)" ljust - thicklines_ } - - move right_ rmove - Q4: mosfet(,,uMEDSuB) - {"svg_tt(`...(,,uMEDSuB,)')" at last [].s+(0,-0.2) below - "svg_it(G)" at last [].G rjust - "svg_it(S)" at last [].S rjust - "svg_it(D)" at last [].D ljust - "svg_it(B)" at last [].B below - } - - move right_ rmove - Q5: mosfet(,,ZSDFdT,) - {"svg_tt(`...(,,ZSDFdT)')" at last [].s+(0,-0.05) below - thinlines_ - arrow <- down .08 left .08 from (Q5.S.x,Q5.S.y+0.12) - "svg_tt(Z)" rjust - arrow from last arrow.end to Q5.Channel.c+(0.05,0) - arrow from last arrow.start to (Q5.D.x,Q5.D.y+.05) - arrow <- down .08 right .24 from (Q5.G.x,Q5.G.y-0.02) - "svg_tt(dT)" ljust - thicklines_ } - - move right_ rmove+0.1 - up_ - Q6: IRF4905 with .c at Here - {"svg_tt(`IRF4905')" at Q6.s+(0,-0.15) below - "svg_it(G)" at Q6.G rjust - "svg_it(D)" at Q6.D ljust above - "svg_it(S)" at Q6.S ljust below - } - ] with .nw at Row2.sw + (0,-10bp__) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/graysurfSVG.m4 b/graphics/circuit_macros/examples/svg/graysurfSVG.m4 deleted file mode 100644 index a42709b96e..0000000000 --- a/graphics/circuit_macros/examples/svg/graysurfSVG.m4 +++ /dev/null @@ -1,190 +0,0 @@ -.PS -# graysurfSVG.m4 -threeD_init -NeedDpicTools - -Overall: [ -[] -Surface:[ -# This just draws the facets back to front - - setview(20,30) - dimen = 1.5 - - xmax = 2*dimen - ymax = 1.5*dimen - zmax = 1*dimen - - define(`fn', - `expe(-(`$1')/tt)*cos((`$2')/xmax*1.75*twopi_)*cos((`$1')/ymax*twopi_)') - - nx = 24; dx = xmax/nx - ny = 30; dy = ymax/ny - tt = 1.5 - fnmax = fn(0,0,0) - - Orig: (0,0) - linethick_(1.2) - arrow from Orig to 1.2 <Orig,Project(xmax,0,0)> ; "svg_it(x)" wid 0.08 below - arrow from Orig to 1.2 <Orig,Project(0,ymax,0)> ; "svg_it(y)" ljust - arrow from Orig to 1.2 <Orig,Project(0,0,zmax)> ; "svg_it(z)" rjust - - linethick_(0) - for i = 0 to nx-1 do { - x = xmax*i/nx - for j = 0 to ny-1 do { - y = ymax*j/ny - fnxy = fn(x,y) - shade((fnmax+fnxy)/fnmax/2, - line from Project(x,y,fnxy) to Project(x,(y+dy),`fn(x,(y+dy))')\ - then to Project((x+dx),(y+dy),`fn((x+dx),(y+dy))')\ - then to Project((x+dx),y,`fn((x+dx),y)')\ - then to Project(x,y,fnxy) - ) } } -] with .w at last [].e+(-0.2,0) - -Torus: [ -# Calculate all the facet centres but draw -# only a subset of them after sorting - - viewazimuth = 20 # Set view angles in degrees - viewelevation = 30 - - setview(viewazimuth,viewelevation,0) - - sfactor = 0.7 - tradius = 2*sfactor - sradius = 0.75*sfactor - -define(`torus',`rot3Dz((`$1')*dtor_, - sum3D(tradius,0,0,rot3Dy((`$2')*dtor_,sradius,0,0)))') - -define(`tvisible',`dot3D(view3D1,view3D2,view3D3, - rot3Dz((`$1')*dtor_,rot3Dy((`$2')*dtor_,1,0,0)))') - -Orig: (0,0) -X: arrow from Orig to Project(tradius+sradius*4,0,0); "x" rjust -Y: arrow from Orig to Project(0,tradius+sradius*2,0); "y" below wid 4bp__ - - dt = 10 # major angle degrees per facet - ds = 10 # minor angle degrees per facet - - # create the arrays and sort - n = 0 - for t = dt to 360+dt/2 by dt do { - for s=ds/2 to 360.1 by ds do { - if tvisible(t,s) >= 0 then { - n +=1 - t[n] = t - s[n] = s - d[n] = dot3D(torus(t,s),view3D1,view3D2,view3D3) # view distance - ix[n] = n - } } } -#prval(n) - dpquicksort(d,1,n,ix) - - # draw the facets -thinlines_ - for i = 1 to n do { - tc = t[ix[i]]; sc = s[ix[i]] - SE: Project(torus(tc+dt/2,sc-ds/2)) - SW: Project(torus(tc-dt/2,sc-ds/2)) - NW: Project(torus(tc-dt/2,sc+ds/2)) - NE: Project(torus(tc+dt/2,sc+ds/2)) - f = ((dcosine3D(3,torus(tc,sc))/sradius+1)/2)^2 - g = min(f,0.9) - setrgb(g,g,g) -# line fill f ifpdf( invis ) \ -# from SE to SW then to NW then to NE then to SE - shade(f, - line invis fill f from SE to SW then to NW then to NE then to SE ) - - resetrgb - } - -thicklines_ - arrow from Orig to Project(0,0,tradius*1.4); "z" above - dashline(from Orig to Project(torus(0,0)),,,,G) - arrow to X.end - dashline(from Orig to Project(torus(90,0)),,,,G) - arrow to Y.end - -] with .sw at last [].se+(0.2,0) - -Hat: [ -# Sort as for the torus but draw edges too - - azimuth = 25 # View angles in degrees - elevation = 20 - setview(azimuth,elevation) - # the 3D object: `hat(t,y)' - define(`hat',`cosd($1)*($2),sind($1)*($2),(($2)^2-1)^2') - define(`gradient',`(-4*($2)*(($2)^2-1)*cosd(`$1')), - (-4*($2)*(($2)^2-1)*sind(`$1')),1') - define edge {$2=dot3D(View3D,gradient($1,y))} - define(`hatvis', - `(($2 > 0.6) || (dot3D(View3D,gradient($1,$2)) > 0))') - - # grid parameters - dang = 09 - maxy = 1.25 - dy = 0.05 - -Orig: (0,0) -X: arrow from Orig to Project(maxy*1.2,0,0); "x" rjust -Y: arrow from Orig to Project(0,maxy*1.2,0); "y" ljust -Xv: Project(1,0,0) -Yv: Project(0,1,0) -Zv: Project(0,0,1) - # create the arrays and sort - n = 0 - for t = dang/2 to 360.1 by dang do { - for y=dy/2 to maxy by dy do { - if hatvis(t,y) then { - n +=1 - t[n] = t - y[n] = y - d[n] = dot3D(hat(t,y),View3D) #distance toward the front - ix[n] = n - } } } -#prval(n) - dpquicksort(d,1,n,ix) - # draw the facets - ellipse wid maxy*2 ht maxy*2*sind(elevation) \ - with .c at Project(0,0,(maxy^2-1)^2)+(0,linethick bp__/2) -thinlines_ - for i = 1 to n do { - tc = t[ix[i]]; yc = y[ix[i]] - SE: Project(hat(tc+dang/2,yc-dy/2)) - SW: Project(hat(tc-dang/2,yc-dy/2)) - NW: Project(hat(tc-dang/2,yc+dy/2)) - NE: Project(hat(tc+dang/2,yc+dy/2)) - f = abs(yc^2-1) - line invis fill f from SE to SW then to NW then to NE then to SE - } - - # Outline where the surface goes invisible -mm = int(maxy/dy) -nr = -1 -for i=1 to mm do { y = i/(mm+3) - findroot(edge,(azimuth+2),(azimuth+180-2),1e-8,t) - nr +=1 - R[mm+nr]: Project(hat(t,y)) - R[mm-1-nr]: (-R[mm+nr].x,R[mm+nr].y) - } -fitcurve(R,mm*2-1) - - # Z axis -thicklines_ -Z: arrow from Zv to Project(0,0,1.2); "z" ljust - line dashed from Orig to Zv chop 0 chop dashwid/2 - line dashed from Orig to Xv - line dashed from Orig to Yv - - # Partial rim -ellipsearc(maxy*2,maxy*2*sind(elevation),-pi_*1.4,pi_/3) \ - with .C at Project(0,0,(maxy^2-1)^2)+(0,linethick bp__/2) -] scaled 1.25 with .s at 2nd [].ne+(0,-0.75) -] scaled 0.85 - -.PE diff --git a/graphics/circuit_macros/examples/svg/icsSVG.m4 b/graphics/circuit_macros/examples/svg/icsSVG.m4 deleted file mode 100644 index 896e1008eb..0000000000 --- a/graphics/circuit_macros/examples/svg/icsSVG.m4 +++ /dev/null @@ -1,311 +0,0 @@ -divert(-1) - - Macros defining some integrated circuits and connectors for SVG - - `A sequence of pins along the east or west side of a chip: - lg_pinseq(initial pin no, final pin no, - e|w, initial offset, pinnum_root, Labelroot, [N])' - `e.g., lg_pinseq(1,8,w)' -define(`lg_pinseq',`for_($1,$2,1, - `lg_pin( Chip.s`$3'+(0,eval($4+m4x)*lg_pinsep), - $6`'m4x,Pin`'eval($5`'m4x),`$3'`$7',eval($5`'m4x))') ') - -define(`ic_tiny',`iflatex(`\hbox{\tiny `$1'}',ifsvg(`svg_small(`$1')',`$1'))') - -define(`ic6116',`[ Chip: box wid_ lg_chipwd ht_ 15*lg_pinsep - lg_pin(Chip.sw_+(0,lg_pinsep),GND,Pin12,w,12) - lg_pin(Chip.sw_+(0,2*lg_pinsep),lg_bartxt(CS),Pin18,wN,18) - lg_pinseq(0,2,w,4,9+,D) - lg_pinseq(3,7,w,4,10+,D) - lg_pin(Chip.sw_+(0,13*lg_pinsep),R/lg_bartxt(W),Pin21,w,21) - lg_pin(Chip.sw_+(0,14*lg_pinsep),V`'ic_tiny(CC),Pin24,w,24) - lg_pin(Chip.se_+(0,lg_pinsep),lg_bartxt(OE),Pin20,eN,20) - lg_pinseq(0,7,e,3,8-,A) - lg_pinseq(8,9,e,3,31-,A) - lg_pin(Chip.se_+(0,13*lg_pinsep),A10,Pin19,e,19) - `$1']') - -define(`ic6502',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep - lg_pin(Chip.sw_+(0,lg_pinsep),V`'ic_tiny(SS),Pin21,w,21) - lg_pin(Chip.sw_+(0,2*lg_pinsep),V`'ic_tiny(SS),Pin1,w,1) - lg_pin(Chip.sw_+(0,4*lg_pinsep),R/lg_bartxt(W),Pin34,w,34) - lg_pinseq(0,7,w,6,33-,D) - lg_pin(Chip.sw_+(0,15*lg_pinsep),lg_bartxt(RESET),Pin40,wN,40) - lg_pin(Chip.sw_+(0,17*lg_pinsep),SYNC,Pin7,w,7) - lg_pin(Chip.sw_+(0,19*lg_pinsep),lg_bartxt(NMI),Pin6,wN,6) - lg_pin(Chip.sw_+(0,21*lg_pinsep),RDY,Pin2,w,2) - lg_pin(Chip.sw_+(0,22*lg_pinsep),SO,Pin38,w,38) - lg_pin(Chip.sw_+(0,23*lg_pinsep),V`'ic_tiny(CC),Pin8,w,8) - lg_pin(Chip.se_+(0,lg_pinsep),CK`'ic_tiny(1)(in),Pin39,e,39) - lg_pin(Chip.se_+(0,4*lg_pinsep), CK`'ic_tiny(2)(out),Pin37,e,37) - lg_pinseq(0,11,e,6,9+,A) - lg_pinseq(12,15,e,6,10+,A) - lg_pin(Chip.se+(0,23*lg_pinsep),lg_bartxt(IRQ),Pin4,eN,4) - `$1']') - -define(`ic6522',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep - lg_pin(Chip.sw_+(0,lg_pinsep),V`'ic_tiny(SS),Pin1,w,1) - lg_pin(Chip.sw_+(0,3*lg_pinsep),CS1,Pin24,w,24) - lg_pin(Chip.sw_+(0,4*lg_pinsep),CK,Pin25,w,25) - lg_pin(Chip.sw_+(0,5*lg_pinsep),lg_bartxt(CS2),Pin23,wN,23) - lg_pin(Chip.sw_+(0,7*lg_pinsep),RS0(A0),Pin38,w,38) - lg_pin(Chip.sw_+(0,8*lg_pinsep),RS1(A1),Pin37,w,37) - lg_pin(Chip.sw_+(0,9*lg_pinsep),RS2(A2),Pin36,w,36) - lg_pin(Chip.sw_+(0,10*lg_pinsep),RS3(A3),Pin35,w,35) - lg_pinseq(0,7,w,12,33-,D) - lg_pin(Chip.sw_+(0,21*lg_pinsep),R/lg_bartxt(W),Pin22,w,22) - lg_pin(Chip.sw_+(0,22*lg_pinsep),lg_bartxt(IRQ),Pin21,wN,21) - lg_pin(Chip.sw_+(0,23*lg_pinsep),V`'ic_tiny(CC),Pin20,w,20) - lg_pinseq(0,7,e,1,10+,PB) - lg_pinseq(1,2,e,8,17+,CB) - lg_pinseq(0,7,e,12,2+,PA) - lg_pinseq(1,2,e,19,41-,CA) - lg_pin(Chip.se_+(0,23*lg_pinsep),lg_bartxt(RESET),Pin34,eN,34) - `$1']') - -define(`ic74LS138',`[ Chip: box wid_ lg_chipwd ht_ 11*lg_pinsep - lg_pin(Chip.sw_+(0,lg_pinsep),GND,Pin8,w,8) - lg_pin(Chip.sw_+(0,2*lg_pinsep),lg_bartxt(G2a),Pin4,wN,4) - lg_pin(Chip.sw_+(0,3*lg_pinsep),lg_bartxt(G2b),Pin5,wN,5) - lg_pin(Chip.sw_+(0,5*lg_pinsep),A,Pin1,w,1) - lg_pin(Chip.sw_+(0,6*lg_pinsep),B,Pin2,w,2) - lg_pin(Chip.sw_+(0,7*lg_pinsep),C,Pin3,w,3) - lg_pin(Chip.sw_+(0,9*lg_pinsep),G1,Pin6,w,6) - lg_pin(Chip.sw_+(0,10*lg_pinsep),V`'ic_tiny(CC),Pin16,w,16) - lg_pinseq(0,6,e,2,15-,Y,n) - lg_pin(Chip.se_+(0,9*lg_pinsep),Y7,Pin7,eN,7) - `$1']') - -define(`ic4017',`[ Chip: DIP_chip_outline(16) - Loopover_(`x', - `lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)', - PL, Q3, I3, I0, CLE, Q0, TC, GND) - Loopover_(`x', - `lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+8),e,eval(m4Lx+8))', - MR, U/D, Q1, I1, I2, Q2, CLK, Vcc) - `$1']') - -define(`ic4510',`[ Chip: DIP_chip_outline(16) - Loopover_(`x', - `lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)', - PL, Q3, I3, I0, CLE, Q0, TC, GND) - Loopover_(`x', - `lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+8),e,eval(m4Lx+8))', - MR, U/D, Q1, I1, I2, Q2, CLK, Vcc) - `$1']') - -define(`icVS1053',`[ Chip: DIP_chip_outline(32) - Loopover_(`x', - `lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)', - LOUT,ROUT,GBUF,AGND,AGND,DREG,Vcc,3V3,GND,MISO,MOSI,sclk,RST,CS,DCS,DCS) - Loopover_(`x', - `lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+16),e,eval(m4Lx+16))', - SDCD,RX,TX,7,6,5,4,3,2,1,0,GND,3V3,AGND,MIC`'svg_it(-),MIC`'svg_it(+)) - `$1']') - - `ArduinoUno( wid,ht,pinlen )' -define(`ArduinoUno',`[ - define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl - define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl -# - - Connector: box wid m4bwid ht m4bht -# - plen = ifelse(`$4',,`2*L_unit',`$4') -# -Loopover_(`x',`ifelse(x,nul,, - `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep) - { "x" ljust at last line.start }')', - IOREF, RESET,svg_it(+)3V3,svg_it(+)5V, GND, GND, VIN, - nul, A0, A1, A2, A3, A4, A5) -# -Loopover_(`x',`ifelse(x,nul,, - `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep) - { "x" rjust at last line.start }')', - SCL, SDA, AREF, GND, D13, D12, ~D11, ~D10, ~D9, D8, - nul, D7, ~D6, ~D5, D4, ~D3, D2, TX D1, RX D0) -# - `$4'] ') - - `ArduinoLeonardo( wid,ht,pinlen )' -define(`ArduinoLeonardo',`[ - define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl - define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl -# - Connector: box wid m4bwid ht m4bht -# - plen = ifelse(`$4',,`2*L_unit',`$4') -# -Loopover_(`x',`ifelse(x,nul,, - `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep) - { "x" ljust at last line.start }')', - IOREF, RESET,svg_it(+)3V3,svg_it(+)5V, GND, GND, VIN, - nul, A0, A1, A2, A3, A4, A5) -# -Loopover_(`x',`ifelse(x,nul,, - `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep) - { "x" rjust at last line.start }')', - SCL, SDA, AREF, GND, - ~D13, D12, ~D11, ~D10, ~D9, D8, - nul, D7, ~D6, ~D5, D4, ~D3, D2, TX D1, RX D0) -# - `$4'] ') - - `RPi( wid,ht,pinlen )' -define(`RPi',`[ - define(`m4bwid',`ifelse(`$1',,`34*L_unit',`$1')')dnl - define(`m4bht',`ifelse(`$2',,`21*lg_pinsep',`$2')')dnl -# - GPIO: box wid m4bwid ht m4bht - plen = ifelse(`$4',,`6*L_unit',`$4') -# -define A_LeftGPIO { - exec sprintf("Pin%g: line left_ plen from GPIO.nw-(0,%g)",\ - 2*(`$'1)-1,(`$'1)*lg_pinsep) - { "`$'3" ljust at last line.start } - "`$'2" at last line.c above } -# -Loopover_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')', - ;3V3, - 2;SDA1, 3;SCL1, 4;GPIO_GCLK, - ;GND, - 17;GPIO_GEN0, 27;GPIO_GEN2, - 22;GPIO_GEN3, - ;3V3, - 10;SPI_MOSI, 9;SPI_MISO, - 11;SPI_SCLK, - ;GND, - ;ID_SD, - 5;, 6;, 13;, 19;, 26;, - ;GND ) -# -define A_RightGPIO { - exec sprintf("Pin%g: line right_ plen from GPIO.ne-(0,%g)",\ - 2*(`$'1),(`$'1)*lg_pinsep) - { "`$'3" rjust at last line.start } - "`$'2" at last line.c above } -# -Loopover_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')', - ;5V, - ;5V, - ;GND, - 14;TXD0, 15;RXD0, 18;GPIO_GEN1, - ;GND, - 23;GPIO_GEN4, 24;GPIO_GEN5, - ;GND, - 25;GPIO_GEN6, 8;SPI_CEO_N, - 7;SPI_CE1_N, - ;ID_SC, - ;GND, - 12;, - ;GND, - 16;, 20;, 21; ) -# - `$4'] ') - - `USB_C_Socket( wid, ht, pinlen )' -define(`USB_C_Socket',`[ - define(`m4bwid',`ifelse(`$1',,`18*L_unit',`$1')')dnl - define(`m4bht',`ifelse(`$2',,`14*lg_pinsep',`$2')')dnl -# - Base: box wid m4bwid ht m4bht rad 5/3*lg_pinsep - plen = ifelse(`$4',,`6*L_unit',`$4') -# - Loopover_(`x', - `B`'eval(13-m4Lx): dnl - line left_ plen from Base.n-(m4bwid/2,(m4Lx+0.5)*lg_pinsep) - {"x" ljust at last line.start}', - GND, RX1`'svg_it(+), RX1`'svg_it(-), VBUS, SBU2, D`'svg_it(-), - D`'svg_it(+), CC2, VBUS, TX2`'svg_it(-), TX2`'svg_it(+), GND) -# - Loopover_(`x', - `A`'m4Lx: line right_ plen from Base.n+(m4bwid/2,-(m4Lx+0.5)*lg_pinsep) - {"x" rjust at last line.start}', - GND, TX1`'svg_it(+), TX1`'svg_it(-), VBUS, CC1, D`'svg_it(+), - D`'svg_it(-), SBU1, VBUS, RX2`'svg_it(-), RX2`'svg_it(+), GND) -# - `$4']') - - `HDMI_micro( wid, ht, pinlen )' -define(`HDMI_micro',`[ - define(`m4bwid',`ifelse(`$1',,`16*L_unit',`$1')')dnl - define(`m4bht',`ifelse(`$2',,`19*lg_pinsep+m4bwid*2/3',`$2')')dnl -# - Base:[line up m4bht/2 then right m4bwid*2/3 \ - then right m4bwid/3 down m4bwid/3 \ - then down m4bht-2*m4bwid/3 then down m4bwid/3 left m4bwid/3 \ - then left m4bwid*2/3 then to Here] - plen = ifelse(`$4',,`6*L_unit',`$4') -# - Loopover_(`x', - `Pin`'m4Lx: line left_ plen from Base.nw-(0,m4bwid/3+(m4Lx-1/2)*lg_pinsep) - {"x" ljust at last line.start} - "m4Lx" at last line.c above', - HPD, UTILITY, D2`'svg_it(+), D2_SH, D2`'svg_it(-), - D1`'svg_it(+), D1_SH, D1`'svg_it(-),D0`'svg_it(+), D0_SH, - D0`'svg_it(-), CLK`'svg_it(+), CLK_SH, CLK`'svg_it(-), - CEC, GND, SCL, SDA,svg_it(+)5V) -L1: line from Base.nw+(m4bwid*2/3-lg_pinsep,0) up plen - svg_rot(90,"21",at last line.c +(-2bp__,0)) - svg_rot(90,"SH2",at last line.start + (4bp__,-8bp__)) - line from Base.nw+(m4bwid*2/3-2*lg_pinsep,0) up plen - svg_rot(90,"20",at last line.c+(-2bp__,0)) - svg_rot(90,"SH1",at last line.start + (4bp__,-8bp__)) - line from Base.sw+(m4bwid*2/3-lg_pinsep,0) down plen - svg_rot(90,"23",at last line.c+(-2bp__,0)) - svg_rot(90,"SH4",at last line.start + (4bp__,14bp__)) - line from Base.sw+(m4bwid*2/3-2*lg_pinsep,0) down plen - svg_rot(90,"22",at last line.c+(-2bp__,0)) - svg_rot(90,"SH3",at last line.start + (4bp__,14bp__)) -# - `$4']') - - `DIP_chip_outline( pin count, wid )' -define(`DIP_chip_outline', - `[ define(`m4pinct',`ifelse(`$1',,16,`$1')')dnl - define(`m4chgw',`ifelse(`$2',,(18*L_unit),`$2')')dnl - Chip: box invis wid m4chgw ht lg_pinsep*eval((m4pinct)/2+1) - arcd(last box.n, lg_pinsep/2, 180, 360) - { line to last box.ne chop -linewid bp__/2 } - { line from last arc.start to last box.nw chop -linewid bp__/2 } - line from last box.nw to last box.sw then to last box.se then to last box.ne - `$3']') - - `DIP( pin count, attributes) - Dual in-line package - attributes=semicolon-separated list of optional terms: - bodywid=expr; (default 0.25 = 5*L_unit ) - bodylen=expr; (default pin count/2 x pinpitch) - pinpitch=expr; (default 0.1) - pinwid=expr; (default 0.06) - pinlen=expr; (default 0.05) - direct=U|D|L|R;(default U for up) - type=I|Q; (default I for uniform-length pins; - Q: staggered) ' -define(`DIP',`[ pinct= ifelse(`$1',,8,`$1') - Loopover_(`Z',`pushkey_(`$2',patsubst(Z,:.*),patsubst(Z,.*:))', - bodywid: 5*L_unit, - bodylen: m4pinpitch*int(pinct/2+0.5), - pinpitch:2*L_unit, - pinwid: 1.2*L_unit, - pinlen: L_unit) - Loopover_(`Z',`pushkey_(`$2',patsubst(Z,:.*),patsubst(Z,.*:),N)', - direct:U, - type:I) - setdir_(m4direct,U) - Body: box ht_ m4bodywid wid_ m4bodylen - arcs = ifelse(m4_dir_,right,90,m4_dir_,up,180,m4_dir_,left,270,0) - arcd(Body.e_, 0.1/2, arcs,arcs+180) - np2 = int(pinct/2+0.5) - define(`m4bxht',`m4pinlen ifelse(m4type,Q,`*(1+(i%%2))')')dnl - for i=0 to np2-1 do { - exec sprintf("Pin%g: box ht_ m4bxht wid_ m4pinwid \ - with .s_ at (i+0.5)/np2 between Body.ne_ and Body.nw_",i+1) } - for i=np2+1 to pinct do { - exec sprintf("Pin%g: box ht_ m4bxht wid_ m4pinwid \ - with .n_ at (i-np2-0.5)/(pinct-np2) between Body.sw_ and Body.se_",i) } - `$3'; resetdir_ - popdef(`m4bodywid',`m4bodylen',`m4pinpitch',`m4pinwid',`m4pinlen',`m4direct', - `m4type') ]')) - -divert(0)dnl diff --git a/graphics/circuit_macros/examples/svg/keyboardSVG.m4 b/graphics/circuit_macros/examples/svg/keyboardSVG.m4 deleted file mode 100644 index 7966a7aa3b..0000000000 --- a/graphics/circuit_macros/examples/svg/keyboardSVG.m4 +++ /dev/null @@ -1,269 +0,0 @@ -.PS -# keyboardSVG.m4 - gen_init - scale=25.4 # unit is mm - -divert(-1) - -define(`kbd_u',(11mm__)) -define(`kbdrowsep',`movewid') -define(`kbdshadewid',`(kbd_u/9)') - - `kbdkey(name|text=chars,keys) - chars: string or string string - keys: wdth=expr; # base wid - hght=expr; # base ht - rad=expr; # base rad - shadewid=expr; # base shade wid - base=attribs; # base attributes - top=attribs; # top attributes ' -define(`kbdkey', - `pushkeys_(`$2', - wdth:kbd_u; hght:kbd_u*14/13+lthick; rad:kbd_u/10; - shadewid:kbdshadewid; base:fill_(0.3):N; top:fill_(0.9):N)dnl - [ Base: box wid m4wdth ht m4hght rad m4rad m4base - Top: box wid m4wdth-2*m4shadewid ht m4hght-m4shadewid-lthick \ - rad m4rad*(kbd_u-2*m4shadewid)/(kbd_u) with .n \ - at Base.n-(0,lthick) m4top - move to Top.w - ifelse(`$1',,,`pushkey_(`$1',text,,N)ifelse(m4text,, - `"iflatex(\sf) `$1'" above ljust', - `m4text');') `$3' - popdef(`m4wdth', `m4hght', `m4shadewid', `m4rad', `m4base', `m4top') dnl - popdef(`m4text') ] ') - -define(`tsmall', - `iflatex(`"{\sf\scriptsize `$1'}"', - ifelse(`$3',,")svg_fsize(`$1',ifelse(`$2',,75,`$2'))ifelse(`$3',,"))') - -define(`stkbdkey', - `iflatex(`command "{\sf\scriptsize"',`m4tmp=textht - textht = ifelse(`$1',,0.66*textht,`$1') ') - kbdkey(shift($*)) - iflatex(`command "}%"',`textht = m4tmp')') - - `enterkey(name|text=chars,keys) - chars: string or string string - keys: wdth=expr; # base wid - hght=expr; # base ht - bhght=expr; # ht of bottom part - rad=expr; # base rad - shadewid=expr; # base shade wid - base=attribs; # base attributes - top=attribs; # top attributes ' -define(`enterkey', - `pushkeys_(`$2', - wdth:kbd_u*2.26; - hght:kbd_u*14/13*2+kbdrowsep+linethick bp__; - bhght: kbd_u*14/13; - twdth: kbd_u*3/2; - rad:kbd_u/10; - shadewid:kbdshadewid; - base:fill_(0.3):N; - top:fill_(0.9):N)dnl - [ ltx = lthick; r = m4rad*(kbd_u-2*m4shadewid)/(kbd_u) -# thick outer - linethick = (m4shadewid+r)/(1bp__); lth2 = lthick/2 - NEx: Here; NE: NEx-(lth2,lth2); SE: NE-(0,m4hght-lth2*3-ltx*3/2) - SW: SE-(m4wdth-lthick,0) - W: SW+(0,m4bhght-lthick+ltx*3/2); NW: NE-(m4twdth-lthick,0); X: (NW,W) - d = 0.3; ro = m4rad-lth2 - move to W; arcto(X,NW,m4rad+lth2,outlined graystring(d)); Tx:NW - Loopover_(`PK',`arcto(Tx,PK,ro,outlined graystring(d));Tx:PK',NE,SE,SW,W,X) - linethick = ltx -# outer outline - NE: NEx; SE: NE-(0,m4hght+ltx); SW: SE-(m4wdth,0) - W: SW+(0,m4bhght); NW: NE-(m4twdth,0); X: (NW,W) - m4enteroutline(m4rad,,m4rad) -# thick inner - linethick = m4shadewid/(1bp__)+linethick; lth2 = lthick/2 - NE: NEx-(m4shadewid+lth2,lth2+ltx); SE: (NE,SE)+(0,m4shadewid*3/2) - SW: SE-(m4wdth-m4shadewid*3,0); W: SW+(0,m4bhght-m4shadewid*2-ltx*3/2); - NW: NE-(m4twdth-m4shadewid*3,0); X: (NW,W) - c = 0.9; ri = r-lth2 - move to W; arcto(X,NW,ri+lth2*2,outlined graystring(c)); Tx:NW - Loopover_(`PK',`arcto(Tx,PK,ri,outlined graystring(c));Tx:PK',NE,SE,SW,W,X) - N: 1/2 between NW and NE - line from N to (N,SE) thick (NE.x-NW.x)/(1bp__) outlined graystring(c) - SSW: 1/2 between SW and W - line from SSW to (SE,SSW) thick (W.y-SW.y)/(1bp__) outlined graystring(c) -# inner outline - NE: NE+(lth2,lth2); SE: SE+(lth2,-lth2); SW: SW-(lth2,lth2) - W: W+(-lth2,lth2); NW: NW+(-lth2,lth2); X: (NW,W) - linethick = ltx - m4enteroutline(ri,,ri+lth2*2) - move to (X,(1/2 between SW and W)); - ifelse(`$1',,,`pushkey_(`$1',text,,N)dnl - ifelse(m4text,,`"iflatex(\sf) `$1'" above ljust',`m4text')') - popdef(`m4wdth', `m4hght', `m4bhght', `m4twdth', `m4shadewid', `m4rad', - `m4base', `m4top', `m4bhght' ) popdef(`m4text')dnl - `$3' ] ') -define(`m4enteroutline',`move to W+(`$1',0); arcto(X,NW,`$3',`$2'); Tx: NW - Loopover_(`PP',`arcto(Tx,PP,`$1',`$2'); Tx: PP',NE,SE,SW,W,X)') -define(`m4enterup',`[ u = ifelse(`$1',,kbd_u*0.3) - line right u/4 then up u/2 then right u/6 then up u/2 left u/4+u/6 \ - then down u/2 left u/4+u/6 then right u/6 then down u/2 then right u/4 - ]') - -define(`kbdsymb',`iflatex("\tt\char`$1'",`dsvg_symb(`$1')')') -define(`m4kbdarrow',`arrow thick 1.5 ht kbd_u/5 wid kbd_u/5') - -divert(0)dnl - -define dsvg_symb {"&#$1;"} - -maxpswid = 25*kbd_u -movewid = kbd_u/11 - -define(`rshift',` at Here+(ifelse(`$1',,`kbd_u/8',`$1'),0) ') - -iflatex(`command "{\small\sf"', - `ifsvg(svg_font(Arial,kbd_u*16/13/4,0bp__)) - textht=kbd_u/4 ') - -Row2: [ - textoffset = kbd_u/8 - Loopover_(`KK',`kbdkey(text=KK); move', - kbdsymb(126) ljust kbdsymb(96) ljust, - Loopover_(`NN',`kbdsymb(NN) ljust "m4Lx" ljust,',33,64,35,36,37,94,38,42,40) - kbdsymb(41) ljust "0" ljust, - kbdsymb(95) ljust "-" ljust, - kbdsymb(43) ljust "=" ljust, - kbdsymb(124) ljust kbdsymb(92) ljust, - "" ) - m4kbdarrow left kbd_u*0.5 at last [].Top - ] -Row1: [ - kbdkey(tsmall(Esc,,N)); move right_ last [].wid+movewid*2 - Loopover_(`KK',`kbdkey(KK); move',F1,F2,F3,F4) - move right_ last [].wid/2 - Loopover_(`KK',`kbdkey(KK); move',F5,F6,F7,F8) - move right_ Row2.wid-Here.x-4*last [].wid-4*movewid - Loopover_(`KK',`kbdkey(KK); move',F9,F10,F11,F12) - ] with .sw at Row2.nw+(0,2*kbdrowsep) -Row3: [ -# Uparrow: kbdkey(,,m4kbdarrow up kbd_u/2 at Top) - Tab: kbdkey(text=tsmall(Tab) rshift ljust,wdth=kbd_u*1.6, - [ A: m4kbdarrow left kbd_u/2; line thick A.thick up A.wid at A.end - A: m4kbdarrow right A.len at A-(0,kbd_u/2) - line thick A.thick up A.wid at A.end ] with .w at Top ); move - Loopover_(`KK',`KK: kbdkey(KK); move',Q,W,E,R,T,Y,U,I,O,P) - textoffset = kbd_u/8 - kbdkey(text=kbdsymb(123) ljust kbdsymb(91) ljust); move - kbdkey(text=kbdsymb(125) ljust kbdsymb(93) ljust); move - w = Row2.wid-Here.x - R: box invis wid w-movewid ht last [].Base.ht - ] with .nw at Row2.sw-(0,kbdrowsep) -Row4: [ - Capslock: kbdkey(text=tsmall(Caps Lock) rshift ljust, - wdth=Row3.Tab.wid+Row3.Q.wid/3;); move - Loopover_(`KK',`KK: kbdkey(KK); move',A,S,D,F,G,H,J,K,L) - textoffset = kbd_u/8 - kbdkey(text=kbdsymb(58) ljust kbdsymb(59) ljust); move - kbdkey(text=kbdsymb(34) ljust kbdsymb(39) ljust); move - ] with .nw at Row3.sw-(0,kbdrowsep) - Enter: enterkey(text=tsmall(Enter),, - m4kbdarrow <- from last ""+(kbd_u/2,0) \ - right kbd_u/2 then up kbd_u/5 ) \ - with .ne at (Row2.e,Row3.n)-(movewid,0) -Row5: [ - ShiftL: kbdkey(text=tsmall(Shift) at 0.4 between Top.w and Top.e, - wdth=kbd_u*2.4, m4enterup at 0.15 between Top.w and Top.e); move - Loopover_(`KK',`KK: kbdkey(KK); move',Z,X,C,V,B,N,M) - textoffset = kbd_u/8 - kbdkey(text=kbdsymb(60) ljust kbdsymb(44) ljust); move - kbdkey(text=kbdsymb(62) ljust kbdsymb(46) ljust); move - kbdkey(text=kbdsymb(63) ljust kbdsymb(47) ljust); move - v = Row2.wid-Here.x-kbd_u-movewid*2 - ShiftR: kbdkey(text=tsmall(Shift) at 1/2 between Top.w and Top.e,wdth=v, - m4enterup at 0.15 between Top.w and Top.e); move - kbdkey(); move - ] with .nw at Row4.sw+(0,-kbdrowsep) -Row6: [ - w = 22/18*kbd_u - CtrlL: kbdkey(text=tsmall(Ctrl) rshift ljust,wdth=w); move - kbdkey(,wdth=w); move - kbdkey(text=tsmall(Alt) rshift ljust,wdth=w); move - s = Row2.wid-(7*w+8*movewid) - kbdkey(,wdth=s); move - kbdkey(text=tsmall(Alt) rshift ljust,wdth=w); move - kbdkey(,wdth=w); move - kbdkey(,wdth=w); move - CtrlR: kbdkey(text=tsmall(Ctrl) rshift ljust,wdth=w); move - ] with .nw at Row5.sw+(0,-kbdrowsep) -Arrowkeys: [ iflatex(`command "{\sf\scriptsize"',`textht *=0.66') -Row1:[ textoffset = kbd_u/20 - kbdkey(text=`"Print" ljust "Screen" ljust "SysRQ" ljust'); move - textoffset = kbd_u/12 - kbdkey(text="Scroll" ljust "Lock" ljust); move - kbdkey(text="Pause" ljust "Break" ljust); move - ] -Row2: [ textoffset = kbd_u/12 - kbdkey(text="Insert" ljust); move - kbdkey(text=tsmall(Home) ljust); move - kbdkey(text="Page" ljust "Up" ljust); move - ] with .nw at Row1.sw-(0,2*kbdrowsep) -Row3: [ textoffset = kbd_u/12 - Delete: kbdkey(text="Delete" ljust); move - End: kbdkey(text="End" ljust); move - kbdkey(text="Page" ljust "Down" ljust); move - ] with .nw at Row2.sw+(0,-kbdrowsep) -Row5: [ - move right Row3.End.w.x + movewid - Uparrow: kbdkey(,,m4kbdarrow up kbd_u/2 at Top) - ] with .nw at Row3.sw-(0,Row3.Delete.ht+2*kbdrowsep) -Row6: [ - kbdkey(,,m4kbdarrow left kbd_u/2 at Top); move - kbdkey(,,m4kbdarrow down kbd_u/2 at Top); move - kbdkey(,,m4kbdarrow right kbd_u/2 at Top); move - ] with .nw at Row5.sw-(0,kbdrowsep) - - iflatex(`command "}%"',`textht *=(1/0.66)') - ] with .nw at Row1.ne+(movewid,0) -Keypad: [ move down_ Arrowkeys.n.y-Arrowkeys.Row2.e.y; right_ - textoffset = kbd_u/8 -Row2:[ - kbdkey(text=tsmall(Num) ljust tsmall(Lock) ljust); move - iflatex(`command "{\large"',`textht *=1.5') - kbdkey(text=kbdsymb(47) ljust); move - kbdkey(text=kbdsymb(42) ljust); move - kbdkey(text=kbdsymb(45) ljust); move - iflatex(`command "}"') - ] -Row3:[ textoffset = kbd_u/12 - kbdkey(text="7" ljust tsmall(Home) ljust); move - kbdkey(text="8" ljust "" ljust,,m4kbdarrow up_ kbd_u/3 \ - at 3/4 between Top.ne and Top.sw); move - kbdkey(text="9" ljust tsmall(PgUp) ljust); move - ] with .nw at Row2.sw+(0,-kbdrowsep) -Row4:[ textoffset = kbd_u/12 - kbdkey(text="4" ljust "" ljust,,m4kbdarrow left kbd_u/3 \ - at 0.7 between Top.ne and Top.sw); move - kbdkey(text="5" ljust "" ljust); move - Six: kbdkey(text="6" ljust "" ljust,,m4kbdarrow right kbd_u/3 \ - at 0.7 between Top.ne and Top.sw); move - ] with .nw at Row3.sw+(0,-kbdrowsep) -Row5:[ textoffset = kbd_u/12 - kbdkey(text="1" ljust tsmall(End) ljust); move - kbdkey(text="2" ljust "" ljust,,m4kbdarrow down kbd_u/3 \ - at 0.7 between Top.ne and Top.sw); move - kbdkey(text="3" ljust tsmall(PgDn) ljust); move - ] with .nw at Row4.sw+(0,-kbdrowsep) -Row6:[ textoffset = kbd_u/12 - kbdkey(text="0" ljust tsmall(Ins) ljust, - wdth=Row4.wid-Row4.Six.wid-2*movewid); move - kbdkey(text=kbdsymb(46) ljust tsmall(Del) ljust); move - ] with .nw at Row5.sw+(0,-kbdrowsep) -Col4: [ textoffset = kbd_u/12 - iflatex(`command "{\large"',`textht *=1.5') - kbdkey(text="+" ljust,hght=Row3.n.y-Row4.s.y); move - iflatex(`command "}"',`textht /=1.5') - kbdkey(text=tsmall(Enter) ljust,hght=Row5.n.y-Row6.s.y) \ - with .nw at last [].sw - (0,kbdrowsep) - ] with .ne at (Row2.e,Row3.n) - - ] with .nw at Arrowkeys.ne+(movewid,0) - -iflatex(`command "}%"', -ifsvg(`command "</g>"')) -.PE diff --git a/graphics/circuit_macros/examples/svg/lcctSVG.m4 b/graphics/circuit_macros/examples/svg/lcctSVG.m4 deleted file mode 100644 index ba25e60172..0000000000 --- a/graphics/circuit_macros/examples/svg/lcctSVG.m4 +++ /dev/null @@ -1,200 +0,0 @@ -.PS -# lcctSVG.m4 -maxpswid = 10 -log_init(svg_font(sans-serif,11bp__,2bp__)) -include(icsSVG.m4) - - textht = textht * 0.9 - -define(`dimen_',0.5) -define(`elen_',dimen_) -define(`Groundtype',`') - -define(`breakout',` for i = 1 to `$1' do { - {line `$2' ifelse(`$4',,del,`$4')-jog/2 then `$2' jog/2 `$3' jog \ - then `$3' lg_pinsep} - move `$3' lg_pinsep } - move `$2' ifelse(`$4',,del,`$4')-jog/2 then `$2' jog/2 `$3' jog ') - -del = lg_pinsep -jog = del*2/3 - - right_ -IC1: ic6502("6502" at Chip.sw+(0,-2bp__) below ljust) \ - -Vcc: IC1.Pin8.end.x-del-elen_,IC1.Pin4.y+lg_pinsep+3*del -Reset: IC1.Pin8.end.x-del,Vcc.y+del - - resistor(up_ Vcc.y-IC1.Pin4.y from IC1.Pin4.end) - - line left 2*del from IC1.Pin6.end - line up_ to (Here,Vcc) chop 0 chop elen_ - resistor - - line left del from IC1.Pin40.end - {line to (Here,Reset)} - move left elen_ - {NOT_gate(right_ elen_)} - {reversed(`capacitor',to (Here,Vcc),C)} - down_; resistor; ground(,T,Groundtype) - - line from IC1.Pin2.end to (IC1.Pin2.end,Vcc) - - move to IC1.Pin26.end; breakout(8,left,down) - line to (Here,IC1.sw+(0,-del)) - line down jog right jog/2 -Data: Here - - line from IC1.Pin1.end down_ 2*lg_pinsep; ground(,T,Groundtype) - - line left 2*del from IC1.Pin34.end - line to (Here,Data+(0,-del)) -RWB: Here - - move to IC1.Pin25.end; breakout(16,right,down) - line to (Here,RWB)+(0,-del+jog) then down jog left jog/2 -Addr: Here - - right_ -IC5: ic74LS138("74LS138" at Chip.sw+(0,-2bp__) below ljust) \ - with .Chip.nw at (IC1.Chip.w.x,Addr.y-2*del) - line from IC5.Pin5.end down_ 3*lg_pinsep ; ground(,T,Groundtype) - line from IC5.Pin16.end down_ 1.5*lg_pinsep ; ground(,T,Groundtype) - move to IC5.Pin1.end; breakout(3,left,up) - line to Here.x,Addr.y-jog then up jog right jog/2 then to Addr - - line right_ 2*del from IC1.Pin39.end - { NOT_gate(right_ 3*del) -C1: Here } - capacitor(up_ elen_*0.6) - {resistor(right_ 3*del)} - line up 2*(IC1.Pin37.y-Here.y) - {line from IC1.Pin37.end to (Here,IC1.Pin37)} - right_; xtal(right_ 3*del) - -IC2: ic6116("6116" at Chip.sw+(0,-2bp__) below ljust) \ - with .Chip.nw at Here.x+2*del+lg_plen*L_unit,IC1.Chip.n.y - line from IC2.Pin24.end up to (IC2.Pin24.end,Vcc) - right_ -Or1: OR_gate with .Out at IC2.Pin21.end - line from Or1.In2 left del then down del - line to (C1,Here) then to C1 - line from Or1.In1 left del - line to (Here,IC2.Chip.nw+(0,del)) -RW: Here - move to IC2.Pin17.end; breakout(8,left,down) - line to (Here,Data)+(0,jog) then down jog left jog/2 - line down_ lg_pinsep from IC2.Pin12.end ; ground(,T,Groundtype) - move to IC2.Pin19.end; breakout(11,right,down) - line to (Here,Addr) chop 0 chop jog - line down jog left jog/2 - line down_ lg_pinsep from IC2.Pin20.end ; ground(,T,Groundtype) - - right_ -IC3: ic6116("6116" at Chip.sw+(0,-2bp__) below ljust) \ - with .Chip.nw at IC2.Chip.ne + (IC2.Chip.nw.x - IC1.Chip.ne.x-del,0) -IC4: ic6522("6522" at Chip.sw+(0,-2bp__) below ljust) \ - with .Chip.nw at IC3.Chip.ne + (IC2.Chip.nw.x - IC1.Chip.ne.x-del,0) -IC6: ic74LS138("74LS138" at Chip.sw+(0,-2bp__) below ljust) \ - with .Chip.nw at (IC3.Chip.nw,IC5.Chip.nw) - - line from Vcc to (IC4.Pin34.end.x+del,Vcc.y) - line from Reset to (IC4.Pin34.end,Reset) then to IC4.Pin34.end - - line right_ 2*del from (C1,IC4.Pin25); NOT_gate; line to IC4.Pin25.end - line right del from IC1.Pin4.end; line to Here.x,Vcc.y-del - line to (IC4.Pin21.end,Here)-(del,0) then to IC4.Pin21.end-(del,0) \ - then to IC4.Pin21.end - - line from IC3.Pin21.end to (IC3.Pin21.end,Vcc) - move to IC3.Pin17.end - breakout(8,left,down); line to (Here,Data)+(0,jog) then down jog left jog/2 - move to IC3.Pin19.end - breakout(11,right,down); line to (Here,Addr)+(0,jog) then down jog left jog/2 - move to IC4.Pin26.end - breakout(8,left,down,2*del); - line to (Here,Data)+(0,jog) then down jog left jog/2 then to Data - move to IC4.Pin35.end - breakout(4,left,down); line to (Here,Addr)+(0,jog) then down jog left jog/2 \ - then to Addr - line from IC4.Pin20.end to (IC4.Pin20.end,Vcc) - line down_ lg_pinsep from IC4.Pin1.end; ground(,T,Groundtype) - line left 3*del from IC4.Pin23.end - line to (Here,IC6.Pin7) then to IC6.Pin7.end - line down_ 2*lg_pinsep from IC3.Pin18.end; ground(,T,Groundtype) - - line down_ lg_pinsep from IC6.Pin8.end; ground(,T,Groundtype) - line up_ 2.5*lg_pinsep from IC6.Pin16.end \ - then right_ lg_pinsep then down_ lg_pinsep/2; ground(,T,Groundtype) - move to IC6.Pin5.end; breakout(1,left,up); line up_ lg_pinsep - move to IC6.Pin1.end; breakout(3,left,up) - line to (Here,Addr)-(0,jog) then up jog left jog/2 - - line from RW to (IC3.Pin19.end+(2*del,0),RW) -RWE: Here - line to (RWE,RWB) then to RWB - line from IC4.Pin22.end to (RWE,IC4.Pin22.end) - - right_ -Or3: OR_gate with .Out at IC3.Pin20.end.x-del,IC1.Pin9.y - line from Or3.Out to (IC3.Pin20.end,Or3.Out) then to IC3.Pin20.end - left_ -Or2: OR_gate with .In2 at (IC2.Chip.se,Or3.In1) - line from Or2.Out to (IC2.Pin18.end-(3*del,0),Or2.Out) - line to (Here,IC2.Pin18) then to IC2.Pin18.end - line from Or2.In1 right del; line to (Here,IC1.Pin37) - - line from Or3.In2 left del; line to (Here,IC1.Pin37) - -define(`addrlabel',`dnl - line invis right 4*del from IC5.Pin`$1'.end "svg_small(`$2')" above ') - - addrlabel( 7,E000 - FFFF) - addrlabel( 9,C000 - DFFF) - addrlabel(10,A000 - BFFF) - addrlabel(11,8000 - 9FFF) - addrlabel(12,6000 - 7FFF) - addrlabel(13,4000 - 5FFF) - addrlabel(14,2000 - 3FFF) - addrlabel(15,0000 - 1FFF) - - line from IC5.Pin7.end right 4*del -K: Here; line to (K,IC5.Pin13) - line to (IC6.Pin4.end-(3*del,0),Here) - line to (Here,IC6.Pin4.end) then to IC6.Pin4.end - -Ands: [ right_ - And1: AND_gate; line right del/2 then down del*3/2 \ - then left And1.Out.x-And1.In1.x+del then down del then right_ del/2 - And2: AND_gate with .In1 at Here - line from And2.Out right del/2 then down del then right_ del/2 - And3: AND_gate with .In1 at Here - line right_ del/2 from And3.Out - NOT_gate - line right_ del/2 - And4: AND_gate with .In1 at Here - ] with .And2.In1 at (K.x+2*del,IC5.Pin9.y) - -# line from Ands.And4.Out right del*3; line to (Here,Or3.In1) then to Or3.In1 - line from Ands.And4.Out right IC6.Pin5.end.x-3*del-Ands.And4.Out.x - line to (Here,Or3.In1) then to Or3.In1 - line from Ands.And4.In2 left del - line to (Here,IC5.Pin14) then to IC5.Pin14.end - line from IC5.Pin15.end to (IC2.Pin20.end.x+2*del,IC5.Pin15.y) - line to (Here,Or2.In2) then to Or2.In2 - NOT_gate(right_ from (K,Ands.And3.In2) to Ands.And3.In2) - line from Ands.And2.In2 to (K+(del+jog/2,0),Ands.And2.In2) - line left jog/2 up jog; line to (Here.x,Addr.y-jog) then up jog left jog/2 - line from Ands.And1.In1 to (K.x+del+jog/2,Ands.And1.In1.y) \ - then left jog/2 up jog - line from Ands.And1.In2 to (K.x+del+jog/2,Ands.And1.In2.y) \ - then left jog/2 up jog - - line from IC6.Pin6.end left 2*del; line to (Here,IC4.Pin24) - line from IC4.Pin24.end to (IC2.Chip.se,IC4.Pin24) - move left dimen_; {NOT_gate(right_ dimen_)} - line left jog/2 down jog; line to (Here,Data) chop 0 chop jog - line down jog left jog/2 - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/local_init.m4 b/graphics/circuit_macros/examples/svg/local_init.m4 deleted file mode 100644 index bf2dbda597..0000000000 --- a/graphics/circuit_macros/examples/svg/local_init.m4 +++ /dev/null @@ -1,2 +0,0 @@ -command "<!-- local_init has been read -->" -define(`Inkscape') diff --git a/graphics/circuit_macros/examples/svg/paletteSVG.m4 b/graphics/circuit_macros/examples/svg/paletteSVG.m4 deleted file mode 100644 index 4c5a40f038..0000000000 --- a/graphics/circuit_macros/examples/svg/paletteSVG.m4 +++ /dev/null @@ -1,336 +0,0 @@ -.PS -# This is the source for a prototype svg library of electric circuit -# elements. Each element is a compound svg object with corners on grid points. -# -# Processing svg.m4 and this file thought dpic -v gives -# output that can be read into Inkscape. -# -define(`SIdefaults',` - scale = 25.4 - arcrad = 5 - arrowht = 2.5 - arrowwid = arrowht/2 - boxht = 12 - boxrad = 0 - boxwid = 20 - circlerad = 5 - dashwid = 1.5 - ellipseht = 12 - ellipsewid = 16 - lineht = 12 - linewid = 12 - moveht = 12 - movewid = 12 - textht = ifsvg(3,0) - textoffset = 1 - textwid = 0 -') - -log_init(svg_font(sans-serif,11bp__)) -SIdefaults - - # Assume dpic scale is in mm -gunit = 1 # Inkscape grid dimension -divert(-1) -define(`elen_',`(10*gunit)') # default 2-terminal element length -define(`dimen_',`(10*gunit)')# reference dimension for element bodies -define(`L_unit',`(2*gunit)') # logic gate grid size -define(`N_diam',1) # L_unit size of `not' circles - - # grid round and chop -define(`g_round',`(int((`$1')/gunit+100000.5 )-100000)*gunit') -define(`g_chop', `(int((`$1')/gunit+100000.9999)-100000)*gunit') - # snap to grid -define(`g_snap',`(g_round((`$1').x),g_round((`$1').y))') - -# Box containing an element. The element must be in a box that is -# intersected by a horizontal or vertical line from entry to exit. -define(`Gridbox',`[ command "<g>" - S: Here; `$1'; F: Here - if S.y == F.y then { - move from (max(S.x,F.x),F.y+g_chop(last[].n.y-F.y)) \ - to (min(S.x,F.x),F.y-g_chop(F.y-last[].s.y)) } \ - else { - move from (F.x+g_chop(last[].e.x-F.x),max(S.y,F.y)) \ - to (F.x-g_chop(F.x-last[].w.x),min(S.y,F.y)) } - command "</g>" ] ') - -# Place compound object corners at grid intersections -define(`Below', - `with .n at g_snap(ifelse(`$1',,`last []',`$1').s)-(0,2*gunit)') -define(`Right', - `with .w at g_snap(ifelse(`$1',,`last []',`$1').e)+(2*gunit,0)') - -# for debug -define(`prpos',`print (`$1').x/gunit,(`$1').y/gunit') -divert(0)dnl - -[ - -rpoint_(down_ elen_) -A:Gridbox( resistor ) - Gridbox( resistor(down_ dimen_*1/2) ) Right - Gridbox( resistor(,,E) ) Right - Gridbox( resistor(,,Q) ) Right - Gridbox( resistor(,,H) ) Right - Gridbox( resistor(,,N) ) Right - Gridbox( inductor(,W) ) Right - Gridbox( inductor(,W,,M) ) Right - Gridbox( inductor(,L) ) Right - Gridbox( inductor ) Right - Gridbox( inductor(,,,M) ) Right - Gridbox( capacitor ) Right - Gridbox( capacitor(,C) ) Right - Gridbox( capacitor(,P) ) Right - Gridbox( capacitor(,E) ) Right - Gridbox( capacitor(,K) ) Right - Gridbox( diode ) Right - Gridbox( diode(,K) ) Right - Gridbox( diode(,Z) ) Right - Gridbox( diode(,S) ) Right - Gridbox( diode(,L) ) Right - Gridbox( diode(,V) ) Right - Gridbox( diode(,v) ) Right - Gridbox( diode(,T) ) Right - Gridbox( diode(,CR) ) Right - Gridbox( diode(,D) ) Right - Gridbox( diode(,B) ) Right - Gridbox( diode(,LE) ) Right - Gridbox( [circle diam dimen_*0.7] ) Right - Gridbox( xtal ) Right - dot(at g_snap(last [].e+(2*gunit,0))) - -A:Gridbox( source ) Below(A) - Gridbox( source(,I) ) Right - Gridbox( source(,i) ) Right - Gridbox( source(,V) ) Right - Gridbox( source(,v) ) Right - Gridbox( source(,AC) ) Right - Gridbox( source(,S) ) Right - Gridbox( source(,X) ) Right - Gridbox( source(,F) ) Right - Gridbox( source(,P) ) Right - Gridbox( source(,U) ) Right - Gridbox( source(,R) ) Right - Gridbox( source(,T) ) Right - Gridbox( source(,L) ) Right - Gridbox( nullator ) Right - Gridbox( norator ) Right - Gridbox( consource ) Right - Gridbox( consource(,I) ) Right - Gridbox( consource(,i) ) Right - Gridbox( consource(,V) ) Right - Gridbox( consource(,v) ) Right - Gridbox( source(,Q) ) Right - Gridbox( source(,G) ) Right - -A:Gridbox( battery(up_ elen_) ) Below(A) - Gridbox( battery(up_ elen_,3) ) Right - Gridbox( ttmotor ) Right - Gridbox( memristor ) Right - Gridbox( tline ) Right - Gridbox( fuse ) Right - Gridbox( fuse(,D) ) Right - Gridbox( fuse(,B) ) Right - Gridbox( fuse(,C) ) Right - Gridbox( fuse(,S) ) Right - Gridbox( fuse(,HB) ) Right - Gridbox( fuse(,HC) ) Right - Gridbox( cbreaker ) Right - Gridbox( cbreaker(,,D) ) Right - Gridbox([variable(`[]',A)]) Right - Gridbox([variable(`[]',P)]) Right - Gridbox([variable(`[]',L)]) Right - Gridbox([variable(`[]',N)]) Right - Gridbox([variable(`[]',uN)]) Right - Gridbox([line to Here+(Rect_(dimen_/6,45))]) Right - Gridbox([line up dimen_*0.06 then right dimen_*0.12 \ - then up dimen_*0.06]) Right - Gridbox([em_arrows]) Right - Gridbox([em_arrows(N)]) Right - Gridbox([em_arrows(ND)]) Right - Gridbox([em_arrows(I)]) Right - Gridbox([em_arrows(ID)]) Right - Gridbox([em_arrows(E)]) Right - Gridbox([em_arrows(ED)]) Right - -A:Gridbox( [right_; ground] ) Below(A) - Gridbox( [right_; ground(,T)] ) Right - Gridbox( [right_; ground(,,F)] ) Right - Gridbox( [right_; ground(,,E)] ) Right - Gridbox( [right_; ground(,,S)] ) Right - Gridbox( [right_; ground(,,L)] ) Right - Gridbox( [right_; ground(,,P)] ) Right - Gridbox( transformer(right_ 6*gunit,L) ) Right - Gridbox( transformer(right_ 8*gunit,,2,8) ) Right - Gridbox( transformer(,,8,W,4) ) Right - Gridbox( transformer(,,9,AL) ) Right - Gridbox( transformer(,R,8,AW) ) Right - - rpoint_(right_) -A:Gridbox( switch ) Below(A) - Gridbox( switch(,,O) ) Right - Gridbox( switch(,,D) ) Right - Gridbox( switch(,,OD) ) Right - Gridbox( switch(,,C) ) Right - Gridbox( switch(,,B) ) Right - Gridbox( switch(,C,B) ) Right - Gridbox( dswitch ) Right - Gridbox( dswitch(,,WBK) ) Right - Gridbox( dswitch(,,WBuD) ) Right - Gridbox( dswitch(,,WBF) ) Right - Gridbox( dswitch(,,WBKF) ) Right - Gridbox( dswitch(,,WBL) ) Right - Gridbox( dswitch(,,WBKL) ) Right - -A:Gridbox( dswitch(,,WBT) ) Below(A) - Gridbox( dswitch(,,WdBKC) ) Right - Gridbox( dswitch(,,WBM) ) Right - Gridbox( dswitch(,,WBCO) ) Right - Gridbox( dswitch(,,WBCMP) ) Right - Gridbox( dswitch(,,WBCY) ) Right - Gridbox( dswitch(,,WBCZ) ) Right - Gridbox( dswitch(,,WBCE) ) Right - Gridbox( dswitch(,,WBRH) ) Right - Gridbox( dswitch(,,WBRdH) ) Right - Gridbox( dswitch(,,WBRHH) ) Right - -A:Gridbox( dswitch(,,WBMMR) ) Below(A) - Gridbox( dswitch(,,WBMM) ) Right - Gridbox( dswitch(,,WBMR) ) Right - Gridbox( dswitch(,,WBEL) ) Right - Gridbox( dswitch(,,WBLE) ) Right - Gridbox( dswitch(,,WBKEL) ) Right - Gridbox( antenna ) Right - Gridbox( antenna(,,L) ) Right - Gridbox( antenna(,,T) ) Right - Gridbox( antenna(,,S) ) Right - Gridbox( antenna(,,D) ) Right - Gridbox( antenna(,,P) ) Right - Gridbox( antenna(,,F) ) Right - -A:Gridbox( amp(right_ elen_*10/8) ) Below(A) -D1:Gridbox( integrator ) Right - Gridbox( delay ) Right - Gridbox( opamp ) Right - Gridbox( opamp(,,,,T) ) Right - Gridbox( amp(,dimen_/2) ) Right - Gridbox( integrator(,dimen_/2) ) Right - Gridbox( delay(,delay_rad_) ) Right - Gridbox( opamp(,,,dimen_*2/3) ) Right - Gridbox( opamp(,,,dimen_*2/3,T) ) Right - -right_ -A:Gridbox( relay(2) ) Below(A) - Gridbox( relay(2,O) ) Right - Gridbox( relay(2,C) ) Right - Gridbox( relay ) Right - Gridbox( contact ) Right - Gridbox( contact(O) ) Right - Gridbox( contact(C) ) Right - -up_ -A:Gridbox( [circle rad 29/10*gunit] ) Below(A) - Gridbox( bi_tr ) Right - Gridbox( bi_tr(,R) ) Right - Gridbox( bi_tr(,,P) ) Right - Gridbox( bi_tr(,R,P) ) Right - - Gridbox( j_fet ) Right - Gridbox( j_fet(,R) ) Right - Gridbox( j_fet(,,P,) ) Right - Gridbox( j_fet(,R,P,) ) Right - Gridbox( e_fet(,,,) ) Right - Gridbox( e_fet(,R,,) ) Right - - Gridbox( e_fet(,,P,) ) Right - Gridbox( e_fet(,R,P,) ) Right - Gridbox( d_fet(,,,) ) Right - Gridbox( d_fet(,R,,) ) Right - Gridbox( d_fet(,,P,) ) Right - Gridbox( d_fet(,R,P,) ) Right - -A:Gridbox( igbt ) Below(A) - Gridbox( ujt ) Right - Gridbox( ujt(,,P) ) Right -rpoint_(down_) - Gridbox( thyristor ) Right - Gridbox( thyristor(,B) ) Right - Gridbox( thyristor(,BG) ) Right - Gridbox( thyristor(,A) ) Right - Gridbox( thyristor(,C) ) Right -rpoint_(up_) - Gridbox( j_fet ) Right - Gridbox( e_fet ) Right - Gridbox( e_fet(,,,S) ) Right - Gridbox( e_fet(,,P) ) Right - Gridbox( e_fet(,,P,S) ) Right - Gridbox( d_fet ) Right - Gridbox( d_fet(,,,S) ) Right - Gridbox( d_fet(,,P,) ) Right - Gridbox( d_fet(,,P,S) ) Right - Gridbox( j_fet ) Right - Gridbox( j_fet(,,P) ) Right - Gridbox( mosfet(,,uHSDF) ) Right - -rpoint_(right_) -A:Gridbox( tgate ) Below(A) - Gridbox( tgate(,B) ) Right - Gridbox( ptrans ) Right - -A:Gridbox( AND_gate ) Below(A) - Gridbox( OR_gate ) Right - Gridbox( NAND_gate ) Right - Gridbox( NOR_gate ) Right - Gridbox( XOR_gate ) Right - Gridbox( NXOR_gate ) Right - Gridbox( BUFFER_gate ) Right - Gridbox( NOT_gate ) Right - -# input lines for OR-like gates. -define(`OR_inlgth',`(-sqrt(OR_rad^2-G_hht^2)+sqrt(OR_rad^2-`$1'^2))*L_unit') - - Gridbox( [ {move right_ gunit} - {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)} - {line right_ OR_inlgth(0)} - {line right_ OR_inlgth(2) from Here+svec_(0,2)} - {line same from Here-svec_(0,2)} - {line right_ OR_inlgth(1) from Here+svec_(0,1)} - {line same from Here-svec_(0,1)}] ) Right - Gridbox( [ {move right_ gunit} - {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)} - {line right_ OR_inlgth(0)} - {line right_ OR_inlgth(2) from Here+svec_(0,2)} - {line same from Here-svec_(0,2)}] ) Right - Gridbox( [ {move right_ gunit} - {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)} - {line right_ OR_inlgth(2) from Here+svec_(0,2)} - {line same from Here-svec_(0,2)}] ) Right - Gridbox( [ {move right_ gunit} - {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)} - {line right_ OR_inlgth(0)}] ) Right - -right_ -A:Gridbox( speaker ) Below(A) - Gridbox( speaker(,,H) ) Right - Gridbox( bell ) Right - Gridbox( microphone ) Right - Gridbox( buzzer ) Right - Gridbox( buzzer(,,C) ) Right - Gridbox( earphone ) Right - Gridbox( earphone(,,C) ) Right - Gridbox( nport ) Right - Gridbox( nterm ) Right - -A:Gridbox( FlipFlop(D) ) Below(A) - Gridbox( FlipFlop(T) ) Right - Gridbox( FlipFlop(RS)) Right - Gridbox( FlipFlop(JK)) Right - - ] with .nw at (0,0) - -#"A draft palette of a few elements for Inkscape using a 1 mm grid" \ -# ljust below at last [].sw - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/pwrsupplySVG.m4 b/graphics/circuit_macros/examples/svg/pwrsupplySVG.m4 deleted file mode 100644 index 37c7524070..0000000000 --- a/graphics/circuit_macros/examples/svg/pwrsupplySVG.m4 +++ /dev/null @@ -1,76 +0,0 @@ -.PS -# pwrsupply.m4 -cct_init -ifdef(`m4pco',`resetrgb') - -Singlephase:[ - linewid = linewid*1.2 - down_ - T:transformer - line left_ elen_/8 from T.P1 - rgbdraw(0,0,1,fuse(left_ elen_/3,D)) - reversed(`switch',left_ elen_*2/3) - gap(down_ to (Here,T.P2)) - { fuse(right_ 2*dimen_/5 at last []) } - line to T.P2 - blen = dimen_/2 - W: T.TS+(dimen_/2,0) - N: W+(blen,blen) - S: W+(blen,-blen) - E: S+(blen,blen) - diode(from W to N) - diode(from S to E) - G: gap(from E+(dimen_,0) down_ (E.y-S.y)*5/4); llabel(+,,-) - C: capacitor(down_ G.start.y-G.end.y from 0.5 between E and G.start,C) - - setrgb(255,0,0) - line from T.S1 to (T.S1,N); line to N - dot - diode(to E); dot - line from E to G.start; dot - dot(at C.start) - resetrgb - - setrgb(0,255,0,,D) - dot(at C.end) - dot(at G.end) - ground - line to (W,Here); line to W; dot - diode(to S); dot - line to (T.S2,Here); line to T.S2 - resetrgb - ] - -Threephase: [ -L:[ loadht = 2*elen_ - Load: ebox(down_ loadht,0.4,0.25); llabel(+,,-) - hsep = dimen_*3/4 - for_(1,3,1, - `line left_ hsep; ifelse(m4x,3,,dot) - { diode(up_ loadht/3) ; line up_ loadht/3; diode(up_ loadht/3) - T`'m4x: ifelse(m4x,3,Here,dot) - line right hsep } ') - ] - -T:[ - X1: transformer(down_ dimen_*2/3,,,,4) - X2: transformer(down_ dimen_*2/3,,,,4) with .P1 at X1.P2 - X3: transformer(down_ dimen_*2/3,,,,4) with .P1 at X2.P2 - line from X1.M4Core1.end to X3.M4Core1.start - line from X1.M4Core2.end to X3.M4Core2.start - for_(1,3,1, - `move to X`'m4x.P2 ; ifelse(m4x,3,,dot) - line left_ dimen_ - P`'m4x: dot(,,1)') - line left_ dimen_/2 from X1.P1 then down X1.P1.y-P3.y; dot - B: X1.S2+(dimen_/2,0) - line from X1.S1 right B.x-X1.S2.x then down X1.S1.y-X3.S1.y then to X3.S1 - line from X2.S1 to (B,X2.S1); dot - ] with .X2.S2 at L.w-(dimen_,0) - - line from T.X1.S2 to (L.T3,T.X1.S2); dot - line from T.X2.S2 to (L.T2,T.X2.S2); dot - line from T.X3.S2 to (L.T1,T.X3.S2); dot -] with .sw at Singlephase.se+(0.3,0) - -.PE diff --git a/graphics/circuit_macros/examples/svg/quickSVG.m4 b/graphics/circuit_macros/examples/svg/quickSVG.m4 deleted file mode 100644 index c4ddb20122..0000000000 --- a/graphics/circuit_macros/examples/svg/quickSVG.m4 +++ /dev/null @@ -1,21 +0,0 @@ -.PS # Pic input begins with .PS -# quickSVG.m4 -cct_init # Set defaults - -elen = 0.75 # Variables are allowed; default units are inches -move right 0.4 -Origin: Here # Position names are capitalized - svgLink(SourcesSVG.svg,source(up_ elen)) - llabel(-,svg_it(v`'svg_sub(s)),+) - svgLink(ResistorsSVG.svg,resistor(right_ elen)); rlabel(,svg_it(R),) - dot - { # Save current position and direction - capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y) - rlabel(+,svg_it(v),-); llabel(,svg_it(C)) - dot - } # Restore position and direction - line right_ elen*2/3 - {move right 0.2} - inductor(down_ Here.y-Origin.y); rlabel(,svg_it(L),); b_current("svg_it(i)") - line to Origin -.PE # Pic input ends diff --git a/graphics/circuit_macros/examples/svg/randomSVG.m4 b/graphics/circuit_macros/examples/svg/randomSVG.m4 deleted file mode 100644 index 4ca2056d68..0000000000 --- a/graphics/circuit_macros/examples/svg/randomSVG.m4 +++ /dev/null @@ -1,100 +0,0 @@ -.PS -# randomSVG.m4 -gen_init(svg_font(sans-serif,9bp__)) -NeedDpicTools - -################################################################ -# hscale(right length,nlabels, -# minlabel,maxlabel,[T][N]) -# arg5=T: top axis, N: nolabels - define(`hscale',`[ define(`hs_nl',`ifelse(`$2',,5,`$2')') - A: line `$1' ; Start: A.start; End: A.end - td = 1/(hs_nl-1)*A.len/5 - define(`hs_ud',`ifinstr(`$5',T,down,up)') -# Major tics - for i=1 to hs_nl-2 do { line hs_ud graphsize/20 thick 0.4 \ - from i/(hs_nl-1) between A.start and A.end } -# Minor tics - for i=0 to hs_nl-2 do { Ts: i/(hs_nl-1) between A.start and A.end - for j=1 to 4 do { line thick 0.4 hs_ud graphsize/20/2 from Ts+(j*td,0) } } -# Labels - ifinstr(`$5',N,,`for_(0,eval(hs_nl-1),1, - `Ts: m4x/(hs_nl-1) between A.start and A.end - s_box("%g",`$3'+m4x/(hs_nl-1)*(`$4'-(`$3'))) \ - at Ts ifelse(`$5',T,above,below)') ') - ]') -# vscale(up length,nlabels, -# minlabel,maxlabel,[R][N] ) -# arg5=R: right axis, N: nolabels - define(`vscale',`[ define(`vs_nl',`ifelse(`$2',,5,`$2')') - A: line `$1' ; Start: A.start; End: A.end - td = 1/(vs_nl-1)*A.len/5 - define(`vs_lr',`ifinstr(`$5',R,left,right)') -# Major tics - for i=1 to vs_nl-2 do { line vs_lr graphsize/20 thick 0.4 \ - from i/(vs_nl-1) between A.start and A.end } -# Minor tics - for i=0 to vs_nl-2 do { Ts: i/(vs_nl-1) between A.start and A.end - for j=1 to 4 do { line thick 0.4 vs_lr graphsize/20/2 from Ts+(0,j*td) } } -# Labels - ifinstr(`$5',N,,`for_(0,eval(vs_nl-1),1, - `Ts: m4x/(vs_nl-1) between A.start and A.end - s_box("%g",`$3'+m4x/(vs_nl-1)*(`$4'-(`$3'))) \ - at Ts ifelse(`$5',R,ljust,rjust)')') - ]') -# f_gauss(x,mean,stddev) - define f_gauss`{ std_gauss(($1-($2))/($3))/($3) }' - define std_gauss`{ expe(-($1)^2/2)/sqrt(twopi_) }' -################################################################ - -[ - n = 2000 # number of samples - stddev = 0.25 - graphsize = 2 - - B: box wid graphsize ht graphsize ; { move left 0.4 from B.w } -# Gemerate n Gaussian random numbers - randn(z,n,0,stddev) - m = 0 - for i=1 to n-1 by 2 do { m +=1; x[m] = z[i]; y[m] = z[i+1] - dot(at B+(x[m],y[m])) - } - - hscale(right B.wid,5,-1,1) with .Start at B.sw - hscale(right B.wid,5,-1,1,TN) with .Start at B.nw - vscale(up B.ht,5,-1,1) with .Start at B.sw - vscale(up B.ht,5,-1,1,RN) with .Start at B.se - - N: box invis wid B.wid ht B.ht with .sw at B.nw+(0,graphsize/10) - nb = 20 - binmax = n/5*0.5 - dx = N.wid/nb - histbins(x,m,-1,1,nb,hbin) - for i=0 to nb-1 do { line up hbin[i]/binmax * N.ht \ - from N.sw+((0.5+i)*dx,0) thick dx/(1bp__) outlined "gray" } - box wid N.wid ht N.ht at N -# vscale(up N.ht,5,0,1) with .Start at N.sw - - E: box invis wid B.wid ht B.ht with .sw at B.se+(graphsize/10,0) - nb = 20 - binmax = n/5*0.5 - dy = E.ht/nb - histbins(y,m,-1,1,nb,vbin) - for i=0 to nb-1 do { line right vbin[i]/binmax * E.wid \ - from E.sw+(0,(0.5+i)*dy) thick dy/(1bp__) outlined "gray" } - box wid E.wid ht E.ht at E -# hscale(right E.wid,5,0,1) with .Start at E.sw - -ng = 16 -for i=0 to ng do { x = i/ng*N.wid - U: x,(f_gauss(x,N.wid/2,stddev)*m*dx)/binmax*N.ht - X[i]: N.sw+U - Y[i]: E.nw+(U.y,-U.x) } - fitcurve(X,ng) - fitcurve(Y,ng) - -] -#showbox_ - -command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/recycleSVG.m4 b/graphics/circuit_macros/examples/svg/recycleSVG.m4 deleted file mode 100644 index 135f31414e..0000000000 --- a/graphics/circuit_macros/examples/svg/recycleSVG.m4 +++ /dev/null @@ -1,128 +0,0 @@ -.PS -# recycle.m4 -gen_init -NeedDpicTools -[ -# Gradient fill and clipping are simply -# done with PStricks or Tikz but the other -# postprocessors don't all have this -# facility so the following calculates -# shading boundaries and lines. - -define ShadePoint { testexpr(i, $1<f1, $1<f2, $1<f3 ) - Px: $1 between P0 and Pz - S: move from Px to Px+Up - case(i+1, - M4L: LCintersect(S,T1,stripwd/2) - M4R: ($1-f2)/(1-f2) between P9 and P8 - , - M4L: $1/f1 between P0 and P4 - M4R: $1/f1 between P0 and P3 - , - M4L: Intersect_(S,M57) - M4R: LCintersect(S,P1,stripwd/2) - , - M4L: Intersect_(S,M57) - M4R: ($1-f2)/(1-f2) between P9 and P8 - ) - line outlined rgbstring($2,$3,$4) from M4L to M4R - } - -define ShadeTail { testexpr(i, $1<g1, $1<g2, $1<g3 ) - Px: $1 between T4 and Qz - S: move from Px to Px+AcrossTail - case(i+1, - M4L: LCintersect(S,T1,stripwd/2,R) - M4R: LCintersect(S,T1,stripwd/2) - , - M4L: $1/g1 between T5 and T6 - M4R: $1/g1 between T3 and T2 - , - M4L: LCintersect(S,T1,stripwd/2,R) - M4R: $1/g2 between T3 and P6 - , - M4L: LCintersect(S,T1,stripwd/2,R) - M4R: ($1-g2)/(g3-g2) between P6 and P7 - ) - line outlined rgbstring($2,$3,$4) from M4L to M4R - } - -# `recycle(width)' -define(`recycle',`[ Origin: Here - space = 2*linethick pt__ - stripwd = ($1-space)/3.765544 - for angle=0 to 240 by 120 do { - Right: (dprot(angle*dtor_,stripwd,0)) - Up: (dprot(angle*dtor_,0,stripwd/2)) - P0: Here+Right*space/stripwd - Axis: move from P0 to P0+Right*3/4; P1: Here - P2: P1-Up - P3: 1.5 between P1 and P2 - P4: P1 + (P1-P3) - P5: P1 + Up - P6: P5+Right/sqrt(3)/2 - P7: P6+(P6-P5) - T1: 2 between P1 and P6 - P8: T1+(dprot((angle-30)*dtor_,stripwd/2,0)) - P9: P1+(P8-T1) - T2: T1+(dprot((angle+210)*dtor_,stripwd/2,0)) - AcrossTail: T1-T2 - T3: P6+(dprot((angle+120)*dtor_,stripwd,0)) - T4: T3+AcrossTail - T5: 2 between T3 and T4 - T6: 2 between T2 and T1 - V: move from P8 to P8-Up; Pz: Intersect_(Axis,V) - t = distance(P0,Pz) - f1 = distance(P1,P0) / t - V: move from P9 to P9+Up; R: Intersect_(Axis,V); f2 = distance(P0,R) / t - V: move from P7 to P7-Up; R: Intersect_(Axis,V); f3 = distance(P0,R) / t - n = int(t/lthick*1.5) - M57: move from P5 to P7 - ShadeObject( ShadePoint,n, - 0,1,1,1, - 1,0.5,0.5,0.5) with .Origin at Origin - point - J: move from T4 to T1; Qz: LCintersect(J,T1,stripwd/2,R) - u=distance(T4,Qz) - g1 = distance(T1,T4) / u - g2 = stripwd / u - V: move from P7 to P7+AcrossTail; R: Intersect_(V,J) - g3 = distance(R,T4) / u - m = int(u/lthick*1.5) - ShadeObject(ShadeTail,m, - 0,1,1,1, - 1,0.5,0.5,0.5) with .Origin at Origin - tail -# { for i=0 to 9 do { exec sprintf("{\"P%g\" at P%g}",i,i) } } -# { for i=1 to 6 do { exec sprintf("{\"T%g\" at T%g}",i,i) } } - move to T4 - } - ]') -define(`tail',`line from P7 to P6 then to T3 then to T5 then to T6 - arc cw to P7 with .c at T1') - -define(`point',`line from P2 to P3 then to P0 then to P4 then to P5 then to P7 - arc ccw to P8 with .c at T1 - line to P9 - arc cw to P2 with .c at P1') - -recycle(2) -] -[ -# yinyang.m4 -ifdpic(` -circlerad = 0.5 -shade(0, -A: arc ccw rad circlerad*2 to Here+(4*circlerad,0) - ) -B: circle colored "white" with .c at 1/4<A.w,A.e> - arc cw rad circlerad from B.e to B.w with .c at B.c - circle colored "black" with .c at 3/4<A.w,A.e> - circle rad circlerad*2 with .c at A.c - circle rad circlerad/3 fill_(0) at 0.5<A.w,A.c> - circle rad circlerad/3 fill_(1) at 0.5<A.c,A.e> -',` -box wid 1 ht 0.75 "Yinyang.m4" "requires" "dpic" -') -] with .w at last [].e+(0.2,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/relaycoilSVG.m4 b/graphics/circuit_macros/examples/svg/relaycoilSVG.m4 deleted file mode 100644 index fc2bc2738f..0000000000 --- a/graphics/circuit_macros/examples/svg/relaycoilSVG.m4 +++ /dev/null @@ -1,47 +0,0 @@ -.PS -# relaycoil.m4 -cct_init - - spc = dimen_/3 -{ relaycoil; S: "svg_tt(`relaycoil')" at last [].s+(0,-20bp__) - { "svg_it(V1)" wid 15bp__ at last [].V1 rjust - "svg_it(V2)" at last [].V2 ljust } - K: relaycoil(NX) with .nw at last [].ne+(spc*4,0); "svg_tt((NX))" \ - at (last [],S) - { thinlines_ - spline <- from K.A1 left 7bp__ then up 4bp__ left 4bp__ - "svg_it(A1)" rjust - arrow <- from K.A2 left 10bp__; "svg_it(A2)" rjust - spline <- from K.A3 left 7bp__ then down 4bp__ left 4bp__ - "svg_it(A3)" rjust - spline <- from K.B1 right 7bp__ then up 4bp__ right 4bp__ - "svg_it(B1)" ljust - arrow <- from K.B2 right 10bp__; "svg_it(B2)" ljust - spline <- from K.B3 right 7bp__ then down 4bp__ right 4bp__ - "svg_it(B3)" ljust - thicklines_ - } - relaycoil(AXSR) with .nw at last [].ne+(spc*5,0); "svg_tt((AXSR))" \ - at (last [],S) - { "svg_it(V1)" at last [].V1 rjust; "svg_it(V2)" at last [].V2 rjust } - relaycoil(BXSR) with .nw at last [].ne+(spc*2,0); "svg_tt((BXSR))" \ - at (last [],S) - { "svg_it(V1)" at last [].V1 ljust; "svg_it(V2)" at last [].V2 ljust } - relaycoil(SR) with .nw at last [].ne+(spc*4,0); "svg_tt((SR))" at (last [],S) - relaycoil(SO) with .nw at last [].ne+(spc,0); "svg_tt((SO))" at (last [],S) - relaycoil(SOR) with .nw at last [].ne+(spc,0); "svg_tt((SOR))" at (last [],S) - } -{ - move down_ 3/4; right_ - relaycoil(HS); S: "svg_tt((HS))" at last [].s+(0,-12bp__) - relaycoil(NAC) with .nw at last [].ne+(spc,0); "svg_tt((NAC))" at (last [],S) - relaycoil(AC) with .nw at last [].ne+(spc,0); "svg_tt((AC))" at (last [],S) - relaycoil(ML) with .nw at last [].ne+(spc,0); "svg_tt((ML))" at (last [],S) - relaycoil(PO) with .nw at last [].ne+(spc,0); "svg_tt((PO))" at (last [],S) - relaycoil(RM) with .nw at last [].ne+(spc,0); "svg_tt((RM))" at (last [],S) - relaycoil(RH) with .nw at last [].ne+(spc,0); "svg_tt((RH))" at (last [],S) - relaycoil(TH) with .nw at last [].ne+(spc,0); "svg_tt((TH))" at (last [],S) - relaycoil(EL) with .nw at last [].ne+(spc,0); "svg_tt((EL))" at (last [],S) - } - -.PE diff --git a/graphics/circuit_macros/examples/svg/roseSVG.m4 b/graphics/circuit_macros/examples/svg/roseSVG.m4 deleted file mode 100644 index 32c5dfdbc5..0000000000 --- a/graphics/circuit_macros/examples/svg/roseSVG.m4 +++ /dev/null @@ -1,166 +0,0 @@ -.PS -# roseSVG.m4 -gen_init -ifelse( -ifpstricks(T)`'ifmpost(T)`'ifpostscript(T)`'ifpdf(T)`'ifpgf(T)`'ifsvg(T),, -`This diagram is for PSTricks, postscript, PDF, MetaPost, or SVG', -` - -scale = 1.25 -Rose: [ -define(`gold_',`1,0.84,0') - -define(`rose',`point_(`$2'); CC: (vec_(`$1',0)); rrad = `$3' - move to CC - tmp = rrad-stripwid - {circle shaded rgbstring(gold_) rad rrad-sthick at CC} - {circle shaded rgbstring(gold_) rad tmp-sthick at CC} - {line to rvec_(rrad,0) chop tmp chop 0 } - {line to rvec_(-rrad,0) chop tmp chop 0 } - {line to rvec_(0,rrad) chop tmp chop 0 } - {line to rvec_(0,-rrad) chop tmp chop 0 } - {line from rvec_(-tmp/sqrt(2),-tmp/sqrt(2)) to rvec_(tmp/sqrt(2),tmp/sqrt(2))} - {line from rvec_(-tmp/sqrt(2),tmp/sqrt(2)) to rvec_(tmp/sqrt(2),-tmp/sqrt(2))} - {circle shaded rgbstring(gold_) rad tmp-stripwid-sthick at CC} - tmp = last circle.rad/sqrt(2) - line thick stripthick from rvec_(-tmp,0) to rvec_(0,-tmp) \ - then to rvec_(tmp,0) then to rvec_(0,tmp) then to rvec_(-tmp,0) \ - shaded rgbstring(gold_) - ') - -define(`spt_',`/72.27') - -[ lsk = 1.2 - sector = 360*dtor_/16 - exterior = 2.49 - outer_circle = exterior-0.55 - inner_circle = 1.1 - spoke_tail = 0.41 - spokethick = 0.09/(1spt_) # points - stripwid = 0.05 - stripthick = 1.6/1.2 - midroserad = inner_circle*sin(sector/2)-stripwid/2 - outerroserad = outer_circle*sin(sector/4)-stripwid/2 - del = 0.05 - -C: (0,0) - circle rad exterior fill_(0) at C - circle shaded rgbstring(gold_) rad outer_circle at C - circle rad spoke_tail fill_(0) at C - linethick = stripthick - sthick = linethick/2 spt_ - for i=0 to 15 do { - move to rect_(spoke_tail+1.5*stripwid,sector*i); - for j=-1 to 1 by 2 do { - {point_(sector*(i+j*0.5)) - line to rvec_(outer_circle-spoke_tail,0) } - { point_(sector*i) - move to rvec_(0,j*spokethick spt_) - line to rvec_(outer_circle-spoke_tail,0) \ - chop outer_circle-inner_circle chop 0 - } - } - crad = 0.25 +1.5*stripwid - cthick = 1.5*stripwid/(1spt_) - X: rect_(inner_circle+midroserad,sector*i) - circle outlined rgbstring(gold_) rad crad-(cthick/2 spt_) thick cthick at X - circle rad crad - sthick at X - } - for i=0 to 15 do { - X: rect_(inner_circle+midroserad,sector*i) - circle fill_(0) rad crad-1.5*stripwid-sthick at X - - for j = -1 to 1 by 2 do { move to X+vec_(0.20,j*0.14) - point_(sector*(i+j*0.25)) - line to rvec_(1.5*stripwid,0) } - - circle shaded rgbstring(gold_) rad midroserad*2/3-sthick at X - circle rad midroserad*2/3-stripwid-sthick at X - line from X to -(midroserad*2/3/(inner_circle+midroserad))<X,C> - } - - crad = spoke_tail+7*stripwid - cthick = 2*stripwid/(1spt_) - circle outlined rgbstring(gold_) rad crad-cthick/2 spt_ thick cthick at C - circle rad spoke_tail+1.5*stripwid-sthick at C - for i=5 to 7 do { circle rad spoke_tail+i*stripwid-sthick at C } - # Spokes and roses - for i=0 to 15 do { - rose(inner_circle,sector*i,midroserad) - line thick spokethick/lsk from C to rect_(outer_circle,sector*(i-0.5)) - line thick spokethick/lsk from C to rect_(outer_circle,sector*i) \ - chop inner_circle+midroserad*2 chop 0 - for j=-1 to 1 by 2 do { - X: rect_(outer_circle+outerroserad-linethick spt_,sector*(i+j*0.25)) - linethick = 1/lsk - circle colored rgbstring(gold_) rad outerroserad*1/2-1/lsk/2 spt_ at X - linethick = stripthick - circle fill_(0) rad outerroserad*1/3-sthick at X - point_(sector*(i+j*0.25)) - line from X to X + vec_(outerroserad,0) - rose(outer_circle,sector*(i+j*0.25),outerroserad) - } - } - # Outer decorations - for i=0 to 31 do { - move to rect_(exterior-0.25,sector*i/2); point_(sector*i/2) - { line thick stripthick from rvec_(del,3.5*del) to rvec_(-del,0) \ - then to rvec_(del,-3.5*del) then to rvec_(del,3.5*del) \ - shaded rgbstring(gold_) } - circle rad stripwid-sthick at Here - } - smrad = 0.08 - for i=0 to 7 do { - point_(sector*2*i) - move to C + vec_(midroserad+smrad/4,0) - { circle shaded rgbstring(gold_) rad smrad-sthick at Here} - { circle shaded rgbstring(gold_) rad smrad/2-sthick at Here} - line from rvec_(smrad/2,0) to rvec_(smrad,0) - } - - tmp = midroserad-stripwid - circle shaded rgbstring(gold_) rad midroserad-sthick at C - circle shaded rgbstring(gold_) rad tmp-sthick at C - CQ: circle invis rad tmp-linethick*4/2 spt_ at C - line from CQ.e to CQ.n to CQ.w to CQ.s to CQ.e to CQ.n - CQ: 0.5<CQ.e,CQ.n> - tmp = (distance(CQ,C) - linethick*3/2 spt_)*sqrt(2) - box wid tmp ht tmp at C - ] with .sw at 1,1 - -] # Rose - -Halftone: [ -#.PS -# SpiralHalftoneSVG.m4 -# https://tex.stackexchange.com/questions/584455/how-to-draw-this-spiral-made-of-circles-in-latex -# gen_init - - r = 133/255; g = 196/255; b = 100/255 - skale = 2/3*scale - skale = 2.49/4.25 - - holerad = 1*skale - outerrad = 4.25*skale - - define grcirc {circle diam $1 colored rgbstring(r,g,b)} - - npts = 200 - outercdiam = (outerrad/npts)*twopi_ - angoffset = -5*pi_/4 - da = twopi_/npts*10/3 - radc = outerrad - for x = 0 to 1 do { - cdiam = outercdiam*radc/outerrad - for i=0 to npts-1 do { ang = i/npts*twopi_ - grcirc(cdiam*abs(ang-pi_)/pi_) at rect_(radc,ang+angoffset) } - angoffset += da - radc -= cdiam*2/3 - if radc < holerad then { x = 1 } else { x = 0 } - } - -#.PE - ] with .sw at Rose.se+(0.2,0) - -') -.PE diff --git a/graphics/circuit_macros/examples/svg/sfgSVG.m4 b/graphics/circuit_macros/examples/svg/sfgSVG.m4 deleted file mode 100644 index 666f311ca4..0000000000 --- a/graphics/circuit_macros/examples/svg/sfgSVG.m4 +++ /dev/null @@ -1,135 +0,0 @@ -.PS -# sfgSVG.m4 -gen_init(svg_font(Times,11bp__)) -sfg_init( 1.2 ) # scale default size by 1.2 - -textht = textht*0.9 - -# Graph 1 -move right 0.15 -T:[ - Ft: sfgnode(,f(t),sfgbelow) - sfgline(,1/K) - Y1: sfgnode(,y`'svg_sub(1),sfgbelow rjust) - sfgline(,K/M) - DDY2: sfgnode(,y`'svg_sub(2),sfgbelow rjust) - {".." at DDY2 +(-3,-1)*textoffset} - sfgline(,1/s) - DY2: sfgnode(,y`'svg_sub(2) = x`'svg_sub(2),sfgbelow ljust) - {"." at DY2 +(2,-1)*textoffset} - sfgline(,1/s) - Y2: sfgnode(,y`'svg_sub(2) = x`'svg_sub(1),sfgbelow ljust) - - sf = 1 - sfgarc(from DY2 to DDY2,-B/M,below,,sf) - sfgarc(from Y2 to DDY2,-K/M,above,ccw,sf) - sfgarc(from Y2 to Y1,1,sfgabove,,sf) - ] - -# Graph 2 -B: [ - R1: sfgnode(,r`'svg_sub(1),sfgabove) - sfgline(,1) - X1: sfgnode(,x`'svg_sub(1),ljust) - R2: sfgnode(at R1+(0,-1),r`'svg_sub(2),sfgabove) - sfgline(,1) - X2: sfgnode(,x`'svg_sub(2),ljust) - sfgarc(from X1 to X2,a`'svg_sub(21),rjust,ccw) - sfgarc(from X2 to X1,a`'svg_sub(12),ljust,ccw) - - sfgself(at X1,,q`'svg_sub(11)) - sfgself(at X1,R,a`'svg_sub(11),ljust,cw,1.5) - sfgself(at X2,-90,a`'svg_sub(22),sfgbelow) - ] with .w at T.e + (linewid/2,-linewid/4) - -# Graph 3 -G3: [ - # change node spacing and increase node size - sfg_wid = 0.85; sfg_rad = 0.35/2 - for_(1,4,1,`N`'m4x: sfgnode(,m4x,,fill_(0.9)) - sfgself(at N`'m4x,-90,P`'svg_sub(m4x),,cw) - ifelse(m4x,4,,`sfgline(,G`'svg_sub(m4x),sfgbelow)') ') - sfgarc(from N2 to N1,F`'svg_sub(2),sfgabove,ccw,) - sfgarc(from N3 to N1,F`'svg_sub(3),sfgbelow,ccw,1.4) -] with .nw at T.sw - -A: [ sfg_wid = 0.75; sfg_rad = 0.15 - arrow right linewid*2/3 - P: sfgnode(,p) - sfgself(,90,a,below,cw) - arrow from P.e "b" below - Q: sfgnode(,q) - R: sfgnode(at Q+(Q-P),r) # for dpic - sfgarc(from Q to R,c,above,cw) - sfgarc(from R to Q,d,below,cw) - sfgself(at R,-90,e,above,cw) - arrow right linewid*2/3 from R.e - ] with .w at G3.e+(linewid/2,0) - -define(`svg_choose',`[ P:"svg_fsize(( ),150)" - "svg_small(`$1')" at P+(0,7bp__) - "svg_small(`$2')" at P-(0,3bp__) - ]') - -G4: [sfg_init( 2.0,0.25/2 ) # change node spacing and increase node size - s1 = 0.9 - s2 = 1.2 - N0: sfgnode(,svg_fsize(0,120),,invis) - sfgline(right_ sfg_wid,`svg_nu',below,->) - N1: sfgnode(,svg_fsize(1,120),,invis) - { sfgarc(to N0 ->,(1-p)`svg_gamma'+`svg_nu',above,ccw,s1) } - sfgline(right_ sfg_wid,`svg_nu'+`svg_lambda',below,->) - N2: sfgnode(,svg_fsize(2,120),,invis) - { sfgarc(to N1 ->,,,ccw,s1) } - { "p(1-p)svg_gamma+2`'svg_nu" at last [].M+(11bp__,0) above } - { svg_choose(2,1) at last [].M+(-19bp__,8bp__) } - { sfgarc(to N0 ->,(1-p)svg_sup(2)`svg_gamma',above,ccw,s2) } - sfgline(right_ sfg_wid,`svg_nu'+2`svg_lambda',below,->) - N3: sfgnode(,svg_fsize(3,120),,invis) - { sfgarc(to N2 ->,,,ccw,s1) } - { "p`'svg_sup(2)(1-p)svg_gamma+3`'svg_nu" at last [].M+(0bp__,0) above } - { svg_choose(3,2) at last [].M+(-33bp__,8bp__) } - { sfgarc(to N1 ->,,,ccw,s2) } - { "p(1-p)`'svg_sup(2)`'svg_gamma" at last [].M+(8bp__,0) above } - { svg_choose(3,1) at last [].M+(-16bp__,8bp__) } - { sfgarc(to N0 ->,(1-p)svg_sup(3)`svg_gamma',above,ccw,s2) } - sfgline(right_ sfg_wid*2/3,`svg_nu'+3`svg_lambda',below,->) - {"..." wid 0.3 ljust} - ] with .nw at G3.sw+(0,-0.1) - -# https://tex.stackexchange.com/questions/637455/tikz-how-to-set-exact-position-of-node -G5: [sfg_init( 1.75,0.25/2 ) # change node spacing and increase node size - Dstar: sfgnode(,* ) - D0: sfgnode(at Dstar+(2,0),svg_small(<>)svg_sub(0) ) - sfgline(, - svg_it(1-r`'svg_sub(`x-1,x')-q`'svg_sup(i)svg_sub(x-1`,'x,,,-0.8ex)),,->) - Ddots: sfgnode(,... ) - sfgline(,svg_it(1-r`'svg_sub(x-4`,'x)-q`'svg_sup(i)svg_sub(x-4`,'x,,,-0.8ex)), - ,->) - D5: sfgnode(,svg_small(<>)svg_sub(5) ) - DD: sfgnode(at D0+(0,-1.0),svg_symbol(&``#''8224;) ) - sfgself(at Dstar,L,,,,0.5) - "svg_it(1-i`'svg_sub(x)-q`'svg_sub(x)svg_sup(a,,,-0.8ex))" wid 45bp__ \ - at Dstar + (-0.3,0.25) - sfgself(at DD,D,1,above_,,0.5) - sfgself(at D5,R,,,,0.5) - "svg_it(1-q`'svg_sub(x)svg_sup(i,,,-0.8ex)-r`'svg_sub(x))" wid 47bp__ \ - at D5 + (0.3,0.25) - sfgarc(from D0 to Dstar ->,svg_it(r`'svg_sub(x`,'x)),below_,ccw) - sfgarc(from Dstar to D0 ->,svg_it(i`'svg_sub(x)),above_,ccw) - sfgarc(from Dstar to DD ->,svg_it(q`'svg_sub(x)svg_sup(a,,,-0.8ex)), - above_ ljust_,ccw) - sfgline(from D0 to DD,svg_it(q`'svg_sup(i)svg_sub(x`,'x,,,-0.8ex)),ljust,->) - sfgarc(from Ddots to Dstar,svg_it(r`'svg_sub(j`,'x)),below_,ccw,,->) - sfgarc(from Ddots to DD ->,svg_it(q`'svg_sup(i)svg_sub(x-j`,'x)), - above_ rjust_,) - sfgarc(from D5 to Dstar ->,svg_it(r`'svg_sub(x)),below_,ccw) - sfgarc(from D5 to DD ->,svg_it(q`'svg_sup(i)svg_sub(x,,,-0.8ex)), - above_ rjust_,) - ] with .nw at G4.sw+(0,-0.15) -#howbox_(,"G5") - - - move from (T.w,G4.s)-(7bp__,6bp__) to B.ne+(15bp__,6bp__) - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/shapesSVG.m4 b/graphics/circuit_macros/examples/svg/shapesSVG.m4 deleted file mode 100644 index 3deae68c60..0000000000 --- a/graphics/circuit_macros/examples/svg/shapesSVG.m4 +++ /dev/null @@ -1,201 +0,0 @@ -.PS -# shapesSVG.m4 -threeD_init - -divert(-1) -# shapes.m4 -# 3D structures with complex surfaces and hidden lines are the domain of more -# sophisticated software packages, but basic shapes can be drawn with pic. - -##################################################### - - `cylinder3D(xdispl,ydispl,zdispl,diameter, - [colored "color"])' -define(`cylinder3D',`[ Start: (0,0) - xdispl = `$1'; ydispl = `$2'; zdispl = `$3' - define(`M4CL',`xdispl,ydispl,zdispl')dnl - lenc = length3D(M4CL) - diamc = ifelse(`$4',,(lenc/2),`$4') ; radc = diamc/2 - cs = dot3D(View3D,M4CL)/lenc - End: Project(M4CL) - az = atan2(ydispl,xdispl) - ae = atan2(zdispl,sqrt(xdispl^2+ydispl^2)) - CL: line invis from Start to End; C: CL.c - nls = int(twopi_*radc/lthick) - define(`M4PP',`rot3Dz(az,rot3Dy(-ae,rot3Dx(-i/nls*twopi_,0,0,radc)))')dnl - for i=0 to nls-1 do { if dot3D(View3D,M4PP) > 0 then { - P: Project(M4PP) - ql = sqrta(dot3D(Light3D,M4PP)/radc) - line from P to End+P outlined rgbstring(ql,ql,ql) `$5' } } - Perp: (vperp(CL,radc)) - if cs > 0 then { T: End; B: Start } else { T: Start; B: End } - rpoint_(from Start to Perp) - css = sqrta(cs) - Top: rotellipse(diamc,diamc*cs, - thick linethick/3 shaded rgbstring(css,css,css)) with .c at T - W: line thick linethick/3 from T+Perp to B+Perp - Bot: ellipsearc(diamc,diamc*cs,pi_,twopi_,rp_ang,cw, - thick linethick/3) with .C at B - E: line thick linethick/3 from B-Perp to T-Perp - rpoint_(from Start to End) -`$6']') - - `cone3D(xdispl,ydispl,zdispl,diameter, - [colored "color"])' -define(`cone3D',`[ Start: (0,0) - xdispl = `$1'; ydispl = `$2'; zdispl = `$3' - define(`M4CL',`xdispl,ydispl,zdispl')dnl - lenc = length3D(M4CL) - diamc = ifelse(`$4',,(lenc/2),`$4') ; radc = diamc/2 - End: Project(M4CL) - cs = dot3D(View3D,M4CL)/lenc - az = atan2(ydispl,xdispl) - ae = atan2(zdispl,sqrt(xdispl^2+ydispl^2)) - CL: line invis from Start to End; C: CL.c - nls = int(twopi_*radc/lthick) - lt = sqrt(radc^2+lenc^2) - b = 0 - for i=0 to nls-1 do { if dot3D(View3D, - rot3Dz(az,rot3Dy(-ae,rot3Dx(-i/nls*twopi_,radc,0,lenc)))) > 0 then { - ql = sqrta(dot3D(Light3D, - rot3Dz(az,rot3Dy(-ae,rot3Dx(-i/nls*twopi_,radc,0,lenc))))/lt) - P: Project(rot3Dz(az,rot3Dy(-ae,rot3Dx(-i/nls*twopi_,0,0,radc)))) - line from P to End outlined rgbstring(ql,ql,ql) `$5' - if !b then { WB: P; b = 1 } - } else { if b then { BW: P; b = 0 } } } - if vlength(CL.x,CL.y) != 0 then { Perp: (vperp(CL,radc,R)) } else { Perp: (radc,0) } - if cs >= 0 then { T: End; B: Start } else {T: Start; B: End } - rpoint_(from Start to Perp) - pout = (vlength(End.x,End.y) > abs(radc*cs)) - if cs < 0 then { css = sqrta(cs) - if pout then { line thick linethick/3 from BW to End then to WB } - Bot: rotellipse(diamc,diamc*cs,thick linethick/3 \ - ifelse(`$5',,`shaded rgbstring(css,css,css)',`$5')) with .c at T } \ - else { if pout then { - line thick linethick/3 from BW to End then to WB - a = acos((WB.x*Perp.x+WB.y*Perp.y)/radc^2) - Bot: ellipsearc(diamc,diamc*cs,a,pi_-a,rp_ang,cw, thick linethick/3) \ - with .C at B } \ - else { - Bot: rotellipse(diamc,diamc*cs,thick linethick/3) with .c at B } } - rpoint_(from Start to End) -`$6']') - `Arrow3D(xdispl,ydispl,zdispl, - diam,arrowwid,arrowht)' -define(`Arrow3D',`[ diam_Ar = ifelse(`$4',,linewid/10,`$4') - wid_Ar = ifelse(`$5',,diam_Ar*2,`$5') - ht_Ar = ifelse(`$6',,wid_Ar*2,`$6') - x_Ar = ifelse(`$1',,1,`$1') - y_Ar = ifelse(`$2',,1,`$2') - z_Ar = ifelse(`$3',,1,`$3') - define(`M4Arrow3D',`x_Ar,y_Ar,z_Ar')dnl - len_Ar = length3D(M4Arrow3D) - len_Shaft = len_Ar - ht_Ar - cs_Ar = dot3D(View3D,M4Arrow3D) - if cs_Ar >= 0 then { - Shaft: cylinder3D(sprod3D(len_Shaft/len_Ar,M4Arrow3D),diam_Ar) - Head: cone3D(sprod3D(ht_Ar/len_Ar,M4Arrow3D),wid_Ar) \ - with .Start at Shaft.End } \ - else { - Head: cone3D(sprod3D(ht_Ar/len_Ar,M4Arrow3D),wid_Ar) - Shaft: cylinder3D(sprod3D(len_Shaft/len_Ar,M4Arrow3D),diam_Ar) \ - with .End at Head.Start } - Start: Shaft.Start; End: Head.End - `$7']') - -define(`f2xyz3D',``$1'x = `$2' -`$1'y = `$3' -`$1'z = `$4' ') - - `prism3D(xdispl,ydispl,zdispl,wid,ht,rotation (rad))' -define(`prism3D',`[ Start: (0,0) - xdispl = ifelse(`$1',,linewid,`$1') - ydispl = ifelse(`$2',,linewid,`$2') - zdispl = ifelse(`$3',,linewid,`$3') - widp = ifelse(`$4',,(linewid/5),`$4') - htp = ifelse(`$5',,(linewid/10),`$5') - rotp = ifelse(`$6',,0,`$6') - End: Project(xdispl,ydispl,zdispl); C: 0.5 between Start and End - lenp = length3D(xdispl,ydispl,zdispl) - az = atan2(ydispl,xdispl); ae = atan2(zdispl,sqrt(xdispl^2+ydispl^2)) - wp2 = widp/2; hp2 = htp/2 -# corners - f2xyz3D(nwB,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp, 0,-wp2, hp2)))) - f2xyz3D(swB,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp, 0,-wp2,-hp2)))) - f2xyz3D(seB,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp, 0, wp2,-hp2)))) - f2xyz3D(neB,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp, 0, wp2, hp2)))) - f2xyz3D(nwF,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp,lenp,-wp2, hp2)))) - f2xyz3D(swF,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp,lenp,-wp2,-hp2)))) - f2xyz3D(seF,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp,lenp, wp2,-hp2)))) - f2xyz3D(neF,rot3Dz(az,rot3Dy(-ae,rot3Dx(rotp,lenp, wp2, hp2)))) -# facets - M4Facet3D(neF,nwF,swF,seF) - M4Facet3D(neB,seB,swB,nwB) - M4Facet3D(neF,seF,seB,neB) - M4Facet3D(neF,neB,nwB,nwF) - M4Facet3D(seF,swF,swB,seB) - M4Facet3D(nwF,nwB,swB,swF) -`$7']') - -define(`M4Facet3D',` -define(`PFacet',`cross3D(diff3D(`$2'x,`$2'y,`$2'z,`$1'x,`$1'y,`$1'z), - diff3D(`$3'x,`$3'y,`$3'z,`$2'x,`$2'y,`$2'z))') - if dot3D(View3D,PFacet) > 0 then { - fFacet = sqrta(dot3D(Light3D,PFacet)/length3D(PFacet)) - P1: Project(`$1'x,`$1'y,`$1'z) - P2: Project(`$2'x,`$2'y,`$2'z) - P3: Project(`$3'x,`$3'y,`$3'z) - P4: Project(`$4'x,`$4'y,`$4'z) - line fill_(fFacet) invis from P1 to P2 then to P3 then to P4 then to P1 - line from P1 to P2; round - line to P3; round - line to P4; round - line to P1; round } ') - -##################################################### -divert(0)dnl - -azimuth = 60 -elev = 10 -setview(azimuth,elev) -[ Orig: (0,0) - setlight - Arrow3D(1,0,0) with .Start at Orig; move left 12bp__ from last [].End "x" - Arrow3D(0,1,0) with .Start at Orig; "y" ljust at last [].End - Arrow3D(0,0,1.2) with .Start at Orig; "z" above at last [].End - setlight(0,0,0) - cylinder3D(1,1,1,0.6) with .Start at Project(0.5,0.5,0.5) -] - Ball: shadedball(0.5) with .nw at last [].ne+(-0.25,0) -[ - setview(45,10) - setlight(40,70) - n = 9; len = 1.5; thmin = m4azim+pi_/2*0.8; thmax = thmin+twopi_ - for i=0 to n do { - r = i/n*(thmax-thmin)+thmin - prism3D(rot3Dz(r,rot3Dy(pi_/4,len,0,0)),0.2,0.1) \ - with .Start at Project(rot3Dz(r,rot3Dy(pi_/4,len*0.5,0,0))) } -] with .nw at last [].ne -[ - setlight(0,0) - movewid = 0.1 - len = 1.5; ni = 5; nj = 5 - for i=1 to ni-1 do { - {for j = 0 to nj by 2 do { - setview(0,i/ni*180-90,j/nj*90) - cylinder3D(0,0,len*(j+1)/(nj+1),0.4) - if j < nj then {move right} } } - if i < ni then {move down 0.85; right_} } #else { move down movewid } } -] with .nw at 1st [].sw+(0,-0.1) -[ - setlight(0,0) - len = 1.5; ni = 4; nj = 6 - for i=1 to ni do { - {for j = 0 to nj by 2 do { - setview(0,i/ni*180-90,j/nj*90) - cone3D(0,0,len*(j+1)/(nj+1),0.4) - if i==2 && j==(nj-2) then { move up_ 0.2 right_ -0.4 } \ - else { if j < nj then {move right_ 0.1}} } } - if i < ni then {move down_ 0.75; right_} } -] with .nw at last [].ne+(0.2,0) -.PE diff --git a/graphics/circuit_macros/examples/svg/slddiagsSVG.m4 b/graphics/circuit_macros/examples/svg/slddiagsSVG.m4 deleted file mode 100644 index ce213358d0..0000000000 --- a/graphics/circuit_macros/examples/svg/slddiagsSVG.m4 +++ /dev/null @@ -1,100 +0,0 @@ -.PS -# slddiagsSVG.m4 -cct_init(svg_font(sans-serif,10bp__)) -include(libSLD.m4) - -Pic1: [ -define(`TrDeltaWye', - `sl_transformer(down_ elen_ `$1',type=S) - { Deltasymbol(at last [].M1); Ysymbol(at 2nd last [].M2,,D) } ') - - T: dot - switch(up_ elen_); {"Public supply" above} - Bus1: sl_busbar(right_ 5*dimen_,6,port=D) with .c at T - {"svg_small(20 kV)" at Bus1.Start above ljust} - S1: switch(from Bus1.P1-(0,elen_) up_ elen_) - S2: switch(from Bus1.P2-(0,elen_) up_ elen_) - TRF1: TrDeltaWye(from Bus1.P3); arrow down_ dimen_/3 - TRF2: TrDeltaWye(from Bus1.P4); arrow down_ dimen_/3 - TRF3: TrDeltaWye(from Bus1.P5); arrow down_ dimen_/3 - S3: switch(from Bus1.P6-(0,elen_) up_ elen_) - Bus2: sl_busbar(right_ 1.5*dimen_,3,port=D) with .c at Bus1.P1+(0,-dimen_*3) - {"svg_small(20 kV)" at Bus2.Start above ljust} - {"svg_small(1.25 MVA)" at Bus2.P2 below} - S4: switch(from Bus2.P2 to S1.start) - TRF4: TrDeltaWye(from Bus2.P1) - S4: switch(from Bus2.P3+(0,-elen_) to Bus2.P3) -] - -Pic2: [ -# https://tex.stackexchange.com/questions/597643/draw-a-power-system-network - B1: sl_busbar(up_ dimen_*4/3,3) - sl_transformer(right_ 2*dimen_ from last [].P2, - type=S;body=shaded "lightgray"); variable(,,,dimen_*3/2) - B2: sl_busbar(up_ dimen_*4/3,3) - { line left_ dimen_/2 from B2.P1 - C1: capacitor(down_ dimen_/2); ground(,T) } - line right_ dimen_/2 - { line to (Here,C1.start); C2: capacitor(to (Here,C1.end)); ground(,T) } - ebox(right_ 3.5*dimen_, 2.5*dimen_, dimen_/5, 0.75) - { line to (Here,C1.start); C3: capacitor(to (Here,C1.end)); ground(,T) } - line right_ dimen_/2 - B3: sl_busbar(up_ dimen_*4.5,6) - line right_ dimen_*3/4 from B3.P1; box wid dimen_*3 ht dimen_*.6 \ - shaded "Goldenrod" "Static Load" - line right_ dimen_*3/4 from B3.P2; box wid dimen_*3 ht dimen_*.6 \ - shaded rgbstring(0.99*0.8, 0.74*0.8, 0.71*0.8) "Electronic Load" - sl_disk(right_ dimen_ from B3.P3, - text="A/C";circle=shaded ```rgbstring(.2,.8,.2)''';diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P4, - text="M";circle=shaded ```rgbstring(.21,.47,.86)''';diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P5, - text="M";circle=shaded ```rgbstring(.2,.6,.8)''';diam=dimen_*3/4) - sl_disk(right_ dimen_ from B3.P6, - text="M";circle=shaded ```rgbstring(.2,.63,.8)''';diam=dimen_*3/4) - sl_disk(left_ dimen_ from 1/2 between B3.P1 and B3.P2, - text="svg_small(DER_A)";\ - circle=shaded ```rgbstring(0.78,0.36,0.3)''';diam=dimen_*3/4) -] with .nw at last [].sw + (100bp__,120bp__) - -Pic3: [ -define(`shadedb',`shaded "CornflowerBlue"') -Loopover_(`LR', # loop to take advantage of symmetry - `define(`opposite',`ifelse(LR,left,right,left)')dnl - ifelse(LR,left,L,R)`'side: [ - sl_generator(LR dimen_/2,type=B;name=G1;circle=shadedb,box=shadedb) - T1: sl_transformer(opposite dimen_*3/2) - Bus1: sl_busbar(up_ dimen_*3/2,3,) with .P2 at Here - Br1: sl_breaker(from Bus1.P3 opposite elen_,box=shadedb) - line opposite dimen_ - Br2: sl_breaker(from Bus1.P1 opposite elen_,box=shadedb) - Br3: sl_breaker(down_ dimen_,box=shadedb) - Bus2: sl_busbar(opposite dimen_,3) with .P2 at Here - T2: sl_transformer(down_ dimen_ from Bus2.P2,name=X2) - sl_disk(down_ dimen_/2,type=B;text="SM";name=SM1;circle=shadedb,box=shadedb) - ground(at last circle.s,dimen_/2) - ]', - left,right) - "Bus 1" at Lside.Bus1.top above - "Bus 2" at Rside.Bus1.top above - "Bus 3" at Lside.Bus2.w above - "Bus 4" at Rside.Bus2.e above - "TL`'svg_sub(1) 50 km 69 kV" at 1/2 between Lside.Br1 and Rside.Br1 above - "TL`'svg_sub(2) 30 km" ljust "69 kV" ljust at Lside.Br2.end + (-18bp__,12bp__) - "TL`'svg_sub(2) 20 km" ljust "69 kV" ljust at Rside.Br2.end + (-18bp__,12bp__) - "G`'svg_sub(1) 50 MVA" ljust "13.8 kV" ljust at Lside.G1.w+(0,-28bp__) - "G`'svg_sub(2) 30 MVA" ljust "13.8 kV" ljust at Rside.G1.w+(0,-28bp__) - "T`'svg_sub(1) 50 MVA" ljust "13.8/69 kV svg_Delta/Y" ljust \ - at Lside.T1.start+(0,-37bp__) - "T`'svg_sub(2) 30 MVA" ljust "69/13.8 kV Y/svg_Delta" ljust \ - at Rside.T1.end+(5bp__,-33bp__) - "T`'svg_sub(3) 50 MVA" rjust "13.8/69 kV Y/svg_Delta" rjust \ - at Lside.X2.w+(-4bp__,0) - "T`'svg_sub(4) 20 MVA" ljust "69/6.9 kV Y/svg_Delta" ljust \ - at Rside.X2.e+(4bp__,0) - "SM`'svg_sub(1) 30 MVA" rjust "13.8 kV" rjust at Lside.SM1.w+(-4bp__,0) - "SM`'svg_sub(2) 20 MVA" ljust "6.9 kV" ljust at Rside.SM1.e+( 4bp__,0) -] with .nw at (Pic1.w,last [].sw + (0,-15bp__)) - -command "</g>" -.PE diff --git a/graphics/circuit_macros/examples/svg/thyristorSVG.m4 b/graphics/circuit_macros/examples/svg/thyristorSVG.m4 deleted file mode 100644 index 1301786a4c..0000000000 --- a/graphics/circuit_macros/examples/svg/thyristorSVG.m4 +++ /dev/null @@ -1,119 +0,0 @@ -.PS -# `thyristorSVG.m4' -cct_init(svg_font(sans-serif,11bp__,1.5bp__)) - -define labels { { - "$1" $2 at last[].$1 - "$3" $4 at last[].$3 - "$5" $6 at last[].$5 - "$7" $9 at (last[].s+(0,$8)) } } - -down_ -Row1: [ - {thyristor - labels(A,above,K,below,G,ljust,`thyristor',-0.25,wid 0.75) } - - move right 0.50 ; down_ - {thyristor(,B) - labels(T1,above,T2,below,G,below ljust,`...(,B)',-0.35) } - - move right 0.50 ; down_ - {thyristor(down_ dimen_*0.8,BR) - labels(T1,above,T2,below,G,below rjust,`...(,BR)',-0.22) } - - move right 0.60 ; down_ - {thyristor(,BE) - labels(T1,above,T2,below,G,below ljust,`...(,BE)',-0.35) } - - move right 0.50 ; down_ - {thyristor(,A) at (Here,last []) - labels(A,above,K,below,G,ljust,`...(,A)',-0.35) } - - move right 0.50 ; down_ - {thyristor(,F) at (Here,last []) - labels(A,above,K,below,G,ljust,`...(,F)',-0.22) } - - move right 0.65 ; down_ - {thyristor(,BRE) - labels(T1,above,T2,below,G,below rjust,`...(,BRE)',-0.35) } - - move right 0.75 ; down_ - {thyristor(,UARE) at (Here,last []) - labels(A,above,K,below,G,rjust below,`...(,UARE)',-0.22) } - - move right 0.50 ; down_ - {thyristor(,AV,G: G+(0.1,0.1)) at (Here,last []) - thinlines_ - spline -> from last[].G left 0.05 then left 0.05 down 0.1 - thicklines_ - labels(A,above,K,below,G,ljust,`...(,AV)',-0.35) } - - move right 0.50 ; down_ - {thyristor(,IEC) - labels(A,above ljust,K,below ljust,G,ljust,`...(,IEC)',-0.22) } - ] -Row2: [ - down_ - {thyristor(,UAH) - labels(A,rjust above,K,rjust below,G,ljust,`...(,UAH)',-0.35,wid 0.65) } - - move right 0.55 ; down_ - {thyristor(,N) at (Here,last []) - labels(A,above,K,below,Ga,rjust,`...(,N)',-0.22) } - - move right 0.55 ; down_ - {thyristor(,UANRE) at (Here,last []) - labels(A,above,K,below,Ga,ljust above,`...(,UANRE)',-0.35) } - move right 0.55 ; down_ - {thyristor(,SCR) at (Here,last []) - labels(A,above,K,below rjust,G,below ljust,`...(,SCR)',-0.22) } - - move right 0.55 ; down_ - {thyristor(,SCRE) at (Here,last []) - labels(A,above,K,below,G,ljust below,`...(SCRE)',-0.35) } - - move right 0.65 ; down_ - {thyristor(,SCRRE) at (Here,last []) - labels(A,above,K,below,G,rjust below,`...(SCRRE)',-0.22) } - - move right 0.55 ; down_ - {thyristor(,SCS) at (Here,last []) - labels(A,above,K,below,G,ljust,`...(SCS)',-0.35) } - { "Ga" rjust above at last[].Ga } - - move right 0.55 ; down_ - {thyristor(,SCSE) at (Here,last []) - labels(A,above,K,below,G,ljust below,`...(SCSE)',-0.22) } - { "Ga" rjust above at last[].Ga } - - move right 0.65 ; down_ - {thyristor(,SUSE) at (Here,last []) - labels(A,above,K,below,G,rjust,`...(SUSE)',-0.35) } - - move right 0.65 ; down_ - {thyristor(,SBSE) at (Here,last []) - labels(T1,above,T2,below,G,rjust,`...(SBSE)',-0.22,wid 50bp__) } - - ] with .nw at Row1.sw + (0,-0.20) - -Twoterms: [ right_ - { scr(,,Q) ; `"scr(,,Q)"' at last [].e ljust} - { "Q.G" at Q.G above } - - move down 0.4; right_ - { scs(,,Q2) ; `"scs(,,Q2)"' at last [].e ljust } - { "Q2.G" at Q2.G above } - { "Q2.Ga" at Q2.Ga below } - ] with .nw at Row2.sw+(0,-0.2) - - [ right_ - { sus(,RE,Q3) ; `"sus(,RE,Q3)"' at last [].e ljust} - { "Q3.G" at Q3.G above } - - move right_ 1.2 from last line.end - { sbs(,E,Q4) ; `"sbs(,E,Q4)"' at last [].e ljust} - { "Q4.G" at Q4.G below } - ] with .w at last [].e+(1.0,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/tstSVG.htmx b/graphics/circuit_macros/examples/svg/tstSVG.htmx deleted file mode 100644 index ccb14e00b8..0000000000 --- a/graphics/circuit_macros/examples/svg/tstSVG.htmx +++ /dev/null @@ -1,290 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<HTML> -<HEAD> -<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<meta http-equiv="Content-Style-Type" content="text/css"> -<!--meta http-equiv="Content-Script-Type" content="text/javascript"--> -<TITLE>SVG Examples: Circuit_macros Version XXX</TITLE> -<meta name="keywords" content="HTML" -content='Circuit elements, basic circuits, logic circuits and other diagrams, -electric circuits, resistor, capacitor, inductor, diode, sources, amplifier, -integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack, -plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer, -optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply, -NAND gate, controlled source, synchronous machine, digital circuit, signal-flow -graph, latch, decoder, flipflop, full adder, logic diagram, crossbar switch, -dimensioning, control system, graph, RGB colors, recursion, binary tree, -flowcharts, picture overlay, ASME Y14.5' > - -<style type="text/css"> -</style> -<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" /> -</HEAD> - -<!-- --------------------------------------------------------------------- -define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1, - `ifinstr(shift(shift(shift($@))))',`$3')') - -define(`m4tt',`<g style="font-family:monospace">') - -define(`cfig',` -<p> - -<!--[if lte IE 8]><embed src="$1.svg" sinclude($1.siz)><![endif]--> - -<!--[if gte IE 9]> -<object dx="4" data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img"> - </object> <![endif]--> - -<!--[if !IE]><!--> -<object data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img"> - </object> <![endif]--> - -<br><br> -ifelse(`$2',,,` -<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4:</a> -`$2' changecom(,)&`#'8194;changecom(`#')') - -</p> -ifinstr(`$3',y,,`<hr>')') - ---------------------------------------------------------------------- --> - -<BODY> -<table cellpadding="0" cellspacing="0" - width="700px" border="0" align="center" ><tr><td> - -<H2>SVG Circuit_macros examples, Version XXX</H2> -<hr> - -<p> - This file shows diagrams in .svg format; - <A HREF="examples.html">png</A> - versions are also available. - The PDF equivalent can be found in examples.pdf of the distribution. -</p> - -<p> -The diagrams shown below have been adapted from the Circuit_macros -examples in order to test the svg output of dpic. Generating svg line -art is straightforward, but TeX, LaTeX, and related word -processors do not produce svg. Either less-sophisticated text formatting -must be employed or an - <A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats"> - intermediate format</A> -such as pdf can be -produced, followed by an additional processing step to convert to svg. -Two possibilities for the latter are - <A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm</A> -and - <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A> although -there may be font-related issues for some diagrams. -<br> -Many circuit and similar diagrams intended for the web do not -require sophisticated labels, however; the examples shown below might -be representative. -</p> -<p> - Click on the link to view the source of each diagram. -</p> -<hr> -<p> -There are a number of other issues: -<ul> - <li> Embedding .svg files in html documents with the <embed> or - <object> tag seems to be a perennial issue. - <li> This file has been tested mainly by using Firefox. - <li> The Adobe reader apparently requires a line of the form - <br> <embed src="figure.svg" width="x" height="y" type="image/svg+xml" - /> - This means that the html file has to contain dimension - information for each figure, whereas Firefox can - determine the figure size - from the <svg ... object. Currently, dpic includes a comment line - giving reasonable dimensions in pixels but this has to be insterted into - the <embed or <object line. A makefile does it easily but - otherwise this could be tedious. - <li> The default font face is not specified in all of these diagrams but is - inherited from the enclosing document, so the appearance of labels can - differ depending on the browser. Some of these diagrams set the font at - the beginning of the diagram source. - <li> The <svg tag may require modification - from the default used for this test. Dpic might be modified to - allow the generation of custom headers but that has not been done. - <li> Diagrams such as these contain text labels - that have to be treated differently from the LaTeX-compatible versions. - Apparently there is no direct way to know the bounding box of arbitrary svg - text. - <!-- text, as discussed - <a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a> - for example. --> - Consequently, text placement is approximate and may require - manual adjustment. - Rather than patch the original source files for svg production, edited copies - have been used. The configuration file svg.m4 read by m4 - prior to libcct.m4 contains the following macros defined for svg. - Others could be defined to exercise some of the media capabilties of svg. - They are subject to change: - <ul> - <li> - m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset, - dpic commands`'m4tt)</g>: - Change font face, size, textratio and dpic textoffset parameters. - Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>, - and m4tt`'textoffset</g> parameters. - If arg4 is blank, the font is changed and - requires m4tt`'command "</g>"</g> to cancel the font change. - <br> - Note: - Nominal height = text height in drawing units; actual height = - nominal ht x m4tt`'dptextratio</g>. - <br> - Examples: <br> - m4tt`'svg_font(Times)</g><br> - m4tt`'svg_font(Times,14bp__)</g><br> - m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br> - m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br> - m4tt`'svg_font(font-family="Times")</g><br> - m4tt`'svg_font(font-family="Times" font-style="italic")</g><br> - m4tt`'svg_font(style="font-family:Times; font-style:italic")</g> - <li>m4tt svgfontratio(</g>font name`'m4tt)</g>; - Reasonable m4tt`'dptextratio</g> value for common fonts, used - by m4tt`'svg_font</g>. - <li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>; - e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g> - <li>m4tt svg_it(</g>text`'m4tt)</g>: for italics - <li>m4tt svg_tt(</g>text`'m4tt)</g>: for monospace (courier) - <li>m4tt svg_sf(</g>text`'m4tt)</g>: sans-serif (Helvetica) - <li>m4tt svg_norm(</g>text`'m4tt)</g>: for normal text - <li>m4tt svg_bf(</g>text`'m4tt)</g>: for bold face - <li>m4tt svg_small(</g>text, percent`'m4tt)</g>: - to set a smaller text size, default 66 - <li>m4tt svg_fsize(</g>text, percent`'m4tt)</g>: - for setting larger or smaller text size, default 100 - <li>m4tt svg_sub(</g>text, size percent, y displ, x displ`'m4tt)</g>: - subscript - <li>m4tt svg_ul(</g>text`'m4tt)</g>: underlined text - <li>m4tt svg_ol(</g>text`'m4tt)</g>: overlined text - <li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>: - superscript - <li>m4tt svg_hat(</g>character`'m4tt)</g>: circumflex-accented character - <li>m4tt svg_frac(</g>numerator[:wid], denominator[:wid]`'m4tt)</g>: - basic fraction, wid in drawing units - <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>: - Rotate text degrees (default 90) ccw. - Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source - must be processed twice. - <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>: - filename is the basename of the output of - m4tt`'dpic -v filename.pic > filename.svg`'m4tt - <li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text, - e.g., m4tt`'svg_symbol(10&`#'176;)</g> produces 10° - <li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>: - link to external file using - <a xlink:href=...>...</a> (default is - m4tt`'target="_blank"</g> unless - arg 3 = B) - <li>m4tt svgLinkString</g> as above but for strings attached to objects - <li> Greek and other symbols: - -<!-- - Reference: - https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references - and - https://www.toptal.com/designers/htmlarrows/math/ - --> -<table cellpadding="2" cellspacing="0" width="75%" > -<tr> -<td width="10%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#') -<td width="10%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#') -<td width="10%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#') -<td width="10%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#') -<td width="10%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#') -<td width="10%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#') -<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#') -<td width="10%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#') -<td width="10%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#') -<td width="10%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#') -<td width="10%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#') -<td width="10%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#') -<td width="10%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#') -<td width="10%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#') -<td width="10%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#') -<td width="10%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#') -<td width="10%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#') -<td width="10%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#') -<td width="10%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#') -<td width="10%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#') -<td width="10%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#') -<td width="10%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#') -<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#') -<td width="10%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#') -<td width="10%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#') -<td width="10%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#') -<td width="10%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#') -<td width="10%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#') -<td width="10%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#') -<td width="10%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#') -<td width="10%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#') -<td width="10%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#') -<td width="10%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#') -<td width="10%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#') -<td width="10%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#') -<td width="10%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#') -</tr> -<tr> -<td width="10%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#') -<td width="10%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#') -<td width="10%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#') -<td width="10%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#') -<td width="10%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#') -<td width="10%"> m4tt svg_circ</g> <td align="left"> changecom(,)&`#'710;changecom(`#') -<td width="10%"> m4tt svg_deg</g> <td align="left"> changecom(,)&`#'176;changecom(`#') -<td width="10%"> m4tt svg_grave</g> <td align="left"> changecom(,)&`#'96;changecom(`#') -</tr> -</table> -<table cellpadding="2" cellspacing="0" width="75%" > -<tr> -<td width="8%"> m4tt svg_emsp</g> <td width="50px" align="left"> |changecom(,)&`#'8195;changecom(`#')| -<td width="8%"> m4tt svg_ensp</g> <td width="50px" align="left"> |changecom(,)&`#'8194;changecom(`#')| -<td width="8%"> m4tt svg_thinsp</g> <td width="50px" align="left"> |changecom(,)&`#'8201;changecom(`#')| -</tr> -</table> - - </ul> - <li> Inkscape: It may be efficient to define elements by macro and to - place them using a wysiwyg graphics editor. A draft page intended - for Inkscape is included. A reasonable variety of elements is defined - but many more could be added and they should be customized for - particular applications. Adjustments may also have to be made to - obtain the proper snap-to actions. - <li> Link experiments: Click on the resistor or source of quickSVG - to go to external - files in new windows. Click on "n-port" in NportSVG to replace the diagram - and then "back" to return. - <li> Some of the assumptions used to create this draft may be - na&`#'239;ve. - Comments are welcome. -</ul> - -<hr> - -cfig(XXXXX) - -</td> -</tr> -</table> -</BODY> -</HTML> diff --git a/graphics/circuit_macros/examples/svg/ujtSVG.m4 b/graphics/circuit_macros/examples/svg/ujtSVG.m4 deleted file mode 100644 index 2672d38989..0000000000 --- a/graphics/circuit_macros/examples/svg/ujtSVG.m4 +++ /dev/null @@ -1,31 +0,0 @@ -.PS -# `ujt.m4' -cct_init(svg_font(sans-serif,11bp__)) - -dwn = 1.0 -dsep = 0.15 - -define(`demo_ujt',`up_ - ujt(`$1',`$2',`$3',`$4') - "B1" ifelse(`$5',,below,ljust) at last [].B1 - "E" at 1.5 between last [].Bulk.c and last [].E - "B2" ifelse(`$5',,above,ljust) at last [].B2 - ') - -[demo_ujt(up_ dimen_,,,E,A) -`"ujt(up_ dimen_,,,E)"' wid 1.3 at last [].s+(0,-0.2) below ] - -[demo_ujt(,,P,) -`"ujt(,,P,)"' at last [].s+(0,-dsep) below] \ -with .sw at last [].se+(0.8,0) - -[demo_ujt(,R,,) -`"ujt(,R,,)"' at last [].s+(0,-dsep) below] \ -with .sw at last [].se+(0.8,0) - -[demo_ujt(,R,P,) -`"ujt(,R,P,)"' at last [].s+(0,-dsep) below] \ -with .sw at last [].se+(0.8,0) - - command "</g>" # end font -.PE diff --git a/graphics/circuit_macros/examples/svg/windows.m4 b/graphics/circuit_macros/examples/svg/windows.m4 deleted file mode 100644 index bc4527f36e..0000000000 --- a/graphics/circuit_macros/examples/svg/windows.m4 +++ /dev/null @@ -1,12 +0,0 @@ -divert(-1) -# windows.m4 -# This file is used if the CUSTOM=windows.m4 function is turned on in Makefile -define(`windows_') - -# To makd NeedDpicTools work, -# change the absolute Windows path to your installation directory: - -define(`NeedDpicTools',`if "dpictools" != "1" then { - copy "D:\Dwight\lib\dpictools.pic" } define(`dfitcurve__') ') - -divert(0)dnl diff --git a/graphics/circuit_macros/examples/svg/wormSVG.m4 b/graphics/circuit_macros/examples/svg/wormSVG.m4 deleted file mode 100644 index 79ac53f772..0000000000 --- a/graphics/circuit_macros/examples/svg/wormSVG.m4 +++ /dev/null @@ -1,123 +0,0 @@ -.PS -# worm.m4 - gen_init - -define(`svgcolor',`sprintf("rgb(%g,%g,%g)",`$1',`$2',`$3')') - -`define case { exec sprintf("$%g",floor($1+0.5)+1); }' - -`define hsvtorgb { - h_ = $1; s_ = $2; v_ = $3 - f_ = h_/60-floor(h_/60) - p_ = v_*(1-s_) - q_ = v_*(1-f_*s_) - t_ = v_*(1-(1-f_)*s_) - case(pmod(floor(h_/60),6)+1, - $4 = v_; $5 = t_; $6 = p_, - $4 = q_; $5 = v_; $6 = p_, - $4 = p_; $5 = v_; $6 = t_, - $4 = p_; $5 = q_; $6 = v_, - $4 = t_; $5 = p_; $6 = v_, - $4 = v_; $5 = p_; $6 = q_) - $4 = int(($4)*255+0.5) - $5 = int(($5)*255+0.5) - $6 = int(($6)*255+0.5) - }' - -Worm: [ - linethick_(0.1) - dimen = 1.25 # scale parameter; try dimen=2 for a larger picture - w = 0.15 * dimen # worm radius - nhues = 265 - S: dimen,0 - for inx = 1 to nhues +2 do { - theta = inx*360/nhues - R: dimen*cosd(3*theta), dimen*sind(2*theta) - D: R-(S.x,S.y) - t = sqrt(max(0,w^2/(D.x^2+D.y^2)-1/4)) - Ra: 0.5<S,R> + (t*D.y,-t*D.x) - Rb: 0.5<S,R> - (t*D.y,-t*D.x) - if inx <= nhues then { - hsvtorgb(theta+120,1,1,r,g,b) - rgbfill( r,g,b, - arc cw from Ra to Rb rad w with .c at S - arc ccw from Rb to Ra rad w with .c at R ) - } else { - arc cw from Ra to Rb rad w with .c at S - arc ccw from Rb to Ra rad w with .c at R } - S: R - } - ] - - "svg_fsize(R,120)" at 0.9<Worm.se,Worm.ne> ljust - "svg_fsize(G,120)" at Worm.e ljust - "svg_fsize(B,120)" at 0.1<Worm.se,Worm.ne> ljust - "svg_fsize(Y,120)" at 0.1<Worm.sw,Worm.nw> rjust - "svg_fsize(M,120)" wid 0.2 at Worm.w rjust - "svg_fsize(C,120)" at 0.9<Worm.sw,Worm.nw> rjust - box invis ht Worm.ht wid Worm.wid+0.4 at Worm - -[ thicklines_ - C: circle rad 1.5 at 0,0 - smallrad = C.rad/2 - for t=0 to 330 by 30 do { - line from Rect_(C.rad-0.05,90-t) to Rect_(C.rad+0.05,90-t) - sprintf("%g",t) at Rect_(C.rad+0.2,90-t) - } - "svg_fsize(R,120)" at Rect_(C.rad+0.45,90-0) - "svg_fsize(Y,120)" wid 0.2 at Rect_(C.rad+0.45,90-60) - "svg_fsize(G,120)" at Rect_(C.rad+0.45,90-120) - "svg_fsize(C,120)" at Rect_(C.rad+0.45,90-180) - "svg_fsize(B,120)" at Rect_(C.rad+0.45,90-240) - "svg_fsize(M,120)" at Rect_(C.rad+0.45,90-300) - linethick_(0) - - for t = 1 to 90 do { - hsvtorgb(t/90*360,1,1,r,g,b) - line shaded svgcolor(r,g,b) outlined svgcolor(r,g,b) \ - from C to Rect_(C.rad-0.05,90-(t-0.5)/90*360) \ - then to Rect_(C.rad-0.05,90-(t+0.5)/90*360) \ - then to C - } - - R: circle diam C.rad at Rect_(C.rad*3/8,90) color "rgb(255,0,0)" - G: circle diam C.rad at Rect_(C.rad*3/8,-30) color "rgb(0,255,0)" - B: circle diam C.rad at Rect_(C.rad*3/8,-150) color "rgb(0,0,255)" - - RG: cintersect(R,R.rad,G,G.rad) - GR: cintersect(R,R.rad,G,G.rad,R) - GB: cintersect(G,G.rad,B,B.rad) - BG: cintersect(G,G.rad,B,B.rad,R) - BR: cintersect(B,B.rad,R,R.rad) - RB: cintersect(B,B.rad,R,R.rad,R) - -# The following could be done other ways depending on the postprocessor -`define lozenge { - arc from $1$2 to $2$1 with .c at $2 - arc from $2$1 to $1$2 with .c at $1 }' - -# yellow -linethick = 0.1; rgbfill(255,255,0,lozenge(R,G)) -linethick = 0.4; rgbdraw(255,255,0,lozenge(R,G)) - -# cyan -linethick = 0.1; rgbfill(0,255,255,lozenge(G,B)) -linethick = 0.4; rgbdraw(0,255,255,lozenge(G,B)) - -# magenta -linethick = 0.1; rgbfill(255,0,255,lozenge(B,R)) -linethick = 0.4; rgbdraw(255,0,255,lozenge(B,R)) - -`define white { - arc cw from RB to GR with .c at R - arc cw from GR to BG with .c at G - arc cw from BG to RB with .c at B }' -linethick = 0.1; rgbfill(255,255,255,white) -linethick = 0.4; rgbdraw(255,255,255,white) -setrgb(255,255,255) - line from RB to GR then to BG then to RB -resetrgb - -] with .w at Worm.e+(0.5,0) - -.PE |