Files
spoolmount/unfuck-the-mmu/spool-cage-v3.scad
T

114 lines
2.5 KiB
OpenSCAD

difference() {
cage();
ptfe();
}
edges();
mount();
module mount() {
difference() {
cylinder(h=4, d=116, $fn=500);
translate([0, 0, -1])
cylinder(h=6, d=86, $fn=500);
for (a = [0 : 30 : 330]) {
rotate([0, 0, a]) {
translate([47.5, -5, -1])
cube([5, 10, 6]);
translate([47.5, -15, 5])
rotate([-11.31, 0, 0])
cube([5, 15, 2]);
translate([47.5, 0, 2])
rotate([11.31, 0, 0])
cube([5, 15, 2]);
}
}
}
translate([0, 0, 2])
torus2(d_major=86, d_minor=4, $fn=500);
translate([0, 0, 2])
torus2(d_major=116, d_minor=4, $fn=500);
for (a = [0 : 45 : 315]) {
rotate([0, 0, a]) {
translate([57, -5, 0])
cube([46, 10, 4]);
translate([57, -5, 2])
rotate([0, 90, 0])
cylinder(h=46, d=4, $fn=50);
translate([57, 5, 2])
rotate([0, 90, 0])
cylinder(h=46, d=4, $fn=50);
}
}
}
module ptfe() {
rotate([0, 0, 0.7])
translate([208.5 / 2, 0, 45])
rotate([90, 0, 30])
cylinder(h=50, d=4.2, center=true, $fn=100);
rotate([0, 0, -0.7])
translate([208.5 / 2, 0, 57])
rotate([90, 0, -30])
cylinder(h=50, d=4.2, center=true, $fn=100);
}
module edges() {
translate([0, 0, 100])
torus2(d_major=206, d_minor=4, $fn=500);
translate([0, 0, 2])
torus2(d_major=206, d_minor=4, $fn=500);
}
module cage() {
difference() {
translate([0, 0, 2])
cylinder(h=98, d=210, $fn=500);
translate([0, 0, -20])
cylinder(h=150, d=204, $fn=500);
for (a = [14 : 6 : 351]) {
for (h = [10.5 : 18 : 84]) {
rotate([0, 0, a])
translate([100, 0, h])
rotate([0, 90, 0])
cylinder(h=50, d=9, $fn=50);
}
}
for (a = [11 : 6 : 348]) {
for (h = [19.5 : 18 : 93]) {
rotate([0, 0, a])
translate([100, 0, h])
rotate([0, 90, 0])
cylinder(h=50, d=9, $fn=50);
}
}
}
}
module torus(r_major, r_minor) {
rotate_extrude()
translate([r_major, 0, 0])
circle(r=r_minor);
}
module torus2(d_major, d_minor) {
torus(r_major=d_major / 2, r_minor=d_minor / 2);
}