Hallo Harald,
diese dicken Brummer sehen ja sehr schick aus, auch farblich und mit dem Vaselineglanz.
Sind die nur klemmbefestigt oder wie halten die auf der Achse?
geometer hat geschrieben: ↑25 Feb 2026, 15:13
Für mich sehr interessant, Eure Erfahrungen.
Weder mit CAD noch mit 3D-Druck habe ich nennenswerte Erfahrung. Aber soweit ich das verstehe, macht Ihr alles so wie in diesem Video:
https://youtu.be/FciC17mNu_I
Stimmt das?
Viele Grüße
Thomas
Moin Thomas,
in meinem Fall mache ich wie geschrieben gar nicht, die erste Version kam aus einer FreeCAD Library, für die zweite (hyperboloide) hat Claude mir ein Python Macro geschrieben. Unten habe ich Claude den relevanten Teil erklären lassen. Den Video habe ich nicht komplett angesehen, aber es ist im Prinzip genau dein "Gummiband"-Vorgehen, in meinem dritten Bild (Screenshot) sieht man das ja auch gut. Das eigentlich Interessante passiert in Schritt 2, der Rest ist nur um den Körper komplett zu machen. pts_2d enthält das Profil der Grundfläche.
vg
Jan
1. Zwei verdrehte Kopien erzeugen:
Code: Alles auswählen
pts_bot = transform(pts_2d, -phi, 0)
pts_top = transform(pts_2d, +phi, b)
Das 2D-Profil wird zweimal in 3D transformiert: einmal um
-phi gedreht auf Z=0 (Unterseite), einmal um
+phi gedreht auf Z=b (Oberseite). Die Gesamtverdrehung zwischen oben und unten beträgt
2·phi.
2. Mantelfläche aus Ruled Surfaces:
Code: Alles auswählen
for i in range(n_pts):
j = (i + 1) % n_pts
e_bot = Part.makeLine(pts_bot[i], pts_bot[j])
e_top = Part.makeLine(pts_top[i], pts_top[j])
ruled = Part.makeRuledSurface(Part.Wire([e_bot]), Part.Wire([e_top]))
faces.extend(ruled.Faces)
Für jedes benachbarte Punktepaar im Profil wird eine Kante unten und eine Kante oben erzeugt.
makeRuledSurface verbindet diese durch geradlinige Verbindungen – das ist die Kernoperation, die die Hyperboloid-Form erzeugt. Jeder Punkt unten wird exakt mit seinem Gegenstück oben verbunden, der Twist bleibt erhalten.
3. Deckflächen schließen:
Code: Alles auswählen
wire_bot = Part.makePolygon(pts_bot + [pts_bot[0]])
wire_top = Part.makePolygon(pts_top + [pts_top[0]])
faces.append(Part.Face(wire_bot))
faces.append(Part.Face(wire_top))
Die geschlossenen Polygone der Ober- und Unterseite werden als planare Flächen erzeugt und zu den Mantelflächen hinzugefügt.
4. Shell → Solid:
Code: Alles auswählen
shell = Part.Shell(faces)
shell.fix(1e-3, 1e-3, 1e-3)
solid = Part.Solid(shell)
Alle Faces werden zu einer geschlossenen Hülle zusammengefügt.
fix() repariert kleine Lücken/Toleranzfehler. Aus der geschlossenen Shell wird ein Volumenkörper.