3 // Dimensions of the main GPS body
8 // Dimensions of the bezel area round the edges
13 // Dimensions of the speaker at the back
18 // Dimensions of the plug and wire
26 // Amount of wire protrusion to allow for
29 // Slops and steps etc.
34 // Dimensions for strength only
37 plugstrutt = min(outert, 5);
39 module GpsPlugPlug(slop){
40 effhslop = slop - plughstep;
41 effplugw = plugw + slop*2;
42 effplugh = plugh + effhslop*2;
43 translate([plug2lhs-slop, plug2bot-effhslop, -1])
44 cube([effplugw, effplugh, outert+2]);
51 cube([outerw, outerh, outert]);
52 translate([bezelw, bezelboth, screent])
53 cube([outerw-bezelw*2, outerh-bezelboth-bezeltoph, outert]);
54 translate([outerw-spkr2rhs, spkr2bot, -1])
55 cylinder(r=spkrdia/2, h=outert+2);
57 translate([plug2lhs+plugw/2, plug2bot+plugh/2, 0.05])
58 cylinder(r=(plugw+plugh)/2, h=outert-0.02);
59 for (x=[plug2lhs-plugstrutw, plug2lhs+plugw])
60 translate([x, 0.1, 0.05])
61 cube([plugstrutw, outerh-0.2, plugstrutt-0.10]);
68 plugwireh = plug2bot + plugwiremoreh;
69 GpsPlugPlug(-plugslop);
70 mirror([0,0,1]) translate([plug2lhs, plug2bot, 0]) {
71 cube([plugw, plugh, plugtotald-0.05]);
72 translate([0, -plugwireh, pluggapd])
73 cube([plugw, plugwireh+0.05, plugtotald-pluggapd]);
79 module GpsLHSMask(xslop=0){
80 translate([plug2lhs + plugw+plugh+plugstrutw,
83 for (iter=[-100/lhsteethu : 100/lhsteethu]) {
84 translate([0, iter*lhsteethu*2, 0]) {
85 linear_extrude(height=100) {
88 [lhsteethu,lhsteethu],
90 [-300, lhsteethu*2+0.1]]);
97 module GpsAssembled(){ ////toplevel
102 module GpsBodyLT(){ ////toplevel
109 module GpsBodyRT(){ ////toplevel
112 GpsLHSMask(bodylhsrhsslop);
116 module GpsPlugT(){ ////toplevel
117 rotate([0,-90,0]) GpsPlug();