Material/fr

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.
Cette page documente les formats et les décisions de conception liés à la mise en œuvre du nouveau système Material pendant le cycle de développement de FreeCAD 1.0. Elle n'est pas à jour et est conservée pour des raisons historiques. La plupart des utilisateurs préféreront consulter la documentation utilisateur de l'atelier Material à la place.

Présentation

Cette page vous renseigne sur le système de données des matériaux dans FreeCAD.

Il est actuellement en cours de révision afin de refléter les modifications apportées au système de matériaux actuellement en cours de développement.

Résumé

Contrairement aux versions précédentes, les matériaux ne sont plus implémentés sous la forme d'un simple dictionnaire. Le système précédent présentait l'avantage d'être simple, mais avait pour inconvénient d'offrir une gamme limitée pour décrire les propriétés des matériaux.

Dans le nouveau système, les propriétés sont définies séparément sous forme d'une série de fichiers YAML. Elles sont ensuite combinées dans une description de propriété avec des valeurs spécifiées pour les propriétés requises. Les nouveaux types de données, tels que les tableaux, signifient qu'il n'est plus possible d'y accéder à l'aide de simples dictionnaires. Une API est plutôt utilisée pour accéder aux propriétés matérielles et aux valeurs des données. Cela permet d'obtenir des capacités supérieures à celles qui étaient possibles auparavant.

Outils

Il existe plusieurs ressources utiles pour faciliter la gestion des matériaux :

Propriétés

Contrairement à la norme précédente, les propriétés des matériaux sont clairement définies. Elles ont été conçues pour être granulaires et extensibles. Les propriétés peuvent hériter de plusieurs propriétés, en ajoutant uniquement ce qui est différent. Cela améliorera la recherche et simplifiera la mise en œuvre.

Actuellement, il n'existe pas d'éditeur dédié aux propriétés. Elles peuvent être modifiées à l'aide de n'importe quel outil YAML ou d'un éditeur simple tel que nano ou Notepad.

Les fichiers de définition des propriétés sont appelés modèles.

Exemple de fichier modèle des propriétés YAML

Model:
  Name: 'Linear Elastic'
  UUID: '7b561d1d-fb9b-44f6-9da9-56a4f74d7536'
  URL: 'https://en.wikipedia.org/wiki/Linear_elasticity'
  Description: >
    Materials that are linearly elastic obey Hooke's law i.e. the stress and
    strain relationship is linear
  DOI: "10.1016/j.ijplas.2004.06.004"
  Inherits:
    - Density:
      UUID: '454661e5-265b-4320-8e6f-fcf6223ac3af'
    - IsotropicLinearElastic:
      UUID: 'f6f9e48c-b116-4e82-ad7f-3659a9219c50'
  AngleOfFriction:
    Type: 'Quantity'
    Units: 'deg'
    URL: 'https://en.wikipedia.org/wiki/Friction#Angle_of_friction'
    Description: >
      Further information can be found at
      https://en.wikipedia.org/wiki/Mohr%E2%80%93Coulomb_theory
  CompressiveStrength:
    Type: 'Quantity'
    Units: 'kPa'
    URL: 'https://en.wikipedia.org/wiki/Compressive_strength'
    Description: "Compressive strength in [FreeCAD Pressure unit]"

Plutôt que d'un grand fichier de définition monolithique, les propriétés sont granulaires, généralement axées sur une tâche spécifique. Les modèles se divisent en deux catégories de base :

Chaque modèle possède un identifiant unique, ou UUID, qui est utilisé pour le référencer en interne. La cohérence de cet UUID est importante, car le modifier pour un document peut également affecter d'autres documents. En règle générale, les ajouts à la définition ne nécessitent pas de changement d'identifiant, car ils peuvent toujours être utilisés dans d'autres documents, mais les changements de valeur nécessiteraient un nouvel UUID.

Une URL facultative peut renvoyer vers une description détaillée de la propriété du matériau décrite. Étant donné qu'il s'agit d'une description de la propriété et non du matériau lui-même, elle doit être assez générique à ce stade. Une description plus courte, généralement d'une ou deux lignes, peut également être incluse dans la description du modèle.

