Skip to main content

Demir Yilmaz

Séance 1 (16/12/2025): Aston Martin DB5, Découverte de l’impression 3D

Objectif du projet

 

L’objectif de cette première séance était de découvrir les bases de l’impression 3D à travers un projet volontairement simple. Le choix d’un objet déjà modélisé permettait de se concentrer sur l’utilisation du slicer, la compréhension des réglages essentiels et le déroulement d’une impression, sans aborder la modélisation 3D.

Description du projet

 

Le projet consiste à imprimer une voiture à partir d’un fichier STL existant. Ce type d’objet est bien adapté à une première approche, car il est rapide à imprimer, peu complexe et permet d’observer clairement la construction de l’objet couche par couche.

Matériel utilisé

  • Imprimante 3D: Original Prusa MK4S
  • Filament: PLA

Logiciels utilisés

  • Slicer : PrusaSlicer

Réglages d’impression

  • Matériau: Generic PLA
  • Hauteur de couche: 0,20mm SPEED (modified)
  • Remplissage: 15%
  • Température de la buse: 200 °C
  • Température du plateau: 60 °C
  • Vitesse d’impression: paramètres par défaut de PrusaSlicer
  • Supports: non
  • Adhérence au plateau: par défaut

Étapes de réalisation

 
  1. Recherche et récupération d’un fichier STL du voiture Aston Martin DB5
    • Vérifier l'échelle du modèle
    • Changement de l'orientation de l'objet et vérifier sa nouvelle position sur le plateau
  2. Importation du fichier STL dans PrusaSlicer
    • Vérification des réglages standards
    • Changement de quelques réglages pour diminuer le temps d'impression
  3. Génération du G-code
    • Lancement de l’impression 3D
    • Observation de la formation des couches et suivi du déroulement.
  4. Surveiller la première couche 
  5. Récupération du modèle après impression

Observations et anecdotes

Lors de l’impression, dû à la taille petite de la voiture, les lignes de la voiture ne sont pas assez fine et remarquable, ce qui affectue l'esthètique et finalement rend la voiture irréaliste. D'ailleurs, le fait de ne pas avoir ajouté du support sur les roues a affectué leurs états, avec les deux roues arrières qui ont effondrés.

Résultat

L’impression s’est déroulée correctement. La voiture cependant à son tour, a des problèmes au niveau des roues, faute à l'enlèvement du support. D'ailleurs, un infill de 20% au lieu du 15% choisi, aurais pû être une bonne choix au niveau de l'esthètique.

image_2026-02-24_193359376.pngimage.png

Apprentissages

  • Découverte des réglages de base dans PrusaSlicer
  • Compréhension de l’impact des paramètres d’impression
  • Importance de choisir un objet simple pour débuter en impression 3D

Séance 2 (09/01/2026): Conception d'objet difficile par OpenScad

Objectif du projet

 

Découvrir la modélisation paramétrique et la création d’objets 3D par code, permettant de modifier facilement la taille, l’épaisseur ou le motif d’un objet en ajustant quelques paramètres.

Description du projet

Un hand spinner, ou connu sous le nom de fidget spinner, avec son pièce du milieu qui quand serait prise à main, permettra la circulation de l'objet principale. 

image.png

Caractéristiques principales

Ce hand spinner est un objet de précision conçu pour une rotation fluide et équilibrée.

  • Équilibre parfait: Ses trois branches assurent une rotation stable et rapide.
  • Maintien central: Deux capsules s'emboîtent au milieu pour une prise en main facile. prolonger la durée de rotation.
  • Ajustement précis: Les dimensions sont optimisées pour accueillir un roulement standard.

Matériel utilisé

  • Imprimante 3D: Original Prusa MK4S
  • Filament: PLA 
 

Logiciels utilisés

  • Modélisation 3D: OpenSCAD
  • Slicer: PrusaSlicer

Outil de modélisation

Le modèle a été conçu avec le logiciel OpenSCAD, qui permet de créer des formes paramétriques à partir de code.

 

Les paramètres principaux définis sont:

  • Taille du roulement
  • Jeu d'assemblage
  • Épaisseur du spinner
  • Longueur des branches
  • Renfort du centre

Le code

/* ASSEMBLAGE FINAL : HAND SPINNER RÉALISTE
   Ce projet comprend le corps du spinner et son système d'axe central.
   Les capsules argentées intègrent un axe qui traverse le roulement.
*/

