chiark / gitweb /
anglepoise-neck: wip headpart
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Jun 2013 20:29:17 +0000 (21:29 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Jun 2013 20:29:17 +0000 (21:29 +0100)
anglepoise-neck.scad

index e03f7c96f3a1bd4f33abc6d30174440e617cecd1..7559684faa0e1062214008e0c9cd502a0140776f 100644 (file)
@@ -10,9 +10,19 @@ armpart_hex_thick = 8;
 
 hingepin_dia = 3;
 
+headpart_main_dia = 15 - 0.3;
+headpart_main_len = 14;
+headpart_stub_protrude = 2;
+headpart_stub_width = 11.7 - 0.3;
+
+headpart_flatten_angle = 45;
+
 // computed
 
 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;
 
 module ArmPart(){ ////toplevel
   translate([-arm_innerwidth/2, 1, 0])
@@ -33,4 +43,27 @@ module ArmPart(){ ////toplevel
         }
 }
 
-ArmPart();
+module HeadPart(){ ////toplevel
+  difference(){
+    union(){
+      translate([-headpart_main_len/2, 0,0])
+       rotate([0,90,0])
+       cylinder(r=headpart_main_dia/2, h=headpart_main_len, $fn=40);
+      rotate([90,0,0])
+       cylinder(h = headpart_stub_len,
+                r = headpart_stub_width/2,
+                $fn = 6);
+      translate([-headpart_stub_support_x,
+                -headpart_stub_len,
+                -headpart_main_dia/2])
+       cube([headpart_stub_support_x*2,
+             headpart_stub_len,
+             headpart_main_dia/2]);
+    }
+    translate([-100,-100,-100])
+      cube([200,200, 100 - headpart_flatten_z]);
+  }
+}
+
+//ArmPart();
+HeadPart();