Material Workbench/fr

Icône de l'atelier Material

Introduction

introduit dans la version 1.0

L'atelier Material gère le système des matériaux de FreeCAD.

Outils

Outils connexes

Bien qu'ils ne soient pas fournis par l'atelier Material, ces outils liés aux matériaux sont inclus dans le noyau de FreeCAD et peuvent être utilisés sans charger l'atelier :

Préférences

Travailler avec des matériaux

Ce guide explique les concepts fondamentaux et les workflows (flux de travail) pour utiliser le système de matériaux dans FreeCAD. Il couvre les différents outils, propriétés et détails techniques clés pour une utilisation interactive et scriptée.

Outils matériaux

Éditeur de matériaux

Sélecteur de matériaux

Propriétés physiques vs propriétés esthétiques

Dans FreeCAD, un matériau est défini par deux ensembles distincts de propriétés :

Un matériau n'est pas tenu de posséder les deux. Certains matériaux peuvent être définis uniquement à des fins d'analyse (avec uniquement des propriétés physiques), tandis que d'autres peuvent être définis uniquement à des fins de visualisation (avec uniquement des propriétés d'apparence).

Remplacer l'apparence du matériau

L'apparence finale d'un objet est déterminée par une hiérarchie. Les propriétés visuelles définies dans un matériau peuvent être remplacées par des paramètres locaux sur l'objet lui-même.

Propriétés

Lorsque vous attribuez un matériau, FreeCAD relie les données à l'objet et à son fournisseur de vue à l'aide de deux propriétés.

Expressions

Vous pouvez accéder aux valeurs des propriétés des matériaux à l'aide d'expressions, ce qui est particulièrement puissant dans l'atelier Spreadsheet. Pour vous assurer d'obtenir une quantité numérique utilisable, plutôt qu'une chaîne de texte, vous devez utiliser le dictionnaire PropertyObjects.

=<<MyBody>>.ShapeMaterial.PhysicalProperties[<<Density>>]
→ Renvoie "7850 kg/m^3"
=<<MyBody>>.ShapeMaterial.PropertyObjects[<<Density>>].Value
→ Renvoie un objet Quantity que la feuille de calcul peut utiliser numériquement.
Si cette valeur se trouve dans la cellule A1 de votre feuille de calcul, vous pouvez alors écrire une formule dans la cellule A2 telle que = A1 * 10, et elle fonctionnera correctement.

Scriptage

Vous pouvez obtenir et définir les propriétés des matériaux à l'aide de scripts Python. Les principales méthodes sont .getPhysicalValue() et .setPhysicalValue().

import FreeCAD
import FreeCADGui

# Get a reference to your object (e.g., a PartDesign Body)
obj = App.ActiveDocument.getObject("Body")

# --- Check for and get a property ---
if obj.ShapeMaterial.hasPhysicalProperty("Density"):
    
    # Get the value. This returns a FreeCAD.Quantity object.
    density_quantity = obj.ShapeMaterial.getPhysicalValue("Density")
    
    print(f"The material is: {obj.ShapeMaterial.Name}")
    print(f"The density is: {density_quantity}")
    print(f"Numerical value: {density_quantity.Value}")

else:
    print("The selected material does not have a 'Density' property.")


# --- Set a property ---
# The value can be a string with units or a FreeCAD.Quantity object.
try:
    obj.ShapeMaterial.setPhysicalValue("Density", "8000 kg/m^3")
    App.ActiveDocument.recompute()
    print("Density successfully updated.")

except Exception as e:
    print(f"Failed to set property: {e}")