ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 964
Committed: Mon Aug 27 20:05:12 2018 UTC (6 years, 8 months ago) by couturad
File size: 43792 byte(s)
Log Message:
MICROSTRUCTURE: Ajout d'informations pour l'utilisateur

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     return 1;
360     }
361     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
362     app.affiche(message);
363 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
364 couturad 919 ves.active_affichage(app.affiche);
365     FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichier_carte);
366     ves.generer_maillage(param_maillage,carte);
367     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
368     delete param_maillage;
369     delete carte;
370 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
371     app.affiche(message);
372     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
373     app.affiche(message);
374 couturad 919 }
375    
376     if(app.get_action()==11)
377     {
378     app.affiche((char*)"**************************************");
379     app.affiche((char*)"*** Generation du FEM maillage ***");
380     app.affiche((char*)"**************************************");
381     char fichier_ves_in[500];
382     char fichier_ves_out[500];
383     char fichier_param[500];
384     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
385     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
386     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
387     if (app.get_erreur()==true) return 0;
388 couturad 964 char message[5000];
389     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
390     app.affiche(message);
391 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
392     size_t found = str_fichier_ves_out.rfind((char*)".");
393     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
394     str_fichier_magic_out.append((char*)".magic");
395     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
396 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
397     {
398     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
399     app.affiche(message);
400     return 1;
401     }
402     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
403     app.affiche(message);
404 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
405 couturad 919 ves.active_affichage(app.affiche);
406     ves.generer_fem_maillage(param_maillage);
407     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
408 couturad 964 delete param_maillage;
409     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
410     app.affiche(message);
411     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
412     app.affiche(message);
413 couturad 919 }
414    
415    
416     if(app.get_action()==12)
417     {
418     app.affiche((char*)"*********************************");
419     app.affiche((char*)"*** Generation de l'etude ***");
420     app.affiche((char*)"*********************************");
421     char fichier_ves_in[500];
422     char fichier_ves_out[500];
423     char fichier_param[500];
424     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
425     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
426     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
427     if (app.get_erreur()==true) return 0;
428 couturad 964 char message[5000];
429     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
430     app.affiche(message);
431 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
432     size_t found = str_fichier_ves_out.rfind((char*)".");
433     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
434     str_fichier_magic_out.append((char*)".magic");
435     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
436 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
437     {
438     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
439     app.affiche(message);
440     return 1;
441     }
442     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
443     app.affiche(message);
444 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
445 couturad 919 ves.active_affichage(app.affiche);
446     ves.generer_etude(param_etude);
447     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
448     delete param_etude;
449 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
450     app.affiche(message);
451     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
452     app.affiche(message);
453 couturad 919 }
454    
455     if(app.get_action()==13)
456     {
457 couturad 926 app.affiche((char*)"*************************************************");
458     app.affiche((char*)"*** Generation de l'analyse des resultats ***");
459     app.affiche((char*)"*************************************************");
460 couturad 919 char fichier_ves_in[500];
461 couturad 926 char fichier_ves_out[500];
462 couturad 919 char fichier_param[500];
463 couturad 926 char fichier_lstparam[500];
464 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
465 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
466     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
467     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
468 couturad 919 if (app.get_erreur()==true) return 0;
469 couturad 964 char message[5000];
470     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
471     app.affiche(message);
472 couturad 926 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
473     {
474     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
475     return 0;
476     }
477     if(strlen(fichier_param)>0)
478     {
479     std::vector<OT_PARAMETRES*> vector_param_analyse;
480     OT_PARAMETRES* param_analyse = new OT_PARAMETRES;
481 couturad 964 char message[5000];
482     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_analyse)==FAIL)
483     {
484     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
485     app.affiche(message);
486     return 1;
487     }
488     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
489     app.affiche(message);
490 couturad 926 vector_param_analyse.push_back(param_analyse);
491     MSTRUCT_VES ves(fichier_ves_in);
492     ves.active_affichage(app.affiche);
493     ves.generer_analyse(vector_param_analyse);
494     ves.enregistrer(fichier_ves_out);
495     delete param_analyse;
496     }
497     else if(strlen(fichier_lstparam)>0)
498     {
499     std::vector<OT_PARAMETRES*> vector_param_analyse;
500 couturad 964 char message[5000];
501     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_analyse)==FAIL)
502     {
503     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
504     app.affiche(message);
505     return 1;
506     }
507     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
508     app.affiche(message);
509 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
510     ves.active_affichage(app.affiche);
511     ves.generer_analyse(vector_param_analyse);
512     ves.enregistrer(fichier_ves_out);
513     std::vector<OT_PARAMETRES*>::iterator it_vector;
514     for(it_vector=vector_param_analyse.begin();it_vector!=vector_param_analyse.end();it_vector++)
515     {
516     delete *it_vector;
517     }
518     }
519 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
520     app.affiche(message);
521 couturad 919 }
522    
523     if(app.get_action()==15)
524     {
525     app.affiche((char*)"******************");
526     app.affiche((char*)"*** Calcul ***");
527     app.affiche((char*)"******************");
528     char fichier_ves_in[500];
529     char fichier_ves_out[500];
530     char fichier_param[500];
531     char fichier_param_aster[500];
532     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
533     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
534     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
535     app.recupere_parametre_string(19,fichier_param_aster,(char*)"Fichier de parametre aster manquant");
536     if (app.get_erreur()==true) return 0;
537 couturad 964 char message[5000];
538     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
539     app.affiche(message);
540 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
541     size_t found = str_fichier_ves_out.rfind((char*)".");
542     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
543     str_fichier_magic_out.append((char*)".magic");
544     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
545 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
546     {
547     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
548     app.affiche(message);
549     return 1;
550     }
551     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
552     app.affiche(message);
553 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
554 couturad 919 ves.active_affichage(app.affiche);
555 couturad 926 ves.generer_calcul(param_etude,fichier_param_aster);
556 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
557     delete param_etude;
558 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
559     app.affiche(message);
560     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
561     app.affiche(message);
562 couturad 919 }
563    
564     if(app.get_action()==16)
565     {
566 couturad 929 app.affiche((char*)"***********************************************");
567     app.affiche((char*)"*** Creation des fichiers de parametres ***");
568     app.affiche((char*)"***********************************************");
569     int type_etude;
570 couturad 951 int type_generateur;
571     int type_inclusion;
572     int type_maillage;
573 couturad 929 app.recupere_parametre_int(29,type_etude,(char*)"Type d'etude manquant");
574 couturad 951 app.recupere_parametre_int(37,type_generateur,(char*)"Type de generateur manquant");
575     app.recupere_parametre_int(34,type_inclusion,(char*)"Type d'inclusion manquant");
576     app.recupere_parametre_int(35,type_maillage,(char*)"Type de maillage manquant");
577 couturad 919 if (app.get_erreur()==true) return 0;
578 couturad 951 bool maillage_lin=false;
579     bool maillage_quad=false;
580     if(type_maillage==0) maillage_lin=true;
581     else if(type_maillage==1) maillage_quad=true;
582     else {maillage_lin=true;maillage_quad=true;}
583 couturad 964 PARAMETRES::generer_fichier_parametres(type_etude,type_generateur,type_inclusion,maillage_lin,maillage_quad,app.affiche);
584     PARAMETRES::generer_script_ves(type_etude,type_inclusion,maillage_lin,maillage_quad,app.affiche);
585     PARAMETRES::generer_script_post_process(type_etude,type_inclusion,maillage_lin,maillage_quad,app.affiche);
586 couturad 919 }
587    
588     if(app.get_action()==17)
589     {
590     #ifdef ALL_OCC
591     app.affiche((char*)"********************************************************************");
592     app.affiche((char*)"*** Importation de la triangulation STL de la microstructure ***");
593     app.affiche((char*)"********************************************************************");
594     char fichier_ves_in[500];
595     char fichier_ves_out[500];
596     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
597     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
598     double eps;
599     app.recupere_parametre_double_avec_defaut(18,eps,0.1);
600     if (app.get_erreur()==true) return 0;
601     std::string str_fichier_ves_out = fichier_ves_out;
602     size_t found = str_fichier_ves_out.rfind((char*)".");
603     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
604     str_fichier_magic_out.append((char*)".magic");
605 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
606 couturad 919 MG_GESTIONNAIRE* gest = ves.get_mg_gestionnaire();
607     MG_GEOMETRIE* mggeo = ves.get_mg_geometrie();
608     OCC_IMPORT occ_import;
609     MG_MAILLAGE* tristl = occ_import.importer_triangulation_V2017(*gest,mggeo,eps);
610     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
611     #endif
612     }
613    
614     if(app.get_action()==21)
615     {
616 couturad 926 app.affiche((char*)"******************************");
617     app.affiche((char*)"*** Cumul des analyses ***");
618     app.affiche((char*)"******************************");
619 couturad 919 char fichier_lst_ves[500];
620     char fichier_param[500];
621     char fichier_lstparam[500];
622 couturad 926 char dossier_resultat[500];
623     bool avec_histogramme;
624 couturad 919 app.recupere_parametre_string(22,fichier_lst_ves,(char*)"Fichier de liste de VES");
625     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
626     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
627 couturad 926 app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
628     app.recupere_parametre_bool_avec_defaut(25,avec_histogramme,false);
629 couturad 919 if (app.get_erreur()==true) return 0;
630 couturad 964 char message[5000];
631     std::sprintf(message,"Liste de fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
632     app.affiche(message);
633     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
634     app.affiche(message);
635 couturad 919 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
636     {
637     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
638     return 0;
639     }
640     if(strlen(fichier_param)>0)
641     {
642     std::vector<OT_PARAMETRES*> vector_param;
643     OT_PARAMETRES* param = new OT_PARAMETRES;
644 couturad 964 char message[5000];
645     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
646     {
647     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
648     app.affiche(message);
649     return 1;
650     }
651     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
652     app.affiche(message);
653 couturad 919 vector_param.push_back(param);
654 couturad 926 MSTRUCT_VER ver;
655 couturad 919 ver.active_affichage(app.affiche);
656 couturad 951 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,avec_histogramme);
657 couturad 919 delete param;
658     }
659     else if(strlen(fichier_lstparam)>0)
660     {
661     std::vector<OT_PARAMETRES*> vector_param;
662 couturad 964 char message[5000];
663     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
664     {
665     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
666     app.affiche(message);
667     return 1;
668     }
669     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
670     app.affiche(message);
671 couturad 926 MSTRUCT_VER ver;
672 couturad 919 ver.active_affichage(app.affiche);
673 couturad 951 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,avec_histogramme);
674 couturad 919 std::vector<OT_PARAMETRES*>::iterator it_vector;
675     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
676     {
677     delete *it_vector;
678     }
679     }
680     }
681    
682     if(app.get_action()==23)
683     {
684 couturad 926 app.affiche((char*)"***************************");
685     app.affiche((char*)"*** AFFICHE CONTENU ***");
686     app.affiche((char*)"***************************");
687 couturad 919 char fichier_ves_in[500];
688     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
689     if (app.get_erreur()==true) return 0;
690 couturad 926 MSTRUCT_VES_FILE ves_file;
691     ves_file.ouvrir(fichier_ves_in);
692     ves_file.affiche_contenu(app.affiche);
693 couturad 919 }
694    
695 couturad 927 if(app.get_action()==26)
696     {
697 couturad 951 app.affiche((char*)"*******************************************");
698     app.affiche((char*)"*** Exporter des modules mecaniques ***");
699     app.affiche((char*)"*******************************************");
700 couturad 927 char fichier_lst_ves_sph[500];
701     char fichier_lst_ves_dev[500];
702     char fichier_param[500];
703     char fichier_lstparam[500];
704     char dossier_resultat[500];
705     app.recupere_parametre_string(27,fichier_lst_ves_sph,(char*)"Liste de VES de type chargement spherique");
706     app.recupere_parametre_string(28,fichier_lst_ves_dev,(char*)"Liste de VES de type chargement deviatorique");
707     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
708     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
709     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
710     if (app.get_erreur()==true) return 0;
711 couturad 964 char message[5000];
712     std::sprintf(message,"Liste de fichier VES spherique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_sph);
713     app.affiche(message);
714     std::sprintf(message,"Liste de fichier VES deviatorique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_dev);
715     app.affiche(message);
716     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
717     app.affiche(message);
718 couturad 927 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
719     {
720     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
721     return 0;
722     }
723     if(strlen(fichier_param)>0)
724     {
725     std::vector<OT_PARAMETRES*> vector_param;
726     OT_PARAMETRES* param = new OT_PARAMETRES;
727 couturad 964 char message[5000];
728     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
729     {
730     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
731     app.affiche(message);
732     return 1;
733     }
734     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
735     app.affiche(message);
736 couturad 927 vector_param.push_back(param);
737     MSTRUCT_VER ver;
738     ver.active_affichage(app.affiche);
739 couturad 951 ver.exporter_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat);
740 couturad 927 delete param;
741     }
742     else if(strlen(fichier_lstparam)>0)
743     {
744     std::vector<OT_PARAMETRES*> vector_param;
745 couturad 964 char message[5000];
746     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
747     {
748     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
749     app.affiche(message);
750     return 1;
751     }
752     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
753     app.affiche(message);
754 couturad 927 MSTRUCT_VER ver;
755     ver.active_affichage(app.affiche);
756 couturad 951 ver.exporter_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat);
757 couturad 927 std::vector<OT_PARAMETRES*>::iterator it_vector;
758     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
759     {
760     delete *it_vector;
761     }
762     }
763     }
764    
765 couturad 933 if(app.get_action()==30)
766     {
767     app.affiche((char*)"***********************************************");
768     app.affiche((char*)"*** EXPORT DU MAILLAGE AU FORMAT ABAQUS ***");
769     app.affiche((char*)"***********************************************");
770     char fichier_ves_in[500];
771     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
772     if (app.get_erreur()==true) return 0;
773     MSTRUCT_VES ves(fichier_ves_in);
774     ves.exporter_maillage_abaqus();
775     }
776 couturad 934
777     if(app.get_action()==31)
778     {
779     app.affiche((char*)"************************************");
780     app.affiche((char*)"*** Exportation des analyses ***");
781     app.affiche((char*)"************************************");
782     char fichier_lst_ves[500];
783     char fichier_param[500];
784     char fichier_lstparam[500];
785     char dossier_resultat[500];
786    
787     app.recupere_parametre_string(22,fichier_lst_ves,(char*)"Fichier de liste de VES");
788     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
789     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
790     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
791    
792     if (app.get_erreur()==true) return 0;
793 couturad 964 char message[5000];
794     std::sprintf(message,"Liste de fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
795     app.affiche(message);
796     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
797     app.affiche(message);
798 couturad 934 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
799     {
800     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
801     return 0;
802     }
803     if(strlen(fichier_param)>0)
804     {
805     std::vector<OT_PARAMETRES*> vector_param;
806     OT_PARAMETRES* param = new OT_PARAMETRES;
807 couturad 964 char message[5000];
808     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
809     {
810     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
811     app.affiche(message);
812     return 1;
813     }
814     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
815     app.affiche(message);
816 couturad 934 vector_param.push_back(param);
817     MSTRUCT_VER ver;
818     ver.active_affichage(app.affiche);
819     ver.exporter_analyse(fichier_lst_ves,vector_param,dossier_resultat);
820     delete param;
821     }
822     else if(strlen(fichier_lstparam)>0)
823     {
824     std::vector<OT_PARAMETRES*> vector_param;
825 couturad 964 char message[5000];
826     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
827     {
828     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
829     app.affiche(message);
830     return 1;
831     }
832     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
833     app.affiche(message);
834 couturad 934 MSTRUCT_VER ver;
835     ver.active_affichage(app.affiche);
836     ver.exporter_analyse(fichier_lst_ves,vector_param,dossier_resultat);
837     std::vector<OT_PARAMETRES*>::iterator it_vector;
838     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
839     {
840     delete *it_vector;
841     }
842     }
843 francois 947
844 couturad 934 }
845 francois 947 if(app.get_action()==32)
846     {
847     app.affiche((char*)"***********************************************");
848     app.affiche((char*)"*** GENERATION D'UN POLYCRISTAL ***");
849     app.affiche((char*)"***********************************************");
850     char fichier_magic[1000];
851     char fichier_param[1000];
852     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
853     bool creeparam;
854     app.recupere_parametre_bool_avec_defaut(33,creeparam,false);
855     if (app.get_erreur()==true) return 0;
856     if (creeparam)
857     {
858     MSTRUCT_GENERATEUR_POLYCRISTAUX gen;
859     gen.active_affichage(app.affiche);
860     gen.cree_param(fichier_param);
861     }
862     else
863     {
864     app.recupere_parametre_string(2,fichier_magic,(char*)"Fichier de sortie manquant");
865     if (app.get_erreur()==true) return 0;
866     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_param);
867     gen.active_affichage(app.affiche);
868     gen.genere(fichier_magic);
869     }
870    
871     }
872 couturad 934
873 couturad 961 if(app.get_action()==36)
874 couturad 951 {
875     app.affiche((char*)"******************************************");
876     app.affiche((char*)"*** Cumuler des modules mecaniques ***");
877     app.affiche((char*)"******************************************");
878     char fichier_lst_ves_sph[500];
879     char fichier_lst_ves_dev[500];
880     char fichier_param[500];
881     char fichier_lstparam[500];
882     char dossier_resultat[500];
883     bool avec_histogramme;
884     app.recupere_parametre_string(27,fichier_lst_ves_sph,(char*)"Liste de VES de type chargement spherique");
885     app.recupere_parametre_string(28,fichier_lst_ves_dev,(char*)"Liste de VES de type chargement deviatorique");
886     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
887     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
888     app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
889     app.recupere_parametre_bool_avec_defaut(25,avec_histogramme,false);
890     if (app.get_erreur()==true) return 0;
891 couturad 964 char message[5000];
892     std::sprintf(message,"Liste de fichier VES spherique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_sph);
893     app.affiche(message);
894     std::sprintf(message,"Liste de fichier VES deviatorique d'entree : \033[38;5;46m%s\033[1;33m",fichier_lst_ves_dev);
895     app.affiche(message);
896     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
897     app.affiche(message);
898 couturad 951 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
899     {
900     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
901     return 0;
902     }
903     if(strlen(fichier_param)>0)
904     {
905     std::vector<OT_PARAMETRES*> vector_param;
906     OT_PARAMETRES* param = new OT_PARAMETRES;
907 couturad 964 char message[5000];
908     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
909     {
910     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
911     app.affiche(message);
912     return 1;
913     }
914     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
915     app.affiche(message);
916 couturad 951 vector_param.push_back(param);
917     MSTRUCT_VER ver;
918     ver.active_affichage(app.affiche);
919     ver.cumuler_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat,avec_histogramme);
920     delete param;
921     }
922     else if(strlen(fichier_lstparam)>0)
923     {
924     std::vector<OT_PARAMETRES*> vector_param;
925 couturad 964 char message[5000];
926     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
927     {
928     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
929     app.affiche(message);
930     return 1;
931     }
932     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
933     app.affiche(message);
934 couturad 951 MSTRUCT_VER ver;
935     ver.active_affichage(app.affiche);
936     ver.cumuler_modules_mecaniques(fichier_lst_ves_sph,fichier_lst_ves_dev,vector_param,dossier_resultat,avec_histogramme);
937     std::vector<OT_PARAMETRES*>::iterator it_vector;
938     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
939     {
940     delete *it_vector;
941     }
942     }
943     }
944    
945 francois 756 app.affiche((char*)"Fin");
946 couturad 951
947 francois 756 return 0;
948     }
949    
950    
951    
952     #pragma package(smart_init)