Surface Remplir entre les courbes limites
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
- Appuyez sur la touche Fill boundary curves.
- Sélectionnez les arêtes dans la Vue 3D. Les bords doivent se connecter afin de donner un profil fermé.
- 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 estfalse
. 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()
- Démarrer avec FreeCAD
- Installation : Téléchargements, Windows, Linux, Mac, Logiciels supplémentaires, Docker, AppImage, Ubuntu Snap
- Bases : À propos de FreeCAD, Interface, Navigation par la souris, Méthodes de sélection, Objet name, Préférences, Ateliers, Structure du document, Propriétés, Contribuer à FreeCAD, Faire un don
- Aide : Tutoriels, Tutoriels vidéo
- Ateliers : Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test