Surface Filling/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "L'outil Remplissage de Surface peut être utilisé dans macros et depuis la console Python en ajoutant l'objet {{incode|Surface :: Filling}}. * Les...")
No edit summary
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{UnfinishedDocu{{#translation:}}}}
{{Docnav/fr
{{Docnav/fr
|
|
Line 35: Line 34:
#* De même, un certain nombre de sommets peuvent être utilisés dans le même but pour indiquer où la surface doit passer.
#* De même, un certain nombre de sommets peuvent être utilisés dans le même but pour indiquer où la surface doit passer.
# Appuyez sur le bouton {{Button|[[File:Surface_Filling.svg|16px]] [[Surface_Filling/fr|Surface fill]]}}.
# Appuyez sur le bouton {{Button|[[File:Surface_Filling.svg|16px]] [[Surface_Filling/fr|Surface fill]]}}.
# Dans la section {{MenuCommand|Filling}}, appuyez sur {{Button|Add edge}}.
# Dans la section {{MenuCommand|Boundary}}, appuyez sur {{Button|Add edge}}.
# Utilisez le pointeur pour sélectionner les arêtes souhaitées dans la [[3D_view/fr|Vue 3D]]. Un aperçu de la forme finale sera affiché après avoir sélectionné des arêtes valides qui forment un contour fermé.
# Utilisez le pointeur pour sélectionner les arêtes souhaitées dans la [[3D_view/fr|Vue 3D]]. Un aperçu de la forme finale sera affiché après avoir sélectionné des arêtes valides qui forment un contour fermé.
#* Facultativement, pour contrôler la courbure de la surface, allez dans la section {{MenuCommand|Unbound bords}}, appuyez sur {{Button|Add edge}}, et choisissez les arêtes souhaitées dans la [[3D_view/fr|Vue 3D]] .
#* En option, allez dans la section {{MenuCommand|Curvature: non-boundary edges}}, appuyez sur {{Button|Add edge}}, et choisissez les arêtes souhaitées dans la [[3D_view/fr|Vue 3D]] .
#* Facultativement, pour contrôler la courbure au moyen de sommets, allez dans la section {{MenuCommand|Vertices}}, appuyez sur {{Button|Add vertex}}, et choisissez les sommets désirés dans la [[3D_view/fr|Vue 3D]] .
#* En option, allez dans la section {{MenuCommand|Curvature: non-boundary vertices}}, appuyez sur {{Button|Add vertex}}, et choisissez les sommets désirés dans la [[3D_view/fr|Vue 3D]] .
# Appuyez sur {{Button|OK}} pour terminer l'opération.
# Appuyez sur {{Button|OK}} pour terminer l'opération.


Line 45: Line 44:
==Options==
==Options==


* Dans la section {{MenuCommand|Filling}}.
* Dans la section {{MenuCommand|Boundary}}.
** {{Button|Add edge}}: appuyez une fois pour commencer à sélectionner les arêtes dans la [[3D_view/fr|Vue 3D]]. Les lignes individuelles telles que {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline/fr|Draft BSplines]]}} et {{Button|[[File:Sketcher_CreateBSpline.svg|16px]] [[Sketcher_CreateBSpline/fr|Sketcher BSplines]]}} peuvent être choisies ainsi que n'importe quelle arête des objets solides, comme ceux des {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body/fr|PartDesign Corps]]}} et des {{Button|[[File:Part_Primitives.svg|16px]] [[Part_Primitives/fr|Part Primitives]]}}.
** {{Button|Add edge}}: appuyez une fois pour commencer à sélectionner {{MenuCommand|Boundary edges}} (les bords) dans la [[3D_view/fr|Vue 3D]]. Les arêtes droites telles que {{Button|[[File:Draft_Wire.svg|16px]] [[Draft_Wire/fr|Draft Fils]]}} et {{Button|[[File:Sketcher_CreatePolyline.svg|16px]] [[Sketcher_CreatePolyline/fr|Sketcher Polylignes]]}} ou les arêtes courbes telles que {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline|Draft BSplines]]}} et {{Button|[[File:Sketcher_CreateBSpline.svg|16px ]] [[Sketcher_CreateBSpline/fr|Sketcher BSplines]]}} peuvent être prises ainsi que n'importe quelle arête d'objets solides, comme celles des {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body/fr|PartDesign Corps]]}} et des {{Button|[[File:Part_Primitives.svg|16px]] [[Part_Primitives/fr|Part Primitives]]}}.
** {{Button|Remove edge}}: appuyez une fois pour commencer à choisir les arêtes dans la [[3D_view/fr|Vue 3D]]. Celles-ci doivent être des arêtes précédemment sélectionnées avec {{Button|Add edge}}.
** {{Button|Remove edge}}: appuyez une fois pour commencer à choisir les arêtes dans la [[3D_view/fr|Vue 3D]]. Ces arêtes doivent avoir été préalablement sélectionnées avec {{Button|Add edge}}.
* {{KEY|Right mouse button}}: ouvrez le menu contextuel et sélectionnez {{Button|Remove}} ou appuyez sur {{KEY|Suppr}} au clavier pour supprimer le bord actuellement sélectionné dans la liste.
* {{KEY|Right mouse button}}: ouvrez le menu contextuel et sélectionnez {{Button|Remove}} ou appuyez sur {{KEY|Suppr}} au clavier pour supprimer le bord actuellement sélectionné dans la liste.


