Différences entre les versions de « Découvrons les imprimantes 3D - FDM »

De Wiki Fablab Fabbulle
Aller à la navigation Aller à la recherche
(Création page et lien OpenSCAD)
(Aucune différence)

Version du 28 mai 2025 à 13:40

La création de trophées

Utilisation de OpenSCAD pour générer le socle :

Vous pouvez modifier les 6 parametres décris dans le code ci-dessous, ceux-la

// Paramètres de la base (en mm)
longueur = 100;          // Longueur de la base
largeur  = 50;           // Largeur de la base
hauteur  = 30;           // Hauteur de la base

// Dimensions de la rainure
epaisseur_rainure = 3.2;    // Épaisseur de la rainure (tolérance pour la plaque à glisser)
largeur_rainure   = 30;     // Dimension de l'ouverture (longueur sur le plan)
profondeur_rainure= 15;     // Profondeur de la rainure dans le socle

// Paramètre d'angle (en degrés)
// Si angle = 0, le socle aura des faces verticales ; sinon la face supérieure sera mise en retrait par "d"
angle = 900; // Privilégier un chiffre élevé pour voir un changement

// Calcul de l'offset sur les côtés pour la face supérieure
d = hauteur * tan(angle * PI/180);

// Définition des 8 sommets du polyèdre
vertices = [
    [0, 0, 0],                  // V0
    [longueur, 0, 0],           // V1
    [longueur, largeur, 0],      // V2
    [0, largeur, 0],            // V3
    [d, d, hauteur],                         // V4
    [longueur - d, d, hauteur],                // V5
    [longueur - d, largeur - d, hauteur],       // V6
    [d, largeur - d, hauteur]                  // V7
];

// Définition des faces du polyèdre
faces = [
    [0, 3, 2, 1],   // face inférieure corrigée (ordre inversé pour une normale vers le bas)
    [4, 5, 6, 7],   // face supérieure
    [0, 1, 5, 4],   // côté 1
    [1, 2, 6, 5],   // côté 2
    [2, 3, 7, 6],   // côté 3
    [3, 0, 4, 7]    // côté 4
];

// Module qui génère le socle avec la rainure centrée sur la face supérieure.
module socle() {
  difference() {
    // Corps principal (le polyèdre peut devenir trapézoïdal si angle > 0)
    polyhedron(points = vertices, faces = faces);
    
    // Soustraction de la rainure.
    // La rainure est modélisée par un cube vertical centré sur le plan XY.
    translate([ (longueur - largeur_rainure) / 2, (largeur - epaisseur_rainure) / 2, hauteur - profondeur_rainure ])
      cube([largeur_rainure, epaisseur_rainure, profondeur_rainure], center = false);
  }
}

// Affichage du socle
socle();