Surface GeomFillSurface/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "== Torsion de la surface ==")
No edit summary
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/fr
{{Docnav/fr
|[[Surface_Filling/fr|Remplissage]]
|[[Surface_Filling/fr|Remplissage]]
|[[Surface_Sections/fr|Sections]]
|[[Surface_Sections/fr|Sections]]
|[[Surface_Module/fr|Atelier Surface]]
|[[Surface_Workbench/fr|Atelier Surface]]
|IconL=Filling.svg
|IconL=Surface_Filling.svg
|IconC=Workbench_Surface.svg
|IconR=Surface_Sections.svg
|IconR=Surface_Sections.svg
|IconC=Workbench_Surface.svg
}}
}}


Line 13: Line 14:
|Name/fr=Surface Remplir entre les courbes limites
|Name/fr=Surface Remplir entre les courbes limites
|MenuLocation=Surface → Fill boundary curves
|MenuLocation=Surface → Fill boundary curves
|Workbenches=[[Surface_Module/fr|Surface]]
|Workbenches=[[Surface_Workbench/fr|Surface]]
|Version=0.17
|Version=0.17
}}
}}
Line 27: Line 28:
[[File:Surface_GeomFillSurface_2_edges.png|330px]] [[File:Surface_GeomFillSurface_2_edges_example.png|330px]]
[[File:Surface_GeomFillSurface_2_edges.png|330px]] [[File:Surface_GeomFillSurface_2_edges_example.png|330px]]


