ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 926
Committed: Tue May 1 20:38:42 2018 UTC (7 years ago) by couturad
File size: 23703 byte(s)
Log Message:
Ajout de nouvelles fonctionnalités de representation et d'analyse des VES
*Modification du CMakeLists.txt de microstructure

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 couturad 919 #ifdef ALL_OCC
37     #include "occ_import.h"
38     #endif
39 francois 756 //---------------------------------------------------------------------------
40    
41    
42 couturad 919 using namespace MICROSTRUCTURE;
43 francois 756
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     MAGIC_PARAMETRE_APPLICATION p19(21,(char*)"-cumuler_analyse",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 919
74     p5.ajouter_dependance(4);p5.ajouter_dependance(5);p5.ajouter_dependance(6);
75     p6.ajouter_dependance(3);p6.ajouter_dependance(4);p6.ajouter_dependance(5);p6.ajouter_dependance(6);
76 couturad 926 p7.ajouter_dependance(3);p7.ajouter_dependance(4);p7.ajouter_dependance(5);
77 couturad 919 p8.ajouter_dependance(3);p8.ajouter_dependance(4);p8.ajouter_dependance(5);p8.ajouter_dependance(14);
78     p9.ajouter_dependance(3);p9.ajouter_dependance(4);p9.ajouter_dependance(5);
79     p10.ajouter_dependance(3);p10.ajouter_dependance(4);p10.ajouter_dependance(5);
80 couturad 926 p11.ajouter_dependance(3);p11.ajouter_dependance(4);p11.ajouter_dependance(5);p11.ajouter_dependance(6);
81 couturad 919 p13.ajouter_dependance(3);p13.ajouter_dependance(4);p13.ajouter_dependance(5);p13.ajouter_dependance(19);
82     p14.ajouter_dependance(5);
83     p15.ajouter_dependance(3);p15.ajouter_dependance(18);p15.ajouter_dependance(4);
84 couturad 926 p19.ajouter_dependance(22);p19.ajouter_dependance(5);p19.ajouter_dependance(6);p19.ajouter_dependance(20);p19.ajouter_dependance(24);p19.ajouter_dependance(25);
85 couturad 919 p21.ajouter_dependance(3);
86 couturad 772 lst.push_back(p1);
87     lst.push_back(p2);
88     lst.push_back(p3);
89 couturad 919 lst.push_back(p4);
90     lst.push_back(p5);
91     lst.push_back(p6);
92     lst.push_back(p7);
93     lst.push_back(p8);
94     lst.push_back(p9);
95     lst.push_back(p10);
96     lst.push_back(p11);
97     lst.push_back(p12);
98     lst.push_back(p13);
99     lst.push_back(p14);
100     lst.push_back(p15);
101     lst.push_back(p16);
102     lst.push_back(p17);
103     lst.push_back(p18);
104     lst.push_back(p19);
105     lst.push_back(p20);
106     lst.push_back(p21);
107 couturad 926 lst.push_back(p22);
108     lst.push_back(p23);
109 francois 756
110 couturad 919 MAGIC_APPLICATION app((char*)"Homogéinisation d'une microstructure",argc,argv,lst,true,true);
111     if(app.get_erreur()==true) return 0;
112    
113     if(app.get_action()==7)
114 couturad 772 {
115 couturad 919 app.affiche((char*)"**************************************");
116     app.affiche((char*)"*** Generation de la geometrie ***");
117     app.affiche((char*)"**************************************");
118     char fichier_ves_out[500];
119     char fichier_param[500];
120     char fichier_lstparam[500];
121     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
122     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
123     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
124     if (app.get_erreur()==true) return 0;
125     std::string str_fichier_ves_out = fichier_ves_out;
126     size_t found = str_fichier_ves_out.rfind((char*)".");
127     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
128     str_fichier_magic_out.append((char*)".magic");
129     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
130     {
131     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
132     return 0;
133     }
134     if(strlen(fichier_param)>0)
135     {
136     std::vector<OT_PARAMETRES*> vector_param_geometrie;
137     OT_PARAMETRES* param_geometrie = new OT_PARAMETRES;
138     PARAMETRES::importer_fichier_parametres(fichier_param,param_geometrie);
139     vector_param_geometrie.push_back(param_geometrie);
140 couturad 926 MSTRUCT_VES ves;
141 couturad 919 ves.active_affichage(app.affiche);
142     ves.generer_geometrie(vector_param_geometrie);
143     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
144     delete param_geometrie;
145     }
146     else if(strlen(fichier_lstparam)>0)
147     {
148     std::vector<OT_PARAMETRES*> vector_param_geometrie;
149     PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_geometrie);
150 couturad 926 MSTRUCT_VES ves;
151 couturad 919 ves.active_affichage(app.affiche);
152     ves.generer_geometrie(vector_param_geometrie);
153     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
154     std::vector<OT_PARAMETRES*>::iterator it_vector;
155     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
156     {
157     delete *it_vector;
158     }
159     }
160 couturad 772 }
161 francois 756
162 couturad 919 if(app.get_action()==8)
163 couturad 772 {
164 couturad 919 app.affiche((char*)"************************************");
165     app.affiche((char*)"*** Generation des materiaux ***");
166     app.affiche((char*)"************************************");
167     char fichier_ves_in[500];
168     char fichier_ves_out[500];
169     char fichier_param[500];
170     char fichier_lstparam[500];
171     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
172     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
173     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
174     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
175     if (app.get_erreur()==true) return 0;
176     std::string str_fichier_ves_out = fichier_ves_out;
177     size_t found = str_fichier_ves_out.rfind((char*)".");
178     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
179     str_fichier_magic_out.append((char*)".magic");
180     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
181     {
182     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
183     return 0;
184     }
185     if(strlen(fichier_param)>0)
186     {
187     std::vector<OT_PARAMETRES*> vector_param_materiau;
188     OT_PARAMETRES* param_materiau = new OT_PARAMETRES;
189     PARAMETRES::importer_fichier_parametres(fichier_param,param_materiau);
190     vector_param_materiau.push_back(param_materiau);
191 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
192 couturad 919 ves.active_affichage(app.affiche);
193     ves.generer_materiau(vector_param_materiau);
194     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
195     delete param_materiau;
196     }
197     else if(strlen(fichier_lstparam)>0)
198     {
199     std::vector<OT_PARAMETRES*> vector_param_materiau;
200     PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_materiau);
201 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
202 couturad 919 ves.active_affichage(app.affiche);
203     ves.generer_materiau(vector_param_materiau);
204     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
205     std::vector<OT_PARAMETRES*>::iterator it_vector;
206     for(it_vector=vector_param_materiau.begin();it_vector!=vector_param_materiau.end();it_vector++)
207     {
208     delete *it_vector;
209     }
210     }
211 couturad 772 }
212 couturad 919
213     if(app.get_action()==9)
214     {
215     app.affiche((char*)"********************************************");
216     app.affiche((char*)"*** Generation de la carte de taille ***");
217     app.affiche((char*)"********************************************");
218     char fichier_ves_in[500];
219     char fichier_param[500];
220 couturad 926 char fichier_ves_out[500];
221 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
222 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
223 couturad 919 app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
224     if (app.get_erreur()==true) return 0;
225     OT_PARAMETRES* param_carte = new OT_PARAMETRES;
226     PARAMETRES::importer_fichier_parametres(fichier_param,param_carte);
227 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
228 couturad 919 ves.active_affichage(app.affiche);
229     ves.generer_carte(param_carte);
230 couturad 926 ves.enregistrer(fichier_ves_out);
231 couturad 919 delete param_carte;
232     }
233    
234     if(app.get_action()==10)
235     {
236     app.affiche((char*)"**********************************");
237     app.affiche((char*)"*** Generation du maillage ***");
238     app.affiche((char*)"**********************************");
239     char fichier_ves_in[500];
240     char fichier_ves_out[500];
241     char fichier_param[500];
242     char fichier_carte[500];
243     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
244     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
245     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
246     app.recupere_parametre_string(14,fichier_carte,(char*)"Fichier de carte de taille manquant");
247     if (app.get_erreur()==true) return 0;
248     std::string str_fichier_ves_out = fichier_ves_out;
249     size_t found = str_fichier_ves_out.rfind((char*)".");
250     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
251     str_fichier_magic_out.append((char*)".magic");
252     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
253     PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage);
254 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
255 couturad 919 ves.active_affichage(app.affiche);
256     FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichier_carte);
257     ves.generer_maillage(param_maillage,carte);
258     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
259     delete param_maillage;
260     delete carte;
261     }
262    
263     if(app.get_action()==11)
264     {
265     app.affiche((char*)"**************************************");
266     app.affiche((char*)"*** Generation du FEM maillage ***");
267     app.affiche((char*)"**************************************");
268     char fichier_ves_in[500];
269     char fichier_ves_out[500];
270     char fichier_param[500];
271     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
272     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
273     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
274     if (app.get_erreur()==true) return 0;
275     std::string str_fichier_ves_out = fichier_ves_out;
276     size_t found = str_fichier_ves_out.rfind((char*)".");
277     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
278     str_fichier_magic_out.append((char*)".magic");
279     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
280     PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage);
281 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
282 couturad 919 ves.active_affichage(app.affiche);
283     ves.generer_fem_maillage(param_maillage);
284     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
285     delete param_maillage;
286     }
287    
288    
289     if(app.get_action()==12)
290     {
291     app.affiche((char*)"*********************************");
292     app.affiche((char*)"*** Generation de l'etude ***");
293     app.affiche((char*)"*********************************");
294     char fichier_ves_in[500];
295     char fichier_ves_out[500];
296     char fichier_param[500];
297     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
298     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
299     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
300     if (app.get_erreur()==true) return 0;
301     std::string str_fichier_ves_out = fichier_ves_out;
302     size_t found = str_fichier_ves_out.rfind((char*)".");
303     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
304     str_fichier_magic_out.append((char*)".magic");
305     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
306     PARAMETRES::importer_fichier_parametres(fichier_param,param_etude);
307 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
308 couturad 919 ves.active_affichage(app.affiche);
309     ves.generer_etude(param_etude);
310     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
311     delete param_etude;
312     }
313    
314     if(app.get_action()==13)
315     {
316 couturad 926 app.affiche((char*)"*************************************************");
317     app.affiche((char*)"*** Generation de l'analyse des resultats ***");
318     app.affiche((char*)"*************************************************");
319 couturad 919 char fichier_ves_in[500];
320 couturad 926 char fichier_ves_out[500];
321 couturad 919 char fichier_param[500];
322 couturad 926 char fichier_lstparam[500];
323 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
324 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
325     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
326     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
327 couturad 919 if (app.get_erreur()==true) return 0;
328 couturad 926 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
329     {
330     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
331     return 0;
332     }
333     if(strlen(fichier_param)>0)
334     {
335     std::vector<OT_PARAMETRES*> vector_param_analyse;
336     OT_PARAMETRES* param_analyse = new OT_PARAMETRES;
337     PARAMETRES::importer_fichier_parametres(fichier_param,param_analyse);
338     vector_param_analyse.push_back(param_analyse);
339     MSTRUCT_VES ves(fichier_ves_in);
340     ves.active_affichage(app.affiche);
341     ves.generer_analyse(vector_param_analyse);
342     ves.enregistrer(fichier_ves_out);
343     delete param_analyse;
344     }
345     else if(strlen(fichier_lstparam)>0)
346     {
347     std::vector<OT_PARAMETRES*> vector_param_analyse;
348     PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_analyse);
349     MSTRUCT_VES ves(fichier_ves_in);
350     ves.active_affichage(app.affiche);
351     ves.generer_analyse(vector_param_analyse);
352     ves.enregistrer(fichier_ves_out);
353     std::vector<OT_PARAMETRES*>::iterator it_vector;
354     for(it_vector=vector_param_analyse.begin();it_vector!=vector_param_analyse.end();it_vector++)
355     {
356     delete *it_vector;
357     }
358     }
359 couturad 919 }
360    
361     if(app.get_action()==15)
362     {
363     app.affiche((char*)"******************");
364     app.affiche((char*)"*** Calcul ***");
365     app.affiche((char*)"******************");
366     char fichier_ves_in[500];
367     char fichier_ves_out[500];
368     char fichier_param[500];
369     char fichier_param_aster[500];
370     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
371     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
372     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
373     app.recupere_parametre_string(19,fichier_param_aster,(char*)"Fichier de parametre aster manquant");
374     if (app.get_erreur()==true) return 0;
375     std::string str_fichier_ves_out = fichier_ves_out;
376     size_t found = str_fichier_ves_out.rfind((char*)".");
377     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
378     str_fichier_magic_out.append((char*)".magic");
379     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
380     PARAMETRES::importer_fichier_parametres(fichier_param,param_etude);
381 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
382 couturad 919 ves.active_affichage(app.affiche);
383 couturad 926 ves.generer_calcul(param_etude,fichier_param_aster);
384 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
385     delete param_etude;
386     }
387    
388     if(app.get_action()==16)
389     {
390     app.affiche((char*)"**************************************************");
391     app.affiche((char*)"*** Creation d'une structure de parametres ***");
392     app.affiche((char*)"**************************************************");
393     char fichier_param[500];
394     app.recupere_parametre_string(5,fichier_param,(char*)"Fichier de parametre manquant");
395     if (app.get_erreur()==true) return 0;
396     PARAMETRES::generer_fichier_parametres(fichier_param);
397     }
398    
399     if(app.get_action()==17)
400     {
401     #ifdef ALL_OCC
402     app.affiche((char*)"********************************************************************");
403     app.affiche((char*)"*** Importation de la triangulation STL de la microstructure ***");
404     app.affiche((char*)"********************************************************************");
405     char fichier_ves_in[500];
406     char fichier_ves_out[500];
407     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
408     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
409     double eps;
410     app.recupere_parametre_double_avec_defaut(18,eps,0.1);
411     if (app.get_erreur()==true) return 0;
412     std::string str_fichier_ves_out = fichier_ves_out;
413     size_t found = str_fichier_ves_out.rfind((char*)".");
414     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
415     str_fichier_magic_out.append((char*)".magic");
416 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
417 couturad 919 MG_GESTIONNAIRE* gest = ves.get_mg_gestionnaire();
418     MG_GEOMETRIE* mggeo = ves.get_mg_geometrie();
419     OCC_IMPORT occ_import;
420     MG_MAILLAGE* tristl = occ_import.importer_triangulation_V2017(*gest,mggeo,eps);
421     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
422     #endif
423     }
424    
425     if(app.get_action()==21)
426     {
427 couturad 926 app.affiche((char*)"******************************");
428     app.affiche((char*)"*** Cumul des analyses ***");
429     app.affiche((char*)"******************************");
430 couturad 919 char fichier_lst_ves[500];
431     char fichier_param[500];
432     char fichier_lstparam[500];
433 couturad 926 char dossier_resultat[500];
434     bool incrementale;
435     bool avec_histogramme;
436 couturad 919 app.recupere_parametre_string(22,fichier_lst_ves,(char*)"Fichier de liste de VES");
437     app.recupere_parametre_string_avec_defaut(5,fichier_param,(char*)"");
438     app.recupere_parametre_string_avec_defaut(6,fichier_lstparam,(char*)"");
439 couturad 926 app.recupere_parametre_string_avec_defaut(20,dossier_resultat,(char*)"");
440     app.recupere_parametre_bool_avec_defaut(24,incrementale,false);
441     app.recupere_parametre_bool_avec_defaut(25,avec_histogramme,false);
442 couturad 919 if (app.get_erreur()==true) return 0;
443     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
444     {
445     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
446     return 0;
447     }
448     if(strlen(fichier_param)>0)
449     {
450     std::vector<OT_PARAMETRES*> vector_param;
451     OT_PARAMETRES* param = new OT_PARAMETRES;
452     PARAMETRES::importer_fichier_parametres(fichier_param,param);
453     vector_param.push_back(param);
454 couturad 926 MSTRUCT_VER ver;
455 couturad 919 ver.active_affichage(app.affiche);
456 couturad 926 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,incrementale,avec_histogramme);
457 couturad 919 delete param;
458     }
459     else if(strlen(fichier_lstparam)>0)
460     {
461     std::vector<OT_PARAMETRES*> vector_param;
462     PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param);
463 couturad 926 MSTRUCT_VER ver;
464 couturad 919 ver.active_affichage(app.affiche);
465 couturad 926 ver.cumuler_analyse(fichier_lst_ves,vector_param,dossier_resultat,incrementale,avec_histogramme);
466 couturad 919 std::vector<OT_PARAMETRES*>::iterator it_vector;
467     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
468     {
469     delete *it_vector;
470     }
471     }
472     }
473    
474     if(app.get_action()==23)
475     {
476 couturad 926 app.affiche((char*)"***************************");
477     app.affiche((char*)"*** AFFICHE CONTENU ***");
478     app.affiche((char*)"***************************");
479 couturad 919 char fichier_ves_in[500];
480     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
481     if (app.get_erreur()==true) return 0;
482 couturad 926 MSTRUCT_VES_FILE ves_file;
483     ves_file.ouvrir(fichier_ves_in);
484     ves_file.affiche_contenu(app.affiche);
485 couturad 919 }
486    
487 francois 756 app.affiche((char*)"Fin");
488 couturad 919 // MAGIC_PARAMETRE_APPLICATION p1(2,(char*)"-construire",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Construction du VER selon le fichier de parametre");
489     // MAGIC_PARAMETRE_APPLICATION p2(3,(char*)"-param",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Nom du fichier parametre");
490     // MAGIC_PARAMETRE_APPLICATION p3(4,(char*)"-creeparam",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Création d'un fichier parametre");
491     // p1.ajouter_dependance(3);
492     // p3.ajouter_dependance(1);
493     // lst.push_back(p1);
494     // lst.push_back(p2);
495     // lst.push_back(p3);
496     // MAGIC_APPLICATION app((char*)"Homogéinisation d'une microstructure",argc,argv,lst,false,true);
497     // if (app.get_erreur()==true) return 0;
498     //
499     // if (app.get_action()==2)
500     // {
501     // char fichierparam[1000];
502     // app.recupere_parametre_string(3,fichierparam,(char*)"Fichier parametre manquant");
503     // VE_VES *ves = new VE_VES();
504     // ves->active_affichage(app.affiche);
505     // ves->lire_param_VES(fichierparam);
506     // ves->construire();
507     //
508     // }
509     //
510     // if (app.get_action()==4)
511     // {
512     // char fichierout[1000];
513     // app.recupere_parametre_string(1,fichierout,(char*)"Fichier resultat manquant");
514     // OT_PARAMETRES param;
515     // ini_param_VER(&param);
516     // param.enregistrer(fichierout);
517     // }
518     // app.affiche((char*)"Fin");
519 francois 756 return 0;
520     }
521    
522    
523    
524     #pragma package(smart_init)