//------------------------------------ // Right wipe plate, wiper, and mount //------------------------------------ translate([0, 0, 0]) rotate([0, 0, 0]) difference() { union() { translate([60, -8, 0]) cube([23, 2, 68]); translate([15, 8, 0]) cube([53, 2, 18]); translate([60, -7, 0]) cube([8, 17, 18]); translate([46, -5, 0]) cube([15, 14, 2]); // Because no plate printed vertically // can be very strong, needs additional // support translate([60, -6, 0]) cube([2, 4, 68]); translate([81, -6, 0]) cube([2, 4, 68]); // Additional bracket translate([60, 6.4, 9.5]) rotate([45, 0, 0]) cube([2, 5, 20]); // Struts translate([18 - 3, -5, 18]) rotate([0, 90, 0]) cube([18, 13, 6]); translate([48 - 7, -5, 18]) rotate([0, 90, 0]) cube([18, 13, 6]); translate([18 - 3, -11, 18]) rotate([0, 90, 0]) cube([10, 13, 6]); translate([48 - 7, -11, 18]) rotate([0, 90, 0]) cube([10, 13, 6]); // Strut extension to hold metal plate translate([18 - 3, -8, 5 + 8]) rotate([0, 90, 0]) cube([5.5, 9, 6]); translate([48 - 7, -8, 5 + 8]) rotate([0, 90, 0]) cube([5.5, 9, 6]); // Angle strut to avoid printing overhang translate([18 - 3, -5, 0]) rotate([40, 0, 0]) cube([6, 8, 19.4]); translate([48 - 7, -5, 0]) rotate([40, 0, 0]) cube([6, 8, 19.4]); // And. . . print an overhang anyway. translate([18 - 3, -21, 8.66]) cube([6, 9, 7.2]); translate([48 - 7, -21, 8.66]) cube([6, 9, 7.2]); } // Bores for frame screws---make them slightly // elongated so that the assembly can be adjusted // up or down by about 1mm. translate([75, -4, 14]) rotate([90, 0, 0]) cylinder(r=2.2, h=6, $fn=64); translate([75, -4, 16]) rotate([90, 0, 0]) cylinder(r=2.2, h=6, $fn=64); translate([72.8, -10, 14]) cube([4.4, 6, 2]); translate([75, -4, 59]) rotate([90, 0, 0]) cylinder(r=2.2, h=6, $fn=64); translate([75, -4, 61]) rotate([90, 0, 0]) cylinder(r=2.2, h=6, $fn=64); translate([72.8, -10, 59]) cube([4.4, 6, 2]); // Plate (cut-out) (larger by 0.2) translate([15.8, -12, 7.6]) rotate([0, 90, 0]) cube([0.8, 14, 30.4]); // Wiper (cut-out) translate([18.3, -16.3, 7.6]) rotate([90, 0, 0]) cube([25.4, 6.4, 3.4]); // Cut out inside area to avoid being too close // to the hot-end translate([17, -5, 2]) cube([28, 14, 18]); translate([17, -4, -2]) rotate([60, 0, 0]) cube([28, 17, 12.5]); // Clean-up, remove excess material translate([17, -4, -1]) cube([28, 4, 4]); translate([14, -15, 18]) cube([34, 11, 4]); }