Les sources de Syracuse labo.pps

%%  Ce fichier est un essai de transcription dans le format jps
%%  du formidable travail qu'ont accompli Manuel Luque, Denis Girou et
%%  Christophe Jorsen pour l'extension pst-labo pour PSTricks. (voir
%%  http://members.aol.com/Mluque5130/). Merci à eux
/uselabo {} def

/aspectLiquides [] def
/niveauLiquides [] def
/Solides [] def
/Gazs [] def
/Tubes [] def

/linewidth .5 def

/m@depl@n true def
/mode2D {
   /m@depl@n true store
} def
/mode3D {
   /m@depl@n false store
} def

/b@uch@n false def
/withbouchon {
   /b@uch@n true store
} def
/withoutbouchon {
   /b@uch@n false store
} def

%% liste des problemes a resoudre :
%%    * les pscustom
%%    * les psclip
%%    * les linestyle=none

/Beige {0.96 0.96 0.86 setrgbcolor}  def
/GrisClair {0.8 0.8 0.8 setrgbcolor}  def
/GrisTresClair {0.9 0.9 0.9 setrgbcolor}  def
/OrangeTresPale {0 0.1 0.3 0 setcmykcolor} def
/OrangePale {0 0.2 0.4 0 setcmykcolor} def
/BleuClair {0.2 0 0 0 setcmykcolor} def
/LightBlue {.68 .85 .9 setrgbcolor}  def
/Copper {0 0.9 0.9 0.2 setcmykcolor} def
/Marron {0 0.3 0.5 .3 setcmykcolor} def

/le_max 2 31 exp 1 sub def
/relax_dim {0 0 0 0} def
/relax {} def

/RobinetTube_dim {
   -.3 -.35 jtoppoint
   .3 .35 jtoppoint
} def

/RobinetTube {
gsave
currentpoint translate
2 dict begin
   /fillstyle {.6 setgray fill} def
   /linearc .05 def
   [-0.3 0.35 0.3 0.35 0.3 0.2 0.1 0.2
   0.1 -0.35 -0.1 -0.35 -0.1 0.2 -0.3 0.2 -0.3 0.3] polygone*
end
grestore
} def

/oeil_dim {
   -2 -1 jtoppoint
   0 1 jtoppoint
} def

/oeil { 
gsave
currentpoint translate
1 dict begin
   0 2.5 2.5 215 270 sarc
   0 -2.5 2.5 90 140 sarc
   -2.5 0 1 -30 30 sarc
   0 0 1.75 160 200 sarc
   newpath
      0 0 smoveto
      0 0 1.75 cercle_
      /fillstyle {.5 setgray fill} def
   clip
   -2.5 0 0.9 cercle*
end
grestore
} def

/Boulon_dim {
   -.2 -.2 jtoppoint
   .2 .2 jtoppoint
} def

/Boulon {
gsave
currentpoint translate
1 dict begin
   /fillstyle {.8 setgray fill} def
   0 0 .2 cercle*
   [0.15 60 0.15 120 0.15 180 0.15 240 0.15 300 0.15 360] {polcar} papply polygone
end
grestore
} def

/Supportboy_dim {
1 dict begin
   3 copy
   pop pop
   7.3 min /h exch def
   -2.75 0 jtoppoint 
   2.75 h jtoppoint 
end
} def

%% d'apres une idee et un code original de Manuel Luque
%% http://melusine.eu.org/syracuse/mluque/transformations_geometriques_beta2/
/Supportboy {
gsave
currentpoint translate
18 dict begin

   /vis_supportboy_dic 1 dict def
   vis_supportboy_dic /pointfixe {-1.5 0} put
   
   /vis_supportboy_dim {
      -2.5 -.75 jtoppoint
      3 .75 jtoppoint
   } def
   
   /vis_supportboy {
   gsave
   currentpoint translate
   1 dict begin
      -2.5 -0.1 2.5 0.1 frame
      /fillstyle {
         /hangle 45 store 
         /hstep 5 store
         hachure
         /hangle 135 store 
         hachure
      } def
      2.5 -0.75 3 0.75 frame*
      /fillstyle {
         /hangle 60 store 
         /hstep 3 store
         hachure
      } def
      -1 -0.1 2 0.1 frame*
   end
   grestore
   } def

   /axe_dim {
      -.15 -.15 jtoppoint
      .15 .15 jtoppoint
   } def
   
   /axe {
   gsave
   currentpoint translate
   1 dict begin
      /fillstyle {.8 setgray fill} def
      0 0 .15 cercle*
   end
   grestore
   } def
   
   /languette_supportboy_dic 2 dict def
   languette_supportboy_dic /oeildroit {1.75 .25} put
   languette_supportboy_dic /oeilgauche {-1.75 .25} put
   
   /languette_supportboy_dim {
      -2 0 jtoppoint 
      2 .5 jtoppoint
   } def
   
   /languette_supportboy {
   gsave
   currentpoint translate
   2 dict begin
      /fillstyle {.6 setgray fill} def
      /linearc .25 def
      -2 0 2 .5 frame*
   end
   grestore
   } def
   
   /basesupportboy_dim {
      -2 0 jtoppoint
      2 .5 jtoppoint
   } def
   
   /basesupportboy_dic 1 dict def
   basesupportboy_dic /oeil {-1.75 .25} put
   
   /basesupportboy {
   gsave
   currentpoint translate
      newpath 
         0 .25 stranslate 
         %% le tour
         -2 -.25 smoveto
         -2 .25 slineto
         2 .25 slineto
         2 -.25 slineto
         -2 -.25 slineto
      
         %% la fente ajouree
         -0.95 0.15 smoveto
         -0.95 0 0.15 90 270 sarc_
         [-0.8 -0.15 1.7 -0.15] ligne_
         1.7 0 0.15 -90 90 sarc_
      closepath
      gsave
         .6 setgray fill
      grestore
      stroke
   grestore
   } def

   7.3 min /h exch def
   h .5 sub 7 div arcsin /inclinaison exch def
   
   /point1 {-1.75 .25} def
   point1 inclinaison cos 3.5 mul 0 addv /point2 defpoint
   point2 inclinaison sin 3.5 mul add /point5 defpoint
   point1 point5 milieu /point3 defpoint
   point1 inclinaison sin 3.5 mul add /point4 defpoint
   point4 inclinaison sin 3.5 mul add /point7 defpoint
   point5 point7 milieu /point6 defpoint
   
   point4 (vis_supportboy) /pointfixe spict
   point1 {inclinaison} (languette_supportboy) /oeilgauche spict
   point3 {inclinaison neg} (languette_supportboy) ccpict
   point3 {inclinaison neg} (languette_supportboy) ccpict
   point5 {inclinaison neg} (languette_supportboy) /oeildroit spict
   point6 {inclinaison} (languette_supportboy) ccpict
   /oeildroit pictget /point8 defpoint
   point7 (basesupportboy) /oeil spict
   0 0 (basesupportboy) bbpict
   
   %% on pose les boulons et les axes
   point1 (Boulon) ccpict
   point2 (axe) ccpict
   point3 (Boulon) ccpict
   point4 (Boulon) ccpict
   point5 (Boulon) ccpict
   point6 (Boulon) ccpict
   point7 (Boulon) ccpict
   point8 (axe) ccpict

end
grestore
} def

/Manometre_dim {
   -1 -1 jtoppoint
   1 1 jtoppoint
} def

/Manometre_dic 5 dict def
Manometre_dic /Connect {0 -1} put

/Manometre {
gsave
currentpoint translate
3 dict begin
   /position exch def
   /fillstyle {blanc fill} def
   0 0 1 cercle
   0 0 .9 cercle*
   0 0 0.65 -60 240 sarc
   /i -60 def
   11 {
      [.65 i polcar .45 i polcar] ligne
      /i i 30 add store
   } repeat
   2 dict begin
      2 currentlinewidth mul setlinewidth
      /arrowscale {1.2 dup} def
      [0.5 position 180 sub polcar 0.65 position polcar] (->) ligne
   end
   O .1 cercle* 
end
grestore
} def

%% \newdimen{\FilamentWidth}
%% 
%% \newcommand{\Filaments}[2][5]{%
%% \multido{\iFilament=1+1}{#1}{%
%% \setrandim{\FilamentWidth}{0pt}{0.05pt}
%% \rput{\psk@TubeEssais@tubePenche}{%
%% \pscustom[linewidth=\pointless\FilamentWidth,linecolor=#2]{%
%% \code{/MyRand rand 2 31 exp div def} \pscurve(! MyRand 1 sub MyRand 2 mul 1
%% sub) (! MyRand 0.2 add MyRand 2 add)(! MyRand MyRand 1 sub)(! MyRand 0.5 add
%% MyRand 4 add)}}}}

/Clous { 
gsave
9 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /L uux llx sub def
%% {\psset{linecolor=blue} \psarc[linewidth=0.1](0,0.5){.4}{190}{260}
%% \psline(-0.28,0.2)(0.5,1)}}
%% 
%% \newdimen\ClouX
%% \newdimen\ClouY
%% \newcount\AngleRotation
%% \newcommand{\Clous}[1][60]{%
   n {
      /ClouX rand 2 31 exp 1 sub div L mul llx add def
      /ClouY rand 2 31 exp 1 sub div .6 mul lly add def
      /AngleRotation rand 2 31 exp 1 sub div 180 mul 90 sub def
      gsave
         ClouX ClouY stranslate
         AngleRotation rotate
         .5 dup scale
         1 1 1 1 ClouFer
      grestore
   } repeat
end
grestore
} def

/Zinc {
gsave
9 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /L uux llx sub def
   n {
      /GrenailleX rand 2 31 exp 1 sub div L mul llx add def
      /GrenailleY rand 2 31 exp 1 sub div .5 mul lly add def
      /AngleRotation rand 2 31 exp 1 sub div 369 mul 180 sub def
      gsave
         GrenailleX GrenailleY stranslate
         AngleRotation rotate
         .5 dup scale
         1 1 1 1 GrenailleZinc
      grestore
   } repeat
end
grestore
} def

/Cuivre {
gsave
9 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /L uux llx sub def
   n {
      /TournureX rand 2 31 exp 1 sub div L mul llx add def
      /TournureY rand 2 31 exp 1 sub div .5 mul lly add def
      /AngleRotation rand 2 31 exp 1 sub div 360 mul 180 sub def
      gsave
         TournureX TournureY stranslate
         AngleRotation rotate
         .5 dup scale
         1 1 1 1 TournureCuivre      
      grestore
   } repeat
end
grestore
} def

