FEM Einstieg

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
herrdeh
Posts: 436
Joined: Wed Sep 03, 2014 12:15 pm

FEM Einstieg

Post by herrdeh »

Moinsen Kollegen,

Herr D. wird immer muthiger - und traut sich jetzt schon nach FEM.

Die Doku scheint mir ziemlich veraltet - soweit ich das verstehe, brauche ich mit der 0.16 keine zusätzliche Software mehr installieren, oder?
(NB: Habe grade einen Wiki-Zugang beantragt und würde das dann gegebenenfalls korrigieren).

Trotzdem bleibe ich hängen - habe ein Modell gebaut, aber den Schritt "Solver" kann ich nicht auslösen, weil der Menüpunkt ausgegraut ist.
Hier https://owncloud.trolink.de/index.php/s/F2XofYBKTTcxnZn wäre mein Modell.
Kann mir jemand helfen?

Besten Dank,
Wolf
ArminF
Posts: 771
Joined: Fri Dec 23, 2016 12:33 pm
Location: Augsburg, Germany

Re: FEM Einstieg

Post by ArminF »

Hi Herr D.,

Du hast schon mal auf den Solver-Knopf gedrückt. Im Baum unten siehst Du das Ergebnis, heißt "CalculiX"
Wenn Du das rauslöscht und wieder auf die "Mechanical Analysis" doppelt klickst, kannst Du erneut auf den "Solver" Button klicken.

Was man mit dem CalculiX-Ergebnis anfangen kann weiß aber leider auch nicht :(

Bin leider nicht mal FEM-Neuling, eher -Embryo!

Gruß

Armin
Wer einen Rechtschreibfehler findet, kann ihn behalten :lol:
herrdeh
Posts: 436
Joined: Wed Sep 03, 2014 12:15 pm

Re: FEM Einstieg

Post by herrdeh »

Danke Armin, da hast Du mir schon mal weitergeholfen.

Ein paar Sachen habe ich gleich falsch gemacht:
  • offenbar geht zumindest mit der 0.16 nur ein Objekt
  • die Kraft muß wohl auf das zu untersuchende Objekt direkt einwirken
  • ein Material und das mesh-Objekt müssen unter dem "Analysis"-Objekt einsortiert sein
Dann kann man calculix auswählen und den Befehl "solver job control" ausführen.
Dabei kriege ich nun allerdings in der 0.16 und der 0.17 (FEM mesh has no volume elements) unterschiedliche Fehlermeldungen.

Hier steht die aktuelle Datei - vielleicht hat ja jemand Freude dran:
https://owncloud.trolink.de/index.php/s/A1ILW2HS6sTKeIr

Beste Grüße,
Wolf
User avatar
r-frank
Veteran
Posts: 2180
Joined: Thu Jan 24, 2013 6:26 pm
Location: Möckmühl, Germany
Contact:

Re: FEM Einstieg

Post by r-frank »

Also ich mache FEM-Simulationen jetzt seit 8 Jahren oder so und doch ist jede Simulation ein Fall für sich ...

Wenn ich Tutorials darüber machen würde bräuchte ich wahrscheinlich mindestens drei nur für die Grundlagen.
An der Dualen Hochschule ware das ja zwei Semester Elastizitäts- und Festigkeitslehre und bis ich dann so weit
begriffen habe mit welchen Finessen ich das der Software "verklickern" muss das war auch ein Act.

Und beruflich mach ich nur Einzelteile. Baugruppen, Thermik, nicht-linear, Schalenstudien, dynamische Studien und Frequenzanalyse
bin ich (außer Baugruppen) noch völlig unbefleckt ...

Konkret zu Deinem Fall.
Ich weiß jetzt nicht, wie weit die aktuelle 0.17 ist, ich hab damals mit der 0.15/0.16 ein paar Sachen probiert und in der Wiki damals
ein paar erste Infos mit eingepflegt ...

> Man kann nur Einzelteile berechnen, und nur Solids (Volumenmodelle), für Baugruppen bräuchte man Kontaktsatz-Definitionen
> Du vernetzt ja zuerst Dein Volumenmodell
> dann schaust Du, wie Dein Modell gelagert ist, d.h Du sperrst Flächen Freiheitsgrade (vereinfacht ausgedrückt).
> ConstraintFixed heißt, diese Fläche kann sich in KEINE Richtung bewegen
> dann gibst Du noch Belastung hinzu (Kraft auf Fläche, Druck auf Fläche, Torsionsmomente ...)
> dann vergibst Du ein Material
> jedes Material besitzt ein E-Modul (Elastizitätsmodul) und eine Poissonsche Zahl (Querkontraktion) die sein Verhalten unter Last bestimmt
> man lässt sich nun vom Solver für jede Netz-Zelle eine Vergleichsspannung berechnen (sog. v.-Mises-Spannung)
> man betrachtet die errechneten Werte in kritischen Bereichen des Modells (z.B. an einer dünnen Wand)
> man vergleicht der errechneten Wert mit der Streckgrenze des Materials und erhält einen groben Fakor

Errechneter Wert sehr viel größer als Streckgrenze > alles bestens, wenn nicht, oha ...

Wie gesagt, fast jeder der oben angeführten Punkte wäre ein einzelnes 50 Minuten-Tutorial nur für das Wesentliche wert ...
Vielleicht mache ich tatsächlich mal eine Einführungsreihe anhand einer Schweisskonsole oder so ...

Ich hoffe ich konnte Dir mal wenigstens einen kleinen Einblick geben, was mit FEM gemeint ist und wa sich prinzipiell dahinter verbirgt ...

Roland
Deutsche FreeCAD Tutorials auf Youtube
My GrabCAD FreeCAD-Projects
FreeCAD lessons for beginners in english

Native german speaker - so apologies for my english, no offense intended :)
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: FEM Einstieg

