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

aucun résumé de modification
Ligne 117 : Ligne 117 :
:
:
=== Programme OpenSCAD avec encoche circulaire ===
=== Programme OpenSCAD avec encoche circulaire ===
<pre>
<pre>
// 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


// Paramètres<br>base_length &nbsp; &nbsp; = 100;<br>base_width &nbsp; &nbsp; &nbsp;= 50;<br>base_height &nbsp; &nbsp; = 50;
// Dimensions de la rainure
epaisseur_rainure = 3.2;   // 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


encoche_diametre &nbsp; = 20;<br>encoche_profondeur = 5;<br>angle_deg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0<br>; // Inclinaison de la base en degrés
// 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égiez un chiffre élevé pour observer un changement


// Calcul du facteur de rétrécissement en haut<br>reduction = tan(angle_deg * PI / 180) * base_height;<br>shrink_x = (base_length - 2 * reduction) / base_length;<br>shrink_y = (base_width - 2 * reduction) / base_width;
// Calcul de l'offset sur les côtés pour la face supérieure
d = hauteur * tan(angle * PI/180);


// Génération du socle trapézoïdal par extrusion<br>module socle_trapeze() {<br>&nbsp; &nbsp; linear_extrude(height = base_height, scale = [shrink_x, shrink_y])<br>&nbsp; &nbsp; &nbsp; &nbsp; square([base_length, base_width], center = true);<br>}
// 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
];


// Affichage final avec encoche ronde<br>difference() {<br>&nbsp; &nbsp; socle_trapeze();
// Définition des faces du polyèdre
faces = [
    [0, 3, 2, 1],  // Face inférieure (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
];


&nbsp; &nbsp; translate([0, 0, base_height - encoche_profondeur])<br>&nbsp; &nbsp; &nbsp; &nbsp; cylinder(h = encoche_profondeur + 0.1, r = encoche_diametre / 2, $fn = 64);<br>}<br>
// Module générant le socle avec la rainure centrée sur la face supérieure
module socle() {
  difference() {
    polyhedron(points = vertices, faces = faces);
    translate([ (longueur - largeur_rainure) / 2, (largeur - epaisseur_rainure) / 2, hauteur - profondeur_rainure ])
      cube([largeur_rainure, epaisseur_rainure, profondeur_rainure], center = false);
  }
}


&lt;pre&gt;
// Affichage du socle
socle();
</pre>
:


== Personnalisation & Modification du Code ==
== Personnalisation & Modification du Code ==