\section{Solid rings} This paragraph discusses the cylindric \Index{rings}. Within the macro \Lcs{psSolid}, this object is passed with the option: \texttt{\Lkeyword{object}=\Lkeyval{anneau}}, that comes with 3 parameters: \begin{compactitem} \item the inner radius \texttt{\Lkeyword{r}=1.5} (value by default); \item the outer radius \texttt{\Lkeyword{R}=4} (value by default); \item the height \texttt{\Lkeyword{h}=6} (value by default). \end{compactitem} The argument \Lkeyword{ngrid} defines the number of sections used to make a complete rotation of $360$~degrees. Its default value is $24$. The section of the ring, whose shape is \textit{rectangular} was chosen as default, and can be redesigned by the user. We will discuss different examples of sections for rings. \subsection{Predefined command: the ring with a rectangular section} This section is defined in the plane $Oyz$, it is parameterized with the triple $(r, R, h)$. The values of the outer radius $R$, inner radius $r$ and the height $h$ are passed in the macro \Lcs{psSolid}. By default, one has a ring with a variable rectangular section, and the definition takes place at the time of the transmission of the values $(r, R, h)$ into the options of \Lcs{psSolid}. If the user redefines the \TeX {} macro \verb+\Section+ with some numeric values instead of the parameters $r$, $R$ and $h$, then the ring won't be variable anymore and it is not necessary to transmit the values $r$, $R$, and $h$ into the options of \Lcs{psSolid}. \begin{minipage}{0.45\linewidth} \begin{verbatim} \newcommand\Section{% % y z R h 2 div neg % sommet 1 % S1 (R,-h/2) R h 2 div % sommet 2 % S2 (r,h/2) r h 2 div % sommet 3 % S3 (r,h/2) r h 2 div neg % sommet 4 % S4 (r,-h/2) } \end{verbatim} \end{minipage} \hfill \begin{minipage}{0.45\linewidth} \psset{unit=0.5} \begin{pspicture}(-5,-3)(5,3) \pstVerb{/R 4 def /r 2 def /h 2 def}% \newcommand\RectangularSection{% \pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (!R h 2 div neg)(!R h 2 div)(!r h 2 div)(!r h 2 div neg)} \rput(0,0){\RectangularSection}\rput(-6,0){\RectangularSection} \psline(-2,1)(2,1)\psline(-2,-1)(2,-1) \psline[linestyle=dashed,dash=1 0.2 0.05 0.2]{->}(0,-3)(0,3) \psline[linestyle=dashed]{->}(-4,0)(4.2,0) \uput[u](0,3){$z$}\uput[r](4.1,0){$y$}\uput[dl](0,0){$O$} \psline{->}(0,1.5)(2,1.5)\uput[u](1,1.5){$r$} \psline{->}(0,2.5)(4,2.5)\uput[u](2,2.5){$R$} \psline{<->}(5,-1)(5,1)\uput[r](5,0){$h$} \uput[dr](!R h 2 div neg){1} \uput[ur](!R h 2 div ){2} \uput[ul](!r h 2 div ){3} \uput[dl](!r h 2 div neg){4} \end{pspicture} \end{minipage} \newpage \begin{LTXexample}[width=6cm] \psset{unit=0.5} \begin{pspicture}(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 20 40 rtp2xyz, Decran=25,lightsrc=10 20 20} \psSolid[object=anneau,fillcolor=cyan, h=3,R=8,r=6,ngrid=4,RotX=10](0,0,0) \end{pspicture}\\ \begin{pspicture}(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 -20 -40 rtp2xyz, Decran=25,lightsrc=-10 -20 -20} \psSolid[object=anneau, fillcolor=yellow,h=3,R=8,r=6, RotX=90,RotZ=10](0,0,0) \end{pspicture} \end{LTXexample} \subsection{Example 1: a simple ring with a triangular section} Below is a very simple ring with a fixed triangular section. The section is defined by $3$~points $(6, -2)$, $(10, 0)$ and $(6, 2)$ within the option \Lkeyword{section} of \Lcs{psSolid}. \begin{LTXexample}[width=6cm] \psset{unit=0.5} \begin{pspicture}(-5,-6)(5,6) \psset[pst-solides3d]{viewpoint=50 20 40 rtp2xyz,Decran=25, lightsrc=10 20 20} \psSolid[object=anneau, section=6 -2 10 0 6 2, fillcolor=cyan,RotX=10]% \end{pspicture} \end{LTXexample} %\newpage \subsection{Example 2: a ring with a variable triangular section} \newcommand\SectionTriangulaire{ R h 2 div neg % sommet 1 R r add 2 div h 2 div % sommet 2 r h 2 div neg % sommet 3 } \begin{minipage}{0.45\linewidth} \begin{verbatim} \newcommand\SectionTriangulaire{ % y <----z----> R h 2 div neg % S1 (R,-h/2) R r add 2 div h 2 div % S2 ((R+r)/2,h/2) r h 2 div neg % S3 (r,-h/2) } \end{verbatim} \end{minipage} \hfill \begin{minipage}{0.45\linewidth} \psset{unit=0.5} \begin{pspicture}(-5,-3)(5,3) %\psgrid \pstVerb{/R 4 def /r 2 def /h 2 def}% \newcommand\TriangularSection{% \pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (!R h 2 div neg)(!R r add 2 div h 2 div)(!r h 2 div neg)} \rput(0,0){\TriangularSection}\rput(-6,0){\TriangularSection} \psline(-3,1)(3,1)\psline(-4,-1)(4,-1) \psline[linestyle=dashed,dash=1 0.2 0.05 0.2]{->}(0,-3)(0,3) \uput[u](0,3){$z$}\uput[r](4.1,0){$y$}\uput[dl](0,0){$O$} \psline[linestyle=dashed](2,-1)(2,1.5) \psline[linestyle=dashed](4,-1)(4,2.5) \psline[linestyle=dashed]{->}(-4,0)(4.2,0) \psline{->}(0,1.5)(2,1.5)\uput[u](1,1.5){$r$} \psline{->}(0,2.5)(4,2.5)\uput[u](2,2.5){$R$} \psline{<->}(5,-1)(5,1)\uput[r](5,0){$h$} \uput[dr](!R h 2 div neg){1} \uput[u](!R r add 2 div h 2 div){2} \uput[dl](!r h 2 div neg){3} \end{pspicture} \end{minipage} \begin{center} %% \psset{unit=0.5} \begin{pspicture}(-5,-6)(5,6) \psframe(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 20 40 rtp2xyz,Decran=25,lightsrc=10 20 20} \psSolid[object=anneau,section=\SectionTriangulaire,fillcolor=cyan,h=3,R=8,r=4,RotX=10]% \end{pspicture} %% \begin{pspicture}(-5,-6)(5,5) \psframe(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 -20 -40 rtp2xyz,Decran=25,lightsrc=-10 -20 -20} \psSolid[object=anneau,section=\SectionTriangulaire,fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10]% \end{pspicture} \end{center} \begin{verbatim} \psSolid[object=anneau,section=\SectionTriangulaire,% fillcolor=cyan,h=3,R=8,r=4,RotX=10](0,0,0) \psSolid[object=anneau,section=\SectionTriangulaire,% fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10](0,0,0) \end{verbatim} %%\newpage \newcommand\SectionPneu{ /m {90 4 div} bind def /Scos {m cos 2 m mul cos add 3 m mul cos add} bind def /Z0 {h 4 div} bind def /c {Z0 Scos div} bind def /Z1 {Z0 c m cos mul add} bind def /Z2 {Z1 c m 2 mul cos mul add} bind def /R1 {R c m sin mul sub} bind def /R2 {R1 c m 2 mul sin mul sub} bind def /R3 {R2 c m 3 mul sin mul sub} bind def R h 4 div neg % 1 R h 4 div % 2 R1 Z1 % 3 R2 Z2 % 4 R3 h 2 div % 5 r h 2 div % 6 r h 2 div neg % 7 R3 h 2 div neg % 8 R2 Z2 neg % 9 R1 Z1 neg % 10 } \subsection{Example 3: a ring with a``tyre''-like section: cylindric ring with chamfered edges} \begin{minipage}{0.45\linewidth} {\small \begin{verbatim} \renewcommand\SectionPneu{ /m {90 4 div} bind def /Scos {m cos 2 m mul cos add 3 m mul cos add} bind def /Z0 {h 4 div} bind def /c {Z0 Scos div} bind def /Z1 {Z0 c m cos mul add} bind def /Z2 {Z1 c m 2 mul cos mul add} bind def /R1 {R c m sin mul sub} bind def /R2 {R1 c m 2 mul sin mul sub} bind def /R3 {R2 c m 3 mul sin mul sub} bind def R h 4 div neg % 1 R h 4 div % 2 R1 Z1 % 3 R2 Z2 % 4 R3 h 2 div % 5 r h 2 div % 6 r h 2 div neg % 7 R3 h 2 div neg % 8 R2 Z2 neg % 9 R1 Z1 neg % 10 } \end{verbatim}} \end{minipage} \hfill \begin{minipage}{0.45\linewidth} %\psset{unit=0.65} \begin{pspicture}(-2,-3)(5,6) %\psgrid \pstVerb{/R 4 def /r 2 def /h 2 def}% \pstVerb{/m {90 4 div} bind def /Scos {m cos 2 m mul cos add 3 m mul cos add} bind def /Z0 {h 4 div} bind def /c {Z0 Scos div} bind def /Z1 {Z0 c m cos mul add} bind def /Z2 {Z1 c m 2 mul cos mul add} bind def /R1 {R c m sin mul sub} bind def /R2 {R1 c m 2 mul sin mul sub} bind def /R3 {R2 c m 3 mul sin mul sub} bind def}% \pnode(!R h 4 div neg){S1} \pnode(!R h 4 div){S2} \pnode(!R1 Z1){S3} \pnode(!R2 Z2){S4} \pnode(!R3 h 2 div){S5} \pnode(!r h 2 div){S6} \pnode(!r h 2 div neg){S7} \pnode(!R3 h 2 div neg){S8} \pnode(!R2 Z2 neg){S9} \pnode(!R1 Z1 neg){S10} \newcommand\pneuSection{\pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (S1)(S2)(S3)(S4)(S5)(S6)(S7)(S8)(S9)(S10)} \rput(0,0){\pneuSection}\rput{180}{\pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (!R h 4 div neg)(!R h 4 div)(!R1 Z1)(!R2 Z2)(!R3 h 2 div)(!r h 2 div)(!r h 2 div neg)(!R3 h 2 div neg)(!R2 Z2 neg)(!R1 Z1 neg)} \psline(-3,1)(3,1)\psline(-3,-1)(3,-1) \psline[linestyle=dashed,dash=1 0.2 0.05 0.2]{->}(0,-3)(0,3) \uput[u](0,3){$z$}\uput[r](4.1,0){$y$}\uput[dl](0,0){$O$} \psline[linestyle=dashed](2,-1)(2,1.5) \psline[linestyle=dashed](4,-1)(4,2.5) \psline[linestyle=dashed]{->}(-4,0)(4.2,0) \psline{->}(0,1.5)(2,1.5)\uput[u](1,1.5){$r$} \psline{->}(0,2.5)(4,2.5)\uput[u](2,2.5){$R$} \psline{<->}(5,-1)(5,1)\uput[r](5,0){$h$} \uput[r](S1){1} \uput[r](S2){2} \uput[u](S3){3} \uput[u](S4){4} \uput[u](S5){5} \uput[ul](S6){6} \uput[dl](S7){7} \uput[dl](S8){8} \uput[dr](S9){9} \uput[r](S10){10} \psdots[linecolor=red](S1)(S2)(S3)(S4)(S5)(S6)(S7)(S8)(S9)(S10) \end{pspicture} \end{minipage} %\iffalse \begin{center} \psset{unit=0.7} \begin{pspicture}(-5,-5)(5,4) \psframe(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 20 40 rtp2xyz,Decran=25,lightsrc=10 20 20} \psSolid[object=anneau,section=\SectionPneu,fillcolor=cyan,h=3,R=8,r=4,RotX=10]% \end{pspicture} %% \begin{pspicture}(-5,-5)(5,4) \psframe(-5,-4)(5,4) \psset[pst-solides3d]{viewpoint=50 -20 -40 rtp2xyz,Decran=25,lightsrc=-10 -20 -20} \psSolid[object=anneau,section=\SectionPneu,fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10]% \end{pspicture} \end{center} %% \begin{verbatim} \psSolid[object=anneau,section=\SectionPneu,% fillcolor=cyan,h=3,R=8,r=4,RotX=10](0,0,0) \psSolid[object=anneau,section=\SectionPneu,% fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10]% \end{verbatim} %\fi \newpage \subsection{Example 4: an empty bobbin} \newcommand\SectionBobine{ r h 2 div % 1 r h 2 div neg % 2 R h 2 div neg % 3 R h 3 div neg % 4 R h 4 div sub h 3 div neg % 5 R h 4 div sub h 3 div % 6 R h 3 div % 7 R h 2 div % 8 } \begin{minipage}{0.45\linewidth} \begin{verbatim} \newcommand\SectionBobine{ r h 2 div % 1 r h 2 div neg % 2 R h 2 div neg % 3 R h 3 div neg % 4 R h 4 div sub h 3 div neg % 5 R h 4 div sub h 3 div % 6 R h 3 div % 7 R h 2 div % 8 } \end{verbatim} \end{minipage} \hfill \begin{minipage}{0.45\linewidth} \begin{pspicture}(-2,-2)(5,2) \pstVerb{/RB 4 def /rB 2 def /hB 3 def}% \pnode(!rB hB 2 div){S1} \pnode(!rB hB 2 div neg){S2} \pnode(!RB hB 2 div neg){S3} \pnode(!RB hB 3 div neg){S4} \pnode(!RB hB 4 div sub hB 3 div neg){S5} \pnode(!RB hB 4 div sub hB 3 div){S6} \pnode(!RB hB 3 div){S7} \pnode(!RB hB 2 div){S8} \newcommand\pneuSection{\pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (S1)(S2)(S3)(S4)(S5)(S6)(S7)(S8)} \rput(0,0){\pneuSection}\rput{180}{\pspolygon[fillstyle=vlines,linewidth=2\pslinewidth]% (!rB hB 2 div)(!rB hB 2 div neg)(!RB hB 2 div neg)(!RB hB 3 div neg)(!RB hB 4 div sub hB 3 div neg)(!RB hB 4 div sub hB 3 div)(!RB hB 3 div)(!RB hB 2 div)} \psline(-3,1.5)(3,1.5)\psline(-3,-1.5)(3,-1.5) \psline[linestyle=dashed,dash=1 0.2 0.05 0.2]{->}(0,-3)(0,3) \uput[u](0,3){$z$}\uput[r](4.1,0){$y$}\uput[dl](0,0){$O$} \psline[linestyle=dashed](2,-1)(2,1.5) \psline[linestyle=dashed](4,-1)(4,2.5) \psline[linestyle=dashed](-4,-1)(4,-1) \psline[linestyle=dashed](-4,1)(4,1) \psline[linestyle=dashed]{->}(-4,0)(4.2,0) \psline{->}(0,1.8)(2,1.8)\uput[u](1,1.8){$r$} \psline{->}(0,2.5)(4,2.5)\uput[u](2,2.5){$R$} \psline{<->}(5,-1.5)(5,1.5)\uput[r](5,0){$h$} \uput[u](S1){1} \uput[d](S2){2} \uput[d](S3){3} \uput[r](S4){4} \uput[ur](S5){5} \uput[dr](S6){6} \uput[r](S7){7} \uput[r](S8){8} \psdots[linecolor=red](S1)(S2)(S3)(S4)(S5)(S6)(S7)(S8) \end{pspicture} \end{minipage} \begin{center} \begin{pspicture}(-5,-6)(5,5) \psframe*[linecolor=blue!50](-5,-5)(5,4) \psset[pst-solides3d]{viewpoint=70 40 10 rtp2xyz,Decran=25,lightsrc=0 30 100} \psSolid[object=grille,base=-15 15 -15 15,fillcolor=yellow!30!black!10](0,0,-8) %\psSolid[object=prisme,h=2,base=-15 1 -15 -1 15 -1 15 1](0,0,-8) \psSolid[object=anneau,section=\SectionBobine,fillcolor=gray!50,h=6,R=8,r=4,RotX=90,linecolor=gray]% \end{pspicture} \end{center} \begin{verbatim} \psSolid[object=grille,base=-15 15 -15 15,fillcolor=yellow!30](0,0,-8) \psSolid[object=anneau,section=\SectionBobine,% fillcolor=gray!50,h=6,R=8,r=4,RotX=90,linecolor=gray]% \end{verbatim} \subsection{Some other rings} Three other examples are available on the website: \centerline{\url{http://syracuse.eu.org/lab/bpst/pst-solides3d/anneaux}} \endinput