* Section {{MenuCommand|Curvature: non-boundary edges}}. Le bouton {{Button|Add edge}} permet de sélectionner des arêtes auxiliaires (lignes droites ou B-Splines) pour contrôler la courbure de la surface. La surface sera forcée de passer à travers ces bords auxiliaires. Cela fonctionne mieux lorsque les arêtes auxiliaires se trouvent à l'intérieur de la région délimitée par {{MenuCommand|Boundary bords}}.

* Section {{MenuCommand|Curvature: non-boundary vertices}}. Similaire aux arêtes non-frontières (non-boundary edges), l'utilisateur peut choisir des sommets auxiliaires pour contrôler la courbure. Ces sommets peuvent être autonomes {{Button|[[File:Draft_Point.svg|16px]] [[Draft_Point/fr|Draft Points]]}} ou {{Button|[[File:Part_Point.svg|16px]] [[Part_Point/fr|Part Points]]}} ou peut appartenir à n'importe quelle arête (lignes droites ou B-Splines) ou être un sommet d'angle dans un objet solide. Dans ce cas, la surface sera contrainte de passer par ces points auxiliaires.
* Dans la section {{MenuCommand|Unbound Edges}}, des boutons similaires {{Button|Add edge}} et {{Button|Remove edge}} sont disponibles pour sélectionner des arêtes de support afin de contrôler la courbure de la surface d'origine.
* Dans la section {{MenuCommand|Filling}}, des boutons similaires {{Button|Add vertex}} et {{Button|Remove vertex}} sont disponibles, dans ce cas pour sélectionner les sommets de support.
* Appuyez sur {{Button|Cancel}} ou {{KEY|Echap}} pour abandonner l'opération en cours.
* Appuyez sur {{Button|Cancel}} ou {{KEY|Echap}} pour abandonner l'opération en cours.


Line 91: Line 89:


* {{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/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.

== Limitations ==

Le code de surface du noyau de modélisation interne [[OpenCASCADE/fr|OpenCASCADE]] est fragile et ne peut pas gérer correctement les entrées erronées. Les situations suivantes peuvent causer des problèmes et faire planter le programme, elles doivent donc être évitées:
* Ajouter des {{PropertyData/fr|Boundary Edges}} à cela résulterait en plusieurs faces fermées. Dans ce cas, ces arêtes doivent être ajoutées en tant que {{PropertyData/fr|Unbound Edges}} pour contrôler uniquement la courbure.
* Utilisation des {{PropertyData/fr|Boundary Edges}} paramétriques (par exemple {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline/fr|Draft BSplines]]}}) qui, une fois recalculés, ne parviennent pas à produire une frontière fermée. Autrement dit, les arêtes à utiliser comme {{PropertyData/fr|Boundary Edges}} doivent toujours former une forme fermée, même si leurs propriétés internes changent.


