// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
+// Alterations for reprap Wilson by Martin Rice <mrice411@gmail.com>
use <x-end.scad>
adj_block_x = 12;
adj_block_y = 10;
adj_block_z = 32;
+motor_offs_z = 0;
module adjustomatic() {
translate(v=[-(15+17/2+adj_block_x/2),offs_adjuster_y,58-adj_block_z/2+14])
{
- rotate([0,0,30]) #cylinder(h = 4, r=3.1, $fn = 6);
+ rotate([0,0,30]) #cylinder(h = 4, r = 7.5/2 , $fn = 6);
translate([0,0,-20]) #cylinder(h=30,r=2,$fn=16);
}
}
+// the endstop mount will be translated by this much (negative values
+// mean it moves away from the motor and toward the X carriage, giving
+// more room for leads and also extra space for the auto bedleveling
+// servo housing which is on this side of the extruder):
+endstop_sw_offs_adjust = -2;
+
+module pocket_endstop() // endstop holder grafted onto the side toward the rods
+{
+ translate([-7,-45,0])
+ union() {
+ // angled wall that attaches to the endstop holder
+ translate([-1,18,0]) rotate([0,0,-30]) cube(size=[8.5,2,22]);
+ // little bit of extra support at the bottom corner
+ translate([-1.5,15.,2]) rotate([0,90,0]) cube(size=[2,3,10]);
+
+ difference() {
+ translate([-1.5,endstop_sw_offs_adjust,0]) cube(size=[9,20.5,22]);
+
+ translate([-2,endstop_sw_offs_adjust,1]) cube(size=[7,21,22]);
+ #translate([0,15.5,8]) cube(size=[10,5,20]);
+
+ // screw holes for endstop switch
+ translate([-2,7+endstop_sw_offs_adjust,1.5+5.5]) rotate([0,90,0]) cylinder(r=1.5,h=15);
+ translate([-2,7+endstop_sw_offs_adjust,1.5+5.5+9.5]) rotate([0,90,0]) cylinder(r=1.5,h=15);
+ }
+ }
+}
+
+module x_end_motor_sr() {
+ difference() {
+ cube(size=[8,12,10]);
+ #translate([4,11.5,9]) rotate([0,90,0])
+ difference() { cylinder(r=4.5,h=4,$fn=16,center=true);
+ translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16,center=true);
+ }
+
+ #translate([9,10.6,10]) rotate([0,45,90]) cube(size=[2,11,2]);
+ }
+}
+
module x_end_motor_base(){
x_end_base();
// motor arm
- translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
+ translate(v=[-15,31,26.5+motor_offs_z]) cube(size = [17,44,53], center = true);
// z stop adjuster
adjustomatic();
+ // x endstop holder
+ pocket_endstop();
}
+screw_head_r = 3.5;
+
module x_end_motor_holes(){
x_end_holes();
// Position to place
- translate(v=[-1,32,30.25]){
+ translate(v=[-1,32,30.25+motor_offs_z]){
// Belt hole
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
// Motor mounting holes
translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
+ translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=screw_head_r, $fn=30);
translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
+ translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=screw_head_r, $fn=30);
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
+ translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=screw_head_r, $fn=30);
translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
- translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
+ translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=screw_head_r, $fn=30);
// Material saving cutout
translate(v=[-10,12,10]) cube(size = [60,42,42], center = true);
translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
// Motor shaft cutout
translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
+
+ // zip tie retainer for securing end stop wiring
+ #translate([-5,-59,14]) difference() { cylinder(r=4.5,h=4,$fn=16);
+ translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16);
+ }
+ #translate([-5,-46,28]) rotate([90,0,0]) difference() { cylinder(r=4.5,h=4,$fn=16,center=true);
+ translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16,center=true);
+ }
}
}
x_end_motor_base();
x_end_motor_holes();
}
+ // strain relief (zip tie point) below the motor
+ translate([-23.5,9,53]) x_end_motor_sr();
}
-x_end_motor();
\ No newline at end of file
+rotate([0,0,180])
+x_end_motor();