Ajout du rendu isométrique SVG pour build123d

This commit is contained in:
2026-05-28 02:11:22 +02:00
parent 6dc7de587c
commit c4282bca1d
12 changed files with 1612 additions and 140 deletions
+61
View File
@@ -0,0 +1,61 @@
// =============================================
// 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
]);
}
}
+33
View File
@@ -0,0 +1,33 @@
// =============================================
// INFERIEURE.scad — Le bac de récupération
// Boîte ouverte sur le dessus.
// Dimensions dérivées du chapeau.
// =============================================
include <parametres.scad>
inferieure();
module inferieure() {
// Dimensions extérieures du bac.
// Le bac doit s'insérer dans la lèvre du chapeau :
// on retire le jeu d'emboîtement sur chaque face.
bac_ext_x = chapeau_ext_x - 2 * emboitement_jeu;
bac_ext_y = chapeau_ext_y - 2 * emboitement_jeu;
difference() {
// ── 1. BLOC DE BASE ───────────────────────────────────────────
cube([bac_ext_x, bac_ext_y, bac_hauteur]);
// ── 2. VIDAGE INTÉRIEUR (ouvert par le haut) ──────────────────
translate([epaisseur_paroi, epaisseur_paroi, epaisseur_fond])
cube([
bac_ext_x - 2 * epaisseur_paroi,
bac_ext_y - 2 * epaisseur_paroi,
bac_hauteur // traversant vers le haut
]);
}
}
+76
View File
@@ -0,0 +1,76 @@
// =============================================
// PARAMETRES GLOBAUX — punch-guide
// Modifier uniquement ce fichier.
// =============================================
// ─── FENTE (guide tract) ─────────────────────────────────────────────────────
// La fente est centrée sur la face droite du chapeau.
fente_largeur = 152; // mm — largeur de la fente (tract 105mm + jeu latéral)
fente_profondeur = 60; // mm — profondeur d'enfoncement du tract jusqu'à la butée
fente_section = 2.0; // mm — hauteur de la section (épaisseur papier + jeu vertical)
fente_z = 15; // mm — hauteur de la fente depuis le fond intérieur du chapeau
// ─── CAVITÉ PERFORATRICE ─────────────────────────────────────────────────────
// Pavé ouvert vers le haut, dans lequel la perforatrice s'encastre.
cav_largeur = 100; // mm — dimension X de la cavité <<<< À MESURER
cav_profondeur = 85; // mm — dimension Y de la cavité <<<< À MESURER
cav_hauteur = 55; // mm — profondeur du creusement depuis le dessus <<<< À MESURER
// Décalage de la cavité sur l'axe Y (perpendiculaire à la face de la fente).
// Permet d'aligner la lame avec l'axe de la fente.
// 0 = cavité calée contre la paroi arrière (opposée à la fente).
cav_offset_y = 30; // mm <<<< À AJUSTER
// ─── TROU D'ÉVACUATION ───────────────────────────────────────────────────────
// Trou carré dans le fond du chapeau, centré sous la lame.
// Les confettis tombent dans le bac.
evac_taille = 48; // mm — côté du trou (carré 45mm + jeu)
evac_offset_x = 40; // mm — position X depuis la paroi gauche intérieure <<<< À AJUSTER
evac_offset_y = 50; // mm — position Y depuis la paroi arrière intérieure <<<< À AJUSTER
// ─── PAROIS ──────────────────────────────────────────────────────────────────
epaisseur_paroi = 5; // mm
epaisseur_fond = 10; // mm
// ─── EMBOÎTEMENT chapeau / bac ───────────────────────────────────────────────
emboitement_profondeur = 10; // mm — hauteur du chevauchement
emboitement_jeu = 0.3; // mm — jeu radial entre lèvre et bac (ajuster selon imprimante)
// ─── COUVERCLE ───────────────────────────────────────────────────────────────
// Le couvercle coiffe le chapeau par l'extérieur (même système que chapeau/bac).
// Il a une ouverture rectangulaire centrée sur la cavité de la perforatrice.
couvercle_epaisseur = 3; // mm — épaisseur du plateau du couvercle
couvercle_ouv_largeur = 70; // mm — largeur de l'ouverture / X
couvercle_ouv_profondeur = 50; // mm — profondeur de l'ouverture / Y
// ─── BAC DE RÉCUPÉRATION ─────────────────────────────────────────────────────
bac_hauteur = 50; // mm — hauteur utile du bac
// ─── DIMENSIONS DÉRIVÉES (ne pas modifier) ───────────────────────────────────
//
// Le chapeau englobe tout :
// X : le plus grand entre la cavité et la fente, + 2 × paroi
// Y : le plus grand entre (cavité + son offset) et la profondeur de fente, + 2 × paroi
// Z : fond + hauteur de cavité (la cavité ouvre le dessus, donc elle fixe la hauteur)
chapeau_int_x = max(cav_largeur, fente_profondeur);
chapeau_int_y = max(cav_profondeur + cav_offset_y, fente_largeur);
chapeau_ext_x = chapeau_int_x + 2 * epaisseur_paroi;
chapeau_ext_y = chapeau_int_y + 2 * epaisseur_paroi;
chapeau_ext_z = epaisseur_fond + cav_hauteur;
+80
View File
@@ -0,0 +1,80 @@
// =============================================
// 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]);
}
}