home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / Chip_2000-02_cd.bin / servis / tipy / web / CSTUG / KRESLIME / KRESLIME.ZIP / ZNACKY.MF < prev   
Encoding:
Text File  |  1997-12-24  |  5.7 KB  |  224 lines

  1. %% znacky.mf
  2. %% posledni uprava 19. 12. 1997
  3.  
  4. newinternal scalingfactor; %% promenna urcujici velikost zvetseni
  5. scalingfactor:=1;
  6.  
  7. transform now;
  8.  
  9. def uloz(expr bod,uhel) text tr= %% makro pro nastaveni transformaci
  10.   now:=currenttransform;
  11.   currenttransform:=identity tr scaled scalingfactor rotated uhel
  12.     shifted bod;
  13.   begingroup
  14. enddef;
  15.  
  16. def vloz(expr bod) text tr= %% makro pro nastaveni transformaci
  17.   now:=currenttransform;
  18.   currenttransform:=identity tr scaled scalingfactor shifted bod;
  19.   begingroup
  20. enddef;
  21.  
  22. def obnov= %% pomocna procedura pro obnoveni transformaci
  23.   endgroup;
  24.   currenttransform:=now;
  25. enddef;
  26.  
  27. def civka(expr p) text params=
  28.   uloz params;
  29.     save i;
  30.     erase draw (0,0)--(p*5mm,0);
  31.     for i=1 upto p: 
  32.       draw halfcircle scaled 5mm shifted (i*5mm-2.5mm,0);
  33.     endfor;
  34.   obnov;
  35. enddef;
  36.  
  37. def dioda text params=
  38.   uloz params;
  39.   draw (origin--dir150--dir-150--origin--(0,ypart(dir150))
  40.     --(0,ypart(dir-150))) scaled 4mm;
  41.   obnov;
  42. enddef;
  43.  
  44. def zdioda text params=
  45.   dioda params;
  46.   uloz params;
  47.   draw (0,2.05mm)--(-1.3mm,2.05mm);
  48.   obnov;
  49. enddef;
  50.  
  51. def kond text params=
  52.   uloz params;
  53. erase fill unitsquare xscaled 1.2mm yscaled 7mm shifted (-0.6mm,-3.5mm);
  54.   draw (-0.6mm,-4mm)--(-0.6mm,4mm);  draw (0.6mm,-4mm)--(0.6mm,4mm);
  55.   obnov;
  56. enddef;
  57.  
  58. def lkond text params=
  59.   kond params;
  60.   uloz params;
  61.   draw (-4mm,-4mm)--(4mm,4mm);
  62.   draw (-4mm,-4mm)+1.5mm*dir25--(-4mm,-4mm)--(-4mm,-4mm)+1.5mm*dir65;
  63.   obnov;
  64. enddef;
  65.  
  66. def rez text params=
  67.   uloz params;
  68.   erase fill unitsquare xscaled 10mm yscaled 3mm shifted (-5mm,-1.5mm);
  69.   draw unitsquare xscaled 10mm yscaled 3mm shifted (-5mm,-1.5mm);
  70.   obnov;
  71. enddef;
  72.  
  73. def pot text params=
  74.   rez params;
  75.   uloz params;
  76.   draw (-5mm,-5mm)--(5mm,5mm);
  77.   draw (-5mm,-5mm)+1.8mm*dir25--(-5mm,-5mm)--(-5mm,-5mm)+1.8mm*dir65;
  78.   obnov;
  79. enddef;
  80.  
  81. def trimr text params=
  82.   rez params;
  83.   uloz params;
  84.   draw (-4mm,-4mm)--(5mm,5mm);  draw (-4.7mm,-3.3mm)--(-3.3mm,-4.7mm);
  85.   obnov;
  86. enddef;
  87.  
  88. def zdroj text params=
  89.   uloz params;
  90.   erase fill (-0.6mm,-2.5mm)--(-0.6mm,2.5mm)--(0.6mm,5mm)
  91.       --(0.6mm,-5mm)--cycle;
  92.   draw (-0.6mm,-2.5mm)--(-0.6mm,2.5mm);  draw (0.6mm,-5mm)--(0.6mm,5mm);
  93.   obnov;
  94. enddef;
  95.  
  96. def tranzist=
  97.     save x,y,R;
  98.     z1=(-6mm,0);  z2=(0,3.5mm);  z3=(0,-3.5mm);
  99.     z12=1/2[z1,z2];
  100.     z0-z12=whatever*((z1-z2) rotated 90); y0=0;
  101.     R=length(z1-z0);
  102.     erase fill fullcircle scaled 2R shifted z0;
  103.     draw fullcircle scaled 2R shifted z0;
  104.     z4=(-3.5mm,0);  z5=(-3.5mm,-2.6mm);  z6=(-3.5mm,2.6mm);
  105.     z7=(-3.5mm,-1.2mm);  z8=(-3.5mm,1.2mm);
  106.     draw z1--z4; draw z5--z6; draw z7--z3; draw z8--z2;
  107. enddef;
  108.  
  109. def npn text params=
  110.   uloz params;
  111.   save x,y;
  112.   tranzist;
  113.   z3=(0,-3.5mm); z7=(-3.5mm,-1.2mm);
  114.   draw z3+1.8mm*dir(angle(z7-z3)+20)--z3--z3+1.8mm*dir(angle(z7-z3)-20);
  115.   obnov;
  116. enddef;
  117.  
  118. def pnp text params=
  119.   uloz params;
  120.   save x,y;
  121.   tranzist;
  122.   z3=(0,-3.5mm); z7=(-3.5mm,-1.2mm);
  123.   draw z7+1.8mm*dir(angle(z3-z7)+20)--z7--z7+1.8mm*dir(angle(z3-z7)-20);
  124.   obnov;
  125. enddef;
  126.  
  127. def plus text params=
  128.   vloz params;
  129.   draw (right--left) scaled .7mm; draw (up--down) scaled .7mm;
  130.   obnov;
  131. enddef;
  132.  
  133. def minus text params=
  134.   vloz params;  draw (right--left) scaled .7mm;  obnov;
  135. enddef;
  136.  
  137. def oz text params=
  138.   uloz params;
  139.     save x,y;
  140.     z1=(12mm,0); z2=(0,7mm); z3=(0,-7mm); z4=(1.7mm,4mm);
  141.     z5=(1.7mm,-4mm);
  142.     erase fill z1--z2--z3--cycle;  draw z1--z2--z3--cycle;
  143.     draw (right--left) scaled .7mm shifted z4;
  144.     draw (right--left) scaled .7mm shifted z5;
  145.     draw (up--down) scaled .7mm shifted z5;
  146.   obnov;
  147. enddef;
  148.  
  149. def zarovka text params=
  150.   vloz params;
  151.   erase fill fullcircle scaled 6mm; draw fullcircle scaled 6mm;
  152.   draw (dir45--dir-135) scaled 3mm; draw (dir-45--dir135) scaled 3mm;
  153.   obnov;
  154. enddef;
  155.  
  156. def meridlo text params=
  157.   vloz params;
  158.   erase fill fullcircle scaled 7mm; draw fullcircle scaled 7mm;
  159.   obnov;
  160. enddef;
  161.  
  162. def zdirka text params=
  163.   uloz params;
  164.   erase fill (halfcircle--cycle) rotated 90 shifted (.5,0) scaled 2.5mm;
  165.   draw halfcircle rotated 90 shifted (.5,0) scaled 2.5mm;
  166.   obnov;
  167. enddef;
  168.  
  169. def rep text params=
  170.   uloz params;
  171.   erase fill (2mm,-2.5mm)--(5mm,-5mm)--(5mm,5mm)--(2mm,2.5mm)--
  172.       (-2mm,2.5mm)--(-2mm,-2.5mm)--cycle;
  173.   draw unitsquare xscaled 4mm yscaled 5mm shifted (-2mm,-2.5mm);
  174.   draw (2mm,-2.5mm)--(5mm,-5mm)--(5mm,5mm)--(2mm,2.5mm)--cycle;
  175.   obnov;
  176. enddef;
  177.  
  178. def vlna=
  179.   draw (left{dir45}..origin..{dir45}right)
  180. enddef;
  181.  
  182. def vlnka text params=
  183.   vloz params;  vlna scaled 1.3mm;  obnov;
  184. enddef;
  185.  
  186. def tongen text params=
  187.   vloz params;
  188.   erase fill unitsquare scaled 10mm shifted (-5mm,-5mm);
  189.   draw unitsquare scaled 10mm shifted (-5mm,-5mm);
  190.   vlna scaled 3mm shifted (0,1mm);  vlna scaled 3mm shifted (0,-1mm);
  191.   draw (-2mm,-3mm)--(2mm,3mm);
  192.   draw (2mm,3mm)+mm*dir(angle(-2,-3)+20)--(2mm,3mm)
  193.     --(2mm,3mm)+mm*dir(angle(-2,-3)-20);
  194.   obnov;
  195. enddef;
  196.  
  197. def oscil text params=
  198.   vloz params;
  199.   erase fill unitsquare xscaled 10mm yscaled 15mm shifted (-5mm,-5mm);
  200.   draw unitsquare xscaled 10mm yscaled 15mm shifted (-5mm,-5mm);
  201.   draw fullcircle scaled 4mm shifted (0,6.25mm);
  202.   draw fullcircle scaled mm shifted (-3mm,0);
  203.   draw fullcircle scaled mm shifted (3mm,0);
  204.   draw (3mm,-4mm)--(3mm,-2mm); draw (2mm,-4mm)--(4mm,-4mm);
  205.   erase fill fullcircle scaled mm shifted (3mm,-2mm);
  206.   draw fullcircle scaled mm shifted (3mm,-2mm);
  207.   obnov;
  208. enddef;
  209.  
  210. def spoj text params=
  211.   vloz params;  filldraw fullcircle scaled .8mm;  obnov;
  212. enddef;
  213.  
  214. def oval text params=
  215.   uloz params;
  216.     save p;
  217.     path p;
  218.     p=halfcircle scaled 10mm rotated 270 shifted (4mm,0)--
  219.       halfcircle scaled 10mm rotated 90 shifted (-4mm,0)--cycle;
  220.     erase fill p;
  221.     draw p;
  222.   obnov;
  223. enddef;
  224.