Chaque document peut également inclure un DOI (Digital Object Identifier) qui renvoie, via https://www.doi.org/, à une publication scientifique ou à un élément similaire présentant un intérêt.

Héritage

L'héritage est une nouvelle fonction. Il existe deux principaux cas d'utilisation.

Un cas d'utilisation consiste à offrir la possibilité de modifier des modèles sans endommager d'autres documents. Par exemple, dans les cas où un type de propriété est différent, vous pouvez définir un modèle de propriété dérivé qui ne modifie que cette propriété spécifique sans endommager les documents existants qui y font référence.

Un deuxième cas d'utilisation consiste à regrouper les propriétés de manière à pouvoir les rechercher. Par exemple, tous les objets physiques ont une densité, et dans de nombreux cas, ce sera la seule information disponible pour ce matériau. Dans les cas où les propriétés d'élasticité linéaire sont disponibles, nous souhaiterions également les inclure. Dans un autre exemple où l'élasticité est différente selon les directions, comme le bois, nous pouvons définir un autre modèle dérivé de la densité. Les informations ne sont pas dupliquées dans les trois modèles de propriétés. De plus, nous pouvons effectuer une recherche sur les matériaux qui ont la propriété de densité et renvoyer les trois modèles.

L'exemple ci-dessus hérite de deux autres définitions de propriétés. Pour ce faire, il spécifie le mot-clé « Inherits » suivi d'une liste des noms et identifiants des modèles. S'il n'y a pas d'héritage, cette section peut être omise.

Propriétés

Les propriétés sont définies en fournissant le nom de la propriété, suivi d'une série de descripteurs. Le descripteur « Type » est toujours obligatoire. Les autres descripteurs ne sont obligatoires que pour compléter les informations relatives au type. L'URL et la description sont facultatives, mais recommandées dans la mesure du possible.

Descripteurs de propriété
Name Description
Type Type de propriété. Voir la section suivante.
Columns Colonnes dans des tableaux 2D ou 3D. Voir la description ci-dessous.
Units Unités associées au type Quantity.
URL Lien vers une description détaillée de la propriété.
Description Brève description de la propriété.

Types de propriétés

Types de propriétés
Type Name Description
String Chaîne de caractères.
Integer Un entier non signé.
Float Un nombre à virgule flottante.
URL Une URL telle que https://www.freecad.org.
Quantity Une quantité FreeCAD qui comprend une valeur numérique à virgule flottante et des unités appropriées à la propriété.
Color Une chaîne sous la forme (r,g,b,a) ou (r,g,b) où r=rouge, g=vert, b=bleu, a=alpha sous forme de valeurs à virgule flottante comprises entre 0 et 1.
File Chemin d'accès à un fichier.
FileList Une liste de chemins d'accès à des fichiers. Voir la description ci-dessous.
Image Fichier image intégré enregistré au format Base64. Cela peut entraîner un fichier de carte de matériau très volumineux.
ImageList Une liste de fichiers image intégrés enregistrés au format Base64. Cela peut entraîner un fichier de carte de matériau très volumineux. Voir la description ci-dessous.
List Liste de valeurs de chaîne.
MultiLineString Chaîne de caractères s'étendant sur plusieurs lignes.
2DArray Tableau à deux dimensions. Voir la description ci-dessous.
3DArray Tableau à trois dimensions. Voir la description ci-dessous.

Listes

Il existe trois types de listes : « List », « FileList » et « ImageList ». En réalité, les trois sont identiques, à l'exception du fait qu'elles utilisent des éditeurs différents. Pour « FileList », chaque entrée dispose d'un sélecteur de fichiers. De même, « ImageList » ouvre l'éditeur d'images. « ImageList » se distingue par le fait qu'il s'agit d'une représentation sous forme de chaîne très longue d'une image et qu'elle peut générer des fichiers de cartes de matériel extrêmement volumineux. À utiliser avec précaution.

Tableaux 2D

Les tableaux ont certaines propriétés uniques par rapport aux autres types de propriétés. Chaque colonne du tableau doit être décrite, ce qui nécessite l'ajout de la propriété « Columns ». La propriété « Columns » est alors une liste de propriétés décrivant chaque colonne.

