summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex')
-rw-r--r--graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex127
1 files changed, 127 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex b/graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex
index 040286b662..e82017c832 100644
--- a/graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex
+++ b/graphics/pstricks/contrib/pst-labo/tex/pst-laboObj.tex
@@ -689,3 +689,130 @@ gradbegin=OrangePale,gradend=yellow]%
\endpsclip
\pst@ballon
}
+
+\newpsstyle{AqueoPhase}{linestyle=none,fillstyle=solid,fillcolor={[cmyk]{0.215686,0.062745,0,0}}}
+\newpsstyle{OrganicPhase}{linestyle=none,fillstyle=solid,fillcolor={[cmyk]{0.223529,0.094118,0.501961,0}}}
+
+% robinet ouvert
+\newif\ifPst@OpenTap
+\define@key[psset]{pst-labo}{OpenTap}[true]{\@nameuse{Pst@OpenTap#1}}%
+%
+\def\pst@corpsAmpoule{%
+% corps de l'ampoule
+ \psline(-0.65,15)(-0.55,13.75)
+ \psbezier(-0.55,13.75)(-1.55,13.54)( -1.92,12.7)(-1.92,11.65)
+ \psbezier(-1.92,11.65)(-1.92,10.6)(-0.3,9.55)(-0.3,8.5)
+ \psline(-0.3,8.5)(-0.3,2)
+ \psbezier(-0.3,2)(-0.3,1.5)(-0.14,1.5)(-0.14,1)
+ \psline(-0.14,1)(-0.14,-1)
+ \psline(0.14,-1)(0.14,1)
+ \psbezier(0.14,1)(0.14,1.5)(0.3,1.5)(0.3,2)
+ \psline(0.3,2)(0.3,8.5)
+ \psbezier(0.3,8.5)(0.3,9.55)(1.92,10.6)(1.92,11.65)%
+ \psbezier(1.92,11.65)( 1.92,12.7)(1.55,13.54)(0.55,13.75)
+ \psline(0.55,13.75)(0.65,15)
+}%
+%
+% le contour pour contenir les liquides
+\def\pst@contourAmpouleClip{%
+% corps de l'ampoule pour clip
+ \moveto(-0.65,15)
+ \lineto(-0.55,13.75)
+ \curveto(-1.55,13.54)( -1.92,12.7)(-1.92,11.65)
+ \curveto(-1.92,10.6)(-0.3,9.55)(-0.3,8.5)
+ \lineto(-0.3,2)
+ \curveto(-0.3,1.5)(-0.14,1.5)(-0.14,1)%
+ \lineto(-0.14,-1)
+ \lineto(0.14,-1)
+ \lineto(0.14,1)
+ \curveto(0.14,1.5)(0.3,1.5)(0.3,2)
+ \lineto(0.3,8.5)
+ \curveto(0.3,9.55)(1.92,10.6)(1.92,11.65)
+ \curveto(1.92,12.7)(1.55,13.54)(0.55,13.75)
+ \lineto(0.65,15)
+}%
+%
+% bouchon de l'ampoule à décanter
+\def\pst@Bouchon{%
+ \pspolygon[linecap=1,linejoin=1,fillstyle=solid,fillcolor=gray!10,linecolor=gray](-0.67,15.25)(0.67,15.25)(0.57,14)(-0.57,14)
+ % oreille bouchon
+ \pscustom[linecap=1,linejoin=1,fillstyle=solid,fillcolor=gray!05,linecolor=gray]{%
+ \psarcn(0.555,15.365){0.1145}{-90}{180}
+ \psarc(0,15.92){0.67}{-45}{225}
+ \psarcn(-0.555,15.365){0.1145}{0}{-90}
+ \closepath
+ }}%
+% robinet ouvert
+% tap open
+\def\pst@TapOpen{%
+ \psframe[fillstyle=solid](-.2,0.5)(.2,1)
+ \psframe(-.2,0.4)(-.3,1.1)
+ \psframe(.2,0.4)(.3,1.1)
+ \pspolygon[linejoin=1](.3,0.6)(.4,0.6)(.5,0.3)(.9,0.3)(.9,1.2)(.5,1.2)(.4,0.9)(.3,0.9)
+ \pspolygon[fillstyle=solid,fillcolor=cyan!50](-.6,0.4)(-.85,0.6)(-.85,0.9)(-.6,1.1)(-.3,1.1)(-.3,0.4)
+ \psline(-0.6,0.4)(-0.6,1.1)
+ \psline(0.5,0.3)(0.5,1.2)
+}%
+ % robinet fermé
+ % tap open
+\def\pst@TapClosed{%
+ \psframe[fillstyle=solid](-.2,0.5)(.2,1)
+ \psframe(-.2,0.4)(-.3,1.1)
+ \psframe(.2,0.4)(.3,1.1)
+ \pscustom[linejoin=1]{%
+ \psarcn(0.35,0.6){0.05}{180}{90}
+ \psline(0.4,0.65)(0.9,0.65)(0.9,0.85)(0.35,0.85)
+ \psarcn(0.35,0.9){0.05}{-90}{180}
+ \closepath
+ }%
+ \psline(0.5,0.65)(0.5,0.85)
+ \pspolygon[fillstyle=solid,fillcolor=cyan!50](-.6,0.4)(-.85,0.6)(-.85,0.9)(-.6,1.1)(-.3,1.1)(-.3,0.4)
+ \psline(-0.6,0.4)(-0.6,1.1)
+}%
+% la macro ampoule à decanter = pstSeparateFunnel
+\def\pstSeparateFunnel{\pst@object{pst@SeparateFunnel}}
+\def\pst@SeparateFunnel@i{%
+ \addbefore@par{dimen=middle,niveauLiquide1=11,niveauLiquide2=12,linewidth=0.04}%
+ \begin@SpecialObj
+% les deux liquides
+ \psclip{\pscustom[linestyle=none]{\pst@contourAmpouleClip}}%
+ \psframe[style=AqueoPhase](-2,1)(2,\@nameuse{psk@TubeEssais@niveauLiquide1})%
+ \endpsclip%
+ \psclip{\pscustom[linestyle=none]{\pst@contourAmpouleClip}}%
+ \psframe[style=OrganicPhase](-2,\@nameuse{psk@TubeEssais@niveauLiquide1})(2,\@nameuse{psk@TubeEssais@niveauLiquide2})%
+ \endpsclip%
+ \ifPst@TubeEssais@bouchon\pst@Bouchon\fi
+ \pst@corpsAmpoule
+ \ifPst@OpenTap\pst@TapOpen\else\pst@TapClosed\fi
+% ouverture tube de coulée
+ \psellipse[fillstyle=solid,fillcolor=white](0,-1)(0.15,0.25)
+% rebord ampoule
+ \pscircle*[linecolor=darkgray](-0.675,15){0.03}
+ \pscircle*[linecolor=darkgray](0.675,15){0.03}
+ \psline[linecolor=darkgray](-0.65,15)(0.65,15)
+% join entre le col et l'ampule
+ \psline[linecolor=gray](-0.55,13.75)(0.55,13.75)
+ \end@SpecialObj%
+ }%
+%
+\def\pstSupport{%
+ \psset{dimen=m,linewidth=0.04}
+ \definecolor{woodcolor}{rgb}{0.957 0.84 0.69}
+ \definecolor{darkcolorwood}{rgb}{0.5 0.25 0}
+ \newpsstyle{woodcolor}{fillstyle=solid,fillcolor=woodcolor,linejoin=1}
+ \psframe[style=woodcolor](-2,-6)(5,-5)
+ %\psline(-2.,-5.5)(5,-5.5)
+ \psframe[style=woodcolor](2.75,2)(3.25,16)
+ \pscustom[style=woodcolor]{\psarc(2.75,1.5){0.5}{90}{180}
+ \psline(2.25,1.5)(2.25,-5)(3.75,-5)(3.75,1.5)
+ \psarc(3.25,1.5){0.5}{0}{90}}%
+ %\psline(-2,11.5)(-1.55,10.5)
+ \psline(2,11.5)(1.55,10.5)
+ \pspolygon[style=woodcolor](-2.5,11.5)(-2,11.5)(-1.55,10.5)(-2.5,10.5)
+ \pspolygon[style=woodcolor](4,11.5)(2,11.5)(1.55,10.5)(4,10.5)
+ \psframe(-2.5,10.5)(4,11.5)
+ \pscustom[style=woodcolor]{
+ \psline(4,11.2)(4.5,11.2)\psarcn(5,11){0.5385}{158.2}{-158.2}
+ \psline(4.5,10.8)(4,10.8)}
+ \psline(4.5,10.8)(4.5,11.2)
+}%