C'est la structure d'un alternateur industriel qui comprend le support, le stator, le rotor et l'arbre de la turbine.
Réalisé avec le package pst-solides3d(extension de PStTricks), c'est un exercice intéressant qui utilise plusieurs fonctionnalités du package.
Comme la résolution choisie par Thomas est assez élevée, les calculs sont très longs et il vaut mieux enregistrer les fichiers de données du solide : sommets, faces et couleurs. Le solide est constitué de 5 parties :
1- le support qui est formé de deux bases "prismatiques" :
\begin{pspicture}[showgrid](-2,-3)(9,2)
\psset{viewpoint=100 120 20 rtp2xyz,Decran=100}
\defFunction{F}(t){t cos 2.5 mul neg}{t sin 2.5 mul 1.7678 sub}{}
\defFunction{G}(t){t cos neg 3 add}{t sin}{}
\defFunction{H}(t){t cos 3 sub}{t sin}{}
% Support
\psSolid[object=prisme,h=1.5,RotX=-90,ngrid=1 18,resolution=15,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+](-2,-8.5,0)
\psSolid[object=prisme,h=1.5,RotX=-90,ngrid=1 18,resolution=15,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+](-2,-2,0)
\end{pspicture}
2- le stator : gros cylindre, le rotor et l'arbre de la turbine :
\begin{pspicture}(-9,-6)(2,4)
\psset{viewpoint=100 120 20 rtp2xyz,Decran=100}
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=5pt](-9,-6)(2,3)
% rotors arrieres
\psSolid[object=cylindre,h=1.2,r=0.3,RotX=-90,ngrid=1 36](0,-1.7,0)
\psSolid[object=cylindre,h=0.5,r=0.7,RotX=-90,ngrid=1 36](0,-0.5,0)
% stator
\psSolid[object=cylindre,h=9,r=2.5,RotX=-90,ngrid=5 36]
% rotors avant
\psSolid[object=cylindre,h=0.5,r=0.7,RotX=-90,ngrid=1 36](0,9,0)
\psSolid[object=cylindre,h=1.2,r=0.3,RotX=-90,ngrid=1 36](0,9.5,0)
\end{pspicture}
Tous ces éléments sont fusionnés :
La première partie consistera à faire les calculs pour enregistrer les données :
\def\Generator{% enregistrement des fichiers de données
\begin{pspicture}[showgrid=false](-5,-5)(5,5)
\psset{viewpoint=100 120 15 rtp2xyz,Decran=100,lightsrc=100 155 50 rtp2xyz,solidmemory,action=none,grid=true}
\defFunction{F}(t){t cos 2.5 mul neg}{t sin 2.5 mul 1.7678 sub}{}
\defFunction{G}(t){t cos neg 3 add}{t sin}{}
\defFunction{H}(t){t cos 3 sub}{t sin}{}
%\psSolid[object=grille,base=-8 -1 -4 5,hue=0.6 0.5,grid=false,action=draw**](0,0,0)%
\psSolid[object=cylindre,h=0.5,r=0.7,fillcolor=green!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotorh](0,2,1.7678)
\psSolid[object=cylindre,h=1.2,r=0.3,fillcolor=gray!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotor1](0,2.5,1.7678)
\psSolid[object=cylindre,h=1.5,r=0.3,fillcolor=gray!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotor2](0,-8.7,1.7678)
\psSolid[object=cylindre,h=9,r=2.5,fillcolor=blue!40,RotX=-90,ngrid=20 90,hue=0.6 0.5,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=stator](0,-7,1.7678)
\psSolid[object=prisme,h=1.5,fillcolor=gray!40,RotX=-90,ngrid=1 18,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+,name=fuss1](0,0,0)
\psSolid[object=prisme,h=1.5,fillcolor=gray!40,RotX=-90,ngrid=1 18,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+,name=fuss2](0,-6.5,0)
%--------------- Compose -------------------------------------
\psSolid[object=fusion,base=fuss1 fuss2 stator rotorh rotor1 rotor2,grid=false,action=writesolid,file=generateur](-2,-2,0)
\end{pspicture}
}
% enregistrement des fichiers de données
\Generator
% a désactiver par la suite
La lecture des fichiers de données :
generateur-couleurs.dat
generateur-faces.dat
generateur-io.dat
generateur-sommets.dat
est beaucoup plus rapide, et on peut se concentrer ainsi plus aisément sur la mise en page.
\begin{center}
\begin{pspicture}[showgrid](-2,-3)(9,6)
\psset{viewpoint=100 120 15 rtp2xyz,Decran=100,lightsrc=100 155 50 rtp2xyz}
\psSolid[object=grille,base=-8 -1 -4 5,hue=0.6 0.5,grid]
\psSolid[object=datfile,
grid,
deactivatecolor,
file=generateur]
\end{pspicture}
\end{center}
Tous les fichiers sont ici dans le répertoire :
Le code :
\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}
\def\Generator{% enregistrement des fichiers de données
\begin{pspicture}[showgrid=false](-5,-5)(5,5)
\psset{viewpoint=100 120 15 rtp2xyz,Decran=100,lightsrc=100 155 50 rtp2xyz,solidmemory,action=none,grid=true}
\defFunction{F}(t){t cos 2.5 mul neg}{t sin 2.5 mul 1.7678 sub}{}
\defFunction{G}(t){t cos neg 3 add}{t sin}{}
\defFunction{H}(t){t cos 3 sub}{t sin}{}
%\psSolid[object=grille,base=-8 -1 -4 5,hue=0.6 0.5,grid=false,action=draw**](0,0,0)%
\psSolid[object=cylindre,h=0.5,r=0.7,fillcolor=green!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotorh](0,2,1.7678)
\psSolid[object=cylindre,h=1.2,r=0.3,fillcolor=gray!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotor1](0,2.5,1.7678)
\psSolid[object=cylindre,h=1.5,r=0.3,fillcolor=gray!40,RotX=-90,ngrid=20 90 ,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=rotor2](0,-8.7,1.7678)
\psSolid[object=cylindre,h=9,r=2.5,fillcolor=blue!40,RotX=-90,ngrid=20 90,hue=0.6 0.5,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,name=stator](0,-7,1.7678)
\psSolid[object=prisme,h=1.5,fillcolor=gray!40,RotX=-90,ngrid=1 18,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+,name=fuss1](0,0,0)
\psSolid[object=prisme,h=1.5,fillcolor=gray!40,RotX=-90,ngrid=1 18,resolution=15,linewidth=0.1pt,linecolor=gray!70,incolor=red,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+,name=fuss2](0,-6.5,0)
%--------------- Compose -------------------------------------
\psSolid[object=fusion,base=fuss1 fuss2 stator rotorh rotor1 rotor2,grid=false,action=writesolid,file=generateur](-2,-2,0)
\end{pspicture}
}
% enregistrement des fichiers de données
%\Generator
% a désactiver par la suite
\begin{center}
\begin{pspicture}[showgrid](-2,-3)(9,6)
\psset{viewpoint=100 120 15 rtp2xyz,Decran=100,lightsrc=100 155 50 rtp2xyz}
\psSolid[object=grille,base=-8 -1 -4 5,hue=0.6 0.5,grid]
\psSolid[object=datfile,grid,
deactivatecolor,
file=generateur]
\end{pspicture}
\end{center}
\newpage
\begin{center}
\begin{pspicture}[showgrid](-2,-3)(9,2)
\psset{viewpoint=100 120 20 rtp2xyz,Decran=100}
\defFunction{F}(t){t cos 2.5 mul neg}{t sin 2.5 mul 1.7678 sub}{}
\defFunction{G}(t){t cos neg 3 add}{t sin}{}
\defFunction{H}(t){t cos 3 sub}{t sin}{}
% Support
\psSolid[object=prisme,h=1.5,RotX=-90,ngrid=1 18,resolution=15,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+](-2,-8.5,0)
\psSolid[object=prisme,h=1.5,RotX=-90,ngrid=1 18,resolution=15,
base=3 1 3 1.5 -3 1.5 90 0 {H} CourbeR2+ -2 0 -1.7678 0 45 135 {F} CourbeR2+ 1.7678 0 2 0 0 90 {G} CourbeR2+](-2,-2,0)
\end{pspicture}
\end{center}
\begin{center}
% stator + rotors
\begin{pspicture}(-9,-6)(2,4)
\psset{viewpoint=100 120 20 rtp2xyz,Decran=100}
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=5pt](-9,-6)(2,3)
% rotors arrieres
\psSolid[object=cylindre,h=1.2,r=0.3,RotX=-90,ngrid=1 36](0,-1.7,0)
\psSolid[object=cylindre,h=0.5,r=0.7,RotX=-90,ngrid=1 36](0,-0.5,0)
% stator
\psSolid[object=cylindre,h=9,r=2.5,RotX=-90,ngrid=5 36]
% rotors avant
\psSolid[object=cylindre,h=0.5,r=0.7,RotX=-90,ngrid=1 36](0,9,0)
\psSolid[object=cylindre,h=1.2,r=0.3,RotX=-90,ngrid=1 36](0,9.5,0)
\end{pspicture}
\end{center}
\begin{center}
\begin{pspicture}[showgrid](-2,-3)(9,6)
\psset{viewpoint=100 120 15 rtp2xyz,Decran=100}
\psSolid[object=grille,base=-8 -1 -4 5]
\psSolid[object=datfile,
file=generateur]
\end{pspicture}
\end{center}
\end{document}
Aucun commentaire:
Enregistrer un commentaire