--- /dev/null
+// -*- C -*-
+
+outerw = 140;
+outerh = 80;
+bezelw = 8;
+bezelboth = 8;
+bezeltoph = 8;
+outert = 10;
+
+spkrdia = 40;
+spkr2bot = 40;
+spkr2rhs = 30;
+
+plugw = 10;
+plugh = 8;
+plug2bot = 30;
+plug2lhs = 40;
+
+screent = 1.0;
+
+plugstrutw = 4;
+plugstrutt = min(outert, 5);
+
+module Gps() {
+ difference(){
+ union(){
+ difference(){
+ cube([outerw, outerh, outert]);
+ translate([bezelw, bezelboth, screent])
+ cube([outerw-bezelw*2, outerh-bezelboth-bezeltoph, outert]);
+ translate([outerw-spkr2rhs, spkr2bot, -1])
+ cylinder(r=spkrdia/2, h=outert+2);
+ }
+ translate([plug2lhs+plugw/2, plug2bot+plugh/2, 0.01])
+ cylinder(r=(plugw+plugh)/2, h=outert-0.02);
+ for (x=[plug2lhs-plugstrutw, plug2lhs+plugw])
+ translate([x, 0.1, 0.01])
+ cube([plugstrutw, outerh-0.2, plugstrutt-0.02]);
+ }
+ translate([plug2lhs, plug2bot, -1])
+ cube([plugw, plugh, outert+2]);
+ }
+}
+
+Gps();