Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmueller
      Objets POV-Ray - Comment faire des objets pour POV-Ray
English English English
Italiano  Italiano
Deutsch 

Page d'Accueil
- POV-Ray Tutorial

  - Exemples POV-Ray
    Table des matières
  - Architecture
  - Geometrie
  - Technique
    - Échelle
    - Pylônes
    - Garde-fou, Rambarde
    - Pont
    - Tuyaux
    - Bifurcation de Tuyau
    - Robinet d'Arrêt
    - Chaîne
    - Bobine de fil
    - Torpedo
    - Cruise Missile
    - Missile
    - Roue
    - Camion
    - Hélice
    - Avion
    - Canoë
    - Guitare
    - Afficheur 7 segments
    - Câble plat - Nappe plat
    - Harnais de câbles
                                       
 
Tubes

Tuyaux

Objets: cylinder, Hexagon.
Méthodes: #declare, #local, union, #macro, #while.
Applique: #include "shapes.inc"
              #include "shapes_lo.inc"
Un tuyau pour pipelines avec des brides.
Version droite et courbe.
Tous les brides aussi avec des écroux.

Premièrement nous avons besoin des quelques écrous :
#declare Nut_Scale = 0.055; // scale of the nuts 
//--------------------- Nut
#local Nut_Scale = 0.035;
#local Nut =
union{
 object{ Hexagon // from "shapes.inc"!
         scale <0.5,1,1>*Nut_Scale/2
         translate<Nut_Scale/4,0,0>
         texture { Nut_Texture_2 }}
 cylinder{ <0,0,0>,
           <Nut_Scale*1.1/2,0,0>,
           Nut_Scale/2*0.6
           texture { Nut_Texture_1 }}
}// end of union -----------------------
nuts

Puis nous faisons une bride.
On doit déclarer quelques dimensions :
#declare T_R = 0.30; // tube radius
#declare F_R = 0.45; // flange radius
#declare F_D = 0.05; // flange thickness
#declare Nut_Scale = 0.055; // scale of the nuts 
#declare Number_of_Nuts = 16; // ....

//--------------------- Flange_Base
#local Flange_Base =
union{
 difference{
   union{
   cylinder{ <0,0,0>,<F_D  ,0,0>,F_R-D
             texture{Flange_Texture_1} }
   cylinder{ <D,0,0>,<F_D-D,0,0>,F_R
             texture{Flange_Texture_2} }
       } // uni
   cylinder{ <-D,0,0>,<F_D+D,0,0>,T_R
             texture{Tube_Inside_Texture} }
 } // end of diff

}// end uni
//------------------Flange_with_Nuts
#local Flange_with_Nuts =
union{
 object{ Flange_Base }
 union{
  #local Nr = 0;     // start
  #local EndNr = Number_of_Nuts; // end
  #while (Nr < EndNr)
   object{ Nut
           translate<F_D,0,-T_R-(F_R-T_R)/2>
           rotate<Nr * 360/EndNr,0,0>}
  #local Nr = Nr + 1;    // next Nr
  #end // ---------------  end of loop
 } // end of union

}// end uni
//------------------------------------ 
flange

Un tuyau droit avec des brides :
#declare T_L = 1.00 // tube lenght
#declare T_D = 0.01 // tube material thickness   
//---------------------
union{
 // flanch at start
 object{ Flanch }
 // the tube
 difference{
   cylinder{< 0,0,0>,<T_L  ,0,0>,T_R
            texture{Tube_Texture} }
   cylinder{<-D,0,0>,<T_L+D,0,0>,T_R-T_D
            texture{Tube_Inside_Texture} }
 } // end of difference
 // flanch at end
 object{ Flanch
         scale <-1,1,1>
         translate<T_L,0,0>
       } //

} // end of union ------------------------- 
linear pipeline tube

Un tuyau courbe avec des brides :
(Ici nous appliquons mon #include "shapes_lo.inc"!)
#declare Tube_Angle = 60; // bow angle
#declare T_Rmaj = 1.00; // tube major radius 
// around z (lefthanded!) #declare T_D = 0.01 // tube material thickness  //--------------------- tube bow union{ // flanch at start object{ Flanch translate<0,-T_Rmaj,0> } // the tube difference{ object{ // (Rmaj, Rmin, Angle) Segment_of_Torus(T_Rmaj, T_R,-Tube_Angle) rotate<-90,0,-90> texture{ Tube_Texture } } // end of Torus_Segment(...) ------ object{ Segment_of_Torus(T_Rmaj,T_R-T_D,-Tube_Angle-2) rotate<0,1,0> rotate<-90,0,-90> texture{ Tube_Inside_Texture } } // end of Torus_Segment(...) ------ } // end of difference // flanch at end object{ Flanch scale <-1,1,1> translate<0,-T_Rmaj,0> rotate<0,0, Tube_Angle> } // } // end of union ---------------------------
pipeline tube bow

Tubes

top

© Friedrich A. Lohmüller, 2009
www.f-lohmueller.de