Revert "Revert "Add top level readme, rename single_plate""
[clinton/prusa3.git] / old_single_plate / src / x-carriage.scad
1 // PRUSA iteration3
2 // X carriage
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
7
8 include <../configuration.scad>
9 use <inc/bearing.scad>
10
11 module x_carriage_base(){
12 // Small bearing holder
13 translate([-33/2,+2,0]) rotate([0,0,90]) horizontal_bearing_base(1);
14 hull(){
15 // Long bearing holder
16 translate([-33/2,x_rod_distance+2,0]) rotate([0,0,90]) horizontal_bearing_base(2);
17 // Belt holder base
18 translate([-36,20,0]) cube([39,16,17]);
19 }
20 // Base plate
21 translate([-38,-11.5,0]) cube([39+4,68,7+1.5]);
22
23 }
24
25 module x_carriage_beltcut(){
26 // Cut in the middle for belt
27 translate([-2.5-16.5+1,19,7]) cube([4.5,13,15]);
28 // Cut clearing space for the belt
29 translate([-39,5,7]) cube([50,13,15]);
30 // Belt slit
31 translate([-50,21.5+10,6]) cube([67,1,15]);
32 // Smooth entrance
33 translate([-56,21.5+10,14]) rotate([45,0,0]) cube([67,15,15]);
34 // Teeth cuts
35 for ( i = [0 : 33] ){
36 translate([25-i*belt_tooth_distance,21.5+8,6+1.5]) cube([1.7,3,15]);
37 }
38 }
39
40 module x_carriage_holes(){
41 // Small bearing holder holes cutter
42 translate([-33/2,2,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
43 // Long bearing holder holes cutter
44 translate([-33/2,x_rod_distance+2,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
45 // Extruder mounting holes
46 translate([-16.5+15,24,-1])cylinder(r=1.7, h=20, $fn=32);
47 translate([-16.5+15,24,10])cylinder(r=3.3, h=20, $fn=6);
48 translate([-16.5-15,24,-1])cylinder(r=1.7, h=20, $fn=32);
49 translate([-16.5-15,24,10])cylinder(r=3.3, h=20, $fn=6);
50 }
51
52 module x_carriage_fancy(){
53 // Top right corner
54 translate([13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
55 // Bottom right corner
56 translate([0,5,0]) translate([0,-11.5,-1]) rotate([0,0,-45]) translate([0,-15,0]) cube([30,30,20]);
57 // Bottom ĺeft corner
58 translate([-33,5,0]) translate([0,-11.5,-1]) rotate([0,0,-135]) translate([0,-15,0]) cube([30,30,20]);
59 // Top left corner
60 translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
61 }
62
63 // Final part
64 module x_carriage(){
65 difference(){
66 x_carriage_base();
67 x_carriage_beltcut();
68 x_carriage_holes();
69 x_carriage_fancy();
70 }
71 }
72
73 x_carriage();