Bonjour,
D'abord bravo pour le logiciel très fiable ( j'utilise les versions
2.14.1 et 3.05 sous windows et des versions correspondantes sous Ubuntu
pour des modélisation pour Code_Aster ).
Cependant un problème subsiste concernant la coloration par entité physique.
Il semble que des Physicals sans rapport soient regroupés et portent la
même couleur
après Mesh et Color by Physical group.
Dans l'exemple joint ( un pont ) c'est le cas du groupe Five qui
rassemble arbitrairement des éléments de la dalle et du fond de caisson,
dont les Physical ont été créés séparément.
Sincères salutations.
Jacques BERTHELLEMY.
_______________________
CEREMA/CTOA, Division des Grands Ouvrages et de l'Innovation
14-20 boulevard Newton, Cité Descartes
77420 Champs-sur-Marne FRANCE
Mobile Cerema : + 33 7 60 83 36 91
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 ----------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------------
//
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} ;
// 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};
//
// ns_about1=news;
// Line Loop(19318) = {15610, 19317, -19309, 19310, 15609}; Plane
Surface(ns_about1) = {19318};
// Line Loop(19320) = {19310, -15608, -19311}; Plane Surface(ns_about1+1) =
{19320};
// Line Loop(19322) = {19317, 9658, 9659, 9660, 18780}; Plane
Surface(ns_about1+2) = {19322};
// Line Loop(19324) = {19312, 19314, 15607, -19311}; Plane
Surface(ns_about1+3) = {19324};
// Line Loop(19326) = {19314, -15606, -19315}; Plane Surface(ns_about1+4) =
{19326};
// Line Loop(19328) = {19313, -9657, -9656, -9655, 18779, 15604, 15605,
-19315}; Plane Surface(ns_about1+5) = {19328};
// Line Loop(19329) = {19316, -9657, -9656, -9655, 18779}; Plane
Surface(ns_about1+6) = {19329};
//
//
//
//
// ---------------------------------------------------- Suppression des centres
inutiles pour la suite
Delete { Point{Cdalle}; }
// ---------------------------------------------------- Déclaration des
Physicals
dalle_E=21; // Encorbellement 22 cm
dalle_M=22; // Membrures 30 cm
dalle_C=25; // Centre 25 cm
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_E) = {no_dalle_D1 : no_dalle_F1, no_dalle_D5 :
no_dalle_F5};
Physical Surface(dalle_M) = {no_dalle_D2 : no_dalle_F2, no_dalle_D4 :
no_dalle_F4};
Physical Surface(dalle_C) = {no_dalle_D3 : no_dalle_F3 };
EndIf
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(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] };
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 Line(100) = {nraidis : nraidis+8 };
// Physical Surface (About1) = { ns_about1 :ns_about1+6 };
// Fin
_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh