ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/toIbrep/src/main.cpp
Revision: 731
Committed: Mon Sep 21 22:31:27 2015 UTC (9 years, 11 months ago) by francois
File size: 4983 byte(s)
Log Message:
Correction des periodicites dans opencascade
Correction des importation de surface et courbe dans opencascade en respectant tous nos besoins
Ajout d'un langage script pour construire des arbres de construction sous opencascade avec un cas test

File Contents

# User Rev Content
1 francois 249 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�e et Vincent FRANCOIS
5     // D�artement de G�ie M�anique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�artement
8     // de g�ie m�anique de l'Universit�du Qu�ec �
9     // Trois Rivi�es
10     // Les librairies ne peuvent �re utilis�s 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     #include "gestionversion.h"
24     #ifdef WINDOWS_VERSION
25     #include "fenetre.h"
26     #endif
27    
28     #pragma hdrstop
29    
30     #include "mg_file.h"
31 francois 259 #include "toibrep.h"
32 francois 276 #include "ot_cpu.h"
33 francois 485 #include "mg_export.h"
34 francois 276 #include "mailleur3d.h"
35 francois 249 #include <fstream>
36     #include <string.h>
37 francois 485 #include "magic_application.h"
38 francois 731 #include "fct_generateur_3d.h"
39 francois 249 //---------------------------------------------------------------------------
40    
41    
42    
43 francois 485
44 francois 249 int main(int argc,char **argv)
45     {
46 francois 485 std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
47     MAGIC_PARAMETRE_APPLICATION p1(3,(char*)"-numgeo",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numero de géométrie a transformer en modèle X-FEM - Defaut la première");
48     MAGIC_PARAMETRE_APPLICATION p2(4,(char*)"-nummai",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numero de maillage FEM support au modèle X-FEM - Defaut 0 = maillage à créer");
49     MAGIC_PARAMETRE_APPLICATION p3(5,(char*)"-carte",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier carte de taille");
50     MAGIC_PARAMETRE_APPLICATION p4(6,(char*)"-coef",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Coefficient de raffinement pour le mailleur octal - Defaut 2.");
51     MAGIC_PARAMETRE_APPLICATION p5(7,(char*)"-degre",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Degre du maillage crée - Defaut 1");
52     MAGIC_PARAMETRE_APPLICATION p6(8,(char*)"-pas",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Echantillonnage des entités géométriques pour l'évaluation des propriétés - Defaut 50");
53     lst.push_back(p1);
54     lst.push_back(p2);
55     lst.push_back(p3);
56     lst.push_back(p4);
57     lst.push_back(p5);
58     lst.push_back(p6);
59    
60     MAGIC_APPLICATION app((char*)"Création d'un modèle X-FEM",argc,argv,lst,true,true);
61     if (app.get_erreur()==true) return 0;
62    
63 francois 249 char nomfichier[500];
64 francois 276 char fichiercarte[500];
65 francois 249 char nomfichiersortie[500];
66 francois 485 int numgeo;
67     int nummai;
68     double coef;
69     int degre;
70     int pas;
71     app.recupere_parametre_string(1,nomfichier,(char*)"Fichier entrant manquant");
72     app.recupere_parametre_string_avec_defaut(2,nomfichiersortie,nomfichier);
73     app.recupere_parametre_int_avec_defaut(3,numgeo,0);
74     app.recupere_parametre_int_avec_defaut(4,nummai,0);
75     if (nummai==0)
76     app.recupere_parametre_string(5,fichiercarte,(char*)"Fichier carte manquant");
77     else app.recupere_parametre_string_avec_defaut(5,fichiercarte,(char*)"");
78     app.recupere_parametre_double_avec_defaut(6,coef,2.);
79     app.recupere_parametre_int_avec_defaut(7,degre,1);
80     app.recupere_parametre_int_avec_defaut(7,pas,50);
81    
82    
83     if (app.get_erreur()==true) return 0;
84    
85 francois 276 OT_CPU compteur;
86 francois 485 app.affiche((char*)"Debut");
87     app.affiche((char*)"Lecture fichier magic");
88 francois 249 MG_FILE gest(nomfichier);
89 francois 485 MG_GEOMETRIE* geo;
90     if (numgeo==0) geo=gest.get_mg_geometrie(0); else geo=gest.get_mg_geometrieid(numgeo);
91     compteur.ajouter_etape((char*)"Lecture fichier");
92 francois 276 FEM_MAILLAGE* mai;
93     if (nummai!=0) mai=gest.get_fem_maillageid(nummai);
94     else
95     {
96 francois 485 app.affiche((char*)"Lecture carte de taille");
97 francois 276 FCT_GENERATEUR_3D<4> carte;
98     carte.lire(fichiercarte);
99     compteur.ajouter_etape("Lecture carte de taille");
100 francois 485 app.affiche((char*)"Mailleur octal");
101 francois 276 MG_MAILLAGE* mgmai=new MG_MAILLAGE(NULL);
102     gest.ajouter_mg_maillage(mgmai);
103     MAILLEUR3D mailleur(&carte,mgmai);
104     mailleur.change_coef(coef);
105     mailleur.maille();
106     compteur.ajouter_etape("Mailleur octal");
107 francois 485 app.affiche((char*)"Maillage FEM");
108 francois 276 mai=new FEM_MAILLAGE(mgmai->get_mg_geometrie(),mgmai,degre);
109     gest.ajouter_fem_maillage(mai);
110     mai->construire(0);
111     compteur.ajouter_etape("Mailleur FEM");
112     }
113 francois 485
114 francois 276 TOIBREP t(&gest,geo,mai,pas,&compteur);
115 francois 485 t.active_affichage(app.affiche);
116 francois 432 t.importer_et_decouper(NULL);
117 francois 485 app.affiche((char*)"Enregistrement magic");
118 francois 249 gest.enregistrer(nomfichiersortie);
119 francois 432 MG_EXPORT exp;
120 francois 485 exp.gmsh_avec_correspondance(mai,nomfichiersortie);
121     compteur.ajouter_etape((char*)"Enregistrement");
122     app.affiche((char*)"Fin");
123     return 0;
124 francois 249
125     }
126    
127    
128    
129     #pragma package(smart_init)