/Filaments {
gsave
9 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /H uuy lly sub def
   /L uux llx sub def
   /arg {argc} def
   /MyRand {rand le_max div} def
   0 -1.5 stranslate
   llx lly uux uuy milieu stranslate
   L 6 div H 7 div scale
   n {
      /FilamentWidth rand le_max div 5 mul def
      FilamentWidth setlinewidth
      [MyRand 1 sub MyRand 2 mul 1 sub .. MyRand 0.2 add MyRand 2 add
      .. MyRand MyRand 1 sub .. MyRand 0.5 add MyRand 4 add] draw
   } repeat
grestore
} def

%-2 -2 3 3 10 Filaments

/TournureCuivre {
1 dict begin
gsave
   pop pop pop pop
%   Copper
   1 setlinewidth
   [.25 0.25 0 0 -0.25 .25 0.25 0.75 0 .5 -0.25 0.75 0.25 1.25 0 1
   -0.25 1.25 0.25 1.75] bezier_curve 
grestore
end
} def

%TournureCuivre

/ClouFer {
%% \rput{\psk@TubeEssais@tubePenche}{{\psset{linecolor=blue}
1 dict begin
gsave
%   bleu
   pop pop pop pop
   0 0.5 .4 190 260 sarc
   1 setlinewidth
   [-0.28 0.2 0.5 1] ligne
grestore
end
} def

%ClouFer

/GrenailleZinc {
pop pop pop pop
1 dict begin
gsave
   GrisClair
%%   [0 0 .. -0.25 0.25 .. 0 .5 .. 0.25 0.75 .. 0.5 0.5 .. 0.15 0.4 .. 0 0] draw
   /fillstyle {GrisClair fill} def
   [0   0   -0.151479   -0.0395512   -0.289551   0.0985209   -0.25   0.25
   -0.218889   0.369153   -0.0871553   0.416129   0   0.5 0.0864664
   0.583208   0.134834   0.710268   0.25   0.75   0.428504 0.811584
   0.580305   0.638883   0.5   0.5   0.433004   0.384134 0.272038
   0.436138   0.15   0.4   -0.0204054   0.34954   -0.0952084 0.150065   0
   0] bezier_curve*
grestore
end
} def

%GrenailleZinc

/FioleJauge_ {
1 dict begin
   [-0.21 3.5 -0.1 3.5 -0.1 1.5 -0.75 0 0.75 0 0.1 1.5 0.1 3.5 0.21 3.5 ] ligne_
end
} def

/FioleJauge_dim {
   -.75 0 jtoppoint
   .75 3.5 jtoppoint
} def

/FioleJauge_dic 5 dict def
FioleJauge_dic /bb {0 0} put

/FioleJauge {
gsave
currentpoint translate
1 dict begin
   newpath 
      -.21 3.5 smoveto
      FioleJauge_
      gsave
         clip
         -.75 0 .75 3.5 afficheLiquides
         -.75 0 .75 3.5 afficheSolides
         -.75 0 .75 3.5 afficheGazs
      grestore
    stroke
   gsave
      currentlinewidth .3 mul setlinewidth
      [-0.1 2.5 0.1 2.5] ligne
   grestore
%   0 3.5 stranslate
   3.5 afficheBouchage
   3.5 afficheTubes
end
grestore
} def

/Bicol_ {
1 dict begin
   [-0.7 2.7 -0.5 2.5 -0.5 1.5] ligne_
   0 0 1.58114 108.435 71.565 sarc_
   [0.5 1.5 0.5 2.5 0.7 2.7 ] ligne_
end
} def

/Bicol_dim {
   -1.58 0 jtoppoint
   1.58 4.28 jtoppoint
} def

/Bicol_dic 5 dict def
Bicol_dic /bb {0 0} put
Bicol_dic /col {0 3.8} put
Bicol_dic /trou {0 4.28} put
Bicol_dic /trou1 {-.2 4.28} put
Bicol_dic /trou2 {.2 4.28} put
Bicol_dic /trou1g {-1.55563 2.85279} put
Bicol_dic /troug {-1.41421 2.99421} put
Bicol_dic /trou2g {-1.27279 3.13563} put
%% 
%% /Bicol {
%% gsave
%% currentpoint translate
%% 0 1.58 stranslate
%% 1 dict begin
%%    gsave
%%    newpath 
%% 	 -.7 2.7 smoveto
%% 	 Bicol_
%% 	 gsave
%% 	    clip
%% 	    -1.58 -1.58 1.58 2.6 afficheLiquides
%% 	    -1.58 -1.58 1.58 2 afficheSolides
%% 	    -1.58 -1.58 1.58 2.6 afficheGazs
%% 	 grestore
%% 	 stroke
%%    grestore
%%    gsave
%%    45 rotate
%%    newpath
%% 	    -0.7 2.2 smoveto
%% 	    [-0.7 2.2 -0.5 1.8 -0.5 1.5 0.5 1.5 0.5 1.8 0.7 2.2] ligne_
%% 	    blanc fill 
%%    grestore
%%    gsave
%%    45 rotate
%% 	 [-0.7 2.2 -0.5 2 -0.5 1.5] ligne
%% 	 [0.7 2.2 0.5 2 0.5 1.5] ligne
%%    grestore
%%    .8 setlinewidth
%%    m@depl@n
%% 	 {}
%% 	 {0 2.7 0.7 0.1 ellipse}
%%    ifelse
%%    0 -.9 stranslate
%%    3.5 afficheTubes
%% %   afficheBouchage
%% end
%% grestore
%% } def


/Bicol {
gsave
currentpoint translate
0 1.58 stranslate
1 dict begin
   gsave
   newpath 
      -.7 2.7 smoveto
      Bicol_
      gsave
         clip
         -1.58 -1.58 1.58 2.6 afficheLiquides
         -1.58 -1.58 1.58 2 afficheSolides
         -1.58 -1.58 1.58 2.6 afficheGazs
      grestore
      stroke
   grestore
   gsave
   45 rotate
   newpath
	 -0.7 2.2 smoveto
	 [-0.7 2.2 -0.5 1.8 -0.5 1.5 0.5 1.5 0.5 1.8 0.7 2.2] ligne_
	 blanc fill 
   grestore
   gsave
   45 rotate
      [-0.7 2.2 -0.5 2 -0.5 1.5] ligne
      [0.7 2.2 0.5 2 0.5 1.5] ligne
   grestore
   .8 setlinewidth
   m@depl@n
      {}
      {0 2.7 0.7 0.1 ellipse}
   ifelse
   %% on annule la translation en cours
   0 -1.58 stranslate
   4.18 afficheBouchage
   4.18 afficheTubes
   gsave
      -1.41421 2.99421 stranslate
      45 rotate
      0 afficheBouchage
   grestore
end
grestore
} def

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ù

/Tricol_ {
1 dict begin
   [-0.7 2.7 -0.5 2.5 -0.5 1.5] ligne_
   0 0 1.58114 108.435 71.565 sarc_
   [0.5 1.5 0.5 2.5 0.7 2.7 ] ligne_
end
} def

/Tricol_dim {
   -1.58 0 jtoppoint
   1.58 4.28 jtoppoint
} def

/Tricol_dic 6 dict def
Tricol_dic /bb {0 0} put
Tricol_dic /col {0 3.8} put
Tricol_dic /trou {0 4.28} put
Tricol_dic /trou1 {-.2 4.28} put
Tricol_dic /trou2 {.2 4.28} put
Tricol_dic /trou1g {-1.55563 2.85279} put
Tricol_dic /troug {-1.41421 2.99421} put
Tricol_dic /trou2g {-1.27279 3.13563} put
Tricol_dic /trou1d {1.27279 3.13563} put
Tricol_dic /troud {1.41421 2.99421} put
Tricol_dic /trou2d{1.55563 2.85279} put
 

/Tricol {
gsave
currentpoint translate
0 1.58 stranslate
1 dict begin
   currentlinewidth setlinewidth
   newpath 
      -.7 2.7 smoveto
      Tricol_
      gsave
         clip
         -1.58 -1.58 1.58 2.6 afficheLiquides
         -1.58 -1.58 1.58 2 afficheSolides
         -1.58 -1.58 1.58 2.6 afficheGazs
      grestore
      stroke
   gsave
      45 rotate
      newpath
   	 -0.7 2.2 smoveto
   	 [-0.7 2.2 -0.5 1.8 -0.5 1.5 0.5 1.5 0.5 1.8 0.7 2.2] ligne_
      blanc fill 
   grestore
   gsave
      45 rotate
      [-0.7 2.2 -0.5 2 -0.5 1.5] ligne
      [0.7 2.2 0.5 2 0.5 1.5] ligne
   grestore
   gsave
      -45 rotate
      newpath
   	 -0.7 2.2 smoveto
   	 [-0.7 2.2 -0.5 1.8 -0.5 1.5 0.5 1.5 0.5 1.8 0.7 2.2] ligne_
      blanc fill 
   grestore
   gsave
      -45 rotate
      [-0.7 2.2 -0.5 2 -0.5 1.5] ligne
      [0.7 2.2 0.5 2 0.5 1.5] ligne
   grestore
   .8 setlinewidth
   m@depl@n
      {}
      {0 2.7 0.7 0.1 ellipse}
   ifelse
   %% on annule la translation en cours
   0 -1.58 stranslate
   4.18 afficheBouchage
   4.18 afficheTubes
end
grestore
} def

/Ampoule_ {
   [0.1 0 0.1 1.5 0.5 1.8 
   0.5 3.5 0.6 3.6 -0.6 3.6 
   -0.5 3.5 -0.5 1.8 -0.1 1.5 
   -0.1 0] ligne_
} def


/Ampoule_dim {
   -.6 0 jtoppoint
   .6 3.6 jtoppoint
} def

/Ampoule_dic 5 dict def
Ampoule_dic /bb {0 0} put
Ampoule_dic /In {0 0} put
Ampoule_dic /ConnectIn {0 .5} put
Ampoule_dic /Out {0 3.6} put

/Ampoule {
gsave
currentpoint translate
1 dict begin
   newpath 
      .1 0 smoveto
      Ampoule_
      gsave
         clip
         -.6 0 .6 3.6 afficheLiquides
         -.6 0 .6 3.6 afficheSolides
         -.6 0 .6 3.6 afficheGazs
      grestore
   currentlinewidth setlinewidth
   stroke
%   0 3.5 stranslate
   3.5 afficheTubes
   3.5 afficheBouchage
end
grestore
} def

/RebordBecher {
1 dict begin
   .53 setlinewidth
   0 2.55 1.1 .1 ellipse
   .3 setlinewidth
   /nDiv .5 def
   4 {
   [-.75 nDiv -.4 nDiv] ligne
      /nDiv .5 nDiv add store
   } repeat
   .2 setlinewidth
   /nSubDiv .5 def
   16 {
   [-0.75 nSubDiv -.5 nSubDiv] ligne
      /nSubDiv .1 nSubDiv add store
   } repeat
end
} def
 
/Becher_ {
   [-1 2.5 -1 0 1 0 1 2.5] ligne_
} def

/Becher_dic 5 dict def
Becher_dic /bb {0 0} put

/Becher_dim {
   -1 0 jtoppoint
   1 2.5 jtoppoint
} def

/Becher {
gsave
currentpoint translate
2 dict begin
   /linearc .5 def
   newpath 
      -1 2.5 smoveto
      Becher_
      gsave
         clip
         -1 0 1 2.5 afficheLiquides
         -1 0 1 2.5 afficheSolides
         -1 0 1 2.5 afficheGazs
       grestore
   stroke
   m@depl@n not
      {RebordBecher}
   if
   3 afficheTubes
%   3 afficheBouchage
end
grestore
} def

/Erlen_ {
   [-0.5 3.5 -0.5 2.5 -1.5 0 1.5 0 0.5 2.5 0.5 3.5] ligne_
} def
 
/Erlen_dim {
  -1.5 0 jtoppoint
   1.5 3.5 jtoppoint
} def

/Erlen_dic 6 dict def
Erlen_dic /bb {0 0} put
Erlen_dic /col {0 2.8} put
Erlen_dic /trou {0 3.6} put
Erlen_dic /trou1 {-.2 3.6} put
Erlen_dic /trou2 {.2 3.6} put

/Erlen {
gsave
currentpoint translate
2 dict begin
   currentlinewidth setlinewidth
   /linearc .5 def
   newpath 
      -.5 3.5 smoveto
      Erlen_
      gsave
         clip
         -1.5 0 1.5 3.5 afficheLiquides
         -1.5 0 1.5 3.5 afficheSolides
         -1.5 0 1.5 3.5 afficheGazs
       grestore
   stroke
   /linearc 0 store
%   0 3.5 stranslate
   3.5 afficheBouchage
   3.5 afficheTubes
end
grestore
} def
 
/TrompeEau_ {
   [-0.5 3.5 -0.5 2.5 -1.5 0 1.5 0 0.5 2.5] ligne_ 
   /linearc .05 def
   [.5 2.9 1.5 2.9] ligne_
   [1.5 3 .5 3 0.5 3.5] ligne_
} def
 
/TrompeEau_dim {
  -1.5 0 jtoppoint
   1.5 3.5 jtoppoint
} def

/TrompeEau_dic 6 dict def
TrompeEau_dic /bb {0 0} put
TrompeEau_dic /trou {0 3.6} put
TrompeEau_dic /trou1 {-.2 3.6} put
TrompeEau_dic /trou2 {.2 3.6} put
TrompeEau_dic /Sortie {1.5 2.95} put

/TrompeEau {
gsave
currentpoint translate
2 dict begin
   currentlinewidth setlinewidth
   /linearc .25 def
   newpath 
      -.5 3.5 smoveto
      TrompeEau_
      gsave
         clip
         -1.5 0 1.5 3.5 afficheLiquides
         -1.5 0 1.5 3.5 afficheSolides
         -1.5 0 1.5 3.5 afficheGazs
       grestore
   stroke
   /linearc 0 store
%   0 3.5 stranslate
   3.5 afficheBouchage
   3.5 afficheTubes
end
grestore
} def

%% \def\pst@TubeEssais@Corps{{%
%% \psset{linewidth=0.053}
%% \psline(-0.5,3.5)(-0.5,0.5)
%% \psarc(0,0.5){0.5}{180}{0}
%% \psline(0.5,0.5)(0.5,3.5)
%% \psellipse[linewidth=0.08](0,3.5)(0.5,0.1)}}

/Flacon_ {
   -0.6 3.4 0.1 90 0 sarcn_
   [-0.5 3.4 -0.5 3.1] ligne_
   -0.6 3.1 0.1 0 -90 sarcn_
   -0.6 2.6 0.4 90 180 sarc_
   [-1 2.6 -1 0.2] ligne_
   -.8 0.2 0.2 180 270 sarc_ 
   [-.8 0 .8 0] ligne_
   .8 0.2 0.2 -90 0 sarc_
   [1 0.2 1 2.6] ligne_
   0.6 2.6 0.4 0 90 sarc_
   0.6 3.1 0.1 -90 180 sarcn_
   [0.5 3.1 0.5 3.4] ligne_
   0.6 3.4 0.1 180 90 sarcn_
} def

/Flacon_dim {
   -1 0 jtoppoint
   1 3.5 jtoppoint
} def

/Flacon_dic 5 dict def
Flacon_dic /bb {0 0} put
Flacon_dic /trou {0 3.6} put
Flacon_dic /trou1 {-.2 3.6} put
Flacon_dic /trou2 {.2 3.6} put

/Flacon {
gsave
currentpoint translate
1 dict begin
   currentlinewidth setlinewidth
   newpath 
      -.6 3.5 smoveto
      Flacon_
      gsave
         clip
         -1 0 1 3.5 afficheLiquides
         -1 0 1 3.5 afficheSolides
         -1 0 1 3.5 afficheGazs
       grestore
   stroke
%   0 3.5 stranslate
   3.5 afficheBouchage
   3.5 afficheTubes
end
grestore
} def
 
%Interieur@TubeEssais@Corps

/afficheBouchage {
1 dict begin
   /y exch def
   dsave1 
      b@uch@n {0 y (Bouchon) bbpict} if
   drestore1 
end
} def

/afficheTubes {
7 dict begin
   /y exch def
   dsave1 
   /n Tubes length def
   %% il y a 1 seul tube
   n 1 eq
      {
      	 0 y
      	 Tubes 0 get 
      	 dup xcheck 
      	    {exec}
      	 if
      	 bbpict
      } 
   if
   %% il y a 2 tubes
   n 2 eq
      {
      	 -.2 y 
      	 Tubes 0 get 
      	 dup xcheck 
      	    {exec}
      	 if
      	 bbpict
         dsave2
      	 .2 y
      	 Tubes 1 get 
      	 dup xcheck 
      	    {exec}
      	 if
      	 bbpict
         drestore2
      }
   if
   drestore1 
end
} def

%% syntaxe : llx lly uux uuy afficheGazss
/afficheGazs {
16 dict begin
   niveauLiquides length 0 ne {
      /angle_rot where 
   	 {pop} 
   	 {/angle_rot 0 def}
      ifelse
      /uuy exch def
      /uux exch def
      /lly exch def
      /llx exch def
      /les_points
   	 [llx lly llx uuy uux lly uux uuy] 
   	 {0 0 angle_rot rotatepoint} papply
      def 
      /H les_points 3 get les_points 1 get sub def
      /nlx 
   	 les_points 0 get les_points 2 get min
   	 les_points 4 get les_points 6 get min
   	 min
      def
      /nly
   	 les_points 1 get les_points 3 get min
   	 les_points 5 get les_points 7 get min
   	 min				   
      def					   
      /nux 				   
   	 les_points 0 get les_points 2 get max
   	 les_points 4 get les_points 6 get max
   	 max
      def
      /nuy
   	 les_points 1 get les_points 3 get max
   	 les_points 5 get les_points 7 get max
   	 max
      def
      gsave
   	 angle_rot neg rotate
   	 /i 0 def
   	 Gazs length {
   	    newpath
   	       nlx nly smoveto
   	       nlx nly 
   	       nux niveauLiquides dup length 1 sub 0 max get H mul 100 div nly add frame_
   	    clip
   	 gsave
   	    angle_rot 2 div rotate
%   	    llx lly uux uuy Gazs i get exec 
   	    nlx nly nux nuy Gazs i get exec 
   	 grestore
   	    /i i 1 add store
   	 } repeat
      grestore
   } 
      {pop pop pop pop}
   ifelse
end
} def

%% syntaxe : llx lly uux uuy afficheSolides
/afficheSolides {
6 dict begin
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /n Solides length def
   /i 0 def
   n {
      gsave
         llx lly uux uuy Solides i get exec
      grestore
      /i i 1 add store
   } repeat
end
} def

%% syntaxe : llx lly uux uuy afficheLiquides
/afficheLiquides {
16 dict begin
   niveauLiquides length 0 ne {
      /angle_rot where 
   	 {pop} 
   	 {/angle_rot 0 def}
      ifelse
      /uuy exch def
      /uux exch def
      /lly exch def
      /llx exch def
      /les_points
   	 [llx lly llx uuy uux lly uux uuy] 
   	 {0 0 angle_rot rotatepoint} papply
      def
      /H les_points 3 get les_points 1 get sub def
      /nlx 
   	 les_points 0 get les_points 2 get min
   	 les_points 4 get les_points 6 get min
   	 min
      def
      /nly
   	 les_points 1 get les_points 3 get min
   	 les_points 5 get les_points 7 get min
   	 min				   
      def					   
      /nux 				   
   	 les_points 0 get les_points 2 get max
   	 les_points 4 get les_points 6 get max
   	 max
      def
      /nuy
   	 les_points 1 get les_points 3 get max
   	 les_points 5 get les_points 7 get max
   	 max
      def

      gsave
   	 angle_rot neg rotate
   	 /i niveauLiquides length 1 sub def
   	 niveauLiquides length {
   	    newpath
   	       nlx nly smoveto
   	       nlx nly 
   	       nux niveauLiquides i get H mul 100 div nly add frame_
%   	    clip
   	    [ 
               aspectLiquides i get exec 
            counttomark 0 eq {
               fill pop
            } {
               gradientfill pop
            } ifelse
   	    /i i 1 sub store
   	 } repeat
         %% affichage du niveau
         currentlinewidth .5 mul setlinewidth
         noir
   	 /j niveauLiquides length 1 sub def
         m@depl@n
            {
              newpath
   		  [nlx niveauLiquides j get H mul 100 div nly add 
                  dup nux exch] ligne
              stroke
            }
            {}
         ifelse
      grestore
   } 
      {pop pop pop pop}
   ifelse
end
} def

/dosage@support {
1 dict begin
gsave
   -1.5 0 1.5 1.5 frame
   -1.30 0.25 -0.70 1.25 frame
   -1.20 0.35 -0.80 1.15 frame
   1 0.75 0.20 cercle
   1 0.75 0.30 cercle
   /fillstyle {rouge fill} def
   0 0.75 0.2 cercle*
grestore
end
} def

/dosage@aimant {
2 dict begin
   /linearc .05 def
   /fillstyle {blanc fill} def
   -0.5 0.1 0.5 0.4 frame*
   -0.05 0 0.05 0.5 frame*
end
} def
 
/AgitateurMagnetique_dim {
   -1.5 0 jtoppoint
   1.5 2 jtoppoint
} def

/AgitateurMagnetique {
gsave
   currentpoint translate
   gsave
      0 1.5 stranslate
      dosage@aimant
   grestore
   dosage@support
grestore
} def

/pHmetre_dim {
   -1 0 jtoppoint
   2.75 5 jtoppoint
} def

/pHmetre {
2 dict begin
gsave
   currentpoint translate
   % boitier   
   1 dict begin
      /linearc .25 def
      -1 0 1 3 frame
   end
   /fillstyle {GrisClair fill} def
   -0.75 2 0.75 2.75 frame*
   gsave
   blanc
   setTimes
      (PH) 0 2.375 cctext
   grestore
   0 1.25 0.3 cercle
   [0 1.25 0 1.5] (->) ligne
%% \rput(0.65,1.5){$^\circ$C}%
   -0.5 0.5 0.2 cercle
   0.5 0.5 0.2 cercle
    % électrode
   1 dict begin
      /linearc .25 def
      2.25 2.5 2.75 4.5 frame
   end
   2.25 4 2.75 4.5 frame*
   2.5 2.25 0.25 cercle
   % fil
   /linearc .4 def
   1 setlinewidth
   LightBlue
   [2.5 4.5 2.5 5 1.25 4.75 0 5 0 3] ligne
grestore
end
} def
 
/vumetre {
gsave
6 dict begin
   /fillstyle {blanc fill} def
   -2 0 2 2.2 frame*
   /fillstyle {rouge fill} def
   [-.1 .1 .1 .1 0 1.8] polygone*
   /angled 45 def
   /anglef 135 def
   angled anglef 0 0 2 Cercle
   /n 10 def
   /step anglef angled sub n 1 sub div def
   /i step def
   angled 0 0 2 cpoint
   angled 0 0 1.8 cpoint 1 trait
   anglef 0 0 2 cpoint
   anglef 0 0 1.8 cpoint 1 trait
   n 2 sub {
      angled i add 0 0 2 cpoint
      angled i add 0 0 1.9 cpoint
      1 trait
      /i step i add store
   } repeat
   newpath
      .4 0 smoveto
      0 0 .4 0 180 sarc_
      .4 setgray
   fill
grestore
end
} def

/bouton {
gsave
1 dict begin
   -1.25 -.25 stranslate
   /fillstyle {gris fill} def
   1 0 1.5 0.5 frame
   1.1 0.1 1.4 0.4 frame*
end
grestore
} def

/electrodeConductimetre {
gsave
3 dict begin
   /fillstyle {bleu fill} def
   /borderline false def
   -.15 0 .15 .5 frame*
   currentlinewidth .5 mul setlinewidth
   [-.05 .5 -.1 3] ligne
   [.05 .5 .1 3] ligne
   .4 dup jtoppoint pop setlinewidth
   /linearc .5 def
   .4 setgray
   [-1.5 4 0 4 0 3] ligne
end
grestore
} def

/Conductimetre_dim {
   -2 0 jtoppoint
   5.2 7.2 jtoppoint
} def

/Conductimetre_dic 2 dict def
Conductimetre_dic /Cellule {4 2.25} put
Conductimetre_dic /bb {0 0} put

/Conductimetre {
3 dict begin
gsave
currentpoint translate
   /fillstyle {blanc fill} def
   -1.5 0 1.5 2 frame*
   gsave
      -1 1.25 stranslate
      .8 dup scale
      potentiometre
   grestore
   gsave
      -1 .5 stranslate
      bouton
   grestore
   gsave
      .5 .8 stranslate
      .4 dup scale
      vumetre
   grestore
   gsave
      4 2 stranslate
      electrodeConductimetre
   grestore
   /linearc .4 def
   1 setlinewidth
   .4 setgray 
   [2.5   6.1   -0.661274   6.1   4.66127   0.6   1.5   0.6] bezier_curve
   [2.5   5.9   -0.661274   5.9   4.66127   0.4   1.5   0.4] bezier_curve
grestore
end
} def

/electrodeConductimetreDigital {
gsave
3 dict begin
   currentlinewidth .5 mul setlinewidth
   -.1 .6 .1 3 frame
   [-.1 .6 -.15 .5] ligne
   [.1 .6 .15 .5] ligne
   0 3 .1 0 180 sarc
   /fillstyle {bleu fill} def
   /borderline false def
   -.15 0 .15 .5 frame*
end
grestore
} def

/ConductimetreDigital_dim {
   -1 0 jtoppoint
   3.65 6 jtoppoint
} def

/ConductimetreDigital_dic 2 dict def
ConductimetreDigital_dic /Cellule {3.5 2.25} put
ConductimetreDigital_dic /bb {0 0} put

/ConductimetreDigital {
1 dict begin
gsave
dsave2
currentpoint translate
   /fillstyle {blanc fill} def
   -1 0 1 3 frame*
   0 2 1.5 .75 cframe
   -.75 .25 .75 1.5 frame
   -.75 2.6 .75 2.8 frame
   2 -.2 2 [.1 dup] (digit) ccpict
   0 .1 2 [.1 dup] (digit) ccpict
   1 .3 /bb pictget exch pop [.1 dup] (digital_point) ccpict
   9 .5 2 [.1 dup] (digit) ccpict
   setCourrierBold
   (CONDUCTIMETRE) 0 .5 [.25 dup] cctext
   gsave
      3.5 2 stranslate
      electrodeConductimetreDigital
   grestore
   1 setlinewidth
   .4 setgray 
%%   [3.45 5.1 {up} .. {left} 2.5 6 .. {left} 1 .6] draw
   [3.45   5.1   3.45   5.60641   3.01582   6.0   2.5   6
   -0.447443   6.0   3.94744   0.6   1   0.6] bezier_curve
%%   [3.55 5.1 {up} .. {left} 2.5 6 .. {left} 1 .4] draw
   [3.55   5.1   3.55   5.62671   3.05454   6.0   2.5   6   -0.570494
   6.0   4.07049   0.4   1   0.4] bezier_curve
drestore2
grestore
end
} def

/goutte_dim {
   -0.083 -0.25 jtoppoint
   0.083 0 jtoppoint
} def

/goutte {
gsave
1 dict begin
   currentpoint translate
   .5 setlinewidth
   [0 0 -0.04 -0.083 -0.083 -0.22 0 -0.25 0.083 -0.22 0.04 -0.083 0 0] bezier_curve*
end
grestore
} def

/goutte2_dim {
   -.25 -.4 jtoppoint
   .25 0 jtoppoint
} def

/goutte2 {
gsave
currentpoint translate
   [0 0 0.25 -.4 -.25 -.4 0 0] bezier_curve*
grestore
} def

/Pipette_ {
1 dict begin
   /linearc .05 def
   [-0.05 0 -0.15 0.2 -0.15 6 0.15 6 0.15 0.2 0.05 0] polygone_
end
} def

/Pipette_dim {
   -.15 0 jtoppoint
   .15 6.1 jtoppoint
} def

/Pipette {
3 dict begin
gsave
   currentpoint translate
%   .53 setlinewidth
   newpath
       -0.05 0 smoveto
       Pipette_
       gsave
         clip
         -.15 0 .15 6 afficheLiquides
         -.15 0 .15 6 afficheSolides
         -.15 0 .15 6 afficheGazs
      grestore
   closepath
   /linearc .05 def
   [0.15 6 0.15 0.2 0.05 0 -0.05 0 -0.15 0.2 -0.15 6 ] ligne
   /fillstyle {blanc fill} def
   m@depl@n not
      {0 6 0.15 0.05 ellipse*}
   if
   .5 setlinewidth
   /Niveau .5 def
   10 {
      [0 Niveau .1 Niveau] ligne
      /Niveau .5 Niveau add store
   } repeat
grestore
end
} def

/eprouvette@corps_ {
   [-0.5 5  -0.5 0  0.5 0  0.5 4.9  0.6 4.93] ligne_
} def

/eprouvette@rebord {
1 dict begin
/arg {argc} def
   [0.498 0.008 .. 0.483 0.026  .. 0.433 0.05  .. 0.353 0.0707  .. 0.25
   0.0866  .. 0.13 0.0966  .. 0 0.1  .. -0.13 0.0966  .. -0.25 0.0866
   .. -0.353 0.0707  .. -0.433 0.05  .. -0.483 0.026  .. -0.5 0
   .. -0.483 -0.026  .. -0.353 -0.0707  .. -0.25 -0.0866  .. -0.13 -0.096
   .. 0 -0.1  .. 0.13 -0.096  .. 0.25 -0.0866  .. 0.353 -0.0707  .. 0.433
   -0.05  .. 0.498 -0.026  .. 0.6 -0.07 
   ] draw
end
} def
 
/eprouvette@pied_ { 
newpath
   -0.95 0.5 0.45 0 -90 sarcn_
   -0.95 0.025 0.025 90 270 sarc_
   [-0.95 0 0.95 0] ligne_
   0.95 0.025 0.025 -90 90 sarc_
   0.95 0.5 0.45 -90 180 sarcn_
%   [-0.5 0.4 .. 0 0.25 .. 0.5 0.4] draw
   [-0.5 0.5 -0.3516 0.302154 -0.177753 0.25 0 0.25 0.177753 0.25   0.3516 0.302154 0.5 0.4] reversep bezier_curve_
} def

/eprouvette@pied {
newpath
   -.5 .5 smoveto
   eprouvette@pied_
   gsave
      blanc fill
   grestore
stroke
} def

/eprouvette@graduation {
3 dict begin
%% \multido{\nyD=0.5+0.5}{9}{%
   currentlinewidth .5 mul setlinewidth
   /nyD .5 def
   9 {
      [-0.4 nyD -0.1 nyD] ligne
      /nyD .5 nyD add store
   } repeat
   /nyd .5 def
   40 {
      [-0.4 nyd -0.25 nyd] ligne
      /nyd .1 nyd add store
   } repeat
end
} def
 
/Eprouvette_dim {
   -1 0 jtoppoint
   1 5.1 jtoppoint
} def

/Eprouvette_dic 5 dict def
Eprouvette_dic /bb {0 0} put

/Eprouvette {
gsave
currentpoint translate
   currentlinewidth setlinewidth
   newpath 
      -.5 5 smoveto
      eprouvette@corps_
      gsave
         clip
         -1 .25 1 5 afficheLiquides
         -.5 .25 .5 5 afficheSolides
         -.5 .25 .5 5 afficheGazs
      grestore
   stroke
   eprouvette@pied
   m@depl@n not
      {
      	 gsave
      	    0 5 stranslate
      	    eprouvette@rebord
      	 grestore
      }
   if
   eprouvette@graduation
grestore
} def


/ChauffeBallon_dim {
   -2 0 jtoppoint
   2 2 jtoppoint
} def

/potentiometre {
3 dict begin
   0 0 0.4 cercle
   gsave
      /iA 0 def
      7 {
         [0.45 iA 0.6 iA] {polcar} papply ligne
         /iA iA 30 add store
      } repeat
      /ahlength 3 def
      /arrowscale {.5 .7} def
      [0 0 0.3 60 polcar] (->) ligne
   grestore
end
} def

/ChauffeBallon {
3 dict begin
gsave
currentpoint translate
   0 1 stranslate
   /fillstyle {blanc fill} def
   -2 -1 2 1 frame*
   0 -.2 stranslate
   gsave
      -1.25 0 stranslate
      potentiometre
   grestore
   /fillstyle {gris fill} def
   1 -.5 1.5 0.5 frame
   1.1 -.4 1.4 0.4 frame*
   rouge
   /fillstyle {rouge fill} def
   1.25 0.7 0.1 cercle*
grestore
end
} def

/ThermometreLong_dim {
   -.5 -1.25 jtoppoint
   .5 3.75 jtoppoint
} def

/ThermometreLong {
gsave
currentpoint translate
0 -1 stranslate
3 dict begin
   /linearc .05 def
   [-.05 .25 -.05 4.75 0.05 4.75 0.05 0.25] ligne
   /linearc .08 store
   /fillstyle {rouge fill} def
   -.15 -.25 0.15 0.25 frame*
   .1 dup jtoppoint pop setlinewidth
   rouge 
   [0 .25 0 4] ligne
end
grestore
} def

/Thermometre_dim {
   -.5 -.25 jtoppoint
   .5 2.75 jtoppoint
} def

/Thermometre {
gsave
currentpoint translate
3 dict begin
   /linearc .05 def
   [-.05 .25 -.05 2.75 0.05 2.75 0.05 0.25] ligne
   /linearc .08 store
   /fillstyle {rouge fill} def
   -.15 -.25 0.15 0.25 frame*
   .1 dup jtoppoint pop setlinewidth
   rouge 
   [0 .25 0 2] ligne
end
grestore
} def

/TubeRenverse_ {
   [-0.5 0 -0.5 6] ligne_
   0 6 0.5 180 0 sarcn_
   [0.5 6 0.5 0] ligne_
} def
 
/TubeRenverse_dim {
   -.5 0 jtoppoint
   .5 6.5 jtoppoint
} def

/TubeRenverse {
gsave
currentpoint translate
1 dict begin
   currentlinewidth setlinewidth
   newpath 
      -.5 0 smoveto
      TubeRenverse_
      gsave
         clip
         -.5 0 .5 6.5 afficheLiquides
         -.5 0 .5 6.5 afficheSolides
         -.5 0 .5 6.5 afficheGazs
      grestore
   stroke
end
grestore
} def

/TubeEssais_ {
1 dict begin
%   .53 setlinewidth
   [-0.5 3.5 -0.5 0.5] ligne_
   0 0.5 0.5 -180 0 sarc_
   [0.5 0.5 0.5 3.5] ligne_
end
} def

/TubeEssais_dim {
   -.5 0 jtoppoint
   .5 3.6 jtoppoint
} def

/TubeEssais_dic 5 dict def
TubeEssais_dic /bb {0 0} put
TubeEssais_dic /trou {0 3.6} put
TubeEssais_dic /trou1 {-.2 3.6} put
TubeEssais_dic /trou2 {.2 3.6} put
TubeEssais_dic /col {0 2.9} put

/TubeEssais {
gsave
currentpoint translate
%linewidth setlinewidth
1 dict begin
   newpath 
      -.5 3.5 smoveto
      TubeEssais_
      gsave
         clip
         -.5 0 .5 3.5 afficheLiquides
         -.5 0 .5 3.5 afficheSolides
         -.5 0 .5 3.5 afficheGazs
      grestore
   stroke
   m@depl@n 
      {}
      {[0 3.5 0.5 0.1 0] ellipse}
   ifelse
%   0 3.5 stranslate
   3.5 afficheTubes
   3.5 afficheBouchage
end
grestore
} def

/ReposeTube_dim {
   -1 .15 jtoppoint
   1 1 jtoppoint
} def

/ReposeTube {
gsave
currentpoint translate
1 dict begin
   gsave
      aspectLiquides length 0 eq
         {blanc}
         {aspectLiquides 0 get exec}
      ifelse
      newpath
      1 .15 smoveto
      0 .15 .85 0 180 sarc_
      fill
   grestore
   1 setlinewidth
   GrisClair %lightgray
   0 0.15 .85 100 140 sarc
   0 0.15 .85 150 180 sarc
   0 0.15 .85 0 80 sarc
end
grestore
} def

/TubeRenverse_dim {
   -.5 0 jtoppoint
   -.5 6.5 jtoppoint
} def

/TubeRenverse_ {
   [-0.5 .15 -0.5 6] ligne_
   0 6 0.5 180 0 sarcn_
   [0.5 6 0.5 .15] ligne_
} def

/TubeRenverse {
gsave
currentpoint translate
linewidth setlinewidth
1 dict begin
   newpath 
      -.5 .15 smoveto
      TubeRenverse_
      gsave
         clip
         -.5 0 .5 6.5 afficheLiquides
         -.5 0 .5 6.5 afficheSolides
         -.5 0 .5 6.5 afficheGazs
      grestore
   stroke
   m@depl@n 
      {}
      {[0 3.5 0.5 0.1 0] ellipse}
   ifelse
end
grestore
} def

/Burette_ {
   [-0.5 11 -0.25 10.5 -0.25 3 0 2.75 0 0.5] ligne_
   [0.2 0.7 0.2 2.75 0.5 3 0.5 10.5 0.75 11] ligne_
} def

/Burette@graduation {
%% \multido{\n=3.0+0.32}{25}{\psline(-0.25,\n)(0,\n)}}
2 dict begin
linewidth .5 mul setlinewidth
   /n 3 def
   25 {
      [-.25 n 0 n] ligne
      /n .3 n add store
   } repeat
end
} def

/Burette@robinet {
2 dict begin
   /linearc 0 def
   /fillstyle {blanc fill} def
    -.1 1.6 .3 2.1 frame*
   -.1 1.5 -.2 2.2 frame
   .3 1.5 .4 2.2 frame
   [.4 1.7 .5 1.7 .6 1.4 .8 1.4 .8 2.3 .6 2.3 .5 2 .4 2] polygone
   %% {\psset{fillstyle=solid fillcolor=LightBlue}
   /fillstyle {LightBlue fill} def
   [-.5 1.5 -.75 1.7 -.75 2 -.5 2.2 -.3 2.2 -.3 1.5] polygone*
   -.5 1.5 -.2 2.2 frame
end
} def 

/Burette_dim {
   -.75 -2.5 jtoppoint
   .75 9 jtoppoint
} def

/Burette {
gsave
currentpoint translate
0 -3 stranslate
2 dict begin
   currentlinewidth setlinewidth
   newpath 
      -.5 11 smoveto
      Burette_
      gsave
         clip
         -.75 2.1 .75 10.2 afficheLiquides
         -.75 2.1 .75 10.2 afficheSolides
         -.75 2.1 .75 10.2 afficheGazs
      grestore
   stroke
   Burette@robinet
   Burette@graduation
end
grestore
} def

/Cristallisoir@corps {
   [ -1.9 2  -2 2 ] ligne
   -2 1.95  0.05 90 270 sarc
   [ -2 1.9  -2 1 ] ligne
    -1 1  1 180  270 sarc
   [ -1 0  1 0 ] ligne
    1 1  1 -90  0 sarc
   [ 2 1  2 1.9 ] ligne
   2 1.95  0.05 -90  90 sarc
   [ 2 2  1.9 2 ] ligne
   [ 1.9 2  1.9 1 ] ligne 
   1 1  0.9 0  -90 sarcn
   [1 0.1  -1 0.1 ] ligne
   -1 1  0.9 270  180 sarcn
   [ -1.9 1  -1.9 2  ] ligne
} def

/InterieurCristallisoir {
   [1.9 2 1.9 1] ligne_
   1 1 0.9 0 -90 sarcn_
   [1 0.1 -1 0.1] ligne_
   -1 1 0.9 270 180 sarcn_
   [-1.9 1 -1.9 2] ligne_
} def

/Cristallisoir_dim {
   -2 0 jtoppoint
   2 2 jtoppoint
} def

/Cristallisoir {
   gsave
   currentpoint translate
   newpath
      1.9 2 smoveto
      InterieurCristallisoir
      gsave
         clip
         -2 0 2 2 afficheLiquides
         -2 0 2 2 afficheSolides
         -2 0 2 2 afficheGazs
      grestore
   Cristallisoir@corps
   grestore
} def

/Entonnoir_ {
   [-0.07 0 -0.07 1 -1 2.5] ligne_
   [1 2.5 0.07 1 0.07 0.1] ligne_
} def

/Entonnoir_dim {
    -1 0 jtoppoint
   1 2.6 jtoppoint
} def

/Entonnoir {
2 dict begin
   gsave
   currentpoint translate
   newpath 
      -0.07 0 smoveto
      Entonnoir_
      gsave
   	 clip
   	 -1 0 1 2.5 afficheLiquides
   	 -1 0 1 2.5 afficheSolides
   	 -1 0 1 2.5 afficheGazs
      grestore
   /linearc .25 def
   [-0.07 0 -0.07 1 -1 2.5] ligne
   [1 2.5 0.07 1 0.07 0.1] ligne
%%    newpath 
%% 	 -0.07 0 smoveto
%% 	 Entonnoir_
%%    stroke
   m@depl@n not
      {0 2.5 1 0.1 ellipse*}
   if
  grestore
end
} def

/Ballon_ {
1 dict begin
   -0.7 3.4 0.2 90 0 sarcn_
   [-0.5 3.4 -0.5 2.4] ligne_
   0 1.25 1.25 113 67 sarc_
   [0.5 2.4 0.5 3.4] ligne_
   0.7 3.4 0.2 180 90 sarcn_
end
} def

/Ballon_dim {
   -1.25 0 jtoppoint
   1.25 3.6 jtoppoint
} def

/Ballon_dic 5 dict def
Ballon_dic /bb {0 0} put
Ballon_dic /col {0 2.8} put
Ballon_dic /trou {0 3.6} put
Ballon_dic /trou1 {-.2 3.6} put
Ballon_dic /trou2 {.2 3.6} put

/Ballon {
gsave
currentpoint translate
1 dict begin
   newpath 
      -.7 3.6 smoveto
      Ballon_
      gsave
         clip
         -1.25 0 1.25 3.5 afficheLiquides
         -1.25 0 1.25 3 afficheSolides
         -1.25 0 1.25 3.5 afficheGazs
      grestore
   stroke
   .8 setlinewidth
   m@depl@n
      {}
      {0 3.6 0.7 0.1 ellipse}
   ifelse
%   0 3.5 stranslate
   3.5 afficheBouchage
   3.5 afficheTubes
end
grestore
} def

%% \newpsstyle{Champagne}{linestyle=none,fillstyle=solid,fillcolor=Beige}
%% 
%% \newcommand{\BullesChampagne}[1][25]{%
%% \begingroup
%% \multido{\iBulle=1+1}{#1}{%
%% \setrandim{\BulleX}{-1pt}{1pt} \setrandim{\BulleY}{0pt}{3pt} \pst@dimh=\BulleY
%% \ifdim\BulleY<1pt \multiply\pst@dimh by 3
%%     \else\ifdim\BulleY<2pt \multiply\pst@dimh by 2
%%     \else \multiply\pst@dimh by 1
%%     \fi\fi
%% \rput{\psk@TubeEssais@tubePenche}{%
%% \psdot[dotscale=\pointless\pst@dimh,dotstyle=o](! \pointless\BulleX\space
%% \pointless\BulleY\space \@nameuse{psk@TubeEssais@niveauLiquide1} mul 100
%% div)}}\endgroup}

/BullesChampagne {
gsave
vect_scale 1 exch div exch 1 exch div exch scale
12 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /L uux llx sub def
   /H uuy lly sub def
   n {
      /BulleX rand 2 31 exp 1 sub div L mul llx add def
      /BulleY rand 2 31 exp 1 sub div H mul def
      /dimh BulleY def
      BulleY H 3 div lt 
   	 {
   	    /dimh dimh 3 mul store
   	 }
   	 {
   	    BulleY H 3 div 2 mul lt
   	       {/dimh dimh 2 mul store}
   	    if
   	 } 
      ifelse
      /BulleY BulleY lly add store
      /fillstyle {blanc fill} def
      /linewidth .5 store
      BulleX BulleY dimh 10 div cercle*
   } repeat
end
grestore
} def

/Bulles {
gsave
vect_scale 1 exch div exch 1 exch div exch scale
12 dict begin
   /n exch def
   /uuy exch def
   /uux exch def
   /lly exch def
   /llx exch def
   /L uux llx sub def
   /H uuy lly sub def
   n {
      /BulleX rand 2 31 exp 1 sub div L mul llx add def
      /BulleY rand 2 31 exp 1 sub div H mul def
      /dimh BulleY def
      BulleY H 3 div lt 
   	 {
   	    /dimh dimh 3 mul store
   	 }
   	 {
   	    BulleY H 3 div 2 mul lt
   	       {/dimh dimh 2 mul store}
   	    if
   	 } 
      ifelse
      /BulleY BulleY lly add store
      /fillstyle {blanc fill} def
      /linewidth .5 store
      BulleX BulleY dimh 100 div cercle*
   } repeat
end
grestore
} def

%-2 -1 2 4 50 Bulles


%% \def\pst@TubeEssais@Bouchon{%
%% \begingroup
%% \psset{fillstyle=solid,fillcolor=GrisClair}
%% \psellipse(0,-0.3)(0.4,0.1)
%% \pspolygon(-0.4,-0.3)(-0.6,0.5)(0.6,0.5)(0.4,-0.3)%
%% \psellipse[linestyle=none,dimen=outer,linewidth=0.07](0,-0.3)(0.4,0.1)%
%% \psellipse(0,0.5)(0.6,0.1)
%% \endgroup
%% \pscurve[linewidth=0.07](-0.5,0)(0,-0.07)(0.5,0)}

/BouchonSimple {
   1 dict begin
      /fillstyle {GrisClair fill} def
      m@depl@n not 
         {/borderline false def}
      def
      [-0.4 -0.3 -0.6 0.5 0.6 0.5 0.4 -0.3] polygone*
      /borderline true def
      [-0.4 -0.3 -0.6 0.5] ligne 
      [0.6 0.5 0.4 -0.3] ligne
      m@depl@n not
         {
      	    -180 0 [0 -0.3 0.4 0.1 0] Ellipse*
      	    [0 0.5 0.6 0.1 0] ellipse*
   	    .7 setlinewidth
   	    [-0.5 0 .. 0 -0.07 .. 0.5 0] draw
         }
      if
   end
} def

%Bouchon

/BouchonUnTrou {
1 dict begin
   BouchonSimple
%   currentlinewidth .5 mul setlinewidth
   /fillstyle {1 setgray fill} def
   m@depl@n
      {
      	 -.05 -.5 .05 .7 (lr) frame*         
      }
      {
      	 -.05 .5 .05 .7 (blr) frame*
      }
   ifelse
end
} def

/BouchonDeuxTrou {
1 dict begin
   BouchonSimple
%   currentlinewidth .5 mul setlinewidth
   /fillstyle {1 setgray fill} def
   m@depl@n
      {
      	 .15 -.5 .25 .7 (lr) frame*
      	 -.15 -.5 -.25 .7 (lr) frame*
      }
      {
      	 .25 .5 .35 .7 (blr) frame*
      	 -.25 .5 -.35 .7 (blr) frame*
      }
   ifelse
end
} def

/Bouchon_dic 3 dict def

/Bouchon_dim {
   -.6 -.4 jtoppoint
   .6 .6 jtoppoint
} def

/Bouchon {
gsave
   currentpoint translate
   Tubes length 
   dup 0 eq 
      {BouchonSimple} 
   if
   dup 1 eq
      {BouchonUnTrou} 
   if
   2 eq
      {BouchonDeuxTrou} 
   if
grestore
} def

%% 14/03/03 %% %% \def\pst@TubeEssais@Droit{%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,5)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,5)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon
%% 14/03/03 %% %% \psframe[framearc=0.5,fillstyle=solid,dimen=middle,linewidth=0.5\pslinewidth](-0.05,5)(0.05,0.5)%
%% 14/03/03 %% %% \psline[linecolor=white,linewidth=0.14](-0.1,5)(0.1,5)}
%% 14/03/03 %% 	
%% 14/03/03 %% /TubeDroit {
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  [0.05 -1 0.05 5] ligne
%% 14/03/03 %% 	  [-0.05 -1 -0.05 5] ligne
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 	  -0.05 5 0.05 0.5 frame
%% 14/03/03 %% 	  gsave
%% 14/03/03 %% 	     blanc
%% 14/03/03 %% 	     1.4 setlinewidth
%% 14/03/03 %% 	     [-0.1 5 0.1 5] ligne
%% 14/03/03 %% 	  grestore
%% 14/03/03 %% end
%% 14/03/03 %% } def
%% 14/03/03 %% 
%% 14/03/03 %% %pst@TubeEssais@Droit
%% 14/03/03 %% 
%% 14/03/03 %% %% \def\pst@TubeEssais@Coude{%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,0)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,0)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon
%% 14/03/03 %% %% \pspolygon[fillstyle=solid,linearc=0.05,linewidth=0.5\pslinewidth](-0.05,0.5)(-0.05,2)(8,2)(8,1.9)
%% 14/03/03 %% %% (0.05,1.9)(0.05,0.5)%
%% 14/03/03 %% %% \psline[linecolor=white,linewidth=0.14](7.95,1.9)(8.05,2)}
%% 14/03/03 %% 	
%% 14/03/03 %% /TubeCoude {
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  [0.05 -1 0.05 0] ligne
%% 14/03/03 %% 	  [-0.05 -1 -0.05 0] ligne
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 	  [-0.05 0.5 -0.05 2 8 2 8 1.9 0.05 1.9 0.05 0.5] polygone
%% 14/03/03 %% 	  gsave
%% 14/03/03 %% 	     blanc
%% 14/03/03 %% 	     1.4 setlinewidth
%% 14/03/03 %% 	     [7.95 1.9 8.05 2] ligne
%% 14/03/03 %% 	  grestore
%% 14/03/03 %% end
%% 14/03/03 %% } def
%% 14/03/03 %% 
%% 14/03/03 %% %pst@TubeEssais@Coude
%% 14/03/03 %% 
%% 14/03/03 %% %% \def\pst@TubeEssais@CoudeU{%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,0)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,0)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon
%% 14/03/03 %% %% \pspolygon[fillstyle=solid,linearc=0.05,linewidth=0.5\pslinewidth](-0.05,0.5)(-0.05,2)(4.5,2)(4.5,-3)
%% 14/03/03 %% %% (4.4,-3)(4.4,1.9)(0.05,1.9)(0.05,0.5)%
%% 14/03/03 %% %% \psline[linecolor=white,linewidth=0.14](4.3,-3)(4.6,-3)}
%% 14/03/03 %% 
%% 14/03/03 %% /TubeCoudeU {
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  [0.05 -1 0.05 0] ligne  
%% 14/03/03 %% 	  [-0.05 -1 -0.05 0] ligne
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 	  [-0.05 0.5  -0.05 2  4.5 2  4.5 -3 4.4 -3  4.4 1.9  0.05 1.9  0.05 0.5] ligne
%% 14/03/03 %% 	  gsave
%% 14/03/03 %% 	     blanc
%% 14/03/03 %% 	     1.4 setlinewidth
%% 14/03/03 %% 	     [4.3 -3 4.6 -3] ligne
%% 14/03/03 %% 	  grestore
%% 14/03/03 %% end
%% 14/03/03 %% } def
%% 14/03/03 %% 	
%% 14/03/03 %% %pst@TubeEssais@CoudeU
%% 14/03/03 %% 
%% 14/03/03 %% %% \def\pst@TubeEssais@CoudeUB{%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,0)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,0)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon
%% 14/03/03 %% %% \pspolygon[fillstyle=solid,linearc=0.05,linewidth=0.5\pslinewidth](-0.05,0.5)(-0.05,2)(4.5,2)(4.5,-9)
%% 14/03/03 %% %% (4.4,-9)(4.4,1.9)(0.05,1.9)(0.05,0.5)%
%% 14/03/03 %% %% \psline[linecolor=white,linewidth=0.14](4.3,-9)(4.6,-9)}
%% 14/03/03 %% 	
%% 14/03/03 %% /TubeCoudeUB {
%% 14/03/03 %% gsave
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  [0.05 -1 0.05 0] ligne
%% 14/03/03 %% 	  [-0.05 -1 -0.05 0] ligne
%% 14/03/03 %% end
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 3 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  /fillstyle {blanc fill} def
%% 14/03/03 %% 	  /linearc .05 def
%% 14/03/03 %% 	  [-0.05 0.5 -0.05 2 4.5 2 4.5 -9
%% 14/03/03 %% 	  4.4 -9 4.4 1.9 0.05 1.9 0.05 0.5] polygone*
%% 14/03/03 %% 	  1.4 setlinewidth
%% 14/03/03 %% 	  blanc
%% 14/03/03 %% 	  [4.3 -9 4.6 -9] ligne
%% 14/03/03 %% end
%% 14/03/03 %% grestore
%% 14/03/03 %% } def
%% 14/03/03 %% 
%% 14/03/03 %% %pst@TubeEssais@CoudeUB
%% 14/03/03 %% 	
%% 14/03/03 %% %% \def\pst@TubeRecourbe{%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,0)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,0)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon
%% 14/03/03 %% %% \begingroup
%% 14/03/03 %% %% \psset{linewidth=0.5\pslinewidth}
%% 14/03/03 %% %% \psline(-0.05,0.5)(-0.05,1)
%% 14/03/03 %% %% \psarcn(0.5,1){0.55}{180}{90}
%% 14/03/03 %% %% \psline(0.5,1.55)(5.5,1.55)
%% 14/03/03 %% %% \psarcn(5.5,1){0.55}{90}{0}
%% 14/03/03 %% %% \psline(6.05,1)(6.05,-8.8)
%% 14/03/03 %% %% \psarc(6.5,-8.8){0.45}{180}{0}
%% 14/03/03 %% %% \psline(6.95,-8.8)(6.95,-8.3)
%% 14/03/03 %% %% \psline(7.05,-8.3)(7.05,-8.8)
%% 14/03/03 %% %% \psarcn(6.5,-8.8){0.55}{0}{180}
%% 14/03/03 %% %% \psline(5.95,-8.8)(5.95,1)
%% 14/03/03 %% %% \psarc(5.5,1){0.45}{0}{90}
%% 14/03/03 %% %% \psline(5.5,1.45)(0.5,1.45)
%% 14/03/03 %% %% \psarc(0.5,1){.45}{90}{180}
%% 14/03/03 %% %% \psline(0.05,1)(0.05,0.5)
%% 14/03/03 %% %% \psline(-0.05,.5)(0.05,0.5)\endgroup
%% 14/03/03 %% %% \psframe*[linecolor=white](-0.025,0.52)(0.020,0.6)
%% 14/03/03 %% %% }
%% 14/03/03 %% 	
%% 14/03/03 %% /TubeRecourbe {
%% 14/03/03 %% gsave
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  [0.05 -1 0.05 0] ligne
%% 14/03/03 %% 	  [-0.05 -1 -0.05 0] ligne
%% 14/03/03 %% end
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  [-0.05 0.5 -0.05 1] ligne
%% 14/03/03 %% 	  0.5 1 0.55 180 90 sarcn
%% 14/03/03 %% 	  [0.5 1.55 5.5 1.55] ligne
%% 14/03/03 %% 	  5.5 1 0.55 90 0 sarcn
%% 14/03/03 %% 	  [6.05 1 6.05 -8.8] ligne
%% 14/03/03 %% 	  6.5 -8.8 0.45 180 0 sarc
%% 14/03/03 %% 	  [6.95 -8.8 6.95 -8.3] ligne
%% 14/03/03 %% 	  [7.05 -8.3 7.05 -8.8] ligne
%% 14/03/03 %% 	  6.5 -8.8 0.55 0 180 sarcn
%% 14/03/03 %% 	  [5.95 -8.8 5.95 1] ligne
%% 14/03/03 %% 	  5.5 1 0.45 0 90 sarc
%% 14/03/03 %% 	  [5.5 1.45 0.5 1.45] ligne
%% 14/03/03 %% 	  0.5 1 .45 90 180 sarc
%% 14/03/03 %% 	  [0.05 1 0.05 0.5] ligne
%% 14/03/03 %% 	  [-0.05 .5 0.05 0.5] ligne
%% 14/03/03 %% end
%% 14/03/03 %% %% \psframe*[linecolor=white](-0.025,0.52)(0.020,0.6)
%% 14/03/03 %% 	  blanc
%% 14/03/03 %% 	  /fillstyle {} def
%% 14/03/03 %% 	  -0.025 0.52 0.020 0.6 frame*
%% 14/03/03 %% grestore
%% 14/03/03 %% } def
%% 14/03/03 %% 
%% 14/03/03 %% %% 0 10 stranslate
%% 14/03/03 %% %% pst@TubeRecourbe
%% 14/03/03 %% %% 0 -10 stranslate
%% 14/03/03 %% 
%% 14/03/03 %% %% \def\pst@TubeRecourbe@Court{
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](0.05,-1)(0.05,0)%
%% 14/03/03 %% %% \psline[linewidth=0.5\pslinewidth](-0.05,-1)(-0.05,0)%
%% 14/03/03 %% %% \pst@TubeEssais@Bouchon \psline(-0.05,0.5)(-0.05,1)
%% 14/03/03 %% %% \begingroup
%% 14/03/03 %% %% \psset{linewidth=0.5\pslinewidth}
%% 14/03/03 %% %% \psarcn(0.5,1){0.55}{180}{90}
%% 14/03/03 %% %% \psline(0.5,1.55)(3.5,1.55)
%% 14/03/03 %% %% \psarcn(3.5,1){0.55}{90}{0}
%% 14/03/03 %% %% \psline(4.05,1)(4.05,-2.8)
%% 14/03/03 %% %% \psarc(4.5,-2.8){0.45}{180}{0}
%% 14/03/03 %% %% \psline(4.95,-2.8)(4.95,-2.3)
%% 14/03/03 %% %% \psline(5.05,-2.3)(5.05,-2.8)
%% 14/03/03 %% %% \psarcn(4.5,-2.8){0.55}{0}{180}
%% 14/03/03 %% %% \psline(3.95,-2.8)(3.95,1)
%% 14/03/03 %% %% \psarc(3.5,1){0.45}{0}{90}
%% 14/03/03 %% %% \psline(3.5,1.45)(0.5,1.45)
%% 14/03/03 %% %% \psarc(0.5,1){.45}{90}{180}
%% 14/03/03 %% %% \psline(0.05,1)(0.05,0.5)
%% 14/03/03 %% %% \psline(-0.05,.5)(0.05,0.5)
%% 14/03/03 %% %% \endgroup
%% 14/03/03 %% %% \psframe*[linecolor=white](-0.025,0.52)(0.020,0.6)}
%% 14/03/03 %% 
%% 14/03/03 %% /TubeRecourbeCourt {
%% 14/03/03 %% gsave
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  [0.05 -1 0.05 0] ligne
%% 14/03/03 %% 	  [-0.05 -1 -0.05 0] ligne
%% 14/03/03 %% end
%% 14/03/03 %% 	  Bouchon
%% 14/03/03 %% 	  [-0.05 0.5 -0.05 1] ligne
%% 14/03/03 %% 1 dict begin
%% 14/03/03 %% 	  currentlinewidth .5 mul setlinewidth
%% 14/03/03 %% 	  0.5 1 0.55 180 90 sarcn
%% 14/03/03 %% 	  [0.5 1.55 3.5 1.55] ligne
%% 14/03/03 %% 	  3.5 1 0.55 90 0 sarcn
%% 14/03/03 %% 	  [4.05 1 4.05 -2.8] ligne
%% 14/03/03 %% 	  4.5 -2.8 0.45 180 0 sarc
%% 14/03/03 %% 	  [4.95 -2.8 4.95 -2.3] ligne
%% 14/03/03 %% 	  [5.05 -2.3 5.05 -2.8] ligne
%% 14/03/03 %% 	  4.5 -2.8 0.55 0 180 sarcn
%% 14/03/03 %% 	  [3.95 -2.8 3.95 1] ligne
%% 14/03/03 %% 	  3.5 1 0.45 0 90 sarc
%% 14/03/03 %% 	  [3.5 1.45 0.5 1.45] ligne
%% 14/03/03 %% 	  0.5 1 .45 90 180 sarc
%% 14/03/03 %% 	  [0.05 1 0.05 0.5] ligne
%% 14/03/03 %% 	  [-0.05 .5 0.05 0.5] ligne
%% 14/03/03 %% end
%% 14/03/03 %% 	  blanc
%% 14/03/03 %% 	  /fillstyle {} def
%% 14/03/03 %% 	  -0.025 0.52 0.020 0.6 frame*
%% 14/03/03 %% grestore
%% 14/03/03 %% } def
%% 14/03/03 %% 
%% 14/03/03 %% %0 10 stranslate
%% 14/03/03 %% %pst@TubeRecourbe@Court
 
