Skip to content

Boitier XL : corriger le montage de la carte, et passer le pipeline sous Blender - #1

Open
Silexperience210 wants to merge 5 commits into
mainfrom
case/blender-pipeline
Open

Boitier XL : corriger le montage de la carte, et passer le pipeline sous Blender#1
Silexperience210 wants to merge 5 commits into
mainfrom
case/blender-pipeline

Conversation

@Silexperience210

Copy link
Copy Markdown
Owner

Pourquoi

La carte JC3248W535 porte 4 bossages de 12 mm aux angles de son capot arrière. Les boîtiers existants supposent un dos plan : la carte repose sur ces bossages au lieu de s'asseoir, et l'écran ressort du boîtier d'autant. Les deux versions imprimées sont inutilisables en l'état.

Second motif : le pipeline actuel exige numpy, trimesh, shapely, manifold3d et matplotlib. Aucun n'étant installé, les STL n'étaient pas régénérables.

Le boîtier XL

Deux pièces, 53,8 mm de profondeur, logeant carte + batterie 2000 mAh + haut-parleur.

Trois contraintes l'ont façonné, aucune n'étant un choix de style :

Contrainte Conséquence
Bossages de 12 mm 4 plots d'appui à la bonne cote
Stabilité Prisme oblique à fond plat — un galet au-delà de ~35 mm voit son appui reculer jusqu'à ne plus porter le centre de masse
Vis d'origine insérées par l'arrière Dos ouvert + capot rapporté ; dans un monobloc fermé elles seraient inatteignables

Le connecteur USB-C étant à l'équerre, ouverture vers l'arrière, le câble traverse par un passage droit dans la cloison et le capot — et non par une découpe latérale.

Quatre finitions interchangeables du corps : lisse, cannelures, blocs en quinconce, et le hash du bloc genesis en relief (256 bits sur 32 × 8 ; sa première rangée est lisse — ce sont ses 32 zéros de tête).

Le pipeline

Construction et rendu sous Blender, sans dépendance externe : son solveur booléen MANIFOLD est le même noyau manifold3d qu'utilisait trimesh, et numpy est embarqué. Les générateurs de contours et la coupe de plan exacte sont portés tels quels depuis build_case.py.

Un test de non-régression reconstruit le v1 à géométrie inchangée : encombrement identique au millième, volume à +1,04 %.

Les scripts trimesh d'origine restent en place.

Vérifications

Toutes les pièces sont étanches, 0 arête non-manifold, y compris après relecture du STL exporté — la garantie « zéro réparation dans le slicer » est tenue. Stabilité vérifiée par projection du centre de masse dans le polygone d'appui.

Réserves avant fusion

  • Les 12 mm de bossage viennent d'une mesure au pied à coulisse annoncée comme un maximum. Un tirage d'essai est en cours.
  • Le v1 compact n'est pas corrigé : ses STL publiés sont inchangés, mais ses deux défauts sont désormais documentés dans MANUAL.md. À corriger ou retirer dans un second temps.

🤖 Generated with Claude Code

Silexperience210 and others added 5 commits August 2, 2026 13:57
Nouveau boitier XL, en deux pieces, logeant carte + batterie + haut-parleur.

Correctif de montage : la carte porte 4 bossages de 12 mm sous son capot
arriere. Le modele les ignorait et supposait un dos plan, si bien que la carte
reposait dessus et que l'ecran ressortait du boitier d'autant. Le XL leur
menage 4 plots d'appui a la bonne cote.

Forme : prisme oblique a fond plat sur toute la profondeur. Le galet du v1 ne
convient pas au-dela de ~35 mm — son appui recule jusqu'a ne plus porter le
centre de masse et le boitier pique du nez.

Deux pieces parce que les 4 vis d'origine s'inserent PAR L'ARRIERE : dans un
monobloc ferme elles seraient hors d'atteinte. Le dos ouvert les rend
accessibles, le capot referme ensuite.

Passage USB-C traversant (cloison + capot) : le connecteur est a l'equerre,
ouverture vers l'arriere, le cable ne vient donc pas lateralement.

Quatre finitions interchangeables du corps : lisse, cannelures, blocs en
quinconce, et le hash du bloc genesis en relief (256 bits sur 32x8, ses 32
zeros de tete formant une bande lisse).

Pipeline : construction et rendu sous Blender, sans dependance externe. Le
solveur booleen MANIFOLD de Blender 5.0 est le meme noyau manifold3d
qu'utilisait trimesh ; numpy est embarque. Les cotes paramtriques et la coupe
de plan exacte sont portees telles quelles depuis build_case.py. Les scripts
trimesh d'origine restent en place.

Toutes les pieces sont verifiees etanches, 0 arete non-manifold, y compris
apres relecture du STL exporte.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Remplace les apercus matplotlib du v1/v2 par les rendus Blender du XL :
vue eclatee, interieur, et la finition hash genesis.

Documente au passage les trois contraintes qui ont faconne le XL — les
bossages de 12 mm de la carte, le fond plat impose par la stabilite, et
l'acces aux vis qui impose les deux pieces.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ajoute l'impression des deux pieces (aucun support, corps sur son fond plat)
et les quatre finitions du corps, puis l'assemblage en cinq etapes.

Explique pourquoi le dos est ouvert : les 4 vis d'origine s'inserent par
l'arriere et seraient inatteignables dans un monobloc.

Signale les deux defauts connus du v1 — ecran surelevee de 12 mm par les
bossages de la carte, et decoupe USB laterale alors que le connecteur est a
l'equerre vers l'arriere.

Etend le depannage : ecran surelevee, cable USB qui ne tombe pas en face,
capot qui ne s'emboite pas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BOSS_H passe de 12 a 9 mm. Les 12 mm mesures au pied a coulisse etaient le
MAXIMUM du bossage, pas sa cote d'appui : l'ecran sortait 3 mm trop enfonce.
Ce parametre pilote directement l'affleurement, 1 mm pour 1 mm.

Ajoute validate.composants_connexes(), absent jusqu'ici et pourtant
indispensable : un plot qui ne touche aucune paroi reste un solide
parfaitement etanche, donc is_watertight() le declarait bon. Les 4 plots de
vis du capot flottaient a 5.9 mm de la paroi et seraient sortis en pieces
detachees. report() l'affiche desormais avec un marqueur explicite.

STL regeneres.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
L'ecran du JC3248W535 sort a l'envers dans le sens de montage d'origine. On le
remet a l'endroit en tournant la carte de 180 deg dans sa poche : les 4 vis
sont a (+-HOLE_DX/2, +-HOLE_DY/2) et la poche est centree, donc les deux sont
invariants par cette rotation. Le tactile suit l'ecran tout seul, son mapping
etant relatif a la carte — aucune retouche firmware.

Seul le passage USB-C bouge, et il ne bouge QU'EN X. Le premier essai
appliquait la rotation complete (x,y) -> (-x,-y) et s'est fait rejeter par
verifier_interferences() : a y = -4 la lumiere mordait de 7 mm la fraisure de
la vis basse du capot, dont le sommet est a -12.5. Or le passage est tres
surdimensionne (20 x 31 pour un connecteur de 11 x 5.2), donc laisse a y = +4
il couvre deja le connecteur descendu a -4.6, avec 4.3 mm de marge.

Ajoute verifier_passage_usb() pour que cette marge soit calculee et non
supposee : c'est le seul controle qui lie la position du connecteur a celle de
la lumiere, dans les deux sens de montage.

Sans le flag, les STL d'origine sont rebuildes au md5 pres.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant