Последняя активность 1752007485

Версия 596c3d2b38ccc21848d6b7a4c3b30afe760336ae

sprinkler.scad Исходник
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(150) 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=225) {
39 translate([gear_diameter / 2 + 0.1, 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 }
48}
49
50// Base and ring hub
51translate([0, 60, 0]) {
52 difference() {
53 union() {
54 cylinder(h=2, r=15);
55 translate([30, 0, 0]) cylinder(h=9.5, r=15);
56 translate([0, -15, 0]) cube([30, 30, 2]);
57 }
58 translate([0, 0, 2.01]) cylinder(h=7.5, r=ring_outer_diameter / 2 + 1);
59 translate([40, 0, 2.01]) cylinder(h=8, r=2.5);
60 }
61 cylinder(h=7, r=(gear_bore_diameter - 0.1) / 2);
62 cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
63}
64
65// Top piece and spigot hub
66translate([0, 100, 0]) {
67 cylinder(h=2, r=spigot_diameter / 2);
68 translate([10, 0, 0]) cylinder(h=2, r=15);
69 translate([40 - spigot_center_distance, 0, 2]) cylinder(h=5, r=2.0);
70
71 cylinder(h=7, r=(gear_bore_diameter - 0.1) / 2);
72 cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
73}