Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:geometry:user:surfaces

This is an old revision of the document!




Surfaces

Définition

La surface est l'entité géométrique 3D de base. A ce niveau, le concept géométrique (Surface) est séparé de l'entité topologique (Side). Cela permet de définir une surface bien plus grande que la face (analytiquement, les surfaces sont généralement infinies – cylindres, plans, NURBS, etc) et la limiter avec un Wire.

Plan

Passant par 3 points:

plane = surfaceset.add( Plane(number, p1, p2, p3) )

La normale (et donc l'orientation de la surface) est calculée en prenant le produit vectoriel des vecteurs $\boldsymbol{p_2}-\boldsymbol{p_1}$ et $\boldsymbol{p_3}-\boldsymbol{p_1}$.

p1, p2, p3 référence vers les Points





Coons

Une Coons est une interpolation linéaire entre 4 courbes. Ces courbes sont définies dans un contour fermé. Le sens du contour définit l'orientation de la surface.

coons = surfaceset.add( Coons(number, wire) )
wire référence vers le Wire









Surface réglée

Une surface réglée est une surface construite en interpolant linéairement l'espace entre deux courbes. Le sens de celles-ci est important et définit l'orientation de la surface.

ruled = surfaceset.add( Ruled(number, curve1, curve2) )
curve1, curve2, … référence vers les Curves

Ce type de surface peut être utilisé pour créer des plans (les deux courbes sont alors des droites) ou des cylindres (les deux courbes sont des arcs de cercle).











Nurbs

nur = surfaceset.add( NurbsSurface(number) )
nur.setDegreeU(degU) 	 
nur.setDegreeV(degV) 	 
nur.push(i1,j1,p1); nur.pushWeight(i1,j1,w1) 
nur.push(i2, j2, p2); nur.pushWeight(i2, j2, w2) 	 
nur.pushKnotU(knotu1)
...
nur.pushKnotU(knotu2) 	 
nur.pushKnotV(knotv1)
...
nur.pushKnotV(knotv2) 	
degU, degV degré selon U et V
i1, j1, i2, j2, … indice de la matrice des pôles
p1, p2, … référence vers les points (pôles)
w1, w2, … poids
knotu1, knotu2, … vecteur knot selon U
knotv1, knotv2, … vecteur knot selon V

Surface de révolution

revsur = surfaceset.add( RevolutionSurface(number, axe, wire) )

axe Line définissant l'axe de révolution de la surface de révolution
wire Wire définissant le contour tournant autour de l'axe de révolution (limitation : il ne peut pas toucher l'axe en son premier point). Il doit être coplanaire avec l'axe







Cylindre de révolution droit

c = Cylinder(number, axe, radius, ptGen) #Première possibilité d'utiliser Cylinder
c = Cylinder(number, axe, radius)        #Deuxième possibilité d'utiliser Cylinder
c.setProjType(projType)
surfaceset.add( c )

axe Line définissant l'axe du cylindre
radius Rayon du cylindre
ptGen Point optionnel de la génératrice du cylindre situé :
- dans le plan perpendiculaire à l'axe,
- passant par le premier point de l'axe,
- à une distance égale au rayon du cylindre du premier point de l'axe.
Comme ce point est assez difficile à définir quand on n'a pas de cylindre parallèle à un axe, on peut ajouter un point avec des coordonnées quelconques et Metafor le remettra à la bonne place tout seul comme un grand au début du calcul avec un petit WARNING_MESSAGE pour signaler que le point a été changé de place (voir apps.qs.contactCylProj0Point). Ce point est obligatoire si le cylindre a une rotation imposée.
projType = 0 : on considère une surface finie limitée par la longueur de l'axe
= 1 : on considère une surface infinie
doc/user/geometry/user/surfaces.1373630318.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki