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 | { | |
31 | rotate([0,0,30]) #cylinder(h = 4, r=3.1, $fn = 6); | |
32 | translate([0,0,-20]) #cylinder(h=30,r=2,$fn=16); | |
33 | } | |
34 | ||
35 | } | |
36 | ||
37 | } | |
38 | ||
0f6fe46f MR |
39 | module pocket_endstop() |
40 | { | |
41 | translate([-7,-40,0]) | |
42 | difference() { | |
43 | union() { translate([-1.5,0,0]) cube(size=[9,16,22]); | |
44 | translate([3,12,20]) cylinder(r=4,h=10,$fn=16); | |
45 | translate([-10,50,57.9]) rotate([90,0,0]) cube(size=[9,4,30]); | |
46 | } | |
47 | ||
48 | translate([0,-1,1]) cube(size=[6,16,20]); | |
49 | #translate([3,12,20]) cylinder(r=3,h=21,$fn=16); | |
50 | // grove for wiring along bottom | |
51 | #translate([-9,50.5,58]) rotate([90,0,0]) cube(size=[7,3,31]); | |
52 | // screw holes for endstop switch | |
53 | #translate([-2,7,1.5+5.5]) rotate([0,90,0]) cylinder(r=1.5,h=15); | |
54 | #translate([-2,7,1.5+5.5+9.5]) rotate([0,90,0]) cylinder(r=1.5,h=15); | |
55 | #translate([0,-3,15]) cube(size=[6,15,20]); | |
56 | } | |
57 | } | |
58 | ||
90c10a06 MR |
59 | module x_end_motor_base(){ |
60 | x_end_base(); | |
bf1e86f4 | 61 | // motor arm |
0f6fe46f | 62 | translate(v=[-15,31,26.5+motor_offs_z]) cube(size = [17,44,53], center = true); |
bf1e86f4 MR |
63 | // z stop adjuster |
64 | adjustomatic(); | |
0f6fe46f MR |
65 | // x endstop holder |
66 | pocket_endstop(); | |
90c10a06 MR |
67 | } |
68 | ||
69 | module x_end_motor_holes(){ | |
70 | x_end_holes(); | |
71 | // Position to place | |
0f6fe46f | 72 | translate(v=[-1,32,30.25+motor_offs_z]){ |
90c10a06 MR |
73 | // Belt hole |
74 | translate(v=[-14,1,0]) cube(size = [10,46,22], center = true); | |
75 | // Motor mounting holes | |
76 | 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); | |
0f6fe46f | 77 | #translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=3.2, $fn=30); |
90c10a06 MR |
78 | |
79 | ||
80 | 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); | |
0f6fe46f | 81 | #translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=3.2, $fn=30); |
90c10a06 MR |
82 | |
83 | ||
84 | 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); | |
0f6fe46f | 85 | #translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=3.2, $fn=30); |
90c10a06 MR |
86 | |
87 | ||
88 | 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); | |
0f6fe46f | 89 | #translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 12, r=3.2, $fn=30); |
90c10a06 MR |
90 | |
91 | // Material saving cutout | |
92 | translate(v=[-10,12,10]) cube(size = [60,42,42], center = true); | |
93 | ||
94 | // Material saving cutout | |
95 | translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); | |
96 | // Motor shaft cutout | |
97 | translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6); | |
0f6fe46f MR |
98 | |
99 | #translate([-5,-59,13]) difference() { cylinder(r=4,h=5); | |
100 | translate([0,0,-1]) cylinder(r=2.5,h=7); | |
101 | } | |
90c10a06 MR |
102 | } |
103 | } | |
104 | ||
105 | // Final part | |
106 | module x_end_motor(){ | |
107 | difference(){ | |
108 | x_end_motor_base(); | |
109 | x_end_motor_holes(); | |
110 | } | |
111 | } | |
112 | ||
113 | x_end_motor(); |