FreeCAD 1.1.1 - Expressions et modèles paramétriques

Ce tutoriel explique comment construire un modèle réellement paramétrique dans FreeCAD 1.1.1.

L'objectif est d'obtenir un fichier dans lequel les dimensions importantes sont regroupées dans une feuille de paramètres. Modifier une seule valeur, par exemple le diamètre intérieur d'un tube à essai, provoque automatiquement la mise à jour du modèle 3D.

L'exemple utilisé est un bouchon destiné à un tube à essai, mais la méthode est applicable à pratiquement n'importe quelle pièce.


1. Principe général

Un modèle paramétrique peut être organisé ainsi :

Spreadsheet
    ↓
Paramètres
    ↓
Expressions
    ↓
Contraintes des esquisses
    ↓
Pad / Pocket / Revolution / etc.
    ↓
Modèle 3D

Au lieu d'écrire directement :

15.6 mm

dans une contrainte, on écrit par exemple :

<<Parametres>>.diametre_bouchon

La valeur réelle est alors stockée dans une feuille de calcul.


2. Créer la feuille de paramètres

Créer un nouveau document FreeCAD.

Puis sélectionner l'atelier :

Spreadsheet

Créer une nouvelle feuille de calcul.

Renommer son Label en :

Parametres

Le nom visible dans l'arborescence doit donc être :

Parametres

3. Créer les premiers paramètres

Créer le tableau suivant :

Cellule Nom Valeur
A1 Paramètre Valeur
A2 Diamètre intérieur tube 16 mm
A3 Jeu radial 0.20 mm
A4 Longueur insertion 12 mm
A5 Épaisseur paroi 1.2 mm
A6 Hauteur chambre 10 mm
A7 Largeur chambre 10 mm
A8 Diamètre bouchon formule
A9 Diamètre intérieur bouchon formule

Dans B2 :

16 mm

Dans B3 :

0.20 mm

Dans B4 :

12 mm

Dans B5 :

1.2 mm

Dans B6 :

10 mm

Dans B7 :

10 mm

4. Créer des alias

Les alias donnent un nom lisible aux cellules.

Au lieu d'utiliser :

Spreadsheet.B2

on pourra utiliser :

<<Parametres>>.diametre_tube

Pour créer un alias :

  1. sélectionner la cellule ;

  2. utiliser Spreadsheet → Set alias ;

  3. ou utiliser le raccourci :

Ctrl + Shift + A

Créer les alias suivants :

Cellule Alias
B2 diametre_tube
B3 jeu_radial
B4 longueur_insertion
B5 epaisseur_paroi
B6 hauteur_chambre
B7 largeur_chambre

Les alias ne doivent pas contenir d'espaces.

Préférer :

diametre_tube

à :

diamètre tube

Éviter également les alias très courts tels que :

A
W
m
s

car certains noms peuvent entrer en conflit avec les unités reconnues par FreeCAD.


5. Faire des calculs dans le Spreadsheet

Une formule dans une cellule de Spreadsheet commence par :

=

Dans B8, calculons le diamètre du bouchon.

On veut un jeu de 0.20 mm de chaque côté du bouchon :

=diametre_tube - 2 * jeu_radial

Avec :

diametre_tube = 16 mm
jeu_radial = 0.20 mm

on obtient :

15.6 mm

Attribuer ensuite à B8 l'alias :

diametre_bouchon

Dans B9, calculons le diamètre intérieur du bouchon :

=diametre_bouchon - 2 * epaisseur_paroi

Attribuer l'alias :

diametre_interieur

Le Spreadsheet devient donc approximativement :

A                              B
-----------------------------------------------------
Diamètre intérieur tube        16 mm
Jeu radial                     0.20 mm
Longueur insertion             12 mm
Épaisseur paroi                1.2 mm
Hauteur chambre                10 mm
Largeur chambre                10 mm
Diamètre bouchon               15.6 mm
Diamètre intérieur bouchon     13.2 mm

6. Expressions dans FreeCAD

Il faut distinguer deux cas.

Dans un Spreadsheet

Une formule commence par :

=

Exemple :

=diametre_tube - 2 * jeu_radial

