Die Datei cylinder_form.scad:
durchmesser = 35;
wand = 4;
hoehe = 30;
ring_h = 3;
ring_w = durchmesser + 5;
$fn = $preview?24:48;
eps = 0.1;
difference()
{
union()
{
cylinder(d=durchmesser, h= hoehe);
cylinder(d = ring_w, h=ring_h);
}
cylinder(d = durchmesser - 2*wand, h=hoehe + eps);
}
Die Datei heart_form.scad:
// $Revision: 997 $
// $Id: heart_form.scad 997 2025-11-06 15:17:24Z bernhard $
// $Author: bernhard $
// $Date: 2025-11-06 16:17:24 +0100 (Do, 06. Nov 2025) $
// $LastChangedDate: 2025-11-06 16:17:24 +0100 (Do, 06. Nov 2025) $
// (C) 2025, 3d.bit-field.de - B. Schönhammer, D-29439 Lüchow
use <BOSL2/std.scad>
//use <BOSL2/rounding.scad>
$fn = $preview ? 32 : 96 ;
//
eps = 0.1;
// Seitenlänge Quadrat (Herz unten und HalbkreisDurchmesser)
s = 26;
// Höhe
hh = 30;
// Höhe Rand
hh_rand = 4;
// Wandstärke
wall = 4;
module heart_2d()
{
square(s);
translate([s,s/2]) circle(d=s);
translate([s/2,s]) circle(d=s);
}
module heart_2d_line_back(wall=wall, hh=hh)
{
linear_extrude(height=hh) {
difference()
{
offset(wall) heart_2d();
heart_2d();
}
}
}
module heart_2d_line(wall=wall, hh=hh)
{
difference()
{
linear_extrude(height=hh)
offset(1.5*wall) heart_2d();
down(1) linear_extrude(height=hh + 1 + 2*eps)
heart_2d();
}
}
module cutter()
{
rotate([0,0,45])
{
difference()
{
convex_offset_extrude(height=hh_rand, top=os_circle(r=1), bottom=os_circle(r=1) )
offset(2*wall) heart_2d();
down(1) linear_extrude(height=hh + 1 + 2*eps)
heart_2d();
}
heart_2d_line(wall=wall/2);
}
}
cutter();
Die zugehörigen stl-Dateien findest du auf der Seite
STL-Downloads – Saatbomben
Titelbildquelle: eigenes Bild
... because software matters