Ver código fonte

Add 603449 LiPo battery mockup; expand X+ cavity for fit

Adds SHOW_BATTERY flag and battery() module for the 603449 LiPo
(34.5 × 51 × 6.3 mm) placed in the X+/Y+ corner with configurable
clearance. CLR_XP widened to 42 mm to fit. Includes batt_18650.scad
as a reference model (not wired into assembly).
ZiB 4 meses atrás
pai
commit
926da45171
2 arquivos alterados com 56 adições e 2 exclusões
  1. 38 0
      batt_18650.scad
  2. 18 2
      cpu_case.scad

+ 38 - 0
batt_18650.scad

@@ -0,0 +1,38 @@
+// 18650 cell + single-cell holder — dimensional mockup for layout exploration
+// Dimensions are typical/guessed; tune before committing to a specific holder.
+//
+// Module origin: centre of holder footprint in XY, flat bottom at z=0.
+// Cell long axis runs along X. Cell protrudes above the cradle body.
+
+/* [18650 Cell] */
+CELL_D    = 18.5;   // nominal diameter
+CELL_L    = 65.5;   // body length (includes button-top positive terminal)
+
+/* [Single-cell holder body] */
+// Typical spring-contact cradle: flat floor, cell half-exposed above.
+// Spring on one end adds ~4 mm, thin side walls ~1.25 mm each side.
+HLDR_W    = 21.0;   // Y width  (cell dia + 2× side wall)
+HLDR_L    = 74.0;   // X length (cell + spring contact allowance)
+HLDR_FLOOR =  3.0;  // Z thickness of cradle floor under cell
+
+// Cell centre is at floor thickness + cell radius — bottom of cell sits on floor.
+CELL_CZ   = HLDR_FLOOR + CELL_D / 2;
+
+module CELL_18650() {
+    color("steelblue", 0.9)
+        rotate([0, 90, 0])
+            cylinder(d=CELL_D, h=CELL_L, $fn=48);
+}
+
+// Origin: XY centre of holder footprint, z=0 at flat bottom face.
+module HOLDER_18650() {
+    // Cradle floor body (solid block — end contacts not modelled)
+    color("dimgray", 0.7)
+        translate([-HLDR_L/2, -HLDR_W/2, 0])
+            cube([HLDR_L, HLDR_W, HLDR_FLOOR]);
+    // Cell sitting on the cradle, centred in XY
+    translate([0, 0, CELL_CZ])
+        CELL_18650();
+}
+
+HOLDER_18650();

+ 18 - 2
cpu_case.scad

@@ -9,6 +9,7 @@ SHOW_BOARD    = true;
 SHOW_LID      = true;
 SHOW_BASE     = true;
 SHOW_PLUNGERS = true;
+SHOW_BATTERY  = true;
 EXPLODE       = 65;      // mm to pull lid out in Y- for inspection (try 40)
 
 /* [Board Dimensions — from EE04 STL] */
@@ -68,11 +69,16 @@ PCB_BOSS_Y1   =  2.5;
 PCB_BOSS_Y2   =  PCB_W - 2.5;
 
 /* [Interior Clearances — PCB edge to interior wall face] */
-CLR_XN   =   5.0;   // X- side
-CLR_XP   =  15.0;   // X+ side (JST cable routing)
+CLR_XN   =   2.0;   // X- side
+CLR_XP   =  42.0;   // X+ side (JST cable routing)
 CLR_YN   =  15.0;   // Y- side (FPC routing; lid inserts from here)
 CLR_YP   =   1.77;  // Y+ side: calibrated contact(1.565) + rest clearance(0.20)
 CLR_LID  =   5.0;   // from tallest component top to lid underside
+BATT_W   =  34.5;   // 603449 LiPo width  (X)
+BATT_D   =  51.0;   // 603449 LiPo depth  (Y)
+BATT_T   =   6.3;   // 603449 LiPo thickness (Z)
+CLR_BATX =   1.5;   // battery X clearance from X+ wall
+CLR_BATY =   1.5;   // battery Y clearance from Y+ wall
 
 /* [Sliding Lid] */
 LID_T       =  1.5;   // lid ceiling thickness
@@ -278,11 +284,20 @@ module stl_board() {
         EE04();
 }
 
+module battery() {
+    translate([CAV_L - BATT_W - CLR_BATX,
+               CAV_W - BATT_D - CLR_BATY,
+               FLOOR])
+        cube([BATT_W, BATT_D, BATT_T]);
+}
+
 // ============================================================
 //  ASSEMBLY
 // ============================================================
 if (SHOW_BASE)  base();
 
+if (SHOW_BATTERY) battery();
+
 if (SHOW_LID)
     translate([0,
                WALL - EXPLODE,
@@ -295,3 +310,4 @@ if (SHOW_PLUNGERS)
     for (bcx = BTN_CX)
         translate([PCB_OX + bcx, OUT_W - WALL, PCB_Z + BTN_CZ])
             plunger();
+