There is some initial design area. The locations of the constraints and the location of the load are known. The problem is to remove from the area all unstressed and low-stressed material (all areas where the stresses are less than the specified value).
It is also necessary to build a 3D model suitable for subsequent additive manufacturing based on the result (optimized topology).
Geometry Creation
1. Create a rectangle.
On the command panel, select: "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Create".
From the list of geometric primitives, select Rectangle.
Set the following parameters :
-
Width: 0.5;
-
Heigtht: 0.3;
-
ZPlane.
Click "Apply".
Rectangle will be created as on figure below.
Next, it is need to create 3 identical circles, which will allow you to set the boundaries of the unchangeable areas of future places of boundary conditions.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Create".
From the list of geometric primitives, select Circle.
Set the following parameters :
-
Radius;
-
Radius: 0.03;
-
ZPlane.
Click "Apply".
Repeat this procedure 2 more times, after which the following result can be seen.
Move the circles to the locations of the future areas of boundary conditions and loads.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Transform".
From the list of actions, select Move.
Set the following parameters :
-
Surface ID(s): 2;
-
Distance;
-
Х Distance: 0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
The selected circle will move to the specified distance
Then repeat this procedure 2 more times with other values in the fields.
For surface 3, set the following parameters:
-
Surface ID(s): 3;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
For surface 4, set the following parameters:
-
Surface ID(s): 4;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: 0.1;
-
Z Distance: 0.
Click "Apply".
As a result, the following will be observed on the screen.
Then "subtract" the circles (surfaces 2, 3, and 4) from the rectangle (surface 1).
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Boolean".
From the list of actions, select Subtract.
Set the following parameters :
-
А Surface ID(s): 1;
-
B Surface ID(s): 2 3 4.
Click "Apply".
The result of these actions will be a surface with three holes, as shown in the figure below.
Then it is need to create 3 circles again, as it was done above.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Create".
From the list of geometric primitives, select Circle.
Set the following parameters :
-
Radius;
-
Radius: 0.03;
-
ZPlane.
Click "Apply".
And repeat this procedure again 2 more times.
Then move the created circles again. However, the new circles will have different surface numbers - 6, 7, and 8.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Transform".
From the list of actions, select Move.
Set the following parameters :
-
Surface ID(s): 6;
-
Distance;
-
Х Distance: 0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
Then repeat this procedure 2 more times with other values in the fields.
For surface 7, set the following parameters:
-
Surface ID(s): 3;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
For surface 8, set the following parameters:
-
Surface ID(s): 4;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: 0.1;
-
Z Distance: 0.
Click "Apply".
As a result, the following will be observed on the screen.
Create and move 3 more circles with a smaller radius in the same way.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Create".
From the list of geometric primitives, select Circle.
Set the following parameters :
-
Radius;
-
Radius: 0.02;
-
ZPlane.
Click "Apply".
Repeat this procedure 2 more times.
Then move the new circles (surfaces 9, 10 and 11) in the same way as the previous ones.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Transform".
From the list of actions, select Move.
Set the following parameters :
-
Surface ID(s): 9;
-
Distance;
-
Х Distance: 0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
The selected circle will move to the specified distance
Then repeat this procedure 2 more times with other values in the fields.
For surface 10, set the following parameters:
-
Surface ID(s): 10;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: -0.1;
-
Z Distance: 0.
Click "Apply".
For surface 11, set the following parameters:
-
Surface ID(s): 11;
-
Distance;
-
Х Distance: -0.2;
-
Y Distance: 0.1;
-
Z Distance: 0.
Click "Apply".
As a result, the following will be observed on the screen.
The next step is to "subtract" the surface of the small circles from the surfaces of the large circles.
Go to "Mode" — "Geometry", "Entity" — "Surface", "Action" — "Boolean".
From the list of actions, select Subtract.
Set the following parameters :
-
А Surface ID(s): 7;
-
B Surface ID(s): 10.
Click "Apply".
Then the following parameters :
-
А Surface ID(s): 8;
-
B Surface ID(s): 11.
Click "Apply".
And the following parameters :
-
А Surface ID(s): 6;
-
B Surface ID(s): 9.
Click "Apply".
The result of the actions performed is shown in the figure below.
At the moment, all surfaces are unconnected and, when trying to create a mesh, the nodes on the boundaries of the surfaces will not join. In order to be able to build a suitable mesh, it is necessary to merge the lines at the joints of the surfaces.
Go to "Mode" — "Geometry", "Entity" — "Curve", "Action" — "Merge".
From the list of actions, select Merge.
Fill the field "Curve ID(s)" with: all
Click "Apply".
Meshing
1. Create a mesh.
Go to "Mode" — "Mesh", "Entity" — "Surface", "Action" — "Intervals".
Select Approximate size and fill the field Select Surfaces with all.
Fill the field Approximate size with 0.005.
Click "Mesh".
The result is shown in the figure below.
Specifying the material and Block
1. Create the material.
Go to "Mode" — "Material", "Entity" — "Materials Management". After that, the material management window will open, where you need to enter a name for the material that will be used.
After you have set the name (in this case, Topological Mat), you need to expand the property tree in the "Elasticity" - "Hook Material" branch and drag, holding down the left mouse button, the "Young's Modulus" and "Poisson Ratio" from the property tree to the lower right area.
In the same way, it is need to transfer the "Ultimate strength" from the "Strength" - "Strength Isotropic" branch.
Then set the values as in the example below.
Then click "Apply" and then "X" in the upper right corner of the Material Management panel.
The next step is to create a block to pass properties to the surfaces.
2. Create a block.
Go to "Mode" — "Blocks", "Entity" — "Block", "Action" — "Add"
Select "Surface" in the Entity List, and in the "Entity ID(s)" field enter "All" to add all surfaces to the block at once.
Click "Apply".
Go to "Mode" — "Blocks", "Entity" — "Block", "Action" — "Block properties/parameters"
Select the created block from the "Block name" drop-down list (in this example it will be the only one).
Then select the created material from the "Material" drop-down list.
And select Plane from the Category drop-down list.
Click "Apply".
Setting boundary conditions
1. Create boundary conditions.
Go to "Mode" — "Boundary Conditions", "Entity" — "Displacement", "Action" — "Create"
Select "Surface", click in the "Entity ID(s)" field, and then hold down "Ctrl" click on the surfaces of interest.
After which the numbers of the selected surfaces will appear in the "Entity ID(s)" field: "12 and 14".
Check the "All" box in the "Degrees Of Freedom" menu and click "Apply".
Thus, not only were the boundary conditions created, but the regions of interest that must be preserved from the material removal algorithm were also "protected". This is the first way to "protect" immutable areas.
2. Apply the load.
Go to "Mode" — "Boundary Conditions", "Entity" — "Force", "Action" — "Create"
In the Force Entity List, select "Curve", click in the "Entity ID(s)" field, and then to the inside curve of the upper right hole, after which its number "18" will appear in the "Entity ID(s)" field.
In the "Force" field, enter the value "100".
Enter "1 0 0"In the "Direction" field to indicate the direction along the "X" axis.
Click "Apply".
Now it is necessary to "protect" the circular surface around the load application zone from the algorithm. To do this, a light load must be applied to the surface, which "protects" the surface without affecting the results. This is the second way to "protect" immutable areas.
Go to "Mode" — "Boundary Conditions", "Entity" — "Force", "Action" — "Create"
In the Force Entity List, select "Surface", click in the "Entity ID(s)" field, and then to the surface of the upper right hole, After which its number "13" will appear in the "Entity ID(s)" field.
In the "Force" field, enter the value "1e-6".
Enter "1 0 0"In the "Direction" field to indicate the direction along the "X" axis.
Click "Apply".
Preliminary static calculation
1. Set the calculation settings.
Select calculation setting section on Command Panel ("Mode" — "Calculation settings", "Calculation settings" — "Static", "Static" — "General"
Select the dimension: 2D.
Click "Apply", and then "Start Calculation".
In the window that opens, select the location to save the results and the file name. Then click "Save".
Calculation starts.
When the calculation is completed, the following message will appear in the "Command Line". After that, you can proceed to viewing the results.
Results analysis
To view the results, go to the "Fidesys Viewer" postprocessor. To do this, you need to go to "Mode" - "Results" and click "Open last result".
Results of static calculation. Von Mises stresses.
When analyzing the stress distribution, it is necessary to select the stress value that will be specified as the "Ultimate strength" in the calculation of topological optimization.
If you set the maximum value of the stresses in the structure as the "Ultimate strength" (in this example, 56400), then the optimization algorithm over-optimizes the structure, trying to remove from it almost everything except the zones protected by boundary conditions and loads (this problem is especially relevant for structures in which have zones with stress concentrators, where the stress values are orders of magnitude greater than the values in the main body). If you set the tensile strength too low (for example 5000), the algorithm will leave most of the material in place.
The algorithm tries to keep all zones where stresses are equal to or greater than the value specified as "Ultimate strength".
Examples of the results of the calculation of topological optimization depending on the values of the "Ultimate strength" at step 20 (before the onset of the second stage - the last 5 steps - thickening near the zones of boundary conditions and loads) of the calculation are shown in the figure below.
As a "Ultimate strength" for calculating topological optimization, it is necessary to select the highest values of stresses acting in the main body of the material (or on the most extensive area), but not more than the values of admissible stresses, if data for the structure are available. In this example, this value can be selected in the range from 10,000 to 30,000 (depending on the desired volume of material to be removed).
Setting the "Ultimate strength" and starting the calculation
1. Set a new value for the "Ultimate strength".
In this example, the value for "Ultimate strength" will be set to 20,000.
Go to "Mode" — "Material", "Entity" — "Materials Management".
Set the "Ultimate strength" value: 20000
Then click "Apply" and then "X" in the upper right corner of the Material Management panel.
2. Topological optimization calculation
Go to "Mode" — "Calculation Settings", "Calculation settings" — "Topological Optimization".
Select the dimension "2D".
Click "Apply" and then "Start Calculation".
In the window that opens, select the location to save the results and the file name. Then click "Save".
Calculation starts.
When the calculation is completed, the following message will appear on the "Command Line". After that, you can proceed to viewing the results.
Analysis of the results of topological optimization
To view the results, go to the "Fidesys Viewer" postprocessor. To do this, you need to go to "Mode" - "Results" and click "Open last result".
In the "Fidesys Viewer" window that opens, apply the "Threshold" filter ("Filters" - "Alphabetical" - "Threshold").
Then select step 20, select the input array "Elasticity Modulus", check the "Only cells whose point values are within the range" box and click "Apply".
Next, you need to move the slider of the minimum value of the modulus of elasticity to a value of the order of 2e+9, (slider of the maximum to 2e+11) and click "Apply".
If everything was done correctly, then in the model window you will see the result - a topologically optimized shape. Then it can be exported in a format that able to import back into preprocessor.
Go to "File" — "Save Data...".
Select the save location and format ".e" and click "OK".
In the window that opens, click "OK".
Importing and deleting an optimized topology
1. Open preprocessor
Delete the surface mesh.
Go to "Mode" — "Mesh", "Entity" — "Surface", "Action" — "Delete".
Fill the field Surface ID(s) with all.
Click Apply.
2. Import model.
Go to menu File->Import.
In the window that opens, find the file with extension ".е", select it and click Open.
In next window that opens, select "Free mesh" and click Finish.
If everything was done correctly, you will see the shape of the optimized topology inside the geometry model.
You can now edit the geometry to fit the shape of the optimized topology.
3. Remove unnecessary topology.
After the model has been edited and the topology shape is no longer needed, it must be deleted.
Go to Mode — Mesh, Entity — Quad, Action — Delete.
Fill the field Quad ID(s) with all.
Click Apply.
Then click on Refresh display button.
Export model for 3D-printing
Go to menu File->Export....
In the window that opens, select .stl extension and enter name of file.
Click Save.
In next window click Finish.
Using the console interface
Geometry construction, mesh generation, boundary conditions and materials definition can be performed using the console interface. Below is the script that allows you to follow the steps of the manual described above, you only need to specify the full path and name of the saved file yourself.
reset create surface rectangle width 0.5 height 0.3 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane move Surface 2 x 0.2 y -0.1 include_merged move Surface 3 x -0.2 y -0.1 include_merged move Surface 4 x -0.2 y 0.1 include_merged subtract surface 2 3 4 from surface 1 create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane move Surface 6 x 0.2 y -0.1 include_merged move Surface 7 x -0.2 y -0.1 include_merged move Surface 8 x -0.2 y 0.1 include_merged create surface circle radius 0.02 zplane create surface circle radius 0.02 zplane create surface circle radius 0.02 zplane move Surface 9 x 0.2 y -0.1 include_merged move Surface 10 x -0.2 y -0.1 include_merged move Surface 11 x -0.2 y 0.1 include_merged subtract surface 10 from surface 7 subtract surface 11 from surface 8 subtract surface 9 from surface 6 merge curve all surface all size 0.005 mesh surface all create material 1 modify material 1 name 'Topological Mat' modify material 1 set property 'MODULUS' value 2e+11 modify material 1 set property 'POISSON' value 0.3 modify material 1 set property 'ISO_ULTIMATE_STRENGTH' value 20000 set duplicate block elements off block 1 add surface all block 'Block 1' material 1 cs 1 element plane order 1 create displacement on surface 14 12 dof all fix create force on curve 18 force value 100 direction 1 0 0 create force on surface 13 force value 1e-6 direction 1 0 0
Below is a script that takes into account the import of the optimized topology "Optimized_shape.e", followed by editing the model according to its shape. Do not forget to correct the path to the directory where the file with the optimized topology is stored.
reset create surface rectangle width 0.5 height 0.3 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane move Surface 2 x 0.2 y -0.1 include_merged move Surface 3 x -0.2 y -0.1 include_merged move Surface 4 x -0.2 y 0.1 include_merged subtract surface 2 3 4 from surface 1 create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane create surface circle radius 0.03 zplane move Surface 6 x 0.2 y -0.1 include_merged move Surface 7 x -0.2 y -0.1 include_merged move Surface 8 x -0.2 y 0.1 include_merged create surface circle radius 0.02 zplane create surface circle radius 0.02 zplane create surface circle radius 0.02 zplane move Surface 9 x 0.2 y -0.1 include_merged move Surface 10 x -0.2 y -0.1 include_merged move Surface 11 x -0.2 y 0.1 include_merged subtract surface 10 from surface 7 subtract surface 11 from surface 8 subtract surface 9 from surface 6 merge curve all surface all size 0.005 mesh surface all create material 1 modify material 1 name 'Topological Mat' modify material 1 set property 'MODULUS' value 2e+11 modify material 1 set property 'POISSON' value 0.3 modify material 1 set property 'ISO_ULTIMATE_STRENGTH' value 1 set duplicate block elements off block 1 add surface all block 'Block 1' material 1 cs 1 element plane order 1 create displacement on surface 14 12 dof all fix create force on curve 18 force value 100 direction 1 0 0 create force on surface 13 force value 1e-6 direction 1 0 0 delete mesh surface all propagate #Here you need to specify the path to the directory with the saved topology import mesh 'C:/Users/User/Documents/CAE-Fidesys-4.0/Optimized_shape.e' no_geom webcut body 1 with plane yplane offset 0 preview webcut body 1 with plane yplane offset 0.08 rotate -35 about z center 0 0 0 webcut body 1 with plane yplane offset -0.005 rotate -35 about z webcut body 1 with plane yplane offset 0.12 rotate 45 about z webcut body 1 with plane xplane offset -0.168 delete Surface 16 21 webcut body 13 with plane xplane offset -0.165 rotate -38 about z center 0 0 0 webcut body 15 with plane xplane offset -0.05 rotate 60 about z center 0 0 0 delete Surface 26 delete Face all unite surface all sweep surface all direction 0 0 1 distance 0.05 merge modify curve 81 83 85 87 89 69 68 71 73 75 77 79 blend radius 0.02