Skip to main content

Seema BAIG DUSMEE

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();