== Script ==
== Script ==

Revision as of 12:13, 4 October 2020

Other languages:

Surface Remplissage

Emplacement du menu
Surface → Filling...
Ateliers
Surface
Raccourci par défaut
Aucun
Introduit dans la version
0.17
Voir aussi
Aucun

Description

Surface Remplissage crée une surface à partir d'une série d'arêtes limites connectées.

La surface peut être modifiée en ajoutant des arêtes et des sommets de contrainte que la surface doit traverser.

Exemple de surface remplie, délimitée par quatre arêtes situées dans le plan XY; (à gauche) uniquement les quatre arêtes et (à droite) une courbe supplémentaire dans l'espace définissant la courbure de la surface

Utilisation

  1. Assurez-vous d'avoir au moins trois arêtes ou courbes dans l'espace formant un contour fermé. Par exemple, ceux-ci peuvent être créés avec des outils de l' atelier Draft ou de l' atelier Sketcher . L'utilisation de trois arêtes créerait une surface triangulaire; quatre arêtes une surface quadrilatérale.
    • En option, les courbes peuvent être dessinées à l'intérieur du contour fermé, sans nécessairement toucher les bords. Ces courbes peuvent être utilisées pour contrôler la courbure de la surface résultante.
    • De même, un certain nombre de sommets peuvent être utilisés dans le même but pour indiquer où la surface doit passer.
  2. Appuyez sur le bouton Surface fill.
  3. Dans la section Boundary, appuyez sur Add edge.
  4. Utilisez le pointeur pour sélectionner les arêtes souhaitées dans la Vue 3D. Un aperçu de la forme finale sera affiché après avoir sélectionné des arêtes valides qui forment un contour fermé.
    • En option, allez dans la section Curvature: non-boundary edges, appuyez sur Add edge, et choisissez les arêtes souhaitées dans la Vue 3D .
    • En option, allez dans la section Curvature: non-boundary vertices, appuyez sur Add vertex, et choisissez les sommets désirés dans la Vue 3D .
  5. Appuyez sur OK pour terminer l'opération.

Les arêtes de base qui forment le contour fermé, ainsi que les sommets et arêtes auxiliaires, peuvent appartenir à des courbes 2D de Draft ou de Sketcher mais peut également appartenir à des objets solides 3D tels que ceux créés avec Part ou PartDesign.

Options

  • Dans la section Boundary.
    • Add edge: appuyez une fois pour commencer à sélectionner Boundary edges (les bords) dans la Vue 3D. Les arêtes droites telles que Draft Fils et Sketcher Polylignes ou les arêtes courbes telles que Draft BSplines et Sketcher BSplines peuvent être prises ainsi que n'importe quelle arête d'objets solides, comme celles des PartDesign Corps et des Part Primitives.
    • Remove edge: appuyez une fois pour commencer à choisir les arêtes dans la Vue 3D. Ces arêtes doivent avoir été préalablement sélectionnées avec Add edge.
  • Right mouse button: ouvrez le menu contextuel et sélectionnez Remove ou appuyez sur Suppr au clavier pour supprimer le bord actuellement sélectionné dans la liste.
  • Section Curvature: non-boundary edges. Le bouton Add edge permet de sélectionner des arêtes auxiliaires (lignes droites ou B-Splines) pour contrôler la courbure de la surface. La surface sera forcée de passer à travers ces bords auxiliaires. Cela fonctionne mieux lorsque les arêtes auxiliaires se trouvent à l'intérieur de la région délimitée par Boundary bords.
  • Section Curvature: non-boundary vertices. Similaire aux arêtes non-frontières (non-boundary edges), l'utilisateur peut choisir des sommets auxiliaires pour contrôler la courbure. Ces sommets peuvent être autonomes Draft Points ou Part Points ou peut appartenir à n'importe quelle arête (lignes droites ou B-Splines) ou être un sommet d'angle dans un objet solide. Dans ce cas, la surface sera contrainte de passer par ces points auxiliaires.
  • Appuyez sur Cancel ou Echap pour abandonner l'opération en cours.

