Skip to main content

Seema BAIG DUSMEE

Exercice 1 : Création d’un produit du quotidien

Pour cet exercice, j’ai réalisé un vide-poche original, en forme de pirogue. J’ai choisi ce design pour son côté esthétique et fonctionnel. Le vide-poche a été gravé avec mon nom de famille, ajoutant une touche personnelle à l’objet. J'ai utilisé Fusion 360 pour le faire, car je n'y arrivais pas avec OpenScad.

Je n'étais pas partie dessus à la base ; je voulais faire une étagère avec un pot de fleurs intégré, munie d'une bibliothèque. Mais la taille de l'étagère est beaucoup trop importante, et une version miniature ne m'intéressait pas. J'ai donc cherché une autre idée, afin d'avoir quelque chose d'à la fois utile, pratique et qui répond à l'exercice ! 

Pour réaliser mon projet d’étagère avec un pot de fleurs intégré, j’ai utilisé ChatGPT comme assistant de conception. Grâce à des échanges interactifs, j’ai pu préciser mes idées et obtenir des conseils à chaque étape. Voici comment je m’y suis prise :

  1. Définir l'idée initiale
    J’ai commencé par expliquer mon projet à ChatGPT : créer une petite étagère murale avec un emplacement intégré pour un pot de fleurs. Mon objectif était de combiner esthétique et fonctionnalité dans un design simple et moderne.

    Prompt utilisé :
    "Je veux créer une étagère murale avec un pot de fleurs intégré, dans un style épuré, qui soit imprimable en 3D. Donne moi le code pour OpenScad."

    ChatGPT m’a alors proposé plusieurs idées, comme intégrer un cylindre pour le pot, choisir des supports légers pour minimiser la matière, et m’a donné des suggestions pour répartir le poids de l’objet.

  2. Optimisation du design
    Enfin, après avoir conçu un croquis basé sur ces échanges, j’ai décrit à ChatGPT mon design final pour valider sa faisabilité.

    Prompt utilisé :
    "Voici mon design : une étagère rectangulaire avec une ouverture circulaire pour le pot de fleurs, des supports droits pour le mur, et une base renforcée sous le pot. Est-ce que ça te semble réalisable pour une impression 3D ?"

    ChatGPT m’a confirmé que le design était solide et m’a rappelé de vérifier les dimensions exactes par rapport aux capacités de l’imprimante et du pot de fleurs.

     

 

image.png 

À gauche, l'objet initial. À droite, la pirogue :)

Création d'une étagère avec pot de fleurs intégré avec suspension, et livres --> avec l'aide de : https://chatgpt.com/share/67444630-d040-8013-995c-46fe673aa6db

image.png

// Dimensions de l'etagere
longueur = 45;  // Longueur de l'etagere
largeur = 15;   // Largeur
epaisseur = 4;  // Epaisseur

// Dimensions du pot
diametre_pot = 8;  // Diametre du pot
hauteur_pot = 10;  // Hauteur du pot
epaisseur_pot = 0.5; // Epaisseur des parois du pot

// Dimensions de la suspension
cote_triangle = 40; // Cote du triangle equilateral (en cm)
epaisseur_suspension = 0.75; // Epaisseur de la suspension

// Dimensions de base communes aux livres
largeur_livre = 8;  // Largeur d'un livre
epaisseur_livre = 1.5; // Epaisseur d'un livre
espace_livre = 0.1;  // Espace entre les livres

module etagere() {
    difference() {
        // Base de l'etagere
        translate([0, 0, -epaisseur / 2])
            cube([longueur, largeur, epaisseur], center = true);
        
        // Trou esthetique pour le pot (alignement)
        translate([0, 0, epaisseur / 2])
            cylinder(h = epaisseur + 1, r = diametre_pot / 2, center = true);
    }
}

module pot_fleurs() {
    difference() {
        // Pot exterieur
        cylinder(h = hauteur_pot, r = diametre_pot / 2, center = true);
        
        // Creux interieur
        translate([0, 0, epaisseur_pot])
            cylinder(h = hauteur_pot - epaisseur_pot, r = (diametre_pot / 2) - epaisseur_pot, center = true);
    }
}