// --- PARAMÈTRES PRINCIPAUX ---
$fn = 80;                // Résolution des courbes (plus élevé = plus lisse)
bearing_diameter = 22;   // Diamètre standard d'un roulement 608
bearing_thickness = 7;   // Épaisseur standard du roulement
tolerance = 0.15;        // Jeu d'assemblage pour l'impression 3D
body_h = 7;              // Épaisseur du corps du spinner
arm_length = 30;         // Longueur des branches (centre vers extérieur)
hub_diameter = 32;       // Diamètre du renfort central

// --- VALEURS CALCULÉES ---
hole_d = bearing_diameter + (tolerance * 2); // Diamètre du trou ajusté

// --- MODULE 1 : CORPS DU SPINNER ---
module spinner_core() {
    difference() {
        // 1. FORME GLOBALE
        union() {
            // Moyeu central renforcé
            cylinder(d = hub_diameter, h = body_h, center = true);
            
            // Création des trois branches
            for (angle = [0 : 120 : 359]) {
                rotate([0, 0, angle]) {
                    // Bras de liaison
                    translate([arm_length/2, 0, 0])
                        cube([arm_length, 18, body_h], center = true);
                    
                    // Anneaux extérieurs (poids)
                    translate([arm_length, 0, 0])
                        cylinder(d = hole_d + 8, h = body_h, center = true);
                }
            }
        }

        // 2. SOUSTRACTIONS (LES TROUS)
        // Logement du roulement central
        cylinder(d = hole_d, h = body_h + 5, center = true);
        
        // Logements des roulements extérieurs
        for (angle = [0 : 120 : 359]) {
            rotate([0, 0, angle])
                translate([arm_length, 0, 0])
                    cylinder(d = hole_d, h = body_h + 5, center = true);
        }

        // 3. DÉCOUPES ESTHÉTIQUES (Allègement)
        for (angle = [60 : 120 : 359]) {
            rotate([0, 0, angle])
                translate([hub_diameter * 0.65, 0, 0])
                    scale([1.2, 0.8, 1]) // Forme ovale
                    cylinder(d = 10, h = body_h + 5, center = true);
        }
    }
}

// --- MODULE 2 : SYSTÈME DE MAINTIEN (CAPSULES) ---

// Capsule supérieure avec axe long
module cap_top() {
    union() {
        // Surface de contact pour le pouce
        difference() {
            cylinder(d = 20, h = 2);
            translate([0,0,3]) sphere(r=15); // Creux ergonomique
        }
        // Rebord d'appui sur le roulement
        translate([0,0,-1.5]) cylinder(d=12, h=1.5);
        
        // Axe central (traverse le roulement)
        translate([0, 0, -8]) cylinder(d = 7.7, h = 8); 
    }
}

// Capsule inférieure avec logement
module cap_bottom() {
    difference() {
        union() {
            // Surface de contact pour l'index
            difference() {
                cylinder(d = 20, h = 2);
                translate([0,0,3]) sphere(r=15); // Creux ergonomique
            }
            // Rebord d'appui sur le roulement
            translate([0,0,-1.5]) cylinder(d=12, h=1.5);
        }
        // Trou pour recevoir l'axe de la capsule supérieure
        translate([0, 0, -2]) cylinder(d = 7.9, h = 5);
    }
}

// --- ASSEMBLAGE FINAL ---

// Affichage du corps (en Or)
color("Gold") spinner_core();

// Affichage de la capsule supérieure (en Argent)
translate([0, 0, 3.5]) 
    color("Silver") cap_top();

// Affichage de la capsule inférieure (en Argent, inversée)
translate([0, 0, -3.5]) 
    rotate([180, 0, 0]) 
    color("Silver") cap_bottom();

Résultat

 

Le rendu nous propose une fidget spinner fonctionnel, quand tenu depuis le point central, puis le tournage de la pièce principale. Cette pièce est un démonstrateur de fabrication additive, car sa fonction dépend directement du point central qui est une diffèrente pièce. 

Apprentissages techniques

  • Découverte de la modélisation 3D par programmation avec OpenSCAD.
  • Compréhension du flux: code → STL → slicer → impression.

  • Importance du choix des paramètres pour obtenir un objet fonctionnel et agréable à utiliser.

Conclusion

Cette séance m’a permis de passer d'un modèle existant, à une conception innovante, exploitant les possibilités uniques de l’impression 3D. Elle démontre que l’impression 3D ne sert pas uniquement à reproduire des objets, mais à créer des formes impossibles autrement.

Séance 3 (16/01/2026): Modélisation d'un objet fonctionnel

Objectif du projet

L’objectif de cette séance est de :
  •  
  • Imprimer un objet fonctionnel et mécanique
  • Comprendre l’importance des tolérances dans les mécanismes imprimés
  • Analyser les causes d’un échec d’impression fonctionnel
  • Mettre en place des solutions de post-traitement pour rendre l’objet utilisable.

