Commit | Line | Data |
---|---|---|
90c10a06 MR |
1 | // PRUSA iteration3 |
2 | // X end motor | |
3 | // GNU GPL v3 | |
4 | // Josef Průša <iam@josefprusa.cz> and contributors | |
5 | // http://www.reprap.org/wiki/Prusa_Mendel | |
6 | // http://prusamendel.org | |
0f6fe46f | 7 | // Alterations for reprap Wilson by Martin Rice <mrice411@gmail.com> |
90c10a06 MR |
8 | |
9 | use <x-end.scad> | |
10 | ||
bf1e86f4 MR |
11 | offs_adjuster_y = 5.5; |
12 | adj_block_x = 12; | |
13 | adj_block_y = 10; | |
14 | adj_block_z = 32; | |
0f6fe46f | 15 | motor_offs_z = 0; |
bf1e86f4 MR |
16 | |
17 | module adjustomatic() { | |
18 | ||
19 | difference() { | |
20 | translate(v=[-(15+17/2+adj_block_x/2),offs_adjuster_y,58-adj_block_z/2]) | |
21 | cube(size=[adj_block_x,adj_block_y,adj_block_z],center=true); | |
22 | ||
23 | translate(v=[-(15+17/2+adj_block_x/2)-5,offs_adjuster_y,58-adj_block_z/2-8]) | |
24 | rotate([0,-30,0]) cube(size=[adj_block_x,adj_block_y+2,adj_block_z],center=true); | |
25 | ||
26 | translate(v=[-(15+17/2+adj_block_x/2-1),offs_adjuster_y,58-adj_block_z/2-3]) | |
27 | cube(size=[adj_block_x,adj_block_y-2,adj_block_z-2],center=true); | |
28 | ||
29 | translate(v=[-(15+17/2+adj_block_x/2),offs_adjuster_y,58-adj_block_z/2+14]) | |
30 | { | |
618f5b83 | 31 | rotate([0,0,30]) #cylinder(h = 4, r = 7.5/2 , $fn = 6); |
bf1e86f4 MR |
32 | translate([0,0,-20]) #cylinder(h=30,r=2,$fn=16); |
33 | } | |
34 | ||
35 | } | |
36 | ||
37 | } | |
38 | ||
68868634 CE |
39 | // the endstop mount will be translated by this much (negative values |
40 | // mean it moves away from the motor and toward the X carriage, giving | |
41 | // more room for leads and also extra space for the auto bedleveling | |
42 | // servo housing which is on this side of the extruder): | |
0e264892 | 43 | endstop_sw_offs_adjust = -2; |
68868634 CE |
44 | |
45 | module pocket_endstop() // endstop holder grafted onto the side toward the rods | |
0f6fe46f | 46 | { |
68868634 CE |
47 | translate([-7,-45,0]) |
48 | union() { | |
49 | // angled wall that attaches to the endstop holder | |
50 | translate([-1,18,0]) rotate([0,0,-30]) cube(size=[8.5,2,22]); | |
51 | // little bit of extra support at the bottom corner | |
52 | translate([-1.5,15.,2]) rotate([0,90,0]) cube(size=[2,3,10]); | |
53 | ||
54 | difference() { | |
55 | translate([-1.5,endstop_sw_offs_adjust,0]) cube(size=[9,20.5,22]); | |
56 | ||
57 | translate([-2,endstop_sw_offs_adjust,1]) cube(size=[7,21,22]); | |
58 | #translate([0,15.5,8]) cube(size=[10,5,20]); | |
59 | ||
60 | // screw holes for endstop switch | |
61 | translate([-2,7+endstop_sw_offs_adjust,1.5+5.5]) rotate([0,90,0]) cylinder(r=1.5,h=15); | |
62 | translate([-2,7+endstop_sw_offs_adjust,1.5+5.5+9.5]) rotate([0,90,0]) cylinder(r=1.5,h=15); | |
63 | } | |
64 | } | |
65 | } | |
66 | ||
67 | module x_end_motor_sr() { | |
68 | difference() { | |
69 | cube(size=[8,12,10]); | |
70 | #translate([4,11.5,9]) rotate([0,90,0]) | |
71 | difference() { cylinder(r=4.5,h=4,$fn=16,center=true); | |
72 | translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16,center=true); | |
73 | } | |
74 | ||
75 | #translate([9,10.6,10]) rotate([0,45,90]) cube(size=[2,11,2]); | |
0f6fe46f MR |
76 | } |
77 | } | |
78 | ||
90c10a06 MR |
79 | module x_end_motor_base(){ |
80 | x_end_base(); | |
bf1e86f4 | 81 | // motor arm |
0f6fe46f | 82 | translate(v=[-15,31,26.5+motor_offs_z]) cube(size = [17,44,53], center = true); |
bf1e86f4 MR |
83 | // z stop adjuster |
84 | adjustomatic(); | |
0f6fe46f MR |
85 | // x endstop holder |
86 | pocket_endstop(); | |
90c10a06 MR |
87 | } |
88 | ||
618f5b83 MR |
89 | screw_head_r = 3.5; |
90 | ||
90c10a06 MR |
91 | module x_end_motor_holes(){ |
92 | x_end_holes(); | |
93 | // Position to place | |
0f6fe46f | 94 | translate(v=[-1,32,30.25+motor_offs_z]){ |
90c10a06 MR |
95 | // Belt hole |
96 | translate(v=[-14,1,0]) cube(size = [10,46,22], center = true); | |
97 | // Motor mounting holes | |
98 | 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); | |
618f5b83 | 99 | 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); |
90c10a06 MR |
100 | |
101 | ||
102 | 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); | |
618f5b83 | 103 | 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); |
90c10a06 MR |
104 | |
105 | ||
106 | 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); | |
618f5b83 | 107 | 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); |
90c10a06 MR |
108 | |
109 | ||
110 | 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); | |
618f5b83 | 111 | 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); |
90c10a06 MR |
112 | |
113 | // Material saving cutout | |
114 | translate(v=[-10,12,10]) cube(size = [60,42,42], center = true); | |
115 | ||
116 | // Material saving cutout | |
117 | translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); | |
118 | // Motor shaft cutout | |
119 | translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6); | |
0f6fe46f | 120 | |
618f5b83 MR |
121 | // zip tie retainer for securing end stop wiring |
122 | #translate([-5,-59,14]) difference() { cylinder(r=4.5,h=4,$fn=16); | |
123 | translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16); | |
0f6fe46f | 124 | } |
68868634 CE |
125 | #translate([-5,-46,28]) rotate([90,0,0]) difference() { cylinder(r=4.5,h=4,$fn=16,center=true); |
126 | translate([0,0,-1]) cylinder(r=2.5,h=7,$fn=16,center=true); | |
127 | } | |
90c10a06 MR |
128 | } |
129 | } | |
130 | ||
131 | // Final part | |
132 | module x_end_motor(){ | |
133 | difference(){ | |
134 | x_end_motor_base(); | |
135 | x_end_motor_holes(); | |
136 | } | |
68868634 CE |
137 | // strain relief (zip tie point) below the motor |
138 | translate([-23.5,9,53]) x_end_motor_sr(); | |
90c10a06 | 139 | } |
68868634 | 140 | |
565cd57b | 141 | rotate([0,0,180]) |
68868634 | 142 | x_end_motor(); |