From ee10afaf26876ea0fbb2dd2ef4425871a90ecaa8 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 3 Jul 2024 22:04:09 -0700 Subject: [PATCH] Initial commit --- prusa_enclosure_mount_top_right.scad | 71 ++++++++++++++++++++++++++++ ptfe_guide.scad | 46 ++++++++++++++++++ spoolmount_a.scad | 57 ++++++++++++++++++++++ spoolmount_b.scad | 39 +++++++++++++++ torus.scad | 6 +++ 5 files changed, 219 insertions(+) create mode 100644 prusa_enclosure_mount_top_right.scad create mode 100644 ptfe_guide.scad create mode 100644 spoolmount_a.scad create mode 100644 spoolmount_b.scad create mode 100644 torus.scad diff --git a/prusa_enclosure_mount_top_right.scad b/prusa_enclosure_mount_top_right.scad new file mode 100644 index 0000000..c1d1ebf --- /dev/null +++ b/prusa_enclosure_mount_top_right.scad @@ -0,0 +1,71 @@ +use + +module prusa_enclosure_mount_top_right() { + spoolmount_a(); + + rotate([0, 0, 45]) + difference() { + union() { + for (o = [-20, 20]) { + translate([0, o, 0]) + difference() { + // Side body + hull() { + for (x = [30, 127]) { + for (y = [-7, 7]) { + translate([x, y, 2.5]) + scale([0.7, 0.7, 1.0]) + sphere(d=5, $fn=50); + } + } + } + + // Through screw hole + translate([120, 0, -1]) + cylinder(h=7, d=3.2, $fn=50); + + // Hex nut / screw head cutout + translate([120, 0, 3.7]) + linear_extrude(2.61, center=true) + polygon(points=[ + [-2.8, 1.6175], + [0, 3.235], + [2.8, 1.6175], + [2.8, -1.6175], + [0, -3.235], + [-2.8, -1.6175], + ]); + } + } + + // Center body + hull() { + for (x = [30, 115]) { + for (y = [-25, 25]) { + translate([x, y, 2.5]) + scale([0.7, 0.7, 1.0]) + sphere(d=5, $fn=50); + } + } + } + } + + // Weight reduction holes rows 1/3/5 + for (x = [49 : 12 : 105]) { + for (y = [-20 : 20 : 20]) { + translate([x, y, -1]) + cylinder(h=7, d=9, $fn=50); + } + } + + // Weight reduction holes rows 2/4 + for (x = [54.5 : 12 : 105]) { + for (y = [-10 : 20 : 10]) { + translate([x, y, -1]) + cylinder(h=7, d=9, $fn=50); + } + } + } +} + +prusa_enclosure_mount_top_right(); \ No newline at end of file diff --git a/ptfe_guide.scad b/ptfe_guide.scad new file mode 100644 index 0000000..e1d6708 --- /dev/null +++ b/ptfe_guide.scad @@ -0,0 +1,46 @@ +module ptfe_guide() { + difference() { + hull() { + for (x = [-22, 22]) { + for (y = [-4, 4]) { + for (z = [-3, 3]) { + translate([x, y, z]) + sphere(d=4, $fn=100); + } + } + } + } + + // Screw hole + { + // Top hex nut / screw cap head cutout + translate([0, 0, 3.7]) + linear_extrude(2.61, center=true) + polygon(points=[ + [-2.8, 1.6175], + [0, 3.235], + [2.8, 1.6175], + [2.8, -1.6175], + [0, -3.235], + [-2.8, -1.6175], + ]); + + // Through hole + translate([0, 0, 0]) + cylinder(h=10, d=3.2, center=true, $fn=100); + + // Bottom screw thread protrusion cutout + translate([0, 0, -4.5]) + cylinder(h=1.01, d=4.4, center=true, $fn=100); + } + + // PTFE holes + for (x = [-18, -10, 10, 18]) { + translate([x, 0, 0]) + rotate([90, 0, 0]) + cylinder(h=14, d=4.4, center=true, $fn=100); + } + } +} + +ptfe_guide(); \ No newline at end of file diff --git a/spoolmount_a.scad b/spoolmount_a.scad new file mode 100644 index 0000000..e9fd724 --- /dev/null +++ b/spoolmount_a.scad @@ -0,0 +1,57 @@ +use + +// SpoolMount fixed side (i.e. attached to printer or enclosure) +module spoolmount_a() { + // Ring + difference() { + cylinder(h=5, r=42, $fn=200); + + translate([0, 0, -1]) + cylinder(h=7, r=25, $fn=200); + } + + // Hooks + for (x = [-33, 33]) { + translate([x, 0, 5]) + rotate([0, -90, 0]) + linear_extrude(6, center=true) { + polygon(points=[ + [0, 0], + [0, 4], + [2, 4], + [4, 6], + [5, 6], + [5, 2], + [3, 0], + [0, 0], + ]); + + translate([3, 2]) + circle(r=2, $fn=50); + } + } + + // Locking bump + translate([0, -30.8, 5]) + rotate([0, -90, 0]) + linear_extrude(6, center=true) { + polygon(points=[ + [0, 0], + [1.2, -4], + [1.2, -5], + [0, -5], + [0, 0], + ]); + } + + // Rounded edges + translate([0, 0, 2.5]) { + // Inside + torus(r_major=25, r_minor=2.5, xs=0.7, $fn=200); + + // Outside + torus(r_major=42, r_minor=2.5, xs=0.7, $fn=200); // 43.75 + } +} + +spoolmount_a(); \ No newline at end of file diff --git a/spoolmount_b.scad b/spoolmount_b.scad new file mode 100644 index 0000000..a05ada4 --- /dev/null +++ b/spoolmount_b.scad @@ -0,0 +1,39 @@ +use + +// SpoolMount removable side (i.e. attached to spool holder or cage) +module spoolmount_b() { + difference() { + // Ring + cylinder(h=5, r=42, $fn=200); + + translate([0, 0, -1]) + cylinder(h=7, r=25, $fn=200); + + // Holes + for (a = [0 : 30 : 330]) { + rotate([0, 0, a]) + translate([29.75, 0, 0]) { + // Center through hole + translate([3.25, 0, 3]) + cube([6.5, 8, 7], center=true); + + // Diagonal sides + translate([3.25, 0, 4]) + rotate([45, 0, 0]) + cube([6.5, sqrt(72), sqrt(72)], center=true); + + // Flat top cutout + translate([3.25, 0, 5]) + cube([6.5, 12, 2], center=true); + } + } + } + + // Rounded edges + translate([0, 0, 2.5]) { + torus(r_major=25, r_minor=2.5, xs=0.7, $fn=200); + torus(r_major=42, r_minor=2.5, xs=0.7, $fn=200); + } +} + +spoolmount_b(); \ No newline at end of file diff --git a/torus.scad b/torus.scad new file mode 100644 index 0000000..e701928 --- /dev/null +++ b/torus.scad @@ -0,0 +1,6 @@ +module torus(r_major, r_minor, xs=1.0) { + rotate_extrude() + translate([r_major, 0, 0]) + scale([xs, 1.0, 1.0]) + circle(r=r_minor); +} \ No newline at end of file