Les tableaux 2D ont au minimum 2 colonnes et ne prennent en charge que le type de propriété « Quantity ». Cela pourrait être étendu à d'autres types de propriétés à l'avenir.

Les valeurs dans le tableau sont spécifiées en fournissant une valeur à partir de la première colonne.

TestArray2D3Column:
  Type: '2DArray'
  Columns:
    Temperature:
      Type: 'Quantity'
      Units: 'C'
      URL: ''
      Description: "Temperature"
    Density:
      Type: 'Quantity'
      Units: 'kg/m^3'
      URL: 'https://en.wikipedia.org/wiki/Density'
      Description: "Density in [FreeCAD Density unit]"
    InitialYieldStress:
      Type: 'Quantity'
      Units: 'kPa'
      URL: ''
      Description: >
        Saturation stress for Voce isotropic hardening [FreeCAD Pressure unit]
  URL: ''
  Description: >
    2 Dimensional array showing density and initial yield stress with temperature

Tableaux 3D

Les tableaux 3D sont similaires dans leur implémentation aux tableaux 2D décrits dans les sections précédentes. Il existe un mot-clé « Columns » suivi d'une liste de propriétés pour décrire les colonnes. La première colonne décrit la profondeur ou la troisième dimension du tableau, les colonnes restantes décrivant les colonnes restantes. Cela peut être considéré comme une liste indexée de tableaux à deux dimensions.

Étant donné qu'un tableau à deux dimensions nécessite au minimum deux dimensions, cela nécessitera au minimum trois colonnes.

Pour accéder aux valeurs du tableau, il faut d'abord spécifier la profondeur, puis la valeur de la première colonne du tableau 2D (ici, la deuxième colonne).

TestArray3D:
  Type: '3DArray'
  Columns:
    Temperature:
      Type: 'Quantity'
      Units: 'C'
      URL: ''
      Description: "Temperature"
    Stress:
      Type: 'Quantity'
      Units: 'MPa'
      URL: ''
      Description: "Stress"
    Strain:
      Type: 'Quantity'
      Units: 'MPa'
      URL: ''
      Description: "Strain"
  URL: ''
  Description: >
    3 Dimensional array showing stress and strain as
    a function of temperature

Remarque concernant les tableaux

Il s'agit d'une nouvelle fonction qui n'était pas disponible auparavant. De nombreuses fonctions qui ne sont pas encore implémentées pourraient être ajoutées à l'avenir. Par exemple, les tableaux contenant des colonnes de chaînes de caractères pourraient s'avérer utiles, mais ils ne sont pas encore implémentés.

L'interpolation est une fonction importante qui n'est actuellement pas implémentée. Par exemple, un tableau dont les valeurs d'entrée des lignes sont 1 et 2 ne renverra que des correspondances exactes. Ainsi, une recherche de 1.5 renverra une erreur. À l'avenir, les tableaux détermineront une valeur approximative en interpolant à partir des données disponibles.

Base de données des matériaux

Étant donné que la norme ci-dessus est mise en œuvre, il ne serait pas logique de stocker toutes les propriétés à plusieurs reprises dans les objets. En gros, nous pouvons créer une base de données de matériaux avec le nom comme clé primaire. Ainsi, si vous n'avez pas d'exigences particulières pour votre matériau, il vous suffit de définir par exemple Name=Steel, et FreeCAD peut récupérer toutes les propriétés à partir de cette base de données. Chaque propriété supplémentaire que vous définissez dans la carte remplace celle de la base de données.

À l'avenir, nous pourrons héberger cette base de données quelque part sur le web et constituer une base de données générale open source sur les matériaux.

Pour l'instant, j'envisage une base de données compilée dans un mini-ensemble de données contenant un ensemble de matériaux « de base » et leurs propriétés fondamentales, ainsi qu'une version complète basée sur SQLite.

Material.py

Étant donné que la gestion des propriétés des matériaux est un travail fastidieux, nous devrions implémenter un module frontal Python appelé Material.py [source]. Ce sera l'endroit où implémenter toutes sortes de méthodes d'aide pour la gestion des matériaux.

