From 391aeb781d1a7793c2db02c33c49c4519b422607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=27=C3=A9lectron=20rare?= <108685187+electron-rare@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:02:19 +0200 Subject: [PATCH] feat: add FreeCAD parametric layout model Third leg of the CAD tooling: FreeCAD 1.1 for 3D and dimensioned technical drawings. Seed a spreadsheet-driven model of the interior (envelope, 9-seat zone, shower cell, Tiroclass bench, fab-machine zone) so the survey of the emptied bus only has to fill in the dimension sheet to recalibrate the whole layout. Conventions and planned files documented in the folder README; decision registered. --- 20-conception/freecad/README.md | 41 +++++++++++++++++++ 20-conception/freecad/bus-implantation.FCStd | Bin 0 -> 7094 bytes 20-conception/implantation.md | 5 ++- CLAUDE.md | 5 ++- DECISIONS.md | 9 +++- 5 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 20-conception/freecad/README.md create mode 100644 20-conception/freecad/bus-implantation.FCStd diff --git a/20-conception/freecad/README.md b/20-conception/freecad/README.md new file mode 100644 index 0000000..0431b70 --- /dev/null +++ b/20-conception/freecad/README.md @@ -0,0 +1,41 @@ +# Modèles FreeCAD — 3D et plans techniques + +Ce dossier contient les modèles **FreeCAD** (v1.1) du projet : 3D +d'implantation, structure, et plans cotés (atelier TechDraw). + +## Fichiers + +| Fichier | Contenu | Statut | +|---------|---------|--------| +| `bus-implantation.FCStd` | Enveloppe intérieure paramétrique + zoning (sièges ×9, douche, établi Tiroclass, machines) | squelette créé, cotes placeholder | +| `structure-toit.FCStd` | Arceaux, rails, 2 étages PV + glissières | à créer après relevé des arceaux | +| `soute-batteries.FCStd` | Baie 4× US3000C en soute, fixations | à créer | + +## Le principe : tout part du tableur `dimensions` + +`bus-implantation.FCStd` contient une feuille **`dimensions`** (alias : +`longueur_interieure`, `largeur_interieure`, `hauteur_interieure`, +`longueur_zone_sieges`, `cote_douche`, `longueur_etabli`, +`profondeur_etabli`). Les volumes sont liés par expressions : **mettre à +jour le tableur après le relevé du bus suffit à recaler tout le modèle**. +Les valeurs actuelles sont des hypothèses (`Statut` en colonne C). + +## Conventions + +- Origine : coin avant-gauche du plancher intérieur, X vers l'arrière, + Y vers la droite, Z vers le haut. Unités mm. +- Un `.FCStd` par sous-ensemble ; pas de méga-fichier. +- Plans cotés : pages **TechDraw** dans le même fichier, export PDF + dans `exports/` (versionnés si légers). +- Toute cote mesurée sur le bus remplace son placeholder dans le + tableur (et note la date en colonne C). +- Génération scriptable : les modèles de départ sont produits via + `freecadcmd` (FreeCAD 1.1.1, `/Applications/FreeCAD.app`). + +## Répartition des outils CAO (décision 2026-07-09) + +- **FreeCAD** : 3D, plans techniques cotés, structure (FEM possible : + ccx/gmsh inclus dans l'install). +- **QElectroTech** (`../../30-energie-elec/qet/`) : schémas élec + d'installation. +- **KiCad** (`../../30-energie-elec/kicad/`) : cartes électroniques. diff --git a/20-conception/freecad/bus-implantation.FCStd b/20-conception/freecad/bus-implantation.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..c210c3c993b30a0e4b264537987557e5f1a054e6 GIT binary patch literal 7094 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