\documentclass{article}
\usepackage{pst-massspring,pst-tools}
\usepackage{amsmath}
\pagestyle{empty}
\begin{document}
\def\DatsSystem{ % valeurs par défaut utilisées dans cet exemple
         /kR 7.5 def
         /L0 5 def
         /m1 0.5 def /m2 2 def
         /radius1 m1 1 3 div exp def /radius2 m2 1 3 div exp def
         /Gravity 9.8 def
         /dl0 m2 Gravity mul kR div def
         /mu m1 m2 mul m1 m2 add div def
         /w0 kR mu div sqrt 180 mul 6.283185 div def % en degrees
         /T0 6.283185 kR mu div sqrt div def % période
%         /t@ 0 def
         /z20 radius1 radius2 add L0 add m2 Gravity mul kR div add def
         /Z@ m2 Gravity mul kR div
            t@ w0 mul cos mul L0 add radius1 add radius2 add def
         /zG0 m2 z20 mul m1 m2 add div def
         /zG 0.5 Gravity mul t@ 2 exp mul zG0 add def
         /Z1 zG m2 m1 m2 add div Z@ mul sub def
         /Z2 Z@ Z1 add def
         /zR1 Z1 neg radius1 sub def
         /zR2 Z2 neg radius2 add def
% les tensions
         /Tension2 kR zR2 zR1 sub L0 add mul def
         /Tension1 kR zR2 zR1 sub L0 add mul neg def
}%
\begin{pspicture}(-2,4)(4,-12)
\psset{unit=1,dimen=middle}
\psclip{\pspolygon[linestyle=none](-1.5,3.5)(4,3.5)(4,0.5)(1.5,0.5)(1.5,-12)(-1.5,-12)}
\psSpring[t=0]%
\endpsclip%
\pstVerb{% 
         /t@ 0 def
         \DatsSystem
         }%
\psline{->}(0,0)(0,-13)
\uput[u](0,0){O}\uput[l](0,-13){z}
\uput{0.01}[l](0,0){$G_1(0)$}
\uput{0.01}[l](!0 Z2 neg){$G_2(0)$}
\psline[linestyle=dotted](0,0)(2,0)
\psline[linestyle=dotted](!0 Z2 neg)(!2 Z2 neg)
\psline[linestyle=dotted](!0 zR1)(!2 zR1)
\psline[linestyle=dotted](!0 zR2)(!2 zR2)
\psline[arrowsize=0.1,arrowinset=0.1]{<->}(!2 zR1)(!2 zR2)
\uput[r](!2 zR1 zR2 add 2 div){$l(0)$}
\uput[r](! 2 Z1 neg){$z_1(0)$}
\uput[r](! 2 Z2 neg){$z_2(0)$}
% les tensions 1 cm= 10 N
\psline[arrowsize=0.4,linecolor=blue,linewidth=0.1,arrowinset=0.1]{->}(!0 zR1)(!0 zR1 Tension1 10 div sub )
\psline[arrowsize=0.4,linecolor=blue,linewidth=0.1,arrowinset=0.1]{->}(!0 zR2)(!0 zR2 Tension2 10 div sub)
\psline[arrowsize=0.4,linecolor=red,doubleline,arrowinset=0.1]{->}(!0 z2 neg)(!0 Z2 neg m2 Gravity mul 10 div sub)
\psline[arrowsize=0.2,linecolor=red,doubleline,arrowinset=0.1]{->}(!0 z1 neg)(!0 Z1 neg m1 Gravity mul 10 div sub)
\psdot(!0 zG neg)\uput[l](!0 zG neg){$G(0)$}
\uput{0.5}[l](!0 zR1 Tension1 10 div sub ){$\blue\overrightarrow{T_1}$}
\uput{0.5}[l](!0 zR2 Tension2 10 div sub ){$\blue\overrightarrow{T_2}$}
\uput{0.2}[l](!0 Z2 neg m2 Gravity mul 10 div sub){$\red\text{m}_2\overrightarrow{g}$}
\uput{0.2}[l](!0 Z1 neg m1 Gravity mul 10 div sub){$\red\text{m}_1\overrightarrow{g}$}
%\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt,unit=1]%
\end{pspicture}
\begin{pspicture}(-2,4)(4,-12)
\psset{unit=1,dimen=middle}
\psclip{\pspolygon[linestyle=none](-1.5,3.5)(4,3.5)(4,0.5)(1.5,0.5)(1.5,-12)(-1.5,-12)}
\psSpring[t=0.5]%
\endpsclip
\pstVerb{%\pstVerb{%
         /t@ 0.5 def
         \DatsSystem
         }%
\psline{->}(0,0)(0,-13)
\uput[u](0,0){O}\uput[l](0,-13){z}
\uput{0.01}[l](! 0 Z1 neg){$G_1(t)$}
\uput{0.01}[l](!0 Z2 neg){$G_2(t)$}
\psline[linestyle=dotted](! 0 Z1 neg)(! 2 Z1 neg)
\psline[linestyle=dotted](!0 Z2 neg)(!2 Z2 neg)
\psline[linestyle=dotted](!0 zR1)(!2 zR1)
\psline[linestyle=dotted](!0 zR2)(!2 zR2)
\psline[arrowsize=0.1,arrowinset=0.1]{<->}(!2 zR1)(!2 zR2)
\uput[r](!2 zR1 zR2 add 2 div){$l(t)$}
\uput[r](! 2 Z1 neg){$z_1(t)$}
\uput[r](! 2 Z2 neg){$z_2(t)$}
% les tensions 1 cm= 10 N
\psline[arrowsize=0.4,linecolor=blue,linewidth=0.1,arrowinset=0.1]{->}(!0 zR1)(!0 zR1 Tension1 10 div sub )
\psline[arrowsize=0.4,linecolor=blue,linewidth=0.1,arrowinset=0.1]{->}(!0 zR2)(!0 zR2 Tension2 10 div sub)
\psline[arrowsize=0.4,linecolor=red,doubleline,arrowinset=0.1]{->}(!0 z2 neg)(!0 Z2 neg m2 Gravity mul 10 div sub)
\psline[arrowsize=0.2,linecolor=red,doubleline,arrowinset=0.1]{->}(!0 z1 neg)(!0 Z1 neg m1 Gravity mul 10 div sub)
\psdot(!0 zG neg)\uput{0.4}[l](!0 zG neg){$G(t)$}
\uput{0.5}[l](!0 zR1 Tension1 10 div sub ){$\blue\overrightarrow{T_1}$}
\uput{0.5}[l](!0 zR2 Tension2 10 div sub ){$\blue\overrightarrow{T_2}$}
\uput{0.2}[l](!0 Z2 neg m2 Gravity mul 10 div sub){$\red\text{m}_2\overrightarrow{g}$}
\uput{0.2}[l](!0 Z1 neg m1 Gravity mul 10 div sub){$\red\text{m}_1\overrightarrow{g}$}
%\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt,unit=1]%
\end{pspicture}

\end{document}