%%%%%%%%%%%%%%%% nouvelles defs pour les tubes %%%%%%%%%%%%%%%% 

/ConstruitTube {
gsave
1 dict begin
   /le_tube exch def
   1 dict begin
      .1 dup jtoppoint pop currentlinewidth add setlinewidth
      le_tube ligne
   end
   1 dict begin
      blanc
      .1 dup jtoppoint pop currentlinewidth sub setlinewidth
      le_tube ligne
   end
end
grestore
} def

/TubeU_dim {
   -1 0 jtoppoint
   5 1.5 jtoppoint
} def

/TubeU_dic 5 dict def
TubeU_dic /uc {2.5 1.5} put
TubeU_dic /In {0 -1} put
TubeU_dic /Out {5 -1} put
TubeU_dic /ConnectIn {0 .1} put
TubeU_dic /ConnectOut {5 .1} put

/TubeU {
gsave
currentpoint translate
1 dict begin
   /linearc .5 def
   [0 -1 0 1.5 5 1.5 5 -1] ConstruitTube
end
grestore
} def

/TubeCoin_dim {
   -1 -1 jtoppoint
   2.5 1.5 jtoppoint
} def

/TubeCoin_dic 3 dict def
TubeCoin_dic /In {0 -1} put
TubeCoin_dic /ConnectIn {0 0} put
TubeCoin_dic /Out {2.5 1.5} put

