Fixed a comment that was making thingdoc throw an error
[clinton/prusa3.git] / box_frame / doc / complete-printer.scad
CommitLineData
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 8include <../configuration.scad>
eb66dab2 9use <../y-drivetrain.scad>
f7aa2311 10use <../y-axis-corner.scad>
4bda8253 11use <../z-axis.scad>
df0b7f96
TF
12use <../x-end.scad>
13use <../x-carriage.scad>
0a84ec19 14
f35bb1ce 15module 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
27translate([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
37translate([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
45yrodseparation=100;
46
47module 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
74translate([-yrodseparation/2,-y_smooth_rod_length/2])
75{
76yfront();
77translate([0,y_smooth_rod_length,0])
78mirror([0,1,0])
79yfront();
f35bb1ce
KY
80}
81
4bda8253
TF
82module 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
105yside();
106translate([yrodseparation,0,0])yside();
699eb60c 107
4bda8253
TF
108// heat bed
109color("Lime",0.25)
110translate([0,0,58]) cube([bed_x_size,bed_y_size,6], center=true);
111
112board_sides=50;
113board_w=bed_x_size+10+2*board_sides;
114
115// XZ board
df0b7f96 116translate([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
126translate([-board_w/2-5,0,42])
127rotate(-90)
128zmotorholder();
129
130translate([board_w/2+5,0,42])
131rotate(-90)
132mirror([0,1,0])
133zmotorholder();
134
135// Z rod mounts
136translate([-board_w/2-5,0,260])
137rotate(-90)
138zrodholder();
139
140translate([board_w/2+5,0,260])
141rotate(-90)
142mirror([0,1,0])
143zrodholder();
144
df0b7f96
TF
145// Z rods
146module z_rods()
147{
148 color("MediumBlue")
149 translate([board_w/2-4,-26,42])cylinder(h=z_smooth_rod_length,r=4);
150}
151
152z_rods();
153mirror([1,0,0])z_rods();
154
155// X ends
156translate([-board_w/2+4,-26,200])
157rotate([0,0,90])
158rotate([0,180,0])
159x_end_motor();
160
161translate([board_w/2-4,-26,200])
162rotate(90)
163rotate([0,180,0])
164x_end_idler();
165
166// X rods
167for(i=[0:1])
168color("MediumBlue")
169translate([0,-12,149+i*45])rotate([0,90,0])cylinder(h=300,r=4,center=true);
170
171// X carriage
172translate([0,-12,149])
173rotate([0,90,0])
174x_carriage();