chiark / gitweb /
anke-gps-bracket: NestleCube: add floor, adjust some sizes
[reprap-play.git] / anke-gps-bracket.scad
index 8d7c5428d3b4857ccb533470a52ff90b59cdcfa6..d774efba96d397df81b9e210edd84caafa011f71 100644 (file)
@@ -54,9 +54,6 @@ nestleddf = 4.0;
 nestleddbl = 3.3;
 nestleddbr = 3.6;
 
-nestlewallmin = 4;
-nestleceilmin = 4;
-
 // Adjustment for the GPS attitude and position
 gpsazimuth = 45;
 gpselevation = 40;
@@ -73,6 +70,7 @@ plughstep = 1.5;
 bodylhsrhsslop = 0.5;
 holderhgap = 5;
 holderbezelmore = 2;
+nestlebevel = 2;
 
 // Dimensions for strength only
 screent = 1.0;
@@ -86,6 +84,9 @@ holderdccount = 2;
 holderdoveclipl = 15;
 chassish = 13;
 chassist = 13;
+nestlefloorh = 2.0;
+nestleceilh = 2.0;
+nestlewallmin = 3.0;
 
 // Consequential values
 holderdcw = DoveClipPairSane_width(holderdccount);
@@ -191,19 +192,29 @@ module GpsPlugT(){ ////toplevel
 
 module NestleCubeCutout(ca,cb,d){
   dist = cb - ca;
+  cuth = -nestleh + nestlefloorh;
   mirror([0,1,0]){
+    translate([0,1,0])
     rotate([90,0,0]){
-      linear_extrude(height=d){
-       polygon([[ca, -nestleh-1],
-                [ca, -dist/2],
-                [(ca+cb)/2, 0],
-                [cb, -dist/2],
-                [cb, -nestleh-1]]);
+      linear_extrude(height=d+2){
+       polygon([[ca+nestlebevel, cuth],
+                [ca, cuth+nestlebevel*2],
+                [ca, -dist/2-nestleceilh],
+                [(ca+cb)/2, -nestleceilh],
+                [cb, -dist/2-nestleceilh],
+                [cb, cuth+nestlebevel*2],
+                [cb-nestlebevel, cuth]]);
       }
     }
   }
 }
 
+module NestleCubeBevel(){
+  translate([-nestlebevel, -100, -0.1])
+    rotate([0,30,0])
+    cube([nestlebevel*2, 200, nestlebevel*5]);
+}
+
 module NestleCube(){ ////toplevel
   midw = nestlew/2;
   midd = min(nestledl,nestledr);
@@ -219,29 +230,34 @@ module NestleCube(){ ////toplevel
   cutw0 = basew0 - nestlewallmin;
   cutw1 = basew1 + nestlewallmin;
 
-  translate([-(basew0+basew1)/2, -(based0+based1)/2, 0]) difference(){
-    polyhedron
-      (points=[[          +0      ,            +0,        0], // 0
-              [          +0      ,            +nestledr, 0], // 1
-              [          -midw   ,            +midd,     0], // 2
-              [          -nestlew,            +nestledl, 0], // 3
-              [          -nestlew,            +0,        0], // 4
-              [-nestledwr+0      , +nestleddf +0,        -nestleh], // 5
-              [-nestledwr+0      , -nestleddbr+nestledr, -nestleh], // 6
-              [          -midw   , -midddb    +midd,     -nestleh], // 7
-              [+nestledwl-nestlew, -nestleddbl+nestledl, -nestleh], // 8
-              [+nestledwl-nestlew, +nestleddf +0,        -nestleh]], // 9
-       triangles=[[0,1,6],[6,5,0],
-                 [1,2,7],[7,6,1],
-                 [2,3,8],[8,7,2],
-                 [3,4,9],[9,8,3],
-                 [4,0,5],[5,9,4],
-                 [4,3,2],[2,1,0],[0,4,2],
-                 [7,8,9],[5,6,7],[7,9,5]],
-       convexity=3);
-    intersection(){
-      NestleCubeCutout(cutw1, cutw0, max(nestledl,nestledr));
-      rotate([0,0,90]) NestleCubeCutout(cutd0, cutd1, nestlew);
+  translate([-(basew0+basew1)/2, -(based0+based1)/2, 0]) {
+    difference(){
+      polyhedron
+       (points=[[          +0      ,            +0,        0], // 0
+                [          +0      ,            +nestledr, 0], // 1
+                [          -midw   ,            +midd,     0], // 2
+                [          -nestlew,            +nestledl, 0], // 3
+                [          -nestlew,            +0,        0], // 4
+                [-nestledwr+0      , +nestleddf +0,        -nestleh], // 5
+                [-nestledwr+0      , -nestleddbr+nestledr, -nestleh], // 6
+                [          -midw   , -midddb    +midd,     -nestleh], // 7
+                [+nestledwl-nestlew, -nestleddbl+nestledl, -nestleh], // 8
+                [+nestledwl-nestlew, +nestleddf +0,        -nestleh]], // 9
+        triangles=[[0,1,6],[6,5,0],
+                   [1,2,7],[7,6,1],
+                   [2,3,8],[8,7,2],
+                   [3,4,9],[9,8,3],
+                   [4,0,5],[5,9,4],
+                   [4,3,2],[2,1,0],[0,4,2],
+                   [7,8,9],[5,6,7],[7,9,5]],
+        convexity=3);
+      intersection(){
+       #NestleCubeCutout(cutw1, cutw0, max(nestledl,nestledr));
+       #rotate([0,0,90]) NestleCubeCutout(cutd0, cutd1, nestlew);
+      }
+      translate([0,0,-nestleh]) {
+       translate([-nestledwr, 0, 0]) NestleCubeBevel();
+      }
     }
   }