You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

80 lines
3.1 KiB

// =============================================
// SUPERIEURE.scad — Le chapeau
// =============================================
include <parametres.scad>
superieure();
module superieure() {
difference() {
// ── 1. BLOC DE BASE + LÈVRE D'EMBOÎTEMENT ────────────────────
union() {
// Corps principal du chapeau
cube([chapeau_ext_x, chapeau_ext_y, chapeau_ext_z]);
// Lèvre d'emboîtement — cadre périphérique en bas du chapeau,
// qui vient coiffer le bac par glissement vers le bas.
translate([0, 0, -emboitement_profondeur])
difference() {
// Bloc extérieur de la lèvre (même empreinte que le chapeau)
cube([chapeau_ext_x, chapeau_ext_y, emboitement_profondeur]);
// On vide l'intérieur : ne reste que le cadre
translate([epaisseur_paroi, epaisseur_paroi, -1])
cube([
chapeau_ext_x - 2 * epaisseur_paroi,
chapeau_ext_y - 2 * epaisseur_paroi,
emboitement_profondeur + 2
]);
}
}
// ── 2. CAVITÉ PERFORATRICE ────────────────────────────────────
// Pavé creusé depuis le dessus, ouvert vers le haut.
// Centré en X, décalé en Y selon cav_offset_y.
//
// Centrage en X dans le chapeau :
cav_x = (chapeau_ext_x - cav_largeur) / 2;
// Position en Y : paroi arrière + offset
cav_y = epaisseur_paroi + cav_offset_y;
// La cavité part du dessus et descend de cav_hauteur
cav_z = epaisseur_fond; // démarre au-dessus du fond
translate([cav_x, cav_y, cav_z])
cube([cav_largeur, cav_profondeur, cav_hauteur + 1]); // +1 pour sortir du dessus
// ── 3. FENTE LATÉRALE — guide tract (face DROITE, centrée) ───
// Rainure horizontale débouchant sur la face droite (X max).
// Centrée en Y sur la face.
// La butée est le fond de la rainure (paroi non percée).
//
// Centre de la fente en Y = centre du chapeau
fente_y = (chapeau_ext_y - fente_largeur) / 2;
// Hauteur absolue de la fente (depuis le bas du chapeau)
fente_z_abs = epaisseur_fond + fente_z;
translate([
chapeau_ext_x - fente_profondeur, // la fente entre par la droite
fente_y,
fente_z_abs
])
cube([fente_profondeur + 1, fente_largeur, fente_section]); // +1 pour déboucher
// ── 4. TROU D'ÉVACUATION DES CONFETTIS ───────────────────────
// Trou carré dans le fond, positionné par evac_offset_x/y
// depuis le coin intérieur bas-gauche / arrière.
translate([
epaisseur_paroi + evac_offset_x,
epaisseur_paroi + evac_offset_y,
-1 // perce depuis en dessous
])
cube([evac_taille, evac_taille, epaisseur_fond + 2]);
}
}