Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // Complete printer visualisation | |
0a84ec19 VAH |
3 | // GNU GPL v3 |
4 | // Greg Frost | |
5 | // http://www.reprap.org/wiki/Prusa_Mendel | |
6 | // http://github.com/prusajr/PrusaMendel | |
7 | ||
f7aa2311 | 8 | include <../configuration.scad> |
eb66dab2 | 9 | use <../y-drivetrain.scad> |
f7aa2311 | 10 | use <../y-axis-corner.scad> |
4bda8253 | 11 | use <../z-axis.scad> |
df0b7f96 TF |
12 | use <../x-end.scad> |
13 | use <../x-carriage.scad> | |
0a84ec19 | 14 | |
f35bb1ce | 15 | module nutwasher(){ |
d4294528 | 16 | color("silver") |
4bda8253 TF |
17 | difference(){ |
18 | union(){ | |
d4294528 TF |
19 | translate([0,0,2])cylinder(r=15/2,h=7,$fn=6); |
20 | translate([0,0,0.5])cylinder(r=8.5,h=1); | |
4bda8253 TF |
21 | } |
22 | translate([0,0,-1])cylinder(r=8/2,h=12); | |
23 | } | |
f35bb1ce | 24 | } |
f35bb1ce | 25 | |
d4294528 TF |
26 | // y motor mount |
27 | translate([56-yrodseparation/2,-y_smooth_rod_length/2+9,0]) | |
28 | { | |
29 | rotate([0,90,0]) rotate([0,0,90]) motorholder(); | |
30 | translate([10,0,30])rotate([0,90,0])nutwasher(); | |
31 | translate([0,0,30])rotate([0,90,180])nutwasher(); | |
32 | translate([10,0,10])rotate([0,90,0])nutwasher(); | |
33 | translate([0,0,10])rotate([0,90,180])nutwasher(); | |
34 | } | |
35 | ||
36 | // y idler mount | |
37 | translate([70-yrodseparation/2,y_smooth_rod_length/2-9,30]) | |
38 | { | |
39 | translate([0,0-33,-8]) | |
40 | rotate([0,-90,0]) idlermount(); | |
41 | translate([0,0,0])rotate([0,90,0])nutwasher(); | |
42 | translate([-20,0,0])rotate([0,90,180])nutwasher(); | |
43 | } | |
44 | ||
4bda8253 TF |
45 | yrodseparation=100; |
46 | ||
47 | module yfront() | |
48 | { | |
49 | // corners | |
50 | leftfront(); | |
51 | translate([yrodseparation,0,0]) mirror([1,0,0]) leftfront(); | |
52 | ||
53 | // front bottom threaded rod | |
54 | color("Aqua") | |
d4294528 TF |
55 | translate([-20,9,10]) rotate([0,90,0]) cylinder(h = 140, r=4); |
56 | ||
57 | translate([yrodseparation+11,9,10])rotate([0,90,0])nutwasher(); | |
58 | translate([yrodseparation-11,9,10])rotate([0,90,180])nutwasher(); | |
59 | ||
60 | translate([-11,9,10])rotate([0,90,180])nutwasher(); | |
61 | translate([11,9,10])rotate([0,90,0])nutwasher(); | |
4bda8253 TF |
62 | |
63 | // front top threaded rod | |
64 | color("Aqua") | |
d4294528 TF |
65 | translate([-20,9,30]) rotate([0,90,0]) cylinder(h = 140, r=4); |
66 | ||
67 | % translate([-11,9,30])rotate([0,90,180])nutwasher(); | |
68 | % translate([11,9,30])rotate([0,90,0])nutwasher(); | |
69 | ||
70 | % translate([yrodseparation-11,9,30])rotate([0,90,180])nutwasher(); | |
71 | % translate([yrodseparation+11,9,30])rotate([0,90,0])nutwasher(); | |
f35bb1ce | 72 | } |
4bda8253 TF |
73 | |
74 | translate([-yrodseparation/2,-y_smooth_rod_length/2]) | |
75 | { | |
76 | yfront(); | |
77 | translate([0,y_smooth_rod_length,0]) | |
78 | mirror([0,1,0]) | |
79 | yfront(); | |
f35bb1ce KY |
80 | } |
81 | ||
4bda8253 TF |
82 | module yside() |
83 | { | |
84 | translate([-yrodseparation/2,0]) | |
85 | { | |
86 | // left top rod | |
87 | color("MediumBlue") | |
88 | translate([0,0,45]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=4,center=true); | |
89 | //left bottom rod | |
90 | color("Aqua") | |
91 | translate([0,0,20]) rotate([0,90,90]) cylinder(h = 430, r=4,center=true); | |
df0b7f96 | 92 | // middle nuts |
d4294528 TF |
93 | translate([0,0,20])rotate([0,-90,90])nutwasher(); |
94 | translate([0,board_thickness,20])rotate([0,90,90])nutwasher(); | |
4bda8253 | 95 | |
df0b7f96 | 96 | // back nuts |
d4294528 TF |
97 | translate([0,y_smooth_rod_length/2+2,20])rotate([0,90,90])nutwasher(); |
98 | translate([0,y_smooth_rod_length/2+2-22,20])rotate([0,90,-90])nutwasher(); | |
df0b7f96 | 99 | // front nuts |
d4294528 TF |
100 | translate([0,-y_smooth_rod_length/2-2,20])rotate([0,90,-90])nutwasher(); |
101 | translate([0,-y_smooth_rod_length/2-2+22,20])rotate([0,90,90])nutwasher(); | |
4bda8253 | 102 | } |
0a84ec19 VAH |
103 | } |
104 | ||
4bda8253 TF |
105 | yside(); |
106 | translate([yrodseparation,0,0])yside(); | |
699eb60c | 107 | |
4bda8253 TF |
108 | // heat bed |
109 | color("Lime",0.25) | |
110 | translate([0,0,58]) cube([bed_x_size,bed_y_size,6], center=true); | |
111 | ||
112 | board_sides=50; | |
113 | board_w=bed_x_size+10+2*board_sides; | |
114 | ||
115 | // XZ board | |
df0b7f96 | 116 | translate([0,board_thickness/2,150]) |
4bda8253 TF |
117 | %difference() |
118 | { | |
119 | cube([board_w,board_thickness,300],true); | |
120 | translate([0,0,-15]) | |
121 | cube([bed_x_size+10,board_thickness+2,200],true); | |
f35bb1ce | 122 | } |
699eb60c | 123 | |
4bda8253 TF |
124 | |
125 | // Z motor mounts | |
126 | translate([-board_w/2-5,0,42]) | |
127 | rotate(-90) | |
128 | zmotorholder(); | |
129 | ||
130 | translate([board_w/2+5,0,42]) | |
131 | rotate(-90) | |
132 | mirror([0,1,0]) | |
133 | zmotorholder(); | |
134 | ||
135 | // Z rod mounts | |
136 | translate([-board_w/2-5,0,260]) | |
137 | rotate(-90) | |
138 | zrodholder(); | |
139 | ||
140 | translate([board_w/2+5,0,260]) | |
141 | rotate(-90) | |
142 | mirror([0,1,0]) | |
143 | zrodholder(); | |
144 | ||
df0b7f96 TF |
145 | // Z rods |
146 | module z_rods() | |
147 | { | |
148 | color("MediumBlue") | |
149 | translate([board_w/2-4,-26,42])cylinder(h=z_smooth_rod_length,r=4); | |
150 | } | |
151 | ||
152 | z_rods(); | |
153 | mirror([1,0,0])z_rods(); | |
154 | ||
155 | // X ends | |
156 | translate([-board_w/2+4,-26,200]) | |
157 | rotate([0,0,90]) | |
158 | rotate([0,180,0]) | |
159 | x_end_motor(); | |
160 | ||
161 | translate([board_w/2-4,-26,200]) | |
162 | rotate(90) | |
163 | rotate([0,180,0]) | |
164 | x_end_idler(); | |
165 | ||
166 | // X rods | |
167 | for(i=[0:1]) | |
168 | color("MediumBlue") | |
169 | translate([0,-12,149+i*45])rotate([0,90,0])cylinder(h=300,r=4,center=true); | |
170 | ||
171 | // X carriage | |
172 | translate([0,-12,149]) | |
173 | rotate([0,90,0]) | |
174 | x_carriage(); |