This commit is contained in:
2025-10-07 16:06:36 +02:00
parent cbdf4370c9
commit 742a752cb0
25 changed files with 551 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
include <BOSL/constants.scad>
use <BOSL/shapes.scad>
use <BOSL/masks.scad>
use <BOSL/transforms.scad>
// Höhe Rohr
h = 35; // [10:60]
// Innendurchmesser Rohr
rd = 25.4;
// Neigungswinkel zu Senkrechten
angel= 20; // [0:90]
// Wandstärke
wall = 4; // [1:5]
// Form Grundplatte
form = "r"; // [r:rund, q=:Quadrat]
// Höhe Grundplatte
hg = 5; // [1:10]
// Durchmesser Grundplatte
d = 60; // [10:100]
// Kehle Zwischen Rohr und Grundplatte
kehle = 8; //[1:20]
// Riffel an der Unterseite
radius = 2; //[0:5]
/* [Hidden] */
$fa = 1;
$fs = 0.4;
// Rundung
fillet = 2; // [0:5]
difference() {
union() {
rotate([0, -angel, 0]) {
// Rohr gefast
difference() {
tube(h=2*h, id=rd, wall=wall, center=true);
translate([0, 0, h])
fillet_cylinder_mask(r=rd/2 + wall, fillet=fillet);
}
// Füllung für Rohr
cylinder(h=tan(angel)*rd + sin(angel)*hg + hg , d=rd, center=true);
}
// Grundplatte
if(form == "r") {
cyl(l=hg, d=d, fillet=fillet);
} else {
cuboid([d, d, hg], fillet=fillet);
}
}
// unteren Überstand entfernen
translate([0, 0, -(hg + h/2)])
cylinder(d=d + tan(angel)*h , h=h+hg, center=true);
}
// kehle zwischen Rohr und Grundplatte
skew_xy(xa=-angel, ya=0)
scale([1/cos(angel), 1, 1])
translate([0, 0, hg/2])
rotate([180, 0, 0])
fillet_hole_mask(d=rd + 2*wall, fillet=kehle, overage=0);
// Riffel an der Unterseite
difference() {
for (i=[1:d/radius/4]){
translate([4*i*radius - d/2 - radius, d/2, -hg/2])
rotate([90,0,0])
cylinder(h=d, r=radius);
}
translate([0, 0, -hg/2 - radius])
tube(h=2*radius, id2=d, id1=d-4*fillet, od=2*d);
}