chiark / gitweb /
cable-hole-trunking-cover: wip, before mirroring
[reprap-play.git] / cable-hole-trunking-cover.scad
index c8a5606c6ebce85b5d161f37348cf5cfbcdce9c4..ce44475e34cce28f0fe36772c744898790456f34 100644 (file)
@@ -1,15 +1,26 @@
 // -*- C -*-
 
-basex = 30;
-basey = 45;
+holedia = 25.4;
+
+sidewidth = 5;
+tapewidth = 7;
+
+innerz = 10;
+
+basex = holedia + sidewidth*2;
+basey = holedia + tapewidth*2;
 
 bevelz = 3;
 bevelslope = 0.75;
 bevely = bevelz * bevelslope;
 
+sideslop = 0.5;
+
 basebaset = 2;
 basebevelt = 3;
 
+endwallt = 2;
+
 module sheared_cube(sz, xperz, yperz) {
   multmatrix([[1,0,xperz,0],
              [0,1,yperz,0],
@@ -19,13 +30,33 @@ module sheared_cube(sz, xperz, yperz) {
 }
 
 module Base(){
-  translate([0, basey-basebevelt, 0])
+  difference(){
+    union(){
+      translate([0, basey-basebevelt, 0])
+       sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
+      sheared_cube([basex, basebevelt, bevelz], 0, -bevelslope);
+      cube([basex, basey, basebaset]);
+    }
+    translate([basex/2, basey/2, -1])
+      cylinder(r=holedia/2, h=bevelz+2);
+  }
+
+  rotate([90, 0, 90])
+    linear_extrude(height=endwallt)
+    polygon([[0,     0],
+            [basey, 0],
+            [basey + bevely, bevelz],
+            [basey + bevely, innerz],
+            [      - bevely, innerz],
+            [      - bevely, bevelz]]);
+}
+
+module Lid(){
+  translate([0, basey + sideslop, 0])
     sheared_cube([basex, basebevelt, bevelz], 0, bevelslope);
-  sheared_cube([basex, basebevelt, bevelz], 0, -bevelslope);
-  cube([basex, basey, basebaset]);
-//  sheared_cube([10,20,30], 0.5, 3);
-//  cube([basew, baseh, 0.1]);
-//  translate([
+  translate([0, -basebevelt - sideslop, 0])
+    sheared_cube([basex, basebevelt, bevelz], 0, -bevelslope);
 }
 
 Base();
+Lid();