ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 966
Committed: Thu Sep 6 16:46:34 2018 UTC (6 years, 8 months ago) by couturad
File size: 44217 byte(s)
Log Message:
Ajout de l'histogramme a MAGIC_PLOT
Ajout d'une sortie OK ou FAIL (int) au MAILLEUR afin de gerer certaines exceptions
Ajout d'une phase RSA a la fin du generateur DCR

File Contents

# User Rev Content
1 francois 756 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // main.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H25
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25    
26    
27     #include "gestionversion.h"
28     #include "magic_application.h"
29 couturad 919 #include "mstruct_ves.h"
30     #include "mstruct_ver.h"
31     #include "mstruct_parametres.h"
32     #include "mg_gestionnaire.h"
33     #include "mg_file.h"
34     #include "fct_taille_fem_solution.h"
35 couturad 926 #include "mstruct_ves_file.h"
36 francois 947 #include "mstruct_generateur_polycristaux.h"
37 couturad 919 #ifdef ALL_OCC
38     #include "occ_import.h"
39     #endif
40 francois 756 //---------------------------------------------------------------------------
41    
42    
43    
44     int main(int argc,char **argv)
45     {
46     std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
47 couturad 919
48     // p_in(1) -in
49     // p_out(2) -out
50     MAGIC_PARAMETRE_APPLICATION p1(3,(char*)"-ves_in",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES d'entree");
51     MAGIC_PARAMETRE_APPLICATION p2(4,(char*)"-ves_out",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES de sortie");
52     MAGIC_PARAMETRE_APPLICATION p3(5,(char*)"-param",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de parametres");
53     MAGIC_PARAMETRE_APPLICATION p4(6,(char*)"-lstparam",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier listant plusieurs fichiers de parametres");
54     MAGIC_PARAMETRE_APPLICATION p5(7,(char*)"-gen_geo",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer la geometrie");
55     MAGIC_PARAMETRE_APPLICATION p6(8,(char*)"-gen_mat",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer les materiaux");
56     MAGIC_PARAMETRE_APPLICATION p7(9,(char*)"-gen_carte",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer la carte de taille");
57     MAGIC_PARAMETRE_APPLICATION p8(10,(char*)"-gen_mg_maill",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer le MG maillage");
58     MAGIC_PARAMETRE_APPLICATION p9(11,(char*)"-gen_fem_maill",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer le FEM maillage");
59     MAGIC_PARAMETRE_APPLICATION p10(12,(char*)"-gen_etude",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer l'etude");
60 couturad 926 MAGIC_PARAMETRE_APPLICATION p11(13,(char*)"-gen_analyse",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer l'analyse des resultats");
61 couturad 919 MAGIC_PARAMETRE_APPLICATION p12(14,(char*)"-carte",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Carte de taille FEM solution");
62     MAGIC_PARAMETRE_APPLICATION p13(15,(char*)"-calcul",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Lancer la resolution numerique");
63     MAGIC_PARAMETRE_APPLICATION p14(16,(char*)"-creeparam",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Creer une structure de parametres");
64     MAGIC_PARAMETRE_APPLICATION p15(17,(char*)"-tristl",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Importation de la triangulation STL de la microstructure");
65     MAGIC_PARAMETRE_APPLICATION p16(18,(char*)"-eps",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Distance max entre la triangulation et la géométrie");
66     MAGIC_PARAMETRE_APPLICATION p17(19,(char*)"-paramaster",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de parametre aster");
67 couturad 926 MAGIC_PARAMETRE_APPLICATION p18(20,(char*)"-dossier",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Dossier de resultat");
68 couturad 951 MAGIC_PARAMETRE_APPLICATION p19(21,(char*)"-cumuler_analyses",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Cumuler les analyses d'une liste de VES");
69 couturad 919 MAGIC_PARAMETRE_APPLICATION p20(22,(char*)"-lstves",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Liste de VES");
70 couturad 926 MAGIC_PARAMETRE_APPLICATION p21(23,(char*)"-affiche_contenu",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Affiche le contenu d'un fichier VES");
71     MAGIC_PARAMETRE_APPLICATION p22(24,(char*)"-incrementale",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Cumuler les analyses de facon incrementale");
72     MAGIC_PARAMETRE_APPLICATION p23(25,(char*)"-avec_histogramme",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Generer les histogrammes");
73 couturad 951 MAGIC_PARAMETRE_APPLICATION p24(26,(char*)"-exporter_modules_meca",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Exporter les modules mecaniques d'une liste de VES");
74 couturad 927 MAGIC_PARAMETRE_APPLICATION p25(27,(char*)"-lstves_spherique",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Liste de VES de type chargement spherique");
75     MAGIC_PARAMETRE_APPLICATION p26(28,(char*)"-lstves_deviatorique",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Liste de VES de type chargement deviatorique");
76 couturad 929 MAGIC_PARAMETRE_APPLICATION p27(29,(char*)"-type_etude",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type d'etude : [0] mecanique, [1] thermique");
77 couturad 933 MAGIC_PARAMETRE_APPLICATION p28(30,(char*)"-export_maill_abaqus",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Exportation du maillage au format ABAQUS");
78 couturad 951 MAGIC_PARAMETRE_APPLICATION p29(31,(char*)"-exporter_analyses",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Exportation des analyses");
79 francois 947 MAGIC_PARAMETRE_APPLICATION p30(32,(char*)"-polycristaux",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"génération d'un polycristal");
80     MAGIC_PARAMETRE_APPLICATION p31(33,(char*)"-creeparampoly",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Création d'un fichier de paramétres");
81 couturad 951 MAGIC_PARAMETRE_APPLICATION p32(34,(char*)"-type_inclusion",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type d'inclusion : [0] Sphere, [1] Cylindre, [2] Ellipsoide, [3] Boite");
82     MAGIC_PARAMETRE_APPLICATION p33(35,(char*)"-type_maillage",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type de maillage : [0] lineaire, [1] quadratique, [2] lineaire et quadratique");
83     MAGIC_PARAMETRE_APPLICATION p34(36,(char*)"-cumuler_modules_meca",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Cumuler les modules mecaniques d'une liste de VES");
84     MAGIC_PARAMETRE_APPLICATION p35(37,(char*)"-type_generateur",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type de generateur : [0] RSA, [1] DCR");
85 couturad 919 p5.ajouter_dependance(4);p5.ajouter_dependance(5);p5.ajouter_dependance(6);
86     p6.ajouter_dependance(3);p6.ajouter_dependance(4);p6.ajouter_dependance(5);p6.ajouter_dependance(6);
87 couturad 926 p7.ajouter_dependance(3);p7.ajouter_dependance(4);p7.ajouter_dependance(5);
88 couturad 919 p8.ajouter_dependance(3);p8.ajouter_dependance(4);p8.ajouter_dependance(5);p8.ajouter_dependance(14);
89     p9.ajouter_dependance(3);p9.ajouter_dependance(4);p9.ajouter_dependance(5);
90     p10.ajouter_dependance(3);p10.ajouter_dependance(4);p10.ajouter_dependance(5);
91 couturad 926 p11.ajouter_dependance(3);p11.ajouter_dependance(4);p11.ajouter_dependance(5);p11.ajouter_dependance(6);
92 couturad 919 p13.ajouter_dependance(3);p13.ajouter_dependance(4);p13.ajouter_dependance(5);p13.ajouter_dependance(19);
93 couturad 951 p14.ajouter_dependance(29);p14.ajouter_dependance(37);p14.ajouter_dependance(34);p14.ajouter_dependance(35);
94 couturad 919 p15.ajouter_dependance(3);p15.ajouter_dependance(18);p15.ajouter_dependance(4);
95 couturad 951 p19.ajouter_dependance(22);p19.ajouter_dependance(5);p19.ajouter_dependance(6);p19.ajouter_dependance(20);p19.ajouter_dependance(25);
96 couturad 919 p21.ajouter_dependance(3);
97 couturad 951 p24.ajouter_dependance(5);p24.ajouter_dependance(6);p24.ajouter_dependance(20);p24.ajouter_dependance(27);p24.ajouter_dependance(28);
98 couturad 933 p28.ajouter_dependance(3);
99 couturad 934 p29.ajouter_dependance(22);p29.ajouter_dependance(5);p29.ajouter_dependance(6);p29.ajouter_dependance(20);
100 francois 947 p30.ajouter_dependance(2);p30.ajouter_dependance(5);p30.ajouter_dependance(33);
101 couturad 951 p34.ajouter_dependance(5);p34.ajouter_dependance(6);p34.ajouter_dependance(20);p34.ajouter_dependance(25);p34.ajouter_dependance(27);p34.ajouter_dependance(28);
102    
103 couturad 772 lst.push_back(p1);
104     lst.push_back(p2);
105     lst.push_back(p3);
106 couturad 919 lst.push_back(p4);
107     lst.push_back(p5);
108     lst.push_back(p6);
109     lst.push_back(p7);
110     lst.push_back(p8);
111     lst.push_back(p9);
112     lst.push_back(p10);
113     lst.push_back(p11);
114     lst.push_back(p12);
115     lst.push_back(p13);
116     lst.push_back(p14);
117     lst.push_back(p15);
118     lst.push_back(p16);
119     lst.push_back(p17);
120     lst.push_back(p18);
121     lst.push_back(p19);
122     lst.push_back(p20);
123     lst.push_back(p21);
124 couturad 926 lst.push_back(p22);
125     lst.push_back(p23);
126 couturad 927 lst.push_back(p24);
127     lst.push_back(p25);
128     lst.push_back(p26);
129 couturad 929 lst.push_back(p27);
130 couturad 933 lst.push_back(p28);
131 couturad 934 lst.push_back(p29);
132 francois 947 lst.push_back(p30);
133     lst.push_back(p31);
134 couturad 951 lst.push_back(p32);
135     lst.push_back(p33);
136     lst.push_back(p34);
137     lst.push_back(p35);
138 francois 756
139 couturad 951
140 couturad 919 MAGIC_APPLICATION app((char*)"Homogéinisation d'une microstructure",argc,argv,lst,true,true);
141     if(app.get_erreur()==true) return 0;
142     if(app.get_action()==7)
143 couturad 772 {
144 couturad 919 app.affiche((char*)"**************************************");
145     app.affiche((char*)"*** Generation de la geometrie ***");
146     app.affiche((char*)"**************************************");
147     char fichier_ves_out[500];
148     char fichier_param[500];
149     char fichier_lstparam[500];
150     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
151     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
152     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
153     if (app.get_erreur()==true) return 0;
154     std::string str_fichier_ves_out = fichier_ves_out;
155     size_t found = str_fichier_ves_out.rfind((char*)".");
156     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
157     str_fichier_magic_out.append((char*)".magic");
158     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
159     {
160     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
161     return 0;
162     }
163     if(strlen(fichier_param)>0)
164     {
165     std::vector<OT_PARAMETRES*> vector_param_geometrie;
166 couturad 964 OT_PARAMETRES* param_geometrie = new OT_PARAMETRES;
167     char message[5000];
168     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_geometrie)==FAIL)
169     {
170     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
171     app.affiche(message);
172     return 1;
173     }
174     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
175     app.affiche(message);
176 couturad 919 vector_param_geometrie.push_back(param_geometrie);
177 couturad 926 MSTRUCT_VES ves;
178 couturad 919 ves.active_affichage(app.affiche);
179 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
180     {
181     delete param_geometrie;
182     return 1;
183     }
184 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
185     delete param_geometrie;
186     }
187     else if(strlen(fichier_lstparam)>0)
188     {
189     std::vector<OT_PARAMETRES*> vector_param_geometrie;
190 couturad 964 char message[5000];
191     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_geometrie)==FAIL)
192     {
193     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
194     app.affiche(message);
195     return 1;
196     }
197     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
198     app.affiche(message);
199 couturad 926 MSTRUCT_VES ves;
200 couturad 919 ves.active_affichage(app.affiche);
201 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
202     {
203     std::vector<OT_PARAMETRES*>::iterator it_vector;
204     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
205     {
206     delete *it_vector;
207     }
208     return 1;
209     }
210 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
211     std::vector<OT_PARAMETRES*>::iterator it_vector;
212     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
213     {
214     delete *it_vector;
215     }
216     }
217 couturad 964 char message[5000];
218     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
219     app.affiche(message);
220     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
221     app.affiche(message);
222 couturad 772 }
223 francois 756
224 couturad 919 if(app.get_action()==8)
225 couturad 772 {
226 couturad 919 app.affiche((char*)"************************************");
227     app.affiche((char*)"*** Generation des materiaux ***");
228     app.affiche((char*)"************************************");
229     char fichier_ves_in[500];
230     char fichier_ves_out[500];
231     char fichier_param[500];
232     char fichier_lstparam[500];
233     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
234     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
235     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
236     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
237     if (app.get_erreur()==true) return 0;
238 couturad 964 char message[5000];
239     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
240     app.affiche(message);
241 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
242     size_t found = str_fichier_ves_out.rfind((char*)".");
243     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
244     str_fichier_magic_out.append((char*)".magic");
245     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
246     {
247     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
248     return 0;
249     }
250     if(strlen(fichier_param)>0)
251     {
252     std::vector<OT_PARAMETRES*> vector_param_materiau;
253     OT_PARAMETRES* param_materiau = new OT_PARAMETRES;
254 couturad 964 char message[5000];
255     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_materiau)==FAIL)
256     {
257     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
258     app.affiche(message);
259     return 1;
260     }
261     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
262     app.affiche(message);
263 couturad 919 vector_param_materiau.push_back(param_materiau);
264 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
265 couturad 919 ves.active_affichage(app.affiche);
266     ves.generer_materiau(vector_param_materiau);
267     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
268     delete param_materiau;
269     }
270     else if(strlen(fichier_lstparam)>0)
271     {
272     std::vector<OT_PARAMETRES*> vector_param_materiau;
273 couturad 964 char message[5000];
274     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_materiau)==FAIL)
275     {
276     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
277     app.affiche(message);
278     return 1;
279     }
280     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
281     app.affiche(message);
282 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
283 couturad 919 ves.active_affichage(app.affiche);
284     ves.generer_materiau(vector_param_materiau);
285     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
286     std::vector<OT_PARAMETRES*>::iterator it_vector;
287     for(it_vector=vector_param_materiau.begin();it_vector!=vector_param_materiau.end();it_vector++)
288     {
289     delete *it_vector;
290     }
291     }
292 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
293     app.affiche(message);
294     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
295     app.affiche(message);
296 couturad 772 }
297 couturad 919
298     if(app.get_action()==9)
299     {
300     app.affiche((char*)"********************************************");
301     app.affiche((char*)"*** Generation de la carte de taille ***");
302     app.affiche((char*)"********************************************");
303     char fichier_ves_in[500];
304     char fichier_param[500];
305 couturad 926 char fichier_ves_out[500];
306 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
307 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
308 couturad 919 app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
309     if (app.get_erreur()==true) return 0;
310 couturad 964 char message[5000];
311     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
312     app.affiche(message);
313 couturad 919 OT_PARAMETRES* param_carte = new OT_PARAMETRES;
314 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_carte)==FAIL)
315     {
316     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
317     app.affiche(message);
318     return 1;
319     }
320     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
321     app.affiche(message);
322 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
323 couturad 919 ves.active_affichage(app.affiche);
324     ves.generer_carte(param_carte);
325 couturad 926 ves.enregistrer(fichier_ves_out);
326 couturad 919 delete param_carte;
327 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
328     app.affiche(message);
329 couturad 919 }
330    
331     if(app.get_action()==10)
332     {
333     app.affiche((char*)"**********************************");
334     app.affiche((char*)"*** Generation du maillage ***");
335     app.affiche((char*)"**********************************");
336     char fichier_ves_in[500];
337     char fichier_ves_out[500];
338     char fichier_param[500];
339     char fichier_carte[500];
340     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
341     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
342     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
343     app.recupere_parametre_string(14,fichier_carte,(char*)"Fichier de carte de taille manquant");
344     if (app.get_erreur()==true) return 0;
345 couturad 964 char message[5000];
346     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
347     app.affiche(message);
348     std::sprintf(message,"Fichier CARTE d'entree : \033[38;5;46m%s\033[1;33m",fichier_carte);
349     app.affiche(message);
350 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
351     size_t found = str_fichier_ves_out.rfind((char*)".");
352     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
353     str_fichier_magic_out.append((char*)".magic");
354     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
355 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
356     {
357     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
358     app.affiche(message);
359 couturad 966 delete param_maillage;
360 couturad 964 return 1;
361     }
362     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
363     app.affiche(message);
364 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
365 couturad 919 ves.active_affichage(app.affiche);
366     FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichier_carte);
367 couturad 966 if(ves.generer_maillage(param_maillage,carte)==FAIL)
368     {
369     std::sprintf(message,"ERREUR generation du maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
370     app.affiche(message);
371     delete param_maillage;
372     return 1;
373     }
374 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
375     delete param_maillage;
376     delete carte;
377 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
378     app.affiche(message);
379     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
380     app.affiche(message);
381 couturad 919 }
382    
383     if(app.get_action()==11)
384     {
385     app.affiche((char*)"**************************************");
386     app.affiche((char*)"*** Generation du FEM maillage ***");
387     app.affiche((char*)"**************************************");
388     char fichier_ves_in[500];
389     char fichier_ves_out[500];
390     char fichier_param[500];
391     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
392     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
393     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
394     if (app.get_erreur()==true) return 0;
395 couturad 964 char message[5000];
396     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
397     app.affiche(message);
398 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
399     size_t found = str_fichier_ves_out.rfind((char*)".");
400     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
401     str_fichier_magic_out.append((char*)".magic");
402     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
403 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
404     {
405     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
406     app.affiche(message);
407 couturad 966 delete param_maillage;
408 couturad 964 return 1;
409     }
410     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
411     app.affiche(message);
412 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
413 couturad 919 ves.active_affichage(app.affiche);
414 couturad 966 if(ves.generer_fem_maillage(param_maillage)==FAIL)
415     {
416     std::sprintf(message,"ERREUR generation fem maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
417     app.affiche(message);
418     delete param_maillage;
419     return 1;
420     }
421 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
422 couturad 964 delete param_maillage;
423     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
424     app.affiche(message);
425     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
426     app.affiche(message);
427 couturad 919 }
428    
429    
430     if(app.get_action()==12)
431     {
432     app.affiche((char*)"*********************************");
433     app.affiche((char*)"*** Generation de l'etude ***");
434     app.affiche((char*)"*********************************");
435     char fichier_ves_in[500];
436     char fichier_ves_out[500];
437     char fichier_param[500];
438     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
439     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
440     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
441     if (app.get_erreur()==true) return 0;
442 couturad 964 char message[5000];
443     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
444     app.affiche(message);
445 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
446     size_t found = str_fichier_ves_out.rfind((char*)".");
447     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
448     str_fichier_magic_out.append((char*)".magic");
449     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
450 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
451     {
452     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
453     app.affiche(message);
454     return 1;
455     }
456     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
457     app.affiche(message);
458 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
459 couturad 919 ves.active_affichage(app.affiche);
460     ves.generer_etude(param_etude);
461     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
462     delete param_etude;
463 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
464     app.affiche(message);
465     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
466     app.affiche(message);
467 couturad 919 }
468    
469     if(app.get_action()==13)
470     {
471 couturad 926 app.affiche((char*)"*************************************************");
472     app.affiche((char*)"*** Generation de l'analyse des resultats ***");
473     app.affiche((char*)"*************************************************");
474 couturad 919 char fichier_ves_in[500];
475 couturad 926 char fichier_ves_out[500];
476 couturad 919 char fichier_param[500];
477 couturad 926 char fichier_lstparam[500];
478 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
479 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
480     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
481     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
482 couturad 919 if (app.get_erreur()==true) return 0;
483 couturad 964 char message[5000];
484     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
485     app.affiche(message);
486 couturad 926 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
487     {
488     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
489     return 0;
490     }
491     if(strlen(fichier_param)>0)
492     {
493     std::vector<OT_PARAMETRES*> vector_param_analyse;
494     OT_PARAMETRES* param_analyse = new OT_PARAMETRES;
495 couturad 964 char message[5000];
496     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_analyse)==FAIL)
497     {
498     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
499     app.affiche(message);
500     return 1;
501     }
502     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
503     app.affiche(message);
504 couturad 926 vector_param_analyse.push_back(param_analyse);
505     MSTRUCT_VES ves(fichier_ves_in);
506     ves.active_affichage(app.affiche);
507     ves.generer_analyse(vector_param_analyse);
508     ves.enregistrer(fichier_ves_out);
509     delete param_analyse;
510     }
511     else if(strlen(fichier_lstparam)>0)
512     {
513     std::vector<OT_PARAMETRES*> vector_param_analyse;
514 couturad 964 char message[5000];
515     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_analyse)==FAIL)
516     {
517     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
518     app.affiche(message);
519     return 1;
520     }
521     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
522     app.affiche(message);
523 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
524     ves.active_affichage(app.affiche);
525     ves.generer_analyse(vector_param_analyse);
526     ves.enregistrer(fichier_ves_out);
527     std::vector<OT_PARAMETRES*>::iterator it_vector;
528     for(it_vector=vector_param_analyse.begin();it_vector!=vector_param_analyse.end();it_vector++)
529     {
530     delete *it_vector;
531     }
532     }
533 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
534     app.affiche(message);
535 couturad 919 }
536    
537     if(app.get_action()==15)
538     {
539     app.affiche((char*)"******************");
540     app.affiche((char*)"*** Calcul ***");
541     app.affiche((char*)"******************");
542     char fichier_ves_in[500];
543     char fichier_ves_out[500];
544     char fichier_param[500];
545     char fichier_param_aster[500];
546     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
547     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
548     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
549     app.recupere_parametre_string(19,fichier_param_aster,(char*)"Fichier de parametre aster manquant");
550     if (app.get_erreur()==true) return 0;
551 couturad 964 char message[5000];
552     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
553     app.affiche(message);
554 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
555     size_t found = str_fichier_ves_out.rfind((char*)".");
556     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
557     str_fichier_magic_out.append((char*)".magic");
558     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
559 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
560     {
561     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
562     app.affiche(message);
563     return 1;
564     }
565     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
566     app.affiche(message);
567 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
568 couturad 919 ves.active_affichage(app.affiche);
569 couturad 926 ves.generer_calcul(param_etude,fichier_param_aster);
570 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
571     delete param_etude;
572 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
573     app.affiche(message);
574     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
575     app.affiche(message);
576 couturad 919 }
577    
578     if(app.get_action()==16)
579     {
580 couturad 929 app.affiche((char*)"***********************************************");
581     app.affiche((char*)"*** Creation des fichiers de parametres ***");
582     app.affiche((char*)"***********************************************");
583     int type_etude;
584 couturad 951 int type_generateur;
585     int type_inclusion;
586     int type_maillage;
587 couturad 929 app.recupere_parametre_int(29,type_etude,(char*)"Type d'etude manquant");
588 couturad 951 app.recupere_parametre_int(37,type_generateur,(char*)"Type de generateur manquant");
589     app.recupere_parametre_int(34,type_inclusion,(char*)"Type d'inclusion manquant");
590     app.recupere_parametre_int(35,type_maillage,(char*)"Type de maillage manquant");
591 couturad 919 if (app.get_erreur()==true) return 0;
592 couturad 951 bool maillage_lin=false;
593     bool maillage_quad=false;
594     if(type_maillage==0) maillage_lin=true;
595     else if(type_maillage==1) maillage_quad=true;
596     else {maillage_lin=true;maillage_quad=true;}
597 couturad 964 PARAMETRES::generer_fichier_parametres(type_etude,type_generateur,type_inclusion,maillage_lin,maillage_quad,app.affiche);
598     PARAMETRES::generer_script_ves(type_etude,type_inclusion,maillage_lin,maillage_quad,app.affiche);
599     PARAMETRES::generer_script_post_process(type_etude,type_inclusion,maillage_lin,maillage_quad,app.affiche);
600 couturad 919 }
601    
602     if(app.get_action()==17)
603     {
604     #ifdef ALL_OCC
605     app.affiche((char*)"********************************************************************");
606     app.affiche((char*)"*** Importation de la triangulation STL de la microstructure ***");
607     app.affiche((char*)"********************************************************************");
608     char fichier_ves_in[500];
609     char fichier_ves_out[500];
610     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
611     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
612     double eps;
613     app.recupere_parametre_double_avec_defaut(18,eps,0.1);
614     if (app.get_erreur()==true) return 0;
615     std::string str_fichier_ves_out = fichier_ves_out;
616     size_t found = str_fichier_ves_out.rfind((char*)".");
617     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
618     str_fichier_magic_out.append((char*)".magic");
619 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
620 couturad 919 MG_GESTIONNAIRE* gest = ves.get_mg_gestionnaire();
621     MG_GEOMETRIE* mggeo = ves.get_mg_geometrie();
622     OCC_IMPORT occ_import;
623     MG_MAILLAGE* tristl = occ_import.importer_triangulation_V2017(*gest,mggeo,eps);
624     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
625     #endif
626     }
627    
628     if(app.get_action()==21)
629     {
630 couturad 926 app.affiche((char*)"******************************");
631     app.affiche((char*)"*** Cumul des analyses ***");
632     app.affiche((char*)"******************************");
633 couturad 919 char fichier_lst_ves[500];
634     char fichier_param[500];
635     char fichier_lstparam[500];
636 couturad 926 char dossier_resultat[500];
637     bool avec_histogramme;
638 couturad 919 app.recupere_parametre_string(22,fichier_lst_ves,(char*)"Fichier de liste de VES");
639     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
640     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
641 couturad 926 app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
642     app.recupere_parametre_bool_avec_defaut(25,avec_histogramme,false);
643 couturad 919 if (app.get_erreur()==true) return 0;
644 couturad 964 char message[5000];
645     std::sprintf(message,"Liste de fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
646     app.affiche(message);
647     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
648     app.affiche(message);
649 couturad 919 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
650     {
651     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
652     return 0;
653     }
654     if(strlen(fichier_param)>0)
655     {
656     std::vector<OT_PARAMETRES*> vector_param;
657     OT_PARAMETRES* param = new OT_PARAMETRES;
658 couturad 964 char message[5000];
659     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
660     {
661     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
662     app.affiche(message);
663     return 1;
664     }
665     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
666     app.affiche(message);
667 couturad 919 vector_param.push_back(param);
668 couturad 926 MSTRUCT_VER ver;
669 couturad 919 ver.active_affichage(app.affiche);
670 couturad 951 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,avec_histogramme);
671 couturad 919 delete param;
672     }
673     else if(strlen(fichier_lstparam)>0)
674     {
675     std::vector<OT_PARAMETRES*> vector_param;
676 couturad 964 char message[5000];
677     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
678     {
679     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
680     app.affiche(message);
681     return 1;
682     }
683     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
684     app.affiche(message);
685 couturad 926 MSTRUCT_VER ver;
686 couturad 919 ver.active_affichage(app.affiche);
687 couturad 951 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,avec_histogramme);
688 couturad 919 std::vector<OT_PARAMETRES*>::iterator it_vector;
689     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
690     {
691     delete *it_vector;
692     }
693     }
694     }
695    
696     if(app.get_action()==23)
697     {
698 couturad 926 app.affiche((char*)"***************************");
699     app.affiche((char*)"*** AFFICHE CONTENU ***");
700     app.affiche((char*)"***************************");
701 couturad 919 char fichier_ves_in[500];
702     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
703     if (app.get_erreur()==true) return 0;
704 couturad 926 MSTRUCT_VES_FILE ves_file;
705     ves_file.ouvrir(fichier_ves_in);
706     ves_file.affiche_contenu(app.affiche);
707 couturad 919 }
708    
709 couturad 927 if(app.get_action()==26)
710     {
711 couturad 951 app.affiche((char*)"*******************************************");
712     app.affiche((char*)"*** Exporter des modules mecaniques ***");
713     app.affiche((char*)"*******************************************");
714 couturad 927 char fichier_lst_ves_sph[500];
715     char fichier_lst_ves_dev[500];
716     char fichier_param[500];
717     char fichier_lstparam[500];
718     char dossier_resultat[500];
719     app.recupere_parametre_string(27,fichier_lst_ves_sph,(char*)"Liste de VES de type chargement spherique");
720     app.recupere_parametre_string(28,fichier_lst_ves_dev,(char*)"Liste de VES de type chargement deviatorique");
721     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
722     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
723     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
724     if (app.get_erreur()==true) return 0;
725 couturad 964 char message[5000];
726     std::sprintf(message,"Liste de fichier VES spherique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_sph);
727     app.affiche(message);
728     std::sprintf(message,"Liste de fichier VES deviatorique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_dev);
729     app.affiche(message);
730     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
731     app.affiche(message);
732 couturad 927 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
733     {
734     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
735     return 0;
736     }
737     if(strlen(fichier_param)>0)
738     {
739     std::vector<OT_PARAMETRES*> vector_param;
740     OT_PARAMETRES* param = new OT_PARAMETRES;
741 couturad 964 char message[5000];
742     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
743     {
744     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
745     app.affiche(message);
746     return 1;
747     }
748     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
749     app.affiche(message);
750 couturad 927 vector_param.push_back(param);
751     MSTRUCT_VER ver;
752     ver.active_affichage(app.affiche);
753 couturad 951 ver.exporter_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat);
754 couturad 927 delete param;
755     }
756     else if(strlen(fichier_lstparam)>0)
757     {
758     std::vector<OT_PARAMETRES*> vector_param;
759 couturad 964 char message[5000];
760     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
761     {
762     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
763     app.affiche(message);
764     return 1;
765     }
766     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
767     app.affiche(message);
768 couturad 927 MSTRUCT_VER ver;
769     ver.active_affichage(app.affiche);
770 couturad 951 ver.exporter_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat);
771 couturad 927 std::vector<OT_PARAMETRES*>::iterator it_vector;
772     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
773     {
774     delete *it_vector;
775     }
776     }
777     }
778    
779 couturad 933 if(app.get_action()==30)
780     {
781     app.affiche((char*)"***********************************************");
782     app.affiche((char*)"*** EXPORT DU MAILLAGE AU FORMAT ABAQUS ***");
783     app.affiche((char*)"***********************************************");
784     char fichier_ves_in[500];
785     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
786     if (app.get_erreur()==true) return 0;
787     MSTRUCT_VES ves(fichier_ves_in);
788     ves.exporter_maillage_abaqus();
789     }
790 couturad 934
791     if(app.get_action()==31)
792     {
793     app.affiche((char*)"************************************");
794     app.affiche((char*)"*** Exportation des analyses ***");
795     app.affiche((char*)"************************************");
796     char fichier_lst_ves[500];
797     char fichier_param[500];
798     char fichier_lstparam[500];
799     char dossier_resultat[500];
800    
801     app.recupere_parametre_string(22,fichier_lst_ves,(char*)"Fichier de liste de VES");
802     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
803     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
804     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
805    
806     if (app.get_erreur()==true) return 0;
807 couturad 964 char message[5000];
808     std::sprintf(message,"Liste de fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
809     app.affiche(message);
810     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
811     app.affiche(message);
812 couturad 934 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
813     {
814     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
815     return 0;
816     }
817     if(strlen(fichier_param)>0)
818     {
819     std::vector<OT_PARAMETRES*> vector_param;
820     OT_PARAMETRES* param = new OT_PARAMETRES;
821 couturad 964 char message[5000];
822     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
823     {
824     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
825     app.affiche(message);
826     return 1;
827     }
828     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
829     app.affiche(message);
830 couturad 934 vector_param.push_back(param);
831     MSTRUCT_VER ver;
832     ver.active_affichage(app.affiche);
833     ver.exporter_analyse(fichier_lst_ves,vector_param,dossier_resultat);
834     delete param;
835     }
836     else if(strlen(fichier_lstparam)>0)
837     {
838     std::vector<OT_PARAMETRES*> vector_param;
839 couturad 964 char message[5000];
840     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
841     {
842     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
843     app.affiche(message);
844     return 1;
845     }
846     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
847     app.affiche(message);
848 couturad 934 MSTRUCT_VER ver;
849     ver.active_affichage(app.affiche);
850     ver.exporter_analyse(fichier_lst_ves,vector_param,dossier_resultat);
851     std::vector<OT_PARAMETRES*>::iterator it_vector;
852     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
853     {
854     delete *it_vector;
855     }
856     }
857 francois 947
858 couturad 934 }
859 francois 947 if(app.get_action()==32)
860     {
861     app.affiche((char*)"***********************************************");
862     app.affiche((char*)"*** GENERATION D'UN POLYCRISTAL ***");
863     app.affiche((char*)"***********************************************");
864     char fichier_magic[1000];
865     char fichier_param[1000];
866     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
867     bool creeparam;
868     app.recupere_parametre_bool_avec_defaut(33,creeparam,false);
869     if (app.get_erreur()==true) return 0;
870     if (creeparam)
871     {
872     MSTRUCT_GENERATEUR_POLYCRISTAUX gen;
873     gen.active_affichage(app.affiche);
874     gen.cree_param(fichier_param);
875     }
876     else
877     {
878     app.recupere_parametre_string(2,fichier_magic,(char*)"Fichier de sortie manquant");
879     if (app.get_erreur()==true) return 0;
880     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_param);
881     gen.active_affichage(app.affiche);
882     gen.genere(fichier_magic);
883     }
884    
885     }
886 couturad 934
887 couturad 961 if(app.get_action()==36)
888 couturad 951 {
889     app.affiche((char*)"******************************************");
890     app.affiche((char*)"*** Cumuler des modules mecaniques ***");
891     app.affiche((char*)"******************************************");
892     char fichier_lst_ves_sph[500];
893     char fichier_lst_ves_dev[500];
894     char fichier_param[500];
895     char fichier_lstparam[500];
896     char dossier_resultat[500];
897     bool avec_histogramme;
898     app.recupere_parametre_string(27,fichier_lst_ves_sph,(char*)"Liste de VES de type chargement spherique");
899     app.recupere_parametre_string(28,fichier_lst_ves_dev,(char*)"Liste de VES de type chargement deviatorique");
900     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
901     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
902     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
903     app.recupere_parametre_bool_avec_defaut(25,avec_histogramme,false);
904     if (app.get_erreur()==true) return 0;
905 couturad 964 char message[5000];
906     std::sprintf(message,"Liste de fichier VES spherique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_sph);
907     app.affiche(message);
908     std::sprintf(message,"Liste de fichier VES deviatorique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_dev);
909     app.affiche(message);
910     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
911     app.affiche(message);
912 couturad 951 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
913     {
914     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
915     return 0;
916     }
917     if(strlen(fichier_param)>0)
918     {
919     std::vector<OT_PARAMETRES*> vector_param;
920     OT_PARAMETRES* param = new OT_PARAMETRES;
921 couturad 964 char message[5000];
922     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
923     {
924     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
925     app.affiche(message);
926     return 1;
927     }
928     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
929     app.affiche(message);
930 couturad 951 vector_param.push_back(param);
931     MSTRUCT_VER ver;
932     ver.active_affichage(app.affiche);
933     ver.cumuler_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat,avec_histogramme);
934     delete param;
935     }
936     else if(strlen(fichier_lstparam)>0)
937     {
938     std::vector<OT_PARAMETRES*> vector_param;
939 couturad 964 char message[5000];
940     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
941     {
942     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
943     app.affiche(message);
944     return 1;
945     }
946     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
947     app.affiche(message);
948 couturad 951 MSTRUCT_VER ver;
949     ver.active_affichage(app.affiche);
950     ver.cumuler_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat,avec_histogramme);
951     std::vector<OT_PARAMETRES*>::iterator it_vector;
952     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
953     {
954     delete *it_vector;
955     }
956     }
957     }
958    
959 francois 756 app.affiche((char*)"Fin");
960 couturad 951
961 francois 756 return 0;
962     }
963    
964    
965    
966     #pragma package(smart_init)