chiark / gitweb /
maglite-holder: soup up demo
[reprap-play.git] / maglite-holder.scad
index f661c1c2a233ee000e2a482fd500a2fb8288b7fd..529aedba5f826bdbbbd4f5d63d6904ccbed4beff 100644 (file)
@@ -13,13 +13,18 @@ torch_clear_below = 10;
 stem_width = 20;
 stem_thick = 8;
 
-torch_recess = 14;
+torch_recess = 11;
 arm_width = 10;
 block_thick = 15;
 
 torch_out_more = 10;
 
-brace = [ 40, 10, 20 ];
+brace = [ 40, 20, 20 ];
+
+hole_dia = 4 + 0.5;
+hole_slot = 5;
+
+slop = 2; // total, not each side
 
 $fa=5;
 
@@ -39,7 +44,7 @@ block_width = arm_width*2 + torch_big_dia;
 
 block_out = torch_out + torch_big_dia/2/sqrt(2);
 
-module Torch(){
+module TorchOrig(){
   mirror([0,0,1]){
     hull(){
       rotate_extrude()
@@ -52,6 +57,26 @@ module Torch(){
   }
 }
 
+module Torch(){
+  scale(slop/torch_lit_dia + 1.0)
+    TorchOrig();
+}
+
+module ScrewHole(y, rot) {
+  translate([0,0, above -y]){
+    rotate([0,rot,0]){
+      hull(){
+       for (d= [-1,+1] * hole_slot/2) {
+         translate([d,0,0])
+           rotate([90,0,0])
+           translate([0,0,-stem_thick*2])
+           cylinder(r= hole_dia/2, h= stem_thick*4);
+       }
+      }
+    }
+  }
+}    
+
 module TorchMovement(){
   // xxx needs torch increasing for slop
   translate([0, -torch_out, 0]) {
@@ -75,7 +100,8 @@ module Bracket(){
          cube([brace[0], brace[1], 1]);
       }
     }
-    // xxx needs screw holes
+    ScrewHole(holes[0], 90);
+    ScrewHole(holes[1], 0);
   }
   difference(){
     mirror([0,1,0])
@@ -86,8 +112,12 @@ module Bracket(){
 }
 
 module Demo(){
-  translate([0, -torch_out, 0])
-    %Torch();
+  color("black")
+    translate([0, -torch_out, 0])
+    TorchOrig();
+  color("blue")
+    translate([0, -torch_out, above])
+    cylinder(r=torch_big_dia/2, h=1);
   Bracket();
 }