chiark / gitweb /
anglepoise-neck: ArmPart pin hole
[reprap-play.git] / anglepoise-neck.scad
index 7559684faa0e1062214008e0c9cd502a0140776f..72d16e482ee73aff661ee79d54eb678ba9b60124 100644 (file)
@@ -1,14 +1,17 @@
 // -*- C -*-
 
 arm_depth = 25;
-arm_pindepth = (16.15 + 18.00)/2;
 arm_innerwidth = 9.60 - 0.50;
 arm_innerheight = 8.90 - 0.50;
+arm_pin_depth = (16.15 + 18.00)/2;
+arm_pin_dia = 1.5;
 
 armpart_hex_rad = 15;
 armpart_hex_thick = 8;
 
 hingepin_dia = 3;
+hingenut_width = 6;
+hingenut_depth = 4;
 
 headpart_main_dia = 15 - 0.3;
 headpart_main_len = 14;
@@ -23,11 +26,18 @@ armpart_x_unit = armpart_hex_rad * tan(30);
 headpart_flatten_z = headpart_main_dia/2 * cos(headpart_flatten_angle);
 headpart_stub_support_x = headpart_stub_width * cos(59) / 2;
 headpart_stub_len = headpart_stub_protrude + headpart_main_dia/2;
+hingenut_depth_y =
+  sqrt(headpart_main_dia*headpart_main_dia/4 - hingenut_width*hingenut_width/4)
+  - hingenut_depth;
 
 module ArmPart(){ ////toplevel
-  translate([-arm_innerwidth/2, 1, 0])
-    mirror([0,-1,0])
-    cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
+  difference(){
+    translate([-arm_innerwidth/2, 1, 0])
+      mirror([0,-1,0])
+      cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
+    translate([0, -arm_pin_depth, -50])
+      cylinder(r=arm_pin_dia/2, h=100);
+  }
   rotate([90,0,180])
     linear_extrude(height=armpart_hex_thick)
     for (mir=[0,1])
@@ -62,8 +72,14 @@ module HeadPart(){ ////toplevel
     }
     translate([-100,-100,-100])
       cube([200,200, 100 - headpart_flatten_z]);
+    rotate([90,0,0])
+      translate([0,0, -100])
+      cylinder(r=hingepin_dia/2, h = 200, $fn=20);
+    translate([0,hingenut_depth_y,0])
+      rotate([90,0,180])
+      cylinder(r=hingenut_width/2/cos(30), h=20, $fn=6);
   }
 }
 
 //ArmPart();
-HeadPart();
+//HeadPart();