sprinkler.scad
· 2.5 KiB · OpenSCAD
Sin formato
include <gears.scad>
gear_module = 1.0;
gear_bore_diameter = 3.4;
spigot_tooth = 16;
gear_tooth = 25;
ring_tooth = spigot_tooth * 2 + gear_tooth;
ring_rim = 4.0;
gear_clearance = gear_module / 6.0;
spigot_diameter = gear_module * spigot_tooth + (gear_module + gear_clearance) * 2;
gear_diameter = gear_module * gear_tooth - (gear_module + gear_clearance) * 2;
ring_diameter = gear_module * ring_tooth + (gear_module + gear_clearance) * 2;
ring_outer_diameter = ring_diameter + ring_rim * 2;
spigot_center_distance = (spigot_tooth + gear_tooth) / 2;
eps = 0.01;
// Spigot
translate([60, 0, 0]) spur_gear(gear_module, spigot_tooth, 4.0, gear_bore_diameter);
translate([0, 0, 0]) {
// Ring
translate([0, 0, 2]) difference() {
ring_gear(gear_module, ring_tooth, 5.0, ring_rim);
translate([0, 0, -eps])
rotate_extrude(angle=180) square([ring_diameter / 2 + 0.1, 5 + eps * 2]);
}
// Gear
translate([0, 0, 2]) {
rotate(140) difference() {
spur_gear(gear_module, gear_tooth, 4.0, gear_bore_diameter);
translate([0, 0, -eps])
rotate([0, 0, 10]) rotate_extrude(angle=240) {
translate([gear_diameter / 2 - eps, 0, 0]) square([3.0, 4 + eps * 2]);
}
}
}
difference() {
cylinder(h=2, r=ring_outer_diameter/2);
translate([0, 0, -eps]) cylinder(h=2 + eps * 2, r=gear_bore_diameter / 2);
for(rot = [0 : 30 : 360]) {
translate([sin(rot) * 22, cos(rot) * 22, -eps]) cylinder(h=2 + eps * 2, r=4);
}
}
}
// Base and ring hub
translate([0, 60, 0]) {
difference() {
union() {
cylinder(h=2, r=15);
translate([30, 0, 0]) cylinder(h=9.5, r=15);
translate([0, -15, 0]) cube([30, 30, 2]);
}
translate([0, 0, 2.01]) cylinder(h=7.5, r=ring_outer_diameter / 2 + 1);
translate([39, 5, 2.01]) cylinder(h=8, r=2.1);
translate([39, -5, 2.01]) cylinder(h=8, r=2.1);
}
cylinder(h=9, r=(gear_bore_diameter - 0.1) / 2);
cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
}
// Top piece and spigot hub
translate([0, 100, 0]) {
cylinder(h=2, r=spigot_diameter / 2);
translate([10, 0, 0]) cylinder(h=2, r=15);
translate([39 - spigot_center_distance, 5, 2]) cylinder(h=5, r=2.0);
translate([39 - spigot_center_distance, -5, 2]) cylinder(h=5, r=2.0);
cylinder(h=7, r=(gear_bore_diameter - 0.1) / 2);
cylinder(h=3, r=(gear_bore_diameter + 2.5) / 2);
}
| 1 | include <gears.scad> |
| 2 | |
| 3 | gear_module = 1.0; |
| 4 | gear_bore_diameter = 3.4; |
| 5 | |
| 6 | spigot_tooth = 16; |
| 7 | gear_tooth = 25; |
| 8 | ring_tooth = spigot_tooth * 2 + gear_tooth; |
| 9 | ring_rim = 4.0; |
| 10 | |
| 11 | gear_clearance = gear_module / 6.0; |
| 12 | |
| 13 | spigot_diameter = gear_module * spigot_tooth + (gear_module + gear_clearance) * 2; |
| 14 | gear_diameter = gear_module * gear_tooth - (gear_module + gear_clearance) * 2; |
| 15 | ring_diameter = gear_module * ring_tooth + (gear_module + gear_clearance) * 2; |
| 16 | ring_outer_diameter = ring_diameter + ring_rim * 2; |
| 17 | |
| 18 | spigot_center_distance = (spigot_tooth + gear_tooth) / 2; |
| 19 | |
| 20 | eps = 0.01; |
| 21 | |
| 22 | // Spigot |
| 23 | translate([60, 0, 0]) spur_gear(gear_module, spigot_tooth, 4.0, gear_bore_diameter); |
| 24 | |
| 25 | translate([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 |
| 54 | translate([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 |
| 70 | translate([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 | } |