77eb5379d2
MCP server that lets Claude generate and render OpenSCAD models to STL files. Includes setup documentation and installation guide. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
93 lines
2.9 KiB
OpenSCAD
93 lines
2.9 KiB
OpenSCAD
// Trichter
|
|
$fn = 64;
|
|
|
|
// Parameter
|
|
top_r = 40; // Radius oben
|
|
cone_h = 50; // Höhe des Kegelabschnitts
|
|
spout_r = 6; // Radius des Rohrs
|
|
spout_h = 25; // Länge des geraden Rohrs
|
|
wall = 2; // Wandstärke
|
|
ext_h = 20; // Länge der abgewinkelten Verlängerung
|
|
angle = 135; // Winkel der Verlängerung in Grad
|
|
spout_h2 = 25; // Länge des zweiten Ausgussrohrs
|
|
angle2 = 45; // Winkel von Knie 2
|
|
|
|
difference() {
|
|
// --- Außenhülle ---
|
|
union() {
|
|
// Kegelabschnitt
|
|
cylinder(h=cone_h, r1=spout_r, r2=top_r);
|
|
|
|
// Gerades Ausgussrohr
|
|
translate([0, 0, -spout_h])
|
|
cylinder(h=spout_h, r=spout_r);
|
|
|
|
// Knie 1
|
|
hull() {
|
|
translate([0, 0, -spout_h])
|
|
cylinder(h=0.01, r=spout_r);
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
cylinder(h=0.01, r=spout_r);
|
|
}
|
|
|
|
// Abgewinkelte Verlängerung
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
cylinder(h=ext_h, r=spout_r);
|
|
|
|
// Knie 2 + zweites Ausgussrohr
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
translate([0, 0, ext_h]) {
|
|
hull() {
|
|
cylinder(h=0.01, r=spout_r);
|
|
rotate([angle2, 0, 0])
|
|
cylinder(h=0.01, r=spout_r);
|
|
}
|
|
rotate([angle2, 0, 0])
|
|
cylinder(h=spout_h2, r=spout_r);
|
|
}
|
|
}
|
|
|
|
// --- Innenkanal ---
|
|
union() {
|
|
// Kegel innen
|
|
translate([0, 0, wall])
|
|
cylinder(h=cone_h, r1=spout_r - wall, r2=top_r - wall);
|
|
|
|
// Gerades Rohr innen
|
|
translate([0, 0, -(spout_h + 1)])
|
|
cylinder(h=spout_h + 1 + wall, r=spout_r - wall);
|
|
|
|
// Knie 1 innen
|
|
hull() {
|
|
translate([0, 0, -spout_h])
|
|
cylinder(h=0.01, r=spout_r - wall);
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
cylinder(h=0.01, r=spout_r - wall);
|
|
}
|
|
|
|
// Verlängerung innen
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
translate([0, 0, -1])
|
|
cylinder(h=ext_h + 2, r=spout_r - wall);
|
|
|
|
// Knie 2 innen + zweites Rohr innen
|
|
translate([0, 0, -spout_h])
|
|
rotate([angle, 0, 0])
|
|
translate([0, 0, ext_h]) {
|
|
hull() {
|
|
cylinder(h=0.01, r=spout_r - wall);
|
|
rotate([angle2, 0, 0])
|
|
cylinder(h=0.01, r=spout_r - wall);
|
|
}
|
|
rotate([angle2, 0, 0])
|
|
translate([0, 0, -1])
|
|
cylinder(h=spout_h2 + 2, r=spout_r - wall);
|
|
}
|
|
}
|
|
}
|