ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 997
Committed: Tue Dec 18 15:59:49 2018 UTC (6 years, 4 months ago) by couturad
File size: 39913 byte(s)
Log Message:
MICROSTRUCTURE: ajout d'un outil pour reduire le nombre de colonnes d'un histogramme 

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