Getting ThingDoc output to first unbroken state
[clinton/prusa3.git] / box_frame / extras / wade-gears.scad
1 // Herringbone extruder gears
2 // GNU GPL v3
3 // Václav 'ax' Hůla <axtheb@gmail.com>
4 // Josef Průša <josefprusa@me.com>
5
6 // ThingDoc entry
7 /**
8 * @name Greg's Large Gear
9 * @id large-gear
10 */
11
12 /**
13 * @name Greg's Small Gear
14 * @id small-gear
15 */
16
17 include <../configuration.scad>
18 use <inc/parametric_involute_gear_v5.0.scad>
19
20 gear_distance = 40;
21
22 small();
23 %translate([gear_distance, 0, 0]) rotate([0, 180, 92]) big(); //this should touch, teeth should mesh
24 translate([-gear_distance - 10, 10, 0]) big();
25
26 gear_width=12;
27 teeth_small=15;
28 teeth_big=49;
29 teeth_twist=400;
30 circular_pitch = (gear_distance * 180 * 2) / (teeth_small + teeth_big);
31 echo (circular_pitch);
32
33 module small(){
34 difference() {
35 union() {
36 mirror([0, 0, 1 ]) gear (number_of_teeth=teeth_small,
37 circular_pitch=circular_pitch,
38 gear_thickness = gear_width/2,
39 rim_thickness = gear_width/2,
40 hub_thickness = 0,
41 hub_diameter = 18,
42 bore_diameter = 5.25,
43 circles=0,
44 twist = teeth_twist/teeth_small);
45 gear (number_of_teeth=teeth_small,
46 circular_pitch=circular_pitch,
47 gear_thickness = gear_width/2,
48 rim_thickness = gear_width,
49 hub_thickness = 0,
50 hub_diameter = 18,
51 bore_diameter = 5.25,
52 circles=0,
53 twist = teeth_twist/teeth_small*2);
54 //hub. Two part to make it thicker
55 translate([0, 0, gear_width / 2 + 0.5]) {
56 cylinder(r1=8, r2=11, h=2.5);
57 }
58 translate([0, 0, gear_width / 2 + 3]) {
59 cylinder(r=11, h=6);
60 }
61 }
62 //bore
63 translate([0, 0, -gear_width / 2 + 0.1]) cylinder(r=5.25 / 2, h=gear_width + 9.2);
64
65 translate([0, 0, gear_width / 2 + 4.5]) rotate([0, 90, 0]) {
66 cylinder(r=m3_diameter / 2, h=20);
67 translate([0, 0, 5]) nut(m3_nut_diameter, 2.5, false);
68 translate([-10, -m3_nut_diameter / 2, 5]) cube([10, m3_nut_diameter, 2.5]);
69 }
70 }
71 }
72
73 hole_size=6.6;
74
75 module big(){
76 difference() {
77 union(){
78 mirror([0, 0, 1]) gear (number_of_teeth=teeth_big,
79 circular_pitch=circular_pitch,
80 gear_thickness = gear_width/2,
81 rim_thickness = gear_width/2,
82 hub_thickness = 0,
83 hub_diameter = 0,
84 bore_diameter = 0,
85 circles=0,
86 twist = teeth_twist/teeth_big);
87 gear (number_of_teeth=teeth_big,
88 circular_pitch=circular_pitch,
89 gear_thickness = gear_width/2,
90 rim_thickness = gear_width/2,
91 hub_thickness = 0,
92 hub_diameter = 18,
93 bore_diameter = 18,
94 circles=0,
95 twist = teeth_twist/teeth_big);
96 }
97 //reduce mass
98 translate([0, 0, 3 - gear_width / 2]) rotate([0, 0, 90])
99 cylinder(r1=24, r2=28, h=gear_width - layer_height * 9 + 1, $fn=36);
100 //bore
101 translate([0, 0, -gear_width / 2 - 0.1]) cylinder(r=m8_diameter / 2, h=gear_width + 9.2);
102 for (hole=[0:5]) {
103 rotate([0, 0, 360 / 6 * hole + 30]) translate([17,0,-10]) rotate(12) {
104 cylinder(r=hole_size, h=20);
105 cube([hole_size, hole_size, 20]);
106 }
107 }
108
109 }
110 //threaded bolt trap
111 difference(){
112 translate([0, 0, -gear_width / 2]) cylinder(r=10, h=7 + layer_height * 9);
113 translate([0, 0, -gear_width / 2 + layer_height * 6 + 2]) nut(13.1, h=10);
114 translate([0, 0, -gear_width / 2 - 0.1]) cylinder(r=m8_diameter / 2, h=gear_width + 9.2);
115 }
116
117 }