| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- use <threads.scad>;
- /* [Teil] */
- Teil = 1; // [1:Behälter, 2:Deckel, 3:Trennplatte]
- Debug = true;
- /* [Hidden] */
- $fn = 180;
- D=54;
- H=1.5;
- FaseOben=43.5;
- function durchmesser(Innengewinde) = (Innengewinde)?1:0;
- module gewinde(L, Innengewinde) {
- metric_thread(diameter=50+durchmesser(Innengewinde), pitch=5, thread_size=2, length=L, internal=Innengewinde, leadin=(Innengewinde)?0:2, test=false);
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////
- module behaelter() {
- union() {
- difference() {
- union() {
- // Aussenform mit Gewinde
- cylinder(d1=D-1, d2=D, h=H);
- translate([0,0,1.5]) cylinder(d=D, h=50);
- translate([0,0,51.5]) cylinder(d1=D, d2=D-1, h=H);
- translate([0,0,52]) gewinde(L=15, Innengewinde=false);
- }
- // gesamte Innenbohrung
- translate([0,0,0]) cylinder(d=D-2.5, h=52);
- // "Kernloch" im Gewinde
- translate([0,0,52]) cylinder(d=FaseOben, h=20);
- // Ovale Schlitze in der Seitenwand
- for(z=[4:3:45]) {
- translate([0,0,z])
- for(r=[0:360/40:359]) {
- rotate([0,90,r]) hull() {
- translate([0,1.15,0]) cylinder(d=1, h=80, center=true);
- translate([0,-1.15,0]) cylinder(d=1, h=80, center=true);
- }
- }
- }
- }
- // Fase innen am Übergang zum Gewinde (wegen Support)
- translate([0,0,46.5]) difference() {
- cylinder(d=D-2.5, h=5.5);
- cylinder(d1=D-2.5, d2=FaseOben, h=5.5);
- }
- // Unten Mitte fester Boden
- cylinder(d=16, h=H);
- // 20 Speichen (Tortenstücke) im Boden
- for(r=[0:360/20:359]) {
- rotate([0,0,r]) hull() {
- rotate([0,0,+3]) cube([(D-2)/2,0.001,H]);
- rotate([0,0,-3]) cube([(D-2)/2,0.001,H]);
- }
- }
- // Kreisringe im Boden
- for(i=[16:3.5:D-3]) difference() {
- cylinder(d=i+2, h=H);
- cylinder(d=i, h=H);
- }
- // Boden Abschluss zum Rand
- difference() {
- cylinder(d=D-2.5, h=H);
- cylinder(d=D-2.5-2, h=H);
- }
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////
- module deckel() {
- difference() {
- union() {
- cylinder(d=70, h=2.5);
- translate([0,0,2]) cylinder(d=D, h=17);
- translate([0,0,2+17]) cylinder(d1=D, d2=D-2, h=1);
- }
- translate([0,0,2.5]) gewinde(L=18, Innengewinde=true);
- cylinder(d=42, h=4);
- cube([6,44,10], center=true);
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////
- module trennplatte() {
- H=1;
- D_trennplatte=FaseOben-1.25;
- // Unten Mitte fester Boden
- difference() {
- cylinder(d=16, h=H);
- for(r=[0:360/4:359]) rotate([0,0,r]) scale([1,2,1]) translate([4,0,0]) cylinder(d=1.25, h=10, center=true);
- }
- // 20 Speichen (Tortenstücke) im Boden mit Abstandshalter (H+1)
- for(r=[0:360/20:359]) {
- rotate([0,0,r]) {
- hull() intersection() {
- translate([25,0,0]) cube(40, center=true);
- union() {
- rotate([0,0,+3]) cube([(D_trennplatte-2)/2,0.001,H]);
- rotate([0,0,-3]) cube([(D_trennplatte-2)/2,0.001,H]);
- }
- }
- translate([18,0,0]) cylinder(d=1.5, h=H+1);
- }
- }
- // Kreisringe im Boden
- for(i=[16:3.5:FaseOben]) difference() {
- cylinder(d=i+2, h=H);
- cylinder(d=i, h=H);
- }
- // Boden Abschluss zum Rand
- difference() {
- cylinder(d=D_trennplatte, h=H);
- cylinder(d=D_trennplatte-2, h=H);
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////
- intersection() {
- union() {
- if (Teil == 1) {
- intersection() {
- behaelter();
- //translate([0,0,52]) cylinder(d=82, h=20);
- }
- }
- if (Teil == 2) {
- deckel();
- }
- if (Teil == 3) {
- trennplatte();
- }
- }
- if (Debug) rotate([0,0,45]) cube(100);
- }
|