118 lines
No EOL
3.8 KiB
OpenSCAD
118 lines
No EOL
3.8 KiB
OpenSCAD
use <fonts/CasualStencil.ttf>
|
|
|
|
mode="bottom"; // Can be "top" or "bottom"
|
|
|
|
$fn=40;
|
|
|
|
module bumper_hole() {
|
|
translate([0, 0, 1.5]) union() {
|
|
cylinder(d = 8.5, center = true, h = 3.1);
|
|
translate([0, 0, 0.76])
|
|
cylinder(d = 14.5, center = true, h = 1.5);
|
|
}
|
|
}
|
|
|
|
module arm_hole(angle) {
|
|
rotate([0, 0, angle]) {
|
|
//cube(size=[13, 22, 4], center = true);
|
|
if (mode == "top") {
|
|
translate([-12.5, -14, 1.9])
|
|
cylinder(d = 3, center = true, h = 4);
|
|
translate([ 13 , -14, 1.9])
|
|
cylinder(d = 3, center = true, h = 4);
|
|
translate([-12.5, 11.5, 1.9])
|
|
cylinder(d = 3, center = true, h = 4);
|
|
translate([ 13 , 11.5, 1.9])
|
|
cylinder(d = 3, center = true, h = 4);
|
|
} else {
|
|
translate([-12.5, -14, 1.9])
|
|
cylinder(d = 4.5, center = true, h = 4);
|
|
translate([ 13 , -14, 1.9])
|
|
cylinder(d = 4.5, center = true, h = 4);
|
|
}
|
|
}
|
|
}
|
|
|
|
module band_hole() {
|
|
translate([0, 0, 1.5]) union() {
|
|
translate([ 9, 0, 0])
|
|
cylinder(d = 2, center = true, h = 4);
|
|
translate([- 9, 0, 0])
|
|
cylinder(d = 2, center = true, h = 4);
|
|
cube([18, 2, 4], center = true);
|
|
}
|
|
}
|
|
|
|
module quad_name(x, y) {
|
|
translate([x, y, 4])
|
|
rotate([180, 0, 90])
|
|
linear_extrude(height = 5)
|
|
text("Anlyea", halign = "center", size = 7, font = "CasualStencil:style=Regular");
|
|
}
|
|
|
|
intersection() {
|
|
difference() {
|
|
union() {
|
|
translate([0, 0, 1.5])
|
|
rotate([0, 0, -45])
|
|
cube(size=[105, 105, 3], center = true);
|
|
|
|
if (mode == "bottom") {
|
|
translate([ 0, 21.5, 3.5])
|
|
cylinder(d = 5, center = true, h = 7);
|
|
translate([ 0,- 21.5, 3.5])
|
|
cylinder(d = 5, center = true, h = 7);
|
|
}
|
|
|
|
}
|
|
union() {
|
|
// Rounded corners are removed
|
|
translate([ 0, -90, 1.9])
|
|
cylinder(d = 90, center = true, h = 4);
|
|
translate([ 0, 90, 1.9])
|
|
cylinder(d = 90, center = true, h = 4);
|
|
translate([ 90, 0, 1.9])
|
|
cylinder(d = 90, center = true, h = 4);
|
|
translate([-90, 0, 1.9])
|
|
cylinder(d = 90, center = true, h = 4);
|
|
|
|
// Arm holes are removed
|
|
translate([ 24, 24, 0]) arm_hole(- 45 + 180);
|
|
translate([-24, 24, 0]) arm_hole( 45 + 180);
|
|
translate([ 24, -24, 0]) arm_hole( 45);
|
|
translate([-24, -24, 0]) arm_hole(- 45);
|
|
|
|
|
|
// bumper holes are removed
|
|
rotate([0, 0, 45]) {
|
|
translate([ 0, 32, 0]) bumper_hole();
|
|
translate([ 0,- 32, 0]) bumper_hole();
|
|
translate([ 32, 0, 0]) bumper_hole();
|
|
translate([-32, 0, 0]) bumper_hole();
|
|
}
|
|
|
|
if (mode == "bottom") {
|
|
translate([ 20, 32, 0]) band_hole();
|
|
translate([ 20,- 32, 0]) band_hole();
|
|
translate([-20, 32, 0]) band_hole();
|
|
translate([-20,- 32, 0]) band_hole();
|
|
}
|
|
|
|
if (mode == "bottom") {
|
|
translate([ 0, 21.25, 3.5])
|
|
cylinder(d = 3, center = true, h = 7.2);
|
|
translate([ 0,- 21.25, 3.5])
|
|
cylinder(d = 3, center = true, h = 7.2);
|
|
}
|
|
|
|
if (mode == "top") {
|
|
quad_name(-40, 0);
|
|
}
|
|
|
|
// Through holes are removed
|
|
translate([0, 0, 1.9])
|
|
cylinder(d = 20, center = true, h = 4);
|
|
|
|
}
|
|
}
|
|
} |