Mesh Feature

From FreeCAD Documentation
Revision as of 20:41, 29 July 2020 by David69 (talk | contribs) (Created page with "===== Propriétés cachées de Données =====")
Other languages:

Introduction

Un objet File:Tree Mesh.svg Mesh Feature ou officiellement un Mesh::Feature est un élément simple avec un mesh objet qui lui est associé et qui peut être affiché dans la vue 3D.

Une fonction de maillage (Mesh Feature) est conceptuellement similaire à une Part Feature. Le premier est l'objet de base pour les éléments avec des informations de "maillage", tandis que le second est l'objet de base pour les éléments avec des informations de "forme géométrique".

Veuillez noter que l' atelier FEM utilise également des maillages, mais dans ce cas, il utilise un objet différent, appelé Fem FemMeshObject (classe Fem::FemMeshObject). Cet objet n'est pas dérivé de la fonction de maillage, il a donc des propriétés différentes.

Diagramme simplifié des relations entre les objets centraux du programme. La classe Mesh::Feature est à l'origine de la plupart des objets possédant un maillage triangulaire. Ces objets sont créés à partir de l'atelier Mesh ou en important des fichiers STL, OBJ et des formats de maillage similaires.

Utilisation

Presque tous les objets maillés créés par les commandes disponibles dans l'interface graphique de l'atelier Mesh sont des Mesh Features. Les objets maillés paramétriques créés par la commande Mesh Solide régulier sont les seules exceptions. Un Mesh Feature peut également être créé à partir de la console Python comme décrit dans la section Script.

L'objet Mesh::Feature est défini dans l'atelier Mesh mais peut être utilisé comme classe de base pour objets scripté dans tous les ateliers générant des formes géométriques 2D et 3D.

Un Mesh::Feature a des propriétés simples comme un placement et des propriétés visuelles pour définir l'apparence de ses arêtes et faces.

Propriétés

Part Feature (classe Mesh::Feature) est dérivé de la classe de base App GeoFeature (classe App::GeoFeature), de ce fait partage toutes les propriétés de cette dernière.

Outre les propriétés décrites dans App GeoFeature, Mesh Feature possède la propriété DonnéesMesh qui contrôle le type de géométrie affiché dans la vue 3D. Elle stocke Mesh MeshObject de cet objet. Il s'agit de la géométrie affichée dans la Vue 3D.

Les autres propriétés de cet objet sont celles liées à l'apparence de son Mesh MeshObject, y compris VueCrease Angle, VueLighting, VueLine Color, VueLine Transparency, VueLine Width, VueOpen Edges, VuePoint Size ainsi que la propriété masquée VueColoring.

Voir Propriétés pour tous les types de propriétés que les objets crées par script peuvent avoir.

Ce sont les propriétés disponibles dans l'éditeur de propriétés. Les propriétés masquées peuvent être affichées en utilisant la commande Show all dans le menu contextuel de l'éditeur de propriétés.

Données

Base

  • DonnéesMesh (MeshKernel): une classe Mesh MeshObject associée à cet objet. Elle répertorie le nombre de Points, Edges et Faces du maillage.
  • DonnéesPlacement (Placement): la position de l'objet dans la vue 3D. Le placement est défini par un Base point (vecteur) et un Rotation (axe et angle). Voir Placement.
    • DonnéesAngle: l'angle de rotation autour de DonnéesAxis. Par défaut, (zéro degré).
    • DonnéesAxis: le vecteur unitaire qui définit l'axe de rotation du placement. Chaque composant est une valeur à virgule flottante entre 0 et 1. Si une valeur est supérieure à Template:Valeur, le vecteur est normalisé de sorte que la norme du vecteur soit Template:Valeur. Par défaut, il s'agit de l'axe Z positif, (0, 0, 1).
    • DonnéesPosition: un vecteur avec les coordonnées 3D du point de base. Par défaut, il s'agit de l'origine (0, 0, 0).
  • DonnéesLabel (String): le nom modifiable par l'utilisateur de cet objet, c'est une chaîne UTF8 arbitraire.
Propriétés cachées de Données

Base

  • DonnéesExpression Engine (ExpressionEngine): a list of expressions. By default, it is empty [].
  • DonnéesLabel2 (String): a longer, user editable description of this object, it is an arbitrary UTF8 string that may include newlines. By default, it is an empty string "".
  • DonnéesProxy (PythonObject): a custom class associated with this object. This only exists for the Python version. See Scripting.
  • DonnéesVisibility (Bool): whether to display the object or not.

View

Most objects in FreeCAD have what is called a "view provider", which is a class that defines the visual appearance of the object in the 3D view, and in the tree view. The default view provider of Mesh Feature objects defines the following properties. Scripted objects that are derived from Mesh Feature will have access to these properties as well.

Base

  • VueBounding Box (Bool): if it is true, the object will show the bounding box in the 3D view.
  • VueCrease Angle (FloatConstraint):
  • VueDisplay Mode (Enumeration): Shaded (no edges), Wireframe (no faces), Flat Lines (regular visualization), Points (only vertices).
  • VueLighting (Enumeration): One side (default), Two side; the illumination comes from two sides or one side in the 3D view.
  • VueLine Color (Color): a tuple of three floating point RGB values (r,g,b) to define the color of the edges in the 3D view; by default it is (0.0, 0.0, 0.0), which is displayed as [0,0,0] on base 255, completely black .
  • VueLine Transparency (Percent): an integer from 0 to 100 (a percentage) that determines the level of transparency of the edges in the 3D view. A value of 100 indicates completely invisible edges; the edges are invisible but they can still be picked as long as VueSelectable is true.
  • VueLine Width (FloatConstraint): a float that determines the width in pixels of the edges in the 3D view. It defaults to 1.0.
  • VueOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • VueOpen Edges (Bool): it defaults to false.
  • VuePoint Size (FloatConstraint): similar to VueLine Width, defines the size of the vertices.
  • VueSelectable (Bool): if it is true, the object can be picked with the pointer in the 3D view. Otherwise, the object cannot be selected until this option is set to true.
  • VueSelection Style (Enumeration): Shape (default), BoundBox. If the option is Shape, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it is BoundBox only the bounding box will be highlighted.
  • VueShape Color (Color): similar to VueLine Color, defines the color of the faces. It defaults to (0.8, 0.8, 0.8), which is displayed as [204,204,204] on base 255, a light gray.
  • VueShow In Tree (Bool): if it is true, the object appears in the tree view. Otherwise, it is set as invisible.
  • VueTransparency (Percent): an integer from 0 to 100 (a percentage) that determines the level of transparency of the faces in the 3D view. A value of 100 indicates completely invisible faces; the faces are invisible but they can still be picked as long as VueSelectable is true.
  • VueVisibility (Bool): if it is true, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the Space bar in the keyboard.

Hidden properties View

Base

  • VueColoring (Bool): it defaults to false.
  • VueProxy (PythonObject): a custom view provider class associated with this object. This only exists for the Python version. See Scripting.
  • VueShape Material (Material): an App Material associated with this object. By default it is empty.

Script

See also: FreeCAD Scripting Basics, and scripted objects.

See Part Feature for the general information on adding objects to the program.

A Mesh Feature is created with the addObject() method of the document.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("Mesh::Feature", "Name")
obj.Label = "Custom label"

This basic Mesh::Feature doesn't have a Proxy object so it can't be fully used for sub-classing.

Therefore, for Python subclassing, you should create the Mesh::FeaturePython object.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("Mesh::FeaturePython", "Name")
obj.Label = "Custom label"