Source PostScript (labo.pps)

Retour Texte non formaté
%% 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 /RefrigerantBoules_dic 6 dict def RefrigerantBoules_dic /In {0 -1} put RefrigerantBoules_dic /Out {0 8.1} put RefrigerantBoules_dic /Entree {-1.5 2.1} put RefrigerantBoules_dic /Sortie {-1.5 5.9} put RefrigerantBoules_dic /FlecheEntree {-2.5 2.1} put RefrigerantBoules_dic /FlecheSortie {-2.5 5.9} put /RefrigerantBoules_dim { -1.5 -1 jtoppoint .5 8.1 jtoppoint } def /RefrigerantBoules { 1 dict begin gsave currentpoint translate 0 .5 stranslate % currentlinewidth .5 mul setlinewidth CorpsRefri TigeBoules grestore end } def /EntonnoirRobinet_dim { -.3 -3 jtoppoint .35 3.1 jtoppoint } def /EntonnoirRobinet_dic 2 dict def EntonnoirRobinet_dic /In {0 -3} put EntonnoirRobinet_dic /Out {0 3} put /EntonnoirRobinet { gsave 3 dict begin currentpoint translate .25 0 stranslate [0.1 1.55 -.5 1.55 -0.5 1.7 -.55 1.7 -.55 1.3 -0.5 1.3 -0.5 1.55 -.5 1.45 .1 1.45 ] polygone /linearc .05 def % currentlinewidth .5 mul setlinewidth [-.3 -3 -0.3 2 -0.5 2.2 -0.5 3] ligne [0 3 0 2.2 -0.2 2 -0.2 -3] ligne currentlinewidth 2 mul setlinewidth /linearc .2 def /fillstyle {blanc fill} def -0.4 1.3 -0.1 1.7 frame* m@depl@n {} {-0.25 3 0.3 0.1 ellipse*} ifelse end grestore } def /EntonnoirRobinetCourt_dim { -.3 -1 jtoppoint .35 3.1 jtoppoint } def /EntonnoirRobinetCourt_dic 2 dict def EntonnoirRobinetCourt_dic /In {0 -1} put EntonnoirRobinetCourt_dic /ConnectIn {0 .1} put EntonnoirRobinetCourt_dic /ConnectOut {0 1.9} put EntonnoirRobinetCourt_dic /Out {0 3} put /EntonnoirRobinetCourt { gsave 3 dict begin currentpoint translate .25 0 stranslate [0.1 1.55 -.5 1.55 -0.5 1.7 -.55 1.7 -.55 1.3 -0.5 1.3 -0.5 1.55 -.5 1.45 .1 1.45 ] polygone /linearc .05 def % currentlinewidth .5 mul setlinewidth [-.3 -1 -0.3 2 -0.5 2.2 -0.5 3] ligne [0 3 0 2.2 -0.2 2 -0.2 -1] ligne currentlinewidth 2 mul setlinewidth /linearc .2 def /fillstyle {blanc fill} def -0.4 1.3 -0.1 1.7 frame* m@depl@n {} {-0.25 3 0.3 0.1 ellipse*} ifelse end grestore } def /Refrigerant_dim { -1.5 -1 jtoppoint 1.5 7 jtoppoint } def /Refrigerant_dic 4 dict def Refrigerant_dic /In {0 -1} put Refrigerant_dic /Out {0 7} put Refrigerant_dic /Sortie {1.5 4.5} put Refrigerant_dic /Entree {-1.5 1.5} put /fleches_Refrigerant true def /Refrigerant { gsave currentpoint translate -90 rotate 2 dict begin gsave newpath -5 -.5 smoveto -5 0 0.5 270 90 sarcn_ -1 0 0.5 90 270 sarcn_ cyan fill 1 dict begin .1 dup jtoppoint pop setlinewidth [-4.45 .5 -4.45 1.5] ligne [-1.45 -.5 -1.45 -1.5] ligne end grestore -5 0 0.5 90 270 sarc -1 0 0.5 270 90 sarc [-4.5 0.5 -4.5 1.5] ligne [-4.4 0.5 -4.4 1.5] ligne [-1.4 -.5 -1.4 -1.5] ligne [-1.5 -.5 -1.5 -1.5] ligne [-5 0.5 -4.5 0.5] ligne [-5 -.5 -1.5 -.5] ligne [-4.4 0.5 -1 0.5] ligne [-1.4 -.5 -1 -.5] ligne /fillstyle {blanc fill} def /borderline false def %% le tube central -7 -.05 1 0.05 frame* [-7 .05 1 0.05] ligne [-7 -.05 1 -.05] ligne fleches_Refrigerant { [-1.45 -2.5 -1.45 -1.5] (->) ligne [-4.45 1.5 -4.45 2.5] (->) ligne } if end grestore } def /bouchon_Vigreux false def /ColonneVigreux_dic 3 dict def ColonneVigreux_dic /In {0 -1} put ColonneVigreux_dic /Out {0 9.5} put ColonneVigreux_dic /SortieVigreux {1 8} put /ColonneVigreux_dim { -.5 -1 jtoppoint 1 9.5 jtoppoint } def /ColonneVigreux { gsave currentpoint translate 0 -1 stranslate 11 dict begin /goutte2 { 1 dict begin .17 setlinewidth [0 0 0.25 -.4 -.25 -.4 0 0] bezier_curve end } def /linearc .3 def [-.25 10.5 -.25 8.5 -.5 8 -.5 2.5 -.05 1.75 -.05 0] ligne [0.05 0 .05 1.75 0.5 2.5 .5 8 0.25 8.5 0.25 9.336] ligne /linearc 0 def [0.25 9.442 0.25 10.5] ligne %% angle =~ -25.641 [.25 9.336 1 8.952] ligne [.25 9.442 1.1 9.] ligne /pointeG { [0 0 0.5 -.5 0 -.1] ligne } def /pointeD { [0 0 -.5 -.5 0 -.1] ligne } def /i 2.8 def .4 setlinewidth 6 { gsave -.5 i stranslate pointeG 1 .2 stranslate pointeD /i i 1 add store grestore } repeat bouchon_Vigreux { %% le bouchon /hstep .03 dup jtoppoint pop def /hwidth .1 def /fillstyle {hachure} def /borderline false def -.25 10 -0.05 10.5 frame* .25 10 0.05 10.5 frame* dsave2 0 9.2 (Thermometre) bbpict drestore2 } if %% %% les gouttes %% /n 2.5 def %% 6 { %% gsave %% -.25 n stranslate %% goutte2 %% .5 0 stranslate %% goutte2 %% grestore %% /n n 1 add store %% } repeat %% -.25 -.1 stranslate %% goutte2 %% .5 0 stranslate goutte2 end grestore } def /ColonneVigreux_old { gsave %0 -1 stranslate 11 dict begin /goutte2 { 1 dict begin .17 setlinewidth [0 0 0.25 -.4 -.25 -.4 0 0] bezier_curve end } def /linearc .3 def [-.25 10.5 -.25 8.5 -.75 8 -.75 2.5 -.25 2 -.25 0] ligne [0.25 0 0.25 2 0.75 2.5 .75 8 0.25 8.5 0.25 9.36] ligne /linearc 0 def [0.25 9.5 0.25 10.5] ligne /pointeG { [0 0 0.5 -.5 0 -.1] ligne } def /pointeD { [0 0 -.5 -.5 0 -.1] ligne } def /i 3 def .4 setlinewidth 6 { gsave -.75 i stranslate pointeG 1.5 0 stranslate pointeD /i i 1 add store grestore } repeat %% le bouchon /hstep .03 dup jtoppoint pop def /hwidth .1 def /fillstyle {hachure} def /borderline false def -.25 10 -0.05 10.5 frame* .25 10 0.05 10.5 frame* %% les gouttes /n 2.5 def 6 { gsave -.25 n stranslate goutte2 .5 0 stranslate goutte2 grestore /n n 1 add store } repeat -.25 -.1 stranslate goutte2 .5 0 stranslate goutte2 end grestore } def /RefrigerantLiebig_dim { -1.2 -1 jtoppoint .5 8.5 jtoppoint } def /RefrigerantLiebig_dic 4 dict def RefrigerantLiebig_dic /In {0 -1} put RefrigerantLiebig_dic /Out {0 6.5} put RefrigerantLiebig_dic /Entree {-1.2 1.55} put RefrigerantLiebig_dic /Sortie {-1.2 4.05} put /RefrigerantLiebig { gsave currentpoint translate 0 -2 stranslate %% le corps 2 dict begin /linearc .5 def /fillstyle {cyan fill} def -.5 3 0.5 7 frame* [-.5 8.5 -.3 8.4 -.3 8 -.3 7.5 -.3 7.2 -.05 7] ligne [.5 8.5 .3 8.4 .3 8 .3 7.5 .3 7.2 .05 7] ligne end %% tube central gsave 1 dict begin blanc .1 dup jtoppoint pop setlinewidth [0 1 0 7.1] ligne end grestore %% re tube central [-0.05 1 -0.05 7] ligne [0.05 1 0.05 7] ligne %% les sorties 2 dict begin /borderline false def /fillstyle {cyan fill} def -1.2 3.5 -0.4 3.6 frame* -1.2 6 -0.4 6.1 frame* [-1.2 3.5 -0.5 3.5] ligne [-1.2 3.6 -0.5 3.6] ligne [-1.2 6 -0.5 6] ligne [-1.2 6.1 -0.5 6.1] ligne end fleches_Refrigerant { [-2.3 3.55 -1.3 3.55] (->) ligne [-2.3 6.05 -1.3 6.05] (<-) ligne } if grestore } def %%%%%%%%%%%%%% le reste n'est pas finalise %%%%%%%%%%%%%% %% ok %% %% \def\pst@TubeRecourbe@Court@DoubleTube{ %% ok %% %% \begingroup %% ok %% %% \psset{linewidth=0.5\pslinewidth} %% ok %% %% \psline(-0.05,0.5)(-0.05,1) %% ok %% %% \psarcn(0.5,1){0.55}{180}{90} %% ok %% %% \psline(0.5,1.55)(3.5,1.55) %% ok %% %% \psarcn(3.5,1){0.55}{90}{0} %% ok %% %% \psline(4.05,1)(4.05,-2.8) %% ok %% %% \psarc(4.5,-2.8){0.45}{180}{0} %% ok %% %% \psline(4.95,-2.8)(4.95,-2.3) %% ok %% %% \psline(5.05,-2.3)(5.05,-2.8) %% ok %% %% \psarcn(4.5,-2.8){0.55}{0}{180} %% ok %% %% \psline(3.95,-2.8)(3.95,1) %% ok %% %% \psarc(3.5,1){0.45}{0}{90} %% ok %% %% \psline(3.5,1.45)(0.5,1.45) %% ok %% %% \psarc(0.5,1){.45}{90}{180} %% ok %% %% \psline(0.05,1)(0.05,0.5) %% ok %% %% \psline(-0.05,.5)(0.05,0.5) %% ok %% %% \endgroup %% ok %% %% \psframe*[linecolor=white](-0.025,0.52)(0.018,0.8)} %% ok %% %% ok %% /TubeRecourbeCourtDoubleTube { %% ok %% gsave %% ok %% 1 dict begin %% ok %% currentlinewidth .5 mul setlinewidth %% ok %% [-0.05 0.5 -0.05 1] ligne %% ok %% 0.5 1 0.55 180 90 sarcn %% ok %% [0.5 1.55 3.5 1.55] ligne %% ok %% 3.5 1 0.55 90 0 sarcn %% ok %% [4.05 1 4.05 -2.8] ligne %% ok %% 4.5 -2.8 0.45 180 0 sarc %% ok %% [4.95 -2.8 4.95 -2.3] ligne %% ok %% [5.05 -2.3 5.05 -2.8] ligne %% ok %% 4.5 -2.8 0.55 0 180 sarcn %% ok %% [3.95 -2.8 3.95 1] ligne %% ok %% 3.5 1 0.45 0 90 sarc %% ok %% [3.5 1.45 0.5 1.45] ligne %% ok %% 0.5 1 .45 90 180 sarc %% ok %% [0.05 1 0.05 0.5] ligne %% ok %% [-0.05 .5 0.05 0.5] ligne %% ok %% blanc %% ok %% /fillstyle {} def %% ok %% -0.025 0.52 0.018 0.8 frame* %% ok %% end %% ok %% grestore %% ok %% } def %% ok %% %% ok %% %% 0 6 stranslate %% ok %% %% pst@TubeRecourbe@Court@DoubleTube %% ok %% %% ok %% %% \def\pst@TubeEssais@DoubleTube{% %% ok %% %% \begingroup %% ok %% %% \psset{linewidth=0.5\pslinewidth} %% ok %% %% \psline(-0.3,-3)(-0.3,0) %% ok %% %% \psline(-.2,-3)(-0.2,0) %% ok %% %% \psline(0.25,-1)(0.25,0)% %% ok %% %% \psline(.15,-1)(.15,0)% %% ok %% %% \endgroup %% ok %% %% \pst@TubeEssais@Bouchon %% ok %% %% \rput(0.2,0){\pst@TubeRecourbe@Court@DoubleTube} %% ok %% %% \rput(0,0.5){% %% ok %% %% \begingroup %% ok %% %% \psset{linewidth=0.5\pslinewidth} %% ok %% %% \pspolygon[fillstyle=solid,linearc=0.05]% %% ok %% %% (-.3,0)(-0.3,2)(-0.5,2.2)(-0.5,3)(0,3)% %% ok %% %% (0,2.2)(-0.2,2)(-0.2,0) %% ok %% %% \pspolygon(0.1,1.55)(-.5,1.55)(-0.5,1.7)(-.55,1.7)% %% ok %% %% (-.55,1.3)(-0.5,1.3)(-0.5,1.55)(-.5,1.45)(.1,1.45) %% ok %% %% \psframe[fillstyle=solid,framearc=0.2](-0.4,1.3)(-0.1,1.7) %% ok %% %% \endgroup\psellipse[fillstyle=solid](-0.25,3)(0.3,0.1)}} %% \def\pst@TubeEssais@Pince{ %% \pscustom{% %% \pscurve(0.5,0)(0,-0.1)(-0.5,0) %% \psline(-0.5,0)(-0.8,0) %% \psarc(-0.5,0){0.3}{180}{270} %% \psline(-.5,-.3)(2.5,-.3)(2.4,-.2)(1,0)(0.5,0) %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% %% \psline(-0.8,0)(-0.8,-0.3) %% \psarc(-0.5,-0.3){0.3}{180}{270} %% \psline(-0.5,-0.6)(2.5,-.6)(2.5,-.3)(-.5,-.3) %% \psarcn(-.5,0){0.3}{-90}{180} %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% %% \psline(-.5,0.05)(-.8,0.05) %% \psarcn(-0.5,0.05){0.25}{180}{90} %% \psline(-.5,0.3)(-0.5,0.05) %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% %% \psline(0.5,0.3)(4.9,0.3)(5,0.2)(1,0)(0.5,0)(0.5,0.3) %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% %% \psline(0.5,0)(5,0.2)(5,0)(2,-0.2)(1,0) %% \fill[fillstyle=solid,fillcolor=Marron]} %% \psellipse[linewidth=1.5\pslinewidth](1,0)(0.3,0.1) %% \psline[linewidth=1.5\pslinewidth](0.7,0)(0.4,-.3)(0.4,-.6)} /pst@TubeEssais@Pince { %% \pscustom{% 1 dict begin /arg {argc} def [0.5 0 .. 0 -0.1 .. -0.5 0] draw [-0.5 0 -0.8 0] ligne -0.5 0 0.3 180 270 sarc [-.5 -.3 2.5 -.3 2.4 -.2 1 0 0.5 0] ligne %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% [-0.8 0 -0.8 -0.3] ligne -0.5 -0.3 0.3 180 270 sarc [-0.5 -0.6 2.5 -.6 2.5 -.3 -.5 -.3] ligne -.5 0 0.3 -90 180 sarcn %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% [-.5 0.05 -.8 0.05] ligne -0.5 0.05 0.25 180 90 sarcn [-.5 0.3 -0.5 0.05] ligne %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% [0.5 0.3 4.9 0.3 5 0.2 1 0 0.5 0 0.5 0.3] ligne %% \fill[fillstyle=solid,fillcolor=OrangePale]} %% \pscustom{% [0.5 0 5 0.2 5 0 2 -0.2 1 0] ligne %% \fill[fillstyle=solid,fillcolor=Marron]} /fillstyle {Marron fill} def currentlinewidth 1.5 mul setlinewidth 1 0 0.3 0.1 ellipse* [0.7 0 0.4 -.3 0.4 -.6] ligne end } def %pst@TubeEssais@Pince /vision_menisque_dim { -2.5 dup jtoppoint 2.5 dup jtoppoint } def /vision_menisque { 2 dict begin gsave currentpoint translate /hauteur .3 niveauLiquides dup length 1 sub get 4 div 2 sub mul def /epaisseur 2 def -1 hauteur neg stranslate /fillstyle {blanc fill} def 1 hauteur 2.5 cercle* gsave newpath 1 hauteur 2.5 0 cpoint smoveto 1 hauteur 2.5 cercle_ clip O (Burette) bcpict 3 hauteur (oeil) bbpict /arg {argc} def epaisseur setlinewidth [-.25 hauteur .2 add .. {right} .125 hauteur .. .5 hauteur .2 add] draw grestore gsave 2 dict begin /bas epaisseur 2 div dup ptojpoint pop def .3 setlinewidth [2 1] 0 setdash [.125 hauteur bas sub 1.3 hauteur bas sub] ligne end grestore 1 hauteur 2.5 cercle grestore end } def /BunsenCorps_dic 1 dict def BunsenCorps_dic /Connect {-2.25 0.865} put /BunsenCorps_dim { -2.25 0 jtoppoint 1.25 6.26 jtoppoint } def /BunsenCorps { gsave currentpoint translate 1 dict begin -.5 1.25 0.5 2.25 frame -1.25 0 1.25 0.25 frame /i -.3 def 3 { i 1.75 .1 cercle /i .3 i add store } repeat -.25 2.25 0.25 4.25 frame [0.25 1.25 0.25 0.5 1.25 0.25] ligne [-1.25 0.25 -.25 0.5 -0.25 0.75] ligne [-2.25 0.75 -.25 0.75] ligne [-2.25 1 -.25 1] ligne -90 90 -.25 0.875 0.1 0.125 Ellipse -2.25 0.75 -0.25 0.75 (-) line -2.25 1 -0.25 1 -.25 1.25 (-) line [-0.25 0.5 .. 0 0.4 .. 0.25 0.5] draw grestore end } def /Flamme_dim { -0.25 0 jtoppoint .55 2 jtoppoint } def /Flamme { 5 dict begin gsave currentpoint translate 0 setlinewidth /fillstyle {{orange} {jaune} 0 gradientfill} def [0 0 -0.25 0 -0.35 0.5 -0.4 0.75 -0.35 1 -0.25 1.5 0.5 2 0.25 1.5 0.35 1 0.4 0.75 0.35 0.5 0.25 0 0 0] bezier_curve* gsave newpath 0 0 smoveto [0 0 -0.25 0 -0.35 0.5 -0.4 0.75 -0.35 1 -0.25 1.5 0.5 2 0.25 1.5 0.35 1 0.4 0.75 0.35 0.5 0.25 0 0 0] bezier_curve_ gsave clip /fillstyle {{cyan} {blanc} 0 gradientfill} def [-0.25 0 0.25 0 0 1] polygone* grestore grestore grestore end } def /FlammeLarge_dim { -1.5 0 jtoppoint 1.5 1.55 jtoppoint } def /FlammeLarge { 1 dict begin gsave currentpoint translate 0 setlinewidth /fillstyle {{orange} {jaune} 0 gradientfill} def gsave newpath 0 0.75 0.75 270 0 sarc_ 1.5 0.75 0.75 180 90 sarcn_ [1.5 1.5 -1.5 1.5] ligne_ -1.5 0.75 0.75 90 0 sarcn_ 0 0.75 0.75 180 270 sarc_ closepath fillstyle /fillstyle {{cyan} {blanc} 0 gradientfill} def grestore [-0.25 0 0.25 0 0 1] polygone* grestore end } def /Bunsen_dic 1 dict def Bunsen_dic /Connect {-2.25 0.865} put Bunsen_dic /bb {0 0} put Bunsen_dic /uc {0 6.26} put /Bunsen_dim { -2.25 0 jtoppoint 1.25 6.26 jtoppoint } def /Bunsen { gsave currentpoint translate BunsenCorps 0 4.26 smoveto Flamme grestore } def /BunsenGrille_dic 1 dict def BunsenGrille_dic /Connect {-2.25 0.865} put BunsenGrille_dic /bb {0 0} put BunsenGrille_dic /uc {0 5.76} put /BunsenGrille_dim { -2.5 0 jtoppoint 2.5 5.76 jtoppoint } def /BunsenGrille { gsave currentpoint translate BunsenCorps 0 4.26 smoveto FlammeLarge pointilles 1 setlinewidth [-2 5.75 2 5.75] ligne grestore } def /Seringue_dim { -7.1 -1 jtoppoint 3 1 jtoppoint } def /Seringue_dic 5 dict def Seringue_dic /Out {3 0} put Seringue_dic /Anneau {-6.5 0} put Seringue_dic /Piston {-2 0} put /Seringue { gsave currentpoint translate 1 dict begin gsave newpath -2 -1 smoveto -2 -1 .8 1 frame_ clip -2 -1 .8 1 afficheLiquides -2 -1 .8 1 afficheSolides -2 -1 .8 1 afficheGazs grestore gsave 2 setlinewidth -6.5 0 0.6 cercle blanc .7 setlinewidth -6.5 0 0.6 cercle grestore /fillstyle {blanc fill} def -6 -0.5 -2 0.5 frame* 1 .1 3.1 -.1 (bu) frame* -4 1 0.8 -1 frame [0.8 1 1 0.1 1 -0.1 0.8 -1] ligne -4.1 -1.2 -4 1.2 frame* gsave currentlinewidth 5 mul setlinewidth [-2 -1 -2 1] ligne grestore -3.5 .5 .5 { /i exch def [i 1 i .6] ligne } for end grestore } def /AmpouleCoulee_dic 5 dict def AmpouleCoulee_dic /In {0 -1} put AmpouleCoulee_dic /ConnectIn {0 0} put AmpouleCoulee_dic /trou {0 6} put AmpouleCoulee_dic /trou1 {-.2 6} put AmpouleCoulee_dic /trou2 {.2 6} put /AmpouleCoulee_dim { -.5 -1 jtoppoint .5 5.5 jtoppoint } def /AmpouleCoulee_ { 1 dict begin /linearc .1 def [-.3 -1 -0.3 2 -0.75 2.2 -0.75 6 .25 6 .25 2.2 -0.2 2 -0.2 -1] polygone_ end } def /AmpouleCoulee { gsave currentpoint translate .25 -.5 stranslate gsave newpath -.3 -1 smoveto AmpouleCoulee_ clip -.75 1.8 .25 5.5 afficheLiquides -.75 1.8 .25 5.5 afficheSolides -.75 1.8 .25 5.5 afficheGazs closepath grestore %% robinet [0.1 1.55 -.5 1.55 -0.5 1.7 -.55 1.7 -.55 1.3 -0.5 1.3 -0.5 1.55 -.5 1.45 .1 1.45 ] polygone %% corps /linearc .1 def [-.3 -.5 -0.3 2 -0.75 2.2 -0.75 6] ligne [.25 6 .25 2.2 -0.2 2 -0.2 -.5] ligne %% axe robinet 2 dict begin gsave currentlinewidth 2 mul setlinewidth /linearc .2 def /fillstyle {blanc fill} def -0.4 1.3 -0.1 1.7 frame* grestore end -.25 2 stranslate % 3.5 afficheBouchage % 3.5 afficheTubes grestore } def /AmpouleDecantation_dic 5 dict def AmpouleDecantation_dic /Out {0 .5} put AmpouleDecantation_dic /col {0 4} put AmpouleDecantation_dic /trou {0 11} put AmpouleDecantation_dic /trou1 {-.2 11} put AmpouleDecantation_dic /trou2 {.2 11} put /AmpouleDecantation_dim { -1.5 .5 jtoppoint 1.5 11 jtoppoint } def /AmpouleDecantation { 1 dict begin gsave currentpoint translate /fillstyle {blanc fill} def -.5 11 .5 10 (lr) frame gsave newpath -.1 .5 smoveto [-.1 0.5 -- -.1 2.75 -- -1.5 9 {up} .. 0 10.5 {right} .. 1.5 9 {down} -- .1 2.75 -- 0.1 .7] draw_ clip gsave fillstyle -1.5 2 1.5 10 afficheLiquides -1.5 2 1.5 10 afficheSolides -1.5 2 1.5 10 afficheGazs grestore stroke grestore gsave 0 setlinewidth -.45 11 .45 10.2 frame* grestore 0 7 stranslate 3.5 afficheBouchage 3.5 afficheTubes -.1 -7 stranslate Burette@robinet grestore end } def %% 24/08/2007 %% /pince { %% 24/08/2007 %% 4 dict begin %% 24/08/2007 %% /yA exch def %% 24/08/2007 %% /xA exch def %% 24/08/2007 %% /x0 exch def %% 24/08/2007 %% %% fixation potence %% 24/08/2007 %% /fillstyle {blanc fill} def %% 24/08/2007 %% gsave %% 24/08/2007 %% x0 .95 sub yA 1 sub stranslate %% 24/08/2007 %% [0 1 -- 0 1.15 .. .25 1.25 {right} .. .5 1.15 -- .5 1 .. .25 .9 {left} %% 24/08/2007 %% .. {up} 0 1] draw* %% 24/08/2007 %% grestore %% 24/08/2007 %% %% tube pince %% 24/08/2007 %% x0 .45 sub yA %% 24/08/2007 %% xA 1.5 sub yA .15 add frame %% 24/08/2007 %% %% fixation pince %% 24/08/2007 %% xA 1.5 sub yA .1 sub %% 24/08/2007 %% xA .9 sub yA .25 add frame %% 24/08/2007 %% %% la pince %% 24/08/2007 %% [ %% 24/08/2007 %% xA .6 sub yA .2 sub %% 24/08/2007 %% xA .7 add yA .2 sub %% 24/08/2007 %% xA .7 add yA .45 sub %% 24/08/2007 %% xA .9 sub yA .45 sub %% 24/08/2007 %% xA .9 sub yA .5 add %% 24/08/2007 %% xA .7 add yA .5 add %% 24/08/2007 %% xA .7 add yA .25 add %% 24/08/2007 %% xA .6 sub yA .25 add %% 24/08/2007 %% ] polygone* %% 24/08/2007 %% end %% 24/08/2007 %% } def /Potence_dim { -1 .7225 add 0 jtoppoint 1.7225 10 jtoppoint } def /Potence { gsave currentpoint translate .7225 0 stranslate -1 0 1 .2 frame -.9 .2 .9 .5 frame -.8 .5 -.65 10 frame grestore } def %% 24/08/2007 %% %% syntaxe : A alpha B beta raccordsouple %% 24/08/2007 %% /raccordsouple { %% 24/08/2007 %% 4 dict begin %% 24/08/2007 %% gsave %% 24/08/2007 %% /beta exch def %% 24/08/2007 %% /B defpoint %% 24/08/2007 %% /alpha exch def %% 24/08/2007 %% /A defpoint %% 24/08/2007 %% /A' {A alpha dir -.4 mulv addv} def %% 24/08/2007 %% /B' {B beta dir .4 mulv addv} def %% 24/08/2007 %% /demilargeur .05 currentlinewidth dup ptojpoint pop add def %% 24/08/2007 %% [A' alpha 90 add dir demilargeur mulv addv -- A alpha 90 add dir %% 24/08/2007 %% demilargeur mulv addv {alpha dir} .. {beta dir} B beta %% 24/08/2007 %% 90 add dir demilargeur mulv addv -- B' beta 90 add dir demilargeur %% 24/08/2007 %% mulv addv] draw %% 24/08/2007 %% [A' alpha -90 add dir demilargeur mulv addv -- A alpha -90 add dir %% 24/08/2007 %% demilargeur mulv addv {alpha dir} .. {beta dir} B beta -90 add dir %% 24/08/2007 %% demilargeur mulv addv -- B' beta -90 add dir demilargeur mulv addv] %% 24/08/2007 %% draw %% 24/08/2007 %% grestore %% 24/08/2007 %% end %% 24/08/2007 %% } def %% syntaxe : A alpha B beta raccordsouple /raccordsouple { gsave 7 dict begin /beta exch def /B defpoint /alpha exch def /A defpoint /A' {A alpha dir -.4 mulv addv} def /B' {B beta dir .4 mulv addv} def /demilargeur .05 currentlinewidth dup ptojpoint pop add def [ A' alpha 90 add dir demilargeur mulv addv A alpha 90 add dir demilargeur mulv addv ] ligne [ B beta 90 add dir demilargeur mulv addv B' beta 90 add dir demilargeur mulv addv ] ligne [ A' alpha -90 add dir demilargeur mulv addv A alpha -90 add dir demilargeur mulv addv ] ligne [ B beta -90 add dir demilargeur mulv addv B' beta -90 add dir demilargeur mulv addv ] ligne 5 setlinewidth [A {alpha dir} .. {beta dir} B] draw 1.75 setlinewidth blanc [A {alpha dir} .. {beta dir} B] draw end grestore } def %% 24/08/2007 %% /pincefine { %% 24/08/2007 %% 4 dict begin %% 24/08/2007 %% /yA exch def %% 24/08/2007 %% /xA exch def %% 24/08/2007 %% /x0 exch def %% 24/08/2007 %% %% fixation potence %% 24/08/2007 %% /fillstyle {blanc fill} def %% 24/08/2007 %% gsave %% 24/08/2007 %% x0 .95 sub yA 1 sub stranslate %% 24/08/2007 %% [0 1 -- 0 1.15 .. .25 1.25 {right} .. .5 1.15 -- .5 1 .. .25 .9 {left} %% 24/08/2007 %% .. {up} 0 1] draw* %% 24/08/2007 %% grestore %% 24/08/2007 %% %% tube pince %% 24/08/2007 %% x0 .45 sub yA %% 24/08/2007 %% xA .9 add yA .15 add frame* %% 24/08/2007 %% end %% 24/08/2007 %% } def /pincefine { 4 dict begin gsave 0 -.0725 stranslate /yA exch def /xA exch def /x0 exch def %% fixation potence /fillstyle {blanc fill} def gsave x0 .2275 sub yA 1 sub stranslate [0 1 -- 0 1.15 .. .25 1.25 {right} .. .5 1.15 -- .5 1 .. .25 .9 {left} .. {up} 0 1] draw* grestore %% tube pince xA x0 gt { x0 .3225 add yA xA .9 add yA .15 add frame* } { x0 .25 sub yA xA .9 sub yA .15 add frame* } ifelse grestore end } def /pince { 4 dict begin gsave 0 -.0725 stranslate /yA exch def /xA exch def /x0 exch def %% fixation potence /fillstyle {blanc fill} def gsave x0 .2275 sub yA 1 sub stranslate [0 1 -- 0 1.15 .. .25 1.25 {right} .. .5 1.15 -- .5 1 .. .25 .9 {left} .. {up} 0 1] draw* grestore xA x0 gt { %% tube pince x0 .3225 add yA xA 1.5 sub yA .15 add frame %% fixation pince xA 1.5 sub yA .1 sub xA .9 sub yA .25 add frame %% la pince [ xA .6 sub yA .2 sub xA .7 add yA .2 sub xA .7 add yA .45 sub xA .9 sub yA .45 sub xA .9 sub yA .5 add xA .7 add yA .5 add xA .7 add yA .25 add xA .6 sub yA .25 add ] polygone* } { %% tube pince x0 .25 sub yA xA 1.5 add yA .15 add frame %% fixation pince xA 1.5 add yA .1 sub xA .9 add yA .25 add frame %% la pince [ xA .6 add yA .2 sub xA .7 sub yA .2 sub xA .7 sub yA .45 sub xA .9 add yA .45 sub xA .9 add yA .5 add xA .7 sub yA .5 add xA .7 sub yA .25 add xA .6 add yA .25 add ] polygone* } ifelse grestore end } def