Propriétés

Surface Remplissage (classe Surface::Filling) 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

Filling

  • DonnéesBoundary Edges (LinkSubList): bords de frontière; C0 est requis pour les arêtes sans face correspondante.
  • DonnéesBoundary Faces (StringList):
  • DonnéesBoundary Order (IntegerList): ordre de contrainte sur les faces limites; 0, 1 et 2 sont possibles.
  • DonnéesBords non liés (LinkSubList): bords de contrainte non liés; C0 est requis pour les arêtes sans face correspondante.
  • DonnéesUnbound Faces (StringList):
  • DonnéesUnbound Order (IntegerList): ordre de contrainte sur les faces non liées; 0, 1 et 2 sont possibles.
  • DonnéesFree Faces (LinkSubList): contrainte libre sur une face.
  • DonnéesFree Order (IntegerList): ordre de contrainte sur les faces libres.
  • DonnéesPoints (LinkSubList): points de contrainte sur la surface.
  • DonnéesInitial Face (LinkSub): surface initiale à utiliser.
  • DonnéesDegree (Integer): degré de départ, la valeur par défaut est 3.
  • DonnéesPoints On Curve (Integer): nombre de points sur une arête pour la contrainte.
  • DonnéesIterations (Integer): nombre d'itérations, la valeur par défaut est 2.
  • DonnéesAnisotropy (Bool): il vaut par défaut false.
  • DonnéesTolerance2d (Float): tolérance 2D, la valeur par défaut est 0.0.
  • DonnéesTolerance3d (Float): tolérance 3D, la valeur par défaut est 0.0.
  • DonnéesTol Angular (Float): tolérance G1, la valeur par défaut est 0.01.
  • DonnéesTol Curvature (Float): tolérance G2, la valeur par défaut est 0.10.
  • DonnéesMaximum Degree (Integer): degré maximum de la courbe, la valeur par défaut est 8.
  • DonnéesMaximum Segments (Integer): nombre maximum de segments, la valeur par défaut est 9.

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.

Limitations

Le code de surface du noyau de modélisation interne OpenCASCADE est fragile et ne peut pas gérer correctement les entrées erronées. Les situations suivantes peuvent causer des problèmes et faire planter le programme, elles doivent donc être évitées:

  • Ajouter des DonnéesBoundary Edges à cela résulterait en plusieurs faces fermées. Dans ce cas, ces arêtes doivent être ajoutées en tant que DonnéesUnbound Edges pour contrôler uniquement la courbure.
  • Utilisation des DonnéesBoundary Edges paramétriques (par exemple Draft BSplines) qui, une fois recalculés, ne parviennent pas à produire une frontière fermée. Autrement dit, les arêtes à utiliser comme DonnéesBoundary Edges doivent toujours former une forme fermée, même si leurs propriétés internes changent.

Script

Voir aussi: FreeCAD Script de base.

L'outil Remplissage de Surface peut être utilisé dans macros et depuis la console Python en ajoutant l'objet Surface :: Filling.

  • Les arêtes à utiliser pour définir la surface doivent être affectées en tant que LinkSubList à la propriété BoundaryEdges de l'objet.
  • Les arêtes et les sommets auxiliaires doivent être affectés en tant que LinkSubLists aux propriétés UnboundEdges et Points de l'objet.
  • 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 Filling.
import FreeCAD as App
import Draft

doc = App.newDocument()

a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)

points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)

points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)

points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)

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

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

# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
              App.Vector(4, 0, 7),
              App.Vector(18, 0, -5),
              App.Vector(25, 0, 0),
              App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()

surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()

# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
                         App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
                         App.Vector(-3, 18, -5))
doc.recompute()

surf.Points = [(aux_v1, "Vertex2"),
               (aux_v2, "Vertex1")]
doc.recompute()