69 lines
2.1 KiB
OpenSCAD
69 lines
2.1 KiB
OpenSCAD
include <../lib/rounded-cube.scad>
|
|
|
|
$fn=256;
|
|
|
|
d=40;
|
|
l=140;
|
|
|
|
module version1() {
|
|
union() {
|
|
difference() {
|
|
union() {
|
|
rotate([0, 10, 0]) cube([d, l, 50]);
|
|
translate([1.5*d, 0, 0]) mirror([1, 0, 0]) rotate([0, 10, 0]) cube([d, l, 50]);
|
|
}
|
|
|
|
translate([0.75*d, l+1, 0.5*d+12]) rotate([90, 0, 0]) cylinder(d=d, h=l+2);
|
|
translate([-d, -1, 20]) cube([3*d, l + 2, 40]);
|
|
translate([-d, -1, -10]) cube([3*d, l + 2, 10]);
|
|
color("red") translate([-1, l*0.5+4, -124]) rotate([0, 90, 0]) cylinder(d=270, h=1.5*d+2);
|
|
}
|
|
|
|
translate([0, 0, 0.01])
|
|
difference() {
|
|
rotate([-20, 0, 0])
|
|
difference() {
|
|
union() {
|
|
rotate([0, 10, 0]) translate([0, 0, -15-0.01]) cube([1.4*d, 12, 30]);
|
|
translate([1.5*d, 0, 0]) mirror([1, 0, 0]) rotate([0, 10, 0]) translate([0, 0, -15-0.01]) cube([1.4*d, 12, 30]);
|
|
}
|
|
}
|
|
translate([-10, -10, -45]) cube([1.5*d + 20, 30, 35]);
|
|
translate([-d, -10, 0]) cube([3.5*d, 40, 20]);
|
|
translate([-10, -10, -20]) cube([1.5*d + 20, 10, 40]);
|
|
}
|
|
}
|
|
}
|
|
|
|
module version2() {
|
|
difference() {
|
|
translate([0, 0, -10]) cube([1.5*d, l, 50]);
|
|
|
|
// mic handle cut-out
|
|
translate([0.75*d, l+1, 0.5*d+12]) rotate([90, 0, 0]) cylinder(d=d, h=l+2);
|
|
|
|
// top cut
|
|
translate([-10, -1, 0.5*d]) cube([1.5*d + 20, l+2, 50]);
|
|
|
|
// bottom notch cut
|
|
translate([0, 12, 0]) rotate([-20, 0, 0]) translate([-1, 0, -20]) cube([1.5*d+2, 20, 20]);
|
|
|
|
// button flush cut
|
|
translate([-1, 12, -20]) cube([1.5*d+2, l, 20]);
|
|
|
|
// MODX-8 button clearance
|
|
union() {
|
|
translate([0, 24, 0]) rotate([-20, 0, 0]) translate([-1, 0, -12]) cube([1.5*d+2, 20, 20.5]);
|
|
translate([-1, 26.90, -12]) cube([1.5*d+2, l-50, 20]);
|
|
translate([0, l-20, 0]) mirror([0, 1, 0]) rotate([-20, 0, 0]) translate([-1, 0, -12]) cube([1.5*d+2, 20, 20.5]);
|
|
}
|
|
|
|
// side-cuts
|
|
translate([-8, 0, 0]) rotate([0, 10, 0]) translate([0, -1, -20]) cube([10, l+2, 50]);
|
|
color("red") translate([1.5*d, 0, 0]) mirror([1, 0, 0]) translate([-8, 0, 0])rotate([0, 10, 0]) translate([0, -1, -20]) cube([10, l+2, 50]);
|
|
}
|
|
}
|
|
|
|
//translate([2*d, 0, 0]) version1();
|
|
version2();
|