X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=cable-hole-trunking-cover.scad;h=566ed76ba604b7d7302a175c0ff4f46e6ca6fa4f;hb=8549519ed54637e38ceb0fea6edb7d417668fd8a;hp=ce44475e34cce28f0fe36772c744898790456f34;hpb=04195250c42a874f5d9a5860cd49fe6742b5f60a;p=reprap-play.git diff --git a/cable-hole-trunking-cover.scad b/cable-hole-trunking-cover.scad index ce44475..566ed76 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; + +cutoutsz= 10; innerz = 10; @@ -17,9 +20,12 @@ bevely = bevelz * bevelslope; sideslop = 0.5; basebaset = 2; -basebevelt = 3; +sidewallt = 2; +lidt = 1.3; endwallt = 2; +zslop = 0.75; +endslop = 0.75; module sheared_cube(sz, xperz, yperz) { multmatrix([[1,0,xperz,0], @@ -29,34 +35,74 @@ module sheared_cube(sz, xperz, yperz) { cube(sz); } -module Base(){ +module Base(cutouty){ + echo(cutouty); 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]); + } } - translate([basex/2, basey/2, -1]) + translate([basex/2, 0, -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]]); + rotate([90, 0, 90]) { + linear_extrude(height=endwallt) { + difference(){ + for (mir=[0,1]) mirror([mir,0,0]) { + polygon([[-0.1, 0], + [basey/2, 0], + [basey/2 + bevely, bevelz], + [basey/2 + bevely, innerz], + [-0.1, innerz]]); + } + translate([cutouty, 0]) + square(size=[cutoutsz, 3*innerz], center=true); + } + } + } } module Lid(){ - translate([0, basey + sideslop, 0]) - sheared_cube([basex, basebevelt, bevelz], 0, bevelslope); - translate([0, -basebevelt - sideslop, 0]) - sheared_cube([basex, basebevelt, bevelz], 0, -bevelslope); + lidx = basex + endslop + endwallt; + for (mir=[0,1]) mirror([0,mir,0]) { + translate([0, basey/2 + sideslop + bevely, 0]) + rotate([90,0,90]) + linear_extrude(height = lidx) + polygon([[0, 0], + [-bevely, 0], + [0, bevelz], + [0, innerz + lidt + zslop], + [sidewallt, innerz + lidt + zslop], + [sidewallt, -tapethick], + [0, -tapethick]]); + 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]); + } +} + +module LidT(){ ////toplevel + rotate([180,0,0]) Lid(); +} + +module BaseCMid(){ ////toplevel + Base(0); +} + +module BaseCTop(){ ////toplevel + Base(basey/2 + bevely - cutoutsz/2); +} + +module BaseCBot(){ ////toplevel + Base(-(basey/2 + bevely - cutoutsz/2)); } -Base(); -Lid(); +//BaseCTop(); +//BaseCMid(); +//BaseCBot(); +//LidT();