Skip to main content

Angel CHEN - Petite Fusée Fantaisiste

Informations

  • Ange Chen 
  • angel.chen@etu.sorbonne-universite.fr
  • M1 Management de l'innovation 
  • 09/01/2026 - 01/07/2026

Contexte

Dans le cadre de notre UE Processus d'Innovation, il nous a été demandé de créer un objet en impression 3D pour nous rencontrer avec la CAO via OpenScad. 

Objectifs

Modéliser et Imprimer une petite fusée avec un style fantaisiste comme dans les dessins animés. Avec la possibilité de visser la pointe et y ranger des objets.

      Capture d'écran 2026-02-07 à 17.29.55.png      Capture d'écran 2026-02-07 à 17.28.21.png.      Capture d'écran 2026-02-07 à 20.54.23.png

Matériel

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

Machines utilisées

  • Logiciel de découpe : PrusaSlicer

Construction

  • Le Code

Tout d'abord mon code :

J'ai d'abord créer les formes que je voulais séparément et puis je les ai assemblées. J'ai donc joué sur l'échelle et la position de chaque morceaux, d'où la forme de mon code.

// Changement de la résolution du modèle
$fa = 1;
$fs = 0.4;
$fn = 200;

//forme de la vis
module vis_simple(diametre=10, longueur=30, pas=5) {
    rayon = diametre / 2;
    nb_tours = longueur / pas;
    
    union() {
        // 1. L'axe central
        cylinder(r=rayon - 1, h=longueur);
        
        // 2. Le filetage
        linear_extrude(height=longueur, twist=-360 * nb_tours)
        translate([rayon - 1.5, 0, 0])
        circle(r=1.5, $fn=30);
    }
}


//Nez de la fusée
module nez() {
    color("Red")
    //permet d'avoir le nez au dessus de la fusée
    translate([0, 0, 58])
//    translate([0, 35, 9.8])
    
    difference() {
        union() {
            // Le Haut (Cône + Antenne)
            cylinder(h=15.1, r1=5.8, r2=0.7);
            
            translate([0, 0, 15]) 
            cylinder(h=4, r=0.7);
            
            translate([0, 0, 19]) 
            sphere(r=1);
            
            // Le Bas (La vis)
            rotate([180, 0, 0])
            vis_simple(diametre=9.4, longueur=9.8, pas=4);
        }
        //Trou
        rotate([180, 0, 0])
        translate([0, 0, -1])
        cylinder(h=20, r=3);
    }
}

nez();


// Corps de la fusée
module fuselage() {
    color("White")
    union() {
        hull() {
            // Diamètre 1 (base au sol)
            translate([0, 0, 0])
            cylinder(h=0.1, d=15); 
            
            // Diamètre 2 (intersection)
            translate([0, 0, 15])
            cylinder(h=0.1, d=20);
            
            //création du haut du fuselatge qui est arrondi)
            difference() {
                scale([0.69, 0.69, 4])
                sphere(r=15); 

                translate([-50, -50, 50]) 
                cube([100, 100, 100]);

                translate([-50, -50, 15 - 100])
                cube([100, 100, 100]);
            }
        }
    }
}

module trou(){
    difference(){
            fuselage();
            
            union() {
                translate([0, 0, 40])
                vis_simple(diametre=10, longueur=11, pas=4);
            
                translate([0, 0, 0])
                cylinder(h=40.1, d=8);  
                }
        }
}

module hublot() {
    translate([7.3, 0, 35]) 
    
    // J'ai ajouté un peu d'angle (12 degrés) car le fuselage est en pente !
    rotate([0, 83, 0]) { 
        
        // Le cadre gris
        color("Gray")
        rotate_extrude() 
        translate([4, 0, 0]) 
        circle(r=1.5);
        
        // La vitre bleue
        color("DodgerBlue")
        scale([1, 1, 0.5]) 
        sphere(r=4);
    }
}

module ailerons() {
    color("Red")
    // On répète 3 fois autour de l'axe
    for(i = [60 : 120 : 360]) {
        rotate([0, 0, i])
        translate([8, 0, 10])
        rotate([90, 0, 0])    // On met à plat verticalement
        
        linear_extrude(height=3, center=true)
        
        //Pour la forme
        polygon(points=[
            [0, -6],
            [2, 5], 
            [10, 0],   
            [14, -18],   
            [10, -18]
        ]);
    }
}


module moteur() {
    translate([0,0,-10.3])
    scale([0.86,0.86,0.86])
    union(){
    //Bague métalique
    color("Silver")
    translate([0, 0, 12])
    difference() {
        // Forme extérieure arrondie
        rotate_extrude()
        translate([6, 0, 0]) // Rayon de l'anneau
        circle(r=2.5);
        
        translate([0, 0, 2.6]) 
        cube([20, 20, 5], center=true);
    }

    //Tuyère 
    color("#333333") // Gris très foncé
    translate([0, 0, 5])
    difference() {
        cylinder(h=7.1, r1=8, r2=5);
        
        translate([0, 0, -1])
        cylinder(h=5, r1=6, r2=4);
    }
    
    //anneau bas de la tuyère
    color("#222222")
    rotate_extrude()
    translate([8, 5, 0])
    circle(r=1);
    }
}

translate([0,0,8])
union(){
    trou();
    hublot();
    ailerons();
    moteur();
}

  • Réglages d'impression
    • Hauteur de couche : 0,15 mm (SPEED)
    • Remplissage : 20 %
    • Température de la buse : 215 °C (première couche) | 210°C (autres couches)
    • Température du plateau : 65 °C (première et autres couches)
    • Vitesse d'impression : paramètres par défaut de PrusaSlicer
    • Supports : Support sur plateau uniquement
    • Adhérence au plateau : par défaut 

Capture d’écran 2026-01-30 à 15.46.40.png

Étape 3

----

Un modèle de documentation minimal pour tous les types de projets. Toutes les catégories ci-dessous doivent être renseignées, même de façon succincte.
IMPORTANT : Merci de sélectionner le / les tags adéquats dans le menu de droite, et de ne pas créer de nouveau tag.
Les fichiers sources doivent idéalement être joints à cette page grâce à l'icône trombone du menu de droite.
Des hésitations sur comment bien documenter et utiliser l'interface ? Consultez le tutoriel "Comment documenter"