chiark / gitweb /
ksafe-base: wip, fix
[reprap-play.git] / velux-window-grip.scad
index ea1edea..d59a78f 100644 (file)
@@ -2,25 +2,51 @@
 
 include <funcs.scad>
 
-main_thick = 3.3;
-main_in_dia = 28.9 + 0.5;
+// MainLoop
 
-horn_ext_dia = 20 - 0.5; //?
+main_thick = 9.0;
+main_in_dia = 28.9;
 
-horn_c_x = -6; //?
-horn_c_dy= -4; //?
+horn_ext_dia = 20 - 0.5;
 
-blhook_start_ang = 40; //?
+horn_c_x = -4.6;
+horn_c_dy= -4;
 
-blhook_str_len = 5.4;
-blhook_mid_rad = 3.5; //?
+blhook_start_ang = 45;
+blhook_in_rad = 1.85;
+blhook_str_len = 2.9;
 
 width = 20;
 
+// Attach
+
+at_bolt_into = 13.0 + 0.5;
+at_tube_dia = 16.7 + 0.5;
+at_prong_minw = 4;
+at_rear_thick = 4.5;
+at_bolt_dia = 5 + 0.5;
+
+at_rear_width = at_tube_dia;
+at_stem_len = main_in_dia/2 * 0.3;
+
+at_prong_depth = at_bolt_into * 2;
+at_gap_width = at_tube_dia * 0.75;
+
+// computed
+
+blhook_mid_rad = blhook_in_rad + main_thick/2;
 mc_mid_rad = main_in_dia/2 + main_thick/2;
 
 mc_bl = circle_point([0,0], mc_mid_rad, 270-blhook_start_ang);
 
+at_block_x = at_tube_dia + at_prong_minw * 2;
+at_block_y = at_prong_depth + at_rear_thick;
+at_block_z = width;
+
+at_stem_yy = at_stem_len + mc_mid_rad;
+
+at_offset_y = at_block_y + at_stem_len + mc_mid_rad;
+
 $fs=0.05;
 
 horn_thick = main_thick;
@@ -78,5 +104,35 @@ module MainLoopTest(){
     MainLoop();
 }
 
-MainLoopTest();
+module Attach(){
+  difference(){
+    translate([0, at_block_y/2, 0])
+      cube(center=true, [at_block_x, at_block_y, at_block_z]);
+    translate([0, at_prong_depth/2-1, 0])
+      cube(center=true, [at_gap_width, at_prong_depth+2, at_block_z+1]);
+    translate([0,-1,0])
+      rotate([-90,0,0])
+      cylinder(r= at_tube_dia/2, h= at_prong_depth+1);
+    translate([-50, at_prong_depth-at_bolt_into, 0])
+      rotate([0,90,0])
+      cylinder(r= at_bolt_dia/2, h= 100);
+  }
+  difference(){
+    translate([0, at_block_y + at_stem_yy/2 - 0.1, 0])
+      cube(center=true, [at_tube_dia, at_stem_yy + 0.2, at_block_z]);
+    translate([0, at_offset_y, -50])
+      cylinder(r = mc_mid_rad, 100);
+  }
+}
+
+module Combine(){
+  rotate([0,0,45]) translate([0,-main_thick/2,0]){
+    linear_extrude(height=width)
+      translate([0,at_offset_y,0])
+      MainLoop();
+    translate([0,0, width/2])
+      Attach();
+  }
+}
 
+Combine();