Surface Remplir entre les courbes limites

From FreeCAD Documentation
Revision as of 12:26, 4 October 2020 by David69 (talk | contribs) (Created page with "La forme de la surface dépend de la direction des arêtes choisies; si des arêtes sont sélectionnées et que le résultat est une surface qui "se tord" sur elle-même, l'un...")
Other languages:

Surface Remplir entre les courbes limites

Emplacement du menu
Surface → Fill boundary curves
Ateliers
Surface
Raccourci par défaut
Aucun
Introduit dans la version
0.17
Voir aussi
Aucun

Description

Surface Remplir entre les courbes limites crée une surface paramétrique à partir de deux, trois ou quatre arêtes de limite en essayant de créer une transition douce entre elles.

A gauche: arêtes utilisées pour générer une surface avec l'outil Remplir entre les courbes limites, 4 arêtes connectées, 3 arêtes connectées et 2 arêtes déconnectées. A droite: surface résultante de l'utilisation des 4, 3 et 2 arêtes respectivement.

Utilisation

  1. Appuyez sur la touche Fill boundary curves.
  2. Sélectionnez les arêtes dans la Vue 3D. Les bords doivent se connecter afin de donner un profil fermé.
  3. Appuyez sur OK.

remarque: une fois créée, il n'est pas possible d'appliquer des contraintes supplémentaires à la surface créée.

Options

Fill type: Stretch, Coons ou Curved.

Propriétés

Surface Remplir entre les courbes limites (classe Surface::GeomFillSurface) est dérivée de la classe de base Part Feature (classe Part::Feature via la sous-classe Part::Spline), elle partage donc toutes les propriétés de cette dernière.

Outre les propriétés décrites dans Part Feature, Surface Remplissage a les propriétés suivantes dans l'éditeur de propriétés.

Données

Base

  • DonnéesFill Type (Enumeration): l'algorithme de remplissage appliqué. Stretch, le style avec les patchs les plus plats; Coons, un style arrondi avec moins de profondeur que Curved; Curved, le style avec les patchs les plus arrondis.
  • DonnéesBoundary List (LinkSubList): une liste d'arêtes qui seront utilisées pour construire la surface.
  • Données (caché)Reversed List (BoolList):

Vue

Base

  • VueControl Points (Bool): la valeur par défaut est false. Mis à true, elle affichera une superposition avec les points de contrôle de la surface.

Torsion de la surface

La forme de la surface dépend de la direction des arêtes choisies; si des arêtes sont sélectionnées et que le résultat est une surface qui "se tord" sur elle-même, l'une des arêtes peut avoir besoin de sa liste de sommets dans l'ordre inverse. Une surface qui se tord sur elle-même aura probablement des auto-intersections et sera donc une forme invalide. Ceci peut être vérifié avec Part Vérifier la géométrie.

For example, if two curves have the points

curve1 = [a, b, c, d]
curve2 = [e, f, g]

and the resulting surface after using GeomFillSurface or Sections is a twisted surface, you may create a third curve that is equal to one of the two original curves but with a reversed list of points.

Either

curve1 = [a, b, c, d]
curve3 = [g, f, e]

or

curve3 = [d, c, b, a]
curve2 = [e, f, g]

should work to generate a surface that doesn't twist.

In practical terms this means that all edges used to generate a surface should be created preferably in the same clockwise or anti-clockwise direction. Following this simple rule usually guarantees that the surface will follow the smoothest direction and won't twist.

When the surface's VueLighting property is One side, a face will be painted completely black if its normal direction points into the 3D view (away from the current viewer), indicating a flipped face with respect to the other colored faces.

Left: the boundary edges are oriented in the same direction, and thus the generated surface is smooth. Right: the boundary edges have opposite directions, and thus the generated surface twists on itself, resulting in self-intersections.

Scripting

See also: FreeCAD Scripting Basics.

The Surface GeomFillSurface tool can be used in macros and from the Python console by adding the Surface::GeomFillSurface object.

  • The edges to be used to define the surface must be assigned as a LinkSubList to the BoundaryList property of the object.
  • The type of algorithm must be assigned like a string to the FillType property.
  • All objects with edges need to be computed before they can be used as input for the properties of the GeomFillSurface object.
import FreeCAD as App
import Draft

doc = App.newDocument()

a = App.Vector(-140, -100, 0)
b = App.Vector(175, -108, 0)
c = App.Vector(200, 101, 0)
d = App.Vector(-135, 107, 70)

points1 = [a, App.Vector(-55, -91, 65), App.Vector(35, -85, -5), b]
obj1 = Draft.make_bspline(points1)

points2 = [b, App.Vector(217, -45, 55), App.Vector(217, 35, -15), c]
obj2 = Draft.make_bspline(points2)

points3 = [c, App.Vector(33, 121, 55), App.Vector(0, 91, 15), App.Vector(-80, 121, -40), d]
obj3 = Draft.make_bspline(points3)

points4 = [d, App.Vector(-140, 0, 45), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()

surf = doc.addObject("Surface::GeomFillSurface", "Surface")
surf.BoundaryList = [(obj1, "Edge1"),
                     (obj2, "Edge1"),
                     (obj3, "Edge1"),
                     (obj4, "Edge1")]
doc.recompute()