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

86 lines
5 KiB
OpenSCAD

// ============================================================================
// 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
// --- 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)
FACE_SEAL_GROOVE_W = 1.5; // Largeur de la rainure joint torique
FACE_SEAL_GROOVE_D = 1.5; // Profondeur de la rainure joint torique
// --- 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