Dans une propriété FreeCAD

Par exemple la longueur d'un Pad ou une contrainte Sketcher.

Cliquer sur le bouton f(x) ou appuyer sur :

=

FreeCAD ouvre alors l'éditeur d'expression.

Dans cet éditeur, saisir directement :

<<Parametres>>.diametre_bouchon

Il ne faut pas ajouter un deuxième = dans l'éditeur.


7. Créer une première pièce paramétrique

Passer dans :

Part Design

Créer :

Body

puis :

Sketch

sur le plan XY.

Dessiner un cercle centré sur l'origine.

Ajouter une contrainte de diamètre.

Au lieu de saisir :

15.6 mm

appuyer sur :

=

Dans l'éditeur d'expression saisir :

<<Parametres>>.diametre_bouchon

Valider.

Le diamètre du cercle dépend maintenant du Spreadsheet.


8. Extrusion paramétrique

Fermer l'esquisse.

Créer un :

Pad

Pour sa longueur, ouvrir l'éditeur d'expression avec =.

Saisir :

<<Parametres>>.longueur_insertion

Le Pad mesure maintenant automatiquement :

12 mm

si le Spreadsheet contient :

longueur_insertion = 12 mm

9. Tester le fonctionnement

Retourner dans :

Parametres

Modifier :

diametre_tube

de :

16 mm

vers :

18 mm

Le calcul devient automatiquement :

diametre_bouchon
=
18 mm - 2 × 0.20 mm
=
17.6 mm

Le Sketch puis le Pad doivent automatiquement changer de diamètre.

C'est le principe fondamental d'un modèle paramétrique.


10. Utiliser directement des calculs dans une propriété

On n'est pas obligé de créer une cellule pour chaque résultat.

On peut écrire directement dans une propriété :

<<Parametres>>.diametre_tube - 2 * <<Parametres>>.jeu_radial

Cependant, pour un modèle complexe, il est généralement plus lisible de mettre les calculs importants dans le Spreadsheet.

Par exemple :

diametre_bouchon
diametre_interieur
diametre_chambre
hauteur_totale
epaisseur_plancher

Le modèle devient ainsi beaucoup plus facile à comprendre.


11. Opérations mathématiques

Les opérateurs classiques sont disponibles :

+
-
*
/
^

Exemples :

=diametre_tube + 1 mm
=diametre_tube - 2 * jeu_radial
=diametre_tube / 2
=diametre_tube ^ 2

Les parenthèses permettent de contrôler l'ordre des opérations :

=(diametre_tube - 2 * jeu_radial) / 2

12. Fonctions utiles

FreeCAD dispose également de fonctions mathématiques.

Quelques fonctions courantes :

abs()
sqrt()
sin()
cos()
tan()
min()
max()
round()
floor()
ceil()

Exemples :

=sqrt(25 mm^2)
=max(diametre_tube - 0.4 mm; 10 mm)

Selon le contexte et les paramètres régionaux, le séparateur d'arguments peut apparaître différemment dans l'interface. L'autocomplétion de l'éditeur d'expression permet de vérifier la syntaxe acceptée.


13. Expressions conditionnelles

FreeCAD 1.1 permet également des expressions conditionnelles.

Syntaxe :

condition ? valeur_si_vrai : valeur_si_faux

Exemple :

diametre_tube > 20 mm ? 2 mm : 1.2 mm

Cela signifie :

si diametre_tube > 20 mm
    épaisseur = 2 mm
sinon
    épaisseur = 1.2 mm

On peut par exemple calculer automatiquement l'épaisseur du bouchon :

=diametre_tube >= 20 mm ? 1.6 mm : 1.2 mm

14. Référencer une propriété d'un objet

Les expressions ne sont pas limitées aux Spreadsheets.

On peut référencer une propriété d'un objet.

Par exemple :

Pad.Length

ou :

Box.Length

Avec un Label :

<<MonPad>>.Length

Pour la position d'un objet :

<<MonObjet>>.Placement.Base.x
<<MonObjet>>.Placement.Base.z

15. Nommer les contraintes d'une esquisse

Les contraintes peuvent elles aussi avoir un nom.

