 
 
 Print.JpegQuality =  90;
 Print.JpegSmoothing = 0;
 
 General.Color.BackgroundGradient = {0,25,50};      // Haut de l'image   Codes couleur 0 à 256 sur RVB
 General.Color.Background = {25,50,100};            // Bas de l'image    Codes couleur 0 à 256 sur RVB   
 General.Color.SmallAxes = {25,255,25};   
 General.Color.Text = Yellow;
 Geometry.Color.Points = Yellow;
 General.Trackball = 1;
 General.RotationCenterGravity = 1;
 Mesh.VolumeEdges = 1;
 General.ExpertMode = 1;  
  
  
//-------------------------------------------------------------------------------

// Maillage GMSH du pont de Chamousset
// Auteurs  A. Benmokrane et J. Berthellemy  

// unités a priori MPa et m  :   a conserver dans toutes les données

//-------------------------------------------------------------------------------


// 1- Parametres DIMENSIONS PRINCIPALES  -----------------------------------------------------

R=1800.00;
L_trav = 72.996;
L_dalle = 10.75;   L_Msup=0.800;   L_corn=0.200;
bs=4.20;
bi=3.00;
c=2.10;
pente=(bs-bi)/(2*c); 
u_exc=1.925;  
n_inter=132;  // 116 pour coller à la répartition exacte des connecteurs // 132 pour coller aux diaphrames réels
pas=  L_trav/n_inter;

ep_dalle=0.300;

k_loc=61;
th0= - (k_loc-1) * pas / R;  

//---------------------------------------------------------------------------------------------------------------- 
//---------------------------------------------------------------------------------------------------------------- 

// Fin des parametres : toute modification au-delà nécessite une bonne connaissance de GMSH
//                      et peut conduire sinon à des effets inattendus.
//                      même chose si paramètres geometriquement impossibles ( embase trop etroite eg )

// Finesses  ------------------------------------------------------------------

   

G_precis = 0.3; 
K1_precis= 2;
K2_precis= 1;

L_grossier = 0.04;
L_moyen =    0.20*L_grossier;
L_precis =   0.10*L_grossier;  
L_fin =      0.03*L_grossier;
 
Function Polaire //----------------------------------------------------------------- 
 
 np=newp;  
 Point(np) = {(u+R+(L_dalle/2))*Sin(th[k]), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th[k]) , z, G_precis} ;


