ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/VMM/win32/solveur.cpp
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (18 years, 2 months ago)
Original Path: magic/app/VMM/VMM/win32/solveur.cpp
File size: 7894 byte(s)
Log Message:

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
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     // solveur.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 à 11H26
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25     #include "gestionversion.h"
26    
27     #include <vcl.h>
28     #pragma hdrstop
29    
30     #include "solveur.h"
31     #include "process.h"
32     #include <stdio.h>
33     //---------------------------------------------------------------------------
34     #pragma package(smart_init)
35     #pragma resource "*.dfm"
36     Tfsolve *fsolve;
37     //---------------------------------------------------------------------------
38     __fastcall Tfsolve::Tfsolve(TComponent* Owner,MG_GESTIONNAIRE *gestion)
39     : TForm(Owner),gest(gestion)
40     {
41     }
42     //---------------------------------------------------------------------------
43     void __fastcall Tfsolve::Button1Click(TObject *Sender)
44     {
45     long id=atol(ComboBox1->Text.c_str());
46     int num1,num2;
47     if ((RadioButton6->Checked) || (RadioButton1->Checked))
48     {
49     MG_MAILLAGE* mai=gest->get_mg_maillageid(id);
50     if (RadioButton2->Checked) num1=1;
51     else if (RadioButton3->Checked) num1=2;
52     if (RadioButton4->Checked) num2=1;
53     else if (RadioButton5->Checked) num2=4;
54     int num=10*num1+num2;
55     char name[500],arg1[10],arg2[10];
56     sprintf(arg1,"%d",num);
57     sprintf(arg2,"%ld",id);
58     DWORD type,taille;
59     HKEY clef;
60     char fichier[500];
61     sprintf(fichier,"\"%s\"",Caption.c_str());
62     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\UQTR\\VMM\\",0,KEY_EXECUTE,&clef);
63     RegQueryValueEx(clef,"pathmodule",0,&type,0,&taille);
64     RegQueryValueEx(clef,"pathmodule",0,&type,name,&taille);
65     strcat(name,"\\solveur");
66     FEM_MAILLAGE* femmai=NULL;
67     int nb_fem_maillage=gest->get_nb_fem_maillage();
68     for (int i=0;i<nb_fem_maillage;i++)
69     {
70     FEM_MAILLAGE* femtmp=gest->get_fem_maillage(i);
71     long id2=femtmp->get_mg_maillage()->get_id();
72     if ((id==id2) && (num1==femtmp->get_degre()))
73     femmai=femtmp;
74     }
75     if (femmai==NULL)
76     {
77     femmai=new FEM_MAILLAGE(mai->get_mg_geometrie(),mai,num1);
78     gest->ajouter_fem_maillage(femmai);
79     femmai->construire(1);
80     gest->enregistrer(Caption.c_str());
81     char mess[255];
82     sprintf(mess,"Création du Maillage FEM %lu",femmai->get_id());
83     Label1->Caption=mess;
84     }
85     else
86     {
87     char mess[255];
88     sprintf(mess,"Activation du Maillage FEM %lu",femmai->get_id());
89     Label1->Caption=mess;
90     }
91     char idchar[20];
92     sprintf(idchar,"%lu",femmai->get_id());
93     char typeetude[50];
94     if (RadioButton1->Checked==true) sprintf(typeetude,"-elastoplastique");
95     if (RadioButton6->Checked==true) sprintf(typeetude,"-elastique");
96     spawnl(P_NOWAIT,name,name,typeetude,"-fichier",fichier,"-code",arg1,"-id",idchar,NULL);
97     }
98     if (RadioButton7->Checked)
99     {
100     int degre;
101     if (RadioButton2->Checked) degre=1;
102     else if (RadioButton3->Checked) degre=2;
103     MG_MAILLAGE* mai=gest->get_mg_maillageid(id);
104     FEM_MAILLAGE* femmai=new FEM_MAILLAGE(mai->get_mg_geometrie(),mai,degre);
105     gest->ajouter_fem_maillage(femmai);
106     femmai->construire(1);
107     gest->enregistrer(Caption.c_str());
108     char mess[255];
109     sprintf(mess,"Création du Maillage FEM %lu",femmai->get_id());
110     Label1->Caption=mess;
111     }
112     if (RadioButton8->Checked)
113     {
114     MG_MAILLAGE* mai=gest->get_mg_maillageid(id);
115     int degre;
116     if (RadioButton2->Checked) degre=1;
117     else if (RadioButton3->Checked) degre=2;
118     int nb_fem_maillage=gest->get_nb_fem_maillage();
119     FEM_MAILLAGE* femmai=NULL;
120     for (int i=0;i<nb_fem_maillage;i++)
121     {
122     FEM_MAILLAGE* femtmp=gest->get_fem_maillage(i);
123     long id2=femtmp->get_mg_maillage()->get_id();
124     if ((id==id2) && (degre==femtmp->get_degre()))
125     femmai=femtmp;
126     }
127     if (femmai==NULL)
128     {
129     femmai=new FEM_MAILLAGE(mai->get_mg_geometrie(),mai,degre);
130     gest->ajouter_fem_maillage(femmai);
131     femmai->construire(1);
132     gest->enregistrer(Caption.c_str());
133     char mess[255];
134     sprintf(mess,"Création du Maillage FEM %lu",femmai->get_id());
135     Label1->Caption=mess;
136     }
137     else
138     {
139     char mess[255];
140     sprintf(mess,"Activation du Maillage FEM %lu",femmai->get_id());
141     Label1->Caption=mess;
142     }
143    
144     if (SaveDialog1->Execute())
145     {
146     string namefic=SaveDialog1->FileName.c_str();
147     femmai->exporter_cosmos(namefic);
148     }
149     }
150     }
151     //---------------------------------------------------------------------------
152     void __fastcall Tfsolve::Button2Click(TObject *Sender)
153     {
154     Close();
155     }
156     //---------------------------------------------------------------------------
157     void __fastcall Tfsolve::FormClose(TObject *Sender, TCloseAction &Action)
158     {
159     Action=caFree;
160     }
161     //---------------------------------------------------------------------------
162     void __fastcall Tfsolve::RadioButton6Click(TObject *Sender)
163     {
164     GroupBox3->Enabled=true;
165     }
166     //---------------------------------------------------------------------------
167    
168     void __fastcall Tfsolve::RadioButton1Click(TObject *Sender)
169     {
170     GroupBox3->Enabled=true;
171     }
172     //---------------------------------------------------------------------------
173    
174     void __fastcall Tfsolve::RadioButton7Click(TObject *Sender)
175     {
176     GroupBox3->Enabled=false;
177    
178     }
179     //---------------------------------------------------------------------------
180    
181     void __fastcall Tfsolve::RadioButton8Click(TObject *Sender)
182     {
183     GroupBox3->Enabled=false;
184     }
185     //---------------------------------------------------------------------------
186