Angel CHEN Informations Angel 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. Tout d'abord avec une forme simple, puis une seconde plus complexe (j'ai fais l'inverse car je n'étais pas présent au premier cours). MODÉLISATION COMPLEXE (Fusée Fantaisie) 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.       Matériel Imprimante 3D :  Originale Prusa MK4S Filament : PLA Machines utilisées Logiciel de montage :  OpenSCAD 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() { //L'axe central cylinder(r=rayon - 1, h=longueur); //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]) 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,2 mm (SPEED) Remplissage : 20 % Température de la buse : 215 °C (première couche) | 210°C (autres canapés) Température du plateau : 65 °C (première et autres canapés) Vitesse d'impression : paramètres par défaut de PrusaSlicer Supports : Support sur plateau uniquement Adhérence au plateau : par défaut Étapes de réalisation Recherche et récupération du fichier STL Vérifier l'échelle du modèle (Ici l'échelle est de 120%) Vérifier l'orientation et la position sur le plateau Importation du fichier STL dans PrusaSlicer Normes de vérification des réglages Ajustement si nécessaire Génération du G-code Lancement de l'impression 3D Observation de la formation des couches et suivi du retour. Surveiller la première couche Observations et anecdotes Après l'impression, le diamètre du nez ou l'épaisseur de feuilletage de la vis du nez est sans doute trop grande car elle grippe lorsque j'ai essayé de visser le nez. Résultat Voici le résultat de cette impression :       ____________________________________________________________________________________________________________ MODÉLISATION SIMPLE (Support pour Fusée Fantaisie) Objectifs Pour mettre en valeur ma fusée précédemment imprimée, j'ai décidé de faire un support qui me permettra d'exposer la fusée ! . Matériel Imprimante 3D :  Originale Prusa MK4S Filament : PLA Machines utilisées Logiciel de montage :  OpenSCAD 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 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; //Support fusee //Paramètre du Socle longueur = 80; largeur = 50; hauteur_totale = 8; rayon_arrondi = 12; //Arrondi du Socle module socle_arrondi(l, w, h, r) { hull() { translate([-(l/2)+r, -(w/2)+r, 0]) cylinder(h=h, r=r); translate([(l/2)-r, -(w/2)+r, 0]) cylinder(h=h, r=r); translate([-(l/2)+r, (w/2)-r, 0]) cylinder(h=h, r=r); translate([(l/2)-r, (w/2)-r, 0]) cylinder(h=h, r=r); } } //Création du Socle module Socle(){ difference() { union() { //Niveau 1 : La base socle_arrondi(longueur, largeur, hauteur_totale * 0.6, rayon_arrondi); //Niveau 2 : Le plateau supérieur translate([0, 0, hauteur_totale * 0.6]) socle_arrondi(longueur - 10, largeur - 10, hauteur_totale * 0.4, rayon_arrondi - 5); } } } //Bras de support module Bras(){ rayon_arc = 20; // Courbure angle_max = 140; // Jusqu'ou monte le bras translate([30,0,27.6]) rotate([90,0,0]) cylinder(h = 6, d = 6, center = true); translate([15, 0, -8]) union() { for (a = [0 : 1 : angle_max]) { x = rayon_arc * sin(a); z = rayon_arc - (rayon_arc * cos(a)); translate([x, 0, z]) rotate([0, a, 0]) rotate([90, 0, 0]) cylinder(h = 6, d = 6, center = true); } } //Socle du Bras translate([20, 0, -8]) cube([30, 20, 2], center = true); } 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 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] ]); } } //Pince à fusée module Pince(){ translate([-4,0,56.15]) rotate([0,80,0]) difference() { //Le corps de la pince cylinder(h = 15, d = 23, center = true); //Le trou pour la fusee translate([-95,-50,-20]) cube([100,100,100]); translate([0,0,-15]) fuselage(); translate([0,0,-15]) ailerons(); } } union(){ color("Grey") Socle(); color("Grey") translate([-30,0,16]) Bras(); color("Grey") Pince(); } Réglages d'impression Hauteur de couche : 0,2 mm (SPEED) Remplissage : 20 % Température de la buse : 215 °C (première couche) | 210°C (autres canapés) Température du plateau : 65 °C (première et autres canapés) Vitesse d'impression : paramètres par défaut de PrusaSlicer Supports : Support sur plateau uniquement Adhérence au plateau : par défaut . Pour bien imprimer la pièce, j'ai ajouté des supports partout car il y a un point de faiblesse qui ne m'aurait pas permis d'imprimer correctement. Étapes de réalisation Recherche et récupération du fichier STL Vérifier l'échelle du modèle (Ici l'échelle est de 120%) Vérifier l'orientation et la position sur le plateau Importation du fichier STL dans PrusaSlicer Normes de vérification des réglages Ajustement si nécessaire Génération du G-code Lancement de l'impression 3D Observation de la formation des couches et suivi du retour. Surveiller la première couche Résultat Voici le résultat de cette impression : .      Le résultat final : .          ____________________________________________________________________________________________________________ PROJET Arduino Réalisé avec Mariia KARPENKO visible via ce lien : Projet Arduino