Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2009:12_16

Commit 2009-12-16

Modifs

Surface cylindrique

Ajout de l'objet géométrique Cylinder qui peut être créé de deux façons: l'axe et le rayon ou alors, l'axe, le rayon et un point de la génératrice défini dans le pointset, par exemple:

  c1 = Cylinder(1, curveset(1), 1.0)
  c2 = Cylinder(2, curveset(1), 1.0, pointset(2))
  surfaceset = geometry.getSurfaceSet()
  surfaceset.add( c1 )
  surfaceset.add( c2 )

La courbe 1 est l'axe du cylindre et le rayon du cylindre est de 1. Le point 2 est 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.

Le fait d'ajouter un point du pointset au constructeur du cylindre permet d'imposer une rotation au cylindre. En effet, on ne sait pas, à l'heure actuelle, recréer un nouveau point de la DB à l'intérieur de l'objet cylindre.

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).

J'ai également ajouté la possibilité de considérer le cylindre comme une surface infinie ou une surface finie limitée par la longueur de l'axe par la commande:

  c1.setProjType(projType)
  • projType = 0 ⇒ la surface est limitée par la longueur de l'axe
  • projType = 1 ⇒ la surface est infinie

J'ai illustré ces deux possibilités sur les deux figures ci-dessous. A quoi ça sert, vous demandez-vous avec la sagacité qui vous caractérise tous (sauf Geoffrey qui ne mange pas assez de poisson)? Ca sert à pouvoir importer des surfaces cylindriques de stp2e qui ont une longueur d'axe unitaire. Donc, par défaut, on met projType à 1 dans l'export step. Les esprits les plus avertis (donc pas Geoffrey) auront donc directement compris que j'ai exporté les surfaces cylindriques de stp2e.

projType = 0projType = 0

Fichiers ajoutés/retirés

+ apps/qs/contactCylProj0.py
+ apps/qs/contactCylProj0Point.py
+ apps/qs/contactCylProj1.py
+ apps/qs/contactCylProj1Point.py
+ mtGeo/mtGeoCylinder.cpp
+ mtGeo/mtGeoCylinder.h
+ mtGeo/mtGeoCylinderProjectionOperator.cpp
+ mtGeo/mtGeoCylinderProjectionOperator.h
+ mtGeo/mtGeoCylinderProjectionOperator.inl
- apps/monosMeca/tracRotHill48v2Mat.py

Pierre-Paul Jeunechamps 2009/12/16 16:03

commit/2009/12_16.txt · Last modified: 2016/03/30 15:23 (external edit)