numeric longallu,epallu;
longallu=41.5mm;
epallu=2mm;
ecartpoint=epallu-0.1mm;

color BurlyWood,PfCSoufre;
BurlyWood=(222,184,135)/256;
PfCSoufre=red;

vardef Allu(expr dep,arr)=
  save Retour;
  picture Retour;
  Retour=image(
      pair depa,arra;
    depa=dep+ecartpoint*unitvector(arr-dep);
    arra=arr+ecartpoint*unitvector(dep-arr);
    pair corps[];
    corps[1]-depa=0.5*epallu*unitvector(rotation(arr,dep,-90)-dep);
    corps[4]=symetrie(corps[1],dep,arr);
    corps2=corps1+0.975*(arra-depa);
    corps3-corps2=corps4-corps1;
    path Corps;
    Corps=polygone(corps1,corps2,corps3,corps4);
    fill Corps withcolor if print: white else:BurlyWood fi;
    trace Corps withcolor 0.5[black,if print: white else:BurlyWood fi];
    pair cera,cerb,cerc;
    cera=pointarc(cercles((0,0),1.5epallu),125);
    cerb=pointarc(cercles((0,0),1.5epallu),235);
    cerc=pointarc(cercles((0,0),1.5epallu),0);
    path bout;
    bout=arccercle(cerb,cerc,(0,0))--arccercle(cerc,cera,(0,0))--cycle;
    fill (rotation(bout yscaled 0.385 xscaled 0.8,(0,0),angle(arra-depa)) shifted (arra+1.0*ecartpoint*unitvector(dep-arr))) withcolor if print:0.7white else: PfCSoufre fi;
    draw (rotation(bout yscaled 0.385 xscaled 0.8,(0,0),angle(arra-depa)) shifted (arra+1.0*ecartpoint*unitvector(dep-arr))) withcolor 0.5[black,if print: 0.7white else: PfCSoufre fi];
    );
  Retour
enddef;

vardef OldAllu(expr dep,arr)=
  save Retour;
  picture Retour;
  Retour=image(
      pair depa,arra;
    depa=dep+ecartpoint*unitvector(arr-dep);
    arra=arr+ecartpoint*unitvector(dep-arr);
    pair corps[];
    corps[1]-depa=0.5*epallu*unitvector(rotation(arr,dep,-90)-dep);
    corps[4]=symetrie(corps[1],dep,arr);
    corps2=corps1+0.975*(arra-depa);
    corps3-corps2=corps4-corps1;
    path Corps;
    Corps=polygone(corps1,corps2,corps3,corps4);
%    fill Corps withcolor if print: white else:BurlyWood fi;
%    trace Corps withcolor 0.5[black,if print: white else:BurlyWood fi] dashed evenly;
    trace Corps dashed evenly;
    pair cera,cerb,cerc;
    cera=pointarc(cercles((0,0),1.5epallu),125);
    cerb=pointarc(cercles((0,0),1.5epallu),235);
    cerc=pointarc(cercles((0,0),1.5epallu),0);
    path bout;
    bout=arccercle(cerb,cerc,(0,0))--arccercle(cerc,cera,(0,0))--cycle;
    fill (rotation(bout yscaled 0.385 xscaled 0.8,(0,0),angle(arra-depa)) shifted (arra+0.75*ecartpoint*unitvector(dep-arr))) withcolor white;
    draw (rotation(bout yscaled 0.385 xscaled 0.8,(0,0),angle(arra-depa)) shifted (arra+0.75*ecartpoint*unitvector(dep-arr)));% withcolor 0.5[black,if print: 0.7white else: PfCSoufre fi];
    );
  Retour
enddef;
  
u:=longallu+epallu;

vardef DefinirUnite(expr pfcechelle)=
    longallu:=longallu*pfcechelle;
    epallu:=epallu*pfcechelle;
    ecartpoint:=ecartpoint*pfcechelle;
    u:=longallu+epallu;
enddef;

endinput;