{{Caption|A gauche: arêtes utilisées pour générer une surface avec l'outil [[Surface_GeomFillSurface/fr|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.}}
{{Caption|A gauche : arêtes utilisées pour générer une surface avec l'outil [[Surface_GeomFillSurface/fr|Remplir entre les courbes limites]], 4 arêtes connectées, 3 arêtes connectées et 2 arêtes déconnectées.<br> A droite : surface résultante de l'utilisation de 4, 3 et 2 arêtes respectivement.}}


<span id="Usage"></span>
==Utilisation==
==Utilisation==


Line 35: Line 37:
# Appuyez sur {{Button|OK}}.
# Appuyez sur {{Button|OK}}.


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


==Options==
==Options==


{{MenuCommand|Fill type}}: {{RadioButton|TRUE|Stretch}}, {{RadioButton|TRUE|Coons}} ou {{RadioButton|TRUE|Curved}}.
{{MenuCommand|Fill type}} : {{RadioButton|TRUE|Stretch}}, {{RadioButton|TRUE|Coons}} ou {{RadioButton|TRUE|Curved}}.


<span id="Properties"></span>
==Propriétés==
==Propriétés==


[[Surface_GeomFillSurface/fr|Surface Remplir entre les courbes limites]] (classe {{incode|Surface::GeomFillSurface}}) est dérivée de la classe de base [[Part_Feature/fr|Part Feature]] (classe {{incode|Part::Feature}} via la sous-classe {{incode|Part::Spline}}), elle partage donc toutes les propriétés de cette dernière.
[[Surface_GeomFillSurface/fr|Surface Remplir entre les courbes limites]] (classe {{incode|Surface::GeomFillSurface}}) est dérivée de la classe de base [[Part_Feature/fr|Part Feature]] (classe {{incode|Part::Feature}} via la sous-classe {{incode|Part::Spline}}), elle partage donc toutes les propriétés de cette dernière.


Outre les propriétés décrites dans [[Part Feature/fr|Part Feature]], Surface Remplissage a les propriétés suivantes dans l'[[property_editor/fr|éditeur de propriétés]].
Outre les propriétés décrites dans [[Part_Feature/fr|Part Feature]], ''Surface Remplir entre les courbes limites'' a les propriétés suivantes dans l'[[Property_editor/fr|éditeur de propriétés]].


<span id="Data"></span>
=== Données ===
=== Données ===


{{TitleProperty|Base}}
{{TitleProperty|Base}}


*{{PropertyData/fr|Fill Type|Enumeration}}: l'algorithme de remplissage appliqué. Stretch, le style avec les patchs les plus plats; [https://en.wikipedia.org/wiki/Coons_patch {{Value|Coons}}], un style arrondi avec moins de profondeur que Curved; Curved, le style avec les patchs les plus arrondis.
*{{PropertyData/fr|Fill Type|Enumeration}} : algorithme de remplissage appliqué. Stretch, le style avec les patchs les plus plats; [https://en.wikipedia.org/wiki/Coons_patch {{Value|Coons}}], un style arrondi avec moins de profondeur que Curved; Curved, le style avec les patchs les plus arrondis.
*{{PropertyData/fr|Boundary List|LinkSubList}}: une liste d'arêtes qui seront utilisées pour construire la surface.
*{{PropertyData/fr|Boundary List|LinkSubList}} : une liste des arêtes qui seront utilisées pour construire la surface.
*{{PropertyData/fr|Reversed List|BoolList|(hidden)}}:
*{{PropertyData/fr|Reversed List|BoolList|(hidden)}} :


<span id="View"></span>
=== Vue ===
=== Vue ===


{{TitleProperty|Base}}
{{TitleProperty|Base}}


* {{PropertyView/fr|Control Points|Bool}}: la valeur par défaut est {{FALSE}}. Mis à {{TRUE}}, elle affichera une superposition avec les points de contrôle de la surface.
* {{PropertyView|Control Points|Bool}} : par défaut {{FALSE}}. Mis à {{TRUE}}, elle affichera une superposition avec les points de contrôle de la surface.


<span id="Twisting_of_the_surface"></span>
== Torsion de la surface ==
== Torsion de la surface ==


The shape of the surface depends on the direction of the chosen edges; if edges are selected and the result is a surface that "twists" on itself, one of the edges may need its list of vertices in the reverse order. A surface that twists on itself will probably have self-intersections, and thus will be an invalid [[Part_TopoShape|Shape]]; this can be verified with {{Button|[[File:Part_CheckGeometry.svg|16px]] [[Part_CheckGeometry|Part CheckGeometry]]}}.
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 [[Part_TopoShape/fr|forme]] invalide. Ceci peut être vérifié avec {{Button|[[File:Part_CheckGeometry.svg|16px]] [[Part_CheckGeometry/fr|Part Vérifier la géométrie]]}}.


For example, if two curves have the points
Par exemple, si deux courbes ont les points
{{Code|code=
{{Code|code=
curve1 = [a, b, c, d]
curve1 = [a, b, c, d]
curve2 = [e, f, g]
curve2 = [e, f, g]
}}
}}
and the resulting surface after using {{Button|[[File:Surface_GeomFillSurface.svg|16px]] [[Surface_GeomFillSurface|GeomFillSurface]]}} or {{Button|[[File:Surface_Sections.svg|16px]] [[Surface_Sections|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.
et la surface résultante après avoir utilisé {{Button|[[File:Surface_GeomFillSurface.svg|16px]] [[Surface_GeomFillSurface/fr|Remplir entre les courbes limites]]}} ou {{Button|[[File:Surface_Sections.svg|16px]] [[Surface_Sections/fr|Surface Sections]]}} est une surface torsadée, vous pouvez créer une troisième courbe égale à l'une des deux courbes d'origine mais avec une liste de points inversée.


Soit
Either
{{Code|code=
{{Code|code=
curve1 = [a, b, c, d]
curve1 = [a, b, c, d]
Line 78: Line 84:
}}
}}


ou
or
{{Code|code=
{{Code|code=
curve3 = [d, c, b, a]
curve3 = [d, c, b, a]
curve2 = [e, f, g]
curve2 = [e, f, g]
}}
}}
should work to generate a surface that doesn't twist.
devrait fonctionner pour générer une surface qui non tordue.


En termes pratiques, cela signifie que toutes les arêtes utilisées pour générer une surface doivent être créées de préférence dans le même sens horaire ou anti-horaire. Suivre cette règle simple garantit généralement que la surface suivra la direction la plus lisse et ne se tordra pas.
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 {{PropertyView|Lighting}} property is {{Value|One side}}, a face will be painted completely black if its normal direction points into the [[3D_view|3D view]] (away from the current viewer), indicating a flipped face with respect to the other colored faces.
Lorsque la propriété {{PropertyView/fr|Lighting}} de la surface est {{Value|One side}}, une face sera coloriée complètement en noir si sa direction normale pointe dans la [[3D_view/fr|Vue 3D]] (loin du visualiseur actuel) indiquant une face inversée par rapport aux autres faces colorées.


[[File:Surface_twisting_example_smooth.png|330px]] [[File:Surface_twisting_example_twisted.png|330px]]
[[File:Surface_twisting_example_smooth.png|330px]] [[File:Surface_twisting_example_twisted.png|330px]]
{{Caption|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.}}
{{Caption|A gauche : les arêtes limites sont orientées dans la même direction et ainsi la surface générée est lisse.<br>A droite : les arêtes limites ont des directions opposées et donc la surface générée se tord sur elle-même, ce qui entraîne des auto-intersections.}}


== Scripting ==
<span id="Scripting"></span>
== Script ==


{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|FreeCAD Script de base]].


The Surface GeomFillSurface tool can be used in [[macros|macros]] and from the [[Python|Python]] console by adding the {{incode|Surface::GeomFillSurface}} object.
L'outil Surface Remplir entre les courbes limites peut être utilisé dans des [[Macros/fr|macros]] et depuis la console [[Python/fr|Python]] en ajoutant l'objet {{incode|Surface::GeomFillSurface}}.
* The edges to be used to define the surface must be assigned as a [[LinkSubList|LinkSubList]] to the {{incode|BoundaryList}} property of the object.
* Les arêtes à utiliser pour définir la surface doivent être affectées en tant que [[LinkSubList/fr|LinkSubList]] à la propriété {{incode|BoundaryList}} de l'objet.
* The type of algorithm must be assigned like a string to the {{incode|FillType}} property.
* Le type d'algorithme doit être attribué comme une chaîne de caractère à la propriété {{incode|FillType}}.
* Tous les objets avec des arêtes doivent être calculés avant de pouvoir être utilisés comme entrée pour les propriétés de l'objet GeomFillSurface.
* All objects with edges need to be computed before they can be used as input for the properties of the GeomFillSurface object.


{{Code|code=
{{Code|code=
Line 132: Line 139:
doc.recompute()
doc.recompute()
}}
}}



{{Docnav/fr
{{Docnav/fr
|[[Surface_Filling/fr|Remplissage]]
|[[Surface_Filling/fr|Remplissage]]
|[[Surface_Sections/fr|Sections]]
|[[Surface_Sections/fr|Sections]]
|[[Surface_Module/fr|Atelier Surface]]
|[[Surface_Workbench/fr|Atelier Surface]]
|IconL=Filling.svg
|IconL=Surface_Filling.svg
|IconC=Workbench_Surface.svg
|IconR=Surface_Sections.svg
|IconR=Surface_Sections.svg
|IconC=Workbench_Surface.svg
}}
}}


{{Surface Tools navi{{#translation:}}}}
{{Surface Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 21:39, 4 March 2024

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 de 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 Remplir entre les courbes limites a les propriétés suivantes dans l'éditeur de propriétés.

Données

Base

  • DonnéesFill Type (Enumeration) : 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 des arêtes qui seront utilisées pour construire la surface.
  • Données (caché)Reversed List (BoolList) :

Vue

Base

  • VueControl Points (Bool) : par défaut 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.

Par exemple, si deux courbes ont les points

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

et la surface résultante après avoir utilisé Remplir entre les courbes limites ou Surface Sections est une surface torsadée, vous pouvez créer une troisième courbe égale à l'une des deux courbes d'origine mais avec une liste de points inversée.

Soit

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

ou

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

devrait fonctionner pour générer une surface qui non tordue.

En termes pratiques, cela signifie que toutes les arêtes utilisées pour générer une surface doivent être créées de préférence dans le même sens horaire ou anti-horaire. Suivre cette règle simple garantit généralement que la surface suivra la direction la plus lisse et ne se tordra pas.

Lorsque la propriété VueLighting de la surface est One side, une face sera coloriée complètement en noir si sa direction normale pointe dans la Vue 3D (loin du visualiseur actuel) indiquant une face inversée par rapport aux autres faces colorées.

A gauche : les arêtes limites sont orientées dans la même direction et ainsi la surface générée est lisse.
A droite : les arêtes limites ont des directions opposées et donc la surface générée se tord sur elle-même, ce qui entraîne des auto-intersections.

Script

Voir aussi : FreeCAD Script de base.

L'outil Surface Remplir entre les courbes limites peut être utilisé dans des macros et depuis la console Python en ajoutant l'objet Surface::GeomFillSurface.

  • Les arêtes à utiliser pour définir la surface doivent être affectées en tant que LinkSubList à la propriété BoundaryList de l'objet.
  • Le type d'algorithme doit être attribué comme une chaîne de caractère à la propriété FillType.
  • Tous les objets avec des arêtes doivent être calculés avant de pouvoir être utilisés comme entrée pour les propriétés de l'objet GeomFillSurface.
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()