beso icon indicating copy to clipboard operation
beso copied to clipboard

Documentation for non-design spaces

Open hopoffbaby opened this issue 4 years ago • 5 comments

Hi,

I have been using this project for a little while now and have got some nice designs out of it for my 3D printer.

One area that I have really struggled to understand is how to exclude areas from the optimization. For example areas that must fit with other parts.

I notice in Example 2 in the wiki it makes mention of "Geometry was divided by intersections to obtain non-design space around bolts and a pin." I wonder if this could please be expanded on as I am not sure how to achieve this? I did take a look on the forums, and while I found some discussions about the project. I still couldn't figure this out.

If I am able to understand how it work, I would happily write up some documentation with screenshots etc to help others use this project for 3D printing etc.

Thanks, hopoffbaby

hopoffbaby avatar Jul 14 '21 21:07 hopoffbaby

Hello, There are more ways, but clear way is through definition of multimaterial model in FreeCAD. Supposing you prepare the model in FreeCAD and use GUI as described in the Example 4.

  1. In FreeCAD Part workbench, use Part -> Compound -> Make compound to create final geometry from sections (optimized vs. non-optimized)
  2. In FreeCAD FEM workbench, define two material objects, one for optimized section (select desired geometry), second for non-optimized. The rest of the analysis is as usual.
  3. In BESO GUI, use "Material object" menu to select optimized Domain 0, e.g. MaterialSolid or MaterialSolid001 (and Thickness object if applicable). The rest of the optimization settings is as usual.

The process behind is that FreeCAD defines element set for each material. BESO GUI associates optimized domain with selected material and so the element set on the background. The rest is untouched by BESO (materials which were not selected).

You can also look at FEM workbench: Utilites -> open FEM examples -> Materials -> multimaterial -> Multimaterial tension rod 2 boxes It shows model with two materials, but it has non-default material names. If you recreate the example in the new document or just recreate material objects, BESO GUI should work.

fandaL avatar Jul 15 '21 11:07 fandaL

@fandaL

Thanks for the reply. I have tried creating the compound object and assigning multiple materials. I dont get as far as running the beso process as the CalculiX results shows massive displacement.

See here for screens and workflow:

https://github.com/hopoffbaby/beso/blob/docs/wiki_files/example_5/example.md

Any ideas what I am doing wrong here? I'd like to get this simple example working before I try anything more complex.

Thanks in advance

hopoffbaby avatar Jul 15 '21 21:07 hopoffbaby

I was wrong with the compound - it only groups shapes, so the mesh is not merged and flies away when loaded. This tutorial

https://wiki.freecadweb.org/FEM_Shear_of_a_Composite_Block

uses

Part -> Split -> BooleanFragments, in the Compsolid mode but your example works also with BooleanFragments in Standard mode. It works even with Part -> Boolean -> Union

I'm not so proficient in these FreeCAD details. BooleanFragments seem to be mostly used within FreeCAD FEM forum. The component shapes can also overlap, which you could use for "material" around a hole by creating simple cylinder from Part workbench, etc.

When creating the second material object, you can leave empty geometry selection - material will be applied on the rest of the mesh automatically.

fandaL avatar Jul 16 '21 08:07 fandaL

Thanks for the pointer @fandaL,

I have managed to get further. My part doesnt fly away now, and the beso process completes successfully :)

These are the steps I followed:

https://github.com/hopoffbaby/beso/blob/docs/wiki_files/example_5/example2.md

I have a follow up question:

Do you know how I can convert this resulting inp file into something I can run a FEM calculation on again to visualize the stresses on the resultant geometry?

Thanks

hopoffbaby avatar Jul 17 '21 19:07 hopoffbaby

To view stresses, you can use different approaches:

  1. Fill stress limits (all active inputs) in the GUI. When you import e.g. file000.vtk to the Paraview, you can display failure index

FI = (vonMises stress) / (stress limit)

In Paraview, you can use

Filters -> Alphabetical -> Threshold -> minimum higher than 0

which will hide void elements.

  1. Click "Edit conf. file" in the GUI and add parameter:

save_solver_files = "frd"

which will keep *.frd output from CalculiX. Drug-and-drop it to FreeCAD where you can view results as usual. Disadvantage is that it includes also void elements but they will have low stress.

  1. Drug-and-drop resulting inp mesh to FreeCAD, use this mesh object in the FreeCAD analysis instead of the original mesh (delete or drug-and-drop old mesh out of the Analysis container) and run the analysis as usual. Some issues may appear due to loads and boundary conditions, e.g. if elements are missing on the face which is loaded.

Note: The stresses on the boundary between solid and void elements are not much relevant. You would need to do new analysis with smooth mesh to get precise results.

Note:The GUI might be a bit confusing - Filter 1 applies to "All domains" as selected below it. In such example it is enough to define only one filter for all domains or just for the optimized domain.

fandaL avatar Jul 18 '21 13:07 fandaL