ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/VMM/win32/main.cpp
Revision: 62
Committed: Fri Nov 16 16:46:00 2007 UTC (17 years, 9 months ago) by francois
Original Path: magic/app/VMM/VMM/win32/main.cpp
File size: 29699 byte(s)
Log Message:
Nouvelle version de VMM avec couleur configurable et affichage de l 'origine des mailles
Nouveau prog de transfert
Nouvelle version de mailleur avec toutes les options disponibles

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     // main.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 <stdio.h>
29     #include <io.h>
30     #include <dos.h>
31     #pragma hdrstop
32    
33     #include "Main.h"
34     #include "departwin.h"
35     #include "help.h"
36     #include "About.h"
37     #include "transform.h"
38     #include "visuctt.h"
39     #include "expwin.h"
40     #include "visu.h"
41     #include "alicence.h"
42 francois 56 #include "process.h"
43 5
44     //---------------------------------------------------------------------------
45     #pragma link "CGAUGES"
46     #pragma resource "*.dfm"
47     TMainForm *MainForm;
48     //---------------------------------------------------------------------------
49    
50     __fastcall TMainForm::TMainForm(TComponent *Owner)
51     : TForm(Owner),activewinform(NULL),fenlog(NULL)
52     {
53 francois 62 for (int i=0;i<200;i++) valeurconfig[i]=0.;
54 5 //axe
55     valeurconfig[0]=0.;
56     valeurconfig[1]=0.;
57     valeurconfig[2]=1.;
58     valeurconfig[3]=1.;
59     valeurconfig[4]=0.;
60     valeurconfig[5]=0.;
61     valeurconfig[6]=1.;
62     valeurconfig[7]=1.;
63     valeurconfig[8]=1.;
64     valeurconfig[9]=1.;
65     valeurconfig[10]=0.1;
66     //fond
67     valeurconfig[11]=0.;
68     valeurconfig[12]=0.;
69     valeurconfig[13]=0.5;
70     //m1d
71     valeurconfig[14]=1.;
72     valeurconfig[15]=0.;
73     valeurconfig[16]=0.;
74     valeurconfig[17]=1.;
75     //m2d
76     valeurconfig[18]=1.;
77     valeurconfig[19]=0.;
78     valeurconfig[20]=0.;
79     valeurconfig[21]=1.;
80     //m3d
81     valeurconfig[22]=1.;
82     valeurconfig[23]=0.;
83     valeurconfig[24]=0.;
84     valeurconfig[25]=1.;
85     //geo
86     valeurconfig[26]=1.;
87     valeurconfig[27]=1.;
88     valeurconfig[28]=1.;
89     valeurconfig[29]=1.;
90     //noeud
91     valeurconfig[30]=1.;
92     valeurconfig[31]=0.;
93     valeurconfig[32]=0.;
94     valeurconfig[33]=1.;
95     //rendu
96     valeurconfig[34]=0.;
97     valeurconfig[35]=0.8;
98     valeurconfig[36]=0.;
99     valeurconfig[37]=0.;
100     valeurconfig[38]=0.;
101     valeurconfig[39]=0.;
102     valeurconfig[40]=1.;
103     //qualite
104     valeurconfig[41]=0.;
105     valeurconfig[42]=1.0;
106     valeurconfig[43]=0.;
107     valeurconfig[44]=0.;
108     valeurconfig[45]=0.;
109     valeurconfig[46]=1.;
110     valeurconfig[47]=1.;
111     valeurconfig[48]=0.;
112     valeurconfig[49]=0.;
113     valeurconfig[50]=0.5;
114     valeurconfig[51]=0.;
115     valeurconfig[52]=0.;
116     valeurconfig[53]=0.5;
117     valeurconfig[54]=0.2;
118     valeurconfig[55]=0.1;
119     valeurconfig[56]=1.;
120     //carte de taille
121     valeurconfig[57]=0.;
122     valeurconfig[58]=0.;
123     valeurconfig[59]=0.;
124     valeurconfig[60]=0.;
125     valeurconfig[61]=0.;
126     valeurconfig[62]=1.;
127     valeurconfig[63]=0.;
128     valeurconfig[64]=0.;
129     valeurconfig[65]=0.5;
130 francois 62 //degrade
131     valeurconfig[66]=0./255.;valeurconfig[67]=0./255.;valeurconfig[68]=255./255.;
132     valeurconfig[69]=0./255.;valeurconfig[70]=100./255.;valeurconfig[71]=255./255.;
133     valeurconfig[72]=0./255.;valeurconfig[73]=200./255.;valeurconfig[74]=255./255.;
134     valeurconfig[75]=0./255.;valeurconfig[76]=255./255.;valeurconfig[77]=255./255.;
135     valeurconfig[78]=0./255.;valeurconfig[79]=255./255.;valeurconfig[80]=200./255.;
136     valeurconfig[81]=0./255.;valeurconfig[82]=255./255.;valeurconfig[83]=100./255.;
137     valeurconfig[84]=0./255.;valeurconfig[85]=255./255.;valeurconfig[86]=0./255.;
138     valeurconfig[87]=100./255.;valeurconfig[88]=255./255.;valeurconfig[89]=0./255.;
139     valeurconfig[90]=200./255.;valeurconfig[91]=255./255.;valeurconfig[92]=0./255.;
140     valeurconfig[93]=255./255.;valeurconfig[94]=255./255.;valeurconfig[95]=0./255.;
141     valeurconfig[96]=255./255.;valeurconfig[97]=150./255.;valeurconfig[98]=0./255.;
142     valeurconfig[99]=255./255.;valeurconfig[100]=0./255.;valeurconfig[101]=0./255.;
143     valeurconfig[102]=255./255.;valeurconfig[103]=0./255.;valeurconfig[104]=0./255.;
144     valeurconfig[105]=255./255.;valeurconfig[106]=137./255.;valeurconfig[107]=255./255.;
145     //origine maille
146     valeurconfig[108]=255./255.;valeurconfig[109]=0./255.;valeurconfig[110]=0./255.;
147     valeurconfig[111]=100./255.;valeurconfig[112]=255./255.;valeurconfig[113]=0./255.;
148     valeurconfig[114]=50./255.;valeurconfig[115]=155./255.;valeurconfig[116]=100./255.;
149     valeurconfig[117]=0./255.;valeurconfig[118]=255./255.;valeurconfig[119]=255./255.;
150     valeurconfig[120]=0./255.;valeurconfig[121]=100./255.;valeurconfig[122]=200./255.;
151 5 char buf[500];
152     HKEY clef;
153     DWORD type,taille;
154     int res=RegOpenKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\UQTR\\VMM\\Configuration",0,KEY_EXECUTE,&clef);
155     if (res==ERROR_SUCCESS)
156     {
157     int res=RegQueryValueEx(clef,"Default",0,&type,0,&taille);
158     if (res==ERROR_SUCCESS)
159     {
160     RegQueryValueEx(clef,"Default",0,&type,buf,&taille);
161     char* p=strtok(buf," ");
162 francois 62 for (int i=0;i<200;i++)
163 5 {
164     double val;
165 francois 62 if (p==NULL) continue;
166     int nb=sscanf(p,"%lf",&val);
167     if (nb!=1) continue;
168 5 valeurconfig[i]=val;
169     p=strtok(NULL," ");
170     }
171     }
172     }
173    
174    
175     }
176     //---------------------------------------------------------------------------
177    
178     void __fastcall TMainForm::CreateMDIChild(String Name)
179     {
180     TEditeurWinform *Child;
181    
182     Child = new TEditeurWinform(Application);
183     Child->Caption = Name;
184     FILE* in=fopen(Child->Caption.c_str(),"rt");
185     if (in!=NULL)
186     {
187     std::ftime ft;
188     getftime(fileno(in), &ft);
189     char mess[1000];
190     sprintf(mess,"Heure fichier: %02u:%02u:%02u\n",ft.ft_hour, ft.ft_min,ft.ft_tsec * 2);
191     MainForm->StatusBar->Panels->Items[3]->Text=mess;
192     sprintf(mess,"Jour fichier: %02u/%02u/%02u\n",ft.ft_day, ft.ft_month,ft.ft_year+1980);
193     MainForm->StatusBar->Panels->Items[4]->Text=mess;
194     fclose(in);
195     }
196     if (FileExists (Name))
197     Child->Memo1->Lines->LoadFromFile(Name);
198    
199     }
200     //---------------------------------------------------------------------------
201     void __fastcall TMainForm::CreateMDIChildVisu(TObject *Sender,String Name)
202     {
203    
204     TVisuWinform *child;
205    
206     child=new TVisuWinform(Application);
207     child->Caption = Name;
208     FILE* in=fopen(child->Caption.c_str(),"rt");
209     if (in!=NULL)
210     {
211     std::ftime ft;
212     getftime(fileno(in), &ft);
213     char mess[1000];
214     sprintf(mess,"Heure fichier: %02u:%02u:%02u\n",ft.ft_hour, ft.ft_min,ft.ft_tsec * 2);
215     MainForm->StatusBar->Panels->Items[3]->Text=mess;
216     sprintf(mess,"Jour fichier: %02u/%02u/%02u\n",ft.ft_day, ft.ft_month,ft.ft_year+1980);
217     MainForm->StatusBar->Panels->Items[4]->Text=mess;
218     fclose(in);
219     }
220     Screen->Cursor=crHourGlass;
221     child->Invalidate();
222     child->gest=new MG_FILE(Name.c_str());
223     if (child->gest->get_code_de_lecture()==0)
224     {
225     MessageBox(Handle,"Erreur de lecture du fichier","Erreur", MB_OK);
226     delete child->gest;
227     child->gest=NULL;
228     Screen->Cursor=crDefault;
229     child->Invalidate();
230     child->Close();
231     return;
232     }
233     child->miseajourarbre();
234     Screen->Cursor=crDefault;
235     child->Invalidate();
236     child->ChangemodeExecute(Sender);
237    
238     }
239     //---------------------------------------------------------------------------
240    
241     void __fastcall TMainForm::FileNew1Execute(TObject *Sender)
242     {
243     CreateMDIChild("NONAME" + IntToStr(MDIChildCount + 1));
244     }
245     //---------------------------------------------------------------------------
246    
247    
248     void __fastcall TMainForm::HelpAbout1Execute(TObject *Sender)
249     {
250     AboutBox->ShowModal();
251     }
252     //---------------------------------------------------------------------------
253    
254     void __fastcall TMainForm::FileExit1Execute(TObject *Sender)
255     {
256     Close();
257     }
258     //---------------------------------------------------------------------------
259    
260    
261     void __fastcall TMainForm::openediteurExecute(TObject *Sender)
262     {
263     OpenDialog->Filter="Fichier MAGiC|*.magic|Fichier carte de taille|*.ctt|Fichier texte|*.txt|Tous Fichiers |*.*";
264     if (OpenDialog->Execute())
265     CreateMDIChild(OpenDialog->FileName);
266     }
267     //---------------------------------------------------------------------------
268    
269    
270    
271     void __fastcall TMainForm::openvisuExecute(TObject *Sender)
272     {
273     OpenDialog->Filter="Fichier MAGiC|*.magic";
274     if (OpenDialog->Execute())
275     CreateMDIChildVisu(Sender,OpenDialog->FileName);
276     }
277     //---------------------------------------------------------------------------
278    
279    
280    
281     void __fastcall TMainForm::SATMAGiC1Click(TObject *Sender)
282     {
283     #ifdef BREP_SAT
284     Twintransform *Child;
285    
286     Child = new Twintransform(Application);
287     Child->Caption = "SAT->MAGiC";
288     Child->GroupBox1->Caption = "Fichier SAT";
289     Child->OpenDialog1->Filter="Fichier SAT|*.sat|Autres Fichiers|*.*";
290     #endif
291     }
292     //---------------------------------------------------------------------------
293    
294     void __fastcall TMainForm::STEPMAGiC1Click(TObject *Sender)
295     {
296     #ifdef BREP_STEP
297    
298     Twintransform *Child;
299     Child = new Twintransform(Application);
300     Child->Caption = "STEP->MAGiC";
301     Child->GroupBox1->Caption = "Fichier STEP";
302     Child->OpenDialog1->Filter="Fichier STEP|*.st*|Autres Fichiers|*.*";
303     #endif
304     }
305     //---------------------------------------------------------------------------
306    
307    
308     void __fastcall TMainForm::Timer1Timer(TObject *Sender)
309     {
310     static int passe=0;
311     TDateTime maint=Now();
312     unsigned short hh;
313     unsigned short mm;
314     unsigned short ss;
315     unsigned short sss;
316     unsigned short an;
317     unsigned short mois;
318     unsigned short jour;
319     maint.DecodeTime(&hh,&mm,&ss,&sss);
320     maint.DecodeDate(&an,&mois,&jour);
321     char mess[30];
322     sprintf(mess,"%02u/%02u/%02u %02uH%02u",jour,mois,an,hh,mm);
323     StatusBar->Panels->Items[0]->Text=mess;
324     Timer1->Interval=10000;
325     if (!passe)
326     {
327     Timer2->Enabled=true;
328     Timer2->Interval=1;
329     HKEY clef;
330     DWORD type,taille;
331     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\UQTR\\VMM\\",0,KEY_EXECUTE,&clef);
332     int res=RegQueryValueEx(clef,"Serveur",0,&type,0,&taille);
333     if (res!=ERROR_SUCCESS)
334     {
335     MessageBox(Handle,"Problème d'installation","Erreur", MB_OK);
336     TerminateProcess(GetCurrentProcess(),0);
337     }
338     char name[100];
339     RegQueryValueEx(clef,"Serveur",0,&type,name,&taille);
340     ClientSocket1->Host=name;
341     passe=1;
342     }
343    
344     }
345     //---------------------------------------------------------------------------
346    
347    
348    
349    
350    
351    
352    
353    
354    
355     void __fastcall TMainForm::WindowCascade1Execute(TObject *Sender)
356     {
357     Cascade();
358     }
359     //---------------------------------------------------------------------------
360    
361    
362     void __fastcall TMainForm::WindowTileHorizontal1Execute(TObject *Sender)
363     {
364     TileMode = tbHorizontal;
365     Tile();
366     }
367     //---------------------------------------------------------------------------
368    
369     void __fastcall TMainForm::WindowTileVertical1Execute(TObject *Sender)
370     {
371     TileMode = tbVertical;
372     Tile();
373     }
374     //---------------------------------------------------------------------------
375    
376     void __fastcall TMainForm::WindowArrangeAll1Execute(TObject *Sender)
377     {
378     ArrangeIcons();
379     }
380     //---------------------------------------------------------------------------
381    
382    
383     void __fastcall TMainForm::FormCreate(TObject *Sender)
384     {
385     char mess[255];
386     sprintf(mess,"Visual MAGiC Modulaire v%s",VERSION);
387     Caption=mess;
388     ToolButton4->ImageIndex=45;
389 francois 56 ToolButton2->ImageIndex=61;
390 5 ToolButton5->ImageIndex=41;
391     ToolButton6->ImageIndex=43;
392     ToolButton12->ImageIndex=20;
393     ToolButton13->ImageIndex=21;
394     ToolButton14->ImageIndex=49;
395     ToolButton15->ImageIndex=50;
396     ToolButton16->ImageIndex=53;
397     ToolButton17->ImageIndex=54;
398     ToolButton18->ImageIndex=52;
399     ToolButton19->ImageIndex=51;
400     ToolButton20->ImageIndex=26;
401     ToolButton21->ImageIndex=10;
402 francois 56 ToolButton24->ImageIndex=60;
403 5 ToolButton32->ImageIndex=38;
404     ToolButton33->ImageIndex=28;
405     ToolButton34->ImageIndex=31;
406     ToolButton35->ImageIndex=34;
407     ToolButton36->ImageIndex=37;
408     ToolButton37->ImageIndex=29;
409     ToolButton38->ImageIndex=32;
410     ToolButton39->ImageIndex=35;
411     ToolButton40->ImageIndex=10;
412     ToolButton41->ImageIndex=20;
413     ToolButton42->ImageIndex=21;
414     ToolButton43->ImageIndex=49;
415     ToolButton44->ImageIndex=50;
416     ToolButton45->ImageIndex=54;
417     ToolButton46->ImageIndex=51;
418     ToolButton47->ImageIndex=38;
419     ToolButton48->ImageIndex=37;
420     ToolButton49->ImageIndex=28;
421     ToolButton50->ImageIndex=29;
422     ToolButton51->ImageIndex=31;
423     ToolButton52->ImageIndex=32;
424     ToolButton53->ImageIndex=34;
425     ToolButton54->ImageIndex=35;
426     ToolButton55->ImageIndex=-1;
427     ToolButton56->ImageIndex=55;
428     ToolButton57->ImageIndex=56;
429     ToolButton58->ImageIndex=25;
430     ToolButton59->ImageIndex=24;
431     ToolButton27->ImageIndex=58;
432     gaugeprocess=new gauge(false);
433     }
434     //---------------------------------------------------------------------------
435    
436     void __fastcall TMainForm::ToolButton4Click(TObject *Sender)
437     {
438     if (activewinform!=NULL) activewinform->miseajourmodeleExecute(Sender);
439     }
440     //---------------------------------------------------------------------------
441    
442     void __fastcall TMainForm::ToolButton2Click(TObject *Sender)
443     {
444     if (activewinform!=NULL) activewinform->lancermagicExecute(Sender);
445     }
446     //---------------------------------------------------------------------------
447    
448     void __fastcall TMainForm::ToolButton5Click(TObject *Sender)
449     {
450     if (activewinform!=NULL) activewinform->lancerverimeshExecute(Sender);
451     }
452     //---------------------------------------------------------------------------
453    
454     void __fastcall TMainForm::ToolButton6Click(TObject *Sender)
455     {
456     if (activewinform!=NULL) activewinform->ChangemodeExecute(Sender);
457     }
458     //---------------------------------------------------------------------------
459    
460     void __fastcall TMainForm::ToolButton12Click(TObject *Sender)
461     {
462     if (activewinform!=NULL) activewinform->shrinkoffExecute(Sender);
463     }
464     //---------------------------------------------------------------------------
465    
466     void __fastcall TMainForm::ToolButton13Click(TObject *Sender)
467     {
468     if (activewinform!=NULL) activewinform->shrinkonExecute(Sender);
469     }
470     //---------------------------------------------------------------------------
471    
472     void __fastcall TMainForm::ToolButton14Click(TObject *Sender)
473     {
474     if (activewinform!=NULL) activewinform->renderfilExecute(Sender);
475     }
476     //---------------------------------------------------------------------------
477    
478     void __fastcall TMainForm::ToolButton15Click(TObject *Sender)
479     {
480     if (activewinform!=NULL) activewinform->rendershadeExecute(Sender);
481     }
482     //---------------------------------------------------------------------------
483    
484     void __fastcall TMainForm::ToolButton20Click(TObject *Sender)
485     {
486     if (activewinform!=NULL) activewinform->renderlightExecute(Sender);
487     }
488     //---------------------------------------------------------------------------
489    
490     void __fastcall TMainForm::ToolButton16Click(TObject *Sender)
491     {
492     if (activewinform!=NULL) activewinform->qualiteoffExecute(Sender);
493     }
494     //---------------------------------------------------------------------------
495    
496     void __fastcall TMainForm::ToolButton18Click(TObject *Sender)
497     {
498     if (activewinform!=NULL) activewinform->qualiteonExecute(Sender);
499     }
500     //---------------------------------------------------------------------------
501    
502     void __fastcall TMainForm::ToolButton17Click(TObject *Sender)
503     {
504     if (activewinform!=NULL) activewinform->axeoffExecute(Sender);
505     }
506     //---------------------------------------------------------------------------
507    
508     void __fastcall TMainForm::ToolButton19Click(TObject *Sender)
509     {
510     if (activewinform!=NULL) activewinform->axeonExecute(Sender);
511     }
512     //---------------------------------------------------------------------------
513    
514     void __fastcall TMainForm::ToolButton22Click(TObject *Sender)
515     {
516     if (activewinform!=NULL) activewinform->noeudoffExecute(Sender);
517     }
518     //---------------------------------------------------------------------------
519    
520     void __fastcall TMainForm::ToolButton23Click(TObject *Sender)
521     {
522     if (activewinform!=NULL) activewinform->noeudonExecute(Sender);
523     }
524     //---------------------------------------------------------------------------
525    
526     void __fastcall TMainForm::ToolButton32Click(TObject *Sender)
527     {
528     if (activewinform!=NULL) activewinform->f3Execute(Sender);
529     }
530     //---------------------------------------------------------------------------
531    
532     void __fastcall TMainForm::ToolButton36Click(TObject *Sender)
533     {
534     if (activewinform!=NULL) activewinform->f4Execute(Sender);
535     }
536     //---------------------------------------------------------------------------
537    
538     void __fastcall TMainForm::ToolButton33Click(TObject *Sender)
539     {
540     if (activewinform!=NULL) activewinform->xmExecute(Sender);
541     }
542     //---------------------------------------------------------------------------
543    
544     void __fastcall TMainForm::ToolButton37Click(TObject *Sender)
545     {
546     if (activewinform!=NULL) activewinform->xpExecute(Sender);
547     }
548     //---------------------------------------------------------------------------
549    
550     void __fastcall TMainForm::ToolButton34Click(TObject *Sender)
551     {
552     if (activewinform!=NULL) activewinform->ymExecute(Sender);
553     }
554     //---------------------------------------------------------------------------
555    
556     void __fastcall TMainForm::ToolButton38Click(TObject *Sender)
557     {
558     if (activewinform!=NULL) activewinform->ypExecute(Sender);
559     }
560     //---------------------------------------------------------------------------
561    
562     void __fastcall TMainForm::ToolButton35Click(TObject *Sender)
563     {
564     if (activewinform!=NULL) activewinform->zmExecute(Sender);
565     }
566     //---------------------------------------------------------------------------
567    
568     void __fastcall TMainForm::ToolButton39Click(TObject *Sender)
569     {
570     if (activewinform!=NULL) activewinform->zpExecute(Sender);
571     }
572     //---------------------------------------------------------------------------
573    
574     void __fastcall TMainForm::opencttExecute(TObject *Sender)
575     {
576     OpenDialog->Filter="Fichier Carte de taille|*.ctt";
577    
578     if (!(OpenDialog->Execute())) return;
579     Tvisucttform *child;
580     child=new Tvisucttform(Application);
581     child->Caption = OpenDialog->FileName;
582     FILE* in=fopen(child->Caption.c_str(),"rt");
583     if (in!=NULL)
584     {
585     std::ftime ft;
586     getftime(fileno(in), &ft);
587     char mess[1000];
588     sprintf(mess,"Heure fichier: %02u:%02u:%02u\n",ft.ft_hour, ft.ft_min,ft.ft_tsec * 2);
589     MainForm->StatusBar->Panels->Items[3]->Text=mess;
590     sprintf(mess,"Jour fichier: %02u/%02u/%02u\n",ft.ft_day, ft.ft_month,ft.ft_year+1980);
591     MainForm->StatusBar->Panels->Items[4]->Text=mess;
592     fclose(in);
593     }
594    
595     }
596     //---------------------------------------------------------------------------
597    
598     void __fastcall TMainForm::ToolButton40Click(TObject *Sender)
599     {
600     if (activecttform!=NULL) activecttform->configExecute(Sender);
601     }
602     //---------------------------------------------------------------------------
603    
604     void __fastcall TMainForm::ToolButton41Click(TObject *Sender)
605     {
606     if (activecttform!=NULL) activecttform->shrinkoffExecute(Sender);
607     }
608     //---------------------------------------------------------------------------
609    
610     void __fastcall TMainForm::ToolButton42Click(TObject *Sender)
611     {
612     if (activecttform!=NULL) activecttform->shrinkonExecute(Sender);
613     }
614     //---------------------------------------------------------------------------
615    
616     void __fastcall TMainForm::ToolButton43Click(TObject *Sender)
617     {
618     if (activecttform!=NULL) activecttform->renderoffExecute(Sender);
619     }
620     //---------------------------------------------------------------------------
621    
622     void __fastcall TMainForm::ToolButton44Click(TObject *Sender)
623     {
624     if (activecttform!=NULL) activecttform->renderonExecute(Sender);
625     }
626     //---------------------------------------------------------------------------
627    
628     void __fastcall TMainForm::ToolButton45Click(TObject *Sender)
629     {
630     if (activecttform!=NULL) activecttform->axeoffExecute(Sender);
631     }
632     //---------------------------------------------------------------------------
633    
634     void __fastcall TMainForm::ToolButton46Click(TObject *Sender)
635     {
636     if (activecttform!=NULL) activecttform->axeonExecute(Sender);
637     }
638     //---------------------------------------------------------------------------
639    
640     void __fastcall TMainForm::ToolButton47Click(TObject *Sender)
641     {
642     if (activecttform!=NULL) activecttform->f3Execute(Sender);
643     }
644     //---------------------------------------------------------------------------
645    
646     void __fastcall TMainForm::ToolButton48Click(TObject *Sender)
647     {
648     if (activecttform!=NULL) activecttform->f4Execute(Sender);
649     }
650     //---------------------------------------------------------------------------
651    
652     void __fastcall TMainForm::ToolButton49Click(TObject *Sender)
653     {
654     if (activecttform!=NULL) activecttform->xmExecute(Sender);
655     }
656     //---------------------------------------------------------------------------
657    
658     void __fastcall TMainForm::ToolButton50Click(TObject *Sender)
659     {
660     if (activecttform!=NULL) activecttform->xpExecute(Sender);
661     }
662     //---------------------------------------------------------------------------
663    
664     void __fastcall TMainForm::ToolButton51Click(TObject *Sender)
665     {
666     if (activecttform!=NULL) activecttform->ymExecute(Sender);
667     }
668     //---------------------------------------------------------------------------
669    
670     void __fastcall TMainForm::ToolButton52Click(TObject *Sender)
671     {
672     if (activecttform!=NULL) activecttform->ypExecute(Sender);
673     }
674     //---------------------------------------------------------------------------
675    
676     void __fastcall TMainForm::ToolButton53Click(TObject *Sender)
677     {
678     if (activecttform!=NULL) activecttform->zmExecute(Sender);
679     }
680     //---------------------------------------------------------------------------
681    
682     void __fastcall TMainForm::ToolButton54Click(TObject *Sender)
683     {
684     if (activecttform!=NULL) activecttform->zpExecute(Sender);
685     }
686     //---------------------------------------------------------------------------
687    
688     void __fastcall TMainForm::ToolButton56Click(TObject *Sender)
689     {
690     if (activewinform!=NULL) activewinform->afnoeudoffExecute(Sender);
691     }
692     //---------------------------------------------------------------------------
693    
694     void __fastcall TMainForm::ToolButton58Click(TObject *Sender)
695     {
696     if (activewinform!=NULL) activewinform->afnoeudonExecute(Sender);
697     }
698     //---------------------------------------------------------------------------
699    
700     void __fastcall TMainForm::ToolButton57Click(TObject *Sender)
701     {
702     if (activewinform!=NULL) activewinform->afmailleoffExecute(Sender);
703     }
704     //---------------------------------------------------------------------------
705    
706     void __fastcall TMainForm::ToolButton59Click(TObject *Sender)
707     {
708     if (activewinform!=NULL) activewinform->afmailleonExecute(Sender);
709     }
710     //---------------------------------------------------------------------------
711    
712     void __fastcall TMainForm::AidedeVisualM1Click(TObject *Sender)
713     {
714     helpwin->Show();
715     }
716     //---------------------------------------------------------------------------
717    
718    
719    
720     void __fastcall TMainForm::openimaExecute(TObject *Sender)
721     {
722     new Texpwinf(Application);
723     }
724     //---------------------------------------------------------------------------
725    
726     void __fastcall TMainForm::ToolButton60Click(TObject *Sender)
727     {
728     if (activewinform!=NULL) activewinform->mailleoffExecute(Sender);
729     }
730     //---------------------------------------------------------------------------
731    
732     void __fastcall TMainForm::ToolButton61Click(TObject *Sender)
733     {
734     if (activewinform!=NULL) activewinform->mailleonExecute(Sender);
735     }
736     //---------------------------------------------------------------------------
737    
738     void __fastcall TMainForm::openfrontExecute(TObject *Sender)
739     {
740     if (TVisufront::nombre==0)
741     {
742     new TVisufront(Application);
743     TVisufront::nombre=TVisufront::nombre+1;
744     }
745     else
746     {
747     MessageBox(Handle,"Une seule instance autorisée","Erreur", MB_OK);
748     return;
749     }
750     }
751     //---------------------------------------------------------------------------
752    
753    
754     void __fastcall TMainForm::Licence1Click(TObject *Sender)
755     {
756     Aboutlicence->ShowModal();
757     }
758     //---------------------------------------------------------------------------
759    
760    
761     void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
762     {
763     long code;
764     for(int i = MDIChildCount-1; i >= 0; i--)
765     MDIChildren[i]->Close();
766     TerminateThread(gaugeprocess,code);
767     }
768     //---------------------------------------------------------------------------
769    
770    
771     void __fastcall TMainForm::ToolButton24Click(TObject *Sender)
772     {
773     if (activewinform!=NULL) activewinform->lancerg3dExecute(Sender);;
774     }
775     //---------------------------------------------------------------------------
776    
777    
778    
779    
780     void __fastcall TMainForm::Timer2Timer(TObject *Sender)
781     {
782     Timer2->Interval=32000;
783     ClientSocket1->Open();
784     Timer3->Enabled=true;
785     }
786     //---------------------------------------------------------------------------
787    
788     void __fastcall TMainForm::ClientSocket1Read(TObject *Sender,
789     TCustomWinSocket *Socket)
790     {
791     static int nbpb=0;
792     AnsiString rep=Socket->ReceiveText();
793     ClientSocket1->Close();
794     char *mess=rep.c_str();
795     char messtmp[20];
796     long num;
797     sprintf(messtmp,"%s1",heure);
798     StringHasher(messtmp,&num);
799     char decode[20];
800     sprintf(decode,"%08X",num);
801     if (strcmp(mess,decode)!=0)
802     {
803     nbpb++;
804     char mess[255];
805     sprintf(mess,"Licence indisponible essai %d",nbpb);
806     MessageBox(Handle,mess,"Erreur", MB_OK);
807     if (nbpb>3)
808     TerminateProcess(GetCurrentProcess(),0);
809     }
810    
811    
812     }
813     //---------------------------------------------------------------------------
814    
815     void __fastcall TMainForm::Timer3Timer(TObject *Sender)
816     {
817     struct time t;
818     gettime(&t);
819     sprintf(heure,"1 %2d:%02d:%02d.%02d",t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
820     ClientSocket1->Socket->SendText(heure);
821     Timer3->Enabled=false;
822     }
823     //---------------------------------------------------------------------------
824    
825     void __fastcall TMainForm::ClientSocket1Error(TObject *Sender,
826     TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
827     {
828     static int nbpb=0;
829     nbpb++;
830     char mess[255];
831     sprintf(mess,"Serveur de licence indisponible essai %d",nbpb);
832     MessageBox(Handle,mess,"Erreur", MB_OK);
833     if (nbpb>2)
834     TerminateProcess(GetCurrentProcess(),0);
835     ErrorCode=0;
836     ClientSocket1->Close();
837     }
838     //---------------------------------------------------------------------------
839    
840     void __fastcall TMainForm::SL1Click(TObject *Sender)
841     {
842     #ifdef BREP_SLD
843     Twintransform *Child;
844     Child = new Twintransform(Application);
845     Child->Caption = "SolidWorks->MAGiC";
846     Child->GroupBox1->Caption = "Fichier SolidWorks";
847     Child->OpenDialog1->Filter="Fichier SolidWorks|*magic.sldprt|Autres Fichiers|*.*";
848     Child->RadioButton2->Checked=true;
849     Child->RadioButton1->Enabled=false;
850     Child->RadioButton2->Enabled=false;
851     Child->RadioButton3->Enabled=false;
852     Child->RadioButton4->Enabled=false;
853     Child->RadioButton5->Enabled=false;
854     Child->GroupBox5->Enabled=false;
855     #endif
856     }
857     //---------------------------------------------------------------------------
858    
859     void __fastcall TMainForm::STLMAGiC1Click(TObject *Sender)
860     {
861     Twintransform *Child = new Twintransform(Application);
862     Child->Caption = "STL->MAGiC";
863     Child->GroupBox1->Caption = "Fichier STL";
864     Child->OpenDialog1->Filter="Fichier STL|*.stl|Autres Fichiers|*.*";
865     }
866     //---------------------------------------------------------------------------
867    
868    
869     void __fastcall TMainForm::ToolButton27Click(TObject *Sender)
870     {
871     if (activewinform!=NULL) activewinform->voirarbreExecute(Sender);
872     }
873     //---------------------------------------------------------------------------
874    
875    
876     void __fastcall TMainForm::Fenetrelog1Click(TObject *Sender)
877     {
878     if (Fenetrelog1->Checked)
879     {
880     Fenetrelog1->Checked=false;
881     fenlog->Close();
882     fenlog=NULL;
883     }
884     else
885     {
886     Fenetrelog1->Checked=true;
887     fenlog=new Twinlog(Application);
888     fenlog->Left=0;
889     fenlog->Height=0.15*Height;
890     fenlog->Top=0.925*(ClientHeight-fenlog->Height);
891     }
892     }
893     //---------------------------------------------------------------------------
894    
895 francois 56 void __fastcall TMainForm::Simplificationdegometrie1Click(TObject *Sender)
896     {
897     DWORD type,taille;
898     HKEY clef;
899     char name[500];
900     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\UQTR\\VMM\\",0,KEY_EXECUTE,&clef);
901     RegQueryValueEx(clef,"pathmodule",0,&type,0,&taille);
902     RegQueryValueEx(clef,"pathmodule",0,&type,name,&taille);
903     strcat(name,"\\CAD4FE_MCAA_Mesher_GUI.exe");
904     spawnl(P_NOWAIT,name,name,NULL);
905     if (fenlog!=NULL)
906     {
907     char mess[2000];
908     sprintf(mess,"%s",name);
909     fenlog->ajouter(mess);
910     }
911     }
912     //---------------------------------------------------------------------------
913    
914    
915    
916     void __fastcall TMainForm::ToolButton30Click(TObject *Sender)
917     {
918     if (activewinform!=NULL) activewinform->qualiteorigineExecute(Sender);
919     }
920     //---------------------------------------------------------------------------
921