/TubeCoin {
gsave
currentpoint translate
1 dict begin
   /linearc .5 def
   [0 -1 0 1.5 2.5 1.5] ConstruitTube
end
grestore
} def

/TubeDroit_dic 2 dict def
TubeDroit_dic /In {0 -1} put
TubeDroit_dic /Out {0 5} put

/TubeDroit_dim {
   -.05 -1 jtoppoint
   .05 5 jtoppoint
} def

/TubeDroit {
gsave
1 dict begin
   currentpoint translate
%   currentlinewidth .5 mul setlinewidth
   [0.05 -1 0.05 5] ligne
   [-0.05 -1 -0.05 5] ligne
%   [0 -1 0 5] ConstruitTube
end
grestore
} def

/TubeCoude_dim {
   -.05 -1 jtoppoint
   8 2 jtoppoint
} def

/TubeCoude_dic 2 dict def
TubeCoude_dic /In {0 -1} put
TubeCoude_dic /Out {8 1.95} put

/TubeCoude {
gsave
2 dict begin
   currentpoint translate
%   currentlinewidth .5 mul setlinewidth
   /linearc .05 def
   [-0.05 -1 -0.05 2 8 2] ligne
   [8 1.9 0.05 1.9 0.05 -1] ligne
%   [8 2 0 2 0 -1] ConstruitTube
end
grestore
} def