Le module doit être implémenté de manière à pouvoir fonctionner dans FreeCAD ou de manière autonome en ligne de commande (la carte des propriétés des matériaux doit être fournie sous forme de carte Python).

Format de fichier de jeu de matériau de FreeCAD

Travailler avec des matériaux implique souvent d'importer/exporter des définitions de matériaux. Un format de fichier est donc nécessaire. Comme nous n'avons qu'un format clé/valeur, nous pouvons utiliser un format de fichier simple et facile à lire et à analyser. C'est pourquoi le format INI a été choisi. Il est normalisé et il existe déjà des analyseurs disponibles. Par exemple, le module d'analyseur de configuration en Python.

Chaque définition de matière réside dans un fichier avec extension .FCMat. Certains de ces fichiers font partie du source de FreeCAD et sont compilés dans le fichier binaire. Il s'agit de sauver des dépenses dans la distribution et l'accès. Mais les fichiers peuvent aussi être placés et répartis à différents endroits pour accepter les autres définitions de matériaux non standards.

Exemple de fichier .FCMat

; last modified 1 April 2001 by John Doe

Name=Steel_Cast
Father=Steel
Source=Some material book everyone knows (or not); Some comment

[EN10027]
; steel standard EN 10027-1
Name=S235JR+AR

[Graphic]
EmissiveColor = 255,255,255

Propriétés des matériaux

Voici la description des propriétés convenues pour les matériaux. N'hésitez pas à ajouter une sous-section pour les propriétés des matériaux relevant de votre domaine d'expertise.

Général

Propriétés générales du matériau
Nom de la propriété Description Unité/Type de données
Name Nom unique de la propriété, conformément aux règles décrites ci-dessus Chaîne ASCII 7 bits
Father Nom du groupe de matériaux auquel appartient ce matériau. S'il est défini, ce matériau hérite de toutes les propriétés du père. Ainsi, s'il n'est pas défini, les propriétés du père seront utilisées. Chaîne ASCII 7 bits
Description Espace réservé pour une description plus longue du matériau Chaîne ASCII 7 bits
SpecificWeight Poids spécifique (également appelé poids unitaire) est le poids par unité de volume d'un matériau. Voir : Poids spécifique N/m^3
Vendor Spécifie la marque ou le fournisseur du matériau Chaîne ASCII 7 bits
ProductURL URL où trouver plus d'informations sur le matériau Chaîne ASCII 7 bits
SpecificPrice Prix unitaire de ce matériau. Les unités peuvent varier considérablement (USD/m 3, EUR/pièce, etc.) Chaîne ASCII 7 bits

À faire : ajouter certaines propriétés avec un système de commandes de matériaux (métal, alliage, minéral, bois...)

Mécanique

