chiark / gitweb /
Merge branch 'fairphone-battery-case-v3'
[reprap-play.git] / fairphone-battery-case.scad
index fcc9eb08101ede0c80885d027a9c0244347fee47..7ca96540a315de7a9ffce93857eff24b364c16a4 100644 (file)
@@ -1,38 +1,71 @@
 // -*- C -*-
 
-mainwall_th = 2.5;
-smallwall_th = 1.5;
+mainwall_th = 3.0;
+smallwall_th = 2.0;
 
-seal_th = 0.3 + 0.6; // total gap for seal etc.
-behind_recess = 1.0;
+seal_th = 0.3 + 0.6 + 0.6; // total gap for seal etc.
+behind_recess = 1.5;
 
-recess_gap_end = 0.2;
+recess_gap_end = 0.4;
 
 lid_edge_th = 0.5;
 
-battery_len = 66.55 + 0.75;
-battery_th = 6.55 + 0.75;
+battery_len = 66.55 + 1.25;
+battery_th = 6.55 + 0.75 - .90;
 battery_wdth = 44.38 + 0.75;
 
+battery_base_indent = 0.94 + 0.50;
+battery_base_indent_fromside_outside = 4;
+battery_base_indent_fromside_inside = 10;
+
+// for testing:
+//battery_len = 3;
+//battery_wdth = 15;
+//battery_base_indent_fromside_inside = 6;
+
 // calculated
 
 bpp0 = [0,0];
 bpp1 = bpp0 + [ 0, mainwall_th - behind_recess ];
 lppA = bpp1 + [ seal_th, -recess_gap_end ];
 lppB = lppA + [ lid_edge_th, 0 ];
-bpp2 = [ lppB[0], bpp1[0] ];
-bpp3 = [ bpp2 + [ bpp1[1] - bpp0[1] ], bpp[0] ];
+bpp2 = [ lppB[0], bpp1[1] ];
+bpp3 = [ bpp2[0] + (bpp1 - bpp0)[1], bpp0[1] ];
+bpp4 = [ bpp3[0], bpp0[1] + mainwall_th ];
 lppC = bpp3 + [ 0, -recess_gap_end ];
 
+s0 = battery_wdth/2;
+s1 = s0 + smallwall_th;
+
+echo(
+     bpp0,
+     bpp1,
+     bpp2,
+     bpp3,
+     bpp4,
+     bpp5,
+     bpp6,
+     bpp7,
+     bpp8
+);
+
+echo(
+     lppA,
+     lppB,
+     lppC,
+     lppD,
+     lppE
+);
+
 bpp8 = bpp0 + [ -battery_len,0 ];
-bpp5 = [ bpp8[0] - smallwall_th, bpp4[0] ];
-bpp9 = [ bpp0[0], bpp[1] - battery_wdth/2 - 1.0 ];
+bpp5 = [ bpp8[0] - smallwall_th, bpp4[1] ];
+bpp9 = [ bpp0[0], bpp0[1] - battery_th/2 - 1.0 ];
 bpp7 = [ bpp8[0], bpp9[1] ];
 bpp6 = [ bpp5[0], bpp9[1] ];
 lppE = [ lppA[0], bpp9[1] ];
 lppD = [ lppC[0], bpp9[1] ];
 
-module BaseHalfPlan(){
+module BaseHalfPlan(indent=0){
   polygon([ bpp0,
            bpp1,
            bpp2,
@@ -40,8 +73,16 @@ module BaseHalfPlan(){
            bpp4,
            bpp5,
            bpp6,
-           bpp7,
-           bpp8
+           bpp7 + indent * [1,0],
+           bpp8 + indent * [1,0]
+           ]);
+}
+
+module SideHalfPlan(){
+  polygon([ bpp5,
+           bpp6,
+           bpp9,
+           bpp1
            ]);
 }
 
@@ -54,9 +95,52 @@ module LidHalfPlan(){
            ]);
 }
 
-module PlanDemo(){
+module ExtrudePlan(from,to){
+  rotate([0,-90,0])
+  for (mj=[0,1]) {
+    mirror([0,0,mj]) translate([0,0,from]){
+      linear_extrude(height= to-from){
+       for (mi=[0,1]) {
+         mirror([0,mi])
+           translate([0, battery_th/2])
+           children(0);
+       }
+      }
+    }
+  }
+}
+
+module PlanDemo(){ ////toplevel
   color("blue") BaseHalfPlan();
   color("red") LidHalfPlan();
+  translate([0,0,-1]) color("lightblue") SideHalfPlan();
+}
+
+module Base(){ ////toplevel
+  ExtrudePlan(0,s1) BaseHalfPlan();
+  ExtrudePlan(s0,s1) SideHalfPlan();
+  ExtrudePlan(s0 - battery_base_indent_fromside_inside,
+             s0 - battery_base_indent_fromside_outside
+             ) BaseHalfPlan(indent = battery_base_indent);
+}
+
+module BaseHalfTest(){ ////toplevel
+  intersection(){
+    Base();
+    translate([-100,0,-100])
+      cube([200,200,200]);
+  }
+}
+
+module Lid(){ ////toplevel
+  ExtrudePlan(0,s1) LidHalfPlan();
+}
+
+module Demo(){ ////toplevel
+  %Base();
+  Lid();
 }
 
-PlanDemo();
+//PlanDemo();
+//Demo();
+//Base();