module triangle_creux() {
    // Creer un triangle equilateral creux
    difference() {
        // Triangle plein
        polygon(points=[[0, 0], [cote_triangle, 0], [cote_triangle/2, sqrt(3)/2 * cote_triangle]]);
        
        // Creux interieur du triangle
        translate([1, 1])  // Decalage leger pour le creux interieur
            polygon(points=[[0, 0], [cote_triangle-2, 0], [(cote_triangle-2)/2, sqrt(3)/2 * (cote_triangle-2)]]);
    }
}

module suspension() {
    // Positionnement du triangle sous l'etagere
    translate([-20, 6.5, -(epaisseur_suspension + epaisseur) / 2])  // Positionne la suspension sous l'etagere
    rotate([90,0,0])
        linear_extrude(epaisseur_suspension)
            triangle_creux();
}

module livre_arrondi(hauteur) {
    difference() {
        // Corps principal du livre : un cube
        translate([8,0,0]) cube([epaisseur_livre, largeur_livre, hauteur], center = false);
        
        // Enlever les coins arrondis sur le haut
        for (x = [-0,0]) {
            for (y = [-0, 0]) {
                // Arrondir les coins supérieurs
                translate([x * (epaisseur_livre / 2), y * (largeur_livre / 2), hauteur])
                    cylinder(h = 2, r1 = 0, r2 = 2);
                // Cylindres pour arrondir les coins
            }
        }
    }
}

// Liste des hauteurs des livres
hauteurs_livres = [10, 13, 15, 14, 12,9];

// Assemblage des livres collés avec un espace entre eux et alignés sur la même base
for (i = [0 : len(hauteurs_livres) - 1]) {
    // Décalage des livres en X avec espace entre eux
    translate([i * (epaisseur_livre + espace_livre), -3, -0]) {
        livre_arrondi(hauteurs_livres[i]);  
        // Appel de la fonction pour chaque hauteur
    }
}

// Assemblage final
etagere();
translate([0, 0, epaisseur / 2])  // Place le pot au-dessus de l'etagere
    pot_fleurs();
suspension();  // Ajoute la suspension sous l'etagere
livre_arrondi();

Cube Impossible : une structure géométrique complexe qui ne peut être fabriquée en une seule pièce par des méthodes traditionnelles comme le moulage ou l'usinage. Cette conception comporte des tunnels internes et des parties imbriquées, exploitant les capacités uniques des imprimantes 3D

image.png

// Dimensions du cube
taille_cube = 50;  // Taille totale du cube
epaisseur = 5;     // Épaisseur des parois
taille_tunnel = 15; // Taille des tunnels internes

// Fonction pour créer un cube creux avec des tunnels
module cube_impossible() {
    difference() {
        // Cube extérieur
        cube([taille_cube, taille_cube, taille_cube], center = true);
        
        // Cube intérieur pour creuser l'intérieur
        translate([-epaisseur, -epaisseur, -epaisseur])
            cube([taille_cube - 2 * epaisseur, taille_cube - 2 * epaisseur, taille_cube - 2 * epaisseur], center = true);
        
        // Tunnels traversants dans les trois directions
        for (i = [-1, 1]) {
            // Tunnel en X
            translate([0, i * (taille_cube / 2 - epaisseur), 0])
                cube([taille_cube, taille_tunnel, taille_tunnel], center = true);
            
            // Tunnel en Y
            translate([i * (taille_cube / 2 - epaisseur), 0, 0])
                cube([taille_tunnel, taille_cube, taille_tunnel], center = true);
            
            // Tunnel en Z
            translate([0, 0, i * (taille_cube / 2 - epaisseur)])
                cube([taille_tunnel, taille_tunnel, taille_cube], center = true);
        }
        
        // Structure torsadée interne
        for (angle = [0 : 45 : 135]) {
            rotate([angle, angle, 0])
                translate([0, 0, 0])
                    cylinder(h = taille_cube, r = epaisseur / 2, center = true);
        }
    }
}

// Appel du module pour afficher le cube impossible
cube_impossible();