Propriétés des matériaux utilisés en génie mécanique ou en génie civil
Nom de la propriété Description Unité/Type de données
Young's Modulus Le module d'Young, également appelé module de traction ou module d'élasticité, est une mesure de la rigidité d'un matériau élastique et une quantité utilisée pour caractériser les matériaux. Voir : Module d'Young N/(mm^2) (MPa)
Poisson's Ratio Contraction latérale des matériaux sous tension exprimée en fraction de leur allongement. Voir : Coefficient de Poisson sans dimension (-)
Yield Strength Contrainte à laquelle un matériau ductile (comme l'acier) commence à se déformer de manière plastique (irréversible). Voir : Limite d'élasticité N/(mm^2) (MPa)
Ultimate Tensile Strength (UTS) Contrainte à laquelle le matériau se rompt. Pour les matériaux ductiles, cela peut se produire après une déformation plastique importante (voir Limite d'élasticité). Pour les matériaux fragiles, la limite d'élasticité et la résistance à la traction maximale coïncident. Voir : UTS N/(mm^2) (MPa)
Yield Points Utilisés dans un objet matériau non linéaire FEM pour décrire une courbe de contrainte-déformation uniaxiale ductile d'un matériau. Les valeurs sont saisies sous forme de tuples (contrainte d'élasticité, déformation plastique), où la première combinaison est (limite d'élasticité, 0) et la dernière (limite de rupture, déformation de rupture). Voir : Écrouissage (N/(mm^2) (MPa), sans dimension (-)
Uniaxial Compressive Strength (FCK) La résistance à la compression du béton, définie comme la résistance d'un cube de 150 mm testé pendant 28 jours. Voir FCK N/(mm^2) (MPa)
Friction Angle (PHI) Angle de frottement interne d'un matériau granulaire tel que le sable ou le béton, utilisé dans le critère de rupture de Mohr-Coulomb. Voir PHI °
Hardness Mesure de la résistance du matériau aux déformations plastiques (permanentes) localisées causées par l'indentation (pression) ou le rayage (abrasion). Voir Dureté pas d'unité dédiée dans FreeCAD
EN-10027-1 Dans le cas des matériaux en acier, les types d'acier tels que définis dans la norme européenne n° 10027-1. chaîne ASCII 7 bits

À faire : ajouter encore des propriétés requises pour la conception mécanique.

Apparence

Cette section définit les propriétés des matériaux liées à leur apparence visuelle.

Apparence visuelle
Nom de la propriété Description Unité/Type de données
AmbientColor Couleur ambiante dans le modèle de couleur de Coin3D flottant,flottant,flottant plage : 0,0-1,0
DiffuseColor Couleur diffuse dans le modèle de couleur de Coin3D flottant,flottant,flottant plage : 0,0-1,0
SpecularColor Couleur spéculaire dans le modèle de couleur de Coin3D flottant,flottant,flottant plage : 0,0-1,0
EmissiveColor Couleur émissive dans le modèle de couleur de Coin3D flottant,flottant,flottant plage : 0,0-1,0
SectionColor Couleur affichée lorsque le matériau est coupé dans le modèle de couleur de Coin3D flottant,flottant,flottant plage : 0,0-1,0
Shininess Couleur ambiante dans le modèle de couleur de Coin3D flottant plage : 0,0-1,0
Transparency Couleur ambiante dans le modèle de couleurs de Coin3D flottant plage : 0,0-1,0
VertxShader Programme de shader des sommets tel que défini dans le GLSL chaîne multiligne ASCII 7 bits
FragmentShader Programme de shader des fragments tel que défini dans le GLSL chaîne multiligne ASCII 7 bits

Thermique

Propriétés thermiques
Nom de la propriété Description Unité/Type de données
ThermalConductivity La conductivité thermique (coefficient R ou lambda) indiquant la capacité du matériau à transférer la chaleur. W/(m*K)
ThermalExpansionCoefficient Le coefficient de dilatation thermique décrivant l'augmentation de taille du matériau due à une augmentation de la température. µm/(m*K)
SpecificHeat La capacité thermique spécifique indiquant la quantité de chaleur nécessaire pour augmenter la température d'une unité de masse du matériau d'une unité. J/(kg*K)

Architecture et BIM

Propriétés des matériaux utilisés dans la conception architecturale
Nom de la propriété Description Unité/Type de données
StandardCodeXXXX Où XXXX est le nom de la norme (par exemple, tiré de le dépôt des normes de BlenderBIM). Par exemple, StandardCodeUniclass2. La valeur est le code spécifique de ce matériau dans la norme donnée. Cette propriété peut apparaître plusieurs fois, chacune avec un code de norme différent chaîne ASCII 7 bits
FireStandard La norme de résistance au feu utilisée dans le matériau chaîne ASCII 7 bits
FireClass La classe de résistance au feu du matériau dans la norme ci-dessus chaîne ASCII 7 bits
SoundTransmissionClass La classe de transmission acoustique de ce matériau chaîne ASCII 7 bits
Finish Le type de finition/revêtement de ce matériau chaîne ASCII 7 bits
Color La spécification de la couleur de ce matériau. Il ne s'agit pas nécessairement de la couleur à afficher dans la fenêtre d'affichage, mais cela peut être, par exemple, le nom de la couleur spécifié dans le catalogue du fournisseur chaîne ASCII 7 bits
UnitsArea Le nombre d'unités de ce matériau nécessaires pour remplir une certaine surface. Par exemple, dans le cas d'une brique, 45 briques/m² unités/m^2

À faire