EDIT: latest branch is https://github.com/berndhahnebach/FreeC ... hellbeam19 August, 17th 12015
-------------------------------------------------------------------------------------------------------------------------------------------------------
Since the ViewProvider for beam and shell elements is implemented and the writeAbaqus() is able to write shell and beam meshes it's time to attrach the CalculiX part of the story. Here is what I come up with. A new FemObject FemElementType to store the ElementProperties. It supports Mechanical Solid, Shell and Beam elements. It could be extended to fluids electrodynamics or what ever elements our solver, mesher end exporter supports.
In current implementation the thickness for shell and the crosssection for beam elements are properties of the new FemElementType.
There is no gui and no drag and drop yet. If you guys like it I wouls add a little gui to choose the elementtype.
You can add Objects by python:
Code: Select all
import FemElementType
# Solid
FemElementType.makeFemElementType('FemElementType', 'Solid')
App.activeDocument().MechanicalAnalysis.Member = App.activeDocument().MechanicalAnalysis.Member + [App.ActiveDocument.FemElementType]
#Shell
FemElementType.makeFemElementType('FemElementType', 'Shell')
App.activeDocument().MechanicalAnalysis.Member = App.activeDocument().MechanicalAnalysis.Member + [App.ActiveDocument.FemElementType]
#BeamRect
FemElementType.makeFemElementType('FemElementType', 'BeamRect')
App.activeDocument().MechanicalAnalysis.Member = App.activeDocument().MechanicalAnalysis.Member + [App.ActiveDocument.FemElementType]
#BeamCirc
FemElementType.makeFemElementType('FemElementType', 'BeamCirc')
App.activeDocument().MechanicalAnalysis.Member = App.activeDocument().MechanicalAnalysis.Member + [App.ActiveDocument.FemElementType]
Find attached the famous CalculiX cantilever modelled by volume, shell and beam elements. The files include the new object allready. The results are very similar. Results for beam and shell are only possible as min/max text. There are still some issues with the colors and deformed mesh in beam and shell elements.
deformations in mm
in force direction:
87.20 volume C3D10
88.23 shell S6
88.13 beam B31
87.7 calculated by beam theory formula
normal to force direction and normal to shape axis:
0.297 volume
0.278 shell
0.275 beam
normal to force direction and in shape axis:
8.14 volume
8.21 shell
8.20 beam
Some problems I had. Some properties are read only but after save and reopen the document these properties are no longer read only. ViewProvider does not really work. The idea was to use the same ViewProvider for all classes. But even if I delete the ViewProvider at all the objects are displayed in the tree but greyed.
Since it is my first App::FeaturePython from scatch the code is may be not of good quality at all. Any hints are very welcome.
brunch:
https://github.com/berndhahnebach/FreeC ... hellbeam02
commit:
https://github.com/berndhahnebach/FreeC ... df052aa9d0
Have Fun!