Un modèle paramétrique, c'est quoi ?
Un fichier STL est figé : c'est une surface faite de triangles, à une taille donnée. Pour l'adapter, il faut le déformer, et les trous ronds deviennent ovales. Un modèle paramétrique est décrit par des règles : « une boîte de largeur par profondeur, avec des parois de 2 mm ». Changez la largeur, et tout le reste suit, parois et couvercle compris.
C'est idéal pour les objets qui doivent s'adapter à quelque chose d'existant : un tiroir, un câble, une vis, un appareil. Le catalogue de Modèles 3D en contient plusieurs, que vous réglez avec des curseurs :
Organiseur de tiroirPersonnalisable
Boîte de rangement avec couverclePersonnalisable
Étiquettes pour câblesPersonnalisable
Range-pilesPersonnalisableDémarrer avec OpenSCAD
OpenSCAD est un logiciel libre et gratuit, disponible pour Windows, macOS et Linux sur openscad.org. Sa fenêtre a trois zones : l'éditeur de code à gauche, l'aperçu 3D à droite et la console en bas.
- F5 affiche un aperçu rapide ;
- F6 calcule le modèle définitif ;
- Fichier, Exporter produit ensuite un STL ou un 3MF, à ouvrir dans votre trancheur.
Les unités sont libres, mais tout le monde travaille en millimètres, et les trancheurs aussi. Chaque instruction se termine par un point-virgule.
Les formes de base
Trois formes suffisent pour la plupart des objets utiles : le cube (en fait un pavé), le cylindre et la sphère. translate les déplace, rotate les fait tourner.
cube([40, 20, 10]); // largeur, profondeur, hauteur en mm
translate([60, 10, 0])
cylinder(h = 15, d = 20, $fn = 64); // hauteur et diamètre
translate([100, 10, 10])
sphere(d = 20, $fn = 64);$fn fixe le nombre de facettes d'une forme ronde. Avec la valeur par défaut, un petit cylindre sort très anguleux ; entre 48 et 96 facettes, il paraît lisse sans alourdir le calcul.
Combiner : ajouter, retirer
Toute la puissance d'OpenSCAD tient dans trois opérations : union() réunit des formes, difference() retire des formes à la première, intersection() ne garde que leur partie commune. Voici une plaque percée :
difference() {
cube([60, 40, 4]); // la plaque
translate([30, 20, -1])
cylinder(h = 6, d = 8, $fn = 48); // le trou, un peu plus haut que la plaque
}Remarquez que le cylindre dépasse la plaque en dessous et au-dessus (il commence à -1 et mesure 6 mm pour une plaque de 4). Sans ce débord, l'aperçu montre parfois une fine peau parasite à la surface : c'est l'erreur de débutant la plus courante.
Les variables
Remplacez les nombres par des noms, et la pièce devient réglable :
largeur = 60;
profondeur = 40;
epaisseur = 4;
trou = 8;
difference() {
cube([largeur, profondeur, epaisseur]);
translate([largeur / 2, profondeur / 2, -1])
cylinder(h = epaisseur + 2, d = trou, $fn = 48);
}Le trou reste centré quelle que soit la largeur, et il traverse toujours la plaque, parce que tout est calculé à partir des variables. Une particularité à connaître : dans OpenSCAD, une variable garde une seule valeur. Si vous l'affectez deux fois, c'est la dernière affectation qui compte, partout dans le fichier.
Répéter : modules et boucles
Un module est une forme réutilisable, avec ses propres paramètres. Une boucle for la répète. Voici une réglette avec cinq plots, pratique pour ranger des bobines ou des rouleaux de ruban :
module plot(d, h) {
cylinder(h = h, d = d, $fn = 32);
}
nombre = 5;
pas = 25;
cube([nombre * pas, 20, 3]);
for (i = [0 : nombre - 1])
translate([pas / 2 + i * pas, 10, 3]) plot(8, 20);Changez nombre et la base s'allonge d'elle-même. C'est exactement ainsi que fonctionnent nos range-piles et nos porte-outils : une grille calculée à partir du nombre de lignes et de colonnes.
Transformer les variables en curseurs
OpenSCAD comprend des commentaires spéciaux placés au bout d'une ligne de variable. Son panneau Customizer (menu Fenêtre ou Affichage, selon la version) les transforme en réglages, sans toucher au code :
/* [Dimensions] */
// Largeur intérieure, en millimètres.
largeur = 80; // [30:5:200]
// Hauteur intérieure.
hauteur = 40; // [15:120]
/* [Finition] */
coins = "arrondis"; // [droits, arrondis]
texte = "OUTILS";
avec_couvercle = true;
/* [Hidden] */
$fn = 48;// [15:120]: un curseur de 15 à 120 ;// [30:5:200]: un curseur de 30 à 200, par pas de 5 ;// [droits, arrondis]: une liste déroulante ;- une variable texte donne un champ de saisie, une variable
trueoufalseune case à cocher ; - le commentaire placé juste au-dessus d'une variable sert de description ;
/* [Dimensions] */ouvre un groupe de réglages, et/* [Hidden] */cache tout ce qui suit.
Le Customizer permet aussi d'enregistrer des jeux de réglages, pratique pour garder « tiroir de cuisine » et « tiroir du bureau » dans le même fichier.
Un exemple complet : la boîte avec couvercle
Voici une version simplifiée et commentée d'une boîte avec couvercle, dans l'esprit de celle du catalogue. La boîte et son couvercle sont posés côte à côte sur le plateau, sans supports.
/* [Dimensions intérieures] */
largeur = 80; // [30:5:200]
profondeur = 60; // [30:5:200]
hauteur = 40; // [15:5:120]
/* [Parois et couvercle] */
paroi = 2; // [1.2:0.2:4]
// Jeu entre couvercle et boîte : augmentez si le couvercle force.
jeu = 0.3; // [0.1:0.05:0.6]
/* [Hidden] */
fond = 1.6;
rebord = 6;
// La boîte : un bloc plein, moins l'intérieur.
difference() {
cube([largeur + 2 * paroi, profondeur + 2 * paroi, hauteur + fond]);
translate([paroi, paroi, fond]) cube([largeur, profondeur, hauteur + 1]);
}
// Le couvercle, posé à côté : une plaque et un rebord qui rentre dans la boîte.
translate([largeur + 2 * paroi + 10, 0, 0]) {
cube([largeur + 2 * paroi, profondeur + 2 * paroi, fond]);
translate([paroi + jeu, paroi + jeu, fond])
difference() {
cube([largeur - 2 * jeu, profondeur - 2 * jeu, rebord]);
translate([paroi, paroi, -1])
cube([largeur - 2 * jeu - 2 * paroi, profondeur - 2 * jeu - 2 * paroi, rebord + 2]);
}
}Le réglage le plus important est jeu : c'est l'espace laissé entre le rebord du couvercle et la paroi. Trop petit, le couvercle force ; trop grand, il flotte. Commencez à 0,3 mm et ajustez selon votre imprimante.
Dans Family Print Lab
Les pièces personnalisables de notre catalogue sont justement des fichiers OpenSCAD avec ces annotations. Dans Family Print Lab, elles s'ouvrent dans l'atelier OpenSCAD de l'application : chaque variable annotée apparaît sous forme de curseur et l'aperçu 3D se met à jour quand vous le bougez. Vous n'avez pas besoin de lire le code pour les utiliser ; il est là si vous voulez aller plus loin.
Pour les plus jeunes, le mode enfant va encore plus loin dans la simplicité : l'enfant choisit un prénom, une taille ou un dessin, et un adulte valide avant l'impression.
Bonnes pratiques
- Nommez vos variables en clair :
diametre_visplutôt qued2. Dans six mois, vous vous remercierez. - Donnez des bornes réalistes aux curseurs : un minimum trop bas produit des parois impossibles à imprimer.
- Testez les extrêmes : réglez chaque curseur au minimum puis au maximum, et vérifiez que la pièce reste cohérente.
- Prévoyez le jeu pour tout ce qui s'emboîte, et exposez-le comme un réglage : chaque imprimante est un peu différente.
- Pensez à l'impression : une face bien à plat sur le plateau, pas de surplomb au-delà d'environ 45 degrés si vous voulez éviter les supports.
- Précisez la licence si vous partagez votre fichier ; voir notre guide des licences. Et si vous voulez publier vos modèles paramétriques, proposez-les ici.








