ops-devices-cube/3d-model/cube-config.scad

89 lines
5.2 KiB
OpenSCAD
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ============================================================================
// Companion Cube — Configuration Paramétrique
// Version : 0.2.0
// ============================================================================
// Toutes les dimensions sont en millimètres.
// Modifier ce fichier pour ajuster les dimensions sans toucher au modèle.
// ============================================================================
// --- Dimensions Générales ---------------------------------------------------
CUBE_SIZE = 120; // Arête extérieure du cube (mm)
WALL_THICKNESS = 2.5; // Épaisseur des parois de la coque/face
CORNER_RADIUS = 6; // Rayon des arrondis extérieurs
CORNER_REINFORCE = 10; // Largeur des renforts de coins
// --- Squelette Interne (Frame) ----------------------------------------------
FRAME_EDGE_WIDTH = 12; // Largeur des arêtes du squelette
FRAME_EDGE_DEPTH = 12; // Profondeur des arêtes du squelette
FRAME_FILLET = 2; // Congé sur les arêtes du squelette
FRAME_MOUNT_DIAM = 3.2; // Diamètre des trous de fixation M3
FRAME_MOUNT_HEAD = 5.8; // Diamètre de la tête de vis M3
FRAME_MOUNT_DEPTH = 3; // Profondeur du lamage tête de vis
FRAME_SCREWS_PER_FACE = 4; // Nombre de vis par face
FRAME_LEDGE_WIDTH = 5; // Largeur corniche de contact (face ↔ squelette)
FRAME_LEDGE_HEIGHT = 3; // Épaisseur de la corniche plate
// --- Faces ------------------------------------------------------------------
FACE_TOTAL_DEPTH = 14; // Profondeur totale d'un module face (du bord ext.)
FACE_CENTER_DIAM = 40; // Diamètre de la zone tactile centrale
FACE_MEMBRANE_T = 1.0; // Épaisseur de la membrane tactile (centre)
SEAL_CORD_DIAM = 2.0; // Diamètre du cordon torique (joint O-ring)
FACE_SEAL_GROOVE_W = 2.8; // Largeur rainure = ~1.4 × cordon
FACE_SEAL_GROOVE_D = 1.4; // Profondeur rainure = ~0.7 × cordon
// --- LEDs (PCB Anneau — Étage B) --------------------------------------------
LED_COUNT = 12; // Nombre de WS2812B par face
LED_RING_DIAM_EXT = 70; // Diamètre extérieur de l'anneau LED
LED_RING_DIAM_INT = 40; // Diamètre intérieur (ouverture d'air)
LED_RING_HEIGHT = 1.6; // Épaisseur du PCB anneau
RING_SHROUD_HEIGHT = 6; // Hauteur de la chambre de diffusion
RING_SHROUD_WALL = 1.5; // Épaisseur paroi du shroud
// --- Capteur (PCB Bouchon — Étage A) ----------------------------------------
CAP_PCB_DIAM = 35; // Diamètre du PCB bouchon
CAP_PCB_HEIGHT = 1.6; // Épaisseur du PCB bouchon
CAP_CONNECTOR_H = 4; // Hauteur des connecteurs 2.54mm
// --- NFC (Face du dessus uniquement) ----------------------------------------
NFC_PCB_SIZE = 43; // Taille du module PN532 (carré)
NFC_PCB_HEIGHT = 5; // Hauteur du module PN532 avec antenne
NFC_ANTENNA_DIAM = 35; // Diamètre de l'antenne NFC
// --- Charge Qi (Face du dessous uniquement) ---------------------------------
QI_COIL_DIAM = 50; // Diamètre de la bobine Qi réceptrice
QI_COIL_HEIGHT = 3; // Épaisseur de la bobine Qi
QI_PCB_WIDTH = 30; // Largeur du PCB récepteur Qi
QI_PCB_LENGTH = 20; // Longueur du PCB récepteur Qi
QI_PCB_HEIGHT = 2; // Épaisseur du PCB Qi
// --- Batterie ---------------------------------------------------------------
BATT_LENGTH = 70; // Longueur batterie LiPo
BATT_WIDTH = 50; // Largeur batterie LiPo
BATT_HEIGHT = 10; // Épaisseur batterie LiPo (2500mAh ~)
BATT_TOLERANCE = 1; // Jeu autour de la batterie
// --- PCB Central (Motherboard) ----------------------------------------------
CENTRAL_PCB_WIDTH = 60; // Largeur du PCB central (ESP32-S3 + TP4056 + CW2015)
CENTRAL_PCB_LENGTH = 60; // Longueur du PCB central
CENTRAL_PCB_HEIGHT = 1.6; // Épaisseur du PCB
CENTRAL_COMP_H = 8; // Hauteur composants (ESP32-S3 module)
// --- Aération ---------------------------------------------------------------
AIR_HOLE_DIAM = 30; // Diamètre de l'ouverture d'air centrale (face intérieure)
// --- Tolérances d'Impression 3D -------------------------------------------
PRINT_TOLERANCE = 0.2; // Jeu général pour emboîtement
PRINT_LAYER_H = 0.2; // Hauteur de couche standard
// --- Rendu ------------------------------------------------------------------
$fn = 60; // Résolution des cercles (augmenter pour le rendu final)
// --- Couleurs pour la visualisation ----------------------------------------
COLOR_FRAME = [0.3, 0.3, 0.3]; // Gris foncé — squelette
COLOR_FACE = [0.6, 0.6, 0.6, 0.85]; // Gris clair semi-transparent — faces
COLOR_MEMBRANE = [0.8, 0.8, 0.8, 0.5]; // Blanc translucide — membrane tactile
COLOR_PCB = [0.1, 0.5, 0.1]; // Vert — PCBs
COLOR_LED = [1.0, 0.9, 0.3]; // Jaune — LEDs
COLOR_BATTERY = [0.2, 0.2, 0.6]; // Bleu foncé — batterie
COLOR_NFC = [0.6, 0.1, 0.1]; // Rouge — module NFC
COLOR_QI = [0.8, 0.5, 0.1]; // Orange — bobine Qi