ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 933
Committed: Wed May 23 18:48:54 2018 UTC (6 years, 11 months ago) by couturad
File size: 27489 byte(s)
Log Message:
MICROSTRUCTURE: 
Ajout d'un exportateur de maillage au format Abaqus
Mise a jour des fonctionnalites

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