/TubeCoudeU_dim {
   -.05 -3 jtoppoint
   4.5 2 jtoppoint
} def

/TubeCoudeU_dic 2 dict def
TubeCoudeU_dic /In {0 -1} put
TubeCoudeU_dic /Out {4.45 -3} put

/TubeCoudeU {
gsave
2 dict begin
   currentpoint translate
%   currentlinewidth .5 mul setlinewidth
   /linearc .05 def
   [-0.05 -1  -0.05 2  4.5 2  4.5 -3] ligne
   [4.4 -3  4.4 1.9  0.05 1.9  0.05 -1] ligne
%   [0 -1 0 2 4.5 2 4.5 -3] ConstruitTube
end
grestore
} def

/TubeCoudeUB_dim {
   -.05 -9 jtoppoint
   4.5 2 jtoppoint
} def

/TubeCoudeUB_dic 2 dict def
TubeCoudeUB_dic /In {0 -1} put
TubeCoudeUB_dic /Out {4.45 -9} put

/TubeCoudeUB {
gsave
2 dict begin
   currentpoint translate
%   currentlinewidth .5 mul setlinewidth
   /linearc .05 def
   [-0.05 -1 -0.05 2 4.5 2 4.5 -9] ligne
   [4.4 -9 4.4 1.9 0.05 1.9 0.05 -1] ligne
%   [0 -1 0 2 4.5 2 4.5 -9] ConstruitTube
end
grestore
} def