Return // Polaire ----------------------------------  

 
Function S_dalle //-----------------------------------------------------------------

  k=k+1;  // k = compteur de passages dans S_dalle     

  th[k]=  th0+ k* pas / R;     // Angle Theta de la coupe  

   
 Printf("         ") >> 'MESS_glo.txt';  
 Printf("COUPE DALLE n° %g -----------------------------------------------------------------------", k) >> 'MESS_glo.txt'; 
 Printf("             th[k]=  %g  ", th[k]) >> 'MESS_glo.txt';   
 
  
  z= ep_dalle/2;      // z=0 au niveau des membrures sup--------------------------- NIVEAU DALLE
 
  u=-L_dalle/2;     pd1[k]=newp;   Point(pd1[k]) = {(u+R+(L_dalle/2))*Sin(th[k]), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th[k]) , z, K1_precis*G_precis} ; 
                    Printf(" premier point de la dalle            pd1[k]=  %g  ", pd1[k]) >> 'MESS_glo.txt';   // premier point : stoque son n°
                             
  u=-u_exc-1.20;   Call Polaire ;   
  u=-u_exc-0.80;   Call Polaire ;  
  G_precis=G_precis/K1_precis;
  u=-bs/2 - (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=-bs/2 - (L_Msup/4) + (L_corn/2) ; Call Polaire ; 
  u=-bs/2 + (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=-bs/2 + (L_Msup/4) + (L_corn/2) ; Call Polaire ;   
  G_precis=2*G_precis;
  u=-u_exc+0.80;   Call Polaire ;
  u=-u_exc+1.20;   Call Polaire ;    
  u= bs/2 -0.50;   Call Polaire ; 
  G_precis=G_precis/2;   
  u=bs/2 - (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=bs/2 - (L_Msup/4) + (L_corn/2) ; Call Polaire ; 
  u=bs/2 + (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=bs/2 + (L_Msup/4) + (L_corn/2) ; Call Polaire ;  
  G_precis= K1_precis*G_precis;   
  u=bs/2 + (L_Msup/4) + (L_corn/2) + 0.50; Call Polaire ;    
  G_precis= K1_precis*G_precis;      
  u= L_dalle/2;    Call Polaire ;                      
  G_precis=G_precis/K1_precis;   

  For j In {1:15}      
    ln=newl;  
    Line(ln) = { pd1[k]+j-1, pd1[k]+j } ;	 
	EndFor

Return // S_dalle ----------------------------------

Function T_dalle //-----------------------------------------------------------------

 For j In {1:16}  
      For i In {1:n_coupes-1}   
         ln=newl;   
         If (i == 1 ) 
             If (j == 1 )   no_lndal_D=ln; EndIf                                  
         EndIf      
                      
         Line(ln) = { pd1[i]+j-1,   pd1[i+1]+j-1 } ;	 
    	EndFor
  EndFor
  
  Printf("             no_lndal_D =  %g          ", no_lndal_D ) >> 'MESS_glo.txt';  
				
  For j In {1:15}  
      For i In {1:n_coupes-1}   
         ln=newll;  
         Line Loop(ln) = {1+(j-1)+(i-1)*15, no_lndal_D+n_inter+(i-1)+n_inter*(j-1), -(1+(j-1)+(i)*15), -(no_lndal_D+(i-1)+n_inter*(j-1)) };	
         ns=news;                                                                                  // n_inter = 132  a priori
         Plane Surface(ns) = {ln};
         If (i == 1 ) 
              If (j == 1 )   no_dalle_D1=ns; EndIf
              If (j == 4 )   no_dalle_D2=ns; EndIf  
              If (j == 7 )   no_dalle_D3=ns; EndIf  
              If (j == 11 )  no_dalle_D4=ns; EndIf                 
              If (j == 14 )  no_dalle_D5=ns; EndIf  
                                         
         EndIf    
         If (i == n_coupes-1 )  
              If (j == 3 )   no_dalle_F1=ns; EndIf
              If (j == 6 )   no_dalle_F2=ns; EndIf 
              If (j == 10 )  no_dalle_F3=ns; EndIf                 
              If (j == 13 )  no_dalle_F4=ns; EndIf                   
              If (j == 15 )  no_dalle_F5=ns; EndIf                                                                
         EndIf                      
    	EndFor
  EndFor       
        
  Printf("             no_dalle_D4 =  %g      no_dalle_F4 =  %g      ", no_dalle_D4,no_dalle_F4) >> 'MESS_glo.txt';   

Return // T_dalle ----------------------------------


 
Function S_Msup //-----------------------------------------------------------------

  k=k+1;  // k = compteur de passages dans S_Msup     

  th[k]=  th0+ k* pas / R;     // Angle Theta de la coupe  

   
 Printf("         ") >> 'MESS_glo.txt';  
 Printf("COUPE MSUP n° %g -----------------------------------------------------------------------", k) >> 'MESS_glo.txt'; 
 Printf("             th[k]=  %g  ", th[k]) >> 'MESS_glo.txt';   
 
  
  z= 0.0;      // z=0 au niveau des membrures sup--------------------------- NIVEAU DALLE
 
  u=-bs/2 - (L_Msup/2);    ps1[k]=newp;   Point(ps1[k]) = {(u+R+(L_dalle/2))*Sin(th[k]), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th[k]) , z, K1_precis*G_precis} ; 
                           Printf(" premier point de la Msup            ps1[k]=  %g  ", ps1[k]) >> 'MESS_glo.txt';   // premier point : stoque son n°
                             
  G_precis=G_precis/K1_precis;
  u=-bs/2 - (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=-bs/2 - (L_Msup/4) + (L_corn/2) ; Call Polaire ; 
  u=-bs/2 ;                           Call Polaire ; 
  u=-bs/2 + (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=-bs/2 + (L_Msup/4) + (L_corn/2) ; Call Polaire ;    G_precis=K1_precis*G_precis;
  u=-bs/2 + (L_Msup/2);               Call Polaire ; 
  
  u=bs/2 - (L_Msup/2);               Call Polaire ;   
  
  G_precis=G_precis/K1_precis;
  u=bs/2 - (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=bs/2 - (L_Msup/4) + (L_corn/2) ; Call Polaire ; 
  u=bs/2 ;                           Call Polaire ;   
  u=bs/2 + (L_Msup/4) - (L_corn/2) ; Call Polaire ; 
  u=bs/2 + (L_Msup/4) + (L_corn/2) ; Call Polaire ;    G_precis=K1_precis*G_precis;
  u=bs/2 + (L_Msup/2);               Call Polaire ; 
              
  For j In {1:6}      
    ln=newl;  
    Line(ln) = { ps1[k]+j-1, ps1[k]+j } ;	 
         If (k == 1 ) 
         If (j == 1 )      
              no_lnsup_T=ln;                                
         EndIf  EndIf         
    
	EndFor              

  For j In {8:13}      
    ln=newl;  
    Line(ln) = { ps1[k]+j-1, ps1[k]+j } ;	 
	EndFor                 
              
Return // S_Msup ----------------------------------


Function T_Msup //-----------------------------------------------------------------

 For j In {1:14}  
      For i In {1:n_coupes-1}   
         ln=newl;   
         If (i == 1 ) 
         If (j == 1 )      
                  no_lnsup_L=ln;                                
         EndIf  EndIf                     
         Line(ln) = { ps1[i]+j-1,   ps1[i+1]+j-1 } ;	 
    	EndFor
  EndFor

  Printf("             no_lnsup_T =  %g          ", no_lnsup_T ) >> 'MESS_glo.txt';    // 1597  
  Printf("             no_lnsup_L =  %g          ", no_lnsup_L ) >> 'MESS_glo.txt';     
  
 For j In {1:6}  
      Printf("--------------------------------------- j =   %g          ", j ) >> 'MESS_glo.txt';     
      For i In {1:n_coupes-1}  
      
  //       ln=newll;   Line Loop(ln) = {7539, 9267, -7551, -9135};   // premier carré avec la dalle
  //       ln=newll;   Line Loop(ln) = {1, 1729, -13, -1597};        // premier carré sans la dalle     
         ln=newll;  
                  Printf("       ln =  %g          ", ln ) >> 'MESS_glo.txt';   // n_inter = 132  a priori
                  A = no_lnsup_T+(j-1)+(i-1)*12;         
                  B = no_lnsup_L+(i-1)+j*n_inter;       
                  C = no_lnsup_T+12+(j-1)+(i-1)*12;    
                  D = no_lnsup_L+(i-1)+(j-1)*n_inter;  
                  Printf("        A =  %g  B =  %g  C =  %g  D =  %g  ",A,B,-C,-D ) >> 'MESS_glo.txt';              
                  Printf("              " ) >> 'MESS_glo.txt';      
      
          Line Loop(ln) = { A, B, -C, -D };
          ns=news;                                                              // n_inter = 132  a priori
          Plane Surface(ns) = {ln};
       
              If (i == 1 )      no_Msupg_D1[j]=ns;   EndIf   
              If (i == 8 )      no_Msupg_D2[j]=ns;   EndIf   
              If (i == 19 )     no_Msupg_D3[j]=ns;   EndIf   
              If (i == 104 )    no_Msupg_D4[j]=ns;   EndIf                 
              If (i == 115 )    no_Msupg_D5[j]=ns;   EndIf   
              If (i == 126 )    no_Msupg_D6[j]=ns;   EndIf                                                                              
         
                 
              If (i == 7 )      no_Msupg_F1[j]=ns;   EndIf                              
              If (i == 18 )     no_Msupg_F2[j]=ns;   EndIf                              
              If (i == 103 )    no_Msupg_F3[j]=ns;   EndIf                              
              If (i == 114 )    no_Msupg_F4[j]=ns;   EndIf                              
              If (i == 125 )    no_Msupg_F5[j]=ns;   EndIf                              
              If (i == 132 )    no_Msupg_F6[j]=ns;   EndIf                              
                           
    	EndFor
  EndFor   

  For j In {8:13}     
      Printf("--------------------------------------- j =   %g          ", j ) >> 'MESS_glo.txt';   
      For i In {1:n_coupes-1}   
                                      
//         ln=newll;   Line Loop(ln) = {7545, 10191, -7557, -10059};       // premier carré avec la dalle
//         Printf("  ln =  %g   OK ",ln ) >> 'MESS_glo.txt';   
//         ln=newll;   Line Loop(ln) = {7, 2653, -19, -2521};           //  premier carré sans la dalle             
         ln=newll; 
                  Printf("       ln =  %g          ", ln ) >> 'MESS_glo.txt';           // n_inter = 132  a priori
                  A = no_lnsup_T+(j-2)+(i-1)*12 ;        
                  B = no_lnsup_L+(i-1)+(j)*n_inter;  
                  C = no_lnsup_T+12+(j-2)+(i-1)*12; 
                  D = no_lnsup_L+(i-1)+(j-1)*n_inter;                    
                  Printf("        A =  %g  B =  %g  C =  %g  D =  %g  ",A,B,-C,-D ) >> 'MESS_glo.txt';             
                  Printf("              " ) >> 'MESS_glo.txt';      //  
      
         Line Loop(ln) = {A, B, -C, -D};   ns=news;      Plane Surface(ns) = {ln};  
         
              If (i == 1 )      no_Msupd_D1[j]=ns;   EndIf   
              If (i == 8 )      no_Msupd_D2[j]=ns;   EndIf   
              If (i == 19 )     no_Msupd_D3[j]=ns;   EndIf   
              If (i == 104 )    no_Msupd_D4[j]=ns;   EndIf                 
              If (i == 115 )    no_Msupd_D5[j]=ns;   EndIf   
              If (i == 126 )    no_Msupd_D6[j]=ns;   EndIf                                                                              
     
              If (i == 7 )      no_Msupd_F1[j]=ns;   EndIf                              
              If (i == 18 )     no_Msupd_F2[j]=ns;   EndIf                              
              If (i == 103 )    no_Msupd_F3[j]=ns;   EndIf                              
              If (i == 114 )    no_Msupd_F4[j]=ns;   EndIf                              
              If (i == 125 )    no_Msupd_F5[j]=ns;   EndIf                              
              If (i == 132 )    no_Msupd_F6[j]=ns;   EndIf      
                                      
    	EndFor
  EndFor  
    
   
 
Return // T_Msup ----------------------------------

  
Function S_Charp //-----------------------------------------------------------------

  k=k+1;  // k = compteur de passages dans Charp     

  th[k]=  th0+ k* pas / R;     // Angle Theta de la coupe  

   
 Printf("         ") >> 'MESS_glo.txt';  
 Printf("COUPE CHARP n° %g -----------------------------------------------------------------------", k) >> 'MESS_glo.txt'; 
 Printf("             th[k]=  %g  ", th[k]) >> 'MESS_glo.txt';   
 
  
  z= 0.0-c/4;      // z=0 au niveau des membrures sup--------------------------- NIVEAU AME partie haute
   
  u=-bs/2 + pente*c/4;    pc1[k]=newp;   Point(pc1[k]) = {(u+R+(L_dalle/2))*Sin(th[k]), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th[k]) , z, G_precis} ; 
                          Printf(" premier point de la Charpente       pc1[k]=  %g  ", pc1[k]) >> 'MESS_glo.txt';   // premier point : stoque son n°

  G_precis=K1_precis*G_precis;
  
  z= 0.0-3*c/4;   u=-bs/2 + 3*pente*c/4;  Call Polaire ;        
                      
  z= -c;   // fond de caisson
  
  u=-bi/2;    Call Polaire ;   
  u=-bi/6;    Call Polaire ;   
  u= bi/6;    Call Polaire ;   
  u= bi/2;    Call Polaire ;       
            
  z= 0.0-3*c/4;   u= bs/2 - 3*pente*c/4;  Call Polaire ;  
  z= 0.0-c/4;     u= bs/2 - pente*c/4;    Call Polaire ;    G_precis=G_precis/K1_precis;    
    
  For j In {1:7}      
    ln=newl;  
    Line(ln) = { pc1[k]+j-1, pc1[k]+j } ;	 
         If (k == 1 ) 
         If (j == 1 )      
              no_lnchar_T=ln;                                
         EndIf  EndIf  
	EndFor          

Return // S_Charp ----------------------------------

Function T_Charp //-----------------------------------------------------------------

 For j In {1:8}  
      For i In {1:n_coupes-1}   
         ln=newl;   
         If (i == 1 ) 
         If (j == 1 )      
                                   no_lnchar_L=ln;                                
         EndIf  EndIf                     
         Line(ln) = { pc1[i]+j-1,   pc1[i+1]+j-1 } ;	 
    	EndFor
  EndFor
  
  Printf("          no_lnchar_L =  %g       no_lnchar_T =  %g         ", no_lnchar_L,no_lnchar_T ) >> 'MESS_glo.txt';  
				
  For j In {1:7}  
      For i In {1:n_coupes-1}   
         ln=newll;                // Line Loop(3836) = {1, 1064, -8, -932};
         
                  Printf("       ln =  %g          ", ln ) >> 'MESS_glo.txt';           // n_inter = 132  a priori
                  A = no_lnchar_T+(j-1)+(i-1)*7 ;        
                  B = no_lnchar_L+(i-1)+(j)*n_inter;
                  C = no_lnchar_T+7+(j-1)+(i-1)*7; 
                  D = no_lnchar_L+(i-1)+(j-1)*n_inter;                   
                  Printf("        A =  %g  B =  %g  C =  %g  D =  %g  ",A,B,-C,-D ) >> 'MESS_glo.txt';             
                  Printf("              " ) >> 'MESS_glo.txt';      //  
      
         Line Loop(ln) = {A, B, -C, -D};   ns=news;      Plane Surface(ns) = {ln};  
       
              If (i == 1 )      no_Fond_D1[j]=ns;   EndIf   
              If (i == 8 )      no_Fond_D2[j]=ns;   EndIf   
              If (i == 19 )     no_Fond_D3[j]=ns;   EndIf   
              If (i == 30 )     no_Fond_D4[j]=ns;   EndIf                 
              If (i == 73 )     no_Fond_D5[j]=ns;   EndIf   
              If (i == 104 )    no_Fond_D6[j]=ns;   EndIf                                                                              
              If (i == 115 )    no_Fond_D7[j]=ns;   EndIf   
              If (i == 126 )    no_Fond_D8[j]=ns;   EndIf              
                 
              If (i == 7 )      no_Fond_F1[j]=ns;   EndIf                              
              If (i == 18 )     no_Fond_F2[j]=ns;   EndIf                              
              If (i == 29 )     no_Fond_F3[j]=ns;   EndIf                              
              If (i == 72 )     no_Fond_F4[j]=ns;   EndIf  
              If (i == 103 )    no_Fond_F5[j]=ns;   EndIf                              
              If (i == 114 )    no_Fond_F6[j]=ns;   EndIf      
              If (i == 125 )    no_Fond_F7[j]=ns;   EndIf                              
              If (i == 132 )    no_Fond_F8[j]=ns;   EndIf                    
              
                    
              If (i == 1 )      no_Ame_D1[j]=ns;   EndIf   
              If (i == 8 )      no_Ame_D2[j]=ns;   EndIf   
              If (i == 19 )     no_Ame_D3[j]=ns;   EndIf   
              If (i == 115 )    no_Ame_D4[j]=ns;   EndIf                 
              If (i == 126 )    no_Ame_D5[j]=ns;   EndIf   
                                                                                              
              If (i == 7 )      no_Ame_F1[j]=ns;   EndIf                              
              If (i == 18 )     no_Ame_F2[j]=ns;   EndIf                              
              If (i == 114 )    no_Ame_F3[j]=ns;   EndIf                              
              If (i == 125 )    no_Ame_F4[j]=ns;   EndIf                              
              If (i == 132 )    no_Ame_F5[j]=ns;   EndIf                              
              
         If (i == 1 ) 
         If (j == 1 )      
                                   no_charp_D=ns;                                 
         EndIf  EndIf 
         If (j == 7 ) 
         If (i == n_coupes-1 )      
                                   no_charp_F=ns;                                
         EndIf  EndIf                    
    	EndFor
  EndFor       
        
  Printf("             no_charp_D =  %g      no_charp_F =  %g      ", no_charp_D,no_charp_F) >> 'MESS_glo.txt';   

Return // T_Charp ----------------------------------
 
Function L_Ame_semel //-----------------------------------------------------------------   Liaisons Ame-semelle

  k=k+1;  // k = compteur de passages dans Charp     

  ln=newl;  
  If ( k == 1 ) 
     no_lnAmechar = ln; 
  EndIf 
  Line(ln)   = { ps1[k]+3,  pc1[k]} ;	  
  Line(ln+1) = { ps1[k]+10, pc1[k]+7 } ;	  
  
Return // L_Ame_semel ----------------------------------  
  
Function T_Ame_semel_1 //-----------------------------------------------------------------  

     no_lname1_L = no_lnsup_L+3*n_inter;
     Printf("   no_lname1_L  =  %g    no_lnAmechar =  %g    no_lnchar_L =  %g   ", no_lname1_L, no_lnAmechar, no_lnchar_L ) >> 'MESS_glo.txt';  

    
     For i In {1:n_coupes-1}   
         ln=newll;                  //  Line Loop(ln) = {9531, 17988, -15082, -17986};
                                    //                  {9532, 17990, -15083, -17988 };  etc ...
         
                  Printf("       ln =  %g          ", ln ) >> 'MESS_glo.txt';           // n_inter = 132  a priori
                  A = no_lname1_L+(i-1) ;        
                  B = no_lnAmechar+2*(i);
                  C = no_lnchar_L+(i-1); 
                  D = no_lnAmechar+2*(i-1);                   
                  Printf("        A =  %g  B =  %g  C =  %g  D =  %g  ",A,B,-C,-D ) >> 'MESS_glo.txt';             
                  Printf("              " ) >> 'MESS_glo.txt';      //  
      
         Line Loop(ln) = {A, B, -C, -D};   ns=news;      Plane Surface(ns) = {ln};  
         
              If (i == 1 )      no_LgAme_D1=ns;   EndIf   
              If (i == 8 )      no_LgAme_D2=ns;   EndIf   
              If (i == 19 )     no_LgAme_D3=ns;   EndIf   
              If (i == 115 )    no_LgAme_D4=ns;   EndIf                 
              If (i == 126 )    no_LgAme_D5=ns;   EndIf   
                                                                                           
              If (i == 7 )      no_LgAme_F1=ns;   EndIf                              
              If (i == 18 )     no_LgAme_F2=ns;   EndIf                              
              If (i == 114 )    no_LgAme_F3=ns;   EndIf                              
              If (i == 125 )    no_LgAme_F4=ns;   EndIf                              
              If (i == 132 )    no_LgAme_F5=ns;   EndIf         
            
    	EndFor   
 
Return // T_Ame_semel_1 ----------------------------------

Function T_Ame_semel_2 //-----------------------------------------------------------------  

     no_lname2_L = no_lname1_L + 7*n_inter;
     no_lnAmechar = no_lnAmechar + 1;
     no_lnchar_L = no_lnchar_L + 7*n_inter;
     Printf("   no_lname2_L  =  %g    no_lnAmechar =  %g    no_lnchar_L =  %g   ", no_lname2_L, no_lnAmechar, no_lnchar_L ) >> 'MESS_glo.txt';  

    
     For i In {1:n_coupes-1}   
         ln=newll;                  //  Line Loop(ln)  //     { 10455, 17989, 16006,  17987  };
                                    //                    etc ...
         
                  Printf("       ln =  %g          ", ln ) >> 'MESS_glo.txt';           // n_inter = 132  a priori
                  A = no_lname2_L+(i-1) ;        
                  B = no_lnAmechar+2*(i);
                  C = no_lnchar_L+(i-1); 
                  D = no_lnAmechar+2*(i-1);                   
                  Printf("        A =  %g  B =  %g  C =  %g  D =  %g  ",A,B,-C,-D ) >> 'MESS_glo.txt';             
                  Printf("              " ) >> 'MESS_glo.txt';      //  
      
         Line Loop(ln) = {A, B, -C, -D};   ns=news;      Plane Surface(ns) = {ln};  
         
              If (i == 1 )      no_LdAme_D1=ns;   EndIf       
              If (i == 8 )      no_LdAme_D2=ns;   EndIf        
              If (i == 19 )     no_LdAme_D3=ns;   EndIf        
              If (i == 115 )    no_LdAme_D4=ns;   EndIf        
              If (i == 126 )    no_LdAme_D5=ns;   EndIf        
                                                               
              If (i == 7 )      no_LdAme_F1=ns;   EndIf        
              If (i == 18 )     no_LdAme_F2=ns;   EndIf        
              If (i == 114 )    no_LdAme_F3=ns;   EndIf        
              If (i == 125 )    no_LdAme_F4=ns;   EndIf        
              If (i == 132 )    no_LdAme_F5=ns;   EndIf                    
 
    	EndFor   

Return // T_Ame_semel_2 ----------------------------------

Function L_Connex //-----------------------------------------------------------------  

  Printf("-----------------------  CONNECTEURS ----------------------------------------------------           " ) >> 'MESS_glo.txt';    

  k=0;
  For i In {1:n_coupes-1}   
        k=k+1;
        If ( i == 1 ) 
                           Printf("        i =  %g     ln =  %g  ",i,ln ) >> 'MESS_glo.txt';  
                           no_connex_D=ln;
        EndIf 
   
        If ( k==3 )         
                ln=newl;
                Line(ln)   = { pd1[i]+5,  ps1[i]+4} ;	     Line(ln+1)   = { pd1[i]+6,  ps1[i]+5} ;	
                Line(ln+2)   = { pd1[i]+10,  ps1[i]+8} ;	   Line(ln+3)   = { pd1[i]+11,  ps1[i]+9} ;	                 
               
         EndIf           
        If ( k==6 )         
                ln=newl;                  
                Line(ln)   = { pd1[i]+3,  ps1[i]+1} ;	   Line(ln+1)   = { pd1[i]+4,  ps1[i]+2} ;
                Line(ln+2) = { pd1[i]+12,  ps1[i]+11} ;	 Line(ln+3)   = { pd1[i]+13,  ps1[i]+12} ;	  	                 
                k=0; 
         EndIf            
  	EndFor  
  no_connex_F=ln+3;  
  Printf("         no_connex_D =  %g    no_connex_F =  %g                       ",no_connex_D,no_connex_F ) >> 'MESS_glo.txt';  
  
  k=0;
  For i In  {1:(n_coupes/3)-1}   
                k=k+1;
                ln=newll; 
                A = no_connex_D+2+4*(i-1);                  
                C = no_connex_D+3+4*(i-1); 
                If (k==1)   // i impair     
                   B = 8096+72*(i-1)/2;                    // dépendant de 132, etc ...             
                   D = 36+90*(i-1)/2;                   
                   Printf(" i impair   i =  %g  :    A =  %g  B =  %g  C =  %g  D =  %g  ",i,A,B,-C,-D ) >> 'MESS_glo.txt';                                   
                
                              Line Loop(ln)   = {A,B,-C,-D};   ns=news;      Plane Surface(ns) = {ln};    
                                If (i==1)  
                                          no_Sconnex_D =  ns ;
                                EndIf  
                EndIf
                    // i pair   
                If (k==2)                        
                   B = 8129+72*((i/2)-1);                   // dépendant de 132, etc ...                  
                   D = 79+90*((i/2)-1);                   
                   Printf(" i pair     i =  %g  :    A =  %g  B =  %g  C =  %g  D =  %g  ",i,A,B,-C,-D ) >> 'MESS_glo.txt'; 
                              Line Loop(ln)   = {A,B,-C,-D};    ns=news;      Plane Surface(ns) = {ln}; 
                k=0;
                EndIf
 	EndFor    
   Printf("---------------------------------------------------------------------------------------- " ) >> 'MESS_glo.txt';  
  k=0;
  For i In  {1:(n_coupes/3)-1}   
                k=k+1;
                ln=newll; 
                A = no_connex_D+5+4*(i-1);                  
                C = no_connex_D+4+4*(i-1); 
                If (k==1)   // i impair     
                   B = 8099+72*(i-1)/2;                    // dépendant de 132, etc ...             
                   D = 41+90*(i-1)/2;                   
                   Printf(" i impair   i =  %g  :    A =  %g  B =  %g  C =  %g  D =  %g  ",i,A,-B,-C,D ) >> 'MESS_glo.txt';                                   
                
                               Line Loop(ln)   = {A,-B,-C,D};   ns=news;      Plane Surface(ns) = {ln};       
                EndIf
                    // i pair   
                If (k==2)                        
                   B = 8138+72*((i/2)-1);                   // dépendant de 132, etc ...                  
                   D = 88+90*((i/2)-1);                   
                   Printf(" i pair     i =  %g  :    A =  %g  B =  %g  C =  %g  D =  %g  ",i,A,-B,-C,D ) >> 'MESS_glo.txt'; 
                               Line Loop(ln)   = {A,-B,-C,D};    ns=news;      Plane Surface(ns) = {ln}; 
                k=0;
                EndIf
 	EndFor         
   
  no_Sconnex_F=ns; 
       

Return // L_Connex ----------------------------------

//-----------------------------------------------------------------------------------------------------------------------------------------------


//                                                                       Initialise MESSAGES  INTERMEDIAIRES


  Printf("SORTIES INTERMEDIAIRES  --------------------------------------" ) > 'MESS_glo.txt'; // initialise MESS_glo     

  // z=0 au niveau dss membrures sup

  Cdalle=1000;   Point(Cdalle)  = {0.00  , -R , ep_dalle/2 ,  G_precis} ;

  Printf("             L_dalle =  %g      bs =  %g      ", L_dalle,bs) >> 'MESS_glo.txt'; 
  Printf("             L_Msup =  %g  ", L_Msup) >> 'MESS_glo.txt'; 
  Printf("             L_corn =  %g  ", L_corn) >> 'MESS_glo.txt'; 
  Printf("             u_exc =  %g  ", u_exc) >> 'MESS_glo.txt';   
    
  Printf("             th0 =  %g  ", th0) >> 'MESS_glo.txt';   

  n_coupes= n_inter+1;

//----------------------------------------------------------------------------------------------------------

Si_Dalle=1;   // 0 ou 1    
Si_Msup=1; 

//-------------------------------------- Lignes et plaques de la dalle

 If ( Si_Dalle == 1 )
 Printf("------------------------------------------------------------------------------       Lignes et plaques de la dalle ") >> 'MESS_glo.txt';   
  
     k=0;   // k = compteur de passages dans Coupe / initialisé à 0
     For i In {1:n_coupes}  
          Call S_dalle ;  // liens dans les coupes transversales 			 
	   EndFor
     Call T_dalle ;  // liens d'une coupe à l'autre	       
  EndIf 
  
//-------------------------------------- Lignes et plaques des Msup

  If ( Si_Msup == 1 )
  Printf("------------------------------------------------------------------------------       Lignes et plaques des Msup ") >> 'MESS_glo.txt';   
   
  
      k=0;   // k = compteur de passages dans Coupe / initialisé à 0
      For i In {1:n_coupes}  
        Call S_Msup ;  			 
			EndFor     
      Call T_Msup ;  
  EndIf   
  
 
//-------------------------------------- Lignes et plaques du reste de la charpente

  Printf("------------------------------------------------------------------------------       Lignes et plaques du reste de la charpente ") >> 'MESS_glo.txt';   

  k=0;   // k = compteur de passages dans Coupe / initialisé à 0
  For i In {1:n_coupes}  
       Call S_Charp ;  			 
	EndFor
  Call T_Charp ; 
    
  If ( Si_Msup == 1 )   
  Printf("------------------------------------------------------------------------------       Liaison S-Sup à la Charpente ") >> 'MESS_glo.txt';   
   
      k=0;   // k = compteur de passages dans Coupe / initialisé à 0
      For i In {1:n_coupes}  
           Call L_Ame_semel;  			 
			EndFor 

  Printf("------------------------------------------------------------------------------       Coques pour la S-Sup n°1 ") >> 'MESS_glo.txt';       
      Call T_Ame_semel_1 ;
  Printf("------------------------------------------------------------------------------       Coques pour la S-Sup n°2 ") >> 'MESS_glo.txt';       
      Call T_Ame_semel_2 ;
                    
  EndIf    
   
//------------------------------------------------------------------------------------------------- ENTRETOISE sur pile  si tout actif
  
  z= 0.0-3*c/7;   
  u=-(bs/2)*(3/5)  ; 
  np=newp;    Point(np) = {(u+R+(L_dalle/2))*Sin(th0), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th0) , z, G_precis} ;    
  u=+(bs/2)*(3/5)  ;   
  np=newp;    Point(np) = {(u+R+(L_dalle/2))*Sin(th0), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(th0) , z, G_precis} ;  
 
  thetaF =  th0+ n_coupes* pas / R; 
  u=-(bs/2)*(3/5)  ; 
  np=newp;    Point(np) = {(u+R+(L_dalle/2))*Sin(thetaF), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(thetaF) , z, G_precis} ;    
  u=+(bs/2)*(3/5)  ;   
  np=newp;    Point(np) = {(u+R+(L_dalle/2))*Sin(thetaF), R+(L_dalle/2) -(u+R+(L_dalle/2))*Cos(thetaF) , z, G_precis} ;


Call L_Connex;  
 
  nraidis=newl;                                                                                            
  Printf("             nraidis =  %g --------------------------------------------------------------- ", nraidis) >> 'MESS_glo.txt';                                       
  Line(nraidis)   = {6058, 4984};   Line(nraidis+1) = {6058, 6052};    Line(nraidis+2) = {6058, 6051};     
  Line(nraidis+3) = {6058, 6057};   Line(nraidis+4) = {6057, 4983};    Line(nraidis+5) = {6057, 6050};     
  Line(nraidis+6) = {6057, 6049};   Line(nraidis+7) = {6047, 4983};    Line(nraidis+8) = {6054, 4984};     
  
      //   19309
 
   
 ns_about1_D=news; 
    
  Line Loop(19666) = {19665, 9658, 9659, 9660, 18780};        Plane Surface(ns_about1_D) = {19666};
  Line Loop(19668) = {19664, -9657, -9656, -9655, 18779};     Plane Surface(ns_about1_D+1) = {19668};
  Line Loop(19670) = {19661, -19664, 15604, 15605, -19663};   Plane Surface(ns_about1_D+2) = {19670};
  Line Loop(19672) = {19660, 19662, 15607, -19659};           Plane Surface(ns_about1_D+3) = {19672};
  Line Loop(19674) = {19659, 15608, -19658};                  Plane Surface(ns_about1_D+4) = {19674};
  Line Loop(19676) = {19658, 15609, 15610, 19665, -19657};    Plane Surface(ns_about1_D+5) = {19676}; 
  Line Loop(19677) = {19662, -15606, -19663};                 Plane Surface(ns_about1_D+6) = {19677};
   
    	 
 
  
 
         
// ---------------------------------------------------- Suppression des centres inutiles pour la suite
 
  Delete {  Point{Cdalle};   }

// ---------------------------------------------------- Déclaration des Physicals
       
   dalle_Encorb=21;      // Encorbellement 22 cm            
   dalle_Membru=22;      // Membrures      30 cm            
   dalle_Centre=25;      // Centre         25 cm     
   
   Connex = 500;       
                                                       
   Msup_84  =  1084 ;   // semelles sup          
   Msup_53  =  1053 ;    
   Msup_24  =  1024 ;       
   Msup_33  =  1034 ;                                                
   Msup_72  =  1072 ;                                                
   Msup_111 =  1111 ;
   
   Ame_12 = 2012 ;       Ame_14 = 2014 ;      Ame_16 = 2016 ;       
   
   Fond_45  =  3045 ;        Fond_18  =  3018 ;     // Fond de caisson
   Fond_28  =  3028 ;        Fond_23  =  3023 ;
   Fond_22  =  3022 ;        Fond_40  =  3040 ;
   Fond_14  =  3014 ;        Fond_38  =  3038 ;
      
   About1=102;
   
  If ( Si_Dalle == 1 )   	 		
   Physical Surface(dalle_Encorb ) = {no_dalle_D1 : no_dalle_F1,  no_dalle_D5 : no_dalle_F5};		
   Physical Surface(dalle_Membru ) = {no_dalle_D2 : no_dalle_F2,  no_dalle_D4 : no_dalle_F4};	
   Physical Surface(dalle_Centre ) = {no_dalle_D3 : no_dalle_F3 };	        
  EndIf
  
     
//  Physical Line(Connex) =  {no_connex_D : no_connex_F };	   // provisoire phase mise au point  pour les lignes des connecteurs

   Physical Surface(Connex) = { no_Sconnex_D : no_Sconnex_F  };
  
  
  If (  Si_Msup==1  ) 
   Physical Surface(Msup_84)  = {no_Msupg_D1[1]: no_Msupg_F1[1],   no_Msupg_D1[2]: no_Msupg_F1[2], 
                                 no_Msupg_D1[3]: no_Msupg_F1[3],   no_Msupg_D1[4]: no_Msupg_F1[4], 
                                 no_Msupg_D1[5]: no_Msupg_F1[5],   no_Msupg_D1[6]: no_Msupg_F1[6], 
                                 no_Msupd_D1[8]: no_Msupd_F1[8],   no_Msupd_D1[9]: no_Msupd_F1[9],     
                                 no_Msupd_D1[10]:no_Msupd_F1[10],  no_Msupd_D1[11]:no_Msupd_F1[11], 
                                 no_Msupd_D1[12]:no_Msupd_F1[12],  no_Msupd_D1[13]:no_Msupd_F1[13]  }; 
                                 		
   Physical Surface(Msup_53)  = {no_Msupg_D2[1]: no_Msupg_F2[1],   no_Msupg_D2[2]: no_Msupg_F2[2],                  
                                 no_Msupg_D2[3]: no_Msupg_F2[3],   no_Msupg_D2[4]: no_Msupg_F2[4],                  
                                 no_Msupg_D2[5]: no_Msupg_F2[5],   no_Msupg_D2[6]: no_Msupg_F2[6],                  
                                 no_Msupd_D2[8]: no_Msupd_F2[8],   no_Msupd_D2[9]: no_Msupd_F2[9],                  
                                 no_Msupd_D2[10]:no_Msupd_F2[10],  no_Msupd_D2[11]:no_Msupd_F2[11],                 
                                 no_Msupd_D2[12]:no_Msupd_F2[12],  no_Msupd_D2[13]:no_Msupd_F2[13]  };              
                                 	
   Physical Surface(Msup_24)  = {no_Msupg_D3[1]: no_Msupg_F3[1],   no_Msupg_D3[2]: no_Msupg_F3[2],                  
                                 no_Msupg_D3[3]: no_Msupg_F3[3],   no_Msupg_D3[4]: no_Msupg_F3[4],                  
                                 no_Msupg_D3[5]: no_Msupg_F3[5],   no_Msupg_D3[6]: no_Msupg_F3[6],                  
                                 no_Msupd_D3[8]: no_Msupd_F3[8],   no_Msupd_D3[9]: no_Msupd_F3[9],                  
                                 no_Msupd_D3[10]:no_Msupd_F3[10],  no_Msupd_D3[11]:no_Msupd_F3[11],                 
                                 no_Msupd_D3[12]:no_Msupd_F3[12],  no_Msupd_D3[13]:no_Msupd_F3[13]  };    
                                 
   Physical Surface(Msup_33)  = {no_Msupg_D4[1]: no_Msupg_F4[1],   no_Msupg_D4[2]: no_Msupg_F4[2],             
                                 no_Msupg_D4[3]: no_Msupg_F4[3],   no_Msupg_D4[4]: no_Msupg_F4[4],             
                                 no_Msupg_D4[5]: no_Msupg_F4[5],   no_Msupg_D4[6]: no_Msupg_F4[6],             
                                 no_Msupd_D4[8]: no_Msupd_F4[8],   no_Msupd_D4[9]: no_Msupd_F4[9],             
                                 no_Msupd_D4[10]:no_Msupd_F4[10],  no_Msupd_D4[11]:no_Msupd_F4[11],            
                                 no_Msupd_D4[12]:no_Msupd_F4[12],  no_Msupd_D4[13]:no_Msupd_F4[13]  };         
                                 
   Physical Surface(Msup_72)  = {no_Msupg_D5[1]: no_Msupg_F5[1],   no_Msupg_D5[2]: no_Msupg_F5[2],         
                                 no_Msupg_D5[3]: no_Msupg_F5[3],   no_Msupg_D5[4]: no_Msupg_F5[4],        
                                 no_Msupg_D5[5]: no_Msupg_F5[5],   no_Msupg_D5[6]: no_Msupg_F5[6],        
                                 no_Msupd_D5[8]: no_Msupd_F5[8],   no_Msupd_D5[9]: no_Msupd_F5[9],        
                                 no_Msupd_D5[10]:no_Msupd_F5[10],  no_Msupd_D5[11]:no_Msupd_F5[11],       
                                 no_Msupd_D5[12]:no_Msupd_F5[12],  no_Msupd_D5[13]:no_Msupd_F5[13]  };  
                                    	
   Physical Surface(Msup_111) = {no_Msupg_D6[1]: no_Msupg_F6[1],   no_Msupg_D6[2]: no_Msupg_F6[2],         
                                 no_Msupg_D6[3]: no_Msupg_F6[3],   no_Msupg_D6[4]: no_Msupg_F6[4],        
                                 no_Msupg_D6[5]: no_Msupg_F6[5],   no_Msupg_D6[6]: no_Msupg_F6[6],        
                                 no_Msupd_D6[8]: no_Msupd_F6[8],   no_Msupd_D6[9]: no_Msupd_F6[9],        
                                 no_Msupd_D6[10]:no_Msupd_F6[10],  no_Msupd_D6[11]:no_Msupd_F6[11],       
                                 no_Msupd_D6[12]:no_Msupd_F6[12],  no_Msupd_D6[13]:no_Msupd_F6[13]  };     
 EndIf  //  Si_Msup                                    
                                                                                                                                                                                                                                                                  
 Physical Surface(Ame_16)  = {no_Ame_D1[1]: no_Ame_F1[1] , no_Ame_D1[2]: no_Ame_F1[2] , no_Ame_D1[6]: no_Ame_F1[6] , no_Ame_D1[7]: no_Ame_F1[7],
                              no_Ame_D5[1]: no_Ame_F5[1] , no_Ame_D5[2]: no_Ame_F5[2] , no_Ame_D5[6]: no_Ame_F5[6] , no_Ame_D5[7]: no_Ame_F5[7],
                              no_LdAme_D1 : no_LdAme_F1 ,  no_LgAme_D1 : no_LgAme_F1 ,  no_LdAme_D5 : no_LdAme_F5 ,  no_LgAme_D5 : no_LgAme_F5 };        
 Physical Surface(Ame_14)  = {no_Ame_D2[1]: no_Ame_F2[1] , no_Ame_D2[2]: no_Ame_F2[2] , no_Ame_D2[6]: no_Ame_F2[6] , no_Ame_D2[7]: no_Ame_F2[7],
                              no_Ame_D4[1]: no_Ame_F4[1] , no_Ame_D4[2]: no_Ame_F4[2] , no_Ame_D4[6]: no_Ame_F4[6] , no_Ame_D4[7]: no_Ame_F4[7], 
                              no_LdAme_D2 : no_LdAme_F2 ,  no_LgAme_D2 : no_LgAme_F2 ,  no_LdAme_D4 : no_LdAme_F4 ,  no_LgAme_D4 : no_LgAme_F4 }; 
 Physical Surface(Ame_12)  = {no_Ame_D3[1]: no_Ame_F3[1] , no_Ame_D3[2]: no_Ame_F3[2] , no_Ame_D3[6]: no_Ame_F3[6] , no_Ame_D3[7]: no_Ame_F3[7],               
                              no_LdAme_D3 : no_LdAme_F3 ,  no_LgAme_D3 : no_LgAme_F3     };        
 
                                  
 Physical Surface(Fond_45)  = {no_Fond_D1[3]: no_Fond_F1[3] , no_Fond_D1[4]: no_Fond_F1[4] , no_Fond_D1[5]: no_Fond_F1[5] };
 Physical Surface(Fond_28)  = {no_Fond_D2[3]: no_Fond_F2[3] , no_Fond_D2[4]: no_Fond_F2[4] , no_Fond_D2[5]: no_Fond_F2[5] };
 Physical Surface(Fond_22)  = {no_Fond_D3[3]: no_Fond_F3[3] , no_Fond_D3[4]: no_Fond_F3[4] , no_Fond_D3[5]: no_Fond_F3[5] };
 Physical Surface(Fond_14)  = {no_Fond_D4[3]: no_Fond_F4[3] , no_Fond_D4[4]: no_Fond_F4[4] , no_Fond_D4[5]: no_Fond_F4[5] };
 Physical Surface(Fond_18)  = {no_Fond_D5[3]: no_Fond_F5[3] , no_Fond_D5[4]: no_Fond_F5[4] , no_Fond_D5[5]: no_Fond_F5[5] };
 Physical Surface(Fond_23)  = {no_Fond_D6[3]: no_Fond_F6[3] , no_Fond_D6[4]: no_Fond_F6[4] , no_Fond_D6[5]: no_Fond_F6[5] };
 Physical Surface(Fond_40)  = {no_Fond_D7[3]: no_Fond_F7[3] , no_Fond_D7[4]: no_Fond_F7[4] , no_Fond_D7[5]: no_Fond_F7[5] };
 Physical Surface(Fond_38)  = {no_Fond_D8[3]: no_Fond_F8[3] , no_Fond_D8[4]: no_Fond_F8[4] , no_Fond_D8[5]: no_Fond_F8[5] };
       
// --------------------------------------------------------------------------------------- Abour d'un côté !!!!!! ( pas fini )
  
 Physical Line(100) = {nraidis : nraidis+8 };	
 Physical	Surface (About1) =   {  ns_about1_D :ns_about1_D+6  };	

Si_Color=1;      

If ( Si_Color == 1 )   


//--------------------------------------------------------- Couleurs des groupes physicals 
// 
// Color color-expression { Point | Line | Surface | Volume { expression-list }; ... }
// Sets the mesh color of the entities in expression-list to color-expression. 
//
// Codage des couleurs :     {25,50,100};     0 à 256 sur RVB  { Rouge Vert Bleu } 

//                         BLEUS                                   TURQUOISES ET VERTS

//
//  { "Navy"              ,    0,   0, 128, 255 } , { "PaleTurquoise"     ,  175, 238, 238, 255 } ,
//  { "NavyBlue"          ,    0,   0, 128, 255 } , { "DarkTurquoise"     ,    0, 206, 209, 255 } ,
//  { "CornflowerBlue"    ,  100, 149, 237, 255 } , { "MediumTurquoise"   ,   72, 209, 204, 255 } ,
//  { "DarkSlateBlue"     ,   72,  61, 139, 255 } , { "Turquoise"         ,   64, 224, 208, 255 } ,
//  { "SlateBlue"         ,  106,  90, 205, 255 } , { "Cyan"              ,    0, 255, 255, 255 } ,
//  { "MediumSlateBlue"   ,  123, 104, 238, 255 } , { "LightCyan"         ,  224, 255, 255, 255 } ,
//  { "LightSlateBlue"    ,  132, 112, 255, 255 } , { "CadetBlue"         ,   95, 158, 160, 255 } ,
//  { "MediumBlue"        ,    0,   0, 205, 255 } , { "MediumAquamarine"  ,  102, 205, 170, 255 } ,
//  { "RoyalBlue"         ,   65, 105, 225, 255 } , { "Aquamarine"        ,  127, 255, 212, 255 } ,
//  { "Blue"              ,    0,   0, 255, 255 } , { "DarkGreen"         ,    0, 100,   0, 255 } ,
//  { "DodgerBlue"        ,   30, 144, 255, 255 } , { "DarkOliveGreen"    ,   85, 107,  47, 255 } ,
//  { "DeepSkyBlue"       ,    0, 191, 255, 255 } , { "DarkSeaGreen"      ,  143, 188, 143, 255 } ,
//  { "SkyBlue"           ,  135, 206, 235, 255 } , { "SeaGreen"          ,   46, 139,  87, 255 } ,
//  { "LightSkyBlue"      ,  135, 206, 250, 255 } , { "MediumSeaGreen"    ,   60, 179, 113, 255 } ,
//  { "SteelBlue"         ,   70, 130, 180, 255 } , { "LightSeaGreen"     ,   32, 178, 170, 255 } ,
//  { "LightSteelBlue"    ,  176, 196, 222, 255 } , { "PaleGreen"         ,  152, 251, 152, 255 } ,
//  { "LightBlue"         ,  173, 216, 230, 255 } , { "SpringGreen"       ,    0, 255, 127, 255 } ,
//  { "PowderBlue"        ,  176, 224, 230, 255 } , { "LawnGreen"         ,  124, 252,   0, 255 } ,
//  { "PaleTurquoise"     ,  175, 238, 238, 255 } , { "Green"             ,    0, 255,   0, 255 } ,
//  { "DarkTurquoise"     ,    0, 206, 209, 255 } , { "chartreuse"        ,  127, 255,   0, 255 } ,
//  { "MediumTurquoise"   ,   72, 209, 204, 255 } , { "MediumSpringGreen" ,    0, 250, 154, 255 } ,
//  { "Turquoise"         ,   64, 224, 208, 255 } , { "GreenYellow"       ,  173, 255,  47, 255 } ,
//  { "Cyan"              ,    0, 255, 255, 255 } , { "LimeGreen"         ,   50, 205,  50, 255 } ,
//  { "LightCyan"         ,  224, 255, 255, 255 } , { "YellowGreen"       ,  154, 205,  50, 255 } ,
//  { "CadetBlue"         ,   95, 158, 160, 255 } , { "ForestGreen"       ,   34, 139,  34, 255 } ,
//  { "MediumAquamarine"  ,  102, 205, 170, 255 } , { "OliveDrab"         ,  107, 142,  35, 255 } ,
//  { "Aquamarine"        ,  127, 255, 212, 255 } , { "DarkKhaki"         ,  189, 183, 107, 255 } ,
//  { "Azure"             ,  240, 255, 255, 255 } , { "Khaki"             ,  240, 230, 140, 255 } ,
//  { "AliceBlue"         ,  240, 248, 255, 255 } ,


//                   ROUGES                                               JAUNES
    
//  { "Firebrick"       ,  178,  34,  34, 255 } ,       { "OldLace"                  ,  253, 245, 230, 255 } ,
//  { "Brown"           ,  165,  42,  42, 255 } ,       { "Linen"                    ,  250, 240, 230, 255 } ,
//  { "DarkSalmon"      ,  233, 150, 122, 255 } ,       { "AntiqueWhite"             ,  250, 235, 215, 255 } ,
//  { "Salmon"          ,  250, 128, 114, 255 } ,       { "PapayaWhip"               ,  255, 239, 213, 255 } ,
//  { "LightSalmon"     ,  255, 160, 122, 255 } ,       { "BlanchedAlmond"           ,  255, 235, 205, 255 } ,
//  { "Orange"          ,  255, 165,   0, 255 } ,       { "Bisque"                   ,  255, 228, 196, 255 } ,
//  { "DarkOrange"      ,  255, 140,   0, 255 } ,       { "PeachPuff"                ,  255, 218, 185, 255 } ,
//  { "Coral"           ,  255, 127,  80, 255 } ,       { "NavajoWhite"              ,  255, 222, 173, 255 } ,
//  { "LightCoral"      ,  240, 128, 128, 255 } ,       { "Moccasin"                 ,  255, 228, 181, 255 } ,
//  { "Tomato"          ,  255,  99,  71, 255 } ,       { "Cornsilk"                 ,  255, 248, 220, 255 } ,
//  { "OrangeRed"       ,  255,  69,   0, 255 } ,       { "Ivory"                    ,  255, 255, 240, 255 } ,
//  { "Red"             ,  255,   0,   0, 255 } ,       { "LemonChiffon"             ,  255, 250, 205, 255 } ,
//  { "HotPink"         ,  255, 105, 180, 255 } ,       { "Seashell"                 ,  255, 245, 238, 255 } ,
//  { "DeepPink"        ,  255,  20, 147, 255 } ,       { "Honeydew"                 ,  240, 255, 240, 255 } ,
//  { "Pink"            ,  255, 192, 203, 255 } ,       { "MintCream"                ,  245, 255, 250, 255 } ,
//  { "LightPink"       ,  255, 182, 193, 255 } ,
//  { "PaleVioletRed"   ,  219, 112, 147, 255 } ,
//  { "Maroon"          ,  176,  48,  96, 255 } ,
//  { "MediumVioletRed" ,  199,  21, 133, 255 } ,
//  { "VioletRed"       ,  208,  32, 144, 255 } ,
//  { "Magenta"         ,  255,   0, 255, 255 } ,
//  { "Violet"          ,  238, 130, 238, 255 } ,
//  { "Plum"            ,  221, 160, 221, 255 } ,
//  { "Orchid"          ,  218, 112, 214, 255 } ,
//  { "MediumOrchid"    ,  186,  85, 211, 255 } ,
//  { "DarkOrchid"      ,  153,  50, 204, 255 } ,
//  { "DarkViolet"      ,  148,   0, 211, 255 } ,
//  { "BlueViolet"      ,  138,  43, 226, 255 } ,
//  { "Purple"          ,  160,  32, 240, 255 } ,
//  { "MediumPurple"    ,  147, 112, 219, 255 } ,
    
// DALLE 
    
Color Yellow         {   Surface {no_dalle_D1 : no_dalle_F1,  no_dalle_D5 : no_dalle_F5};	 }   //    dalle_Encorb   
Color Orange         {   Surface {no_dalle_D2 : no_dalle_F2,  no_dalle_D4 : no_dalle_F4};	 }   //    dalle_Membru         {200,200,256} 
Color Yellow         {   Surface {no_dalle_D3 : no_dalle_F3 };	 }                             //    dalle_Centre   

// CONNEXION

Color Red         {   Surface  { no_Sconnex_D : no_Sconnex_F  };   }   
    
// MSUP
    
Color SteelBlue   {      Surface{no_Msupg_D1[1]: no_Msupg_F1[1],   no_Msupg_D1[2]: no_Msupg_F1[2],       //  Msup_84   {30,30,100}
                                 no_Msupg_D1[3]: no_Msupg_F1[3],   no_Msupg_D1[4]: no_Msupg_F1[4], 
                                 no_Msupg_D1[5]: no_Msupg_F1[5],   no_Msupg_D1[6]: no_Msupg_F1[6], 
                                 no_Msupd_D1[8]: no_Msupd_F1[8],   no_Msupd_D1[9]: no_Msupd_F1[9],     
                                 no_Msupd_D1[10]:no_Msupd_F1[10],  no_Msupd_D1[11]:no_Msupd_F1[11], 
                                 no_Msupd_D1[12]:no_Msupd_F1[12],  no_Msupd_D1[13]:no_Msupd_F1[13]  }; 
            }                     		           
Color DarkTurquoise {    Surface{no_Msupg_D2[1]: no_Msupg_F2[1],   no_Msupg_D2[2]: no_Msupg_F2[2],       //  Msup_53    {50,50,200}        
                                 no_Msupg_D2[3]: no_Msupg_F2[3],   no_Msupg_D2[4]: no_Msupg_F2[4],                  
                                 no_Msupg_D2[5]: no_Msupg_F2[5],   no_Msupg_D2[6]: no_Msupg_F2[6],                  
                                 no_Msupd_D2[8]: no_Msupd_F2[8],   no_Msupd_D2[9]: no_Msupd_F2[9],                  
                                 no_Msupd_D2[10]:no_Msupd_F2[10],  no_Msupd_D2[11]:no_Msupd_F2[11],                 
                                 no_Msupd_D2[12]:no_Msupd_F2[12],  no_Msupd_D2[13]:no_Msupd_F2[13]  };              
           }                      	
Color Grey          {    Surface{no_Msupg_D3[1]: no_Msupg_F3[1],   no_Msupg_D3[2]: no_Msupg_F3[2],       //  Msup_24     {50,50,256}       
                                 no_Msupg_D3[3]: no_Msupg_F3[3],   no_Msupg_D3[4]: no_Msupg_F3[4],                  
                                 no_Msupg_D3[5]: no_Msupg_F3[5],   no_Msupg_D3[6]: no_Msupg_F3[6],                  
                                 no_Msupd_D3[8]: no_Msupd_F3[8],   no_Msupd_D3[9]: no_Msupd_F3[9],                  
                                 no_Msupd_D3[10]:no_Msupd_F3[10],  no_Msupd_D3[11]:no_Msupd_F3[11],                 
                                 no_Msupd_D3[12]:no_Msupd_F3[12],  no_Msupd_D3[13]:no_Msupd_F3[13]  };    
           }                      
Color LightSkyBlue   {   Surface{no_Msupg_D4[1]: no_Msupg_F4[1],   no_Msupg_D4[2]: no_Msupg_F4[2],      //  Msup_33    {75,75,200}   
                                 no_Msupg_D4[3]: no_Msupg_F4[3],   no_Msupg_D4[4]: no_Msupg_F4[4],             
                                 no_Msupg_D4[5]: no_Msupg_F4[5],   no_Msupg_D4[6]: no_Msupg_F4[6],             
                                 no_Msupd_D4[8]: no_Msupd_F4[8],   no_Msupd_D4[9]: no_Msupd_F4[9],             
                                 no_Msupd_D4[10]:no_Msupd_F4[10],  no_Msupd_D4[11]:no_Msupd_F4[11],            
                                 no_Msupd_D4[12]:no_Msupd_F4[12],  no_Msupd_D4[13]:no_Msupd_F4[13]  };         
           }                      
Color DarkTurquoise {  Surface{  no_Msupg_D5[1]: no_Msupg_F5[1],   no_Msupg_D5[2]: no_Msupg_F5[2],      //  Msup_72    {40,40,200} 
                                 no_Msupg_D5[3]: no_Msupg_F5[3],   no_Msupg_D5[4]: no_Msupg_F5[4],        
                                 no_Msupg_D5[5]: no_Msupg_F5[5],   no_Msupg_D5[6]: no_Msupg_F5[6],        
                                 no_Msupd_D5[8]: no_Msupd_F5[8],   no_Msupd_D5[9]: no_Msupd_F5[9],        
                                 no_Msupd_D5[10]:no_Msupd_F5[10],  no_Msupd_D5[11]:no_Msupd_F5[11],       
                                 no_Msupd_D5[12]:no_Msupd_F5[12],  no_Msupd_D5[13]:no_Msupd_F5[13]  };  
           }                         	
Color  SteelBlue    {   Surface {no_Msupg_D6[1]: no_Msupg_F6[1],   no_Msupg_D6[2]: no_Msupg_F6[2],     //  Msup_111   
                                 no_Msupg_D6[3]: no_Msupg_F6[3],   no_Msupg_D6[4]: no_Msupg_F6[4],        
                                 no_Msupg_D6[5]: no_Msupg_F6[5],   no_Msupg_D6[6]: no_Msupg_F6[6],        
                                 no_Msupd_D6[8]: no_Msupd_F6[8],   no_Msupd_D6[9]: no_Msupd_F6[9],        
                                 no_Msupd_D6[10]:no_Msupd_F6[10],  no_Msupd_D6[11]:no_Msupd_F6[11],       
                                 no_Msupd_D6[12]:no_Msupd_F6[12],  no_Msupd_D6[13]:no_Msupd_F6[13]  };  
            }

                                                                                                                                                    
Color  DarkTurquoise {   Surface {no_Ame_D1[1]: no_Ame_F1[1] , no_Ame_D1[2]: no_Ame_F1[2] , no_Ame_D1[6]: no_Ame_F1[6] , no_Ame_D1[7]: no_Ame_F1[7],  // Ame 16  
                              no_Ame_D5[1]: no_Ame_F5[1] , no_Ame_D5[2]: no_Ame_F5[2] , no_Ame_D5[6]: no_Ame_F5[6] , no_Ame_D5[7]: no_Ame_F5[7],    
                              no_LdAme_D1 : no_LdAme_F1 ,  no_LgAme_D1 : no_LgAme_F1 ,  no_LdAme_D5 : no_LdAme_F5 ,  no_LgAme_D5 : no_LgAme_F5 }; 
                   }                 
Color  Turquoise {   Surface {no_Ame_D2[1]: no_Ame_F2[1] , no_Ame_D2[2]: no_Ame_F2[2] , no_Ame_D2[6]: no_Ame_F2[6] , no_Ame_D2[7]: no_Ame_F2[7],     // Ame 14
                              no_Ame_D4[1]: no_Ame_F4[1] , no_Ame_D4[2]: no_Ame_F4[2] , no_Ame_D4[6]: no_Ame_F4[6] , no_Ame_D4[7]: no_Ame_F4[7],    
                              no_LdAme_D2 : no_LdAme_F2 ,  no_LgAme_D2 : no_LgAme_F2 ,  no_LdAme_D4 : no_LdAme_F4 ,  no_LgAme_D4 : no_LgAme_F4 }; 
                }     
Color PaleTurquoise{ Surface {no_Ame_D3[1]: no_Ame_F3[1] , no_Ame_D3[2]: no_Ame_F3[2] , no_Ame_D3[6]: no_Ame_F3[6] , no_Ame_D3[7]: no_Ame_F3[7],   // Ame 12 
                              no_LdAme_D3 : no_LdAme_F3 ,  no_LgAme_D3 : no_LgAme_F3     };                                                         
                  }                                                                                                                                      

Color SteelBlue       { Surface {no_Fond_D1[3]: no_Fond_F1[3] , no_Fond_D1[4]: no_Fond_F1[4] , no_Fond_D1[5]: no_Fond_F1[5] }; } // Fond_45   SteelBlue
Color DarkTurquoise   { Surface {no_Fond_D2[3]: no_Fond_F2[3] , no_Fond_D2[4]: no_Fond_F2[4] , no_Fond_D2[5]: no_Fond_F2[5] }; } // Fond_28   DarkTurquoise
Color LightSkyBlue    { Surface {no_Fond_D3[3]: no_Fond_F3[3] , no_Fond_D3[4]: no_Fond_F3[4] , no_Fond_D3[5]: no_Fond_F3[5] }; } // Fond_22   LightSkyBlue
Color Grey            { Surface {no_Fond_D4[3]: no_Fond_F4[3] , no_Fond_D4[4]: no_Fond_F4[4] , no_Fond_D4[5]: no_Fond_F4[5] }; } // Fond_14   Grey
Color LightSteelBlue  { Surface {no_Fond_D5[3]: no_Fond_F5[3] , no_Fond_D5[4]: no_Fond_F5[4] , no_Fond_D5[5]: no_Fond_F5[5] }; } // Fond_18   LightSteelBlue
Color LightSkyBlue    { Surface {no_Fond_D6[3]: no_Fond_F6[3] , no_Fond_D6[4]: no_Fond_F6[4] , no_Fond_D6[5]: no_Fond_F6[5] }; } // Fond_23   LightSkyBlue
Color DarkTurquoise   { Surface {no_Fond_D7[3]: no_Fond_F7[3] , no_Fond_D7[4]: no_Fond_F7[4] , no_Fond_D7[5]: no_Fond_F7[5] }; } // Fond_40   DarkTurquoise
Color SteelBlue       { Surface {no_Fond_D8[3]: no_Fond_F8[3] , no_Fond_D8[4]: no_Fond_F8[4] , no_Fond_D8[5]: no_Fond_F8[5] }; } // Fond_38   SteelBlue
                                                                                                                                   


Color Red             { Line {nraidis : nraidis+8 };	         }
Color SteelBlue       { Surface {ns_about1_D :ns_about1_D+6};	   }       


EndIf

// Fin	
 
 
 
 