chiark / gitweb /
anglepoise-neck: ArmPart seems ready to print
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Jun 2013 20:14:21 +0000 (21:14 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Jun 2013 20:14:21 +0000 (21:14 +0100)
Makefile
anglepoise-neck.scad [new file with mode: 0644]

index 8596f20..8654e5b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ PLAY ?= $(CWD)
 
 CONFIG=slic3r-config.ini
 
-USING_AUTOS ?= filamentspool xeno-drivebay-bracket dungeonquest-cone anke-gps-bracket cable-hole-trunking-cover
+USING_AUTOS ?= filamentspool xeno-drivebay-bracket dungeonquest-cone anke-gps-bracket cable-hole-trunking-cover anglepoise-neck.scad
 AUTO_TOPLEVELS := $(foreach m,$(USING_AUTOS),$(shell $(PLAY)/toplevel-find $m))
 
 scads:         $(addsuffix .auto.scad, $(AUTO_TOPLEVELS))
diff --git a/anglepoise-neck.scad b/anglepoise-neck.scad
new file mode 100644 (file)
index 0000000..e03f7c9
--- /dev/null
@@ -0,0 +1,36 @@
+// -*- C -*-
+
+arm_depth = 25;
+arm_pindepth = (16.15 + 18.00)/2;
+arm_innerwidth = 9.60 - 0.50;
+arm_innerheight = 8.90 - 0.50;
+
+armpart_hex_rad = 15;
+armpart_hex_thick = 8;
+
+hingepin_dia = 3;
+
+// computed
+
+armpart_x_unit = armpart_hex_rad * tan(30);
+
+module ArmPart(){ ////toplevel
+  translate([-arm_innerwidth/2, 1, 0])
+    mirror([0,-1,0])
+    cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
+  rotate([90,0,180])
+    linear_extrude(height=armpart_hex_thick)
+    for (mir=[0,1])
+      mirror([mir,0,0])
+       difference(){
+         polygon([[-1, 0],
+                  [armpart_x_unit, 0],
+                  [armpart_x_unit*2, armpart_hex_rad],
+                  [armpart_x_unit, armpart_hex_rad*2],
+                  [-1, armpart_hex_rad*2]]);
+         translate([0,armpart_hex_rad])
+           circle(hingepin_dia/2, $fn=20);
+        }
+}
+
+ArmPart();