Ultima attività 1752007485

sprinkler.scad Raw
1include <gears.scad>
2
3gear_module = 1.0;
4gear_bore_diameter = 3.4;
5
6spigot_tooth = 16;
7gear_tooth = 25;
8ring_tooth = spigot_tooth * 2 + gear_tooth;
9ring_rim = 4.0;
10
11gear_clearance = gear_module / 6.0;
12
13spigot_diameter = gear_module * spigot_tooth + (gear_module + gear_clearance) * 2;
14gear_diameter = gear_module * gear_tooth - (gear_module + gear_clearance) * 2;
15ring_diameter = gear_module * ring_tooth + (gear_module + gear_clearance) * 2;
16ring_outer_diameter = ring_diameter + ring_rim * 2;
17
18spigot_center_distance = (spigot_tooth + gear_tooth) / 2;
19
20eps = 0.01;
21
22// Spigot
23translate([60, 0, 0]) spur_gear(gear_module, spigot_tooth, 4.0, gear_bore_diameter);
24
25translate([0, 0, 0]) {
26 // Ring
27 translate([0, 0, 2]) difference() {
28 ring_gear(gear_module, ring_tooth, 5.0, ring_rim);
29 translate([0, 0, -eps])
30 rotate_extrude(angle=180) square([ring_diameter / 2 + 0.1, 5 + eps * 2]);
31 }
32
33 // Gear
34 translate([0, 0, 2]) {
35 rotate(140) difference() {
36 spur_gear(gear_module, gear_tooth, 4.0, gear_bore_diameter);
37 translate([0, 0, -eps])
38 rotate([0, 0, 10]) rotate_extrude(angle=240) {
39 translate([gear_diameter / 2 - eps, 0, 0]) square([3.0, 4 + eps * 2]);
40 }
41 }
42 }
43
44 difference() {
45 cylinder(h=2, r=ring_outer_diameter/2);
46 translate([0, 0, -eps]) cylinder(h=2 + eps * 2, r=gear_bore_diameter / 2);
47 for(rot = [0 : 30 : 360]) {
48 translate([sin(rot) * 22, cos(rot) * 22, -eps]) cylinder(h=2 + eps * 2, r=4);
49 }
50 }
51}
52
53// Base and ring hub
54translate([0, 60, 0]) {
55 difference() {
56 union() {
57 cylinder(h=2, r=15);
58 translate([30, 0, 0]) cylinder(h=9.5, r=15);
59 translate([0, -15, 0]) cube([30, 30, 2]);
60 }
61 translate([0, 0, 2.01]) cylinder(h=7.5, r=ring_outer_diameter / 2 + 1);
62 translate([39, 5, 2.01]) cylinder(h=8, r=2.1);
63 translate([39, -5, 2.01]) cylinder(h=8, r=2.1);
64 }
65 cylinder(h=9, r=(gear_bore_diameter - 0.1) / 2);
66 cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
67}
68
69// Top piece and spigot hub
70translate([0, 100, 0]) {
71 cylinder(h=2, r=spigot_diameter / 2);
72 translate([10, 0, 0]) cylinder(h=2, r=15);
73 translate([39 - spigot_center_distance, 5, 2]) cylinder(h=5, r=2.0);
74 translate([39 - spigot_center_distance, -5, 2]) cylinder(h=5, r=2.0);
75
76 cylinder(h=7, r=(gear_bore_diameter - 0.1) / 2);
77 cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
78}