X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=cable-hole-trunking-cover.scad;h=584ee01512405e75a696f698acfcba441e4a59e9;hp=889a97b6a86ba35cf8c45704d6be2dcda1b2a3f9;hb=bfb32f283d0fcd5f187290f1c34b820d965b0f5a;hpb=4aa1de9b7da7d56362b25656622fff945f31a087 diff --git a/cable-hole-trunking-cover.scad b/cable-hole-trunking-cover.scad index 889a97b..584ee01 100644 --- a/cable-hole-trunking-cover.scad +++ b/cable-hole-trunking-cover.scad @@ -4,6 +4,9 @@ holedia = 25.4; sidewidth = 5; tapewidth = 7; +tapethick = 1; + +innerz = 10; basex = holedia + sidewidth*2; basey = holedia + tapewidth*2; @@ -12,8 +15,15 @@ bevelz = 3; bevelslope = 0.75; bevely = bevelz * bevelslope; +sideslop = 0.5; + basebaset = 2; -basebevelt = 3; +sidewallt = 3; + +lidt = 2; +endwallt = 2; +zslop = 0.75; +endslop = 0.75; module sheared_cube(sz, xperz, yperz) { multmatrix([[1,0,xperz,0], @@ -26,18 +36,38 @@ module sheared_cube(sz, xperz, yperz) { module Base(){ 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]); + for (mir=[0,1]) mirror([0,mir,0]) { + translate([0, basey/2 - sidewallt, 0]) + sheared_cube([basex, sidewallt, bevelz], 0, bevelslope); + cube([basex, basey/2, basebaset]); + rotate([90, 0, 90]) + linear_extrude(height=endwallt) + polygon([[-0.1, 0], + [basey/2, 0], + [basey/2 + bevely, bevelz], + [basey/2 + bevely, innerz], + [-0.1, innerz]]); + } } - translate([basex/2, basey/2, -1]) + translate([basex/2, 0, -1]) cylinder(r=holedia/2, h=bevelz+2); } - -// sheared_cube([10,20,30], 0.5, 3); -// cube([basew, baseh, 0.1]); -// translate([ +} + +module Lid(){ + lidx = basex + endslop + endwallt; + for (mir=[0,1]) mirror([0,mir,0]) { + translate([0, basey/2 + sideslop, 0]) + sheared_cube([lidx, sidewallt, bevelz], 0, bevelslope); + translate([0, basey/2 + sideslop + bevely, -tapethick]) + cube([lidx, sidewallt, innerz + tapethick + lidt + zslop]); + translate([0, -1, innerz + zslop]) + cube([lidx, 1 + basey/2 + sideslop + bevely + sidewallt, lidt]); + translate([basex + endslop, -1, -tapethick]) + cube([endwallt, 1 + basey/2 + sideslop + bevely + sidewallt, + tapethick + innerz + zslop + 0.1]); + } } Base(); +%Lid();