diff --git a/v1/scad/lib/hexagon.scad b/v1/scad/lib/hexagon.scad new file mode 100644 index 0000000..8a72667 --- /dev/null +++ b/v1/scad/lib/hexagon.scad @@ -0,0 +1,5 @@ +module hexagon(inradius) { + circle(r=2 * inradius / sqrt(3), $fn=6); +} + +hexagon(inradius=2.8); \ No newline at end of file diff --git a/v1/scad/lib/prusa_enclosure_mount.scad b/v1/scad/lib/prusa_enclosure_mount.scad index c510f65..d1e75a5 100644 --- a/v1/scad/lib/prusa_enclosure_mount.scad +++ b/v1/scad/lib/prusa_enclosure_mount.scad @@ -1,4 +1,5 @@ use +use use module prusa_enclosure_mount(angle) { @@ -25,20 +26,8 @@ module prusa_enclosure_mount(angle) { } // Through screw hole - translate([120, 0, -1]) - cylinder(h=20, d=3.2, $fn=50); - - // Hex nut / screw head cutout - translate([120, 0, 18 - (2.6 / 2)]) - 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], - ]); + translate([120, 0, 0]) + screw_hole(h=18); // Underside washer alignment cutouts for (y = [-4, 4]) { @@ -68,15 +57,15 @@ module prusa_enclosure_mount(angle) { union() { // Top core translate([0, 0, 2.5]) - cylinder(h=15.5, r=42, $fn=200); + cylinder(h=15, r=42, $fn=200); // Bottom core - cylinder(h=18, r=40.25, $fn=200); + cylinder(h=5, r=40.25, $fn=200); } // Center through cutout translate([0, 0, -1]) - cylinder(h=20, r=25, $fn=200); + cylinder(h=20, r=25.1, $fn=200); // Bottom cutout translate([0, 0, -1]) @@ -93,6 +82,18 @@ module prusa_enclosure_mount(angle) { } } + // Spool ring weight reduction holes + for (a = [0 : 20 : 340]) { + rotate([0, 0, a]) + translate([0, 33, 0]) { + translate([0, 0, -1]) + cylinder(h=9.5, d=9, $fn=50); + + translate([0, 0, 8.49]) + cylinder(h=4.5, d1=9, d2=0, $fn=50); + } + } + // Weight reduction holes rows 1/5 for (x = [44.5 : 12 : 105]) { for (y = [-20 : 40 : 20]) { diff --git a/v1/scad/lib/screw_hole.scad b/v1/scad/lib/screw_hole.scad new file mode 100644 index 0000000..fff7e9d --- /dev/null +++ b/v1/scad/lib/screw_hole.scad @@ -0,0 +1,30 @@ +use + +module screw_hole(h) { + // Through screw hole + translate([0, 0, -0.01]) + cylinder(h=h, d=3.2, $fn=50); + + // Hex nut cutout + translate([0, 0, h - 3]) + hull() { + // Large hex nut + translate([0, 0, 3]) + linear_extrude(0.01) + hexagon(inradius=2.8); + + // Small hex nut + linear_extrude(0.01) + hexagon(inradius=2.55); + } + + // Screw head cutout + translate([0, 0, h - 3]) + cylinder(h=2.61, d=5.5, $fn=50); + + // Bottom screw thread protrusion cutout + translate([0, 0, -0.01]) + cylinder(h=1.01, d=4.4, $fn=100); +} + +screw_hole(h=10); \ No newline at end of file diff --git a/v1/scad/objects/ptfe_guide.scad b/v1/scad/objects/ptfe_guide.scad index a1bbbcb..0d7f197 100644 --- a/v1/scad/objects/ptfe_guide.scad +++ b/v1/scad/objects/ptfe_guide.scad @@ -1,3 +1,5 @@ +use <../lib/screw_hole.scad> + module ptfe_guide() { translate([0, 0, 5]) difference() { @@ -13,27 +15,8 @@ module ptfe_guide() { } // 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); - } + translate([0, 0, -5]) + screw_hole(10); // PTFE holes for (x = [-18, -10, 10, 18]) {