Post by bernd »

herrdeh wrote:Herr D. wird immer muthiger - und traut sich jetzt schon nach FEM.
Wunderbar!
herrdeh wrote:Die Doku scheint mir ziemlich veraltet - soweit ich das verstehe, brauche ich mit der 0.16 keine zusätzliche Software mehr installieren, oder?
Yep, da hast Du recht die Doku ist veraltet, aber hier im Forum helfen wir Dir ja gern!

Wie immer, das wichtigste in Bezug auf die FEM workbench: bitte unbedingt immer die letzte 0.17.xxxx verwenden. Es hat inzwischen hunderte von Änderungen gegeben. Weder ich noch jemand anders fixed Bugs in 0.16 in Bezug auf FEM.

OK, dann mit der 0.17er. Bei der 0.17er unter Windows ist ein Vernetzer (GMSH) sowie eine Solver (CalculiX) bereits integriert.

- FreeCAD starten --> zur StartWB wechseln --> FEM 3D example laden
- Doppelklick auf die analysis activiert die analysis
- Nun Doppelklick auf die Resultate und schon kannst Du die Resultate anschauen. Spannungen, Dehnungen, Verforumen ...
- Nun purge results icon anklicken und die resultate werden gelöscht
- Nun bei immernoch aktiver analysis den solver selektieren und auf das icon run solver klicken, kurz warten und schon
- ist ein neues result objekt da. Da nichts geändert wurde sollten die resultate gleich sein (z-verformung ca 87 mm)
- Nun einfach mal die Last im force constraint verdoppeln oder halbieren, dann sollten sich spannungen und verformungen auch halbieren oder verdoppeln
- dann mal die richtung der last ändern

- Noch als hinweis. Es gibt den Internen Netgen vernetzer und den GMSH vernetzer. Obiges Beispiel ist mit dem Netgen vernetzer erstellt. Der ist aber in der aktuellen 0.17er nicht mit übersetzt, daher

- einfach mal das netz löschen --> ein GMSH netz objekt erstellen --> neu vernetzen --> neu berechnen
- Es sollten die gleichen Ergebnisse herauskommen.

so ich glaub fürs erste genug, ansonsten einfach fragen. Achso und zum wiederholten male immer die letzte 0.17er verwenden. Es ist zum beispiel gerade weider ein PullRequest in Bezug auf FEM in der pipe line, der wohl hoffentlich morgen integriert wird. https://github.com/FreeCAD/FreeCAD/pull/487

Schlaft gut ...

Achso für die mechaniker unter uns. Obiges bsp ist ein statisch bestimmtes System. Heisst z-Verformung und biegfespannung lassen sich von hand mit einfachen formeln ausrechnen!
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: FEM Einstieg

Post by bernd »

Ein Hinweis noch. Das FEM Netz immer zum Schluss erstellen, erst die Constraints und materials !
herrdeh
Posts: 436
Joined: Wed Sep 03, 2014 12:15 pm

Re: FEM Einstieg

Post by herrdeh »

Moinsen, Dank für die ausführliche Anderhandnahme!

Hier die Neuigkeiten von der Front:

Habe nach längerem Gesuche die Beispieldatei gefunden (Startseite -> ganz runterscrollen) - das funktioniert alles auf meiner 0.17-9927.
Wenn ich es aber mit einer eigenen Datei versuche, klappt offenbar das Mesh-Erzeugen nicht:
Bildschirmfoto von »2017-02-01 16-08-53«.png
Bildschirmfoto von »2017-02-01 16-08-53«.png (65.62 KiB) Viewed 4863 times
Was kann man daran falsch machen? - Ich habe:
"Mutter-Objekt" ausgewählt - FEM-Menü -> FEM Mesh by GMSH

Mit dem Netgen-Mesher kriege ich ein sichtbares mesh, der GMSH produziert offenbar nur eine unsichtbare, leere Datei.
Was mache ich falsch?

Grüße,
Wolf
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: FEM Einstieg

Post by bernd »

herrdeh wrote: Mit dem Netgen-Mesher kriege ich ein sichtbares mesh, der GMSH produziert offenbar nur eine unsichtbare, leere Datei.
Was mache ich falsch?
Kannst Du das file posten?

Aha du bist auf ubuntu? Dann musst du das paket gmsh installieren!

Was sagt die Ausgabekonsole? Gibt es eine Fehlermeldung?
herrdeh
Posts: 436
Joined: Wed Sep 03, 2014 12:15 pm

Re: FEM Einstieg

Post by herrdeh »

Ah, danke. Also - gmsh 2.13 installiert.

Die Vermeshungsresultate sind allerdings nicht so doll.
Anbei Versuche mit einem Zylinder und einem Quader - naja...

Der Netgen kann das alles - und auch mein Bauteil, das ich untersuchen wollte:
https://owncloud.trolink.de/index.php/s/A1ILW2HS6sTKeIr

Auf Python-Konsole und Ausgabefenster steht mE nichts interessantes.

Grüße,
Wolf

Py-Konsole:

Code: Select all

import WebGui
from StartPage import StartPage
WebGui.openBrowserHTML(StartPage.handle(),'file://' + App.getResourceDir() + 'Mod/Start/StartPage/','Start page')
execfile('/usr/share/freecad-daily/Mod/Start/StartPage/LoadMRU0.py')
App.setActiveDocument("__FEM_Kl_2_3_3")
App.ActiveDocument=App.getDocument("__FEM_Kl_2_3_3")
Gui.ActiveDocument=Gui.getDocument("__FEM_Kl_2_3_3")
Gui.activateWorkbench("FemWorkbench")
import FemGui
import FemMeshGmsh
FemMeshGmsh.makeFemMeshGmsh('Fillet_Mesh')
App.ActiveDocument.ActiveObject.Part = App.ActiveDocument.Fillet
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)
App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject', 'Fillet_Mesh')
App.activeDocument().ActiveObject.Shape = App.activeDocument().Fillet
Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)
Gui.activeDocument().resetEdit()
App.closeDocument("__FEM_Kl_2_3_3")
App.setActiveDocument("")
App.ActiveDocument=None
Gui.ActiveDocument=None
App.newDocument("Unbenannt")
App.setActiveDocument("Unbenannt")
App.ActiveDocument=App.getDocument("Unbenannt")
Gui.ActiveDocument=Gui.getDocument("Unbenannt")
Gui.activateWorkbench("PartWorkbench")
App.ActiveDocument.addObject("Part::Cylinder","Cylinder")
App.ActiveDocument.ActiveObject.Label = "Zylinder"
App.ActiveDocument.recompute()
Gui.SendMsgToActiveView("ViewFit")
Gui.activateWorkbench("FemWorkbench")
FemMeshGmsh.makeFemMeshGmsh('Cylinder_Mesh')
App.ActiveDocument.ActiveObject.Part = App.ActiveDocument.Cylinder
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)
Gui.getDocument("Unbenannt").getObject("Cylinder").Visibility=False
Gui.activateWorkbench("PartWorkbench")
App.ActiveDocument.addObject("Part::Cylinder","Cylinder")
App.ActiveDocument.ActiveObject.Label = "Zylinder"
App.ActiveDocument.recompute()
Gui.SendMsgToActiveView("ViewFit")
FreeCAD.getDocument("Unbenannt").getObject("Cylinder001").Height = '2 mm'
FreeCAD.getDocument("Unbenannt").getObject("Cylinder001").Height = '20 mm'
Gui.activateWorkbench("FemWorkbench")
FemMeshGmsh.makeFemMeshGmsh('Cylinder001_Mesh')
App.ActiveDocument.ActiveObject.Part = App.ActiveDocument.Cylinder001
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)
Gui.getDocument("Unbenannt").getObject("Cylinder001").Visibility=False
Gui.getDocument("Unbenannt").getObject("Cylinder_Mesh").Visibility=False
Gui.SendMsgToActiveView("Save")
App.getDocument("Unbenannt").saveAs(u"/home/wd/Schreibtisch/Zylinder_mesh.fcstd")
Gui.activateWorkbench("PartWorkbench")
App.ActiveDocument.addObject("Part::Box","Box")
App.ActiveDocument.ActiveObject.Label = "Würfel"
App.ActiveDocument.recompute()
Gui.SendMsgToActiveView("ViewFit")
FreeCAD.getDocument("Unbenannt").getObject("Box").Height = '5 mm'
FreeCAD.getDocument("Unbenannt").getObject("Box").Height = '50 mm'
Gui.activateWorkbench("FemWorkbench")
FemMeshGmsh.makeFemMeshGmsh('Box_Mesh')
App.ActiveDocument.ActiveObject.Part = App.ActiveDocument.Box
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)
Gui.SendMsgToActiveView("Save")
App.getDocument("Unbenannt").save()
FemMeshGmsh.makeFemMeshGmsh('Box_Mesh')
App.ActiveDocument.ActiveObject.Part = App.ActiveDocument.Box
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)
Gui.SendMsgToActiveView("Save")
App.getDocument("Unbenannt").save()
Attachments
Zylinder_mesh.fcstd
(20.5 KiB) Downloaded 110 times
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: FEM Einstieg

Post by bernd »

herrdeh wrote: Die Vermeshungsresultate sind allerdings nicht so doll.
Anbei Versuche mit einem Zylinder und einem Quader - naja...
Was möchtest du besser haben? Evtl. liegt es ja einfach an den falschen Einstellungen? ;)
Post Reply