// -*- C -*-
+dxf_off = [ -40, -85 ];
+
+torch_lit_dia = 37.5;
+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 = 4;
+
+torch_recess = 10;
+arm_width = 10;
+block_thick = 30;
+
+//$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;
+
+block_width = arm_width*2 + torch_big_dia;
+
+block_out = torch_out + torch_big_dia/sqrt(2);
+
module Torch(){
- import(file="screw-recess-test-number-s3.dxf", convexity=10);
-// import(file="maglite-holder-torch-curve.dxf", convexity=10);
+ mirror([0,0,1]){
+ hull(){
+ rotate_extrude()
+ translate(dxf_off)
+ import(file="maglite-holder-torch-curve.dxf",
+ convexity=10, center=true);
+ }
+ translate([0,0, -1])
+ cylinder(r=torch_lit_dia/2, h= torch_tot_len - torch_big_len + 1);
+ }
+}
+
+module TorchMovement(){
+ 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();
+ }
}
-linear_extrude(100) Torch();
+module Bracket(){
+ difference(){
+ mirror([0,1,0])
+ translate([-stem_width/2, 0, -stem_len])
+ cube([stem_width, stem_thick, stem_len]);
+ }
+ 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();
+