X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=brompton-computer-guard.scad;h=efb3a8a129bd7bdfac21ca94a86c19401c152cc3;hp=050ba970646da1ad080983d4aecaec5bf323b708;hb=1f1a48c7ecc8938a779353150fa6a68b5da0c8ee;hpb=0183f7301e68bf448529b9712dd8aecc47c33859 diff --git a/brompton-computer-guard.scad b/brompton-computer-guard.scad index 050ba97..efb3a8a 100644 --- a/brompton-computer-guard.scad +++ b/brompton-computer-guard.scad @@ -1,16 +1,16 @@ // -*- C -*- -arch_height = 24; +arch_height = 18; arch_width = 75; end_width = 25; -arch_thick = 5; +arch_thick = 4; arch_breadth = 25; -hole_dia = 3 + 0.5; +hole_dia = 4 + 0.5; -pbase_tab = 15; +pbase_tab = 12; pbase_thick = 2; // computed @@ -21,10 +21,15 @@ echo(arch_alpha,arch_beta); arch_in_rad = arch_width/2 / sin(arch_beta); arch_to_chord = arch_in_rad * cos(arch_beta); +inner_pbase_thick = 6; +echo(inner_pbase_thick); + +inner_pbase_rad = arch_in_rad * 2; + end_thick = arch_thick; holes = [[[ 5 , 5 ], [16 , 21]], // left - [[ 18.5, 4.5], [ 4.5, 22]]]; // right + [[ 18.5, 4.5], [ 4.5, 21]]]; // right module ArchCircle(rad){ translate([0,-arch_to_chord]) @@ -41,9 +46,12 @@ module ArchProfile(pbase){ for (m=[0,1]) mirror([m,0]) translate([arch_width/2,0]) + multmatrix([[1,pbase ? -0.75 : 0,0,0], + [0,1,0,0], + [0,0,1,0], + [0,0,0,1]]) square([end_width, pbase ? pbase_tab : end_thick]); } - ArchCircle(arch_in_rad); } } } @@ -60,14 +68,38 @@ module Holes(){ } } +module MainCutout(){ + ArchCircle(arch_in_rad); +} + module Arch(){ difference(){ - rotate([0,0,180]) union(){ - linear_extrude(height=arch_breadth) ArchProfile(false); - linear_extrude(height=pbase_thick) ArchProfile(true); + rotate([0,0,180]){ + linear_extrude(height=arch_breadth) { + difference(){ + ArchProfile(false); + MainCutout(); + } + } + difference(){ + linear_extrude(height=pbase_thick){ + difference(){ + hull(){ + ArchProfile(true); + ArchProfile(false); + } + intersection(){ + MainCutout(); + translate([0, -inner_pbase_thick + - (inner_pbase_rad - arch_in_rad)]) + ArchCircle(inner_pbase_rad); + } + } + } + } } Holes(); } } -Arch(); +rotate([0,0,45]) Arch();