X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=anke-gps-bracket.scad;h=084eefd2579d7f31311191fc115920c16c141b4c;hp=81c39f3e86c7ae2cb5650848bc8d33454cc97762;hb=6371b5cb46cde0d570f2283d800d0c674e265873;hpb=1477aee703578a5e6111064a36bbefb60c20e187;ds=sidebyside diff --git a/anke-gps-bracket.scad b/anke-gps-bracket.scad index 81c39f3..084eefd 100644 --- a/anke-gps-bracket.scad +++ b/anke-gps-bracket.scad @@ -1,9 +1,5 @@ // -*- C -*- -// todo -// nestlecube does not fit -// nestlecube doveclip at wrong angle - include // Dimensions of the main GPS body @@ -45,14 +41,14 @@ pluggapd = 5; nestleh = 53; nestlew = 60.9; // depths (back to front distance): -nestledl = 38.3 + 1.9; -nestledr = 42.2 + 1.7; +nestledl = 40.2; +nestledr = 43.9; // differences in width, depth, at bottom: -nestledwl = 3.0; -nestledwr = 2.4; +nestledwl = 2.1; +nestledwr = 1.4; nestleddf = 4.0; -nestleddbl = 3.3; -nestleddbr = 3.6; +nestleddbl = 5.7; +nestleddbr = 5.2; // Adjustment for the GPS attitude and position gpsazimuth = 45; @@ -70,7 +66,7 @@ plughstep = 1.5; bodylhsrhsslop = 0.5; holderhgap = 5; holderbezelmore = 2; -nestlebevel = 2; +nestlebevel = 1; // Dimensions for strength only screent = 1.0; @@ -84,9 +80,10 @@ holderdccount = 2; holderdoveclipl = 15; chassish = 13; chassist = 13; -nestlefloorh = 2.0; -nestleceilh = 2.0; -nestlewallmin = 3.0; +nestlefloorh = 4.7; +nestleceilh = 6.0; +nestlewallmin = 10.0; +nestlearchslope = 0.75 * sqrt(0.5); // Consequential values holderdcw = DoveClipPairSane_width(holderdccount); @@ -199,9 +196,9 @@ module NestleCubeCutout(ca,cb,d){ linear_extrude(height=d+2){ polygon([[ca+nestlebevel, cuth], [ca, cuth+nestlebevel*2], - [ca, -dist/2-nestleceilh], + [ca, -dist/2/nestlearchslope-nestleceilh], [(ca+cb)/2, -nestleceilh], - [cb, -dist/2-nestleceilh], + [cb, -dist/2/nestlearchslope-nestleceilh], [cb, cuth+nestlebevel*2], [cb-nestlebevel, cuth]]); } @@ -209,13 +206,6 @@ module NestleCubeCutout(ca,cb,d){ } } -module NestleCubeBevel(rot){ - rotate([0,0,rot]) - 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); @@ -226,6 +216,10 @@ module NestleCube(){ ////toplevel basew0 = -nestledwr; basew1 = +nestledwl-nestlew; + echo("wl,wr=", basew1, basew0); + echo("df,dbl,dbm,dbr", + based0, nestledl-nestleddbl, based1, nestledr-nestleddbr); + cutd0 = based0 + nestlewallmin; cutd1 = based1 - nestlewallmin; cutw0 = basew0 - nestlewallmin; @@ -260,7 +254,6 @@ module NestleCube(){ ////toplevel [2,3,8],[8,7,2], [3,4,9],[9,8,3], [4,0,5],[5,9,4], - [0,1,6],[6,5,0], // bevels [6,7,12],[12,11,6], [7,8,13],[13,12,7], @@ -271,7 +264,7 @@ module NestleCube(){ ////toplevel [4,3,2],[2,1,0],[0,4,2], [12,13,14],[10,11,12],[12,14,10]], convexity=3); - intersection(){ + union(){ #NestleCubeCutout(cutw1, cutw0, max(nestledl,nestledr)); #rotate([0,0,90]) NestleCubeCutout(cutd0, cutd1, nestlew); } @@ -279,12 +272,28 @@ module NestleCube(){ ////toplevel } translate([gpsrightwardoffset,-gpsrearwardoffset,0]) - rotate([0,0,gpsazimuth]) + rotate([0,0,90+gpsazimuth]) translate([nestledoveclipw/2,0,DoveClip_depth()-0.5]) rotate([0,-90,0]) DoveClipPairSane(count=3, h=nestledoveclipw); } +module NestleCubeBaseTest(){ ////toplevel + intersection(){ + translate([0,0,nestleh]) NestleCube(); + translate([-100,-100,0]) cube([200,200,nestlebevel*5]); + } + cube([5,5,10]); +} + +module NestleCubeCeilTest(){ ////toplevel + intersection(){ + translate([0,0,3]) NestleCube(); + translate([-100,-100,0]) cube([200,200,5.5]); + } + cube([5,5,10]); +} + module NestleCubePin(){ ////toplevel DoveClipPin(nestledoveclipw*0.4); } @@ -355,6 +364,8 @@ module Pins(){ ///toplevel //GpsAssembled(); //GpsBody(); //NestleCube(); +//NestleCubeBaseTest(); +//NestleCubeCeilTest(); //NestleCubePin(); //HolderSideL(); //HolderSideR();