252 lines
6.2 KiB
OpenSCAD
252 lines
6.2 KiB
OpenSCAD
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();
|
|
|