chiark / gitweb /
sleepphone-cable-box: support trick, print orientation
[reprap-play.git] / brompton-computer-guard.scad
index 94803d2..35b0a18 100644 (file)
@@ -11,7 +11,7 @@ arch_breadth = 25;
 hole_dia = 4 + 0.5;
 
 pbase_tab = 12;
-pbase_thick = 2;
+pbase_thick = 4;
 
 // computed
 
@@ -21,6 +21,11 @@ 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 = 8;
+echo(inner_pbase_thick);
+
+inner_pbase_rad = arch_in_rad * 2;
+
 end_thick = arch_thick;
 
 holes = [[[  5  , 5  ], [16  , 21]], // left
@@ -64,27 +69,38 @@ module Holes(){
 }
 
 module MainCutout(){
-  translate([0,0,-1]) linear_extrude(height=100)
-    ArchCircle(arch_in_rad);
+  ArchCircle(arch_in_rad);
 }
 
 module Arch(){
   difference(){
     rotate([0,0,180]){
-      difference(){
-       linear_extrude(height=arch_breadth) ArchProfile(false);
-       MainCutout();
+      linear_extrude(height=arch_breadth) {
+       difference(){
+         ArchProfile(false);
+         MainCutout();
+       }
       }
       difference(){
-       linear_extrude(height=pbase_thick) hull(){
-         ArchProfile(true);
-         ArchProfile(false);
+       translate([0,0, arch_breadth - pbase_thick])
+       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);
+           }
+         }
        }
-       MainCutout();
       }
     }
     Holes();
   }
 }
 
-rotate([0,0,45]) Arch();
+rotate([0,0,45]) translate([0,0,arch_breadth]) rotate([0,180,0]) Arch();