/TubeRecourbe_dic 2 dict def
TubeRecourbe_dic /In {0 -1} put
TubeRecourbe_dic /Out {7 -8.3} put

/TubeRecourbe_dim {
   -.05 -9.35 jtoppoint
   7.05 1.55 jtoppoint
} def

/TubeRecourbe {
gsave
1 dict begin
   currentpoint translate
%   currentlinewidth .5 mul setlinewidth
   /linearc .5 def
%%   [0 -1 0 1.5 6 1.5 6 -8 6 -9.25 7 -9.25 7 -8.3] ConstruitTube
   [-0.05 -1 -0.05 1] ligne
   0.5 1 0.55 180 90 sarcn
   [0.5 1.55 5.5 1.55] ligne
   5.5 1 0.55 90 0 sarcn
   [6.05 1 6.05 -8.8] ligne
   6.5 -8.8 0.45 180 0 sarc
   [6.95 -8.8 6.95 -8.3] ligne
   [7.05 -8.3 7.05 -8.8] ligne
   6.5 -8.8 0.55 0 180 sarcn
   [5.95 -8.8 5.95 1] ligne
   5.5 1 0.45 0 90 sarc
   [5.5 1.45 0.5 1.45] ligne
   0.5 1 .45 90 180 sarc
   [0.05 1 0.05 -1] ligne
end
grestore
} def

