diff --git a/case/backplate.stl b/case/backplate.stl new file mode 100644 index 0000000..8b6d747 Binary files /dev/null and b/case/backplate.stl differ diff --git a/case/case.scad b/case/case.scad new file mode 100644 index 0000000..e6dafaa --- /dev/null +++ b/case/case.scad @@ -0,0 +1,252 @@ +echo(version=version()); + +module stand() { +color([0.4,0.9,1.0,1.0]) +difference() { + difference() { + union(){ + translate([-10, 0, 35]) import("pistand.stl", convexity=3); + translate([10, 0, 35]) import("pistand.stl", convexity=3); + rotate([65,0,0]) + translate([0, 56, 1]) linear_extrude(height = 2.3) + square([90,40], center = true); + } + + rotate([65,0,0]) + translate([0, 56, 0]) linear_extrude(height = 4) + square([66,35], center = true); + } + rotate([0,0,0]) + translate([0, 25, -1]) linear_extrude(height = 4) + square([52,36], center = true); +}}; + + +module backing(){ + translate([0, 0, 3]) + difference() { + translate([0, 23.7, -2.7]) + linear_extrude(height = 34.9) + square([89.9,60], center = true); + + translate([-43.25, 52.25, -3]) + linear_extrude(height = 36) + difference(){ + square([6,6], center = true); + translate([2.75,-2.75,0])circle(4.5); + } + + translate([43.25, 52.25, -3]) + linear_extrude(height = 36) + difference(){ + square([6,6], center = true); + translate([-2.75,-2.75,0])circle(4.5); + } + + translate([0, 0, -3]) + linear_extrude(height = 200) + square([84,100], center = true); + + rotate([65,0,0]) + translate([0, 0, -1]) linear_extrude(height = 100) + square([200,200], center = true); + +}}; + + +module board_holder(){ + +translate([0, -0.5,0]) +difference(){ + linear_extrude(height = 2) + square([63,29], center = true); + + translate([32-7, 14.5-7, -4]) + linear_extrude(height = 6) + intersection(){ + translate([3.5,3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(7); + } + } + + translate([-32+7, 14.5-7, -4]) + linear_extrude(height = 6) + intersection(){ + translate([-3.5,3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(7); + } + } + + translate([32-7, -14.5+7, -4]) + linear_extrude(height = 6) + intersection(){ + translate([3.5,-3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(7); + } + } + + translate([-32+7, -14.5+7, -4]) + linear_extrude(height = 6) + intersection(){ + translate([-3.5,-3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(7); + } + } +} + +} + + + +module board(){ + difference(){ + linear_extrude(height = 2.2) + square([66,31], center = true); + + translate([33-7, 15-7, -4]) + linear_extrude(height = 8) + intersection(){ + translate([3.5,3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(8.5); + } + } + + translate([-33+7, 15-7, -4]) + linear_extrude(height = 8) + intersection(){ + translate([-3.5,3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(8.5); + } + } + + translate([33-7, -15+6.5, -4]) + linear_extrude(height = 8) + intersection(){ + translate([3.5,-3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(8.5); + } + } + + translate([-33+7, -15+6.5, -4]) + linear_extrude(height = 8) + intersection(){ + translate([-3.5,-3.5,0]) + square([7.1,7.1], center = true); + difference(){ + square([15,15], center = true); + translate([0,0,0])circle(8.5); + } + } +} + +} + + + +module pms_cutout(){ + translate([0, 46.8, 0.5]) linear_extrude(height = 13) + square([56,14], center = true); +} + +module pms_shroud(){ + union(){ + difference(){ + translate([0, 45.7, 0.5]) linear_extrude(height = 14) + square([56,16], center = true); + + translate([0, 25,-1 ]) linear_extrude(height = 12) + square([52,36+24], center = true); + + translate([7, 26, -1]) linear_extrude(height = 14) + square([38,34], center = true); + } + + translate([-19, 43.6, 0.5]) linear_extrude(height = 12) + square([14,1], center = true); + + translate([6, 48.3, 0.5]) linear_extrude(height = 13) + square([1.5,10.5], center = true); + translate([-6, 48.3, 0.5]) linear_extrude(height = 13) + square([1.5,10.5], center = true); + + translate([0, 52.6, 0.5])linear_extrude(height = 1) + square([52,2], center = true); + for(i = [0:1]){ + translate([0, 48.5, 3.3+i*4]) + rotate([8,0,0])linear_extrude(height = 1) + square([52,10.5], center = true); + } + } +} + +module backplate(){ +difference(){ +union(){ +pms_shroud(); +difference(){ + translate([0, 33, 32.2]) + linear_extrude(height = 3) + square([88,35], center = true); +translate([-2,35,32.1]) //TODO FIX EXACT POS +union(){ + translate([0,0,1]) board(); + board_holder(); +} +stand(); +} + +difference(){ + translate([0, 30, 20.2]) + linear_extrude(height = 3) + square([88,40], center = true); +translate([-2,35,20.1]) //TODO FIX EXACT POS +union(){ + translate([0,0,1]) board(); + board_holder(); +} + +stand(); + +} + + +difference() { + backing(); + stand(); + pms_cutout(); +} +} +translate([-13, 52, 20.5]) color([1,0,0,1]) linear_extrude(height = 7) square([12,10], center = true); + +translate([-3, 52, 23.5]) color([1,0,0,1]) linear_extrude(height = 2.0) square([3.5,10], center = true); + +translate([-3, 50, 22]) color([1,0,0,1]) linear_extrude(height = 5.0) square([4.5,2], center = true); + +translate([-24, 52, 23]) color([1,0,0,1]) linear_extrude(height = 6.0) square([6,10], center = true); +translate([-2, 18, 0]) color([1,0,0,1]) linear_extrude(height = 40.0) square([60,16], center = true); + +} +} +stand(); + \ No newline at end of file diff --git a/case/front.stl b/case/front.stl new file mode 100644 index 0000000..254e7c1 Binary files /dev/null and b/case/front.stl differ diff --git a/case/pistand.stl b/case/pistand.stl new file mode 100644 index 0000000..9737479 Binary files /dev/null and b/case/pistand.stl differ