Initial commit: OpenSCAD MCP server for Claude Code
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>
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user