/TubeRecourbeCourt_dim {
   -.05 -3.35 jtoppoint
   5.05 1.55 jtoppoint
} def

/TubeRecourbeCourt_dic 2 dict def
TubeRecourbeCourt_dic /In {0 -1} put
TubeRecourbeCourt_dic /Out {5 -2.3} put

/TubeRecourbeCourt {
gsave
1 dict begin
   currentpoint translate
   /linearc .5 def
%%   [0 -1 0 1.5 4 1.5 4 -2 4 -3.25 5 -3.25 5 -2.5] ConstruitTube
%   currentlinewidth .5 mul setlinewidth
   [0.05 -1 0.05 1] ligne
   [-0.05 -1 -0.05 1] ligne
   0.5 1 0.55 180 90 sarcn
   [0.5 1.55 3.5 1.55] ligne
   3.5 1 0.55 90 0 sarcn
   [4.05 1 4.05 -2.8] ligne
   4.5 -2.8 0.45 180 0 sarc
   [4.95 -2.8 4.95 -2.3] ligne
   [5.05 -2.3 5.05 -2.8] ligne
   4.5 -2.8 0.55 0 180 sarcn
   [3.95 -2.8 3.95 1] ligne
   3.5 1 0.45 0 90 sarc
   [3.5 1.45 0.5 1.45] ligne
   0.5 1 .45 90 180 sarc
   [0.05 1 0.05 0.5] ligne
end
grestore
} def

