chiark / gitweb /
maglite-holder: some xxxs
[reprap-play.git] / maglite-holder.scad
index 233d851621ee8bc96d449f877f835fd653f9dc68..f661c1c2a233ee000e2a482fd500a2fb8288b7fd 100644 (file)
@@ -7,8 +7,38 @@ torch_big_dia = 56.5;
 torch_tot_len = 256;
 torch_big_len = 60;
 
+torch_clear = 30;
+torch_clear_below = 10;
+
+stem_width = 20;
+stem_thick = 8;
+
+torch_recess = 14;
+arm_width = 10;
+block_thick = 15;
+
+torch_out_more = 10;
+
+brace = [ 40, 10, 20 ];
+
 $fa=5;
 
+// calculated
+
+above = torch_big_len + torch_clear + torch_clear_below;
+
+holes = [ 172, 265 ];
+
+stem_below = stem_width/2;
+
+stem_len = holes[1] - above + stem_below;
+
+torch_out = stem_thick + torch_big_dia/2 + torch_out_more;
+
+block_width = arm_width*2 + torch_big_dia;
+
+block_out = torch_out + torch_big_dia/2/sqrt(2);
+
 module Torch(){
   mirror([0,0,1]){
     hull(){
@@ -22,4 +52,44 @@ module Torch(){
   }
 }
 
-Torch();
+module TorchMovement(){
+  // xxx needs torch increasing for slop
+  translate([0, -torch_out, 0]) {
+    translate([0, 0, -torch_recess])
+      Torch();
+    rotate([90,0,0])
+      linear_extrude(height= block_out)
+      projection() rotate([-90,0,0]) Torch();
+  }
+}
+
+module Bracket(){
+  difference(){
+    mirror([0,1,0]) {
+      translate([-stem_width/2, 0, -stem_len])
+       cube([stem_width, stem_thick, stem_len]);
+      translate([0,0, -block_thick]) hull(){
+       translate([-stem_width/2, 0, -brace[2]])
+         cube([stem_width, stem_thick, 1]);
+       translate([-brace[0]/2, 0, 0])
+         cube([brace[0], brace[1], 1]);
+      }
+    }
+    // xxx needs screw holes
+  }
+  difference(){
+    mirror([0,1,0])
+      translate([-block_width/2, 0, -block_thick])
+      cube([block_width, block_out, block_thick]);
+    TorchMovement();
+  }
+}
+
+module Demo(){
+  translate([0, -torch_out, 0])
+    %Torch();
+  Bracket();
+}
+
+Demo();
+