Commit | Line | Data |
---|---|---|
90c10a06 MR |
1 | // PRUSA iteration3 |
2 | // X end prototype | |
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 | ||
ab9ebda3 CE |
8 | // todo: make x-end height global and make anything relying implicitly |
9 | // on the height of the x-end use that for positioning. | |
10 | ||
11 | // bearing height, strain relief (&& maybe make dependent upon the bearing diameter) | |
12 | ||
90c10a06 | 13 | use <bearing.scad> |
ab9ebda3 | 14 | include <configuration.scad> |
90c10a06 | 15 | |
7d6b1234 | 16 | pushfit_d = smooth_rod_d + 0.25; |
618f5b83 | 17 | hex_nut_r = 4.75; |
90c10a06 | 18 | |
68868634 | 19 | module nut_trap_base () { |
ab9ebda3 | 20 | cube(size=[16,21,8],center=true); |
68868634 CE |
21 | translate ([2,0,0]) cylinder(h=8,r=12.5,$fn=50,center=true); |
22 | } | |
23 | ||
24 | module nut_trap () { | |
25 | union() { | |
26 | // center post of brass nut | |
27 | cylinder(h=12,r=5.45,$fn=50,center=true); | |
28 | // holes for m3 screws in brass nut | |
ab9ebda3 | 29 | translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); |
a4366f5f CE |
30 | #rotate([0,0,90]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); |
31 | rotate([0,0,180]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); | |
4cb9a605 CE |
32 | #rotate([0,0,270]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); |
33 | } | |
68868634 CE |
34 | } |
35 | ||
90c10a06 MR |
36 | module x_end_base(){ |
37 | // Main block | |
ab9ebda3 CE |
38 | height = x_box_height; |
39 | // TODO: calculate correct translate(y) + cube(y) using size of bearing | |
40 | translate(v=[-15,-10,height/2]) cube(size = [17,45,height], center = true); | |
90c10a06 MR |
41 | // Bearing holder |
42 | vertical_bearing_base(); | |
43 | //Nut trap | |
ab9ebda3 | 44 | translate(v=[-4-zmotor_delta_y,-17-zmotor_delta_x,4]) nut_trap_base (); |
90c10a06 | 45 | // Cube |
68868634 | 46 | // #translate(v=[-2-2,-17,4]) cube(size = [8,16,8], center = true); |
90c10a06 | 47 | // Hexagon |
68868634 | 48 | // #translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6); |
90c10a06 MR |
49 | } |
50 | ||
51 | module x_end_holes(){ | |
52 | vertical_bearing_holes(); | |
618f5b83 MR |
53 | // Belt hole |
54 | translate(v=[-1,0,0]){ | |
55 | // Stress relief | |
56 | translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [20,1,28], center = true); | |
ab9ebda3 | 57 | // Cut out for belt (this is NOT centered because the motor isn't centered) |
618f5b83 | 58 | difference(){ |
90c10a06 MR |
59 | translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true); |
60 | ||
90c10a06 MR |
61 | // Nice edges |
62 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
63 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
64 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
65 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
66 | ||
67 | } | |
68 | } | |
69 | ||
70 | ||
ab9ebda3 | 71 | pushrod_extra_z = 2.5; |
90c10a06 | 72 | // Bottom pushfit rod |
ab9ebda3 | 73 | #translate(v=[-15,-41.5,smooth_rod_d/2+pushrod_extra_z]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); |
90c10a06 | 74 | // Top pushfit rod |
ab9ebda3 | 75 | translate(v=[-15,-41.5,rod_distance+smooth_rod_d/2+pushrod_extra_z]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); |
90c10a06 | 76 | // Nut trap |
a4366f5f | 77 | translate(v=[-zmotor_delta_y,-17-zmotor_delta_x,3]) rotate ([0, 0, 45]) nut_trap (); |
68868634 CE |
78 | // #translate(v=[0,-17,-0.5]) cylinder(h = 4, r1=3.4, r2=2.9, $fn=25); |
79 | // translate(v=[0,-17,3]) rotate([0,0,30]) cylinder(h = 10, r=hex_nut_r, $fn = 6); | |
90c10a06 MR |
80 | } |
81 | ||
82 | ||
83 | // Final prototype | |
84 | module x_end_plain(){ | |
85 | difference(){ | |
86 | x_end_base(); | |
87 | x_end_holes(); | |
88 | } | |
89 | } | |
90 | ||
91 | x_end_plain(); | |
92 | ||
93 | ||
94 | module pushfit_rod(diameter,length){ | |
0f2032d7 MR |
95 | translate([0,-0.3,0]) cylinder(h = length, r=diameter/2, $fn=30); |
96 | translate([0,0.3,0]) cylinder(h = length, r=diameter/2, $fn=30); | |
97 | // difference(){ | |
98 | // translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); | |
99 | // translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); | |
100 | // } | |
101 | ||
90c10a06 MR |
102 | } |
103 |