Supposons une esquisse appelée :

SketchBouchon

et une contrainte nommée :

DiametreExterieur

Depuis une autre propriété, elle peut être référencée avec :

<<SketchBouchon>>.Constraints.DiametreExterieur

Dans la même esquisse :

Constraints.DiametreExterieur

C'est beaucoup plus lisible qu'une référence par numéro telle que :

Constraints[7]

16. Exemple complet pour le bouchon de tube à essai

Pour un bouchon paramétrique destiné à l'élevage de fourmis, une feuille de paramètres pourrait ressembler à ceci :

Paramètre Valeur / formule Alias
Diamètre intérieur tube 16 mm diametre_tube
Jeu radial 0.20 mm jeu_radial
Diamètre bouchon =diametre_tube - 2 * jeu_radial diametre_bouchon
Longueur insertion 12 mm longueur_insertion
Épaisseur paroi 1.2 mm epaisseur_paroi
Diamètre intérieur =diametre_bouchon - 2 * epaisseur_paroi diametre_interieur
Hauteur chambre 10 mm hauteur_chambre
Largeur chambre 10 mm largeur_chambre
Épaisseur plancher 1.2 mm epaisseur_plancher
Épaisseur volet 0.8 mm epaisseur_volet
Jeu volet 0.25 mm jeu_volet
Largeur volet =largeur_chambre + 2 mm largeur_volet
Diamètre collerette =diametre_tube + 3 mm diametre_collerette

Ainsi, pour adapter tout le bouchon à un autre tube, il suffit principalement de modifier :

diametre_tube

Par exemple :

14 mm
16 mm
18 mm
20 mm

Toutes les dimensions dépendantes sont recalculées.


17. Organiser les paramètres

Une bonne feuille de paramètres peut être organisée en plusieurs sections.

PARAMÈTRES TUBE

Diamètre tube
Jeu radial


BOUCHON

Diamètre bouchon
Longueur insertion
Épaisseur paroi


CHAMBRE DE NOURRISSAGE

Largeur chambre
Hauteur chambre
Épaisseur plancher


VOLET

Largeur volet
Épaisseur volet
Jeu volet


COLLERETTE

Diamètre collerette
Hauteur collerette

Une convention pratique consiste à réserver :

Colonne A = description
Colonne B = valeur
Colonne C = commentaire

et à placer les alias sur les cellules de la colonne B.


18. Valeurs d'entrée et valeurs calculées

Il est utile de distinguer deux types de paramètres.

Valeurs saisies par l'utilisateur

Par exemple :

diametre_tube = 16 mm
jeu_radial = 0.20 mm
longueur_insertion = 12 mm
epaisseur_paroi = 1.2 mm

Valeurs calculées

Par exemple :

diametre_bouchon
diametre_interieur
diametre_collerette
largeur_volet

Cette distinction évite de modifier accidentellement une valeur qui devrait être calculée.


19. Les unités sont importantes

Écrire de préférence :

16 mm

et non :

16

De même :

0.2 mm

est préférable à :

0.2

FreeCAD effectue une analyse dimensionnelle des expressions.

Par exemple :

10 mm + 2 mm

est cohérent.

En revanche une expression mélangeant incorrectement une longueur et un nombre sans dimension peut provoquer une erreur.


20. Éviter les dépendances circulaires

Il faut éviter une chaîne de dépendances comme :

Spreadsheet
    ↓
Pad
    ↓
Spreadsheet

Par exemple :

Spreadsheet.diametre
    ↓
Pad

puis vouloir récupérer :

Pad.Shape.Volume

dans le même Spreadsheet qui pilote déjà le Pad peut créer une dépendance circulaire.

Pour les modèles complexes, une architecture plus propre est :

Spreadsheet Parametres
        ↓
      Modèle
        ↓
Spreadsheet Resultats

Parametres pilote la géométrie.

Resultats sert éventuellement à afficher des volumes, surfaces ou autres résultats calculés.


21. Bonnes pratiques pour un modèle robuste

Centraliser les dimensions importantes

Éviter de disperser des valeurs numériques comme :

1.2 mm
0.25 mm
15.6 mm

