Surface Sections

From FreeCAD Documentation
Revision as of 12:16, 4 October 2020 by David69 (talk | contribs) (Created page with "== Torsion de la surface ==")
Other languages:

Surface Sections

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

Description

Surface Sections est utilisé pour créer une surface à partir d'arêtes qui représentent des sections transversales d'une surface.

À gauche: bords de contrôle (coupes transversales). À droite: surface produite à partir de ces arêtes.

Utilisation

  1. Assurez-vous d'avoir au moins deux arêtes ou courbes dans l'espace. Par exemple, ceux-ci peuvent être créés avec des outils de l' atelier Draft ou de l' atelier Sketcher.
  2. Appuyez sur le bouton Surface sections.
  3. 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é deux arêtes valides.
  5. Appuyez sur OK pour terminer l'opération.

Options

  • Add edge: appuyez une fois pour commencer à choisir les arêtes dans la Vue 3D. Les lignes individuelles telles que les Draft BSplines et les Sketcher BSplines peuvent être choisies ainsi que n'importe quelle arête des objets solides, comme celles de PartDesign Corps et de 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.
  • Bouton droit de la souris: ouvrez le menu contextuel et sélectionnez Remove ou appuyez sur Suppr au clavier pour supprimer le bord actuellement sélectionné dans la liste.
  • Drag: faites glisser l'élément actuellement sélectionné dans la liste afin de changer l'ordre dans lequel il sera traité. La liste est traitée de haut en bas.
  • Appuyez sur Cancel ou Echap pour abandonner l'opération en cours.

Propriétés

Surface Sections (classe Surface::Sections) sont dérivées de la classe de base Part Feature (classe Part::Feature via la sous-classe Part::Spline). Elles partagent donc toutes les propriétés de cette dernière.

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

Données

Sections

  • DonnéesNSections (LinkSubList): une liste d'arêtes qui seront utilisées pour construire la surface.

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

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. See the information in GeomFillSurface for a more complete explanation.

Script

Voir aussi: FreeCAD Script de base.

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

  • Les arêtes à utiliser pour définir la surface doivent être affectées en tant que LinkSubList à la propriété NSections 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 Sections.
import FreeCAD as App
import Draft

doc = App.newDocument()

pl1 = App.Placement()
obj1 = Draft.make_circle(50, placement=pl1, face=False, startangle=0, endangle=180)

pl2 = App.Placement(App.Vector(0, 0, 25), App.Rotation())
obj2 = Draft.make_circle(30, placement=pl2, face=False, startangle=0, endangle=180)

points3 = [App.Vector(18, -10, 50),
           App.Vector(12, 10, 50),
           App.Vector(-12, 10, 50),
           App.Vector(-18, -10, 50)]
obj3 = Draft.make_bspline(points3)

points4 = [App.Vector(15, -20, 100),
           App.Vector(0, 6, 100),
           App.Vector(-15, -20, 100)]
obj4 = Draft.make_bspline(points4)
doc.recompute()

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