Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $fn = 100;
- epsilon = 1e-1;
- length = 155;
- width = 101;
- outerRadius = 15;
- plateThickness = 18;
- faceThickness = 6;
- baseThickness = (plateThickness - faceThickness);
- height = (45 - plateThickness);
- difference() {
- union() {
- translate([0, 0, -baseThickness]) linear_extrude(baseThickness) hull() {
- translate([((-length / 2) + outerRadius), ((-width / 2) + outerRadius), 0]) circle(outerRadius);
- translate([((length / 2) - outerRadius), ((-width / 2) + outerRadius), 0]) circle(outerRadius);
- translate([((-length / 2) + outerRadius), ((width / 2) - outerRadius), 0]) circle(outerRadius);
- translate([((length / 2) - outerRadius), ((width / 2) - outerRadius), 0]) circle(outerRadius);
- }
- linear_extrude(faceThickness) difference() {
- union() {
- hull() {
- translate([((-length / 2) + outerRadius), ((-width / 2) + outerRadius), 0]) circle(outerRadius);
- translate([((length / 2) - outerRadius), ((width / 2) - outerRadius), 0]) circle(outerRadius);
- }
- hull() {
- translate([((-length / 2) + outerRadius), ((width / 2) - outerRadius), 0]) circle(outerRadius);
- translate([((length / 2) - outerRadius), ((-width / 2) + outerRadius), 0]) circle(outerRadius);
- }
- square([53 * 2, 55], center=true);
- }
- group() {
- // These values hard coded because I just couldn't get the math to work...
- facex_offset = 60.7;
- facey_x_offset = 11.0;
- facey_y_offset = (55 / 2) + outerRadius - 1.46;
- #translate([-facex_offset, 0, 0]) circle(outerRadius);
- #translate([facex_offset, 0, 0]) circle(outerRadius);
- // These are really ugly. The only thing I can surmise is that the diagram must be wrong about them having a radius of 15...
- #translate([-facey_x_offset, facey_y_offset, 0]) circle(outerRadius);
- #translate([facey_x_offset, facey_y_offset, 0]) circle(outerRadius);
- #translate([-facey_x_offset, -facey_y_offset, 0]) circle(outerRadius);
- #translate([facey_x_offset, -facey_y_offset, 0]) circle(outerRadius);
- translate([((-length / 2) + outerRadius), ((-width / 2) + outerRadius), 0]) circle(22 / 2);
- translate([((length / 2) - outerRadius), ((width / 2) - outerRadius), 0]) circle(22 / 2);
- translate([((-length / 2) + outerRadius), ((width / 2) - outerRadius), 0]) circle(22 / 2);
- translate([((length / 2) - outerRadius), ((-width / 2) + outerRadius), 0]) circle(22 / 2);
- }
- }
- cylinder(height, (55 / 2), (55 / 2));
- difference() {
- translate([0, 0, height / 2]) cube([8, width, height], center=true);
- group() {
- translate([0, -width/2, 21 - plateThickness]) rotate([45, 0, 0]) translate([0, ((width - 55) / 2), height / 2]) cube([8 + (2 * epsilon), width - 55, height], center=true);
- mirror([0, 1, 0]) translate([0, -width/2, 21 - plateThickness]) rotate([45, 0, 0]) translate([0, ((width - 55) / 2), height / 2]) cube([8 + (2 * epsilon), width - 55, height], center=true);
- }
- }
- }
- group() {
- translate([0, 0, -baseThickness - epsilon]) cylinder(45, (42 / 2), (42 / 2));
- translate([((-length / 2) + outerRadius), ((-width / 2) + outerRadius), -baseThickness - epsilon]) linear_extrude(baseThickness + (2 * epsilon)) circle(14 / 2);
- translate([((length / 2) - outerRadius), ((width / 2) - outerRadius), -baseThickness - epsilon]) linear_extrude(baseThickness + (2 * epsilon)) circle(14 / 2);
- translate([((-length / 2) + outerRadius), ((width / 2) - outerRadius), -baseThickness - epsilon]) linear_extrude(baseThickness + (2 * epsilon)) circle(14 / 2);
- translate([((length / 2) - outerRadius), ((-width / 2) + outerRadius), -baseThickness - epsilon]) linear_extrude(baseThickness + (2 * epsilon)) circle(14 / 2);
- translate([0, 0, height - 13 + (13 / 2)]) cube([55, 8, 13 + epsilon], center=true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement