Surface Remplissage
Cette documentation n'est pas terminée. Merci de nous aider et de contribuer à la documentation.
Modèle GuiCommand explique comment les commandes doivent être documentées. Parcourez Category:UnfinishedDocu pour voir d'autres pages incomplètes comme celle-ci. Voir Category:Command_Reference pour toutes les commandes.
Voir Écrire une page Wiki pour apprendre à éditer les pages du wiki, et aller à Contribuer à FreeCAD pour apprendre d'autres façons de contribuer.
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
- 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.
- Appuyez sur le bouton Surface fill.
- Dans la section Filling, appuyez sur Add edge.
- 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é.
- Facultativement, pour contrôler la courbure de la surface, allez dans la section Unbound bords, appuyez sur Add edge, et choisissez les arêtes souhaitées dans la Vue 3D .
- Facultativement, pour contrôler la courbure au moyen de sommets, allez dans la section Vertices, appuyez sur Add vertex, et choisissez les sommets désirés dans la Vue 3D .
- 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 Filling.
- Add edge: appuyez une fois pour commencer à sélectionner les arêtes dans la Vue 3D. Les lignes individuelles telles que Draft BSplines et Sketcher BSplines peuvent être choisies ainsi que n'importe quelle arête des objets solides, comme ceux des PartDesign Corps et des Part Primitives.
- Remove edge: appuyez une fois pour commencer à choisir les arêtes dans la Vue 3D. Celles-ci doivent être des arêtes précédemment 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.
- Dans la section Unbound Edges, des boutons similaires Add edge et 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 Filling, des boutons similaires Add vertex et Remove vertex sont disponibles, dans ce cas pour sélectionner les sommets de support.
- 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
et2
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
et2
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 est3
. - 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 est2
. - DonnéesAnisotropy (
Bool
): il vaut par défautfalse
. - DonnéesTolerance2d (
Float
): tolérance 2D, la valeur par défaut est0.0
. - DonnéesTolerance3d (
Float
): tolérance 3D, la valeur par défaut est0.0
. - DonnéesTol Angular (
Float
): tolérance G1, la valeur par défaut est0.01
. - DonnéesTol Curvature (
Float
): tolérance G2, la valeur par défaut est0.10
. - DonnéesMaximum Degree (
Integer
): degré maximum de la courbe, la valeur par défaut est8
. - DonnéesMaximum Segments (
Integer
): nombre maximum de segments, la valeur par défaut est9
.
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.
Limitations
The surface code from the internal OpenCASCADE modelling kernel is fragile, and cannot handle wrong input properly. The following situations may cause problems, and may crash the program, so they should be avoided:
- Adding DonnéesBoundary Edges to that would result in several closed faces. In this case, those edges should be added as DonnéesUnbound Edges to control the curvature only.
- Using parametric DonnéesBoundary Edges (for example, Draft_BSplines) that when recomputed fail to produce a closed boundary. That is, the edges to be used as DonnéesBoundary Edges must always form a closed shape, even if their internal properties change.
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
etPoints
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()
- 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