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()

Von Torsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert