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.
 
 
 

61 lines
2.5 KiB

// =============================================
// COUVERCLE.scad
// Coiffe la partie supérieure par l'extérieur,
// même principe d'emboîtement que chapeau/bac.
// Ouverture rectangulaire centrée sur la cavité.
// =============================================
include <parametres.scad>
couvercle();
module couvercle() {
// Dimensions extérieures du couvercle.
// La lèvre intérieure doit glisser autour du chapeau :
// on ajoute le jeu + l'épaisseur de paroi de chaque côté.
couv_ext_x = chapeau_ext_x + 2 * (epaisseur_paroi + emboitement_jeu);
couv_ext_y = chapeau_ext_y + 2 * (epaisseur_paroi + emboitement_jeu);
couv_ext_z = couvercle_epaisseur + emboitement_profondeur;
// Centre de la cavité en X/Y dans le repère du couvercle.
// La cavité est centrée en X dans le chapeau, et positionnée en Y par cav_offset_y.
// Dans le repère du couvercle, on décale de epaisseur_paroi + emboitement_jeu
// pour compenser le débord de la lèvre.
offset_couv = epaisseur_paroi + emboitement_jeu; // décalage repère chapeau → couvercle
cav_centre_x = offset_couv + epaisseur_paroi + chapeau_int_x / 2;
cav_centre_y = offset_couv + epaisseur_paroi + cav_offset_y + cav_profondeur / 2;
difference() {
// ── 1. BLOC DE BASE ───────────────────────────────────────────
cube([couv_ext_x, couv_ext_y, couv_ext_z]);
// ── 2. ÉVIDEMENT INTÉRIEUR — lèvre d'emboîtement ─────────────
// On creuse le dessous du couvercle pour qu'il vienne coiffer
// le chapeau. La lèvre a l'épaisseur epaisseur_paroi.
translate([epaisseur_paroi, epaisseur_paroi, -1])
cube([
couv_ext_x - 2 * epaisseur_paroi,
couv_ext_y - 2 * epaisseur_paroi,
emboitement_profondeur + 1 // s'arrête au plateau
]);
// ── 3. OUVERTURE RECTANGULAIRE ────────────────────────────────
// Trou traversant le plateau, centré sur la cavité perforatrice.
translate([
cav_centre_x - couvercle_ouv_largeur / 2,
cav_centre_y - couvercle_ouv_profondeur / 2,
emboitement_profondeur - 1 // perce depuis le plateau vers le haut
])
cube([
couvercle_ouv_largeur,
couvercle_ouv_profondeur,
couvercle_epaisseur + 2
]);
}
}