61 lines
1.5 KiB
OpenSCAD
61 lines
1.5 KiB
OpenSCAD
$fn = 256;
|
|
od = 21.5;
|
|
id = 15;
|
|
h = 2;
|
|
ep = 0.01;
|
|
recess = 0.8;
|
|
|
|
tiltAngle = 60;
|
|
|
|
|
|
difference() {
|
|
union() {
|
|
translate([0, 0, (sin(tiltAngle) * od) / 2]) rotate([0, tiltAngle, 0]) union() {
|
|
difference() {
|
|
union() {
|
|
cylinder(d=od, h=h - recess + ep);
|
|
// Top protrustion
|
|
translate([0, 0, h - recess]) cylinder(d1=id + recess*2 + 0.2, d2=id, h=recess);
|
|
//translate([0, 0, h - recess]) cylinder(d=id, h=recess);
|
|
}
|
|
|
|
// Bottom cut
|
|
color("red") translate([0, 0, -ep])
|
|
cylinder(d1=id + recess*2 + 0.4, d2=id + 0.4, h=recess);
|
|
//cylinder(d=id + 0.8, h=recess);
|
|
}
|
|
}
|
|
|
|
difference() {
|
|
translate([-(cos(tiltAngle) * (id - 2)) / 2 + 0.25, -0.4, 0])
|
|
cube([cos(tiltAngle) * (id - 2), 0.8, sin(tiltAngle) * od]);
|
|
|
|
color("blue") union() {
|
|
translate([0, 0, (sin(tiltAngle) * od) / 2])
|
|
rotate([0, tiltAngle, 0])
|
|
translate([-sin(tiltAngle) * od, -0.5, recess - 0.2])
|
|
cube([2 * od, 1, od]);
|
|
|
|
}
|
|
}
|
|
|
|
translate([0.6, 0, (sin(tiltAngle) * od) / 2 - 1]) rotate([0, tiltAngle, 0])
|
|
union() {
|
|
difference() {
|
|
color("pink") cylinder(d=od, h=h - recess + ep);
|
|
|
|
color("blue") translate([-1, 0, -ep])
|
|
union() {
|
|
cylinder(d=od, h=h - recess + 3*ep);
|
|
//translate([-2, (od + 2*ep) / 2, -ep])
|
|
translate([-(od / 2) - 2, -(od + 2*ep) / 2, -ep])
|
|
cube([od, od + 4*ep, h]);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
translate([-od, -od/2, -2]) cube([2 * od, od, 2]);
|
|
}
|