ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/VMM/win32/magicform.cpp
Revision: 98
Committed: Fri May 9 14:38:25 2008 UTC (17 years, 3 months ago) by francois
Original Path: magic/app/VMM/VMM/win32/magicform.cpp
File size: 11709 byte(s)
Log Message:
Version des applications aux 9 mai 2008

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     // magicform.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     #include "main.h"
29     #pragma hdrstop
30    
31     #include "magicform.h"
32     #include "tmaille.h"
33     //#include "mailleur.h"
34     //#include "mailleur2d.h"
35     //#include "affiche.h"
36     #include "process.h"
37    
38     //---------------------------------------------------------------------------
39     #pragma package(smart_init)
40     #pragma link "CGAUGES"
41     #pragma link "PERFGRAP"
42     #pragma resource "*.dfm"
43     TVisuMagicform *VisuMagicform;
44     //---------------------------------------------------------------------------
45 francois 62 __fastcall TVisuMagicform::TVisuMagicform(TComponent* Owner,TMainForm *win,MG_FILE* mgest)
46     : TForm(Owner),maille_process(NULL),fen(win),gest(mgest)
47 5 {
48     }
49     //---------------------------------------------------------------------------
50     void __fastcall TVisuMagicform::FormClose(TObject *Sender,
51     TCloseAction &Action)
52     {
53     Action=caFree;
54     }
55     //---------------------------------------------------------------------------
56    
57    
58     void __fastcall TVisuMagicform::RadioButton1Click(TObject *Sender)
59     {
60     GroupBox2->Caption="Carte de taille standard";
61     Label2->Caption="Distance maximale";
62     Label3->Caption="Epsilon";
63     Label2->Visible=true;
64     Label3->Visible=true;
65     Edit1->Text="";
66     Edit2->Text="";
67     Edit1->Visible=true;
68     Edit2->Visible=true;
69     GroupBox2->Visible=true;
70     Button1->Enabled=true;
71     Button3->Visible=false;
72 francois 62 TrackBar3->Visible=false;
73     Edit5->Visible=false;
74     Label5->Caption="Géométrie";
75     ComboBox1->Clear();
76     int nb=gest->get_nb_mg_geometrie();
77     for (int i=0;i<nb;i++)
78     {
79     char mess[200];
80     sprintf(mess,"%lu",gest->get_mg_geometrie(i)->get_id());
81     ComboBox1->Items->Add(mess);
82     }
83     ComboBox1->ItemIndex=0;}
84 5 //---------------------------------------------------------------------------
85    
86    
87     void __fastcall TVisuMagicform::Button1Click(TObject *Sender)
88     {
89     DWORD type,taille;
90     HKEY clef;
91     char name[500];
92     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\UQTR\\VMM\\",0,KEY_EXECUTE,&clef);
93     RegQueryValueEx(clef,"pathmodule",0,&type,0,&taille);
94     RegQueryValueEx(clef,"pathmodule",0,&type,name,&taille);
95     strcat(name,"\\mailleur");
96     char niveau[2];niveau[1]=0;
97     char pm[20];
98     sprintf(pm,"%.2f",TrackBar1->Position*0.01);
99     if (RadioButton2->Checked) niveau[0]='1';
100     if (RadioButton3->Checked) niveau[0]='2';
101     if (RadioButton4->Checked) niveau[0]='3';
102     if (RadioButton5->Checked)
103     {
104     niveau[0]='3';
105     strcat(name,"erin");
106     }
107     double eng=atof(Edit1->Text.c_str());
108     double eps=atof(Edit2->Text.c_str());
109     char nomfichier[500];
110 francois 62 char nomfichiersortie[500];
111 5 sprintf(nomfichier,"\"%s\"",Caption.c_str());
112 francois 62 if (CheckBox3->Checked) {strcpy(nomfichiersortie,"\"");strcat(nomfichiersortie,Edit4->Text.c_str());strcat(nomfichiersortie,"\"");} else strcpy(nomfichiersortie,nomfichier);
113 5 char nomfichiercarte[500];
114     sprintf(nomfichiercarte,"\"%s\"",Edit1->Text.c_str());
115 francois 62 int numentite=ComboBox1->ItemIndex;
116     char numentitechar[20];
117     sprintf(numentitechar,"%d",numentite);
118     char visufront[20];
119     char analyse[20];
120     if (CheckBox2->Checked) strcpy(visufront,"-visufront"); else strcpy(visufront," ");
121     if (CheckBox1->Checked) strcpy(analyse,"-analyse"); else strcpy(analyse," ");
122 5 if (RadioButton1->Checked)
123     {
124     if (eng<0.000001) MessageBox(Handle,"Mauvaise valeur de distance","Erreur",0);
125     else if (eps<0.000001) MessageBox(Handle,"Mauvaise valeur de epsilon","Erreur",0);
126     else
127     {
128 francois 62 spawnl(P_NOWAIT,name,name,"-magic",nomfichier,"-typecarte","1","-eng",Edit1->Text.c_str(),"-eps",Edit2->Text.c_str(),"-niveau",niveau,"-prioritemetrique",pm,"-out",nomfichiersortie,"-numgeo",numentitechar,NULL);
129 5 if (fen->fenlog!=NULL)
130     {
131     char mess[2000];
132 francois 62 sprintf(mess,"%s -magic %s -typecarte 1 -eng %s -eps %s -niveau %s -prioritemetrique %s -out %s -numgeo %s",name,nomfichier,Edit1->Text.c_str(),Edit2->Text.c_str(),niveau,pm,nomfichiersortie,numentitechar);
133 5 fen->fenlog->ajouter(mess);
134     }
135     }
136     }
137     if (RadioButton6->Checked)
138     {
139     if (Edit1->Text=="") MessageBox(Handle,"Pas de fichier carte de taille","Erreur",0);
140     else
141     {
142 francois 62 spawnl(P_NOWAIT,name,name,"-magic",nomfichier,"-typecarte","2","-carte",nomfichiercarte,"-niveau",niveau,"-prioritemetrique",pm,"-out",nomfichiersortie,"-numgeo",numentitechar,"-niveauopt",Edit3->Text.c_str(),analyse,visufront,NULL);
143 5 if (fen->fenlog!=NULL)
144     {
145     char mess[2000];
146 francois 62 sprintf(mess,"%s -magic %s -typecarte 2 -carte %s -niveau %s -prioritemetrique %s -out %s -numgeo %s -niveauopt %s %s %s",name,nomfichier,nomfichiercarte,niveau,pm,nomfichiersortie,numentitechar,Edit3->Text.c_str(),analyse,visufront);
147 5 fen->fenlog->ajouter(mess);
148     }
149     }
150     }
151 francois 62 if (RadioButton7->Checked)
152     {
153     if (Edit1->Text=="") MessageBox(Handle,"Pas de fichier carte de taille","Erreur",0);
154     else
155     {
156     spawnl(P_NOWAIT,name,name,"-magic",nomfichier,"-adapt","-typecarte","2","-carte",nomfichiercarte,"-prioritemetrique",pm,"-out",nomfichiersortie,"-nummai",ComboBox1->Text.c_str(),"-limitadapt",Edit5->Text.c_str(),"-niveauopt",Edit3->Text.c_str(),analyse,visufront,NULL);
157     if (fen->fenlog!=NULL)
158     {
159     char mess[2000];
160     sprintf(mess,"%s -magic %s -adapt -typecarte 2 -carte %s -niveau %s -prioritemetrique %s -out %s -nummai %s -limitadapt %s -niveauopt %s %s %s",name,nomfichier,nomfichiercarte,niveau,pm,nomfichiersortie,ComboBox1->Text,Edit5->Text.c_str(),Edit3->Text.c_str(),analyse,visufront);
161     fen->fenlog->ajouter(mess);
162     }
163     }
164     }
165 francois 98 if (RadioButton8->Checked)
166     {
167     char verification[20];
168     if (CheckBox4->Checked==true) strcpy(verification,"-verif"); else strcpy(verification," ");
169     if (Edit6->Text=="") MessageBox(Handle,"Pas de fichier magic","Erreur",0);
170     else
171     {
172     sprintf(nomfichiersortie,"\"%s\"",Edit6->Text.c_str());
173     spawnl(P_NOWAIT,name,name,"-octal","-carte",nomfichier,"-magic",nomfichiersortie,"-coef",Edit8->Text.c_str(),verification,NULL);
174     if (fen->fenlog!=NULL)
175     {
176     char mess[2000];
177     sprintf(mess,"-octal -carte %s -magic %s -coef %s %s",nomfichier,nomfichiersortie,Edit8->Text.c_str(),verification);
178     fen->fenlog->ajouter(mess);
179     }
180     }
181     }
182 5 }
183     //---------------------------------------------------------------------------
184    
185    
186    
187    
188    
189     void __fastcall TVisuMagicform::RadioButton6Click(TObject *Sender)
190     {
191     GroupBox2->Caption="Carte de taille 3D précalculée";
192     Label2->Caption="Fichier";
193     Label2->Visible=true;
194     Label3->Visible=false;
195     Edit1->Visible=true;
196     Edit2->Visible=false;
197     GroupBox2->Visible=true;
198     Button1->Enabled=true;
199     Button3->Visible=true;
200 francois 62 TrackBar3->Visible=false;
201     Edit5->Visible=false;
202     Label5->Caption="Géométrie";
203     ComboBox1->Clear();
204     int nb=gest->get_nb_mg_geometrie();
205     for (int i=0;i<nb;i++)
206     {
207     char mess[200];
208     sprintf(mess,"%lu",gest->get_mg_geometrie(i)->get_id());
209     ComboBox1->Items->Add(mess);
210     }
211     ComboBox1->ItemIndex=0;
212 5 }
213     //---------------------------------------------------------------------------
214    
215    
216     void __fastcall TVisuMagicform::Button3Click(TObject *Sender)
217     {
218     if (OpenDialog1->Execute())
219     Edit1->Text=OpenDialog1->FileName;
220     }
221     //---------------------------------------------------------------------------
222    
223     void __fastcall TVisuMagicform::TrackBar1Change(TObject *Sender)
224     {
225     char mess[30];
226     sprintf(mess,"%d\%",TrackBar1->Position);
227     Edit7->Text=mess;
228     }
229     //---------------------------------------------------------------------------
230    
231     void __fastcall TVisuMagicform::Button2Click(TObject *Sender)
232     {
233     Close();
234     }
235     //---------------------------------------------------------------------------
236    
237 francois 62
238     void __fastcall TVisuMagicform::RadioButton7Click(TObject *Sender)
239     {
240     GroupBox2->Caption="Adaptation de maillage";
241     Label2->Caption="Fichier carte de taille";
242     Label2->Visible=true;
243     Label3->Visible=true;
244     Label3->Caption="Limite carte de taille";
245     Edit1->Visible=true;
246     Edit2->Visible=false;
247     GroupBox2->Visible=true;
248     Button1->Enabled=true;
249     Button3->Visible=true;
250     TrackBar3->Visible=true;
251     Edit5->Visible=true;
252     Label5->Caption="Maillage";
253     ComboBox1->Clear();
254     int nb=gest->get_nb_mg_maillage();
255     for (int i=0;i<nb;i++)
256     {
257     char mess[200];
258     sprintf(mess,"%lu",gest->get_mg_maillage(i)->get_id());
259     ComboBox1->Items->Add(mess);
260     }
261     ComboBox1->ItemIndex=0;
262     }
263     //---------------------------------------------------------------------------
264    
265     void __fastcall TVisuMagicform::TrackBar2Change(TObject *Sender)
266     {
267     Edit3->Text=TrackBar2->Position;
268     }
269     //---------------------------------------------------------------------------
270    
271     void __fastcall TVisuMagicform::Button4Click(TObject *Sender)
272     {
273     if (OpenDialog2->Execute())
274 francois 98 Edit4->Text=OpenDialog2->FileName;
275 francois 62 }
276     //---------------------------------------------------------------------------
277    
278     void __fastcall TVisuMagicform::CheckBox3Click(TObject *Sender)
279     {
280     Button4->Visible=CheckBox3->Checked;
281     Edit4->Visible=CheckBox3->Checked;
282     }
283     //---------------------------------------------------------------------------
284    
285     void __fastcall TVisuMagicform::TrackBar3Change(TObject *Sender)
286     {
287     char mess[30];
288     sprintf(mess,"%.2f",1.0*TrackBar3->Position/100.);
289     Edit5->Text=mess;
290     }
291     //---------------------------------------------------------------------------
292    
293 francois 98 void __fastcall TVisuMagicform::Button5Click(TObject *Sender)
294     {
295     if (OpenDialog2->Execute())
296     Edit6->Text=OpenDialog2->FileName;
297     }
298     //---------------------------------------------------------------------------
299    
300     void __fastcall TVisuMagicform::TrackBar4Change(TObject *Sender)
301     {
302     double val=TrackBar4->Position*0.09+1;
303     if (CheckBox5->Checked==true) val=1./val;
304     Edit8->Text=val;
305     }
306     //---------------------------------------------------------------------------
307    
308     void __fastcall TVisuMagicform::CheckBox5Click(TObject *Sender)
309     {
310     double val=TrackBar4->Position*0.09+1;
311     if (CheckBox5->Checked==true) val=1./val;
312     Edit8->Text=val;
313     }
314     //---------------------------------------------------------------------------
315