\documentclass[a4paper]{article}
\usepackage{pst-solides3d,pst-node}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\pagestyle{empty}
\date{14 septembre 2\,006}
\author{JPV \& ML}
\title{Placer un point défini dans le fichier solide.pro ou par l'utilisateur}
\SpecialCoor

\makeatletter
\def\pnodeXYZ{\def\pst@par{}\pst@object{pnodeXYZ}}
\def\pnodeXYZ@i(#1,#2,#3)#4{{% coordonnées cartésiennes
  \begin@ClosedObj
\pnode(!
         \tx@optionssolides
         SolidesDict begin
         #1
         #2
         #3
   3dto2d cm_1 exch cm_1 exch
   end){#4}%
   \end@ClosedObj
  }\ignorespaces%
}
\makeatother

\makeatletter
\def\psPoint{\def\pst@par{}\pst@object{psPoint}}
\def\psPoint@i(#1)#2{{% coordonnées cartésiennes
  \begin@ClosedObj
\pnode(!
         \tx@optionssolides
         SolidesDict begin
         #1 pop pop
         #1 pop exch pop
         #1 exch pop exch pop
   3dto2d cm_1 exch cm_1 exch
   end){#2}%
   \end@ClosedObj
  }\ignorespaces%
}
\makeatother
\begin{document}
\maketitle

\begin{center}
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{Decran=25,viewpoint=10 20 15}
\psSolid[object=cube,a=4,typedrawsolid=solid](0,0,0)
% /pointtest{2 2 2} def
\psPoint(pointtest){A}
\psdot[linecolor=yellow,dotsize=8pt](A)
\uput{0.25}[60](A){$A(2,2,2)$}
\pnodeXYZ(0,0,0){O}
\uput[r](O){$O$}
\pnodeXYZ(0,0,2){Ak}
\pnodeXYZ(0,0,4){Az}
\uput[u](Az){$z$}
\pnodeXYZ(2,0,0){Ai}
\pnodeXYZ(4,0,0){Ax}
\uput[u](Ax){$x$}
\pnodeXYZ(0,2,0){Aj}
\pnodeXYZ(0,4,0){Ay}
\uput[dr](Ay){$y$}
\pnodeXYZ(2,-2,0){A1}
\pnodeXYZ(2,2,0){A2}
\pnodeXYZ(-2,2,0){A3}
\pnodeXYZ(-2,-2,0){A4}
\uput[dr](Ay){$y$}
\psline[linestyle=dashed](O)(Ai)
\psline[linestyle=dashed](O)(Aj)
\psline[linestyle=dashed](O)(Ak)
\pspolygon[linestyle=dotted](A1)(A2)(A3)(A4)
\psline[linecolor=green,arrowsize=2mm,arrowinset=0.2]{->}(Aj)(Ay)
\psline[linecolor=blue,arrowsize=2mm,arrowinset=0.2]{->}(Ai)(Ax)
\psline[linecolor=red,arrowsize=2mm,arrowinset=0.2]{->}(Ak)(Az)
\psdot[linecolor=green,dotsize=5pt](Aj)
\psdot[linecolor=blue,dotsize=5pt](Ai)
\psdot[linecolor=red,dotsize=5pt](Ak)
\end{pspicture}

\psframebox*[fillcolor=black]{\white$\backslash$psPoint(pointtest)\{A\}}
\end{center}

\end{document}
