summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex')
-rw-r--r--Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex623
1 files changed, 623 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex b/Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex
new file mode 100644
index 00000000000..b7996d1ed55
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pst-labo/pst-labo.tex
@@ -0,0 +1,623 @@
+%% Package `pst-labo.tex'
+%%
+%% This program can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License Distributed
+%% from CTAN archives in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-labo' is a PSTricks package for
+%% chemical objects.
+%%
+%%
+%% Authors : Denis Girou <Denis.Girou@idris.fr>
+%% Christophe Jorsen <Christophe.Jorssen@free.fr>
+%% Manuel Luque <Mluque5130@aol.com>
+%% Herbert Voss <hvoss@tug.org>
+%%
+\csname PSTLaboLoaded\endcsname
+\let\PSTLaboLoaded\endinput
+%
+% Require PSTricks, pstcol,pstplot, and multido packages
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTplotLoaded\endinput\else\input pst-plot.tex\fi
+\ifx\MultidoLoaded\endinput\else\input multido.tex\fi
+\ifx\PSTGradLoaded\endinput\else\input pst-grad.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex\fi
+%
+\def\fileversion{2.02}
+\def\filedate{05/10/01}
+%
+\message{`PST-labo8' v\fileversion, \filedate\space (ML/CJ/DG/HV)}
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+%
+\pst@addfams{pst-labo}
+%
+%\input random
+\input {pst-laboObj}
+%
+\definecolor{Beige} {rgb}{0.96,0.96,0.86}
+\definecolor{GrisClair} {rgb}{0.8,0.8,0.8}
+\definecolor{GrisTresClair} {rgb}{0.9,0.9,0.9}
+\definecolor{OrangeTresPale}{cmyk}{0,0.1,0.3,0}
+\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0}
+\definecolor{BleuClair}{cmyk}{0.2,0,0,0}
+\definecolor{LightBlue}{rgb}{.68,.85,.9}
+\definecolor{Copper}{cmyk}{0,0.9,0.9,0.2}
+\definecolor{Marron}{cmyk}{0,0.3,0.5,.3}
+\SpecialCoor
+
+\newdimen{\BulleX}
+\newdimen{\BulleY}
+\newdimen\GrenailleX
+\newdimen\GrenailleY
+\newdimen\TournureX
+\newdimen\TournureY
+\newdimen\RAYONBULLE
+\newdimen\ClouX
+\newdimen\ClouY
+\newdimen{\pst@FilamentWidth}
+\newdimen\pst@dimA
+\newcount\lab@AngleRotation
+
+
+\newif\ifPst@burette
+\define@key[psset]{pst-labo}{burette}[true]{\@nameuse{Pst@burette#1}}%
+\define@key[psset]{pst-labo}{couleurReactifBurette}{\edef\psk@Burette@CouleurReactif{#1}}%
+\define@key[psset]{pst-labo}{niveauReactifBurette}{%
+ \pst@cnta=#1\relax
+ \ifnum\pst@cnta>25
+ \typeout{Niveau must be 25 and not `\the\pst@cnta'. Value 25 forced.} \pst@cnta=25
+ \fi%
+ \def\psk@burette@niveauReactif{#1}%
+}%
+\define@key[psset]{pst-labo}{reactifBurette}{\def\psk@Reactif@Burette{#1}}%
+\define@key[psset]{pst-labo}{reactifBecher}{\def\psk@Reactif@Becher{#1}}%
+
+\newif\ifpst@dosage@PHmetre
+\define@key[psset]{pst-labo}{phmetre}[true]{\@nameuse{pst@dosage@PHmetre#1}}%
+%
+\define@key[psset]{pst-labo}{couleurReactif}{\edef\psk@pipette@couleurReactif{#1}}%
+\define@key[psset]{pst-labo}{niveauReactif}{%
+ \pst@cntg=#1\relax
+ % tubePenche must be between -65 and 65
+ \ifnum\pst@cntg>10
+ \typeout{Niveau must be 10 and not `\the\pst@cntg'. Value 10 forced.} \pst@cntg=10
+ \fi
+ \def\psk@pipette@niveauReactif{#1}%
+}%
+
+\define@key[psset]{pst-labo}{CouleurDistillat}{\def\psk@Distillation@CouleurDistillat{#1}}
+\define@key[psset]{pst-labo}{AspectMelange}{\def\psk@Distillation@AspectMelange{#1}}
+
+% Parameters of \TubeEssais
+% -------------------------
+\newif\ifPst@TubeEssais@bouchon
+\define@key[psset]{pst-labo}{bouchon}[true]{\@nameuse{Pst@TubeEssais@bouchon#1}}%
+%
+\newif\ifPst@TubeEssais@tubeDroit
+\define@key[psset]{pst-labo}{tubeDroit}[true]{\@nameuse{Pst@TubeEssais@tubeDroit#1}}
+
+\newif\ifPst@TubeEssais@tubeCoude
+\define@key[psset]{pst-labo}{tubeCoude}[true]{\@nameuse{Pst@TubeEssais@tubeCoude#1}}
+
+\newif\ifPst@TubeEssais@tubeCoudeU
+\define@key[psset]{pst-labo}{tubeCoudeU}[true]{\@nameuse{Pst@TubeEssais@tubeCoudeU#1}}
+
+\newif\ifPst@TubeEssais@tubeCoudeUB
+\define@key[psset]{pst-labo}{tubeCoudeUB}[true]{\@nameuse{Pst@TubeEssais@tubeCoudeUB#1}}
+
+\newif\ifPst@TubeEssais@tubeRecourbe
+\define@key[psset]{pst-labo}{tubeRecourbe}[true]{\@nameuse{Pst@TubeEssais@tubeRecourbe#1}}
+
+\newif\ifPst@TubeEssais@tubeRecourbe@Court
+\define@key[psset]{pst-labo}{tubeRecourbeCourt}[true]{\@nameuse{Pst@TubeEssais@tubeRecourbe@Court#1}}
+
+\newif\ifPst@TubeEssais@DoubleTube
+\define@key[psset]{pst-labo}{doubletube}[true]{\@nameuse{Pst@TubeEssais@DoubleTube#1}}
+
+\newif\ifPst@TubeEssais@Refrigerant@Boulles
+\define@key[psset]{pst-labo}{refrigerantBoulles}[true]{\@nameuse{Pst@TubeEssais@Refrigerant@Boulles#1}}
+
+\newif\ifPst@TubeEssais@Pince
+\define@key[psset]{pst-labo}{pince}[true]{\@nameuse{Pst@TubeEssais@Pince#1}}%
+
+\newif\ifpst@barbotage
+\define@key[psset]{pst-labo}{barbotage}[true]{\@nameuse{pst@barbotage#1}}%
+
+\newif\ifpst@recuperationGaz
+\define@key[psset]{pst-labo}{recuperationGaz}[true]{\@nameuse{pst@recuperationGaz#1}}%
+
+\newif\ifpst@tubeSeul
+\define@key[psset]{pst-labo}{tubeSeul}[true]{\@nameuse{pst@tubeSeul#1}}%
+
+\newif\ifpst@tubeDegagementDroit
+\define@key[psset]{pst-labo}{tubeDegagementDroit}[true]{\@nameuse{pst@tubeDegagementDroit#1}}%
+
+\newif\ifpst@becBunsen
+\define@key[psset]{pst-labo}{becBunsen}[true]{\@nameuse{pst@becBunsen#1}}%
+
+\define@key[psset]{pst-labo}{Numero}[true]{\@namedef{pst@Numero}{#1}}%
+
+\newif\ifPst@Etiquette
+\define@key[psset]{pst-labo}{etiquette}[true]{\@nameuse{Pst@Etiquette#1}}%
+
+\newif\ifPst@Agitateur@Magnetique
+\define@key[psset]{pst-labo}{agitateurMagnetique}[true]{\@nameuse{Pst@Agitateur@Magnetique#1}}%
+
+% Straight or oblique tube
+\define@key[psset]{pst-labo}{tubePenche}{%
+ \pst@cntg=#1\relax
+ % tubePenche must be between -65 and 65
+ \ifnum\pst@cntg<-65
+ \typeout{Angle must be >=-65 and not `\the\pst@cntg'. Value -65 forced.}%
+ \pst@cntg=65
+ \fi%
+ \ifnum\pst@cntg>65
+ \typeout{Angle must be <=65 and not `\the\pst@cntg'. Value 65 forced.}%
+ \pst@cntg=65
+ \fi%
+ \edef\psk@TubeEssais@tubePenche{\the\pst@cntg}}
+% Level of liquids
+\define@key[psset]{pst-labo}{niveauLiquide1}{\@namedef{psk@TubeEssais@niveauLiquide1}{#1}}
+\define@key[psset]{pst-labo}{niveauLiquide2}{\@namedef{psk@TubeEssais@niveauLiquide2}{#1}}
+\define@key[psset]{pst-labo}{niveauLiquide3}{\@namedef{psk@TubeEssais@niveauLiquide3}{#1}}
+% Aspect of liquids
+\define@key[psset]{pst-labo}{aspectLiquide1}{\@namedef{psk@TubeEssais@aspectLiquide1}{#1}}
+\define@key[psset]{pst-labo}{aspectLiquide2}{\@namedef{psk@TubeEssais@aspectLiquide2}{#1}}
+\define@key[psset]{pst-labo}{aspectLiquide3}{\@namedef{psk@TubeEssais@aspectLiquide3}{#1}}
+% Substance
+\define@key[psset]{pst-labo}{substance}{\def\@tempa{#1}\let\psk@TubeEssais@Subtance\@tempa}
+%Solides
+\define@key[psset]{pst-labo}{solide}{\def\@tempa{#1}\let\psk@TubeEssais@Solide\@tempa}
+%
+% 0->TUBE 1->BALLON 2->BECHER 3->ERLEN 4->FLACON 5->fioleJauge 6->Verre
+\def\pst@@TUBE{tube}
+\def\pst@@BALLON{ballon}
+\def\pst@@BECHER{becher}
+\def\pst@@ERLEN{erlen}
+\def\pst@@FLACON{flacon}
+\def\pst@@fioleJauge{fioleJauge}
+\def\pst@@Verre{verre}
+%
+\define@key[psset]{pst-labo}{glassType}{%
+ \def\pst@tempA{#1}
+ \edef\psk@glassType{%
+ \ifx\pst@@TUBE\pst@tempA 0 \else % TUBE
+ \ifx\pst@@BALLON\pst@tempA 1 \else % BALLON
+ \ifx\pst@@BECHER\pst@tempA 2 \else % BECHER
+ \ifx\pst@@ERLEN\pst@tempA 3 \else % ERLEN
+ \ifx\pst@@FLACON\pst@tempA 4 \else % FLACON
+ \ifx\pst@@fioleJauge\pst@tempA 5 \else % fioleJauge
+ \ifx\pst@@Verre\pst@tempA 6 \else 0 % Verre
+ \typeout{pst-labo: unknown glassType -> #1}
+ \typeout{ using type "tube" instead.}
+ \fi\fi\fi\fi\fi\fi\fi% % default is tube
+}}
+%
+% Default values
+\newpsstyle{aspectLiquide1}{linestyle=none,fillstyle=solid,fillcolor=cyan}
+\newpsstyle{aspectLiquide2}{linestyle=none,fillstyle=solid,fillcolor=yellow}
+\newpsstyle{aspectLiquide3}{linestyle=none,fillstyle=solid,fillcolor=magenta}
+\newpsstyle{BilleThreeD}{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradend=white,GradientCircle=true}
+\newpsstyle{Champagne}{linestyle=none,fillstyle=solid,fillcolor=Beige}
+\newpsstyle{Sang}{linestyle=none,fillstyle=solid,fillcolor=red}
+\newpsstyle{Cobalt}{linewidth=0.2,fillstyle=solid,fillcolor=blue}
+\newpsstyle{Huile}{linestyle=none,fillstyle=solid,fillcolor=yellow}
+\newpsstyle{Vinaigre}{linestyle=none,fillstyle=solid,fillcolor=magenta}
+\newpsstyle{Diffusion}{linestyle=none,fillstyle=gradient,gradmidpoint=0}
+\newpsstyle{DiffusionMelange2}{fillstyle=gradient,gradbegin=white,gradend=red,gradmidpoint=0,linecolor=red}
+\newpsstyle{flammeEtGrille}{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradbegin=OrangePale,gradend=yellow}
+\newpsstyle{rayuresJaunes}{fillstyle=hlines,linecolor=yellow,hatchcolor=yellow}
+\newpsstyle{DiffusionBleue}{fillstyle=gradient,gradmidpoint=0,linestyle=none,gradbegin=green,gradend=cyan}
+
+
+\psset[pst-labo]{glassType=tube,bouchon=false,tubeDroit=false,tubeCoude=false,tubePenche=0,substance=\relax,%
+ niveauLiquide1=50,aspectLiquide1=aspectLiquide1,%
+ niveauLiquide2=0,aspectLiquide2=aspectLiquide2,%
+ niveauLiquide3=0,aspectLiquide3=aspectLiquide3,barbotage=false,tubeSeul=false,%
+ tubeDegagementDroit=false,becBunsen=true,tubeCoudeU=false,tubeCoudeUB=false,%
+ tubeRecourbe=false,tubeRecourbeCourt=false,%
+ pince=false,refrigerantBoulles=false,%
+ doubletube=false,recuperationGaz=false,Numero={},etiquette=false,%
+ agitateurMagnetique=true,solide=\relax,%
+ couleurReactif=OrangePale,niveauReactif=2,burette=true,%
+ couleurReactifBurette=OrangeTresPale,niveauReactifBurette=20,%
+ reactifBurette={},reactifBecher={},phmetre=false,%
+ CouleurDistillat=yellow,AspectMelange=DiffusionBleue}
+
+%
+\def\pstDosage{\pst@object{pst@Dosage}}
+\def\pst@Dosage@i{%
+ \addbefore@par{dimen=middle}%
+ \begin@SpecialObj
+ \ifPst@burette
+ \ifpst@dosage@PHmetre\pspicture(-5,0)(3,16)\else\pspicture(-2,0)(2,16)\fi
+ \else
+ \ifpst@dosage@PHmetre\pspicture(-5,0)(3,5)\else\pspicture(-2,0)(2,5)\fi% without any additional object
+ \fi
+ \rput(0,3.5){\pstBallon}%
+ \ifPst@burette\rput(0,4.5){%
+ \psclip{\pscustom[linestyle=none]{\pst@burette@corps}}
+ \psframe*[linecolor=\psk@Burette@CouleurReactif](-1,-1)(! 1 \the\pst@cnta\space 0.32 mul 2.68 add)
+ \endpsclip}
+ \fi%
+ \psset{linewidth=0.053}%
+ \ifPst@burette\rput(0,4.5){\pst@burette@corps\pst@burette@robinet\pst@burette@graduation}\fi%
+ \ifpst@dosage@PHmetre\rput(-3,0){\pst@dosage@pHmetre}\fi%
+ \ifPst@Agitateur@Magnetique
+ \rput(0,1.5){\pst@dosage@aimant}%
+ \rput(0,0){\pst@dosage@support}\else\psframe(-1.5,0)(1.5,1.5)%
+ \fi%
+ \ifPst@burette\uput[0](2,11){\psk@Reactif@Burette}\fi%
+ \uput[0](2,3.5){\psk@Reactif@Becher}%
+ \endpspicture%
+ \end@SpecialObj%
+}
+%
+\def\pstpipette{\pst@object{pst@pipette}}
+\def\pst@pipette@i{%
+ \addbefore@par{dimen=middle}%
+ \begin@SpecialObj
+ \pspicture(-1,-1)(1,6)%\psgrid[subgriddiv=0,gridcolor=red]%
+ \psclip{%
+ \pscustom[linestyle=none]{\pst@pipette@corps\pst@goutte}}
+ \psframe*[linecolor=\psk@pipette@couleurReactif](-1,-2)(! 1 \the\pst@cntg\space 2 div)%
+ \endpsclip%
+ \pst@pipette@corps%
+ \pst@goutte%
+ \endpspicture
+ \end@SpecialObj%
+}%
+
+% To show liquids in the eprouvette
+\def\pst@Eprouvette@Liquide#1#2#3{%
+ \pspolygon[style=#2]%
+ (! -4 4.5 #1 mul 100 div #3 cos mul)(-4,-1)(5,-1)(! 5 4.5 #1 mul 100 div #3 cos mul)}
+% To show liquids in the tube
+\def\pst@TubeEssais@Liquide#1#2#3{%
+ \pspolygon[style=#2](! -4 3 #1 mul 100 div #3 cos mul)(-4,-1)(5,-1)(! 5 3 #1 mul 100 div #3 cos mul)}
+
+\def\pstEprouvette{\pst@object{pst@Eprouvette}}
+\def\pst@Eprouvette@i{{%
+ \addbefore@par{dimen=middle}%
+ \begin@SpecialObj
+ \pspicture(-2,0)(2,6)
+ \psclip{\rput{\psk@TubeEssais@tubePenche}{%
+ \pscustom[linestyle=none]{\pst@eprouvette@corps}}}
+ \multido{\iLiquide=\@ne+\@ne}{\thr@@}{%
+ \ifnum\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname>\z@
+ \pst@Eprouvette@Liquide%
+ {\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname}%
+ {\csname psk@TubeEssais@aspectLiquide\iLiquide\endcsname}
+ {\psk@TubeEssais@tubePenche}%
+ \fi%
+ }%
+ \psk@TubeEssais@Subtance
+ \endpsclip
+ \rput{\psk@TubeEssais@tubePenche}{
+ \pst@eprouvette@corps\pst@eprouvette@pied{\psset{linewidth=0.02}\pst@eprouvette@graduation}
+ \rput(0,5){\pst@eprouvette@rebord}}
+ \endpspicture
+ \end@SpecialObj%
+}}
+
+\def\pstDistillation{\pst@object{pst@Distillation}}
+\def\pst@Distillation@i{\@ifnextchar({\pst@Distillation@ii}{\pst@Distillation@ii(-4,-10)(8,7)}}%
+\def\pst@Distillation@ii(#1,#2)(#3,#4){%
+ \begin@SpecialObj%
+ \pspicture(#1,#2)(#3,#4)
+ \rput(-3,-7){\pst@DistillationFractionnee}
+ \endpspicture%
+ \end@SpecialObj%
+}
+%
+\def\pstEntonnoir{\pst@object{pst@Entonnoir}}
+\def\pst@Entonnoir@i{{%
+ \addbefore@par{dimen=middle}%
+ \begin@SpecialObj%
+ \pspicture(-2,-2)(2,5)%\psgrid[subgriddiv=0,gridcolor=red]%
+ \rput(0,0){\pstTubeEssais} \rput(0,1.5){\pst@Entonnoir@Corps}%
+ \endpspicture%
+ \end@SpecialObj%
+}}
+%
+%
+\def\pstTubeEssais{\pst@object{pst@TubeEssais}}
+\def\pst@TubeEssais@i{{%
+ \addbefore@par{dimen=midle}
+ \begin@SpecialObj
+ \ifPst@TubeEssais@tubeCoude\pspicture(-1,0)(6,4)\else
+ \ifnum\psk@TubeEssais@tubePenche=0 \pspicture(-1.5,0)(1.5,4)\else
+ \ifnum\psk@TubeEssais@tubePenche>0 \pspicture(-3,0)(1,4)\else
+ \ifnum\psk@TubeEssais@tubePenche<0 \pspicture(-1,0)(3,4)\else
+ \pspicture(-2,0)(2,4)%
+ \fi\fi\fi\fi
+% 0->TUBE 1->BALLON 2->BECHER 3->ERLEN 4->FLACON 5->fioleJauge 6->Verre
+ \psclip{%
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \pscustom[linestyle=none]{%
+ \ifcase\psk@glassType\pst@TubeEssais@Corps\or %0
+ \pst@ballon\or\pst@Becher@Corps\or\pst@Erlen@Corps\or\pst@Flacon@Corps\or
+ \pst@FIOLEJAUGE\or\pst@Verre@Corps\fi}}%
+ \psframe[linestyle=none](-3,-1)(!
+ 5 3 \@nameuse{psk@TubeEssais@niveauLiquide1}\space mul 100 div
+ \psk@TubeEssais@tubePenche\space cos mul)%
+ }%
+ \multido{\iLiquide=\@ne+\@ne}{\thr@@}{%
+ \ifnum\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname>\z@%
+ \pst@TubeEssais@Liquide%
+ {\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname}%
+ {\csname psk@TubeEssais@aspectLiquide\iLiquide\endcsname}%
+ {\psk@TubeEssais@tubePenche}
+ \fi%
+ }%
+ \psk@TubeEssais@Subtance%
+ \psk@TubeEssais@Solide%
+ \endpsclip%
+% \psk@TubeEssais@Solide%
+ \rput{\psk@TubeEssais@tubePenche}(0,0){%
+ \ifPst@Etiquette\rput(0,2){\psframebox[linestyle=none,%
+ fillstyle=solid,fillcolor=GrisTresClair]{\pst@Numero}}\fi%
+ \ifcase\psk@glassType\pst@TubeEssais@Corps\or\pst@ballon\or
+ \pst@Becher@Corps\pst@RebordBecher\or
+ \pst@Erlen@Corps\psellipse[linewidth=0.07](0,3.5)(0.6,0.1)\or
+ \pst@Flacon@Corps\psellipse[linewidth=0.07](0,3.5)(0.6,0.1)\or
+ \pst@FIOLEJAUGE\or\pst@Verre@Corps\pst@Verre@Pied%
+ \fi
+ \ifPst@TubeEssais@tubeDroit\rput(0,3.5){\pst@TubeEssais@Droit}\else
+ \ifPst@TubeEssais@tubeCoude\rput(0,3.5){\pst@TubeEssais@Coude}\else
+ \ifPst@TubeEssais@tubeCoudeU\rput(0,3.5){\pst@TubeEssais@CoudeU}\else
+ \ifPst@TubeEssais@bouchon\rput(0,3.5){\pst@TubeEssais@Bouchon}
+ \fi\fi\fi\fi
+ \ifPst@TubeEssais@Pince\rput(0,3.2){\pst@TubeEssais@Pince}\fi%
+ }%
+ \endpspicture%
+ \end@SpecialObj%
+}}
+%
+\def\pstChauffageTube{\pst@object{pst@ChauffageTube}}
+\def\pst@ChauffageTube@i{%
+ \begin@SpecialObj%
+ \ifpst@tubeSeul\pspicture(-2,-5)(5,4)\else\pspicture(-3,-5)(10,4)\fi%
+ \ifpst@barbotage%
+ \rput(2.5,2.5){%
+ \pstTubeEssais[tubeCoude=true,tubePenche=-60]}%
+ \rput(8.2,-3){\pstTubeEssais[niveauLiquide1=50,tubePenche=30,pince=false,%
+ niveauLiquide1=70,glassType=tube,tubeCoude=false,%
+ aspectLiquide1=Champagne,substance={\pstBullesChampagne[20]}]}%
+ \else%
+ \ifcase\psk@glassType
+ \ifpst@tubeSeul\rput(1.5,2.5){\psset{tubePenche=-60}\pstTubeEssais}\else%
+ \ifPst@TubeEssais@tubeCoude\rput(2,2.5){\psset{tubePenche=-60}\pstTubeEssais}\else%
+ \rput(1,2.5){\psset{tubePenche=-60}\pstTubeEssais}%
+ \fi\fi%
+ \or\rput(2,2.5){\psset{tubePenche=-60}\pstTubeEssais}% ballon
+ \else\rput(1,2.5){\psset{tubePenche=-60}\pstTubeEssais}%
+ \fi%
+ \fi%
+ \ifpst@becBunsen\rput(1,-5){\pst@BecBunsen}\fi%
+ \endpspicture%
+ \end@SpecialObj%
+}%
+%%%%%%%%%%%%%%%ù fin ChauffageTube %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 0->TUBE 1->BALLON 2->BECHER 3->ERLEN 4->FLACON 5->fioleJauge 6->Verre
+\def\pstChauffageBallon{\pst@object{pst@ChauffageBallon}}
+\def\pst@ChauffageBallon@i{%
+ \begin@SpecialObj
+ \ifpst@becBunsen\pst@cnth=-5 \else\pst@cnth=1 \fi
+ \ifnum\psk@glassType=2 \pspicture(-2,\pst@cnth)(3,5)\else % becher
+ \ifnum\psk@glassType=3 \pspicture(-2,\pst@cnth)(4,6)\else % erlen
+ \ifpst@barbotage\pspicture(-2,\pst@cnth)(6,7)\else
+ \ifPst@TubeEssais@tubeRecourbe@Court\pspicture(-2,0)(9,8)\else
+ \ifPst@TubeEssais@DoubleTube\pspicture(-2,0)(9,8)\else\pspicture(-2,\pst@cnth)(10,7)
+ \fi\fi\fi\fi\fi
+ %\psgrid[subgriddiv=0,gridcolor=red]%
+ %\psset{aspectLiquide1=Champagne,substance={\pstBullesChampagne[20]}}%
+ \ifpst@recuperationGaz%
+ \ifPst@TubeEssais@tubeRecourbe%
+ \rput(8,-5){\pst@Cristallisoir\pst@ReposeTube%
+ \rput(0,0.7){\pst@TubeRenverse\pstbulles}}\else%
+ \ifPst@TubeEssais@tubeRecourbe@Court\pst@becBunsenfalse%
+ \rput(6,1){\pst@Cristallisoir\pst@ReposeTube%
+ \rput(0,0.7){\pst@TubeRenverse\pstbulles}}\else%
+ \ifPst@TubeEssais@DoubleTube\pst@becBunsenfalse%
+ \rput(6.2,1){\pst@Cristallisoir\pst@ReposeTube%
+ \rput(0,0.7){\pst@TubeRenverse\pstbulles}}%
+ \fi\fi\fi\fi%
+ \rput(1,3){\pstBallon}%
+ \ifpst@barbotage%
+ \rput(5.3,-3){\pstTubeEssais[niveauLiquide1=50,niveauLiquide1=70,glassType=tube]}%
+ \fi %
+ \ifpst@becBunsen\rput(1,-5){\psset{dimen=middle,linewidth=0.053}\pst@BecBunsenGrille}\fi%
+ \endpspicture%
+ \end@SpecialObj%
+}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 0->TUBE 1->BALLON 2->BECHER 3->ERLEN 4->FLACON 5->fioleJauge 6->Verre
+\def\pstBallon{\pst@object{pst@Ballon}}
+\def\pst@Ballon@i{%
+ \begin@SpecialObj
+ \ifPst@TubeEssais@Refrigerant@Boulles\pspicture(-2,0)(2,12)\else\pspicture(-2,0)(2,4)\fi
+ \psclip{\rput{\psk@TubeEssais@tubePenche}{%
+ \pscustom[linestyle=none]{%
+ \ifcase\psk@glassType\pst@ballon\or\pst@ballon\or\pst@Becher@Corps\or\pst@Erlen@Corps\or
+ \pst@Flacon@Corps\else\pst@ballon\fi% ballon is default
+ }%
+ }%
+ \psframe[linestyle=none](-3,-1)(!
+ 4 3
+ \@nameuse{psk@TubeEssais@niveauLiquide1}\space mul 100 div
+ \psk@TubeEssais@tubePenche\space cos mul)}
+ \multido{\iLiquide=\@ne+\@ne}{\thr@@}{%
+ \ifnum\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname>\z@
+ \pst@TubeEssais@Liquide{\csname psk@TubeEssais@niveauLiquide\iLiquide\endcsname}%
+ {\csname psk@TubeEssais@aspectLiquide\iLiquide\endcsname}%
+ {\psk@TubeEssais@tubePenche}%
+ \fi%
+ }%
+ \psk@TubeEssais@Subtance
+ \psk@TubeEssais@Solide%
+ \endpsclip%
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \ifPst@Etiquette\rput(0,1.5){\psframebox[linestyle=none,fillstyle=solid,%
+ fillcolor=GrisTresClair]{\pst@Numero}}%
+ \fi%
+ \ifcase\psk@glassType\pst@ballon\or\pst@ballon\or\pst@Becher@Corps\pst@RebordBecher\or
+ \pst@Erlen@Corps\psellipse[linewidth=0.07](0,3.5)(0.6,0.1)\or
+ \pst@Flacon@Corps\psellipse[linewidth=0.07](0,3.5)(0.6,0.1)\else\pst@ballon
+ \fi
+ \ifPst@TubeEssais@tubeDroit\rput(0,3.5){\pst@TubeEssais@Droit}\else
+ \ifPst@TubeEssais@tubeCoude\rput(0,3.5){\pst@TubeEssais@Coude}\else
+ \ifPst@TubeEssais@tubeCoudeU\rput(0,3.5){\pst@TubeEssais@CoudeU}\else
+ \ifPst@TubeEssais@tubeCoudeUB\rput(0,3.5){\pst@TubeEssais@CoudeUB}\else
+ \ifPst@TubeEssais@tubeRecourbe\rput(0,3.5){\pst@TubeRecourbe}\else
+ \ifPst@TubeEssais@tubeRecourbe@Court\rput(0,3.5){\pst@TubeRecourbe@Court}\else
+ \ifPst@TubeEssais@bouchon\rput(0,3.5){\pst@TubeEssais@Bouchon}\else
+ \ifPst@TubeEssais@DoubleTube\rput(0,3.5){\pst@TubeEssais@DoubleTube}\else
+ \ifPst@TubeEssais@Refrigerant@Boulles
+ \pst@Ballon@Reflux\rput(0,3.5){\pst@Refrigerant@Boulles}\pst@ChauffeBallon
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ }
+ \endpspicture%
+ \end@SpecialObj%
+}
+%
+\def\pstBullesChampagne{\@ifnextchar[{\pst@BullesChampagne@i}{\pst@BullesChampagne@i[25]}}%
+\def\pst@BullesChampagne@i[#1]{{%
+ \multido{\iBulle=1+1}{#1}{%
+ \setrandim{\BulleX}{-1pt}{1pt}
+ \setrandim{\BulleY}{0pt}{2pt}
+ \pst@dimA=\BulleY
+ \ifdim\BulleY<1pt
+ \multiply\pst@dimA by 3
+ \else\ifdim\BulleY<2pt
+ \multiply\pst@dimA by 2
+ \else\multiply\pst@dimA by 1
+ \fi\fi%
+ \rput{\psk@TubeEssais@tubePenche}{%
+% \psdot[dotscale=\pointless\pst@dimh,dotstyle=o](!
+ \pscircle(!
+ \pointless\BulleX\space \pointless\BulleY\space
+ \csname psk@TubeEssais@niveauLiquide1\endcsname\space mul 100 div){\BulleY}%
+ }%
+ }
+}}
+%
+%%%%%%%%% bulles pour tube renversé %%%%%%%%%%%%%
+\def\pstbulles{\@ifnextchar[{\pst@bulles@i}{\pst@bulles@i[25]}}%
+\def\pst@bulles@i[#1]{{%
+ \multido{\iBulle=1+1}{#1}{%
+ \setrandim{\BulleX}{-0.1pt}{0.1pt} \setrandim{\BulleY}{0.15pt}{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 1.5 mul)}}
+}}
+%
+%
+\def\pstFilaments{\@ifnextchar[{\pst@Filaments@i}{\pst@Filaments@i[5]}}%
+\def\pst@Filaments@i[#1]#2{{%
+ \multido{\iFilament=1+1}{#1}{%
+ \setrandim{\pst@FilamentWidth}{0pt}{0.05pt}
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \pscustom[linewidth=\pointless\pst@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)}}}%
+}}
+%
+\def\pst@Clous@{{%
+ \psarc[unit=0.5,linewidth=0.1,linecolor=blue](0,0.5){.4}{190}{260}
+ \psline[unit=0.5,linecolor=blue](-0.28,0.2)(0.5,1)}}
+%
+%
+\def\pstClouFer{\@ifnextchar[{\pst@ClouFer@i}{\pst@ClouFer@i[60]}}%
+\def\pst@ClouFer@i[#1]{{%
+ \multido{\iClou=1+1}{#1}{%
+ \setrandim{\ClouX}{-1cm}{1cm} \setrandim{\ClouY}{-.2cm}{0.4cm}
+ \setrannum{\lab@AngleRotation}{-90}{90}
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \rput{\the\lab@AngleRotation}(\ClouX,\ClouY){\pst@Clous@}}}%
+}}
+%
+\def\pst@Cuivre{{
+ \psbezier[unit=0.5,linewidth=0.1,linecolor=Copper]%
+ (.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)}}
+%
+\def\pstTournureCuivre{\@ifnextchar[{\pst@TournureCuivre@i}{\pst@TournureCuivre@i[30]}}%
+\def\pst@TournureCuivre@i[#1]{{%
+ \multido{\iTournure=1+1}{#1}{%
+ \setrandim{\TournureX}{-1cm}{1cm} \setrandim{\TournureY}{-.2cm}{0.3cm}
+ \setrannum{\lab@AngleRotation}{-180}{180}
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \rput{\the\lab@AngleRotation}(\TournureX,\TournureY){\pst@Cuivre}}}%
+}}
+
+%%%%%%%%%%%% grenaille de zinc %%%%%%%%%%%%%%%%%%
+\def\pst@Zinc{{%
+ \pscurve[unit=0.5,fillstyle=solid,fillcolor=GrisClair](0,0)(-0.25,0.25)(0,.5)(0.25,0.75)(0.5,0.5)(0.15,0.4)(0.,0)}}
+%
+\def\pstGrenailleZinc{\@ifnextchar[{\pst@GrenailleZinc@i}{\pst@GrenailleZinc@i[25]}}%
+\def\pst@GrenailleZinc@i[#1]{{%
+ \multido{\iGrenaille=1+1}{#1}{%
+ \setrandim{\GrenailleX}{-1cm}{1cm} \setrandim{\GrenailleY}{-.2cm}{0.3cm}
+ \setrannum{\lab@AngleRotation}{-180}{180}
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \rput{\the\lab@AngleRotation}(\GrenailleX,\GrenailleY){\pst@Zinc}}}%
+}}
+
+%%%%%%%%%%%%%% Vapeurs %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%% Bulles3D%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\pstBilles{\@ifnextchar[{\pst@Billes@i}{\pst@Billes@i[50]}}%
+\def\pst@Billes@i[#1]{{%
+ \multido{\IBULLE=1+1}{#1}{%
+ \setrandim{\BulleX}{-1.5\psunit}{1.5\psunit}
+ \setrandim{\BulleY}{0\psunit}{3\psunit}
+ \pst@dimh=\BulleY
+ \setrandim{\RAYONBULLE}{0.01\psunit}{0.1\psunit}
+ \ifdim\BulleY>2\psunit \multiply \RAYONBULLE by 3
+ \else\ifdim\BulleY < 2\psunit \ifdim\BulleY >1\psunit \multiply \RAYONBULLE by 2\fi
+ \else\multiply \RAYONBULLE by 1
+ \fi\fi%
+ \rput{\psk@TubeEssais@tubePenche}{%
+ %\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradend=white,GradientCircle=true}
+ \pscircle[style=BilleThreeD](\BulleX,\BulleY){\RAYONBULLE}}}%
+}}
+%%%%%%%%%%%%%%%%%%% Bulles2D%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\pstBULLES{\@ifnextchar[{\pst@BULLES@i}{\pst@BULLES@i[50]}}%
+\def\pst@BULLES@i[#1]#2{{%
+ \multido{\IBULLE=1+1}{#1}{%
+ \setrandim{\BulleX}{-1.5\psunit}{1.5\psunit}
+ \setrandim{\BulleY}{0\psunit}{3\psunit}
+ \pst@dimh=\BulleY
+ \setrandim{\RAYONBULLE}{0.01\psunit}{0.1\psunit}
+ \ifdim\BulleY>2\psunit \multiply \RAYONBULLE by 3
+ \else\ifdim\BulleY < 2\psunit \ifdim\BulleY >1\psunit \multiply \RAYONBULLE by 2\fi
+ \else\multiply \RAYONBULLE by 1
+ \fi\fi
+ \rput{\psk@TubeEssais@tubePenche}{%
+ \pscircle[fillstyle=solid,linewidth=0.2\pslinewidth,linecolor=#2](\BulleX,\BulleY){\RAYONBULLE}}}%
+}}
+\iffalse
+%%%%%%%%%% solides %%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\pstTournureCuivre{%
+ \rput{\psk@TubeEssais@tubePenche}{\psbezier[linewidth=0.1,linecolor=Copper](.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)}}
+\def\pstClouFer{%
+ \rput{\psk@TubeEssais@tubePenche}{{\psset{linecolor=blue}
+ \psarc[linewidth=0.1](0,0.5){.4}{190}{260} \psline(-0.28,0.2)(0.5,1)}}}
+\def\pstGrenailleZinc{%
+ \rput{\psk@TubeEssais@tubePenche}{\pscurve[fillstyle=solid,fillcolor=GrisClair]%
+ (0,0)(-0.25,0.25)(0,.5)(0.25,0.75)(0.5,0.5)(0.15,0.4)(0.,0)}}
+\fi
+
+\catcode`\@=\PstAtCode\relax
+\endinput