111 lines
2.6 KiB
OpenSCAD
111 lines
2.6 KiB
OpenSCAD
|
|
||
|
$fn = 30;
|
||
|
plate_center = [-1.35, -3.5, 5.5];
|
||
|
time=0;
|
||
|
|
||
|
module base_plate (holes_on = true) {
|
||
|
difference () {
|
||
|
translate(plate_center) cube([50, 90, 11], center = true);
|
||
|
sides_flat();
|
||
|
sides_angled();
|
||
|
divot();
|
||
|
front_top_angled();
|
||
|
front_top_flat();
|
||
|
if (holes_on) {
|
||
|
holes();
|
||
|
} else {
|
||
|
//translate([0, (71.5 / 2) - 34, 0]) cylinder(r = 6.5 / 2, h = 100, center = true);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module sides_flat () {
|
||
|
x = 26.2;
|
||
|
z = -7.3;
|
||
|
side = [10, 100, 11];
|
||
|
translate(plate_center) {
|
||
|
union () {
|
||
|
translate([x, 0, z]) cube(side, center = true);
|
||
|
translate([-x, 0, z]) cube(side, center = true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module sides_angled() {
|
||
|
x = 28.4;
|
||
|
z = .9;
|
||
|
angle = 29;
|
||
|
side = [10, 100, 12];
|
||
|
translate(plate_center) {
|
||
|
union () {
|
||
|
translate([x, 0, z]) rotate([0, angle, 0]) cube(side, center = true);
|
||
|
translate([-x, 0, z]) rotate([0, -angle, 0]) cube(side, center = true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module divot() {
|
||
|
z = 6.6;
|
||
|
deep = 10;
|
||
|
back = [40.5, 39, deep];
|
||
|
slider = [4.8, 10, deep];
|
||
|
cent = [31, 10, deep];
|
||
|
left_angle = [70, 20, deep];
|
||
|
right_straight = [20, 50, deep];
|
||
|
right_angle = [15, 15, deep];
|
||
|
translate(plate_center) {
|
||
|
union () {
|
||
|
translate([-1, -22.5, z]) cube(back, center = true);
|
||
|
translate([16.9, -22 - (39 / 2), z]) cube(slider, center = true);
|
||
|
translate([3.75, -2.1, z]) cube(cent, center = true);
|
||
|
translate([8.3, 35, z]) rotate([00, 0, 83]) cube(left_angle, center = true);
|
||
|
translate([-8.8, 35.9, z]) cube(right_straight, center = true);
|
||
|
translate([-8.3, 10.4, z]) rotate([00, 0, 42]) cube(right_angle, center = true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module front_top_angled () {
|
||
|
x = 26.8;
|
||
|
y = 41;
|
||
|
z = 1.5;
|
||
|
angle_y = 17;
|
||
|
angle_z = 18;
|
||
|
angle_x = 4;
|
||
|
side = [10, 15, 11];
|
||
|
translate(plate_center) {
|
||
|
union () {
|
||
|
translate([x, y, z]) rotate([angle_x, angle_y, angle_z]) cube(side, center = true);
|
||
|
translate([-x, y, z]) rotate([angle_x, -angle_y, -angle_z]) cube(side, center = true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module front_top_flat () {
|
||
|
x = 25.3;
|
||
|
y = 42;
|
||
|
z = -7.3;
|
||
|
sides = [10, 10, 11];
|
||
|
angle_z = 19;
|
||
|
translate(plate_center) {
|
||
|
union () {
|
||
|
translate([x, y, z]) rotate([0, 0, angle_z]) cube(sides, center = true);
|
||
|
translate([-x, y, z]) rotate([0, 0, -angle_z]) cube(sides, center = true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module holes () {
|
||
|
translate([-1.5, -5, 0]){
|
||
|
//base reference
|
||
|
// cube([50, 71.5, 40], center = true);
|
||
|
//holes
|
||
|
translate([0, (71.5 / 2) - 12, 0]) cylinder(r = 10 / 2, h = 100, center = true);
|
||
|
translate([0, (71.5 / 2) - 34, 0]) cylinder(r = 6.5 / 2, h = 100, center = true);
|
||
|
translate([(-50 / 2) + 18, (71.5 / 2) - 62, 0]) cylinder(r = 10 / 2, h = 100, center = true);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
rotate([0, 0, time]) base_plate(holes_on= true);
|