Description du projet

Ce projet consiste en la modélisation 3D d'un sablier fonctionnel conçu pour l'impression 3D, doté d'une structure renforcée par des colonnes de support latérales. Il intègre des réservoirs creux aux extrémités permettant de contenir du sable, ainsi que des couvercles amovibles pour un remplissage et une utilisation réelle. L'ensemble du code OpenSCAD a été optimisé pour garantir une étanchéité géométrique (manifold) et une solidité structurelle lors de la fabrication.

image.png

Matériel utilisé

  • Imprimante 3D: Original Prusa MK4S
  • Filament: PLA 
 

Logiciels utilisés

  • Modélisation 3D: OpenSCAD
  • Slicer: PrusaSlicer

Caractéristiques du code

  • Structure Monobloc: Un corps en sablier avec réservoirs intégrés et colonnes de soutien en tripode (120°) pour une stabilité maximale.
  • Conception Creuse: Utilisation de fonctions soustractives (difference) pour créer des parois de 2 mm, garantissant la rétention du sable.
  • Optimisation Impression 3D: Gestion des chevauchements (overlap) pour éviter les erreurs de tranchage et assurer une fusion parfaite des pièces.
  • Système Ouvert: Réservoirs percés au centre pour permettre l'écoulement du sable et le remplissage via des bouchons amovibles.
// --- RÉGLAGES DE RÉSOLUTION ---
$fn = 60; // Définit la finesse des arrondis (60 est un bon compromis vitesse/qualité)

// --- PARAMÈTRES GLOBAUX ---
h_totale = 70;      // Hauteur totale du corps en verre
r_base = 20;        // Rayon de la base du verre
epaisseur = 2;      // Épaisseur des parois (important pour la solidité)
passage = 5;        // Diamètre du goulot d'étranglement (passage du sable)
h_boite = 8;        // Hauteur des réservoirs aux extrémités
overlap = 0.05;     // Petit décalage pour fusionner les pièces (évite les erreurs de manifold)

// --- MODULE : GÉOMÉTRIE DU VERRE ---
// Crée deux cônes inversés qui se rejoignent au centre
module forme_sablier(r, h, p) {
    union() {
        // Cône supérieur : part du centre (p) vers le haut (r)
        translate([0, 0, h/2 - overlap])
            cylinder(r1 = p, r2 = r, h = h/2 + overlap);
        // Cône inférieur : part de la base (r) vers le centre (p)
        cylinder(r1 = r, r2 = p, h = h/2 + overlap);
    }
}

// --- ASSEMBLAGE FINAL ---
union() {
    // 1. LE CORPS EN VERRE CREUX
    difference() {
        // Forme extérieure pleine
        forme_sablier(r_base, h_totale, passage);
        
        // Forme intérieure soustraite (plus petite) pour créer le vide
        translate([0, 0, epaisseur])
            forme_sablier(r_base - epaisseur, h_totale - (epaisseur * 2), passage - (epaisseur/2));
    }

    // 2. LES RÉSERVOIRS (HAUT ET BAS)
    for (z = [0, h_totale]) {
        translate([0, 0, z])
        difference() {
            // Cylindre extérieur de la boîte
            cylinder(r = r_base + 4, h = h_boite, center = true);
            
            // Évidement pour stocker le sable (laisse un fond de protection)
            translate([0, 0, (z == 0 ? epaisseur : -epaisseur)]) 
                cylinder(r = r_base + 2, h = h_box, center = true);
            
            // Perçage central pour laisser couler le sable dans le verre
            cylinder(r = passage - 1, h = h_boite + 2, center = true);
        }
    }

    // 3. LES COLONNES DE SOUTIEN (TRIPODE)
    // Positionnées à 120° pour une stabilité maximale et un look esthétique
    for (a = [0, 120, 240]) {
        rotate([0, 0, a])
        translate([r_base + 2, 0, 0])
            cylinder(r = 2.5, h = h_totale);
    }
}

Paramètres d'Impression (Slicer)

Le modèle est conçu pour être imprimé sans supports.

 
  • Imprimante : Prusa MK4
  • Hauteur de couche: 0.15mm (Quality). Le 0.2mm est possible, mais le 0.15mm permet aux parois inclinées du sablier d'être plus lisses et plus étanches au sable
  • Remplissage (Infill): 15% Gyroid. Meilleur choix pour la structure interne des colonnes
  • Supports: OBLIGATOIRES (Partiels). Option "Supports sur le plateau uniquement" (Support on build plate only)

  • Adhérence : Brim de 5mm (indispensable car les 3 colonnes et la pointe du sablier ont peu de surface de contact)

  • Périmètre: 3

Résultat