\documentclass{article}
\usepackage{pst-V3D,pst-grad}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}\input{cone_object.tex}
\input{cylindre_object.tex}
\input{cube_object.tex}
\input{sphere_object.tex}
\input{sphericalcap_object.tex}
\def\Rectangle(#1,#2)(#3,#4){
newpath
#1 #2 moveto
#3 #2 lineto
#3 #4 lineto
#1 #4 lineto
closepath }
\definecolor{terrain}{hsb}{1 .5 0.5}
\definecolor{ciel}{hsb}{0.8 .5 0.2}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{pspicture*}(-8,-6)(7,4)
\psframe*[linecolor=ciel](-8,-6)(7,4)
\psset{THETA=-20,PHI=25,Dobs=20,Decran=12,d=1e6,unitgrid=5,interior=true,todraw=false}
\psset{thetaLight=20,phiLight=10,dLight=1e9,hsbcolor=0.04 0.5}
\planThreeDput[fillstyle=solid,fillcolor=terrain,normale=90 -90]{\Rectangle(-12,-10)(12,6)}
\planThreeDput[normale=90 -90,fontscale=0.5]{\Grille(-12,-10)(12,6)}
\psCylindre[nF=96,nH=2](-8.5,0,0){2.5}{0.5}
\psCone[nF=96,fracHeight=0.5](-8.5,0,0.5){2.5}{6}
\psCylindre[nF=96,nH=2,interior=true](-8.5,0,3.5){1.25}{1.5}
\psCylindre[nF=96](-1.5,-5.5,0){1}{1.75}
\psCapSphere[startlatitude=45,linestyle=none](-1.5,-5.5,0.75){2 sqrt}
\psCylindre[nF=96](4.4,-5.5,0){1}{1.75}
\psCapSphere[startlatitude=45,linestyle=none](4.4,-5.5,0.75){2 sqrt}
\psCube[A=3,B=1.5,C=1.5,RotZ=-77](-2,-2.5,0.75)
\psCube[A=3,B=1.5,C=1.5,RotZ=-77](3.5,-2.5,0.75)
\psCylindre[nF=96](8.5,0,0){2.5}{0.5}
\psCone[nF=96,fracHeight=0.5](8.5,0,0.5){2.5}{6}
\psCylindre[nF=96,interior=true](8.5,0,3.5){1.25}{1.5}
\psset{linestyle=none,fillstyle=gradient,gradbegin=red!60,gradend=red!10,gradmidpoint=0}
\multido{\nx=-8.5+17}{2}{\psSphere(\nx,0,5){0.25}
\psSphere(\nx\space 0.5 add,0,5.75){0.5}
\psSphere(\nx\space 1.5 add,0,6.5){0.75}
\psSphere(\nx\space 2.5 add,0,7.5){1}}
\psset{normale=90 0}
\textThreeDput[linewidth=0,xO=0,yO=-11.5,linecolor=red,fillstyle=solid,fillcolor=red,PSfont=Optima]{Civaux}
\end{pspicture*}
\end{center}
\end{document}