Wie wäre es Bauteile per KI zu konstruieren? Auch das geht mit FreeCAD und zwar über die Python-Konsole…
FreeCAD und die Python-Konsole:
Unter Ansicht => Fenster versteckt sich die Python-Konsole von FreeCAD. Der Python Code wird einfach per KI generiert und kann dann in diese Python-Konsole eingefügt werden.
Ein Zylinder als Hohlrohr:
import FreeCAD as App
import Part
# 1. Neues Dokument erstellen (falls keines offen ist)
doc = App.newDocument("Hohler_Zylinder")
# 2. Abmessungen festlegen (in mm)
aussen_radius = 20.0
innen_radius = 15.0
hoehe = 50.0
# 3. Den äußeren Zylinder erstellen
aussen_zylinder = Part.makeCylinder(aussen_radius, hoehe)
# 4. Den inneren Zylinder erstellen (der später abgezogen wird)
innen_zylinder = Part.makeCylinder(innen_radius, hoehe)
# 5. Den inneren vom äußeren Zylinder abziehen (Ausschneiden / Cut)
hohl_zylinder_shape = aussen_zylinder.cut(innen_zylinder)
# 6. Das Ergebnis im FreeCAD-Dokument anzeigen
rohr_objekt = doc.addObject("Part::Feature", "HohlerZylinder")
rohr_objekt.Shape = hohl_zylinder_shape
# 7. Ansicht aktualisieren
doc.recompute()
Das Zahnrad per KI
import FreeCAD as App
import Part
import FreeCADGui as Gui
import math
# 1. Aktuelles Dokument greifen
doc = App.activeDocument()
# 2. Grundkörper (Zylinder in der Mitte)
basis_radius = 20.0
hoehe = 10.0
zylinder_shape = Part.makeCylinder(basis_radius, hoehe)
# Liste, um alle Formen (Zylinder + Zähne) zu sammeln
formen_liste = [zylinder_shape]
# 3. Zähne als Würfel im Kreis anordnen
anzahl_zaehne = 12
zahn_breite = 6.0
zahn_hoehe = 6.0 # Wie weit der Zahn nach außen absteht
for i in range(anzahl_zaehne):
# Winkel für jeden Zahn berechnen
winkel = (2 * math.pi / anzahl_zaehne) * i
# Einen Würfel für den Zahn erstellen
zahn = Part.makeBox(zahn_breite, zahn_hoehe, hoehe)
# Den Zahn so verschieben, dass er mittig auf dem Rand sitzt
zahn.translate(App.Base.Vector(-zahn_breite/2.0, basis_radius - 2.0, 0))
# Den Zahn um das Zentrum (0,0,0) drehen
zahn.rotate(App.Base.Vector(0,0,0), App.Base.Vector(0,0,1), math.degrees(winkel))
# Zahn zur Liste hinzufügen
formen_liste.append(zahn)
# 4. Alle Formen zu einem einzigen Bauteil verschmelzen (Fuse)
zahnrad_zusammengebaut = Part.makeCompound(formen_liste)
zahnrad_final = zahnrad_zusammengebaut.fuse(zahnrad_zusammengebaut)
# 5. Das fertige Objekt im Dokument anzeigen
zahnrad_objekt = doc.addObject("Part::Feature", "MeinGebasteltesZahnrad")
zahnrad_objekt.Shape = zahnrad_final
# 6. Altes Bauteil ausblenden und Ansicht aktualisieren
try:
doc.getObject("MeinErfolgreichesBauteil").Visibility = False
except:
pass
doc.recompute()
Gui.activeDocument().activeView().fitAll()