MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
rec_arete_elliptique.cpp
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 //####// rec_arete_elliptique.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "gestionversion.h"
23 
24 #pragma hdrstop
25 
26 #include "occ_fonction.h"
27 #include "rec_arete_elliptique.h"
28 #include "fem_noeud.h"
29 #include "fem_maillage.h"
30 
31 
32 #pragma package(smart_init)
33 
34 
35 
36 
37 
38 REC_ARETE_ELLIPTIQUE::REC_ARETE_ELLIPTIQUE(FEM_MAILLAGE* fem_mai, int Idealise, OCC_FONCTION_RECONSTRUCTION& fonc, int test, int* faces): REC_ARETE(fem_mai, Idealise, fonc, test, faces)
39 {
40 }
41 
43 {
44 }
45 
47 {
48 
49 double P1[3];
50 double P2[3];
51 
52 
53 MG_ARETE* Arete = coArete->get_arete();
54 
55 MG_COSOMMET* cosommet1 = Arete->get_cosommet1();
56 MG_SOMMET* sommet1 = cosommet1->get_sommet();
57 int nb_noeud1 = sommet1->get_lien_fem_maillage()->get_nb();
58 FEM_NOEUD* noeud1;
59 for (int i =0; i<nb_noeud1;i++)
60  {
61  FEM_NOEUD* noeud =(FEM_NOEUD*)sommet1->get_lien_fem_maillage()->get(i);
62  if (!fem_maillage->contient(noeud)) continue;
63  noeud1 = noeud;
64  }
65 
66 P1[0]=noeud1->get_x(coef);
67 P1[1]=noeud1->get_y(coef);
68 P1[2]=noeud1->get_z(coef);
69 
70 MG_COSOMMET* cosommet2 = Arete->get_cosommet2();
71 MG_SOMMET* sommet2 = cosommet2->get_sommet();
72 int nb_noeud2 = sommet2->get_lien_fem_maillage()->get_nb();
73 FEM_NOEUD* noeud2;
74 for (int i =0; i<nb_noeud2;i++)
75  {
76  FEM_NOEUD* noeud =(FEM_NOEUD*)sommet1->get_lien_fem_maillage()->get(i);
77  if (!fem_maillage->contient(noeud)) continue;
78  noeud2 = noeud;
79  }
80 
81 P2[0]=noeud2->get_x(coef);
82 P2[1]=noeud2->get_y(coef);
83 P2[2]=noeud2->get_z(coef);
84 
85 TPL_LISTE_ENTITE <double> Parametres;
86 MG_COURBE* courbe = Arete->get_courbe();
87 int type_courbe = courbe->get_type_geometrique(Parametres);
88 
89 double Pnt_Insersion[3];
90 Pnt_Insersion[0]= Parametres.get(0);
91 Pnt_Insersion[1]= Parametres.get(1);
92 Pnt_Insersion[2]= Parametres.get(2);
93 
94 double GRayon = Parametres.get(9);
95 double PRayon = Parametres.get(10);
96 
97 fonction.Creer_Arete_Elliptique(Pnt_Insersion, P1, P2, GRayon, PRayon);
98 }
99 
100 
101 
103 {
104 
105 }
106 
107 
108 
109 
110 
111 
112 
113 
114 
bool contient(MG_IDENTIFICATEUR *id)
virtual double get_y(double coef=0.)
Definition: fem_noeud.cpp:210
virtual double get_x(double coef=0.)
Definition: fem_noeud.cpp:205
virtual double get_z(double coef=0.)
Definition: fem_noeud.cpp:215
virtual class MG_COURBE * get_courbe(void)
Definition: mg_arete.cpp:89
virtual class MG_COSOMMET * get_cosommet2(void)
Definition: mg_arete.cpp:85
virtual class MG_COSOMMET * get_cosommet1(void)
Definition: mg_arete.cpp:81
virtual MG_ARETE * get_arete(void)
Definition: mg_coarete.cpp:58
virtual MG_SOMMET * get_sommet(void)
Definition: mg_cosommet.cpp:83
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)=0
virtual TPL_LISTE_ENTITE< FEM_ELEMENT_MAILLAGE * > * get_lien_fem_maillage(void)
int Creer_Arete_Elliptique(double Pnt_Insersion[], double P1[], double P2[], double GRayon, double PRayon)
REC_ARETE_ELLIPTIQUE(FEM_MAILLAGE *fem_mai, int Idealise, OCC_FONCTION_RECONSTRUCTION &fonc, int test, int *faces)
void Reconstruire(MG_COARETE *coArete, double coef)
FEM_MAILLAGE * fem_maillage
Definition: rec_brep.h:52
OCC_FONCTION_RECONSTRUCTION & fonction
Definition: rec_brep.h:56
virtual X get(int num)
virtual int get_nb(void)