ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/VMM/win32/transform.cpp
Revision: 137
Committed: Mon Aug 4 18:06:52 2008 UTC (17 years ago) by francois
Original Path: magic/app/VMM/VMM/win32/transform.cpp
File size: 8638 byte(s)
Log Message:
VMM version du 4 aout 2008. OpenCascade fonctionne.

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     // transform.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    
31     #include "mg_gestionnaire.h"
32     #include "step_import.h"
33     #include "acis_import.h"
34     #include "sld_import.h"
35     #include "stl_import.h"
36 francois 137 #include "occ_import.h"
37 5 #include "main.h"
38     #include "transform.h"
39 francois 98 #include "vct_multi_modele.h"
40 5 //---------------------------------------------------------------------------
41     #pragma package(smart_init)
42     #pragma resource "*.dfm"
43     Twintransform *wintransform;
44     //---------------------------------------------------------------------------
45     __fastcall Twintransform::Twintransform(TComponent* Owner)
46     : TForm(Owner)
47     {
48     }
49     //---------------------------------------------------------------------------
50     void __fastcall Twintransform::FormClose(TObject *Sender,
51     TCloseAction &Action)
52     {
53     Action = caFree;
54     }
55     //---------------------------------------------------------------------------
56     void __fastcall Twintransform::Button1Click(TObject *Sender)
57     {
58     if (OpenDialog1->Execute())
59     {
60     Edit1->Text=OpenDialog1->FileName;
61     AnsiString temp=Edit1->Text;
62     int nb=temp.Length();
63     int i=nb;
64     int ok=0;
65     while (ok==0)
66     {
67     if (temp[i]=='.') ok=1;
68     if (i==0) ok=2;
69     i--;
70     }
71     if (ok==1) temp.Delete(i+1,nb);
72     Edit2->Text=temp+".magic";
73     }
74     }
75     //---------------------------------------------------------------------------
76     void __fastcall Twintransform::Button3Click(TObject *Sender)
77     {
78     CheckBox1->Checked=false;
79     CheckBox2->Checked=false;
80     ProgressBar1->Position=0;
81     MG_GESTIONNAIRE gest;
82     ProgressBar1->Position=2;
83     if (GroupBox1->Caption=="Fichier STEP")
84     {
85     STEP_IMPORT stepmagic;
86     ProgressBar1->Position=5;
87     stepmagic.importer(gest,Edit1->Text.c_str());
88     stat();
89     ListBox1->Items->Add("");
90     ListBox1->Items->Add("");
91     ListBox1->Items->Add("Entités non utilisées par l'importation");
92     ListBox1->Items->Add("-----------------------------------------------------------------");
93     int num=gest.get_gest_step().lst_entity.get_nb();
94     for (int i=0;i<num;i++)
95     {
96     ST_IDENTIFICATEUR* st=gest.get_gest_step().lst_entity.get(i);
97     if (st->get_util()==false)
98     {
99     char mess[255];
100     sprintf(mess," Entité step numero %lu",st->get_id());
101     ListBox1->Items->Add(mess);
102     }
103     }
104 francois 98 ListBox1->Items->Add("");
105     ListBox1->Items->Add("");
106     ListBox1->Items->Add("");
107     ListBox1->Items->Add("");
108 5 }
109     if (GroupBox1->Caption=="Fichier SAT")
110     {
111     ACIS_IMPORT satmagic;
112     ProgressBar1->Position=5;
113     satmagic.importer(gest,Edit1->Text.c_str());
114     }
115     if (GroupBox1->Caption=="Fichier STL")
116     {
117     STL_IMPORT stlmagic;
118     ProgressBar1->Position=5;
119     stlmagic.importer(gest,Edit1->Text.c_str());
120     }
121     if (GroupBox1->Caption=="Fichier SolidWorks")
122     {
123     #ifdef BREP_SLD
124     SLD_IMPORT sldmagic;
125     ProgressBar1->Position=5;
126     sldmagic.importer(gest,Edit1->Text.c_str());
127     #endif
128     }
129 francois 137 if (GroupBox1->Caption=="Fichier OpenCascade")
130     {
131     #ifdef BREP_OCC
132     OCC_IMPORT occmagic;
133     ProgressBar1->Position=5;
134     int type;
135     if (RadioButton6->Checked==true) type=FICHIEROCC;
136     if (RadioButton7->Checked==true) type=FICHIERSTEP;
137     occmagic.importer(gest,Edit1->Text.c_str(),type);
138     #endif
139     }
140 5 int nbgeo=gest.get_nb_mg_geometrie();
141     for (int i=0;i<nbgeo;i++)
142     {
143     MG_GEOMETRIE* geo=gest.get_mg_geometrie(i);
144     double coef;
145     if (RadioButton1->Checked) coef=1e-3;
146     if (RadioButton2->Checked) coef=1;
147     if (RadioButton3->Checked) coef=25.4e-3;
148     if (RadioButton4->Checked) coef=304.8e-3;
149     if (RadioButton5->Checked) coef=1e-2;
150     geo->change_valeur_unite(coef);
151     }
152     ProgressBar1->Position=47;
153     CheckBox1->Checked=true;
154     ProgressBar1->Position=57;
155 francois 98 if (CheckBox3->Checked)
156     {
157     ListBox1->Items->Add("Fusion d'entité");
158     ListBox1->Items->Add("---------------");
159     for (int i=0;i<nbgeo;i++)
160     {
161     MG_GEOMETRIE* geo=gest.get_mg_geometrie(i);
162     int nbface=geo->get_nb_mg_face();
163     int nbarete=geo->get_nb_mg_arete();
164     int nbsommet=geo->get_nb_mg_sommet();
165     VCT_MULTI_MODELE mv(geo);
166     mv.recherche_identite();
167     nbface=nbface-geo->get_nb_mg_face();
168     nbarete=nbarete-geo->get_nb_mg_arete();
169     nbsommet=nbsommet-geo->get_nb_mg_sommet();
170     char mess[255];
171     sprintf(mess," Géometrie numero %lu",geo->get_id());
172     ListBox1->Items->Add(mess);
173     sprintf(mess," Sommet fusionné : %d",nbsommet);
174     ListBox1->Items->Add(mess);
175     sprintf(mess," Arete fusionnée : %d",nbarete);
176     ListBox1->Items->Add(mess);
177     sprintf(mess," Face fusionnée : %d",nbface);
178     ListBox1->Items->Add(mess);
179     }
180     }
181     ProgressBar1->Position=69;
182 5 gest.enregistrer(Edit2->Text.c_str());
183     ProgressBar1->Position=95;
184     CheckBox2->Checked=true;
185     ProgressBar1->Position=100;
186    
187     }
188     //---------------------------------------------------------------------------
189     void __fastcall Twintransform::Button2Click(TObject *Sender)
190     {
191     Close();
192     }
193     //---------------------------------------------------------------------------
194    
195     void __fastcall Twintransform::Button4Click(TObject *Sender)
196     {
197     stat();
198     }
199     //---------------------------------------------------------------------------
200     void __fastcall Twintransform::stat(void)
201     {
202     if (GroupBox1->Caption=="Fichier STEP")
203     {
204    
205     GroupBox4->Caption="Verification du fichier step";
206     GroupBox4->Visible=true;
207     ST_GESTIONNAIRE fich(Edit1->Text.c_str());
208     fich.lire();
209     ListBox1->Clear();
210     ListBox1->Items->Add("Entités lues");
211     ListBox1->Items->Add("-----------------------------------------------------------------");
212     for (int i=0;i<25;i++)
213     {
214     char mess[255];
215     sprintf(mess,"%s %d",fich.entitenom[i].c_str(),fich.tabentite[i]);
216     if (fich.tabentite[i]>0) ListBox1->Items->Add(mess);
217     }
218     ListBox1->Items->Add("");
219     ListBox1->Items->Add("");
220     ListBox1->Items->Add("Entités non lues");
221     ListBox1->Items->Add("-----------------------------------------------------------------");
222     int num=fich.entitenontraite.size();
223     for (int i=0;i<num;i++)
224     ListBox1->Items->Add(fich.entitenontraite[i].c_str());
225    
226     }
227     }
228     //---------------------------------------------------------------------------
229    
230     void __fastcall Twintransform::ListBox1Click(TObject *Sender)
231     {
232     ListBox1->Hint=ListBox1->Items->Strings[ListBox1->ItemIndex];
233     }
234     //---------------------------------------------------------------------------
235    
236     void __fastcall Twintransform::Button5Click(TObject *Sender)
237     {
238     MainForm->CreateMDIChildVisu(Sender,Edit2->Text);
239     Close();
240     }
241     //---------------------------------------------------------------------------
242    
243 francois 137 void __fastcall Twintransform::RadioButton6Click(TObject *Sender)
244     {
245     OpenDialog1->Filter="Fichier OpenCascade|*.brep|Autres Fichiers|*.*";
246     }
247     //---------------------------------------------------------------------------
248    
249     void __fastcall Twintransform::RadioButton7Click(TObject *Sender)
250     {
251     OpenDialog1->Filter="Fichier OpenCascade|*.step;*.stp|Autres Fichiers|*.*";
252     }
253     //---------------------------------------------------------------------------
254