%% znacky.mf %% posledni uprava 19. 12. 1997 newinternal scalingfactor; %% promenna urcujici velikost zvetseni scalingfactor:=1; transform now; def uloz(expr bod,uhel) text tr= %% makro pro nastaveni transformaci now:=currenttransform; currenttransform:=identity tr scaled scalingfactor rotated uhel shifted bod; begingroup enddef; def vloz(expr bod) text tr= %% makro pro nastaveni transformaci now:=currenttransform; currenttransform:=identity tr scaled scalingfactor shifted bod; begingroup enddef; def obnov= %% pomocna procedura pro obnoveni transformaci endgroup; currenttransform:=now; enddef; def civka(expr p) text params= uloz params; save i; erase draw (0,0)--(p*5mm,0); for i=1 upto p: draw halfcircle scaled 5mm shifted (i*5mm-2.5mm,0); endfor; obnov; enddef; def dioda text params= uloz params; draw (origin--dir150--dir-150--origin--(0,ypart(dir150)) --(0,ypart(dir-150))) scaled 4mm; obnov; enddef; def zdioda text params= dioda params; uloz params; draw (0,2.05mm)--(-1.3mm,2.05mm); obnov; enddef; def kond text params= uloz params; erase fill unitsquare xscaled 1.2mm yscaled 7mm shifted (-0.6mm,-3.5mm); draw (-0.6mm,-4mm)--(-0.6mm,4mm); draw (0.6mm,-4mm)--(0.6mm,4mm); obnov; enddef; def lkond text params= kond params; uloz params; draw (-4mm,-4mm)--(4mm,4mm); draw (-4mm,-4mm)+1.5mm*dir25--(-4mm,-4mm)--(-4mm,-4mm)+1.5mm*dir65; obnov; enddef; def rez text params= uloz params; erase fill unitsquare xscaled 10mm yscaled 3mm shifted (-5mm,-1.5mm); draw unitsquare xscaled 10mm yscaled 3mm shifted (-5mm,-1.5mm); obnov; enddef; def pot text params= rez params; uloz params; draw (-5mm,-5mm)--(5mm,5mm); draw (-5mm,-5mm)+1.8mm*dir25--(-5mm,-5mm)--(-5mm,-5mm)+1.8mm*dir65; obnov; enddef; def trimr text params= rez params; uloz params; draw (-4mm,-4mm)--(5mm,5mm); draw (-4.7mm,-3.3mm)--(-3.3mm,-4.7mm); obnov; enddef; def zdroj text params= uloz params; erase fill (-0.6mm,-2.5mm)--(-0.6mm,2.5mm)--(0.6mm,5mm) --(0.6mm,-5mm)--cycle; draw (-0.6mm,-2.5mm)--(-0.6mm,2.5mm); draw (0.6mm,-5mm)--(0.6mm,5mm); obnov; enddef; def tranzist= save x,y,R; z1=(-6mm,0); z2=(0,3.5mm); z3=(0,-3.5mm); z12=1/2[z1,z2]; z0-z12=whatever*((z1-z2) rotated 90); y0=0; R=length(z1-z0); erase fill fullcircle scaled 2R shifted z0; draw fullcircle scaled 2R shifted z0; z4=(-3.5mm,0); z5=(-3.5mm,-2.6mm); z6=(-3.5mm,2.6mm); z7=(-3.5mm,-1.2mm); z8=(-3.5mm,1.2mm); draw z1--z4; draw z5--z6; draw z7--z3; draw z8--z2; enddef; def npn text params= uloz params; save x,y; tranzist; z3=(0,-3.5mm); z7=(-3.5mm,-1.2mm); draw z3+1.8mm*dir(angle(z7-z3)+20)--z3--z3+1.8mm*dir(angle(z7-z3)-20); obnov; enddef; def pnp text params= uloz params; save x,y; tranzist; z3=(0,-3.5mm); z7=(-3.5mm,-1.2mm); draw z7+1.8mm*dir(angle(z3-z7)+20)--z7--z7+1.8mm*dir(angle(z3-z7)-20); obnov; enddef; def plus text params= vloz params; draw (right--left) scaled .7mm; draw (up--down) scaled .7mm; obnov; enddef; def minus text params= vloz params; draw (right--left) scaled .7mm; obnov; enddef; def oz text params= uloz params; save x,y; z1=(12mm,0); z2=(0,7mm); z3=(0,-7mm); z4=(1.7mm,4mm); z5=(1.7mm,-4mm); erase fill z1--z2--z3--cycle; draw z1--z2--z3--cycle; draw (right--left) scaled .7mm shifted z4; draw (right--left) scaled .7mm shifted z5; draw (up--down) scaled .7mm shifted z5; obnov; enddef; def zarovka text params= vloz params; erase fill fullcircle scaled 6mm; draw fullcircle scaled 6mm; draw (dir45--dir-135) scaled 3mm; draw (dir-45--dir135) scaled 3mm; obnov; enddef; def meridlo text params= vloz params; erase fill fullcircle scaled 7mm; draw fullcircle scaled 7mm; obnov; enddef; def zdirka text params= uloz params; erase fill (halfcircle--cycle) rotated 90 shifted (.5,0) scaled 2.5mm; draw halfcircle rotated 90 shifted (.5,0) scaled 2.5mm; obnov; enddef; def rep text params= uloz params; erase fill (2mm,-2.5mm)--(5mm,-5mm)--(5mm,5mm)--(2mm,2.5mm)-- (-2mm,2.5mm)--(-2mm,-2.5mm)--cycle; draw unitsquare xscaled 4mm yscaled 5mm shifted (-2mm,-2.5mm); draw (2mm,-2.5mm)--(5mm,-5mm)--(5mm,5mm)--(2mm,2.5mm)--cycle; obnov; enddef; def vlna= draw (left{dir45}..origin..{dir45}right) enddef; def vlnka text params= vloz params; vlna scaled 1.3mm; obnov; enddef; def tongen text params= vloz params; erase fill unitsquare scaled 10mm shifted (-5mm,-5mm); draw unitsquare scaled 10mm shifted (-5mm,-5mm); vlna scaled 3mm shifted (0,1mm); vlna scaled 3mm shifted (0,-1mm); draw (-2mm,-3mm)--(2mm,3mm); draw (2mm,3mm)+mm*dir(angle(-2,-3)+20)--(2mm,3mm) --(2mm,3mm)+mm*dir(angle(-2,-3)-20); obnov; enddef; def oscil text params= vloz params; erase fill unitsquare xscaled 10mm yscaled 15mm shifted (-5mm,-5mm); draw unitsquare xscaled 10mm yscaled 15mm shifted (-5mm,-5mm); draw fullcircle scaled 4mm shifted (0,6.25mm); draw fullcircle scaled mm shifted (-3mm,0); draw fullcircle scaled mm shifted (3mm,0); draw (3mm,-4mm)--(3mm,-2mm); draw (2mm,-4mm)--(4mm,-4mm); erase fill fullcircle scaled mm shifted (3mm,-2mm); draw fullcircle scaled mm shifted (3mm,-2mm); obnov; enddef; def spoj text params= vloz params; filldraw fullcircle scaled .8mm; obnov; enddef; def oval text params= uloz params; save p; path p; p=halfcircle scaled 10mm rotated 270 shifted (4mm,0)-- halfcircle scaled 10mm rotated 90 shifted (-4mm,0)--cycle; erase fill p; draw p; obnov; enddef;