\documentclass{article}
\usepackage{pst-V3D,pst-grad}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}\input{hyperboloid_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*}(-6,-8)(9,8)
\psset{R=2.5,H=5,r=1.25}\psframe*[linecolor=ciel](-6,-8)(9,8)
\psset{THETA=-10,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}
\psCube[A=24,B=16,C=1,hsbcolor=0.04 1](0,0,-0.5)
\planThreeDput[normale=90 -90,fontscale=0.5]{\Grille(-12,-8)(12,8)}
\psCylindre[nF=96,nH=2](-8.5,0,0){2.5}{0.5}
\psHyperboloid[nF=96](-8.5,0,0.5)
\psCylindre[nF=96,nH=2](-8.5,0,5){1.25}{1}
\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}
\psHyperboloid[nF=96](8.5,0,0.5)
\psCylindre[nF=96,nH=2](8.5,0,5){1.25}{1}
\psset{linestyle=none,fillstyle=gradient,gradbegin=gray!50,gradend=red!50,gradmidpoint=0}
\multido{\nx=-8.5+17}{2}{\psSphere(\nx,0,6){0.25}
\psSphere(\nx\space 0.5 add,0,7){0.5}
\psSphere(\nx\space 1.5 add,0,7.5){0.75}
\psSphere(\nx\space 2.5 add,0,8.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}