/TigeBoules {
gsave
   newpath
      -.35 7.6 smoveto
      -0.35 7.5 .1 90 0 sarcn_
      [-.25 7.5 -.25 6.6] ligne_
      -.15 6.6 0.1 180 270 sarc_
      -.15 6.4 0.1 90 0 sarcn_
      [-.05 6.4 -0.05 -1.5] ligne_
      [.05 -1.5 0.05 6 0.05 6.4] ligne_
      0.15 6.4 0.1 180 90 sarcn_
      0.15 6.6 0.1 -90 0 sarc_
      [0.25 6.6 0.25 7.5] ligne_
      0.35 7.5 0.1 180 90 sarcn_
   closepath   
   blanc fill
   newpath
   /nB 5.75 def
   /Nt 5.5 def
   /nt 5.25 def
   7 {
      -.05 .25 add nB smoveto
      -0.05 nB 0.25 cercle_
      0.05 nB 0.25 cercle_
      /nB nB .75 sub store 
      /Nt Nt .75 sub store
      /nt nt .75 sub store
   } repeat
   blanc fill
grestore

   -0.35 7.5 .1 90 0 sarcn
   [-.25 7.5 -.25 6.6] ligne
   -.15 6.6 0.1 180 270 sarc
   -.15 6.4 0.1 90 0 sarcn
   [-.05 6.4 -0.05 6] ligne
   /nB 5.75 def
   /Nt 5.5 def
   /nt 5.25 def
   7 {
      -0.05 nB 0.25 90 270 sarc
      [-0.05 Nt -0.05 nt] ligne
      /nB nB -.75 add store
      /Nt Nt -.75 add store
      /nt nt -.75 add store
   } repeat
   [-0.05 0.75 -0.05 -1.5] ligne
   [0.05 -1.5 0.05 1] ligne
   /nB 1.25 def
   /nt 1.5 def
   /Nt 1.75 def
   7 {
      0.05 nB 0.25 270 90 sarc
      [0.05 nt 0.05 Nt] ligne
      /nB nB .75 add store
      /nt nt .75 add store
      /Nt Nt .75 add store
   } repeat
   [0.05 6 0.05 6.4] ligne
   0.15 6.4 0.1 180 90 sarcn
   0.15 6.6 0.1 -90 0 sarc
   [0.25 6.6 0.25 7.5] ligne
   0.35 7.5 0.1 180 90 sarcn
%% \fill[fillstyle=solid]}
   -0.35 7.5 .1 90 0 sarcn
   [-.25 7.5 -.25 6.6] ligne
   -.15 6.6 0.1 180 270 sarc
   -.15 6.4 0.1 90 0 sarcn
   [-.05 6.4 -0.05 6] ligne
   /nB 5.75 def
   /Nt 5.5 def
   /nt 5.25 def
   7 {
      -0.05 nB 0.25 90 270 sarc
      [-0.05 Nt -0.05 nt] ligne
      /nB nB .75 sub store 
      /Nt Nt .75 sub store
      /nt nt .75 sub store
   } repeat
   [-0.05 0.75 -0.05 -1.5] ligne
   [0.05 -1.5 0.05 1] ligne
   /nB 1.25 def
   /nt 1.5 def
   /Nt 1.75 def
   7 {
      0.05 nB 0.25 270 90 sarc
      [0.05 nt 0.05 Nt] ligne
      /nB nB .75 add store
      /nt nt .75 add store
      /Nt Nt .75 add store
   } repeat
   [0.05 6 0.05 6.4] ligne
   0.15 6.4 0.1 180 90 sarcn
   0.15 6.6 0.1 -90 0 sarc
   [0.25 6.6 0.25 7.5] ligne
   0.35 7.5 0.1 180 90 sarcn
} def
 
/CorpsRefri_ {
   0 5.75 0.5 0 180 sarc_
   [-0.5 5.75 -0.5 5.5 -1.5 5.5
   -1.5 5.3 -.5 5.3 -.5 1.7 -1.5 1.7
   -1.5 1.5 -.5 1.5 -0.5 1] ligne_
   0 1 0.5 180 0 sarc_
} def

/CorpsRefri {
gsave
   gsave
      newpath
      .5 5.75 smoveto
      CorpsRefri_ 
      cyan fill
   grestore
1 dict begin
%% \pscustom[linestyle=none]{
   0 5.75 0.5 0 180 sarc
   [-0.5 5.75 -0.5 5.5 -1.5 5.5] ligne
   [-1.5 5.3 -.5 5.3 -.5 1.7 -1.5 1.7] ligne
   [-1.5 1.5 -.5 1.5 -0.5 1] ligne
   0 1 0.5 180 0 sarc
   [0.5 1 0.5 5.75] ligne
   currentlinewidth 1.1 mul setlinewidth
   [-0.5 5.75 -0.5 5.5 -1.5 5.5] ligne
   [-0.5 5.75 -0.5 5.5 -1.5 5.5] ligne
   [-1.5 5.3 -.5 5.3 -.5 1.7 -1.5 1.7] ligne
   [-1.5 1.5 -.5 1.5 -0.5 1] ligne
   0 1 0.5 180 0 sarc
   [0.5 1 0.5 5.75] ligne
   fleches_Refrigerant {
%      cyan
      [-2.5 1.6 -1.6 1.6] (->) ligne
%      OrangePale
      [-2.5 5.4 -1.6 5.4] (<-) ligne
   } if
end 
grestore
} def