MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
occ_fonction_reconstruction.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// occ_fonction_reconstruction.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifdef BREP_OCC
24 #ifndef OCC_fonctionH
25 #define OCC_fonctionH
26 
27 
28 
29 
30 
31 
32 #include <Standard_Version.hxx>
33 #include <BRep_Builder.hxx>
34 #include <TopoDS_Shell.hxx>
35 #include <GeomPlate_BuildPlateSurface.hxx>
36 #include <TColgp_Array1OfPnt.hxx>
37 #include <Geom_BSplineCurve.hxx>
38 #include <GeomAPI_PointsToBSpline.hxx>
39 #include <GeomAdaptor_HCurve.hxx>
40 #include <BRepFill_CurveConstraint.hxx>
41 #include <GeomPlate_PointConstraint.hxx>
42 #include <GeomPlate_MakeApprox.hxx>
43 #include <TopoDS_Wire.hxx>
44 #include <BRepBuilderAPI_MakeWire.hxx>
45 #include <GeomAPI_ProjectPointOnSurf.hxx>
46 #include <TColgp_Array1OfPnt2d.hxx>
47 #include <Geom2d_BSplineCurve.hxx>
48 #include <Geom2dAPI_PointsToBSpline.hxx>
49 #include <BRepBuilderAPI_MakeEdge.hxx>
50 #include <TopoDS_Face.hxx>
51 #include <BRepBuilderAPI_MakeFace.hxx>
52 #include <TopoDS_Solid.hxx>
53 #include <STEPControl_Writer.hxx>
54 #include <gp_Ax3.hxx>
55 #include <Geom_CylindricalSurface.hxx>
56 #include <TColGeom_Array1OfBSplineCurve.hxx>
57 #include <GeomFill_SimpleBound.hxx>
58 #include <GeomFill_ConstrainedFilling.hxx>
59 #include <Geom_ConicalSurface.hxx>
60 #include <Geom_ToroidalSurface.hxx>
61 #include <Geom_SphericalSurface.hxx>
62 
63 
64 #include <GProp_PEquation.hxx>
65 #include <Geom_Line.hxx>
66 #include <GeomAPI_ProjectPointOnCurve.hxx>
67 #include <Geom_SurfaceOfRevolution.hxx>
68 #include <Geom_Circle.hxx>
69 #include <gp_Pln.hxx>
70 #include <Geom_Plane.hxx>
71 #include <TColGeom_Array1OfSurface.hxx>
72 #include <GCE2d_MakeSegment.hxx>
73 #include <GC_MakeArcOfCircle.hxx>
74 #include <GeomProjLib.hxx>
75 #include <gp_Elips2d.hxx>
76 #include <GCE2d_MakeArcOfEllipse.hxx>
77 #include <gp_Circ2d.hxx>
78 #include <GCE2d_MakeArcOfCircle.hxx>
79 #include <gp_Cylinder.hxx>
80 
81 
82 
83 
85 {
86 public:
87 
88 BRep_Builder B;
89 TopoDS_Shell Sh;
90 
91 
92 
93 Handle (Geom_Surface) Surf1;
94 
95 TopoDS_Face F1;
96 
97 GeomPlate_BuildPlateSurface BPSurf;
98 
99 BRepBuilderAPI_MakeWire W1;
101 
102 Standard_Real U,V;
103 
104 TopoDS_Edge E;
105 Handle(Geom_Curve) Cur;
106 Handle(Geom2d_Curve) Curve;
107 
108 
109 
110 gp_Pnt P_def;
111 gp_Vec V11_def;
112 gp_Vec V22_def;
113 gp_Vec V33_def;
114 
115 double Array_Boite[12];
116 
117 double d;
118 bool b;
119 
120 Handle(Geom_Curve) Curve_Projection;
121 gp_Pnt N;
122 
123 double Pt_Proj_Line[3];
124 
127 
128 
129 
131 
132 
134 
135 
136 
137 
138 int Creer_Coquille();
140 int Enregistrer(char *path);
141 int Ajouter_Contour_Face(int ii);
142 int Creer_Surface_Cylindrique(double Pnt_Insersion[3], double Vect_Directeur[3],double Rayon);
143 int Creer_Surface_Conique(double Pnt_Insersion[3], double Vect_Directeur[3],double Rayon, double Angle);
144 int Creer_Surface_Torique(double Pnt_Insersion[], double Vect_Directeur[], double GRayon, double PRayon);
145 int Creer_Surf_Spherique(double Pnt_Insersion[], double Vect_Directeur[], double Rayon);
146 
147 int Initialiser_Surface();
148 int Rapprocher_Surface_Point(double x, double y, double z);
149 int Calculer_Surface();
150 int Determiner_Surface();
151 
152 
153 int Ajouter_Point_Courbe(double x, double y, double z, int i);
154 
155 
156 
157 
158 
159 int Ajouter_courbe_liste(int nb_pts,int num);
160 int Construire_Surface_Contour(int nb_aretes_ext);
161 
162 
163 
164 int Creer_Face_Surface();
165 int Creer_Contour();
166 int Creer_Arete_Lineaire(double P1[3], double P2[3]);
167 
168 int Creer_Arete_Circulaire(double Pnt_Insersion[3], double Normal[3],double P1[3], double P2[3], double Rayon);
169 int Creer_Arete_Elliptique(double Pnt_Insersion[], double P1[], double P2[], double GRayon, double PRayon);
170 
171 int Ajouter_Point_Arete(double x, double y, double z, int i);
172 
173 
174 /*
175 int Construire_Arete_Spline(int nb_pts);
176 int Enregistrer_Arete(char* path);
177 */
178 
179 
180 
181 int Rapprocher_Surface_Courbe_Spline(int nb_pts);
182 int Ajouter_Arete_Contour(int nb);
183 
184 int Initialiser_Surface_Cylindrique(double Pnt_Insersion[3], double Vect_Directeur[3],double Rayon);
186 
187 
188 int Ajouter_Point_Array_Ideal(double x, double y, double z, int i);
189 int Determiner_Param_Boite(int i);
190 
191 double Get_Param_Boite(int i);
192 int Determiner_Plan(int nb, double Epsilon);
193 
194 int Ligne_Revolution(double Pnt_Inser[], double Vect_Direc[]);
195 double Distance_Point_Curve(double x, double y, double z);
196 
197 int Pt_Proj_Ligne();
198 double Pnt_Proj_Ligne(int ii);
199 
200 int GCercle_Tore(double Pnt_Insersion[3], double Vect_Directeur[3],double Rayon);
201 
202 
203 int Creer_Surface_Cylindrique_Revolution(double Pnt_Insersion[3], double Vect_Directeur[3],double Vecteur1[3],double Rayon);
204 int Face_Revolution();
205 
206 
207 int Ajouter_Surface_liste_Ideal(int num);
208 
209 int Projeter_Point_Surface_Idealisee(double x, double y,double z, int num);
211 double Pnt_Proj_Surface_Ideal(int ii);
212 
213 int Projeter_Point_Plan_Idealisee(double x, double y,double z);
214 
215 
216 
217 int Ajouter_Point_AreteUV(int testU, int testV, double x, double y, double z, int i);
218 double Analyser_interval_AreteU(double x, double y, double z);
219 double Analyser_interval_AreteV(double x, double y, double z);
220 
221 int InitialiserArray(double x, double y, double z, int i);
222 
223 
224 
225 private:
226 
227 
228 
229 } ;
230 
231 
232 
233 #endif
234 #endif
235 
236 
int Creer_Arete_Elliptique(double Pnt_Insersion[], double P1[], double P2[], double GRayon, double PRayon)
Handle(Geom2d_Curve) Curve
int Creer_Surface_Cylindrique_Revolution(double Pnt_Insersion[3], double Vect_Directeur[3], double Vecteur1[3], double Rayon)
int Ajouter_Point_Arete(double x, double y, double z, int i)
int Creer_Surface_Cylindrique(double Pnt_Insersion[3], double Vect_Directeur[3], double Rayon)
int Creer_Surface_Torique(double Pnt_Insersion[], double Vect_Directeur[], double GRayon, double PRayon)
int Creer_Arete_Lineaire(double P1[3], double P2[3])
double Analyser_interval_AreteU(double x, double y, double z)
int InitialiserArray(double x, double y, double z, int i)
int GCercle_Tore(double Pnt_Insersion[3], double Vect_Directeur[3], double Rayon)
int Creer_Surf_Spherique(double Pnt_Insersion[], double Vect_Directeur[], double Rayon)
double Analyser_interval_AreteV(double x, double y, double z)
GeomPlate_BuildPlateSurface BPSurf
int Ajouter_courbe_liste(int nb_pts, int num)
int Determiner_Plan(int nb, double Epsilon)
int Projeter_Point_Surface_Idealisee(double x, double y, double z, int num)
int Ajouter_Point_AreteUV(int testU, int testV, double x, double y, double z, int i)
Handle(Geom_Surface) Surf1
int Ligne_Revolution(double Pnt_Inser[], double Vect_Direc[])
Handle(Geom_Curve) Curve_Projection
int Ajouter_Point_Array_Ideal(double x, double y, double z, int i)
int Initialiser_Surface_Cylindrique(double Pnt_Insersion[3], double Vect_Directeur[3], double Rayon)
int Projeter_Point_Plan_Idealisee(double x, double y, double z)
int Rapprocher_Surface_Point(double x, double y, double z)
int Construire_Surface_Contour(int nb_aretes_ext)
double Distance_Point_Curve(double x, double y, double z)
int Creer_Surface_Conique(double Pnt_Insersion[3], double Vect_Directeur[3], double Rayon, double Angle)
int Creer_Arete_Circulaire(double Pnt_Insersion[3], double Normal[3], double P1[3], double P2[3], double Rayon)
int Ajouter_Point_Courbe(double x, double y, double z, int i)