dans des dizaines de fonctions.

Créer plutôt :

epaisseur_paroi
jeu_volet
diametre_bouchon

Utiliser des alias descriptifs

Préférer :

diametre_bouchon

à :

d1

Conserver les unités

Préférer :

0.25 mm

à :

0.25

Utiliser les contraintes géométriques

Dans Sketcher, utiliser autant que possible :

Horizontal
Vertical
Coincident
Concentric
Equal
Symmetric

puis ne paramétrer que les dimensions réellement nécessaires.

Éviter de contraindre inutilement

Une esquisse doit être complètement définie, mais pas surcontrainte.

Préférer les plans de référence

Lorsque c'est possible, créer les esquisses sur :

XY_Plane
XZ_Plane
YZ_Plane

ou sur des Datum Planes plutôt que de dépendre systématiquement d'une face générée par une opération précédente.

Cela rend généralement le modèle plus résistant aux changements importants de géométrie.


22. Déboguer une expression

Si une expression devient rouge ou affiche une erreur, vérifier dans cet ordre :

Nom du Spreadsheet

Exemple :

<<Parametres>>

Alias

Vérifier :

diametre_bouchon

et non :

diametre bouchon

Unités

Vérifier par exemple :

0.2 mm

au lieu de :

0.2

si l'expression attend une longueur.

Dépendance circulaire

Vérifier qu'un objet ne dépend pas indirectement de lui-même.

Résultat de l'expression

L'éditeur d'expression affiche normalement le résultat calculé avant validation.

Par exemple :

<<Parametres>>.diametre_tube - 2 * <<Parametres>>.jeu_radial

doit produire quelque chose comme :

15.60 mm

avant même de cliquer sur OK.


23. Expressions utiles — antisèche

Référence à un paramètre

<<Parametres>>.diametre_tube

Soustraction

<<Parametres>>.diametre_tube - 0.4 mm

Utilisation de deux paramètres

<<Parametres>>.diametre_tube - 2 * <<Parametres>>.jeu_radial

Division par deux

<<Parametres>>.diametre_bouchon / 2

Épaisseur de chaque côté

(<<Parametres>>.diametre_exterieur - <<Parametres>>.diametre_interieur) / 2

Condition

<<Parametres>>.diametre_tube >= 20 mm ? 1.6 mm : 1.2 mm

Propriété d'un Pad

Pad.Length

Contrainte nommée

<<SketchBouchon>>.Constraints.DiametreExterieur

Position Z

<<MonObjet>>.Placement.Base.z

24. Architecture recommandée

Pour une pièce un peu complexe comme le bouchon-sas :

Document
│
├── Parametres
│
├── Body_Bouchon
│   ├── Sketch_Profil
│   ├── Pad_Base
│   ├── Sketch_Chambre
│   ├── Pocket_Chambre
│   ├── Sketch_Passage
│   └── Pocket_Passage
│
├── Body_Volet
│   ├── Sketch_Volet
│   └── Pad_Volet
│
└── Body_Trappe
    ├── Sketch_Trappe
    └── Pad_Trappe

Le Spreadsheet Parametres devient la source commune de toutes les dimensions.

Par exemple :

Body_Bouchon
    ← epaisseur_paroi
    ← diametre_bouchon
    ← longueur_insertion

Body_Volet
    ← largeur_volet
    ← epaisseur_volet
    ← jeu_volet

Body_Trappe
    ← largeur_chambre
    ← epaisseur_paroi

25. Résultat

Une fois cette méthode mise en place, adapter une pièce ne demande plus de modifier chaque esquisse.

Il suffit par exemple de passer :

diametre_tube = 16 mm

à :

diametre_tube = 18 mm

FreeCAD recalcule ensuite :

diametre_bouchon
diametre_interieur
diametre_collerette
largeur_volet

puis met à jour les esquisses et les opérations Part Design.

C'est cette séparation entre paramètres, formules et géométrie qui permet de construire des fichiers FreeCAD véritablement paramétriques et réutilisables.


Revision #1
Created 21 September 2026 15:57:22 by DarkMat
Updated 21 September 2026 15:59:38 by DarkMat